Пример #1
0
        /// <summary>
        /// Create a Service Binding
        /// <para>For detailed information, see online documentation at: "http://apidocs.cloudfoundry.org/250/service_bindings/create_a_service_binding.html"</para>
        /// </summary>
        public async Task <CreateServiceBindingResponse> CreateServiceBinding(CreateServiceBindingRequest value)
        {
            UriBuilder uriBuilder = new UriBuilder(this.Client.CloudTarget);

            uriBuilder.Path = "/v2/service_bindings";
            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 = 201;
            var response             = await this.SendAsync(client, expectedReturnStatus);

            return(Utilities.DeserializeJson <CreateServiceBindingResponse>(await response.ReadContentAsStringAsync()));
        }
 private Task<CreateServiceBindingResponse> CustomServiceBinding(CloudController.V2.Client.Base.AbstractServiceBindingsEndpoint arg1, CreateServiceBindingRequest arg2)
 {
     return Task.Factory.StartNew<CreateServiceBindingResponse>(() =>
     {
         return new CreateServiceBindingResponse() { EntityMetadata = new Metadata() };
     });
 }
Пример #3
0
        public void CreateServiceBindingTest()
        {
            using (ShimsContext.Create())
            {
                MockClients clients = new MockClients();

                string json = @"{
  ""metadata"": {
    ""guid"": ""fd2b7dda-e93c-4f5a-bf27-b4e875dbfce9"",
    ""url"": ""/v2/service_bindings/6632a82e-cec8-4286-885b-706bfa883edf"",
    ""created_at"": ""2016-09-02T11:52:10Z"",
    ""updated_at"": null
  },
  ""entity"": {
    ""app_guid"": ""fd2b7dda-e93c-4f5a-bf27-b4e875dbfce9"",
    ""service_instance_guid"": ""fd2b7dda-e93c-4f5a-bf27-b4e875dbfce9"",
    ""credentials"": {
      ""creds-key-24"": ""creds-val-24""
    },
    ""binding_options"": {

    },
    ""gateway_data"": null,
    ""gateway_name"": """",
    ""syslog_drain_url"": null,
    ""volume_mounts"": [

    ],
    ""app_url"": ""/v2/apps/17eb5162-f77a-4366-8f22-c2329a3eb7a8"",
    ""service_instance_url"": ""/v2/user_provided_service_instances/d52d587d-ff9e-4a6c-b5f7-0c247a7f8f30""
  }
}";
                clients.JsonResponse = json;

                clients.ExpectedStatusCode = (HttpStatusCode)201;
                var cfClient = clients.CreateCloudFoundryClient();

                CreateServiceBindingRequest value = new CreateServiceBindingRequest();


                var obj = cfClient.ServiceBindings.CreateServiceBinding(value).Result;


                Assert.AreEqual("fd2b7dda-e93c-4f5a-bf27-b4e875dbfce9", TestUtil.ToTestableString(obj.EntityMetadata.Guid), true);
                Assert.AreEqual("/v2/service_bindings/6632a82e-cec8-4286-885b-706bfa883edf", TestUtil.ToTestableString(obj.EntityMetadata.Url), true);
                Assert.AreEqual("2016-09-02T11:52:10Z", TestUtil.ToTestableString(obj.EntityMetadata.CreatedAt), true);
                Assert.AreEqual("", TestUtil.ToTestableString(obj.EntityMetadata.UpdatedAt), true);
                Assert.AreEqual("fd2b7dda-e93c-4f5a-bf27-b4e875dbfce9", TestUtil.ToTestableString(obj.AppGuid), true);
                Assert.AreEqual("fd2b7dda-e93c-4f5a-bf27-b4e875dbfce9", TestUtil.ToTestableString(obj.ServiceInstanceGuid), true);
                Assert.AreEqual("", TestUtil.ToTestableString(obj.GatewayData), true);
                Assert.AreEqual("", TestUtil.ToTestableString(obj.GatewayName), true);
                Assert.AreEqual("", TestUtil.ToTestableString(obj.SyslogDrainUrl), true);
                Assert.AreEqual("/v2/apps/17eb5162-f77a-4366-8f22-c2329a3eb7a8", TestUtil.ToTestableString(obj.AppUrl), true);
                Assert.AreEqual("/v2/user_provided_service_instances/d52d587d-ff9e-4a6c-b5f7-0c247a7f8f30", TestUtil.ToTestableString(obj.ServiceInstanceUrl), true);
            }
        }
Пример #4
0
        public void CreateServiceBindingTest()
        {
            using (ShimsContext.Create())
            {
                MockClients clients = new MockClients();

                string json = @"{
  ""metadata"": {
    ""guid"": ""a358bc18-522f-4700-90b5-0e42d7efdff2"",
    ""url"": ""/v2/service_bindings/a358bc18-522f-4700-90b5-0e42d7efdff2"",
    ""created_at"": ""2016-02-09T10:21:53Z"",
    ""updated_at"": null
  },
  ""entity"": {
    ""app_guid"": ""b214dfe6-743b-4c0a-9b03-b5ed6a866e9c"",
    ""service_instance_guid"": ""3deecd09-48ce-4a4b-9450-af316053bc1e"",
    ""credentials"": {
      ""creds-key-446"": ""creds-val-446""
    },
    ""binding_options"": {

    },
    ""gateway_data"": null,
    ""gateway_name"": """",
    ""syslog_drain_url"": null,
    ""app_url"": ""/v2/apps/b214dfe6-743b-4c0a-9b03-b5ed6a866e9c"",
    ""service_instance_url"": ""/v2/user_provided_service_instances/3deecd09-48ce-4a4b-9450-af316053bc1e""
  }
}";
                clients.JsonResponse = json;

                clients.ExpectedStatusCode = (HttpStatusCode)201;
                var cfClient = clients.CreateCloudFoundryClient();

                CreateServiceBindingRequest value = new CreateServiceBindingRequest();


                var obj = cfClient.ServiceBindings.CreateServiceBinding(value).Result;


                Assert.AreEqual("a358bc18-522f-4700-90b5-0e42d7efdff2", TestUtil.ToTestableString(obj.EntityMetadata.Guid), true);
                Assert.AreEqual("/v2/service_bindings/a358bc18-522f-4700-90b5-0e42d7efdff2", TestUtil.ToTestableString(obj.EntityMetadata.Url), true);
                Assert.AreEqual("2016-02-09T10:21:53Z", TestUtil.ToTestableString(obj.EntityMetadata.CreatedAt), true);
                Assert.AreEqual("", TestUtil.ToTestableString(obj.EntityMetadata.UpdatedAt), true);
                Assert.AreEqual("b214dfe6-743b-4c0a-9b03-b5ed6a866e9c", TestUtil.ToTestableString(obj.AppGuid), true);
                Assert.AreEqual("3deecd09-48ce-4a4b-9450-af316053bc1e", TestUtil.ToTestableString(obj.ServiceInstanceGuid), true);
                Assert.AreEqual("", TestUtil.ToTestableString(obj.GatewayData), true);
                Assert.AreEqual("", TestUtil.ToTestableString(obj.GatewayName), true);
                Assert.AreEqual("", TestUtil.ToTestableString(obj.SyslogDrainUrl), true);
                Assert.AreEqual("/v2/apps/b214dfe6-743b-4c0a-9b03-b5ed6a866e9c", TestUtil.ToTestableString(obj.AppUrl), true);
                Assert.AreEqual("/v2/user_provided_service_instances/3deecd09-48ce-4a4b-9450-af316053bc1e", TestUtil.ToTestableString(obj.ServiceInstanceUrl), true);
            }
        }
Пример #5
0
        public void CreateServiceBindingTest()
        {
            using (ShimsContext.Create())
            {
                MockClients clients = new MockClients();

                string json = @"{
  ""metadata"": {
    ""guid"": ""f43be5e1-cea9-4061-b8c2-7556ea46e14c"",
    ""url"": ""/v2/service_bindings/f43be5e1-cea9-4061-b8c2-7556ea46e14c"",
    ""created_at"": ""2015-04-16T12:04:14+00:00"",
    ""updated_at"": null
  },
  ""entity"": {
    ""app_guid"": ""f00a7716-66d9-43db-9e78-84eba6eafb56"",
    ""service_instance_guid"": ""efa04183-646b-4602-9ede-b6555287d8e7"",
    ""credentials"": {
      ""creds-key-23"": ""creds-val-23""
    },
    ""binding_options"": {

    },
    ""gateway_data"": null,
    ""gateway_name"": """",
    ""syslog_drain_url"": null,
    ""app_url"": ""/v2/apps/f00a7716-66d9-43db-9e78-84eba6eafb56"",
    ""service_instance_url"": ""/v2/user_provided_service_instances/efa04183-646b-4602-9ede-b6555287d8e7""
  }
}";
                clients.JsonResponse = json;

                clients.ExpectedStatusCode = (HttpStatusCode)201;
                var cfClient = clients.CreateCloudFoundryClient();

                CreateServiceBindingRequest value = new CreateServiceBindingRequest();


                var obj = cfClient.ServiceBindings.CreateServiceBinding(value).Result;


                Assert.AreEqual("f43be5e1-cea9-4061-b8c2-7556ea46e14c", TestUtil.ToTestableString(obj.EntityMetadata.Guid), true);
                Assert.AreEqual("/v2/service_bindings/f43be5e1-cea9-4061-b8c2-7556ea46e14c", TestUtil.ToTestableString(obj.EntityMetadata.Url), true);
                Assert.AreEqual("2015-04-16T12:04:14+00:00", TestUtil.ToTestableString(obj.EntityMetadata.CreatedAt), true);
                Assert.AreEqual("", TestUtil.ToTestableString(obj.EntityMetadata.UpdatedAt), true);
                Assert.AreEqual("f00a7716-66d9-43db-9e78-84eba6eafb56", TestUtil.ToTestableString(obj.AppGuid), true);
                Assert.AreEqual("efa04183-646b-4602-9ede-b6555287d8e7", TestUtil.ToTestableString(obj.ServiceInstanceGuid), true);
                Assert.AreEqual("", TestUtil.ToTestableString(obj.GatewayData), true);
                Assert.AreEqual("", TestUtil.ToTestableString(obj.GatewayName), true);
                Assert.AreEqual("", TestUtil.ToTestableString(obj.SyslogDrainUrl), true);
                Assert.AreEqual("/v2/apps/f00a7716-66d9-43db-9e78-84eba6eafb56", TestUtil.ToTestableString(obj.AppUrl), true);
                Assert.AreEqual("/v2/user_provided_service_instances/efa04183-646b-4602-9ede-b6555287d8e7", TestUtil.ToTestableString(obj.ServiceInstanceUrl), true);
            }
        }
Пример #6
0
        public override bool Execute()
        {
            logger = new Microsoft.Build.Utilities.TaskLoggingHelper(this);

            try
            {
                CloudFoundryClient client = InitClient();

                logger.LogMessage("Binding services to app {0}", CFAppGuid);

                List <string> bindingGuids = new List <string>();

                foreach (string serviceGuid in CFServicesGuids)
                {
                    CreateServiceBindingRequest request = new CreateServiceBindingRequest();
                    request.AppGuid             = new Guid(CFAppGuid);
                    request.ServiceInstanceGuid = new Guid(serviceGuid);

                    try
                    {
                        var result = client.ServiceBindings.CreateServiceBinding(request).Result;
                        bindingGuids.Add(result.EntityMetadata.Guid);
                    }
                    catch (AggregateException ex)
                    {
                        foreach (Exception e in ex.Flatten().InnerExceptions)
                        {
                            if (e is CloudFoundryException)
                            {
                                logger.LogWarning(e.Message);
                            }
                            else
                            {
                                throw;
                            }
                        }
                    }
                }

                CFBindingGuids = bindingGuids.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);
        }
        public void TestCreateServiceBindingRequest()
        {
            string json = @"{
  ""service_instance_guid"": ""0cac3ac1-d421-4f20-ae51-07b3d183df54"",
  ""app_guid"": ""c31a055c-3a3c-4cd2-8135-d053bf638f41""
}";

            CreateServiceBindingRequest request = new CreateServiceBindingRequest();

            request.ServiceInstanceGuid = new Guid("0cac3ac1-d421-4f20-ae51-07b3d183df54");
            request.AppGuid = new Guid("c31a055c-3a3c-4cd2-8135-d053bf638f41");
            string result = JsonConvert.SerializeObject(request, Formatting.None);
            Assert.AreEqual(TestUtil.ToUnformatedJsonString(json), result);
        }
        public void TestCreateServiceBindingRequest()
        {
            string json = @"{
  ""service_instance_guid"": ""efa04183-646b-4602-9ede-b6555287d8e7"",
  ""app_guid"": ""f00a7716-66d9-43db-9e78-84eba6eafb56""
}";

            CreateServiceBindingRequest request = new CreateServiceBindingRequest();

            request.ServiceInstanceGuid = new Guid("efa04183-646b-4602-9ede-b6555287d8e7");
            request.AppGuid             = new Guid("f00a7716-66d9-43db-9e78-84eba6eafb56");
            string result = JsonConvert.SerializeObject(request, Formatting.None);

            Assert.AreEqual(TestUtil.ToUnformatedJsonString(json), result);
        }
Пример #9
0
        public void TestCreateServiceBindingRequest()
        {
            string json = @"{
  ""service_instance_guid"": ""3deecd09-48ce-4a4b-9450-af316053bc1e"",
  ""app_guid"": ""b214dfe6-743b-4c0a-9b03-b5ed6a866e9c""
}";

            CreateServiceBindingRequest request = new CreateServiceBindingRequest();

            request.ServiceInstanceGuid = new Guid("3deecd09-48ce-4a4b-9450-af316053bc1e");
            request.AppGuid             = new Guid("b214dfe6-743b-4c0a-9b03-b5ed6a866e9c");
            string result = JsonConvert.SerializeObject(request, Formatting.None);

            Assert.AreEqual(TestUtil.ToUnformatedJsonString(json), result);
        }
        /// <summary>
        /// Create a Service Binding
        /// <para>For detailed information, see online documentation at: "http://apidocs.cloudfoundry.org/250/service_bindings/create_a_service_binding.html"</para>
        /// </summary>
        public async Task <CreateServiceBindingResponse> CreateServiceBinding(CreateServiceBindingRequest value)
        {
            UriBuilder uriBuilder = new UriBuilder(this.Client.CloudTarget);

            uriBuilder.Path = "/v2/service_bindings";
            var client = this.GetHttpClient();

            client.Uri    = uriBuilder.Uri;
            client.Method = HttpMethod.Post;


            client.Content = ((string)JsonConvert.SerializeObject(value)).ConvertToStream();
            var expectedReturnStatus = 201;
            var response             = await this.SendAsync(client, expectedReturnStatus);

            return(Utilities.DeserializeJson <CreateServiceBindingResponse>(await response.Content.ReadAsStringAsync()));
        }
        public void TestCreateServiceBindingRequest()
        {
            string json = @"{
  ""service_instance_guid"": ""fd2b7dda-e93c-4f5a-bf27-b4e875dbfce9"",
  ""app_guid"": ""fd2b7dda-e93c-4f5a-bf27-b4e875dbfce9"",
  ""parameters"": {
    ""the_service_broker"": ""wants this object""
  }
}";

            CreateServiceBindingRequest request = new CreateServiceBindingRequest();

            request.ServiceInstanceGuid = new Guid("fd2b7dda-e93c-4f5a-bf27-b4e875dbfce9");
            request.AppGuid             = new Guid("fd2b7dda-e93c-4f5a-bf27-b4e875dbfce9");
            request.Parameters          = TestUtil.GetJsonDictonary(@"{""the_service_broker"":""wants this object""}");

            string result = JsonConvert.SerializeObject(request, Formatting.None);

            Assert.AreEqual(TestUtil.ToUnformatedJsonString(json), result);
        }
        public override bool Execute()
        {
            logger = new Microsoft.Build.Utilities.TaskLoggingHelper(this);

            CloudFoundryClient client = InitClient();

            logger.LogMessage("Binding services to app {0}", CFAppGuid);

            List<string> bindingGuids = new List<string>();

            foreach (string serviceGuid in CFServicesGuids)
            {
                CreateServiceBindingRequest request = new CreateServiceBindingRequest();
                request.AppGuid = new Guid(CFAppGuid);
                request.ServiceInstanceGuid = new Guid(serviceGuid);

                try
                {
                    var result = client.ServiceBindings.CreateServiceBinding(request).Result;
                    bindingGuids.Add(result.EntityMetadata.Guid);
                }
                catch (AggregateException ex)
                {
                    foreach (Exception e in ex.Flatten().InnerExceptions)
                    {
                        if (e is CloudFoundryException)
                        {
                            logger.LogWarning(e.Message);
                        }
                        else
                        {
                            throw;
                        }
                    }
                }
            }

            CFBindingGuids = bindingGuids.ToArray();

            return true;
        }
        public void CreateServiceBindingTest()
        {
            using (ShimsContext.Create())
            {
                MockClients clients = new MockClients();

                string json = @"{
  ""metadata"": {
    ""guid"": ""8fdcdd9e-2992-4dfe-bc40-205c8122a97d"",
    ""url"": ""/v2/service_bindings/8fdcdd9e-2992-4dfe-bc40-205c8122a97d"",
    ""created_at"": ""2015-05-19T15:27:19+00:00"",
    ""updated_at"": null
  },
  ""entity"": {
    ""app_guid"": ""c31a055c-3a3c-4cd2-8135-d053bf638f41"",
    ""service_instance_guid"": ""0cac3ac1-d421-4f20-ae51-07b3d183df54"",
    ""credentials"": {
      ""creds-key-435"": ""creds-val-435""
    },
    ""binding_options"": {

    },
    ""gateway_data"": null,
    ""gateway_name"": """",
    ""syslog_drain_url"": null,
    ""app_url"": ""/v2/apps/c31a055c-3a3c-4cd2-8135-d053bf638f41"",
    ""service_instance_url"": ""/v2/user_provided_service_instances/0cac3ac1-d421-4f20-ae51-07b3d183df54""
  }
}";
                clients.JsonResponse = json;

                clients.ExpectedStatusCode = (HttpStatusCode)201;
                var cfClient = clients.CreateCloudFoundryClient();

                CreateServiceBindingRequest value = new CreateServiceBindingRequest();


                var obj = cfClient.ServiceBindings.CreateServiceBinding(value).Result;


                Assert.AreEqual("8fdcdd9e-2992-4dfe-bc40-205c8122a97d", TestUtil.ToTestableString(obj.EntityMetadata.Guid), true);
                Assert.AreEqual("/v2/service_bindings/8fdcdd9e-2992-4dfe-bc40-205c8122a97d", TestUtil.ToTestableString(obj.EntityMetadata.Url), true);
                Assert.AreEqual("2015-05-19T15:27:19+00:00", TestUtil.ToTestableString(obj.EntityMetadata.CreatedAt), true);
                Assert.AreEqual("", TestUtil.ToTestableString(obj.EntityMetadata.UpdatedAt), true);
                Assert.AreEqual("c31a055c-3a3c-4cd2-8135-d053bf638f41", TestUtil.ToTestableString(obj.AppGuid), true);
                Assert.AreEqual("0cac3ac1-d421-4f20-ae51-07b3d183df54", TestUtil.ToTestableString(obj.ServiceInstanceGuid), true);
                Assert.AreEqual("", TestUtil.ToTestableString(obj.GatewayData), true);
                Assert.AreEqual("", TestUtil.ToTestableString(obj.GatewayName), true);
                Assert.AreEqual("", TestUtil.ToTestableString(obj.SyslogDrainUrl), true);
                Assert.AreEqual("/v2/apps/c31a055c-3a3c-4cd2-8135-d053bf638f41", TestUtil.ToTestableString(obj.AppUrl), true);
                Assert.AreEqual("/v2/user_provided_service_instances/0cac3ac1-d421-4f20-ae51-07b3d183df54", TestUtil.ToTestableString(obj.ServiceInstanceUrl), true);

            }
        }
 private Task <CreateServiceBindingResponse> CustomServiceBinding(CloudController.V2.Client.Base.AbstractServiceBindingsEndpoint arg1, CreateServiceBindingRequest arg2)
 {
     return(Task.Factory.StartNew <CreateServiceBindingResponse>(() =>
     {
         return new CreateServiceBindingResponse()
         {
             EntityMetadata = new Metadata()
         };
     }));
 }
Пример #15
0
        public override bool Execute()
        {
            this.CFOrganization = this.CFOrganization.Trim();
            this.CFSpace        = this.CFSpace.Trim();

            this.Logger = new TaskLogger(this);

            try
            {
                CloudFoundryClient client = InitClient();

                var app = LoadAppFromManifest();

                Guid?spaceGuid = null;

                if ((!string.IsNullOrWhiteSpace(this.CFSpace)) && (!string.IsNullOrWhiteSpace(this.CFOrganization)))
                {
                    spaceGuid = Utils.GetSpaceGuid(client, this.Logger, this.CFOrganization, this.CFSpace);
                    if (spaceGuid == null)
                    {
                        return(false);
                    }
                }

                var appGuid = Utils.GetAppGuid(client, app.Name, spaceGuid.Value);
                if (appGuid.HasValue == false)
                {
                    Logger.LogError("Could not find app {0} in space {1}", app.Name, this.CFSpace);
                    return(false);
                }

                Logger.LogMessage("Binding services to app {0}", app.Name);

                List <string> bindingGuids = new List <string>();
                if (app.Services != null)
                {
                    foreach (string serviceName in app.Services)
                    {
                        var serviceGuid = Utils.GetServiceGuid(client, serviceName, spaceGuid.Value);

                        if (serviceGuid.HasValue)
                        {
                            CreateServiceBindingRequest request = new CreateServiceBindingRequest();
                            request.AppGuid             = appGuid.Value;
                            request.ServiceInstanceGuid = serviceGuid.Value;

                            try
                            {
                                var result = client.ServiceBindings.CreateServiceBinding(request).Result;
                                bindingGuids.Add(result.EntityMetadata.Guid);
                            }
                            catch (AggregateException ex)
                            {
                                foreach (Exception e in ex.Flatten().InnerExceptions)
                                {
                                    if (e is CloudFoundryException)
                                    {
                                        Logger.LogWarning(e.Message);
                                    }
                                    else
                                    {
                                        this.Logger.LogError("Bind Services failed", ex);
                                        return(false);
                                    }
                                }
                            }
                        }
                        else
                        {
                            Logger.LogError("Could not find service instance {0}", serviceName);
                        }
                    }

                    this.CFBindingGuids = bindingGuids.ToArray();
                }
                else
                {
                    return(true);
                }
            }
            catch (Exception exception)
            {
                this.Logger.LogError("Bind Services failed", exception);
                return(false);
            }

            return(true);
        }
Пример #16
0
 /// <summary>
 /// Create a Service Binding
 /// <para>For detailed information, see online documentation at: "http://apidocs.cloudfoundry.org/195/service_bindings/create_a_service_binding.html"</para>
 /// </summary>
 public async Task<CreateServiceBindingResponse> CreateServiceBinding(CreateServiceBindingRequest value)
 {
     UriBuilder uriBuilder = new UriBuilder(this.Client.CloudTarget);
     uriBuilder.Path = "/v2/service_bindings";
     var client = this.GetHttpClient();
     client.Uri = uriBuilder.Uri;
     client.Method = HttpMethod.Post;
     var authHeader = await BuildAuthenticationHeader();
     if (!string.IsNullOrWhiteSpace(authHeader.Key))
     {
         client.Headers.Add(authHeader);
     }
     client.ContentType = "application/x-www-form-urlencoded";
     client.Content = JsonConvert.SerializeObject(value).ConvertToStream();
     var expectedReturnStatus = 201;
     var response = await this.SendAsync(client, expectedReturnStatus);
     return Utilities.DeserializeJson<CreateServiceBindingResponse>(await response.ReadContentAsStringAsync());
 }