public void CannotResolveRegionWhenMatchingEndpointHasEmptyRegion() { var expectedRegion = string.Empty; var catalog = new OpenStackServiceCatalog(); catalog.Add(new OpenStackServiceDefinition("Test Service", "Test-Service", new List <OpenStackServiceEndpoint>() { new OpenStackServiceEndpoint("http://other.endpoint.org", "Some Region", "1.0", "http://www.someplace.com", "http://www.someplace.com") })); catalog[0].Endpoints.First().Region = string.Empty; catalog.Add(new OpenStackServiceDefinition("Other Test Service", "Test-Service", new List <OpenStackServiceEndpoint>() { new OpenStackServiceEndpoint("http://other.endpoint.org", "some other region", "1.0", "http://www.someplace.com", "http://www.someplace.com") })); var resolver = new OpenStackRegionResolver(); var region = resolver.Resolve(new Uri("http://nomatching.endpoint.org/v2/tokens"), catalog, "Test Service"); Assert.AreEqual(expectedRegion, region); }
/// <inheritdoc/> public OpenStackServiceCatalog Convert(string payload) { payload.AssertIsNotNull("payload", "A null service catalog payload cannot be converted."); var catalog = new OpenStackServiceCatalog(); if (String.IsNullOrEmpty(payload)) { return catalog; } try { var obj = JObject.Parse(payload); var defArray = obj["access"]["serviceCatalog"]; catalog.AddRange(defArray.Select(ConvertServiceDefinition)); } catch (FormatException) { throw; } catch (Exception ex) { throw new FormatException(string.Format("Service catalog payload could not be parsed. Payload: '{0}'", payload), ex); } return catalog; }
public void CannotResolveRegionWithEmptyServiceName() { var catalog = new OpenStackServiceCatalog(); var resolver = new OpenStackRegionResolver(); resolver.Resolve(new Uri("http://other.endpoint.org/v2/tokens"), catalog, string.Empty); }
public void CannotResolveRegionWithNullEndpoint() { var catalog = new OpenStackServiceCatalog(); var resolver = new OpenStackRegionResolver(); resolver.Resolve(null, catalog, "Test Service"); }
public void IfAServiceDoesNotExistsCatalogReturnsFalse() { var expectedEndpoint = new Uri("http://public.endpoint.org"); var serviceDef = new OpenStackServiceDefinition("Test Service", "Test-Service", new List<OpenStackServiceEndpoint>() { new OpenStackServiceEndpoint(expectedEndpoint.ToString(), "some region", "1.0", "http://www.someplace.com", "http://www.someplace.com") }); var catalog = new OpenStackServiceCatalog { serviceDef }; Assert.IsFalse(catalog.Exists("NOT IN CATALOG")); }
public void CanSetServiceCatalog() { var endpoint = new Uri("https://auth.someplace.com/authme"); var userName = "******"; var password = "******"; var tenantId = "12345"; var catalog = new OpenStackServiceCatalog(); var cred = new OpenStackCredential(endpoint, userName, password, tenantId); cred.SetServiceCatalog(catalog); Assert.AreEqual(catalog, cred.ServiceCatalog); }
public void CanGetServicesInRegion() { var expectedEndpoint = new Uri("http://public.endpoint.org"); var serviceDef = new OpenStackServiceDefinition("Test Service", "Test-Service", new List<OpenStackServiceEndpoint>() { new OpenStackServiceEndpoint(expectedEndpoint.ToString(), "some region", "1.0", "http://www.someplace.com", "http://www.someplace.com") }); var catalog = new OpenStackServiceCatalog { serviceDef }; var services = catalog.GetServicesInAvailabilityZone("some region").ToList(); Assert.AreEqual(1,services.Count()); Assert.AreEqual("Test Service",services.First().Name); }
IOpenStackCredential GetValidCreds() { var catalog = new OpenStackServiceCatalog(); catalog.Add(new OpenStackServiceDefinition("Neutron", "Network Service", new List<OpenStackServiceEndpoint>() { new OpenStackServiceEndpoint(endpoint, string.Empty, "some version", "some version info", "1,2,3") })); var creds = new OpenStackCredential(new Uri(this.endpoint), "SomeUser", "Password", "SomeTenant"); creds.SetAccessTokenId(this.authId); creds.SetServiceCatalog(catalog); return creds; }
public void CanSetServiceCatalog() { var endpoint = new Uri("https://auth.someplace.com/authme"); var userName = "******"; var password = "******"; var tenantId = "12345"; var catalog = new OpenStackServiceCatalog(); var cred = new OpenStackCredential(endpoint, userName, password, tenantId); cred.SetServiceCatalog(catalog); Assert.AreEqual(catalog, cred.ServiceCatalog); }
public void IfAServiceDoesNotExistsCatalogReturnsFalse() { var expectedEndpoint = new Uri("http://public.endpoint.org"); var serviceDef = new OpenStackServiceDefinition("Test Service", "Test-Service", new List <OpenStackServiceEndpoint>() { new OpenStackServiceEndpoint(expectedEndpoint.ToString(), "some region", "1.0", "http://www.someplace.com", "http://www.someplace.com") }); var catalog = new OpenStackServiceCatalog { serviceDef }; Assert.IsFalse(catalog.Exists("NOT IN CATALOG")); }
IOpenStackCredential GetValidCreds() { var catalog = new OpenStackServiceCatalog(); catalog.Add(new OpenStackServiceDefinition("Neutron", "Network Service", new List <OpenStackServiceEndpoint>() { new OpenStackServiceEndpoint(endpoint, string.Empty, "some version", "some version info", "1,2,3") })); var creds = new OpenStackCredential(new Uri(this.endpoint), "SomeUser", "Password", "SomeTenant"); creds.SetAccessTokenId(this.authId); creds.SetServiceCatalog(catalog); return(creds); }
public void GettingServicesInRegionWhenNonExistReturnsAnEmptyCollection() { var expectedEndpoint = new Uri("http://public.endpoint.org"); var serviceDef = new OpenStackServiceDefinition("Test Service", "Test-Service", new List <OpenStackServiceEndpoint>() { new OpenStackServiceEndpoint(expectedEndpoint.ToString(), "some region", "1.0", "http://www.someplace.com", "http://www.someplace.com") }); var catalog = new OpenStackServiceCatalog { serviceDef }; var services = catalog.GetServicesInAvailabilityZone("some other region").ToList(); Assert.AreEqual(0, services.Count()); }
public void CannotSupportUnknownServiceName() { var client = new StorageServiceClientDefinition(); var creds = GetValidCreds(); var catalog = new OpenStackServiceCatalog { new OpenStackServiceDefinition("Swift", "Test", new List<OpenStackServiceEndpoint>() { new OpenStackServiceEndpoint("http://someplace.com", "somewhere", "1.0", "http://www.someplace.com", "http://www.someplace.com") }) }; creds.SetServiceCatalog(catalog); Assert.IsFalse(client.IsSupported(creds, "BadServiceName")); }
public void CanGetServicesInRegion() { var expectedEndpoint = new Uri("http://public.endpoint.org"); var serviceDef = new OpenStackServiceDefinition("Test Service", "Test-Service", new List <OpenStackServiceEndpoint>() { new OpenStackServiceEndpoint(expectedEndpoint.ToString(), "some region", "1.0", "http://www.someplace.com", "http://www.someplace.com") }); var catalog = new OpenStackServiceCatalog { serviceDef }; var services = catalog.GetServicesInAvailabilityZone("some region").ToList(); Assert.AreEqual(1, services.Count()); Assert.AreEqual("Test Service", services.First().Name); }
public void CannotGetPublicEndpointForAServiceThatIsNotInTheRegion() { var serviceName = "Test Service"; var expectedEndpoint = "http://public.endpoint.org"; var serviceDef = new OpenStackServiceDefinition(serviceName, "Test-Service", new List <OpenStackServiceEndpoint>() { new OpenStackServiceEndpoint(expectedEndpoint, "some region", "1.0", "http://www.someplace.com", "http://www.someplace.com") }); var catalog = new OpenStackServiceCatalog { serviceDef }; catalog.GetPublicEndpoint(serviceName, "Not-in-catalog"); }
public void CannotSupportUnknownServiceName() { var client = new StorageServiceClientDefinition(); var creds = GetValidCreds(); var catalog = new OpenStackServiceCatalog { new OpenStackServiceDefinition("Swift", "Test", new List <OpenStackServiceEndpoint>() { new OpenStackServiceEndpoint("http://someplace.com", "somewhere", "1.0", "http://www.someplace.com", "http://www.someplace.com") }) }; creds.SetServiceCatalog(catalog); Assert.IsFalse(client.IsSupported(creds, "BadServiceName")); }
public void CanGetPublicEndpointForAService() { var serviceName = "Test Service"; var regionName = "some region"; var expectedEndpoint = "http://public.endpoint.org"; var serviceDef = new OpenStackServiceDefinition(serviceName, "Test-Service", new List <OpenStackServiceEndpoint>() { new OpenStackServiceEndpoint(expectedEndpoint, "some region", "1.0", "http://www.someplace.com", "http://www.someplace.com") }); var catalog = new OpenStackServiceCatalog { serviceDef }; var endpoint = catalog.GetPublicEndpoint(serviceName, regionName); Assert.AreEqual(expectedEndpoint, endpoint); }
public void CanGetServicesInRegionWithMultipleServices() { var catalog = new OpenStackServiceCatalog(); catalog.Add(new OpenStackServiceDefinition("Test Service", "Test-Service", new List<OpenStackServiceEndpoint>() { new OpenStackServiceEndpoint("http://some.endpoint.com", "some region", "1.0", "http://www.someplace.com", "http://www.someplace.com") })); catalog.Add(new OpenStackServiceDefinition("Other Test Service", "Test-Service", new List<OpenStackServiceEndpoint>() { new OpenStackServiceEndpoint("http://other.endpoint.org", "some region", "1.0", "http://www.someplace.com", "http://www.someplace.com") })); var services = catalog.GetServicesInAvailabilityZone("some region").ToList(); Assert.AreEqual(2, services.Count()); }
public void CanResolveRegionWhenNoMatchingServicesButMatchingEndpoint() { var expectedRegion = "Some Region"; var catalog = new OpenStackServiceCatalog(); catalog.Add(new OpenStackServiceDefinition("Test Service", "Test-Service", new List<OpenStackServiceEndpoint>() { new OpenStackServiceEndpoint("http://the.endpoint.org", "Some Region" , "1.0", "http://www.someplace.com", "http://www.someplace.com") })); catalog.Add(new OpenStackServiceDefinition("Other Test Service", "Test-Service", new List<OpenStackServiceEndpoint>() { new OpenStackServiceEndpoint("http://other.endpoint.org", "some other region", "1.0", "http://www.someplace.com", "http://www.someplace.com") })); var resolver = new OpenStackRegionResolver(); var region = resolver.Resolve(new Uri("http://the.endpoint.org/v2/tokens"), catalog, "No Matching Service"); Assert.AreEqual(expectedRegion, region); }
public void CanGetServicesInRegionWithMultipleServices() { var catalog = new OpenStackServiceCatalog(); catalog.Add(new OpenStackServiceDefinition("Test Service", "Test-Service", new List <OpenStackServiceEndpoint>() { new OpenStackServiceEndpoint("http://some.endpoint.com", "some region", "1.0", "http://www.someplace.com", "http://www.someplace.com") })); catalog.Add(new OpenStackServiceDefinition("Other Test Service", "Test-Service", new List <OpenStackServiceEndpoint>() { new OpenStackServiceEndpoint("http://other.endpoint.org", "some region", "1.0", "http://www.someplace.com", "http://www.someplace.com") })); var services = catalog.GetServicesInAvailabilityZone("some region").ToList(); Assert.AreEqual(2, services.Count()); }
public void CanResolveRegionWhenNoMatchingServicesButMatchingEndpoint() { var expectedRegion = "Some Region"; var catalog = new OpenStackServiceCatalog(); catalog.Add(new OpenStackServiceDefinition("Test Service", "Test-Service", new List <OpenStackServiceEndpoint>() { new OpenStackServiceEndpoint("http://the.endpoint.org", "Some Region", "1.0", "http://www.someplace.com", "http://www.someplace.com") })); catalog.Add(new OpenStackServiceDefinition("Other Test Service", "Test-Service", new List <OpenStackServiceEndpoint>() { new OpenStackServiceEndpoint("http://other.endpoint.org", "some other region", "1.0", "http://www.someplace.com", "http://www.someplace.com") })); var resolver = new OpenStackRegionResolver(); var region = resolver.Resolve(new Uri("http://the.endpoint.org/v2/tokens"), catalog, "No Matching Service"); Assert.AreEqual(expectedRegion, region); }
/// <inheritdoc/> public void SetServiceCatalog(OpenStackServiceCatalog catalog) { catalog.AssertIsNotNull("catalog", "Service catalog cannot be null or empty."); this.ServiceCatalog = catalog; }
public void CannotResolveRegionWithEmptyServiceName() { var catalog = new OpenStackServiceCatalog(); var resolver = new OpenStackRegionResolver(); resolver.Resolve(new Uri("http://other.endpoint.org/v2/tokens"), catalog, string.Empty); }
public void CannotGetPublicEndpointWithANullServiceName() { var catalog = new OpenStackServiceCatalog(); catalog.GetPublicEndpoint(null, "Some region"); }
public void CannotGetPublicEndpointForAServiceThatIsNotInTheRegion() { var serviceName = "Test Service"; var expectedEndpoint = "http://public.endpoint.org"; var serviceDef = new OpenStackServiceDefinition(serviceName, "Test-Service", new List<OpenStackServiceEndpoint>() { new OpenStackServiceEndpoint(expectedEndpoint, "some region", "1.0", "http://www.someplace.com", "http://www.someplace.com") }); var catalog = new OpenStackServiceCatalog { serviceDef }; catalog.GetPublicEndpoint(serviceName, "Not-in-catalog"); }
public void CannotGetPublicEndpointWithANullRegion() { var catalog = new OpenStackServiceCatalog(); catalog.GetPublicEndpoint("Test Service", null); }
public void CannotGetPublicEndpointWithAnEmptyServiceName() { var catalog = new OpenStackServiceCatalog(); catalog.GetPublicEndpoint(string.Empty, "Some region"); }
public void CannotGetPublicEndpointWithANullRegion() { var catalog = new OpenStackServiceCatalog(); catalog.GetPublicEndpoint("Test Service", null); }
public void GettingServicesInRegionWhenNonExistReturnsAnEmptyCollection() { var expectedEndpoint = new Uri("http://public.endpoint.org"); var serviceDef = new OpenStackServiceDefinition("Test Service", "Test-Service", new List<OpenStackServiceEndpoint>() { new OpenStackServiceEndpoint(expectedEndpoint.ToString(), "some region", "1.0", "http://www.someplace.com", "http://www.someplace.com") }); var catalog = new OpenStackServiceCatalog { serviceDef }; var services = catalog.GetServicesInAvailabilityZone("some other region").ToList(); Assert.AreEqual(0, services.Count()); }
internal void Init(Uri endpoint, string userName, string password, string tenantId, string region) { this.AuthenticationEndpoint = endpoint; this.UserName = userName; this.Password = password; this.TenantId = tenantId; this.Region = region; this.ServiceCatalog = new OpenStackServiceCatalog(); }
public void CannotGetPublicEndpointWithAnEmptyServiceName() { var catalog = new OpenStackServiceCatalog(); catalog.GetPublicEndpoint(string.Empty, "Some region"); }
public void CannotResolveRegionWhenMatchingEndpointHasEmptyRegion() { var expectedRegion = string.Empty; var catalog = new OpenStackServiceCatalog(); catalog.Add(new OpenStackServiceDefinition("Test Service", "Test-Service", new List<OpenStackServiceEndpoint>() { new OpenStackServiceEndpoint("http://other.endpoint.org", "Some Region" , "1.0", "http://www.someplace.com", "http://www.someplace.com") })); catalog[0].Endpoints.First().Region = string.Empty; catalog.Add(new OpenStackServiceDefinition("Other Test Service", "Test-Service", new List<OpenStackServiceEndpoint>() { new OpenStackServiceEndpoint("http://other.endpoint.org", "some other region", "1.0", "http://www.someplace.com", "http://www.someplace.com") })); var resolver = new OpenStackRegionResolver(); var region = resolver.Resolve(new Uri("http://nomatching.endpoint.org/v2/tokens"), catalog, "Test Service"); Assert.AreEqual(expectedRegion, region); }
public void CannotGetPublicEndpointWithANullServiceName() { var catalog = new OpenStackServiceCatalog(); catalog.GetPublicEndpoint(null, "Some region"); }
public void CannotResolveRegionWithNullEndpoint() { var catalog = new OpenStackServiceCatalog(); var resolver = new OpenStackRegionResolver(); resolver.Resolve(null, catalog, "Test Service"); }
public void CanGetPublicEndpointForAService() { var serviceName = "Test Service"; var regionName = "some region"; var expectedEndpoint = "http://public.endpoint.org"; var serviceDef = new OpenStackServiceDefinition(serviceName, "Test-Service", new List<OpenStackServiceEndpoint>() { new OpenStackServiceEndpoint(expectedEndpoint, "some region", "1.0", "http://www.someplace.com", "http://www.someplace.com") }); var catalog = new OpenStackServiceCatalog { serviceDef }; var endpoint = catalog.GetPublicEndpoint(serviceName, regionName); Assert.AreEqual(expectedEndpoint, endpoint); }