2016-08-29 3 views
0

Привет всем читать это,OpenStack авторизации

Я хочу, чтобы перечислить все изображения из OpenStack с помощью следующего кода в C#:

using System; 
using Microsoft.VisualStudio.TestTools.UnitTesting; 
using net.openstack.Providers.Rackspace; 
using net.openstack.Core.Domain; 
using net.openstack.Core.Providers; 
namespace RepositoriesTests 
{ 
    [TestClass] 
    public class RackspaceTests 
    { 
     public string username = "mbar"; 
     public string password = "password"; 
     public string url = "http://192.168.5.55:5001/v3"; 
     public string project_id = "a9b2b59f093f44d881b8ebccbba00901"; 
     public string project_name = "test-nsix"; 
    [TestMethod] 
    public void TestConnection() 
    { 
     try 
     { 
      var identity = new CloudIdentityWithProject() 
      { 
       Username = username, 
       Password = password, 
       ProjectId = new ProjectId(project_id), 
       ProjectName = project_name 
      }; 
      var identityProvider = new OpenStackIdentityProvider(new Uri(url)); 


      var serverProvider = new CloudServersProvider(identity, identityProvider); 

      var images = serverProvider.ListImages(region: "RegionOne"); 
     }catch(Exception ex) 
     { 
      Assert.Fail(ex.Message); 
     } 
    } 

} 
} 

Когда я запускаю этот пример я получаю следующее сообщение об ошибке: The запрос, который вы сделали, требует аутентификации. Я проверил в окне браузера, что я получаю от URL: http://192.168.5.55:5001/v3 и я вижу, что сервер существует:

{"version": {"status": "stable", "updated": "2016-04-04T00:00:00Z", "media-types": [{"base": "application/json", "type": "application/vnd.openstack.identity-v3+json"}], "id": "v3.6", "links": [{"href": "http://192.168.5.55:5001/v3/", "rel": "self"}]}} 

Я не уверен, где проблема и почему я не могу разрешить.

Это StackTrace:

w net.openstack.Providers.Rackspace.Validators.HttpResponseCodeValidator.Validate(Response response) w C:\Bamboo\xml-data\build-dir\OSTK-NET19-BLD\src\corelib\Providers\Rackspace\Validators\HttpResponseCodeValidator.cs:wiersz 48 
    w net.openstack.Providers.Rackspace.ProviderBase`1.CheckResponse(Response response) w C:\Bamboo\xml-data\build-dir\OSTK-NET19-BLD\src\corelib\Providers\Rackspace\ProviderBase`1.cs:wiersz 861 
    w net.openstack.Providers.Rackspace.ProviderBase`1.ExecuteRESTRequest[T](CloudIdentity identity, Uri absoluteUri, HttpMethod method, Object body, Dictionary`2 queryStringParameter, Dictionary`2 headers, Boolean isRetry, Boolean isTokenRequest, RequestSettings requestSettings, Func`7 callback) w C:\Bamboo\xml-data\build-dir\OSTK-NET19-BLD\src\corelib\Providers\Rackspace\ProviderBase`1.cs:wiersz 505 
    w net.openstack.Providers.Rackspace.ProviderBase`1.ExecuteRESTRequest[T](CloudIdentity identity, Uri absoluteUri, HttpMethod method, Object body, Dictionary`2 queryStringParameter, Dictionary`2 headers, Boolean isRetry, Boolean isTokenRequest, RequestSettings settings) w C:\Bamboo\xml-data\build-dir\OSTK-NET19-BLD\src\corelib\Providers\Rackspace\ProviderBase`1.cs:wiersz 294 
    w net.openstack.Core.Providers.OpenStackIdentityProvider.<>c__DisplayClass4_0.<GetUserAccess>b__0() w C:\Bamboo\xml-data\build-dir\OSTK-NET19-BLD\src\corelib\Core\Providers\OpenStackIdentityProvider.cs:wiersz 108 
    w net.openstack.Core.Caching.UserAccessCache.<>c__DisplayClass2_0.<Get>b__0(String k) w C:\Bamboo\xml-data\build-dir\OSTK-NET19-BLD\src\corelib\Core\Caching\UserAccessCache.cs:wiersz 58 
    w System.Collections.Concurrent.ConcurrentDictionary`2.AddOrUpdate(TKey key, Func`2 addValueFactory, Func`3 updateValueFactory) 
    w net.openstack.Core.Caching.UserAccessCache.Get(String key, Func`1 refreshCallback, Boolean forceCacheRefresh) w C:\Bamboo\xml-data\build-dir\OSTK-NET19-BLD\src\corelib\Core\Caching\UserAccessCache.cs:wiersz 58 
    w net.openstack.Core.Providers.OpenStackIdentityProvider.GetUserAccess(CloudIdentity identity, Boolean forceCacheRefresh) w C:\Bamboo\xml-data\build-dir\OSTK-NET19-BLD\src\corelib\Core\Providers\OpenStackIdentityProvider.cs:wiersz 123 
    w net.openstack.Providers.Rackspace.CloudIdentityProvider.Authenticate(CloudIdentity identity) w C:\Bamboo\xml-data\build-dir\OSTK-NET19-BLD\src\corelib\Providers\Rackspace\CloudIdentityProvider.cs:wiersz 948 
    w RepositoriesTests.RackspaceTests.TestConnection() w D:\Projekty\NSIX\RepositoriesTests\RackspaceTests.cs:wiersz 35 

ответ

0

Pass, чтобы identityProvider объект CloudIdentityWithProject:

var identityProvider = new OpenStackIdentityProvider(new Uri(url), projectCloudId); 
+0

Что такое projectCloudId? OpenStackIdentityProvider не имеет конструктора, который принимает такой параметр. –

+0

identity -> projectCloudId – SilentTremor

+0

http://stackoverflow.com/questions/24307286/openstack-net-sdk-cannot-access-service-with-region – SilentTremor

Смежные вопросы