Exemplo n.º 1
0
        public async Task <ServerDTO> CreateServer(string name, string imageRef, string flavorRef, string idNetwork)
        {
            var payload = new ComputeDTO
            {
                Server = new ServerDTO
                {
                    ImageRef = imageRef,
                    Name     = name,
                    Networks = new NetworkDTO[] {
                        new NetworkDTO {
                            Uuid = idNetwork
                        }
                    },
                    FlavorRef = flavorRef,
                }
            };

            var server = await HttpClientPostComputeApi <ServerDTO>(_configuration, "servers", "server", payload);

            return(server);
        }
Exemplo n.º 2
0
        public async Task <A> HttpClientPostComputeApi <A>(IConfiguration configuration, string endPoint, string propertyReturn, ComputeDTO payload)
        {
            var client = _httpClientFactory.CreateClient("ComputeAPI");

            client.DefaultRequestHeaders.TryAddWithoutValidation("X-Auth-Token", await GetOpenstackToken(configuration));

            var jsonSerializerSettings = new JsonSerializerSettings();

            jsonSerializerSettings.MissingMemberHandling = MissingMemberHandling.Ignore;
            var stringPayload = await Task.Run(() => JsonConvert.SerializeObject(payload, new JsonSerializerSettings
            {
                NullValueHandling = NullValueHandling.Ignore
            }));

            var httpContent = new StringContent(stringPayload, Encoding.UTF8, "application/json");

            httpContent.Headers.ContentLength = stringPayload.Length;

            var response = await client.PostAsync(client.BaseAddress + endPoint, httpContent);

            response.EnsureSuccessStatusCode();
            string conteudo = JObject.Parse(response.Content.ReadAsStringAsync().Result).ToString();

            var parsedObject = JObject.Parse(conteudo);

            conteudo = parsedObject[propertyReturn].ToString();

            A retorno = JsonConvert.DeserializeObject <A>(conteudo, jsonSerializerSettings);

            return(retorno);
        }