Beispiel #1
0
        public async Task <ActionResult> Detail(ExecuteVM executeVm)
        {
            var credential   = CertificateAuthenticationHelper.GetCredential(AMUWHelper.GetAppSetting("Azure-SubscriptionId"), AMUWHelper.GetAppSetting("Azure-Credential"));
            var cloudService = await CloudContext.Clients.CreateComputeManagementClient(credential).HostedServices.GetDetailedAsync(executeVm.ServiceName);

            var deployment = cloudService.Deployments.FirstOrDefault();
            var vmDetail   = deployment.RoleInstances.FirstOrDefault(x => x.RoleName == executeVm.RoleName);
            var viewModel  = new VirtualMachineDetailViewModel();

            viewModel.DeploymentId = cloudService.Deployments.FirstOrDefault().PrivateId;
            viewModel.VirtualIP    = deployment.VirtualIPAddresses.Count > 0 ? deployment.VirtualIPAddresses.FirstOrDefault().Address : "";
            viewModel.InternalIP   = vmDetail.IPAddress;
            viewModel.RoleName     = executeVm.RoleName;
            viewModel.Size         = vmDetail.InstanceSize;
            viewModel.Status       = vmDetail.PowerState.ToString();
            var userVmList = _vmUserService.GetByVMName(executeVm.RoleName);

            viewModel.UserList = new List <string>();
            foreach (var item in userVmList)
            {
                var emailAddress = UserManager.FindById(item.User.UserId).Email;
                viewModel.UserList.Add(item.User.Username + "(" + emailAddress + ")");
            }
            viewModel.UserRole = AMUW.Helpers.AMUWHelper.GetRole();
            return(View(viewModel));
        }
Beispiel #2
0
        public async Task <HttpResponseMessage> Execute(ExecuteVM executeVm)
        {
            var credential = CertificateAuthenticationHelper.GetCredential(AMUWHelper.GetAppSetting("Azure-SubscriptionId"), AMUWHelper.GetAppSetting("Azure-Credential"));
            var requestId  = string.Empty;

            if (executeVm.Action == "start")
            {
                var execute = await CloudContext.Clients.CreateComputeManagementClient(credential).VirtualMachines.StartAsync(executeVm.ServiceName, executeVm.DeploymentName, executeVm.RoleName);

                requestId = execute.RequestId;
            }
            else
            {
                var execute = await CloudContext.Clients.CreateComputeManagementClient(credential).VirtualMachines.ShutdownAsync(
                    executeVm.ServiceName,
                    executeVm.DeploymentName,
                    executeVm.RoleName, new VirtualMachineShutdownParameters()
                {
                    PostShutdownAction = PostShutdownAction.StoppedDeallocated
                });

                requestId = execute.RequestId;
            }
            return(Request.CreateResponse <string>(HttpStatusCode.OK, requestId));
        }
Beispiel #3
0
        public JsonResult AssignVM(ExecuteVM executeVm, int id)
        {
            var check = _vmUserService.CheckUser(id, executeVm.RoleName);

            if (!check)
            {
                var assignVm = new VMUser();
                assignVm.UserId         = id;
                assignVm.ServiceName    = executeVm.ServiceName;
                assignVm.DeploymentName = executeVm.DeploymentName;
                assignVm.VMName         = executeVm.RoleName;
                _vmUserService.AssignUserToVM(assignVm);
                return(Json("Success"));
            }
            else
            {
                return(Json("This user already has " + executeVm.RoleName));
            }
        }
        public override IDock CreateLayout()
        {
            var languagesVM = new LanguagesVM()
            {
                Id = nameof(LanguagesVM)
            };
            var propertiesVM = new PropertiesVM()
            {
                Id = nameof(PropertiesVM)
            };
            var executeVM = new ExecuteVM()
            {
                Id = nameof(ExecuteVM)
            };
            var resultListVM = new ResultListVM()
            {
                Id = nameof(ResultListVM)
            };

            var mainLayout = new ProportionalDock
            {
                Id               = DockableExplorerLocator.IdUniversalDock,
                Orientation      = Orientation.Horizontal,
                Proportion       = double.NaN,
                ActiveDockable   = null,
                VisibleDockables = CreateList <IDockable>
                                   (
                    new ProportionalDock
                {
                    Orientation      = Orientation.Vertical,
                    Proportion       = 0.8,
                    ActiveDockable   = null,
                    VisibleDockables = CreateList <IDockable>
                                       (
                        new DocumentDock
                    {
                        Id               = DockableExplorerLocator.IdResultsDock,
                        IsCollapsable    = false,
                        ActiveDockable   = null,
                        VisibleDockables = CreateList <IDockable>()
                    },
                        new SplitterDock(),
                        new ToolDock
                    {
                        Id               = DockableExplorerLocator.IdExecuteDock,
                        ActiveDockable   = executeVM,
                        Proportion       = 0.2,
                        VisibleDockables = CreateList <IDockable>(executeVM)
                    }
                                       )
                },
                    new SplitterDock(),
                    new ProportionalDock
                {
                    Orientation      = Orientation.Vertical,
                    Proportion       = double.NaN,
                    ActiveDockable   = null,
                    VisibleDockables = CreateList <IDockable>
                                       (
                        new ToolDock
                    {
                        Id =
                            DockableExplorerLocator.IdResultListDock +
                            " " +
                            DockableExplorerLocator.IdLanguagesDock,
                        ActiveDockable   = resultListVM,
                        VisibleDockables = CreateList <IDockable>(resultListVM, languagesVM)
                    },
                        new SplitterDock(),
                        new ToolDock
                    {
                        Id               = DockableExplorerLocator.IdPropertiesDock,
                        ActiveDockable   = propertiesVM,
                        VisibleDockables = CreateList <IDockable>(propertiesVM)
                    }
                                       )
                }
                                   )
            };

            var projectView = new ProjectViewportVM
            {
                Id               = "Project",
                Title            = "Project",
                ActiveDockable   = mainLayout,
                VisibleDockables = CreateList <IDockable>(mainLayout)
            };

            var root = CreateRootDock();

            root.ActiveDockable   = projectView;
            root.DefaultDockable  = projectView;
            root.VisibleDockables = CreateList <IDockable>(projectView);

            return(root);
        }