Example #1
0
        public List<Models.AssignedVmModel> GenerateVMsForUsers(string serviceNameBase, VMConfigModel vmConfig, List<Models.VMUserModel> users)
        {
            _logger.Info("Entering GenerateVMsForUsers stub. [serviceNameBase:{0}; sourceVhdName:{1}; users:{2}]",
                serviceNameBase, vmConfig.ImageName, users.Count);

            List<AssignedVmModel> result = new List<AssignedVmModel>();
            foreach (VMUserModel user in users)
            {
                AssignedVmModel assignedVm = new AssignedVmModel
                {
                    UserId = user.IdentityId,
                    UserName = user.Username,
                    Password = user.Password,
                    VmName = "VM_" + user.Username,
                    VmRdpPort = 567
                };
                result.Add(assignedVm);
            }
            Thread.Sleep(1000);

            _logger.Info("Exiting GenerateVMsForUsers stub. [serviceNameBase:{0}; sourceVhdName:{1}; users:{2}]",
                serviceNameBase, vmConfig.ImageName, users.Count);
            return result;
        }
Example #2
0
        public AssignedVmModel GenerateVm(string serviceBaseName, VMConfigModel vmConfig, VMUserModel user)
        {
            //TODO: refactor GenerateVMsForUsers to be used instead of this one

            if (serviceBaseName.Length > 10) throw new ArgumentOutOfRangeException("serviceBaseName can't have more than 10 characters.");

            //find a name that is available
            Random r = new Random();
            string serviceName = null;
            HostedServiceCheckNameAvailabilityResponse availableResponse;

            do
            {
                int randomValue = r.Next(99999);
                serviceName = serviceBaseName + randomValue;

                availableResponse = _compute.HostedServices.CheckNameAvailability(serviceName);

            } while (!availableResponse.IsAvailable);

            var createCloudService = _compute.HostedServices.Create(
                new HostedServiceCreateParameters
                {
                    ServiceName = serviceName,
                    Location = vmConfig.Region
                });

            string virtualMachineName = serviceName;

            //TODO: need a status check
            GenerateVM(serviceName, vmConfig, virtualMachineName, RdpPortBase, user,
                firstVMInDeployment: true);
            AssignedVmModel assignedVm = new AssignedVmModel
            {
                UserId = user.IdentityId,
                UserName = user.Username,
                VmName = virtualMachineName,
                VmRdpPort = RdpPortBase,
                Password = user.Password
            };

            return assignedVm;
        }