public BaseDeploymentConfig()
 {
     Name         = string.Empty;
     SnapshotPath = string.Empty;
     LaunchJson   = string.Empty;
     Region       = DeploymentRegionCode.EU;
     Tags         = new List <string>();
 }
 public BaseDeploymentConfig()
 {
     Name                   = string.Empty;
     SnapshotPath           = string.Empty;
     LaunchJson             = string.Empty;
     Region                 = DeploymentRegionCode.EU;
     Cluster                = string.Empty;
     DeploymentLocationType = DeploymentLocationType.Region;
     Tags                   = new List <string>();
 }
Esempio n. 3
0
            private void OnGUI()
            {
                var newProjectName = EditorGUILayout.TextField("Project Name", projectName);

                if (!string.Equals(newProjectName, projectName))
                {
                    deploymentList.Clear();
                }

                projectName = newProjectName;
                var validProjectName = true;

                if (!ValidateProjectName(projectName))
                {
                    EditorGUILayout.HelpBox("Please specify a valid project name.", MessageType.Error);
                    validProjectName = false;
                }

                // Upload assembly.
                EditorGUILayout.Space();
                EditorGUILayout.LabelField("Assembly", EditorStyles.boldLabel);
                uploadAssemblyName  = EditorGUILayout.TextField("Assembly Name", uploadAssemblyName).Trim();
                forceUploadAssembly = EditorGUILayout.Toggle("Force Upload", forceUploadAssembly);
                var validUploadAssembly = true;

                if (!ValidateAssemblyName(uploadAssemblyName))
                {
                    EditorGUILayout.HelpBox("Please specify a valid assembly name.", MessageType.Error);
                    validUploadAssembly = false;
                }

                using (new EditorGUI.DisabledGroupScope(runningUploadAssemblyTask != null || !validUploadAssembly ||
                                                        !validProjectName))
                {
                    if (GUILayout.Button("Upload Assembly"))
                    {
                        runningUploadAssemblyTask = TriggerUploadAssemblyAsync();
                    }
                }

                // Deployment launcher.
                EditorGUILayout.Space();
                EditorGUILayout.LabelField("Deployment Launcher", EditorStyles.boldLabel);
                assemblyName         = EditorGUILayout.TextField("Assembly Name", assemblyName).Trim();
                deploymentName       = EditorGUILayout.TextField("Deployment Name", deploymentName).Trim();
                snapshotPath         = EditorGUILayout.TextField("Snapshot File", snapshotPath);
                mainLaunchJson       = EditorGUILayout.TextField("Launch Config File", mainLaunchJson);
                deploymentRegionCode = (DeploymentRegionCode)EditorGUILayout.EnumPopup(
                    "Deployment Region", deploymentRegionCode);
                using (var simPlayerDeploymentScope =
                           new EditorGUILayout.ToggleGroupScope("Enable Simulated Players", simPlayerDeploymentEnabled))
                {
                    simPlayerDeploymentEnabled = simPlayerDeploymentScope.enabled;
                    using (var overrideNameScope =
                               new EditorGUILayout.ToggleGroupScope("Override Name", simPlayerCustomDeploymentNameEnabled))
                    {
                        simPlayerCustomDeploymentNameEnabled = overrideNameScope.enabled;
                        simPlayerDeploymentName = EditorGUILayout.TextField("Deployment Name",
                                                                            simPlayerCustomDeploymentNameEnabled
                                ? simPlayerDeploymentName
                                : deploymentName + "_sim_players");
                    }

                    simPlayerLaunchJson = EditorGUILayout.TextField("Launch Config File", simPlayerLaunchJson);
                }

                var validLaunchParameters = true;

                if (!ValidateAssemblyName(assemblyName))
                {
                    EditorGUILayout.HelpBox("Please specify a valid assembly name.", MessageType.Error);
                    validLaunchParameters = false;
                }
                else if (!ValidateDeploymentName(deploymentName))
                {
                    EditorGUILayout.HelpBox("Please specify a valid deployment name.", MessageType.Error);
                    validLaunchParameters = false;
                }
                else if (simPlayerDeploymentEnabled && !ValidateDeploymentName(simPlayerDeploymentName))
                {
                    EditorGUILayout.HelpBox("Please specify a valid simulated players deployment name.",
                                            MessageType.Error);
                    validLaunchParameters = false;
                }

                using (new EditorGUI.DisabledGroupScope(runningLaunchTask != null || !validLaunchParameters ||
                                                        !validProjectName))
                {
                    if (GUILayout.Button(simPlayerDeploymentEnabled ? "Launch Deployments" : "Launch Deployment"))
                    {
                        runningLaunchTask = TriggerLaunchDeploymentAsync();
                    }
                }

                if (runningLaunchTask != null)
                {
                    EditorGUILayout.HelpBox("Launching deployment(s). Assembly reloading locked.", MessageType.Info);
                    var rect = EditorGUILayout.GetControlRect(false, 20);
                    DrawSpinner(Time.realtimeSinceStartup * 10, rect);
                    Repaint();
                }

                // Deployment manager.
                EditorGUILayout.Space();
                EditorGUILayout.LabelField("Deployment List", EditorStyles.boldLabel);
                using (new EditorGUILayout.HorizontalScope())
                {
                    EditorGUILayout.PrefixLabel("Deployments:");
                    if (runningStopTask != null)
                    {
                        EditorGUILayout.LabelField($"stopping '{deploymentList[selectedDeployment].Name}'");
                    }
                    else if (runningListTask != null)
                    {
                        EditorGUILayout.LabelField("refreshing");
                    }
                    else if (deploymentList != null && deploymentList.Count > 0)
                    {
                        var deploymentNames = new string[deploymentList.Count];
                        for (var i = 0; i < deploymentList.Count; ++i)
                        {
                            deploymentNames[i] = deploymentList[i].Name;
                        }

                        selectedDeployment = EditorGUILayout.Popup(selectedDeployment, deploymentNames);
                    }
                    else
                    {
                        EditorGUILayout.LabelField("no deployments");
                    }
                }

                using (new EditorGUILayout.HorizontalScope())
                {
                    using (new EditorGUI.DisabledGroupScope(runningListTask != null || runningStopTask != null ||
                                                            !validProjectName))
                    {
                        if (GUILayout.Button("Refresh"))
                        {
                            runningListTask = TriggerListDeploymentsAsync();
                        }
                    }

                    using (new EditorGUI.DisabledGroupScope(runningListTask != null || runningStopTask != null ||
                                                            deploymentList.Count == 0 || !validProjectName))
                    {
                        if (GUILayout.Button("Stop Deployment"))
                        {
                            runningStopTask = TriggerStopDeploymentAsync(deploymentList[selectedDeployment]);
                        }
                    }
                }
            }