public void TestCreateServiceInstanceResponse() { string json = @"{ ""metadata"": { ""guid"": ""4be4cbef-1a35-4123-947b-581c401650aa"", ""url"": ""/v2/service_instances/dd1a7ad4-563b-4f6f-9397-526bfa5e62e8"", ""created_at"": ""2016-09-02T11:52:08Z"", ""updated_at"": null }, ""entity"": { ""name"": ""my-service-instance"", ""credentials"": { }, ""service_plan_guid"": ""4be4cbef-1a35-4123-947b-581c401650aa"", ""space_guid"": ""4be4cbef-1a35-4123-947b-581c401650aa"", ""gateway_data"": null, ""dashboard_url"": null, ""type"": ""managed_service_instance"", ""last_operation"": { ""type"": ""create"", ""state"": ""in progress"", ""description"": """", ""updated_at"": null, ""created_at"": ""2016-09-02T11:52:08Z"" }, ""tags"": [ ""accounting"", ""mongodb"" ], ""space_url"": ""/v2/spaces/5936211d-106a-46be-ace5-84573c96f324"", ""service_plan_url"": ""/v2/service_plans/213ac215-7945-44e9-baa7-a835bf67781e"", ""service_bindings_url"": ""/v2/service_instances/dd1a7ad4-563b-4f6f-9397-526bfa5e62e8/service_bindings"", ""service_keys_url"": ""/v2/service_instances/dd1a7ad4-563b-4f6f-9397-526bfa5e62e8/service_keys"", ""routes_url"": ""/v2/service_instances/dd1a7ad4-563b-4f6f-9397-526bfa5e62e8/routes"" } }"; CreateServiceInstanceResponse obj = Utilities.DeserializeJson <CreateServiceInstanceResponse>(json); Assert.AreEqual("4be4cbef-1a35-4123-947b-581c401650aa", TestUtil.ToTestableString(obj.EntityMetadata.Guid), true); Assert.AreEqual("/v2/service_instances/dd1a7ad4-563b-4f6f-9397-526bfa5e62e8", TestUtil.ToTestableString(obj.EntityMetadata.Url), true); Assert.AreEqual("2016-09-02T11:52:08Z", TestUtil.ToTestableString(obj.EntityMetadata.CreatedAt), true); Assert.AreEqual("", TestUtil.ToTestableString(obj.EntityMetadata.UpdatedAt), true); Assert.AreEqual("my-service-instance", TestUtil.ToTestableString(obj.Name), true); Assert.AreEqual("4be4cbef-1a35-4123-947b-581c401650aa", TestUtil.ToTestableString(obj.ServicePlanGuid), true); Assert.AreEqual("4be4cbef-1a35-4123-947b-581c401650aa", TestUtil.ToTestableString(obj.SpaceGuid), true); Assert.AreEqual("", TestUtil.ToTestableString(obj.GatewayData), true); Assert.AreEqual("", TestUtil.ToTestableString(obj.DashboardUrl), true); Assert.AreEqual("managed_service_instance", TestUtil.ToTestableString(obj.Type), true); Assert.AreEqual("/v2/spaces/5936211d-106a-46be-ace5-84573c96f324", TestUtil.ToTestableString(obj.SpaceUrl), true); Assert.AreEqual("/v2/service_plans/213ac215-7945-44e9-baa7-a835bf67781e", TestUtil.ToTestableString(obj.ServicePlanUrl), true); Assert.AreEqual("/v2/service_instances/dd1a7ad4-563b-4f6f-9397-526bfa5e62e8/service_bindings", TestUtil.ToTestableString(obj.ServiceBindingsUrl), true); Assert.AreEqual("/v2/service_instances/dd1a7ad4-563b-4f6f-9397-526bfa5e62e8/service_keys", TestUtil.ToTestableString(obj.ServiceKeysUrl), true); Assert.AreEqual("/v2/service_instances/dd1a7ad4-563b-4f6f-9397-526bfa5e62e8/routes", TestUtil.ToTestableString(obj.RoutesUrl), true); }
public void TestCreateServiceInstanceResponse() { string json = @"{ ""metadata"": { ""guid"": ""8c2f47ae-5abe-4c40-a9e4-25c9ba80a37f"", ""url"": ""/v2/service_instances/8c2f47ae-5abe-4c40-a9e4-25c9ba80a37f"", ""created_at"": ""2016-02-09T10:21:52Z"", ""updated_at"": null }, ""entity"": { ""name"": ""my-service-instance"", ""credentials"": { }, ""service_plan_guid"": ""09cd60d3-b423-4670-9196-dba607d4cce7"", ""space_guid"": ""9191d45d-534a-440b-b7b0-9dccd7d0a22d"", ""gateway_data"": null, ""dashboard_url"": null, ""type"": ""managed_service_instance"", ""last_operation"": { ""type"": ""create"", ""state"": ""in progress"", ""description"": """", ""updated_at"": ""2016-02-09T10:21:52Z"" }, ""space_url"": ""/v2/spaces/9191d45d-534a-440b-b7b0-9dccd7d0a22d"", ""service_plan_url"": ""/v2/service_plans/09cd60d3-b423-4670-9196-dba607d4cce7"", ""service_bindings_url"": ""/v2/service_instances/8c2f47ae-5abe-4c40-a9e4-25c9ba80a37f/service_bindings"" } }"; CreateServiceInstanceResponse obj = Utilities.DeserializeJson <CreateServiceInstanceResponse>(json); Assert.AreEqual("8c2f47ae-5abe-4c40-a9e4-25c9ba80a37f", TestUtil.ToTestableString(obj.EntityMetadata.Guid), true); Assert.AreEqual("/v2/service_instances/8c2f47ae-5abe-4c40-a9e4-25c9ba80a37f", TestUtil.ToTestableString(obj.EntityMetadata.Url), true); Assert.AreEqual("2016-02-09T10:21:52Z", TestUtil.ToTestableString(obj.EntityMetadata.CreatedAt), true); Assert.AreEqual("", TestUtil.ToTestableString(obj.EntityMetadata.UpdatedAt), true); Assert.AreEqual("my-service-instance", TestUtil.ToTestableString(obj.Name), true); Assert.AreEqual("09cd60d3-b423-4670-9196-dba607d4cce7", TestUtil.ToTestableString(obj.ServicePlanGuid), true); Assert.AreEqual("9191d45d-534a-440b-b7b0-9dccd7d0a22d", TestUtil.ToTestableString(obj.SpaceGuid), true); Assert.AreEqual("", TestUtil.ToTestableString(obj.GatewayData), true); Assert.AreEqual("", TestUtil.ToTestableString(obj.DashboardUrl), true); Assert.AreEqual("managed_service_instance", TestUtil.ToTestableString(obj.Type), true); Assert.AreEqual("/v2/spaces/9191d45d-534a-440b-b7b0-9dccd7d0a22d", TestUtil.ToTestableString(obj.SpaceUrl), true); Assert.AreEqual("/v2/service_plans/09cd60d3-b423-4670-9196-dba607d4cce7", TestUtil.ToTestableString(obj.ServicePlanUrl), true); Assert.AreEqual("/v2/service_instances/8c2f47ae-5abe-4c40-a9e4-25c9ba80a37f/service_bindings", TestUtil.ToTestableString(obj.ServiceBindingsUrl), true); }
public void TestCreateServiceInstanceResponse() { string json = @"{ ""metadata"": { ""guid"": ""b10b1f19-500b-4fb3-89aa-bc727e1d7b10"", ""url"": ""/v2/service_instances/b10b1f19-500b-4fb3-89aa-bc727e1d7b10"", ""created_at"": ""2015-04-16T12:04:31+00:00"", ""updated_at"": null }, ""entity"": { ""name"": ""my-service-instance"", ""credentials"": { ""creds-key-473"": ""creds-val-473"" }, ""service_plan_guid"": ""06f4e5a8-fc14-4d97-9bea-5bc92dec2cfa"", ""space_guid"": ""6b65de44-ce3e-444f-988c-b29ef16f2f07"", ""gateway_data"": ""CONFIGURATION"", ""dashboard_url"": ""http://dashboard.example.com"", ""type"": ""managed_service_instance"", ""space_url"": ""/v2/spaces/6b65de44-ce3e-444f-988c-b29ef16f2f07"", ""service_plan_url"": ""/v2/service_plans/06f4e5a8-fc14-4d97-9bea-5bc92dec2cfa"", ""service_bindings_url"": ""/v2/service_instances/b10b1f19-500b-4fb3-89aa-bc727e1d7b10/service_bindings"" } }"; CreateServiceInstanceResponse obj = Utilities.DeserializeJson <CreateServiceInstanceResponse>(json); Assert.AreEqual("b10b1f19-500b-4fb3-89aa-bc727e1d7b10", TestUtil.ToTestableString(obj.EntityMetadata.Guid), true); Assert.AreEqual("/v2/service_instances/b10b1f19-500b-4fb3-89aa-bc727e1d7b10", TestUtil.ToTestableString(obj.EntityMetadata.Url), true); Assert.AreEqual("2015-04-16T12:04:31+00:00", TestUtil.ToTestableString(obj.EntityMetadata.CreatedAt), true); Assert.AreEqual("", TestUtil.ToTestableString(obj.EntityMetadata.UpdatedAt), true); Assert.AreEqual("my-service-instance", TestUtil.ToTestableString(obj.Name), true); Assert.AreEqual("06f4e5a8-fc14-4d97-9bea-5bc92dec2cfa", TestUtil.ToTestableString(obj.ServicePlanGuid), true); Assert.AreEqual("6b65de44-ce3e-444f-988c-b29ef16f2f07", TestUtil.ToTestableString(obj.SpaceGuid), true); Assert.AreEqual("CONFIGURATION", TestUtil.ToTestableString(obj.GatewayData), true); Assert.AreEqual("http://dashboard.example.com", TestUtil.ToTestableString(obj.DashboardUrl), true); Assert.AreEqual("managed_service_instance", TestUtil.ToTestableString(obj.Type), true); Assert.AreEqual("/v2/spaces/6b65de44-ce3e-444f-988c-b29ef16f2f07", TestUtil.ToTestableString(obj.SpaceUrl), true); Assert.AreEqual("/v2/service_plans/06f4e5a8-fc14-4d97-9bea-5bc92dec2cfa", TestUtil.ToTestableString(obj.ServicePlanUrl), true); Assert.AreEqual("/v2/service_instances/b10b1f19-500b-4fb3-89aa-bc727e1d7b10/service_bindings", TestUtil.ToTestableString(obj.ServiceBindingsUrl), true); }
public void ServiceInstance_test() { var services = client.Services.ListAllServices().Result; if (services.FirstOrDefault(s => s.Label == "mysql") == null) { Assert.Inconclusive("Cloud Foundry target does not support mysql services"); } Guid serviceGuid = services.FirstOrDefault(s => s.Label == "mysql").EntityMetadata.Guid; var plans = client.Services.ListAllServicePlansForService(serviceGuid).Result; Guid servicePlanGuid = plans.FirstOrDefault().EntityMetadata.Guid; CreateServiceInstanceResponse newService = null; RetrieveServiceInstanceResponse readService = null; UpdateServiceInstanceResponse updatedService = null; CreateServiceInstanceRequest createService = new CreateServiceInstanceRequest(); createService.SpaceGuid = spaceGuid; createService.Name = "svc" + Guid.NewGuid().ToString().Substring(0, 3); createService.ServicePlanGuid = servicePlanGuid; try { newService = client.ServiceInstances.CreateServiceInstance(createService).Result; } catch (Exception ex) { Assert.Fail("Exception while creating service instance: {0}", ex.ToString()); } Assert.IsNotNull(newService); Assert.AreEqual(createService.Name, newService.Name); try { readService = client.ServiceInstances.RetrieveServiceInstance(newService.EntityMetadata.Guid).Result; } catch (Exception ex) { Assert.Fail("Exception while reading service instance: {0}", ex.ToString()); } UpdateServiceInstanceRequest updateService = new UpdateServiceInstanceRequest(); updateService.Name = "svc" + Guid.NewGuid().ToString().Substring(0, 3); try { updatedService = client.ServiceInstances.UpdateServiceInstance(newService.EntityMetadata.Guid, updateService).Result; } catch (Exception ex) { Assert.Fail("Exception while updating service instance: {0}", ex.ToString()); } Assert.IsNotNull(updatedService); Assert.AreEqual(updateService.Name, updatedService.Name); try { client.ServiceInstances.DeleteServiceInstance(newService.EntityMetadata.Guid).Wait(); } catch (Exception ex) { Assert.Fail("Exception while deleting service instance: {0}", ex.ToString()); } }
public override bool Execute() { logger = new Microsoft.Build.Utilities.TaskLoggingHelper(this); try { CloudFoundryClient client = InitClient(); Guid?spaceGuid = null; if (CFSpace.Length > 0 && CFOrganization.Length > 0) { spaceGuid = Utils.GetSpaceGuid(client, logger, CFOrganization, CFSpace); if (spaceGuid == null) { return(false); } } Guid?planGuid = null; PagedResponseCollection <ListAllServicesResponse> servicesList = client.Services.ListAllServices(new RequestOptions() { Query = "label:" + CFServiceType }).Result; foreach (var service in servicesList) { var planList = client.Services.ListAllServicePlansForService(new Guid(service.EntityMetadata.Guid)).Result; var plan = planList.Where(o => o.Name == CFServicePlan).FirstOrDefault(); if (plan != null) { planGuid = new Guid(plan.EntityMetadata.Guid); break; } } CreateServiceInstanceRequest request = new CreateServiceInstanceRequest(); request.Name = CFServiceName; request.ServicePlanGuid = planGuid; request.SpaceGuid = spaceGuid; CreateServiceInstanceResponse result = client.ServiceInstances.CreateServiceInstance(request).Result; CFServiceGuid = result.EntityMetadata.Guid; logger.LogMessage("Created {0} service {1}", CFServiceType, result.Name); } catch (AggregateException exception) { List <string> messages = new List <string>(); ErrorFormatter.FormatExceptionMessage(exception, messages); this.logger.LogError(string.Join(Environment.NewLine, messages)); return(false); } return(true); }
public override bool Execute() { logger = new Microsoft.Build.Utilities.TaskLoggingHelper(this); try { CloudFoundryClient client = InitClient(); Guid?spaceGuid = null; if (CFSpace.Length > 0 && CFOrganization.Length > 0) { spaceGuid = Utils.GetSpaceGuid(client, logger, CFOrganization, CFSpace); if (spaceGuid == null) { return(false); } } List <ProvisionedService> servicesList = new List <ProvisionedService>(); try { string[] provServs = CFServices.Split(';'); foreach (string service in provServs) { if (string.IsNullOrWhiteSpace(service) == false) { string[] serviceInfo = service.Split(','); if (serviceInfo.Length != 3) { logger.LogError("Invalid service information in {0}", service); continue; } ProvisionedService serviceDetails = new ProvisionedService(); serviceDetails.Name = serviceInfo[0].Trim(); serviceDetails.Type = serviceInfo[1].Trim(); serviceDetails.Plan = serviceInfo[2].Trim(); servicesList.Add(serviceDetails); } } } catch (Exception ex) { logger.LogErrorFromException(ex); logger.LogWarning("Error trying to obtain service information, trying to deserialize as xml"); servicesList = Utils.Deserialize <List <ProvisionedService> >(CFServices); } List <string> serviceGuids = new List <string>(); foreach (ProvisionedService service in servicesList) { logger.LogMessage("Creating {0} service {1}", service.Type, service.Name); Guid?planGuid = null; PagedResponseCollection <ListAllServicesResponse> allServicesList = client.Services.ListAllServices(new RequestOptions() { Query = "label:" + service.Type }).Result; foreach (var serviceInfo in allServicesList) { var planList = client.Services.ListAllServicePlansForService(new Guid(serviceInfo.EntityMetadata.Guid)).Result; var plan = planList.Where(o => o.Name == service.Plan).FirstOrDefault(); if (plan != null) { planGuid = new Guid(plan.EntityMetadata.Guid); break; } } Guid?serviceInstanceGuid = null; if ((serviceInstanceGuid = Utils.CheckForExistingService(service.Name, planGuid, client)) != null) { logger.LogMessage("Service {0} - {1} already exists -> skipping", service.Name, service.Type); serviceGuids.Add(serviceInstanceGuid.Value.ToString()); continue; } CreateServiceInstanceRequest request = new CreateServiceInstanceRequest(); request.Name = service.Name; request.ServicePlanGuid = planGuid; request.SpaceGuid = spaceGuid; CreateServiceInstanceResponse result = client.ServiceInstances.CreateServiceInstance(request).Result; serviceGuids.Add(result.EntityMetadata.Guid); } CFServicesGuids = serviceGuids.ToArray(); } catch (AggregateException exception) { List <string> messages = new List <string>(); ErrorFormatter.FormatExceptionMessage(exception, messages); this.logger.LogError(string.Join(Environment.NewLine, messages)); return(false); } return(true); }