Beispiel #1
0
        public async Task <EnviroVmUrl> GetEnviroSkytap(UserCreateDto user)
        {
            //SkytapDataEnviroModel skytapDataEnviroModel;
            EnviroIdModel enviro   = new EnviroIdModel();
            String        enviroId = "";

            //Console.WriteLine("IDSKY " + user.idSkytap);
            using (var httpClient = new HttpClient())
            {
                //Console.WriteLine( user.Email + " " + user.Password);
                var authString2 = Convert.ToBase64String(Encoding.UTF8.GetBytes($"{user.Email}:{user.Password}"));
                httpClient.DefaultRequestHeaders.Clear();
                httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", authString2);

                using (var response = await httpClient.GetAsync("https://cloud.skytap.com/configurations.json"))
                {
                    //Console.WriteLine( response.StatusCode);
                    string apiResponse = await response.Content.ReadAsStringAsync();

                    //Console.WriteLine( apiResponse);
                    var lalistIdEnviro = JsonConvert.DeserializeObject <List <EnviroIdModel> >(apiResponse);

                    foreach (var envir in lalistIdEnviro)
                    {
                        enviroId = envir.id;
                        break;
                    }
                }
            }
            EnviroVmUrl enviroVmUrl = await GetVmsSkytap(user, enviroId);

            return(enviroVmUrl);
        }
Beispiel #2
0
        public async Task <EnviroVmUrl> GetVmsSkytap(UserCreateDto user, string enviro)
        {
            SkytapDataEnviroModel skytapDataEnviroModel;
            EnviroVmUrl           enviroVmUrl = new EnviroVmUrl();

            using (var httpClient = new HttpClient())
            {
                var authString2 = Convert.ToBase64String(Encoding.UTF8.GetBytes($"{user.Email}:{user.Password}"));
                httpClient.DefaultRequestHeaders.Clear();
                httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", authString2);

                using (var response = await httpClient.GetAsync($"https://cloud.skytap.com/configurations/{enviro}.json"))
                {
                    string apiResponse = await response.Content.ReadAsStringAsync();

                    skytapDataEnviroModel = JsonConvert.DeserializeObject <SkytapDataEnviroModel>(apiResponse);

                    string vm_id = "";
                    string l_url = "";
                    foreach (EnviroIdModel vms in skytapDataEnviroModel.vms)
                    {
                        vm_id = vms.id;
                    }

                    foreach (SharingUrl url in skytapDataEnviroModel.publish_sets)
                    {
                        foreach (SharingUrlModel deskUrl in url.vms)
                        {
                            l_url = $"{deskUrl.desktop_url}?vm_id={deskUrl.id}";
                        }
                    }
                    enviroVmUrl.enviro = enviro;
                    enviroVmUrl.vm     = vm_id;
                    enviroVmUrl.url    = l_url;
                }
            }
            return(enviroVmUrl);
        }
Beispiel #3
0
        public async Task <string> UserSignIn(UserCreateDto user)
        {
            //SkytapModelToken skytapModelToken = await GetTokenDb(user.Email);
            user.Email = user.Email + "addvals";
            user.Login = user.Email;

            try
            {
                /* récupère l'enviro si il existe, le supprime et en crée un nouveau */

                EnviroVmUrl enviroEtVm1 = await GetEnviroSkytap(user);


                await DeleteEnviroSkytap(user, enviroEtVm1.enviro);


                SkytapDataEnviroModel skytapDataEnviroModel = await CreateEnviroSkytap(user);


                Console.WriteLine("GET/DELETE/CREATE");
            }
            catch (System.Exception)
            {
                /* création d'environnement */
                SkytapDataEnviroModel skytapDataEnviroModel = await CreateEnviroSkytap(user);
            }

            /* récupère les informations de l'environnement */
            EnviroVmUrl enviroVmUrl = await GetEnviroSkytap(user);

            /* arret automatique (BETA) */
            await shutdown_on_idle(user, enviroVmUrl.enviro);

            /* Lancement de la machine */
            //Console.WriteLine("/UpdateStatsSkytap");
            await UpdateStatsSkytap(user, enviroVmUrl.enviro);

            Console.WriteLine("-----------------------------------------");
            Console.WriteLine("USER : "******"TOKEN : " + skytapModelToken.api_token);
            Console.WriteLine("ENVIRO : " + enviroVmUrl.enviro);
            Console.WriteLine("VM : " + enviroVmUrl.vm);

            /* Création de la machine partagé */
            string ok = await CreateSharingSkytap(user, enviroVmUrl.enviro);

            /* Récupère l'URL de la machine partagé */
            SharingUrl sharingUrl = await GetSharing(user, enviroVmUrl.enviro);

            /* récupère les informations de l'environnement */
            EnviroVmUrl urlFinal = await GetEnviroSkytap(user);

            /* Maj des access de la machine partagé*/
            await UpdateAccesSharingSkytap(user, enviroVmUrl.enviro, enviroVmUrl.vm, sharingUrl.id);

            Console.WriteLine("-----------------------------------------");
            Console.WriteLine("URL : " + urlFinal.url);
            Console.WriteLine("-----------------------------------------");

            return(urlFinal.url);

            // return Ok();
        }