Пример #1
0
        private ProvisioningRequest CreateRequest(ProvisioningViewModel provisioningViewModel, bool vnetCreatedBefore)
        {
            ProvisioningRequest provisioningRequest = new ProvisioningRequest(provisioningViewModel.ProvisionAzure, provisioningViewModel.ProvisionVSTS,
                                                                              provisioningViewModel.ProjectName, provisioningViewModel.Email, provisioningViewModel.OwnerObjectId);

            if (provisioningViewModel.ProvisionAzure)
            {
                if (provisioningViewModel.ProvisionDevEnvironment)
                {
                    provisioningRequest.Environments.Add(CreateEnvironment(provisioningViewModel, Environments.Development));
                }

                if (provisioningViewModel.ProvisionTestEnvironment)
                {
                    provisioningRequest.Environments.Add(CreateEnvironment(provisioningViewModel, Environments.Test));
                }

                if (provisioningViewModel.ProvisionStagingEnvironment)
                {
                    provisioningRequest.Environments.Add(CreateEnvironment(provisioningViewModel, Environments.Staging));
                }
            }

            if (!vnetCreatedBefore && provisioningRequest.Environments.Any())
            {
                provisioningRequest.Environments.First().CreateVNet = true;
            }

            return(provisioningRequest);
        }
Пример #2
0
        public virtual IActionResult CreateProvisioningJob([FromBody] ProvisioningRequest provisioningRequest)
        {
            //TODO: Uncomment the next line to return response 200 or use other options such as return this.NotFound(), return this.BadRequest(..), ...
            // return StatusCode(200, default(Job));
            //TODO: Uncomment the next line to return response 401 or use other options such as return this.NotFound(), return this.BadRequest(..), ...
            // return StatusCode(401);
            //TODO: Uncomment the next line to return response 404 or use other options such as return this.NotFound(), return this.BadRequest(..), ...
            // return StatusCode(404);
            //TODO: Uncomment the next line to return response 429 or use other options such as return this.NotFound(), return this.BadRequest(..), ...
            // return StatusCode(429);
            //TODO: Uncomment the next line to return response 500 or use other options such as return this.NotFound(), return this.BadRequest(..), ...
            // return StatusCode(500);
            //TODO: Uncomment the next line to return response 503 or use other options such as return this.NotFound(), return this.BadRequest(..), ...
            // return StatusCode(503);
            //TODO: Uncomment the next line to return response 0 or use other options such as return this.NotFound(), return this.BadRequest(..), ...
            // return StatusCode(0);
            string exampleJson = null;

            exampleJson = "{\n  \"data\" : \"{}\",\n  \"log\" : [ \"log\", \"log\" ],\n  \"progress\" : 8,\n  \"id\" : \"046b6c7f-0b8a-43b9-b35d-6489e6daee91\",\n  \"type\" : \"type\",\n  \"status\" : \"active\"\n}";

            var example = exampleJson != null
            ? JsonConvert.DeserializeObject <Job>(exampleJson)
            : default(Job);

            //TODO: Change the data returned
            return(new ObjectResult(example));
        }
Пример #3
0
        async Task <bool> CreateResource(ProvisioningRequest request, string url)
        {
            var client = new HttpClient
            {
                // Update port # in the following line.
                BaseAddress = new Uri(url)
            };

            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Accept.Add(
                new MediaTypeWithQualityHeaderValue("application/json"));

            var json    = JsonConvert.SerializeObject(request);
            var content = new StringContent(json.ToLower(), Encoding.UTF8, "application/json");
            HttpResponseMessage response = await client.PostAsync(url, content);

            response.EnsureSuccessStatusCode();

            // return URI of the created resource.
            return(response.IsSuccessStatusCode);
        }
Пример #4
0
        public ActionResult Create(ProvisioningRequest provisionRequest)
        {
            Plan plan;

            if (!Enum.TryParse <Plan>(provisionRequest.plan, true, out plan))
            {
                throw new ArgumentException(string.Format("Plan \"{0}\" is not a valid plan", provisionRequest.plan));
            }

            var resource = new Resource
            {
                CreatedBy       = string.Format("{0};{1}", Request.GetForwardedHostAddress(), User.Identity.Name),
                Id              = Guid.NewGuid(),
                Plan            = plan,
                ProviderId      = provisionRequest.heroku_id,
                ProvisionStatus = ProvisionStatus.Provisioning,
            };

            // TODO: Persist the resource

            // TODO: Provision the resource

            resource.ProvisionStatus = ProvisionStatus.Provisioned;

            // TODO: Persist the status change

            var output = new
            {
                id     = resource.Id,
                config = new
                {
                    CONFIG_VAR = "CONFIGURATION_VALUE",
                }
            };

            return(Json(output));
        }
Пример #5
0
        /// <summary>
        /// Create a new provisioning job by sending a ProvisioningRequest Create a new provisioning job by sending a ProvisioningRequest
        /// </summary>
        /// <exception cref="Org.OpenAPITools.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="provisioningRequest">A ProvisioningRequest object describing the job to execute</param>
        /// <returns>Task of ApiResponse (Job)</returns>
        public async System.Threading.Tasks.Task <Org.OpenAPITools.Client.ApiResponse <Job> > CreateProvisioningJobAsyncWithHttpInfo(ProvisioningRequest provisioningRequest)
        {
            // verify the required parameter 'provisioningRequest' is set
            if (provisioningRequest == null)
            {
                throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'provisioningRequest' when calling JobsApi->CreateProvisioningJob");
            }


            Org.OpenAPITools.Client.RequestOptions localVarRequestOptions = new Org.OpenAPITools.Client.RequestOptions();

            String[] _contentTypes = new String[] {
                "application/json"
            };

            // to determine the Accept header
            String[] _accepts = new String[] {
                "application/json"
            };

            foreach (var _contentType in _contentTypes)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", _contentType);
            }

            foreach (var _accept in _accepts)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", _accept);
            }

            localVarRequestOptions.Data = provisioningRequest;

            // authentication (appId) required
            if (!String.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("X-APP-ID")))
            {
                localVarRequestOptions.HeaderParameters.Add("X-APP-ID", this.Configuration.GetApiKeyWithPrefix("X-APP-ID"));
            }
            // authentication (appSecret) required
            if (!String.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("X-API-KEY")))
            {
                localVarRequestOptions.HeaderParameters.Add("X-API-KEY", this.Configuration.GetApiKeyWithPrefix("X-API-KEY"));
            }

            // make the HTTP request

            var localVarResponse = await this.AsynchronousClient.PostAsync <Job>("/jobs/provisioning", localVarRequestOptions, this.Configuration);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateProvisioningJob", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return(localVarResponse);
        }
Пример #6
0
        /// <summary>
        /// Create a new provisioning job by sending a ProvisioningRequest Create a new provisioning job by sending a ProvisioningRequest
        /// </summary>
        /// <exception cref="Org.OpenAPITools.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="provisioningRequest">A ProvisioningRequest object describing the job to execute</param>
        /// <returns>Task of Job</returns>
        public async System.Threading.Tasks.Task <Job> CreateProvisioningJobAsync(ProvisioningRequest provisioningRequest)
        {
            Org.OpenAPITools.Client.ApiResponse <Job> localVarResponse = await CreateProvisioningJobAsyncWithHttpInfo(provisioningRequest);

            return(localVarResponse.Data);
        }
Пример #7
0
        /// <summary>
        /// Create a new provisioning job by sending a ProvisioningRequest Create a new provisioning job by sending a ProvisioningRequest
        /// </summary>
        /// <exception cref="Org.OpenAPITools.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="provisioningRequest">A ProvisioningRequest object describing the job to execute</param>
        /// <returns>ApiResponse of Job</returns>
        public Org.OpenAPITools.Client.ApiResponse <Job> CreateProvisioningJobWithHttpInfo(ProvisioningRequest provisioningRequest)
        {
            // verify the required parameter 'provisioningRequest' is set
            if (provisioningRequest == null)
            {
                throw new Org.OpenAPITools.Client.ApiException(400, "Missing required parameter 'provisioningRequest' when calling JobsApi->CreateProvisioningJob");
            }

            Org.OpenAPITools.Client.RequestOptions localVarRequestOptions = new Org.OpenAPITools.Client.RequestOptions();

            String[] _contentTypes = new String[] {
                "application/json"
            };

            // to determine the Accept header
            String[] _accepts = new String[] {
                "application/json"
            };

            var localVarContentType = Org.OpenAPITools.Client.ClientUtils.SelectHeaderContentType(_contentTypes);

            if (localVarContentType != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Content-Type", localVarContentType);
            }

            var localVarAccept = Org.OpenAPITools.Client.ClientUtils.SelectHeaderAccept(_accepts);

            if (localVarAccept != null)
            {
                localVarRequestOptions.HeaderParameters.Add("Accept", localVarAccept);
            }

            localVarRequestOptions.Data = provisioningRequest;

            // authentication (appId) required
            if (!String.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("X-APP-ID")))
            {
                localVarRequestOptions.HeaderParameters.Add("X-APP-ID", this.Configuration.GetApiKeyWithPrefix("X-APP-ID"));
            }
            // authentication (appSecret) required
            if (!String.IsNullOrEmpty(this.Configuration.GetApiKeyWithPrefix("X-API-KEY")))
            {
                localVarRequestOptions.HeaderParameters.Add("X-API-KEY", this.Configuration.GetApiKeyWithPrefix("X-API-KEY"));
            }

            // make the HTTP request
            var localVarResponse = this.Client.Post <Job>("/jobs/provisioning", localVarRequestOptions, this.Configuration);

            if (this.ExceptionFactory != null)
            {
                Exception _exception = this.ExceptionFactory("CreateProvisioningJob", localVarResponse);
                if (_exception != null)
                {
                    throw _exception;
                }
            }

            return(localVarResponse);
        }
Пример #8
0
 /// <summary>
 /// Create a new provisioning job by sending a ProvisioningRequest Create a new provisioning job by sending a ProvisioningRequest
 /// </summary>
 /// <exception cref="Org.OpenAPITools.Client.ApiException">Thrown when fails to make API call</exception>
 /// <param name="provisioningRequest">A ProvisioningRequest object describing the job to execute</param>
 /// <returns>Job</returns>
 public Job CreateProvisioningJob(ProvisioningRequest provisioningRequest)
 {
     Org.OpenAPITools.Client.ApiResponse <Job> localVarResponse = CreateProvisioningJobWithHttpInfo(provisioningRequest);
     return(localVarResponse.Data);
 }
Пример #9
0
        public async Task <bool> Trigger(ProvisioningRequest request)
        {
            string url = _settings.GetProvisioningUrl();

            return(await CreateResource(request, url));
        }