public void CreateServiceInstanceTest() { using (ShimsContext.Create()) { MockClients clients = new MockClients(); 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"" } }"; clients.JsonResponse = json; clients.ExpectedStatusCode = (HttpStatusCode)202; var cfClient = clients.CreateCloudFoundryClient(); CreateServiceInstanceRequest value = new CreateServiceInstanceRequest(); var obj = cfClient.ServiceInstances.CreateServiceInstance(value).Result; 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); } }
internal static Task<CreateServiceInstanceResponse> CustomCreateServiceInstance(CloudController.V2.Client.Base.AbstractServiceInstancesEndpoint arg1, CreateServiceInstanceRequest arg2) { return Task.Factory.StartNew<CreateServiceInstanceResponse>(() => { return new CreateServiceInstanceResponse() { EntityMetadata = new Metadata() }; }); }
public void TestCreateServiceInstanceRequest() { string json = @"{ ""space_guid"": ""4be4cbef-1a35-4123-947b-581c401650aa"", ""name"": ""my-service-instance"", ""service_plan_guid"": ""4be4cbef-1a35-4123-947b-581c401650aa"", ""parameters"": { ""the_service_broker"": ""wants this object"" }, ""tags"": [ ""accounting"", ""mongodb"" ] }"; CreateServiceInstanceRequest request = new CreateServiceInstanceRequest(); request.SpaceGuid = new Guid("4be4cbef-1a35-4123-947b-581c401650aa"); request.Name = "my-service-instance"; request.ServicePlanGuid = new Guid("4be4cbef-1a35-4123-947b-581c401650aa"); request.Parameters = TestUtil.GetJsonDictonary(@"{""the_service_broker"":""wants this object""}"); request.Tags = Array.ConvertAll(TestUtil.GetJsonArray(@"[""accounting"",""mongodb""]"), (p => p.ToString())); string result = JsonConvert.SerializeObject(request, Formatting.None); Assert.AreEqual(TestUtil.ToUnformatedJsonString(json), result); }
/// <summary> /// Creating a Service Instance /// <para>For detailed information, see online documentation at: "http://apidocs.cloudfoundry.org/250/service_instances/creating_a_service_instance.html"</para> /// </summary> public async Task <CreateServiceInstanceResponse> CreateServiceInstance(CreateServiceInstanceRequest value) { UriBuilder uriBuilder = new UriBuilder(this.Client.CloudTarget); uriBuilder.Path = "/v2/service_instances"; var client = this.GetHttpClient(); client.Uri = uriBuilder.Uri; client.Method = HttpMethod.Post; var authHeader = await BuildAuthenticationHeader(); if (!string.IsNullOrWhiteSpace(authHeader.Key)) { if (client.Headers.ContainsKey(authHeader.Key)) { client.Headers[authHeader.Key] = authHeader.Value; } else { client.Headers.Add(authHeader); } } client.ContentType = "application/x-www-form-urlencoded"; client.Content = ((string)JsonConvert.SerializeObject(value)).ConvertToStream(); var expectedReturnStatus = 202; var response = await this.SendAsync(client, expectedReturnStatus); return(Utilities.DeserializeJson <CreateServiceInstanceResponse>(await response.ReadContentAsStringAsync())); }
public void ServiceInstance_test() { var services = client.Services.ListAllServices().Result; 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 void CreateServiceInstanceTest() { using (ShimsContext.Create()) { MockClients clients = new MockClients(); 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"" } }"; clients.JsonResponse = json; clients.ExpectedStatusCode = (HttpStatusCode)201; var cfClient = clients.CreateCloudFoundryClient(); CreateServiceInstanceRequest value = new CreateServiceInstanceRequest(); var obj = cfClient.ServiceInstances.CreateServiceInstance(value).Result; 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 TestCreateServiceInstanceRequest() { string json = @"{ ""space_guid"": ""4148ed17-5b5d-40e7-8c14-45cdd39ca752"", ""name"": ""my-service-instance"", ""service_plan_guid"": ""04c18b7a-e04d-4d15-89b3-82e8c0a8f3df"" }"; CreateServiceInstanceRequest request = new CreateServiceInstanceRequest(); request.SpaceGuid = new Guid("4148ed17-5b5d-40e7-8c14-45cdd39ca752"); request.Name = "my-service-instance"; request.ServicePlanGuid = new Guid("04c18b7a-e04d-4d15-89b3-82e8c0a8f3df"); string result = JsonConvert.SerializeObject(request, Formatting.None); Assert.AreEqual(TestUtil.ToUnformatedJsonString(json), result); }
/// <summary> /// Creating a Service Instance /// <para>For detailed information, see online documentation at: "http://apidocs.cloudfoundry.org/250/service_instances/creating_a_service_instance.html"</para> /// </summary> public async Task <CreateServiceInstanceResponse> CreateServiceInstance(CreateServiceInstanceRequest value) { UriBuilder uriBuilder = new UriBuilder(this.Client.CloudTarget); uriBuilder.Path = "/v2/service_instances"; var client = this.GetHttpClient(); client.Uri = uriBuilder.Uri; client.Method = HttpMethod.Post; client.Content = ((string)JsonConvert.SerializeObject(value)).ConvertToStream(); var expectedReturnStatus = 202; var response = await this.SendAsync(client, expectedReturnStatus); return(Utilities.DeserializeJson <CreateServiceInstanceResponse>(await response.Content.ReadAsStringAsync())); }
public void TestCreateServiceInstanceRequest() { string json = @"{ ""space_guid"": ""6b65de44-ce3e-444f-988c-b29ef16f2f07"", ""name"": ""my-service-instance"", ""service_plan_guid"": ""06f4e5a8-fc14-4d97-9bea-5bc92dec2cfa"" }"; CreateServiceInstanceRequest request = new CreateServiceInstanceRequest(); request.SpaceGuid = new Guid("6b65de44-ce3e-444f-988c-b29ef16f2f07"); request.Name = "my-service-instance"; request.ServicePlanGuid = new Guid("06f4e5a8-fc14-4d97-9bea-5bc92dec2cfa"); string result = JsonConvert.SerializeObject(request, Formatting.None); Assert.AreEqual(TestUtil.ToUnformatedJsonString(json), result); }
public void TestCreateServiceInstanceRequest() { string json = @"{ ""space_guid"": ""9191d45d-534a-440b-b7b0-9dccd7d0a22d"", ""name"": ""my-service-instance"", ""service_plan_guid"": ""09cd60d3-b423-4670-9196-dba607d4cce7"", ""parameters"": { ""the_service_broker"": ""wants this object"" } }"; CreateServiceInstanceRequest request = new CreateServiceInstanceRequest(); request.SpaceGuid = new Guid("9191d45d-534a-440b-b7b0-9dccd7d0a22d"); request.Name = "my-service-instance"; request.ServicePlanGuid = new Guid("09cd60d3-b423-4670-9196-dba607d4cce7"); request.Parameters = TestUtil.GetJsonDictonary(@"{""the_service_broker"":""wants this object""}"); string result = JsonConvert.SerializeObject(request, Formatting.None); Assert.AreEqual(TestUtil.ToUnformatedJsonString(json), result); }
private async void Wizard_Finish(object sender, RoutedEventArgs e) { var viewModel = this.DataContext as ServiceInstanceEditorResource; if (viewModel == null) { throw new InvalidOperationException("Invalid DataContext"); } try { viewModel.AllowFinish = false; this.InfoMessage.Text = "Please wait while creating service..."; this.InfoSpinner.Visibility = System.Windows.Visibility.Visible; CreateServiceInstanceRequest request = new CreateServiceInstanceRequest(); request.Name = this.tbServiceName.Text; request.ServicePlanGuid = viewModel.SelectedServicePlan.ToGuid(); request.SpaceGuid = this.spaceGuid; await this.client.ServiceInstances.CreateServiceInstance(request); this.DialogResult = true; this.Close(); } catch (Exception ex) { viewModel.AllowFinish = true; this.InfoSpinner.Visibility = System.Windows.Visibility.Hidden; this.InfoMessage.Text = string.Empty; var errorMessages = new List <string>(); ErrorFormatter.FormatExceptionMessage(ex, errorMessages); viewModel.Error.HasErrors = true; viewModel.Error.ErrorMessage = string.Join(Environment.NewLine, errorMessages.ToArray()); Logger.Error("Error creating service instance ", ex); } }
internal static Task <CreateServiceInstanceResponse> CustomCreateServiceInstance(CloudController.V2.Client.Base.AbstractServiceInstancesEndpoint arg1, CreateServiceInstanceRequest arg2) { return(Task.Factory.StartNew <CreateServiceInstanceResponse>(() => { return new CreateServiceInstanceResponse() { EntityMetadata = new Metadata() }; })); }
public override bool Execute() { logger = new Microsoft.Build.Utilities.TaskLoggingHelper(this); 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(); return true; }
public override bool Execute() { logger = new Microsoft.Build.Utilities.TaskLoggingHelper(this); 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); 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); } } 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 void CreateServiceInstanceTest() { using (ShimsContext.Create()) { MockClients clients = new MockClients(); 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"" } }"; clients.JsonResponse = json; clients.ExpectedStatusCode = (HttpStatusCode)202; var cfClient = clients.CreateCloudFoundryClient(); CreateServiceInstanceRequest value = new CreateServiceInstanceRequest(); var obj = cfClient.ServiceInstances.CreateServiceInstance(value).Result; 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 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 void CreateServiceInstanceTest() { using (ShimsContext.Create()) { MockClients clients = new MockClients(); string json = @"{ ""metadata"": { ""guid"": ""85c93513-6daf-4c69-9293-aff838a6101c"", ""url"": ""/v2/service_instances/85c93513-6daf-4c69-9293-aff838a6101c"", ""created_at"": ""2015-05-19T15:27:17+00:00"", ""updated_at"": null }, ""entity"": { ""name"": ""my-service-instance"", ""credentials"": { ""creds-key-386"": ""creds-val-386"" }, ""service_plan_guid"": ""04c18b7a-e04d-4d15-89b3-82e8c0a8f3df"", ""space_guid"": ""4148ed17-5b5d-40e7-8c14-45cdd39ca752"", ""gateway_data"": ""CONFIGURATION"", ""dashboard_url"": ""http://dashboard.example.com"", ""type"": ""managed_service_instance"", ""space_url"": ""/v2/spaces/4148ed17-5b5d-40e7-8c14-45cdd39ca752"", ""service_plan_url"": ""/v2/service_plans/04c18b7a-e04d-4d15-89b3-82e8c0a8f3df"", ""service_bindings_url"": ""/v2/service_instances/85c93513-6daf-4c69-9293-aff838a6101c/service_bindings"" } }"; clients.JsonResponse = json; clients.ExpectedStatusCode = (HttpStatusCode)201; var cfClient = clients.CreateCloudFoundryClient(); CreateServiceInstanceRequest value = new CreateServiceInstanceRequest(); var obj = cfClient.ServiceInstances.CreateServiceInstance(value).Result; Assert.AreEqual("85c93513-6daf-4c69-9293-aff838a6101c", TestUtil.ToTestableString(obj.EntityMetadata.Guid), true); Assert.AreEqual("/v2/service_instances/85c93513-6daf-4c69-9293-aff838a6101c", TestUtil.ToTestableString(obj.EntityMetadata.Url), true); Assert.AreEqual("2015-05-19T15:27:17+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("04c18b7a-e04d-4d15-89b3-82e8c0a8f3df", TestUtil.ToTestableString(obj.ServicePlanGuid), true); Assert.AreEqual("4148ed17-5b5d-40e7-8c14-45cdd39ca752", 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/4148ed17-5b5d-40e7-8c14-45cdd39ca752", TestUtil.ToTestableString(obj.SpaceUrl), true); Assert.AreEqual("/v2/service_plans/04c18b7a-e04d-4d15-89b3-82e8c0a8f3df", TestUtil.ToTestableString(obj.ServicePlanUrl), true); Assert.AreEqual("/v2/service_instances/85c93513-6daf-4c69-9293-aff838a6101c/service_bindings", TestUtil.ToTestableString(obj.ServiceBindingsUrl), 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); }