Ejemplo n.º 1
0
        private async Task <OperationResult> StartGoogleCloudInstance(GoogleCloudModel model)
        {
            try
            {
                var computeService = new ComputeService(new BaseClientService.Initializer
                {
                    HttpClientInitializer = await GetCredential(model),
                    ApplicationName       = "Blockbase",
                });

                var name = SdkContext.RandomResourceName("blockbase-", 2);

                var zone = "us-central1-a";

                var requestBody = JsonConvert.DeserializeObject <Google.Apis.Compute.v1.Data.Instance>(Resources.GOOGLE_REQUEST_BODY);
                requestBody.Name = name;

                var request = computeService.Instances.Insert(requestBody, model.ProjectId, zone);

                var response = request.Execute();
                return(new OperationResult()
                {
                    IsSuccessful = true
                });
            }
            catch (Exception e)
            {
                return(new OperationResult()
                {
                    IsSuccessful = false,
                    ErrorMessage = $"Instance failed ( Error: {e.Message} )"
                });
            }
        }
Ejemplo n.º 2
0
        public async Task <ViewResult> CreateWithModel(GoogleCloudModel model)
        {
            var instanceStartResult = await StartGoogleCloudInstance(model);

            if (!instanceStartResult.IsSuccessful)
            {
                ViewBag.ErrorMessage = instanceStartResult.ErrorMessage;
            }
            return(View("Index", FormViewModel.From(model)));
        }
Ejemplo n.º 3
0
        public static async Task <GoogleCredential> GetCredential(GoogleCloudModel model)
        {
            model.PrivateKey = Regex.Replace(model.PrivateKey, @"\\n", "");


            var credentialsJson = JsonConvert.SerializeObject(model);

            {
                var credential = await Task.Run(() => GoogleCredential.FromJson(credentialsJson));

                if (credential.IsCreateScopedRequired)
                {
                    credential = credential.CreateScoped("https://www.googleapis.com/auth/cloud-platform");
                }
                return(credential);
            }
        }