From 17b4faf6627ae8842df5a204035562743f21cd7e Mon Sep 17 00:00:00 2001 From: "QUALISYSTEMS\\nahum-t" Date: Thu, 30 Apr 2026 18:23:24 +0300 Subject: [PATCH 01/13] Remove versioned docs - single current version strategy --- .../version-2023.3/admin/_category_.json | 4 - .../administrative-operations-overview.md | 49 - .../admin/cloudshell-event-queue.md | 155 -- .../_category_.json | 9 - ...ing-an-execution-server-to-quali-server.md | 27 - .../deleting-execution-servers.md | 29 - .../optimizing-execution-provisioning.md | 37 - ...ng-up-execution-servers-to-run-commands.md | 182 -- .../_category_.json | 4 - ...ning-up-the-virtual-environments-folder.md | 25 - ...execute-python-commands-in-offline-mode.md | 54 - .../index.md | 13 - ...ng-python-shell-and-script-dependencies.md | 148 -- ...ndencies-for-shells-drivers-and-scripts.md | 29 - ...wnload-python-packages-from-public-pypi.md | 59 - .../what-are-python-virtual-environments.md | 24 - .../_category_.json | 4 - .../_category_.json | 4 - .../_category_.json | 4 - ...t-active-directory-users-on-first-login.md | 24 - ...nto-cloudshell-from-an-active-directory.md | 68 - .../active-directory-integration/index.md | 12 - .../index.md | 10 - .../json-web-token-jwt-configuration.md | 65 - .../ldap-integration.md | 146 -- .../_category_.json | 4 - .../configure-sso/_category_.json | 4 - .../configure-sso/index.md | 306 --- .../configure-sso/sso-tester.md | 93 - .../configuring-single-logout-slo.md | 180 -- .../index.md | 10 - .../cloudshell-domains/_category_.json | 4 - .../cloudshell-domains/adding-domains.md | 20 - .../addingremoving-domain-blueprints.md | 37 - .../addingremoving-resources-from-a-domain.md | 84 - .../archiving-and-restoring-domains.md | 37 - .../cloudshell-domains/domains-window.md | 85 - .../cloudshell-domains/index.md | 3 - ...ized-resource-utilization-using-domains.md | 25 - .../cloudshell-identity-management/index.md | 15 - .../_category_.json | 4 - .../cloudshell-user-permission-levels-rbac.md | 873 ------- ...der-permissions-for-shared-studio-tests.md | 31 - .../managing-cloudshell-permissions/index.md | 7 - .../managing-users/_category_.json | 4 - .../cloudshell-users-and-groups-overview.md | 42 - .../managing-users/index.md | 13 - .../managing-cloudshell-groups.md | 117 - .../managing-cloudshell-users.md | 151 -- .../managing-users/updating-user-settings.md | 25 - .../_category_.json | 9 - .../blueprint-templates.md | 148 -- .../javascript-extensions.md | 136 - .../cloudshell-manage-dashboard/licensing.md | 166 -- .../maintenance-window.md | 66 - .../manage-app-templates/_category_.json | 4 - .../app-template/_category_.json | 4 - .../app-template/adding-app-template.md | 122 - .../app-template/app-resource.md | 59 - .../app-template/configuration-management.md | 175 -- .../deployment-path/_category_.json | 4 - .../deployment-path/aws-ec2-dp-attributes.md | 219 -- .../azure-custom-image-dp-attributes.md | 260 -- .../azure-galery-dp-attributes.md | 224 -- .../azure-marketplace-dp-attributes.md | 256 -- .../openstack-glance-dp-attributes.md | 79 - .../vcenter-clone-image-dp-attributes.md | 123 - .../vcenter-clone-template-dp-attributes.md | 103 - .../vcenter-clone-vm-dp-attributes.md | 101 - .../vcenter-link-clone-vm-dp-attributes.md | 112 - .../manage-app-templates/index.md | 94 - .../manage-dashboard-overview.md | 34 - .../managing-automation/_category_.json | 4 - .../associating-automation-to-domains.md | 38 - .../automation-overview.md | 25 - .../managing-automation/index.md | 20 - .../managing-automation/managing-assets.md | 421 --- .../managing-automation/managing-drivers.md | 163 -- .../managing-categories.md | 151 -- .../_category_.json | 9 - .../execution-servers-commands-queue-page.md | 144 - .../execution-servers-executions-page.md | 147 -- .../execution-servers-overview-page.md | 15 - .../execution-servers-servers-page.md | 87 - .../managing-shells.md | 150 -- versioned_docs/version-2023.3/admin/index.md | 15 - .../setting-up-cloudshell/_category_.json | 8 - .../_category_.json | 4 - .../advanced-cloudshell-customizations.md | 2313 ---------------- .../_category_.json | 4 - .../abstract-resources.md | 65 - .../api.md | 67 - .../apps.md | 65 - .../blueprint-catalog.md | 426 --- .../blueprint-workspace.md | 305 --- ...vity-management-and-route-configuration.md | 216 -- .../execution-server.md | 9 - .../general.md | 664 ----- .../index.md | 27 - .../inventory-dashboard.md | 36 - .../ldap-integration.md | 7 - .../monitoring.md | 96 - .../new-job-scheduling.md | 116 - .../online-help.md | 72 - .../pypi-server.md | 109 - ...istration-passwords-emails-and-licenses.md | 345 --- .../sandboxes.md | 1385 ---------- .../scheduling-and-queuing.md | 306 --- .../scheduling-commands.md | 67 - .../search.md | 122 - .../single-sign-on-sso.md | 540 ---- .../testshell-studio.md | 64 - ...ustomizing-email-notification-templates.md | 111 - .../customizing-the-language-file.md | 46 - .../cloudshell-configuration-options/index.md | 11 - .../managing-cloudshell-portal-tours.md | 77 - ...anding-cloudshell-portal-white-labeling.md | 31 - ...ing-the-value-box-of-text-global-inputs.md | 25 - .../save-sandbox-configurations.md | 64 - .../cloudshell-deployment-overview.md | 19 - .../cloudshell-resource-management-client.md | 22 - .../_category_.json | 8 - ...e-start-page-in-resource-manager-client.md | 111 - .../annotated-start-page-example.md | 64 - .../defining-the-target-server.md | 23 - .../inventory-operations/_category_.json | 4 - .../_category_.json | 4 - ...nfiguring-resources-in-resource-manager.md | 167 -- .../associating-a-driver-with-a-resource.md | 28 - .../adding-and-configuring-resources/index.md | 25 - .../configuring-services.md | 171 -- .../connected-commands/_category_.json | 4 - .../connected-commands/index.md | 10 - .../connected-commands/power-management.md | 31 - .../connectivity-control/_category_.json | 4 - ...onnections-of-the-switch-or-patch-panel.md | 39 - .../connectivity-control/index.md | 10 - .../connectivity-control/l1-switches.md | 214 -- .../connectivity-control/patch-panels.md | 50 - .../subnet-connectivity/_category_.json | 4 - .../subnet-connectivity/index.md | 76 - ...subnet-connectivity--points-to-consider.md | 60 - .../vlan-connectivity/_category_.json | 4 - .../vlan-connectivity/index.md | 312 --- .../vlan-connectivity--points-to-consider.md | 57 - .../inventory-operations/index.md | 17 - .../inventory-drivers-and-utilities.md | 83 - .../_category_.json | 4 - .../attributes.md | 265 -- .../defining-the-resource-data-model.md | 294 --- .../defining-the-resource-structure.md | 37 - ...ortingexporting-resource-family-updates.md | 47 - .../index.md | 27 - .../viewing-resource-live-status.md | 7 - .../jira-integration-with-cloudshell.md | 108 - .../setting-up-license-pools/_category_.json | 8 - .../using-license-pools.md | 95 - .../_category_.json | 4 - ...ng-automation-suites-to-use-local-tests.md | 300 --- .../index.md | 11 - ...g-up-source-control-for-testshell-tests.md | 51 - .../testshell-integration-with-gitlab.md | 86 - .../_category_.json | 4 - ...der-2g-shells-features-and-capabilities.md | 538 ---- .../customizing-app-deployment-types.md | 191 -- .../index.md | 10 - .../kubernetes-integration/_category_.json | 4 - .../add-a-kubernetes-app-template.md | 332 --- ...dd-a-kubernetes-cloud-provider-resource.md | 73 - .../kubernetes-integration/index.md | 43 - .../kubernetes-prerequisites.md | 19 - ...ud-providers-for-kubernetes-integration.md | 7 - .../_category_.json | 4 - .../index.md | 10 - .../managing-private-cloud-apps-in-domains.md | 112 - .../_category_.json | 4 - .../add-an-openstack-app-template.md | 380 --- .../add-openstack-cloud-provider-resource.md | 148 -- .../index.md | 16 - .../openstack-configuration-requirements.md | 121 - .../openstack-known-limitations.md | 17 - .../_category_.json | 4 - .../add-a-vcenter-app-template.md | 729 ------ ...-vmware-vcenter-cloud-provider-resource.md | 225 -- .../index.md | 52 - ...er-user-permissions-per-deployment-type.md | 143 - ...egration-architecture-and-prerequisites.md | 96 - .../_category_.json | 4 - .../_category_.json | 4 - .../aws-integration/_category_.json | 4 - .../add-an-aws-ec2-app-template.md | 507 ---- .../add-an-aws-ec2-cloud-provider-resource.md | 195 -- .../aws-regions-supported-by-cloudshell.md | 22 - ...n-execution-server-selector-for-aws-ec2.md | 34 - ...configure-the-qualix-server-for-aws-ec2.md | 22 - ...nect-the-management-vpc-to-quali-server.md | 29 - .../create-a-management-vpc/_category_.json | 4 - .../create-a-management-vpc/index.md | 145 -- ...grating-aws-with-cloud-based-cloudshell.md | 23 - ...reate-a-shared-vpc-using-cloudformation.md | 118 - .../aws-integration/index.md | 80 - ...required-permissions-for-aws-deployment.md | 22 - .../cost-management-of-aws-ec2-instances.md | 24 - .../index.md | 13 - .../managing-aws-ec2-execution-servers.md | 160 -- .../index.md | 10 - .../managing-public-cloud-apps-in-domains.md | 111 - .../_category_.json | 4 - .../azure-known-limitations.md | 16 - ...management-of-microsoft-azure-resources.md | 52 - .../custom-routing-for-azure-in-sandboxes.md | 11 - .../index.md | 17 - ...ith-cloud-based-cloudshell-installation.md | 42 - .../managing-the-azure-execution-server.md | 165 -- .../_category_.json | 4 - .../add-an-azure-app-template.md | 1018 -------- .../add-an-azure-cloud-provider-resource.md | 195 -- ...-an-execution-server-selector-for-azure.md | 29 - ...igure-azure-api-to-work-with-cloudshell.md | 154 -- .../configure-the-qualix-server-for-azure.md | 19 - ...udshell-management-vnet-to-quali-server.md | 64 - ...e-a-management-resource-group-and-vnets.md | 78 - .../microsoft-azure-integration/index.md | 69 - ...ng-multiple-azure-regions-in-cloudshell.md | 25 - .../setappsecuritygroups-code-example.md | 47 - .../version-2023.3/api-guide/_category_.json | 9 - .../cs-admin-rest-api/_category_.json | 4 - .../add-blueprints-to-domain.md | 80 - .../cs-admin-rest-api/add-domains-to-group.md | 83 - .../cs-admin-rest-api/add-groups-to-domain.md | 80 - .../add-resource-to-domain.md | 80 - .../cs-admin-rest-api/add-users-to-group.md | 77 - .../cs-admin-rest-api/create-domain.md | 80 - .../cs-admin-rest-api/create-group.md | 87 - .../cs-admin-rest-api/create-license-pool.md | 81 - .../cs-admin-rest-api/create-user.md | 91 - .../cs-admin-rest-api-response-code.md | 16 - .../cs-admin-rest-api-usage.md | 27 - .../cs-admin-rest-api/delete-domain.md | 45 - .../cs-admin-rest-api/delete-group.md | 44 - .../cs-admin-rest-api/delete-license-pool.md | 44 - .../cs-admin-rest-api/delete-user.md | 43 - .../cs-admin-rest-api/edit-domain.md | 80 - .../api-guide/cs-admin-rest-api/edit-group.md | 68 - .../cs-admin-rest-api/edit-license-pool.md | 68 - .../api-guide/cs-admin-rest-api/edit-user.md | 83 - .../cs-admin-rest-api/get-admin-api-token.md | 73 - .../cs-admin-rest-api/get-all-domains.md | 87 - .../get-all-external-groups.md | 75 - .../cs-admin-rest-api/get-all-groups.md | 105 - .../get-all-license-pools.md | 83 - .../cs-admin-rest-api/get-all-users.md | 148 -- .../get-domain-blueprints.md | 132 - .../cs-admin-rest-api/get-domain-by-id.md | 60 - .../cs-admin-rest-api/get-domain-groups.md | 97 - .../cs-admin-rest-api/get-domain-resources.md | 123 - .../cs-admin-rest-api/get-group-by-id.md | 60 - .../cs-admin-rest-api/get-group-domains.md | 91 - .../cs-admin-rest-api/get-group-users.md | 153 -- .../get-license-pool-by-id.md | 61 - .../cs-admin-rest-api/get-user-by-id.md | 98 - .../get-users-from-an-external-group.md | 97 - .../import-external-users.md | 100 - .../api-guide/cs-admin-rest-api/index.md | 97 - .../remove-blueprint-from-domain.md | 79 - .../remove-domains-from-group.md | 80 - .../remove-groups-from-domain.md | 78 - .../remove-resource-from-domain.md | 83 - .../remove-users-from-group.md | 76 - .../api-guide/cs-api-overview.md | 56 - .../api-guide/cs-sandbox-api/_category_.json | 4 - .../_category_.json | 4 - .../blueprint-identifier.md | 42 - .../blueprint-start.md | 183 -- .../blueprints.md | 95 - .../index.md | 9 - .../login.md | 74 - .../sandbox-identifier.md | 149 -- .../sandbox-stop.md | 55 - .../sandboxes.md | 100 - .../_category_.json | 4 - .../blueprint-identifier.md | 43 - .../blueprint-start-persistent.md | 186 -- .../blueprint-start.md | 158 -- .../blueprints.md | 96 - .../component-command-name.md | 123 - .../component-command-start.md | 127 - .../execution-id.md | 82 - .../execution-stop.md | 49 - .../index.md | 8 - .../login.md | 72 - .../sandbox-activity.md | 102 - .../sandbox-command-name.md | 115 - .../sandbox-command-start.md | 101 - .../sandbox-commands.md | 111 - .../sandbox-component-commands.md | 113 - .../sandbox-component-id.md | 109 - .../sandbox-components.md | 130 - .../sandbox-extend.md | 89 - .../sandbox-identifier.md | 150 -- .../sandbox-output.md | 98 - .../sandbox-owner-identifier.md | 84 - .../sandbox-stop.md | 55 - .../sandboxes.md | 104 - .../get-started-with-cs-sandbox-api.md | 58 - .../api-guide/cs-sandbox-api/index.md | 35 - .../new-jss-rest-api/_category_.json | 4 - .../api-support-for-jss-and-js.md | 55 - .../new-jss-rest-api/change-suite-owner.md | 50 - .../new-jss-rest-api/delete-suite-template.md | 41 - .../delete-test-discovery-service.md | 44 - .../delete-test-execution-service.md | 48 - .../new-jss-rest-api/get-suite-execution.md | 214 -- .../get-suite-template-details.md | 219 -- .../get-suite-template-executions.md | 278 -- .../new-jss-rest-api/get-suite-templates.md | 68 - .../get-test-discovery-services.md | 67 - .../get-test-execution-report.md | 74 - .../get-test-execution-services.md | 80 - .../api-guide/new-jss-rest-api/index.md | 54 - .../new-jss-rest-api/jss-api-login.md | 78 - .../jss-rest-api-response-codes.md | 17 - .../new-jss-rest-api/refresh-login.md | 59 - .../new-jss-rest-api/revoke-login.md | 30 - .../start-adhoc-suite-execution.md | 178 -- .../new-jss-rest-api/start-suite-execution.md | 61 - .../new-jss-rest-api/stop-job-execution.md | 68 - .../new-jss-rest-api/stop-suite-execution.md | 40 - .../api-guide/packaging-api/_category_.json | 4 - .../_category_.json | 4 - .../creat-and-load-blueprint-pkg/index.md | 5 - .../packaging-functions/_category_.json | 4 - .../packaging-functions/create.md | 22 - .../get-blueprint-details-as-xml.md | 110 - .../packaging-functions/get-topology-names.md | 25 - .../packaging-functions/index.md | 8 - .../packaging-functions/load.md | 21 - .../packaging-api/get-start-with-pkg-api.md | 161 -- .../api-guide/packaging-api/index.md | 7 - .../update-the-data-model/_category_.json | 4 - .../add-attribute-to-family.md | 25 - .../add-attribute-to-model.md | 24 - .../update-the-data-model/add-family.md | 32 - .../add-model-to-family.md | 25 - .../add-or-update-attributes.md | 32 - .../add-rsrc-driver-to-model.md | 23 - .../add-rsrc-script-to-model.md | 27 - .../create-model-hierarchy.md | 22 - .../update-the-data-model/index.md | 17 - .../remove-parent-model.md | 22 - .../remove-rsrc-driver-from-model.md | 21 - .../remove-rsrc-script-from-model.md | 23 - .../version-2023.3/api-guide/quali-api.md | 35 - .../_category_.json | 8 - .../cs-automation-api.md | 26 - .../testshell-api.md | 53 - .../version-2023.3/devguide/_category_.json | 4 - .../devguide/available-cs-api/_category_.json | 4 - .../automate-cs-sandboxes-for-devops.md | 177 -- .../devguide/available-cs-api/index.md | 55 - .../available-cs-api/sso-login-to-cs-api.md | 89 - .../useful-cs-api-examples/_category_.json | 4 - .../edit-app-in-sandbox.md | 181 -- .../find-blueprints-with-rsrc-serv-or-app.md | 174 -- .../useful-cs-api-examples/index.mdx | 9 - .../peform-actions-on-rsrc-in-sandbox.md | 66 - .../start-api-outside-cs.md | 25 - .../_category_.json | 4 - .../_category_.json | 9 - .../add-playbook-to-app.md | 49 - .../ansible-playbook-examples.md | 119 - .../configure-es-for-ansible.md | 128 - .../test-ansible-on-linux-es.md | 41 - .../tips-and-tricks-for-ansible-playbooks.md | 21 - .../_category_.json | 4 - .../add-script-to-app.md | 46 - .../custom-script-dev-for-apps/index.md | 67 - .../tips-and-tricks-for-custom-scripts.md | 15 - .../customize-cfg-mng-settings.md | 42 - .../getting-started-with-cfg-mng-dev.md | 17 - .../index.md | 15 - .../passing-variables-to-cfg-mng.md | 31 - .../_category_.json | 9 - .../app-deployment.md | 658 ----- .../configure-the-deployment-paths.md | 94 - .../controlling-app-deployment-orch.md | 15 - .../create-cp-shell.md | 44 - .../extend-the-shell-data-model.md | 111 - .../getting-started-with-cp-dev.md | 57 - .../l2-network-connectivity.md | 123 - .../l3-network-connectivity.md | 229 -- .../power-off-and-delete-vm.md | 173 -- .../remove-the-address-field.md | 38 - .../resource-discovery.md | 89 - .../the-cloud-provider-interface.md | 35 - .../the-cp-shell-mode.md | 18 - .../develop-orch-scripts/_category_.json | 4 - .../common-orch-script-recipes.md | 76 - .../cs-oob-orch/_category_.json | 4 - .../customize-guest-os-vcenter-command.md | 115 - .../develop-orch-scripts/cs-oob-orch/index.md | 475 ---- .../getting-started-with-orch-scripts.md | 155 -- .../how-orch-script-get-info-from-cs.md | 232 -- .../devguide/develop-orch-scripts/index.md | 12 - ...cript-commands-visibility-and-usability.md | 102 - .../develop-orch-scripts/script-deep-dive.md | 184 -- .../developing-shells/_category_.json | 4 - .../auto-discovery-for-inventory-shells.md | 191 -- .../commands-visibility-and-usability.md | 266 -- .../common-driver-recipes.md | 251 -- .../developing-shells/customize-shells.md | 447 ---- .../debug-shell-driver-commands.md | 190 -- .../developing-shells/deploy-to-prod.md | 105 - .../discover-inv-using-snmp.md | 154 -- .../developing-shells/driver-deep-dive.md | 256 -- .../developing-shells/first-gen-shells.md | 26 - .../developing-shells/getting-started.md | 288 -- .../how-shells-get-info-from-cs.md | 152 -- .../devguide/developing-shells/index.md | 24 - .../managing-the-shell-data-mode.md | 89 - .../modeling-shells-with-tosca.md | 311 --- .../override-old-shell-attributes.md | 92 - .../share-shell-with-comminity.md | 57 - .../shell-drivers-overview.md | 75 - .../the-shell-project-guide.md | 48 - .../tips-and-tricks-for-shells.md | 173 -- .../enable-winrm-on-win-vm-for-cfg-mng.md | 33 - .../version-2023.3/devguide/index.md | 42 - .../devguide/reference/_category_.json | 8 - .../reference/aws-traffic-mirroring.md | 189 -- .../categories-in-1st-gen-service-shells.md | 61 - .../devguide/reference/common-cs-packages.md | 24 - .../custom-routing-for-azure-apps.md | 147 -- .../reference/custom-sandbox-metadata.md | 209 -- .../intellisense-in-shells-and-scripts.md | 61 - .../devguide/reference/l1-switch-shells.md | 11 - ...map-connections-using-app-sub-resources.md | 68 - .../migrate-1st-gen-shell-to-2nd-gen-shell.md | 319 --- .../reference/migrate-shells-to-py3.md | 41 - .../reference/python-coding-standards.md | 72 - .../reference/quali-shell-framework-py2.md | 220 -- .../reference/quali-shell-framework-py3.md | 203 -- .../devguide/reference/resource-scripts.md | 149 -- .../devguide/reference/shellfoundry.md | 529 ---- .../reference/shells-that-load-static-vm.md | 130 - .../devguide/reference/short-dev-videos.md | 73 - .../devguide/setting-up-dev-env.md | 70 - versioned_docs/version-2023.3/faq.md | 69 - .../install-configure/_category_.json | 4 - .../cloudshell-sdk/_category_.json | 4 - .../cloudshell-sdk/general-info.md | 14 - .../install-configure/cloudshell-sdk/index.md | 10 - .../installation-procedure/_category_.json | 4 - .../create-vm-from-ova-template.md | 16 - .../download-the-va-image.md | 23 - .../installation-procedure/index.md | 8 - .../post-installation/_category_.json | 9 - .../post-installation/apply-cs-license.md | 27 - .../post-installation/setup-new-vm.md | 25 - .../cloudshell-sdk/overview/_category_.json | 4 - .../cloudshell-sdk/overview/index.md | 13 - .../cloudshell-sdk/overview/requirements.md | 13 - .../using-va-for-cs-operations.md | 16 - .../cloudshell-suite/_category_.json | 9 - .../cloudshell-suite/appendix/_category_.json | 8 - .../best-practices-cs-prod/_category_.json | 4 - .../best-practices-cs-prod/db-trimming.md | 131 - .../appendix/best-practices-cs-prod/index.md | 93 - .../appendix/fixed-server-roles.md | 21 - .../appendix/known-cs-install-issues.md | 15 - .../appendix/known-upgrade-issues.md | 15 - .../appendix/upgrade-rabbitmq-creds.md | 39 - .../appendix/utilities-and-l1-drivers.md | 73 - .../backup-restore/_category_.json | 9 - .../backup-restore/backup-cs-db.md | 61 - .../backup-restore/backup-vm.md | 14 - .../backup-restore/restore-cs-db.md | 23 - .../central-logging/_category_.json | 4 - .../central-logging/config-log4net.md | 88 - .../cloudshell-suite/central-logging/index.md | 33 - .../central-logging/modify-cloudshell.md | 34 - .../central-logging/track-threads.md | 77 - .../cloudshell-suite-overview/_category_.json | 4 - .../high-availability.md | 12 - .../cloudshell-suite-overview/index.md | 18 - .../remote-connections.md | 7 - .../complete-install/_category_.json | 4 - .../complete-install/download-cloudshell.md | 15 - .../complete-install/index.md | 15 - .../install-cloudshell/_category_.json | 4 - .../check-cloudshell-required-components.md | 55 - .../cloudshell-watcher-data-overview.md | 37 - .../import-users-from-ad.md | 57 - .../install-cloudshell/index.md | 19 - .../install-cloudshell-sandbox-api.md | 20 - .../install-cloudshell/install-products.md | 144 - .../install-cloudshell/install.md | 24 - .../install-cloudshell/select-components.md | 91 - .../select-database-type/_category_.json | 4 - .../best-practices-for-mongodb.md | 19 - .../how-to-upgrade-4.2-6.md | 231 -- .../select-database-type/index.md | 48 - .../set-the-mongodb-connection-string.md | 75 - .../select-install-location.md | 33 - .../select-installation-option.md | 27 - .../installation-checklist.md | 19 - .../configure-products/_category_.json | 9 - .../admin-config-settings.md | 80 - .../configure-products/change-service-user.md | 44 - .../config-execution-server-process.md | 84 - .../config-execution-server.md | 58 - .../config-mongodb-connection.md | 92 - .../config-pypi-server-in-offline-mode.md | 9 - .../configure-products/config-sandbox-api.md | 18 - .../config-sql-connection.md | 94 - .../configure-app-settings.md | 31 - .../configure-portal/_category_.json | 4 - .../configure-portal/best-practices.md | 69 - .../configure-portal/index.md | 228 -- .../configure-portal/set-portal-timeout.md | 26 - .../configure-products/select-a-license.md | 137 - .../server-connectivity-settings.md | 24 - .../cs-installation-validation.md | 21 - .../new-jss-install-config/_category_.json | 4 - .../admin-actions/_category_.json | 8 - .../admin-actions/change-log-level.md | 39 - .../admin-actions/config-https.md | 44 - .../admin-actions/config-sso.md | 87 - .../admin-actions/modify-cs-admin-pass.md | 46 - .../admin-actions/sandbox-creation-retries.md | 60 - .../admin-actions/update-k8s-env.md | 54 - .../high-level-install-flow/_category_.json | 4 - .../customize-deployment/_category_.json | 4 - .../customize-deployment-config-params.md | 126 - .../customize-deployment/index.md | 22 - .../customize-deployment/set-static-ip.md | 72 - .../deploy-jss-with-helm.md | 37 - .../high-level-install-flow/index.md | 22 - .../modify-cloudshell.md | 48 - .../new-jss-install-config/index.md | 14 - .../new-jss-architecture.md | 35 - .../new-jss-install-config/requirements.md | 14 - .../new-jss-install-config/supported-tools.md | 16 - .../test-discovery-service/_category_.json | 4 - .../config-test-discovery-service.md | 88 - .../test-discovery-service/index.md | 25 - .../test-execution-service/_category_.json | 4 - .../config-test-execution-service.md | 62 - .../test-execution-service/index.md | 17 - .../tes-management/_category_.json | 4 - .../tes-management/deploy-new-tes.md | 44 - .../tes-management/index.md | 10 - .../tes-management/scale-up.md | 37 - .../tes-management/view-helm-deployments.md | 15 - .../test-repository-config/_category_.json | 9 - .../associate-tests-to-domains.md | 54 - .../test-repository-config/set-up-repo.md | 42 - .../update-considerations.md | 24 - .../quali-certified-libraries.md | 23 - .../quick-install/_category_.json | 9 - .../quick-install/before-you-begin.md | 20 - .../quick-install/install-cs-quick.md | 30 - .../secure-communication/_category_.json | 8 - .../config-secured-portal.md | 20 - .../config-secured-pypi.md | 78 - .../config-secured-python-drivers.md | 98 - .../config-secured-quali-api.md | 31 - .../config-secured-sandbox-api.md | 30 - .../upgrade-procedure/_category_.json | 4 - .../upgrade-procedure/index.md | 42 - .../migrate-python-dependencies.md | 21 - .../roll-back-to-earlier-version.md | 27 - .../upgrade-procedure/upgrade-prep.md | 35 - .../upgrade-procedure/upgrade-production.md | 46 - .../upgrade-procedure/upgrade-staging.md | 93 - .../cs-insight-bi/_category_.json | 4 - .../cs-insight-bi/bi-terminology.md | 17 - .../_category_.json | 4 - .../add-data-source-table.md | 26 - ...ackup-restore-elasticube-and-dashboards.md | 59 - .../create-dashboards-and-widgets.md | 11 - .../create-customize-dashboards/index.md | 14 - .../inner-join-connections.md | 14 - .../_category_.json | 4 - .../elasticube-data-stores.md | 28 - .../elasticube-tables.md | 504 ---- .../cs-insight-bi-elasticube-tables/index.md | 16 - .../_category_.json | 4 - .../config-cs-to-enbl-sis-dashbds.md | 26 - .../embed-dashboards-externally/index.md | 16 - .../share-with-unregistered-users.md | 9 - .../install-configure/cs-insight-bi/index.md | 21 - .../insight-dashboards/_category_.json | 7 - .../manage-users-and-permissions.md | 9 - .../using-insight-dashboards.md | 13 - .../cs-insight-bi/insight-sso/_category_.json | 4 - .../insight-sso/configure-sso-in-cs.md | 30 - .../insight-sso/configure-sso-in-sisense.md | 35 - .../insight-sso/grant-admin-privilege.md | 14 - .../cs-insight-bi/insight-sso/index.md | 14 - .../insight-sso/sso-to-insight-workflow.md | 29 - .../install-insight/_category_.json | 8 - .../cs-insight-bi-components.md | 23 - .../install-insight/download-install-files.md | 16 - .../insight-configuration/_category_.json | 4 - .../insight-configuration/build-elasticube.md | 19 - .../insight-configuration/configure-https.md | 35 - .../grant-permissions.md | 22 - .../import-dashboards.md | 56 - .../insight-configuration/index.md | 17 - .../insight-configuration/install-addons.md | 15 - .../insight-configuration/install-sisense.md | 39 - .../insight-configuration/map-dashboards.md | 40 - .../install-insight/install-checklist.md | 18 - .../install-insight/install-sisense.md | 23 - .../cs-insight-bi/install-insight/rebrand.md | 66 - .../install-insight/requirements.md | 9 - .../install-insight/synchronization.md | 28 - .../key-points-and-limitations.md | 17 - .../cs-insight-bi/sisense-bi-components.md | 17 - .../cs-system-requirements/_category_.json | 4 - .../cs-component-architechture.md | 48 - .../cs-port-requirements.md | 72 - .../cs-system-requirements/database-prereq.md | 102 - .../cs-system-requirements/index.md | 20 - .../min-requirements-for-cs.md | 71 - .../network-recommendations.md | 10 - .../security-recommendations.md | 25 - .../software-and-utilities.md | 21 - .../supported-browsers.md | 13 - .../third-party-software.md | 58 - .../ha-deployment/_category_.json | 4 - .../ha-deployment/appendix/_category_.json | 9 - .../ha-deployment/appendix/documentation.md | 11 - .../ha-deployment/appendix/glossary.md | 25 - .../ha-deployment/appendix/references.md | 20 - .../ha-deployment/best-practice-es-with-ha.md | 29 - .../cs-app-server-clusting/_category_.json | 4 - .../cs-app-server-clusting/failure-trigger.md | 19 - .../cs-app-server-clusting/index.md | 7 - .../cs-app-server-clusting/performance.md | 11 - .../deployment-types-ha/_category_.json | 9 - .../basic-4-server-configuration.md | 13 - .../basic-6-server-configuration.md | 13 - .../deployment-considerations.md | 16 - .../install-configure/ha-deployment/index.md | 11 - .../ha-deployment/overview/_category_.json | 4 - .../ha-deployment/overview/architecture-ha.md | 19 - .../overview/guiding-principles.md | 15 - .../ha-deployment/overview/index.md | 14 - .../ha-installation/_category_.json | 4 - .../ha-installation/appendix/_category_.json | 9 - .../ha-installation/appendix/documentation.md | 11 - .../ha-installation/appendix/glossary.md | 24 - .../ha-installation/appendix/references.md | 141 - .../_category_.json | 4 - .../before-you-begin.md | 12 - .../config-arr-to-ssl-offloading.md | 28 - .../config-arr-to-ssl.md | 27 - .../config-arr-and-iis-to-ssl-in-ha/index.md | 9 - .../_category_.json | 4 - .../add-servers-to-main-iis.md | 38 - .../alternatives.md | 7 - .../config-arr-server.md | 19 - .../config-server-farm.md | 46 - .../config-portal-load-balance/index.md | 41 - .../verify-system-up.md | 25 - .../_category_.json | 4 - .../config-new-cluster.md | 41 - .../index.md | 8 - .../install-failover-cluster-feature.md | 30 - .../deployment-types-ha/_category_.json | 8 - .../basic-4-server-configuration.md | 13 - .../basic-6-server-configuration.md | 13 - .../deployment-considerations.md | 16 - .../ha-installation/index.md | 16 - .../_category_.json | 9 - .../activate-quali-server-on-all-nodes.md | 21 - ...nfig-cs-components-to-quali-server-role.md | 37 - .../configure-each-node.md | 15 - .../configure-quali-server/_category_.json | 4 - .../config-quali-server-on-first-node.md | 16 - .../configure-quali-server-with-avl-grp.md | 31 - .../configure-remaining-cluster-nodes.md | 10 - .../display-cluster-health-info.md | 17 - .../configure-quali-server/index.md | 12 - .../set-the-same-certificate.md | 31 - .../set-up-alwayson-groups.md | 67 - .../configure-the-app-server/_category_.json | 4 - .../configure-the-app-server/index.md | 8 - .../locating-the-cluster-name.md | 15 - .../modify-elasticsearch-config-file.md | 21 - .../modify-the-quali-vbs-file.md | 22 - .../create-config-role-for-quali-server.md | 44 - .../_category_.json | 4 - .../_category_.json | 4 - .../config-web-server-load-balancing/index.md | 5 - .../ms-app-request-routing.md | 19 - .../requirements.md | 17 - .../configure-cs-portal-to-ssl.md | 9 - .../create-config-role.md | 57 - .../install-configure-cs-portal/index.md | 9 - .../install-cs-portal.md | 13 - .../modify-webportal-vbs-file.md | 24 - .../installing-quali-server.md | 9 - .../_category_.json | 4 - .../add-another-host-to-net-lb.md | 18 - .../config-win-net-lb.md | 55 - .../install-win-network-load-balance/index.md | 53 - .../monitor-cluster-env.md | 10 - .../work-with-arr-cluster.md | 51 - .../work-with-https-portal.md | 9 - .../installation-procedure/_category_.json | 4 - .../configure-mongodb-in-ha-mode.md | 72 - .../configure-sql-db-server-cluster.md | 82 - .../download-the-ha-plugin.md | 24 - .../installation-procedure/index.md | 94 - .../_category_.json | 8 - .../alternative-solution.md | 7 - ...re-cs-components-to-license-server-role.md | 22 - .../license-server-installation.md | 57 - .../known-issues-and-limitations.md | 14 - .../maintenance-of-ha-plugin/_category_.json | 4 - .../maintenance-of-ha-plugin/index.md | 9 - .../move-wsfc-role-between-nodes.md | 18 - .../upgrada-cs-ha-plugin.md | 39 - .../upgrade-cloudshell.md | 63 - .../ha-installation/overview/_category_.json | 4 - .../ha-installation/overview/index.md | 13 - .../ha-installation/overview/requirements.md | 82 - .../overview/software-licenses.md | 8 - .../overview/supported-versions-of-ms-sql.md | 12 - .../version-2023.3/install-configure/index.md | 14 - .../linux-virtual-appliance/_category_.json | 9 - .../cs-linux-va-known-limitations.md | 34 - .../installation-procedure/_category_.json | 4 - .../create-es-from-ovf.md | 41 - .../create-es-from-qcow2.md | 57 - .../create-es-from-script.md | 139 - .../installation-procedure/index.md | 13 - .../linux-es-va-overview/_category_.json | 4 - .../download-es-va-image.md | 30 - .../linux-es-va-overview/index.md | 9 - .../linux-es-va-overview/limitations.md | 12 - .../linux-es-va-overview/sw-requirements.md | 18 - .../post-installation/_category_.json | 9 - .../configure-linux-es-for-ansible.md | 57 - .../configure/_category_.json | 4 - .../configure/example-run-config-file.md | 45 - .../post-installation/configure/index.md | 92 - .../post-installation/log-into-the-vm.md | 21 - .../post-installation/start-the-es.md | 21 - .../install-configure/qualix/_category_.json | 4 - .../qualix/appendix/_category_.json | 9 - .../qualix/appendix/qualix-known-issues.md | 9 - .../appendix/remove-message-at-startup.md | 34 - .../appendix/setting-qualix-to-utc-time.md | 40 - .../work-with-qualix-vm/_category_.json | 4 - .../work-with-qualix-vm/copy-paste-text.md | 13 - .../appendix/work-with-qualix-vm/index.md | 11 - .../transfer-files-from-client-machine.md | 21 - .../transfer-files-to-client-machine.md | 19 - .../qualix/high-level-setup-process.md | 32 - .../install-configure/qualix/index.md | 16 - .../qualix/install-configure/_category_.json | 9 - .../install-configure/create-vm-using-ovf.md | 27 - .../qualix-4.1-using-docker.md | 79 - .../qualix-5.0-using-docker.md | 178 -- .../qualix/log-into-qualix.md | 18 - .../post-installation-config/_category_.json | 4 - .../config-jks-cert.md | 39 - .../configure-remote-access.md | 61 - .../configure-vm-web-console.md | 96 - .../customize-remote-access.md | 128 - .../enable-https/_category_.json | 4 - .../enable-https/configure-ssl-cert.md | 61 - .../enable-https/index.md | 34 - .../qualix/post-installation-config/index.md | 28 - .../modify-cpu-and-ram.md | 19 - .../qualix-config-for-5-and-up.md | 180 -- .../restrict-qualix-access.md | 33 - .../set-static-ip-for-qualix.md | 53 - .../qualix/prepare-and-reserve-blueprint.md | 35 - .../qualix/qualix-overview/_category_.json | 4 - .../qualix/qualix-overview/download-qualix.md | 23 - .../qualix-overview/how-qualix-works.md | 31 - .../qualix/qualix-overview/index.md | 16 - .../qualix-overview/qualix-requirements.md | 34 - .../qualix/qualix-overview/qualix-support.md | 12 - .../qualix/training-portal/_category_.json | 4 - .../qualix/training-portal/index.md | 32 - .../setting-up-using-docker.md | 176 -- .../setting-up-using-installer.md | 217 -- .../welcome-to-your-training-session.md | 28 - versioned_docs/version-2023.3/intro.md | 28 - versioned_docs/version-2023.3/intro/Abt-CS.md | 32 - .../version-2023.3/intro/CS-Use-Cases.md | 28 - versioned_docs/version-2023.3/intro/Term.md | 205 -- .../version-2023.3/intro/_category_.json | 8 - .../features/Configuration-Management.md | 71 - .../intro/features/_category_.json | 4 - .../intro/features/abstract-resources.md | 50 - .../intro/features/apps-overview.md | 57 - .../features/blueprint-approval-policy.md | 40 - .../intro/features/connectivity.md | 27 - .../intro/features/email-notifications.md | 120 - .../intro/features/features-and-benefits.md | 61 - .../intro/features/persistent-sandboxes.md | 72 - .../intro/features/resources.md | 39 - .../version-2023.3/intro/features/services.md | 40 - .../version-2023.3/intro/features/shells.md | 42 - .../intro/features/static-vms.md | 17 - .../traffic-gens/Traffic-Gens-Abst.md | 71 - .../features/traffic-gens/_category_.json | 4 - .../intro/features/traffic-gens/index.md | 65 - .../version-2023.3/jss/_category_.json | 4 - .../comparison-with-1st-gen-job-scheduling.md | 20 - versioned_docs/version-2023.3/jss/index.md | 27 - .../version-2023.3/jss/job-scheduling-data.md | 9 - .../jss/job-scheduling-terminology.md | 17 - .../jss/jss-portal/_category_.json | 4 - .../version-2023.3/jss/jss-portal/index.md | 11 - .../job-scheduling-page/_category_.json | 4 - .../jss-portal/job-scheduling-page/index.md | 19 - .../job-scheduling-page/jira-issues.md | 73 - .../managing-suites/_category_.json | 9 - .../managing-suites/create-suites.md | 181 -- .../managing-suites/delete-suites.md | 37 - .../managing-suites/edit-suites.md | 16 - .../job-scheduling-page/run-custom-suite.md | 25 - .../running-and-stopping-suites.md | 52 - .../job-scheduling-page/view-suites.md | 51 - .../job-scheduling-page/view-test-reports.md | 18 - .../job-scheduling-servers/_category_.json | 4 - .../discovery-servers-dashboard.md | 18 - .../job-scheduling-servers/index.md | 13 - .../job-scheduling-servers/tes-dashboard.md | 80 - .../test-repositories.md | 105 - .../jss/jss-portal/jss-rest-api.md | 52 - .../jss/jss-portal/login-to-jss-portal.md | 25 - .../version-2023.3/jss/new-jss-logs.md | 70 - .../jss/statuses-and-results.md | 173 -- .../version-2023.3/portal/_category_.json | 8 - .../portal/blueprints/_category_.json | 4 - .../portal/blueprints/blueprint-catalog.md | 270 -- .../blueprint-workspace/_category_.json | 4 - .../blueprint-list-view.md | 73 - .../blueprints/blueprint-workspace/index.md | 218 -- .../creating-blueprints/_category_.json | 4 - .../creating-blueprints/abstract-resources.md | 97 - .../add-connectivity/_category_.json | 4 - .../add-physical-network/_category_.json | 4 - .../add-phy-net-req/_category_.json | 4 - .../add-phy-net-req/add-multiple-net-req.md | 21 - .../add-phy-net-req/index.md | 68 - .../config-physical-conn-req.md | 36 - .../delete-physical-conn-req.md | 24 - .../add-physical-network/index.md | 12 - .../physical-net-connectivity-prereq.md | 21 - .../view-phy-net-connectivity-req.md | 28 - .../add-virtual-network/_category_.json | 4 - .../add-virtual-net-connectivity-req.md | 85 - .../config-virtual-conn-req.md | 38 - .../delete-virtual-conn-req.md | 23 - .../add-virtual-network/index.md | 14 - .../view-virtual-net-connectivity-req.md | 24 - .../virtual-net-connectivity-prereq.md | 23 - .../add-connectivity/connections-legend.md | 16 - .../add-connectivity/index.md | 23 - .../creating-blueprints/add-instructions.md | 62 - .../creating-blueprints/add-user-inputs.md | 107 - .../creating-blueprints/apps/_category_.json | 9 - .../apps/add-app-to-blueprint.md | 32 - .../apps/edit-app-in-blueprint.md | 43 - .../apps/remove-app-from-blueprint.md | 20 - .../apps/reset-app-settings.md | 24 - .../apps/view-apps-catalog.md | 24 - .../blueprint-dev-best-practices.md | 38 - .../blueprint-properties.md | 34 - .../check-blueprint-routes.md | 21 - .../creating-blueprints/check-blueprint.md | 19 - .../configure-orchestration.md | 101 - .../create-blueprint-commands.md | 42 - .../creating-blueprints/create-blueprint.md | 50 - .../duplicate-blueprint.md | 23 - .../export-blueprints/_category_.json | 9 - .../export-blueprints/export-a-package.md | 50 - .../export-blueprints/export-diagram.md | 33 - .../creating-blueprints/import-package.md | 61 - .../blueprints/creating-blueprints/index.md | 33 - .../blueprints/creating-blueprints/labels.md | 88 - .../name-your-blueprint.md | 19 - .../resources/_category_.json | 9 - .../resources/add-resources.md | 25 - .../resources/configure-sub-resources.md | 27 - .../resources/find-resources.md | 115 - .../resources/remove-resources.md | 20 - .../resources/replace-with-abstract.md | 15 - .../resources/share-reserved-resources.md | 25 - .../resources/update-resource-attr.md | 29 - .../creating-blueprints/save-as-template.md | 26 - .../creating-blueprints/services.md | 83 - .../set-blueprint-privacy.md | 22 - .../version-2023.3/portal/blueprints/index.md | 20 - .../portal/blueprints/opening-blueprints.md | 42 - .../portal/inventory/_category_.json | 4 - .../version-2023.3/portal/inventory/index.md | 18 - .../portal/inventory/inventory-dashboard.md | 35 - .../_category_.json | 4 - .../create-abstract-template/_category_.json | 4 - .../abstract-resource-settings.md | 246 -- .../create-abstract-template/index.md | 34 - .../deleting-abstract-templates.md | 25 - .../editing-abstract-templates.md | 27 - .../managing-abstract-templates/index.md | 15 - .../viewing-abstract-templates.md | 18 - .../managing-resources/_category_.json | 9 - .../_category_.json | 4 - .../adding-aws-cp.md | 233 -- .../adding-azure-cp.md | 210 -- .../adding-vcenter-cp.md | 249 -- .../adding-inventory-resources/index.md | 50 - .../associate-resources-to-es.md | 70 - .../managing-resources/connecting-remotely.md | 30 - .../deleting-resources-from-inventory.md | 32 - .../discovering-resources.md | 25 - ...ting-resources-from-inventory-dashboard.md | 125 - .../include-exclude-resources.md | 35 - .../reserving-from-inventory.md | 29 - .../searching-for-sub-resources.md | 24 - .../portal/inventory/search-the-inventory.md | 12 - .../portal/inventory/viewing-services.md | 19 - .../portal/job-scheduling/_category_.json | 4 - ...ociate-jira-issues-with-test-executions.md | 91 - .../_category_.json | 8 - .../extend-suite-jobs.md | 29 - .../stop-suite-jobs.md | 37 - .../portal/job-scheduling/index.md | 24 - .../job-scheduling-dashboard.md | 62 - .../manage-automation-suites/_category_.json | 9 - .../manage-automation-suites/add-suites.md | 271 -- .../delete-suites-jobs-tests.md | 50 - .../manage-automation-suites/edit-suites.md | 24 - .../running-automation-suites/_category_.json | 4 - .../running-automation-suites/index.md | 31 - .../run-adhoc-suites.md | 133 - .../run-custom-suites.md | 47 - .../run-suites-from-template.md | 45 - .../view-execution-history/_category_.json | 9 - .../view-execution-history.md | 19 - .../view-test-reports/_category_.json | 4 - .../view-test-reports/index.md | 24 - .../setting-test-execution-report-template.md | 22 - .../view-tests-job-suite-execution-results.md | 58 - .../what-are-automation-suites.md | 25 - .../portal/overview/_category_.json | 4 - .../portal/overview/change-language.md | 26 - .../overview/end-to-end-wf/_category_.json | 8 - .../overview/end-to-end-wf/consume-sandbox.md | 40 - .../overview/end-to-end-wf/create-shell.md | 24 - .../implement-config-management.md | 17 - .../end-to-end-wf/model-public-cloud.md | 24 - .../version-2023.3/portal/overview/index.md | 9 - .../portal/overview/logging-in.md | 34 - .../portal/overview/navigating.md | 26 - .../portal/overview/portal-settings.md | 73 - .../portal/overview/touring-the-portal.md | 23 - .../portal/sandboxes/_category_.json | 4 - .../portal/sandboxes/creating-sandboxes.md | 200 -- .../version-2023.3/portal/sandboxes/index.mdx | 10 - .../portal/sandboxes/opening-sandboxes.md | 43 - .../sandbox-save-and-restore-overview.md | 47 - .../sandbox-workspace/_category_.json | 4 - .../add-connectivity/_category_.json | 4 - .../add-physical-network/_category_.json | 4 - .../add-phy-net-req/_category_.json | 4 - .../add-phy-net-req/add-multiple-net-req.md | 21 - .../add-phy-net-req/index.md | 68 - .../config-physical-conn-req.md | 114 - .../delete-physical-conn-req.md | 24 - .../add-physical-network/index.md | 12 - .../physical-net-connectivity-prereq.md | 21 - .../view-phy-net-connectivity-req.md | 28 - .../add-virtual-network/_category_.json | 4 - .../add-virtual-net-connectivity-req.md | 92 - .../config-virtual-conn-req.md | 39 - .../delete-virtual-conn-req.md | 23 - .../add-virtual-network/index.md | 14 - .../view-virtual-net-connectivity-req.md | 24 - .../virtual-net-connectivity-prereq.md | 23 - .../add-connectivity/connections-legend.md | 16 - .../add-connectivity/index.md | 23 - .../sandbox-workspace/apps/_category_.json | 10 - .../apps/activity-feed-for-app.md | 38 - .../apps/add-app-to-sandbox.md | 34 - .../apps/edit-app-in-sandbox.md | 47 - .../apps/remove-app-from-sandbox.md | 21 - .../apps/run-app-commands.md | 234 -- .../apps/view-apps-catalog.md | 24 - .../sandbox-workspace/apps/view-vm-details.md | 29 - .../connect-resources-and-apps.md | 205 -- .../create-cal-event-for-sandbox.md | 25 - .../export-diagrams-and-connections.md | 25 - .../extend-and-end-sandbox.md | 40 - .../sandboxes/sandbox-workspace/index.md | 140 - .../sandboxes/sandbox-workspace/labels.md | 45 - .../resources/_category_.json | 9 - .../resources/activity-feed-for-resources.md | 37 - .../resources/add-resources.md | 26 - .../resources/configure-sub-resources.md | 29 - .../resources/connect-remotely-with-qualix.md | 34 - .../resources/find-resources.md | 121 - .../resources/mark-in-use.md | 21 - .../resources/remove-resources.md | 20 - .../resources/share-reserved-resources.md | 27 - .../resources/update-resource-attr.md | 26 - .../review-sandbox-instructions.md | 17 - .../sandbox-workspace/run-commands.md | 121 - .../sandbox-workspace/sandbox-list-view.md | 78 - .../save-sandbox-as-blueprint.md | 22 - .../sandbox-workspace/save-sandbox.md | 229 -- .../sandboxes/sandbox-workspace/services.md | 114 - .../show-physical-connections.md | 21 - .../sandbox-workspace/show-physical-layer.md | 21 - .../system-messages/_category_.json | 9 - .../activity-details-window.md | 22 - .../system-messages/activity-feed-pane.md | 37 - .../system-messages/indication-messages.md | 18 - .../system-messages/output-console-window.md | 25 - .../update-sandbox-properties.md | 77 - .../view-sandbox-metadata.md | 17 - .../portal/sandboxes/sandboxes-dashboard.md | 151 -- .../sandboxes/saved-sandboxes/_category_.json | 4 - .../saved-sandboxes/delete-saved-sandbox.md | 28 - .../portal/sandboxes/saved-sandboxes/index.md | 29 - .../saved-sandboxes/restore-saved-sandbox.md | 80 - .../show-restored-sandboxes.md | 19 - .../quick-start/_category_.json | 8 - .../quick-start/create-sandbox.md | 78 - .../quick-start/creating-reserving.md | 98 - .../quick-start/install-and-setup.md | 102 - .../release-notes/_category_.json | 4 - .../release-notes/behavior-change.md | 41 - .../version-2023.3/release-notes/bug-fixes.md | 29 - .../release-notes/general-announcments.md | 15 - .../version-2023.3/release-notes/index.md | 19 - .../release-notes/known-limitations.md | 69 - .../release-notes/supported-versions.md | 32 - .../version-2023.3/release-notes/whats-new.md | 22 - .../troubleshooting/_category_.json | 8 - .../cloudshell-portal/_category_.json | 4 - .../empty-resourceapp-catalogs.md | 18 - ...fails-on-nonexistent-resource-conflicts.md | 18 - ...k-is-missing-from-the-blueprint-catalog.md | 35 - ...vices-to-a-blueprint-or-sandbox-diagram.md | 31 - .../unable-to-add-resources.md | 40 - .../unable-to-locate-a-resource.md | 100 - .../unable-to-login-to-cloudshell-portal.md | 29 - .../unable-to-save-new-app.md | 37 - .../unable-to-share-resources.md | 31 - ...ery-error-discovery-failed-for-resource.md | 26 - ...powered-off-at-the-end-of-a-reservation.md | 45 - ...owered-on-at-the-start-of-a-reservation.md | 32 - .../database-and-permissions/_category_.json | 4 - .../access-to-database-denied.md | 34 - .../database-cannot-be-identified.md | 21 - ...rmissions-were-not-correctly-configured.md | 27 - ...ge-amount-of-memory-used-on-mssqlserver.md | 50 - ...ng-user-permissions-to-run-dbcc-traceon.md | 27 - .../execution-servers/_category_.json | 4 - ...-quali-server-and-the-execution-servers.md | 14 - ...failed-to-run-with-exit-code-1073741502.md | 32 - ...cripts-failed-with-exit-code-1073741819.md | 34 - .../execution-servers/venv-fails-to-build.md | 24 - .../troubleshooting/insight/_category_.json | 4 - ...or-key-already-exists-in-the-collection.md | 49 - .../how-to-migrate-sisense-to-a-new-server.md | 23 - ...ard-error-redirected-you-too-many-times.md | 52 - ...ally-large-resourceutilizationlog-table.md | 19 - .../installation/_category_.json | 4 - ...peration-resulted-in-one-or-more-errors.md | 31 - .../installation/load-license.md | 25 - .../manual-iis-installation-error.md | 38 - .../installation/msdtc-firewall-settings.md | 29 - .../msdtc-security-configuration.md | 67 - ...causing-cloudshell-installation-to-fail.md | 39 - ...hell-execution-policy-high-availability.md | 44 - ...ils-in-search-engine-health-check-stage.md | 24 - .../testshell-database-permissions.md | 39 - .../the-requested-page-cannot-be-accessed.md | 34 - ...cted-error-when-installing-quali-server.md | 43 - ...ll-upgrade-override-cloudshell-settings.md | 30 - .../job-scheduling/_category_.json | 4 - ...uite-execution-remains-in-pending-state.md | 39 - .../incorrect-test-execution-order.md | 17 - .../quali-server/_category_.json | 4 - ...-start-during-quali-server-installation.md | 94 - ...rabbitmq-service-fails-to-start-erl-exe.md | 25 - ...\342\200\231t-working-2022.1-and-above.md" | 35 - ...e-amount-of-memory-used-on-quali-server.md | 42 - ...ss-errors-error-installing-dependencies.md | 72 - .../quali-server/quali-server-crash.md | 40 - ...grade-fails-in-the-restart-service-step.md | 21 - ...r-upgrade-fails-on-import-packages-step.md | 18 - .../set-the-timeout-period-for-l1-drivers.md | 40 - .../troubleshooting/qualix/_category_.json | 4 - ...-ubuntu-22.04-machines-with-private-key.md | 48 - ...o-a-device-guacamole-refused-to-connect.md | 52 - ...d-permissionsinvalid-link-access-denied.md | 67 - ...-connection-error-remote-desktop-server.md | 30 - ...correct-name-for-resource-browser-title.md | 25 - ...ion-attempt-opens-cloudshell-login-page.md | 15 - .../troubleshooting-guacamole-services.md | 29 - .../troubleshooting-qualix-docker-services.md | 15 - .../qualix/what-is-my-qualix-version.md | 13 - .../resource-manager/_category_.json | 4 - .../resource-manager/auto-load-fails.md | 69 - .../troubleshooting/shells/_category_.json | 4 - .../shells/shell-update-error.md | 22 - .../troubleshooting-overview/_category_.json | 8 - .../collecting-logs.md | 303 --- .../useful-tools-and-utilities.md | 17 - .../whats-in-this-guide.md | 29 - .../version-2024.1/admin/_category_.json | 4 - .../administrative-operations-overview.md | 49 - .../admin/cloudshell-event-queue.md | 164 -- .../_category_.json | 9 - ...ing-an-execution-server-to-quali-server.md | 27 - .../deleting-execution-servers.md | 29 - .../optimizing-execution-provisioning.md | 37 - ...ng-up-execution-servers-to-run-commands.md | 182 -- .../_category_.json | 4 - ...ning-up-the-virtual-environments-folder.md | 25 - ...execute-python-commands-in-offline-mode.md | 54 - .../index.md | 13 - ...ng-python-shell-and-script-dependencies.md | 148 -- ...ndencies-for-shells-drivers-and-scripts.md | 29 - ...wnload-python-packages-from-public-pypi.md | 59 - .../what-are-python-virtual-environments.md | 24 - .../_category_.json | 4 - .../_category_.json | 4 - .../_category_.json | 4 - ...t-active-directory-users-on-first-login.md | 24 - ...nto-cloudshell-from-an-active-directory.md | 68 - .../active-directory-integration/index.md | 12 - .../index.md | 10 - .../json-web-token-jwt-configuration.md | 65 - .../ldap-integration.md | 146 -- .../_category_.json | 4 - .../configure-sso/_category_.json | 4 - .../configure-sso/index.md | 306 --- .../configure-sso/sso-tester.md | 93 - .../configuring-single-logout-slo.md | 180 -- .../index.md | 10 - .../cloudshell-domains/_category_.json | 4 - .../cloudshell-domains/adding-domains.md | 27 - .../addingremoving-domain-blueprints.md | 37 - .../addingremoving-resources-from-a-domain.md | 84 - .../archiving-and-restoring-domains.md | 37 - .../cloudshell-domains/domains-window.md | 86 - .../cloudshell-domains/index.md | 3 - ...ized-resource-utilization-using-domains.md | 25 - .../cloudshell-identity-management/index.md | 15 - .../_category_.json | 4 - .../capabilities/_category_.json | 4 - .../capabilities/index.md | 45 - .../cloudshell-user-permission-levels-rbac.md | 873 ------- ...der-permissions-for-shared-studio-tests.md | 31 - .../managing-cloudshell-permissions/index.md | 7 - .../managing-users/_category_.json | 4 - .../cloudshell-users-and-groups-overview.md | 42 - .../managing-users/index.md | 13 - .../managing-cloudshell-groups.md | 117 - .../managing-cloudshell-users.md | 151 -- .../managing-users/updating-user-settings.md | 25 - .../_category_.json | 9 - .../blueprint-templates.md | 148 -- .../javascript-extensions.md | 136 - .../cloudshell-manage-dashboard/licensing.md | 166 -- .../maintenance-window.md | 66 - .../manage-app-templates/_category_.json | 4 - .../app-template/_category_.json | 4 - .../app-template/adding-app-template.md | 122 - .../app-template/app-resource.md | 59 - .../app-template/configuration-management.md | 175 -- .../deployment-path/_category_.json | 4 - .../deployment-path/aws-ec2-dp-attributes.md | 219 -- .../azure-custom-image-dp-attributes.md | 260 -- .../azure-galery-dp-attributes.md | 224 -- .../azure-marketplace-dp-attributes.md | 256 -- .../openstack-glance-dp-attributes.md | 79 - .../vcenter-clone-image-dp-attributes.md | 123 - .../vcenter-clone-template-dp-attributes.md | 103 - .../vcenter-clone-vm-dp-attributes.md | 101 - .../vcenter-link-clone-vm-dp-attributes.md | 112 - .../manage-app-templates/index.md | 94 - .../manage-dashboard-overview.md | 34 - .../managing-automation/_category_.json | 4 - .../associating-automation-to-domains.md | 38 - .../automation-overview.md | 25 - .../managing-automation/index.md | 20 - .../managing-automation/managing-assets.md | 421 --- .../managing-automation/managing-drivers.md | 163 -- .../managing-categories.md | 151 -- .../_category_.json | 9 - .../execution-servers-commands-queue-page.md | 144 - .../execution-servers-executions-page.md | 147 -- .../execution-servers-overview-page.md | 15 - .../execution-servers-servers-page.md | 87 - .../managing-shells.md | 150 -- versioned_docs/version-2024.1/admin/index.md | 15 - .../setting-up-cloudshell/_category_.json | 8 - .../assembly-lab/_category_.json | 4 - .../assembly-lab/a-common-use-case.md | 35 - .../assembly-lab/configuration-keys.md | 10 - .../configure-assembly-lab-domain.md | 17 - .../assembly-lab/fixed-devices.md | 13 - .../assembly-lab/index.md | 63 - .../assembly-lab/note.md | 13 - .../assembly-lab/required-actions.md | 12 - .../assembly-lab/work-order-management.md | 21 - .../_category_.json | 4 - .../advanced-cloudshell-customizations.md | 2314 ----------------- .../_category_.json | 4 - .../abstract-resources.md | 65 - .../api.md | 67 - .../apps.md | 65 - .../blueprint-catalog.md | 426 --- .../blueprint-workspace.md | 305 --- ...vity-management-and-route-configuration.md | 216 -- .../execution-server.md | 9 - .../general.md | 724 ------ .../index.md | 27 - .../inventory-dashboard.md | 36 - .../ldap-integration.md | 7 - .../monitoring.md | 96 - .../new-job-scheduling.md | 116 - .../online-help.md | 72 - .../pypi-server.md | 109 - ...istration-passwords-emails-and-licenses.md | 345 --- .../sandboxes.md | 1385 ---------- .../scheduling-and-queuing.md | 306 --- .../scheduling-commands.md | 67 - .../search.md | 122 - .../single-sign-on-sso.md | 540 ---- .../testshell-studio.md | 64 - ...ustomizing-email-notification-templates.md | 111 - .../customizing-sandboxes-dashboard.md | 26 - .../customizing-the-language-file.md | 46 - .../cloudshell-configuration-options/index.md | 12 - .../managing-cloudshell-portal-tours.md | 77 - ...anding-cloudshell-portal-white-labeling.md | 31 - ...ing-the-value-box-of-text-global-inputs.md | 25 - .../resource-search-customizations.md | 15 - .../save-sandbox-configurations.md | 64 - .../cloudshell-deployment-overview.md | 19 - .../cloudshell-resource-management-client.md | 22 - .../_category_.json | 8 - ...e-start-page-in-resource-manager-client.md | 111 - .../annotated-start-page-example.md | 64 - .../defining-the-target-server.md | 23 - .../inventory-operations/_category_.json | 4 - .../_category_.json | 4 - ...nfiguring-resources-in-resource-manager.md | 167 -- .../associating-a-driver-with-a-resource.md | 28 - .../adding-and-configuring-resources/index.md | 25 - .../configuring-services.md | 171 -- .../connected-commands/_category_.json | 4 - .../connected-commands/index.md | 10 - .../connected-commands/power-management.md | 31 - .../connectivity-control/_category_.json | 4 - ...onnections-of-the-switch-or-patch-panel.md | 39 - .../connectivity-control/index.md | 10 - .../connectivity-control/l1-switches.md | 214 -- .../connectivity-control/patch-panels.md | 50 - .../subnet-connectivity/_category_.json | 4 - .../subnet-connectivity/index.md | 76 - ...subnet-connectivity--points-to-consider.md | 60 - .../vlan-connectivity/_category_.json | 4 - .../vlan-connectivity/index.md | 312 --- .../vlan-connectivity--points-to-consider.md | 57 - .../inventory-operations/index.md | 17 - .../inventory-drivers-and-utilities.md | 83 - .../_category_.json | 4 - .../attributes.md | 265 -- .../defining-the-resource-data-model.md | 294 --- .../defining-the-resource-structure.md | 37 - ...ortingexporting-resource-family-updates.md | 47 - .../index.md | 27 - .../viewing-resource-live-status.md | 7 - .../jira-integration-with-cloudshell.md | 108 - .../setting-up-license-pools/_category_.json | 8 - .../using-license-pools.md | 95 - .../_category_.json | 4 - ...ng-automation-suites-to-use-local-tests.md | 300 --- .../index.md | 11 - ...g-up-source-control-for-testshell-tests.md | 51 - .../testshell-integration-with-gitlab.md | 86 - .../_category_.json | 4 - ...der-2g-shells-features-and-capabilities.md | 538 ---- .../customizing-app-deployment-types.md | 191 -- .../index.md | 10 - .../kubernetes-integration/_category_.json | 4 - .../add-a-kubernetes-app-template.md | 332 --- ...dd-a-kubernetes-cloud-provider-resource.md | 73 - .../kubernetes-integration/index.md | 43 - .../kubernetes-prerequisites.md | 19 - ...ud-providers-for-kubernetes-integration.md | 7 - .../_category_.json | 4 - .../index.md | 10 - .../managing-private-cloud-apps-in-domains.md | 112 - .../_category_.json | 4 - .../add-an-openstack-app-template.md | 380 --- .../add-openstack-cloud-provider-resource.md | 148 -- .../index.md | 16 - .../openstack-configuration-requirements.md | 121 - .../openstack-known-limitations.md | 17 - .../_category_.json | 4 - .../add-a-vcenter-app-template.md | 729 ------ ...-vmware-vcenter-cloud-provider-resource.md | 225 -- .../index.md | 52 - ...er-user-permissions-per-deployment-type.md | 143 - ...egration-architecture-and-prerequisites.md | 96 - .../_category_.json | 4 - .../_category_.json | 4 - .../aws-integration/_category_.json | 4 - .../add-an-aws-ec2-app-template.md | 507 ---- .../add-an-aws-ec2-cloud-provider-resource.md | 195 -- .../aws-regions-supported-by-cloudshell.md | 22 - ...n-execution-server-selector-for-aws-ec2.md | 34 - ...configure-the-qualix-server-for-aws-ec2.md | 22 - ...nect-the-management-vpc-to-quali-server.md | 29 - .../create-a-management-vpc/_category_.json | 4 - .../create-a-management-vpc/index.md | 145 -- ...grating-aws-with-cloud-based-cloudshell.md | 23 - ...reate-a-shared-vpc-using-cloudformation.md | 118 - .../aws-integration/index.md | 80 - ...required-permissions-for-aws-deployment.md | 22 - .../cost-management-of-aws-ec2-instances.md | 24 - .../index.md | 13 - .../managing-aws-ec2-execution-servers.md | 160 -- .../index.md | 10 - .../managing-public-cloud-apps-in-domains.md | 111 - .../_category_.json | 4 - .../azure-known-limitations.md | 16 - ...management-of-microsoft-azure-resources.md | 52 - .../custom-routing-for-azure-in-sandboxes.md | 11 - .../index.md | 17 - ...ith-cloud-based-cloudshell-installation.md | 42 - .../managing-the-azure-execution-server.md | 165 -- .../_category_.json | 4 - .../add-an-azure-app-template.md | 1018 -------- .../add-an-azure-cloud-provider-resource.md | 195 -- ...-an-execution-server-selector-for-azure.md | 29 - ...igure-azure-api-to-work-with-cloudshell.md | 154 -- .../configure-the-qualix-server-for-azure.md | 19 - ...udshell-management-vnet-to-quali-server.md | 64 - ...e-a-management-resource-group-and-vnets.md | 78 - .../microsoft-azure-integration/index.md | 69 - ...ng-multiple-azure-regions-in-cloudshell.md | 25 - .../setappsecuritygroups-code-example.md | 47 - .../version-2024.1/api-guide/_category_.json | 9 - .../cs-admin-rest-api/_category_.json | 4 - .../add-blueprints-to-domain.md | 80 - .../cs-admin-rest-api/add-domains-to-group.md | 83 - .../cs-admin-rest-api/add-groups-to-domain.md | 80 - .../add-resource-to-domain.md | 80 - .../cs-admin-rest-api/add-users-to-group.md | 77 - .../cs-admin-rest-api/create-domain.md | 80 - .../cs-admin-rest-api/create-group.md | 87 - .../cs-admin-rest-api/create-license-pool.md | 81 - .../cs-admin-rest-api/create-user.md | 91 - .../cs-admin-rest-api-response-code.md | 16 - .../cs-admin-rest-api-usage.md | 27 - .../cs-admin-rest-api/delete-domain.md | 45 - .../cs-admin-rest-api/delete-group.md | 44 - .../cs-admin-rest-api/delete-license-pool.md | 44 - .../cs-admin-rest-api/delete-user.md | 43 - .../cs-admin-rest-api/edit-domain.md | 82 - .../api-guide/cs-admin-rest-api/edit-group.md | 68 - .../cs-admin-rest-api/edit-license-pool.md | 68 - .../api-guide/cs-admin-rest-api/edit-user.md | 83 - .../cs-admin-rest-api/get-admin-api-token.md | 73 - .../cs-admin-rest-api/get-all-domains.md | 87 - .../get-all-external-groups.md | 75 - .../cs-admin-rest-api/get-all-groups.md | 105 - .../get-all-license-pools.md | 83 - .../cs-admin-rest-api/get-all-users.md | 148 -- .../get-domain-blueprints.md | 132 - .../cs-admin-rest-api/get-domain-by-id.md | 60 - .../cs-admin-rest-api/get-domain-groups.md | 97 - .../cs-admin-rest-api/get-domain-resources.md | 123 - .../cs-admin-rest-api/get-group-by-id.md | 60 - .../cs-admin-rest-api/get-group-domains.md | 91 - .../cs-admin-rest-api/get-group-users.md | 153 -- .../get-license-pool-by-id.md | 61 - .../cs-admin-rest-api/get-user-by-id.md | 98 - .../get-users-from-an-external-group.md | 97 - .../import-external-users.md | 101 - .../api-guide/cs-admin-rest-api/index.md | 97 - .../remove-blueprint-from-domain.md | 79 - .../remove-domains-from-group.md | 80 - .../remove-groups-from-domain.md | 78 - .../remove-resource-from-domain.md | 83 - .../remove-users-from-group.md | 76 - .../api-guide/cs-api-overview.md | 56 - .../api-guide/cs-sandbox-api/_category_.json | 4 - .../_category_.json | 4 - .../blueprint-identifier.md | 42 - .../blueprint-start.md | 184 -- .../blueprints.md | 95 - .../index.md | 9 - .../login.md | 74 - .../sandbox-identifier.md | 149 -- .../sandbox-stop.md | 55 - .../sandboxes.md | 100 - .../_category_.json | 4 - .../blueprint-identifier.md | 43 - .../blueprint-start-persistent.md | 186 -- .../blueprint-start.md | 159 -- .../blueprints.md | 96 - .../component-command-name.md | 122 - .../component-command-start.md | 127 - .../execution-id.md | 82 - .../execution-stop.md | 49 - .../index.md | 8 - .../login.md | 72 - .../sandbox-activity.md | 102 - .../sandbox-command-name.md | 115 - .../sandbox-command-start.md | 101 - .../sandbox-commands.md | 111 - .../sandbox-component-commands.md | 113 - .../sandbox-component-id.md | 109 - .../sandbox-components.md | 130 - .../sandbox-extend.md | 89 - .../sandbox-identifier.md | 150 -- .../sandbox-output.md | 98 - .../sandbox-owner-identifier.md | 84 - .../sandbox-stop.md | 55 - .../sandboxes.md | 104 - .../get-started-with-cs-sandbox-api.md | 58 - .../api-guide/cs-sandbox-api/index.md | 35 - .../new-jss-rest-api/_category_.json | 4 - .../api-support-for-jss-and-js.md | 55 - .../new-jss-rest-api/change-suite-owner.md | 50 - .../new-jss-rest-api/delete-suite-template.md | 41 - .../delete-test-discovery-service.md | 44 - .../delete-test-execution-service.md | 48 - .../new-jss-rest-api/get-suite-execution.md | 214 -- .../get-suite-template-details.md | 219 -- .../get-suite-template-executions.md | 278 -- .../new-jss-rest-api/get-suite-templates.md | 68 - .../get-test-discovery-services.md | 67 - .../get-test-execution-report.md | 74 - .../get-test-execution-services.md | 80 - .../api-guide/new-jss-rest-api/index.md | 54 - .../new-jss-rest-api/jss-api-login.md | 78 - .../jss-rest-api-response-codes.md | 17 - .../new-jss-rest-api/refresh-login.md | 59 - .../new-jss-rest-api/revoke-login.md | 30 - .../start-adhoc-suite-execution.md | 178 -- .../new-jss-rest-api/start-suite-execution.md | 61 - .../new-jss-rest-api/stop-job-execution.md | 68 - .../new-jss-rest-api/stop-suite-execution.md | 40 - .../api-guide/packaging-api/_category_.json | 4 - .../_category_.json | 4 - .../creat-and-load-blueprint-pkg/index.md | 5 - .../packaging-functions/_category_.json | 4 - .../packaging-functions/create.md | 22 - .../get-blueprint-details-as-xml.md | 110 - .../packaging-functions/get-topology-names.md | 25 - .../packaging-functions/index.md | 8 - .../packaging-functions/load.md | 21 - .../packaging-api/get-start-with-pkg-api.md | 161 -- .../api-guide/packaging-api/index.md | 7 - .../update-the-data-model/_category_.json | 4 - .../add-attribute-to-family.md | 25 - .../add-attribute-to-model.md | 24 - .../update-the-data-model/add-family.md | 32 - .../add-model-to-family.md | 25 - .../add-or-update-attributes.md | 32 - .../add-rsrc-driver-to-model.md | 23 - .../add-rsrc-script-to-model.md | 27 - .../create-model-hierarchy.md | 22 - .../update-the-data-model/index.md | 17 - .../remove-parent-model.md | 22 - .../remove-rsrc-driver-from-model.md | 21 - .../remove-rsrc-script-from-model.md | 23 - .../version-2024.1/api-guide/quali-api.md | 35 - .../_category_.json | 8 - .../cs-automation-api.md | 26 - .../testshell-api.md | 53 - .../version-2024.1/devguide/_category_.json | 4 - .../devguide/available-cs-api/_category_.json | 4 - .../automate-cs-sandboxes-for-devops.md | 177 -- .../devguide/available-cs-api/index.md | 55 - .../available-cs-api/sso-login-to-cs-api.md | 89 - .../useful-cs-api-examples/_category_.json | 4 - .../edit-app-in-sandbox.md | 181 -- .../find-blueprints-with-rsrc-serv-or-app.md | 174 -- .../useful-cs-api-examples/index.mdx | 9 - .../peform-actions-on-rsrc-in-sandbox.md | 66 - .../start-api-outside-cs.md | 25 - .../_category_.json | 4 - .../_category_.json | 9 - .../add-playbook-to-app.md | 49 - .../ansible-playbook-examples.md | 119 - .../configure-es-for-ansible.md | 128 - .../test-ansible-on-linux-es.md | 41 - .../tips-and-tricks-for-ansible-playbooks.md | 21 - .../_category_.json | 4 - .../add-script-to-app.md | 46 - .../custom-script-dev-for-apps/index.md | 67 - .../tips-and-tricks-for-custom-scripts.md | 15 - .../customize-cfg-mng-settings.md | 42 - .../getting-started-with-cfg-mng-dev.md | 17 - .../index.md | 15 - .../passing-variables-to-cfg-mng.md | 31 - .../_category_.json | 9 - .../app-deployment.md | 658 ----- .../configure-the-deployment-paths.md | 94 - .../controlling-app-deployment-orch.md | 15 - .../create-cp-shell.md | 44 - .../extend-the-shell-data-model.md | 111 - .../getting-started-with-cp-dev.md | 57 - .../l2-network-connectivity.md | 123 - .../l3-network-connectivity.md | 229 -- .../power-off-and-delete-vm.md | 173 -- .../remove-the-address-field.md | 38 - .../resource-discovery.md | 89 - .../the-cloud-provider-interface.md | 35 - .../the-cp-shell-mode.md | 18 - .../develop-orch-scripts/_category_.json | 4 - .../common-orch-script-recipes.md | 76 - .../cs-oob-orch/_category_.json | 4 - .../customize-guest-os-vcenter-command.md | 115 - .../develop-orch-scripts/cs-oob-orch/index.md | 475 ---- .../getting-started-with-orch-scripts.md | 156 -- .../how-orch-script-get-info-from-cs.md | 232 -- .../devguide/develop-orch-scripts/index.md | 12 - ...cript-commands-visibility-and-usability.md | 102 - .../develop-orch-scripts/script-deep-dive.md | 184 -- .../developing-shells/_category_.json | 4 - .../auto-discovery-for-inventory-shells.md | 191 -- .../commands-visibility-and-usability.md | 266 -- .../common-driver-recipes.md | 251 -- .../developing-shells/customize-shells.md | 447 ---- .../debug-shell-driver-commands.md | 190 -- .../developing-shells/deploy-to-prod.md | 105 - .../discover-inv-using-snmp.md | 154 -- .../developing-shells/driver-deep-dive.md | 256 -- .../developing-shells/first-gen-shells.md | 26 - .../developing-shells/getting-started.md | 288 -- .../how-shells-get-info-from-cs.md | 152 -- .../devguide/developing-shells/index.md | 24 - .../managing-the-shell-data-mode.md | 89 - .../modeling-shells-with-tosca.md | 311 --- .../override-old-shell-attributes.md | 92 - .../share-shell-with-comminity.md | 57 - .../shell-drivers-overview.md | 75 - .../the-shell-project-guide.md | 48 - .../tips-and-tricks-for-shells.md | 173 -- .../enable-winrm-on-win-vm-for-cfg-mng.md | 33 - .../version-2024.1/devguide/index.md | 42 - .../devguide/reference/_category_.json | 8 - .../reference/aws-traffic-mirroring.md | 189 -- .../categories-in-1st-gen-service-shells.md | 61 - .../devguide/reference/common-cs-packages.md | 24 - .../custom-routing-for-azure-apps.md | 147 -- .../reference/custom-sandbox-metadata.md | 209 -- .../intellisense-in-shells-and-scripts.md | 61 - .../devguide/reference/l1-switch-shells.md | 11 - ...map-connections-using-app-sub-resources.md | 68 - .../migrate-1st-gen-shell-to-2nd-gen-shell.md | 319 --- .../reference/migrate-shells-to-py3.md | 41 - .../reference/python-coding-standards.md | 72 - .../reference/quali-shell-framework-py2.md | 220 -- .../reference/quali-shell-framework-py3.md | 203 -- .../devguide/reference/resource-scripts.md | 149 -- .../devguide/reference/shellfoundry.md | 530 ---- .../reference/shells-that-load-static-vm.md | 130 - .../devguide/reference/short-dev-videos.md | 73 - .../devguide/setting-up-dev-env.md | 70 - versioned_docs/version-2024.1/faq.md | 69 - .../install-configure/_category_.json | 4 - .../cloudshell-sdk/_category_.json | 4 - .../cloudshell-sdk/general-info.md | 14 - .../install-configure/cloudshell-sdk/index.md | 10 - .../installation-procedure/_category_.json | 4 - .../create-vm-from-ova-template.md | 16 - .../download-the-va-image.md | 23 - .../installation-procedure/index.md | 8 - .../post-installation/_category_.json | 9 - .../post-installation/apply-cs-license.md | 27 - .../post-installation/setup-new-vm.md | 25 - .../cloudshell-sdk/overview/_category_.json | 4 - .../cloudshell-sdk/overview/index.md | 13 - .../cloudshell-sdk/overview/requirements.md | 13 - .../using-va-for-cs-operations.md | 16 - .../cloudshell-suite/_category_.json | 9 - .../cloudshell-suite/appendix/_category_.json | 8 - .../best-practices-cs-prod/_category_.json | 4 - .../best-practices-cs-prod/db-trimming.md | 131 - .../appendix/best-practices-cs-prod/index.md | 93 - .../appendix/fixed-server-roles.md | 21 - .../appendix/known-cs-install-issues.md | 15 - .../appendix/known-upgrade-issues.md | 15 - .../appendix/upgrade-rabbitmq-creds.md | 39 - .../appendix/utilities-and-l1-drivers.md | 73 - .../backup-restore/_category_.json | 9 - .../backup-restore/backup-cs-db.md | 61 - .../backup-restore/backup-vm.md | 14 - .../backup-restore/restore-cs-db.md | 23 - .../central-logging/_category_.json | 4 - .../central-logging/config-log4net.md | 88 - .../cloudshell-suite/central-logging/index.md | 33 - .../central-logging/modify-cloudshell.md | 34 - .../central-logging/track-threads.md | 77 - .../cloudshell-suite-overview/_category_.json | 4 - .../high-availability.md | 12 - .../cloudshell-suite-overview/index.md | 18 - .../remote-connections.md | 7 - .../complete-install/_category_.json | 4 - .../complete-install/download-cloudshell.md | 15 - .../complete-install/index.md | 15 - .../install-cloudshell/_category_.json | 4 - .../check-cloudshell-required-components.md | 55 - .../cloudshell-watcher-data-overview.md | 37 - .../import-users-from-ad.md | 57 - .../install-cloudshell/index.md | 19 - .../install-cloudshell-sandbox-api.md | 20 - .../install-cloudshell/install-products.md | 144 - .../install-cloudshell/install.md | 24 - .../install-cloudshell/select-components.md | 91 - .../select-database-type/_category_.json | 4 - .../best-practices-for-mongodb.md | 19 - .../how-to-upgrade-4.2-6.md | 231 -- .../select-database-type/index.md | 48 - .../set-the-mongodb-connection-string.md | 75 - .../select-install-location.md | 33 - .../select-installation-option.md | 27 - .../installation-checklist.md | 19 - .../configure-products/_category_.json | 9 - .../admin-config-settings.md | 80 - .../configure-products/change-service-user.md | 44 - .../config-execution-server-process.md | 84 - .../config-execution-server.md | 58 - .../config-mongodb-connection.md | 92 - .../config-pypi-server-in-offline-mode.md | 9 - .../configure-products/config-sandbox-api.md | 18 - .../config-sql-connection.md | 94 - .../configure-app-settings.md | 31 - .../configure-portal/_category_.json | 4 - .../configure-portal/best-practices.md | 69 - .../configure-portal/index.md | 228 -- .../configure-portal/set-portal-timeout.md | 26 - .../configure-products/select-a-license.md | 137 - .../server-connectivity-settings.md | 24 - .../cs-installation-validation.md | 21 - .../new-jss-install-config/_category_.json | 4 - .../admin-actions/_category_.json | 8 - .../admin-actions/change-log-level.md | 39 - .../admin-actions/config-https.md | 44 - .../admin-actions/config-sso.md | 87 - .../admin-actions/modify-cs-admin-pass.md | 46 - .../admin-actions/sandbox-creation-retries.md | 60 - .../admin-actions/update-k8s-env.md | 54 - .../high-level-install-flow/_category_.json | 4 - .../customize-deployment/_category_.json | 4 - .../customize-deployment-config-params.md | 126 - .../customize-deployment/index.md | 22 - .../customize-deployment/set-static-ip.md | 72 - .../deploy-jss-with-helm.md | 37 - .../high-level-install-flow/index.md | 22 - .../modify-cloudshell.md | 48 - .../new-jss-install-config/index.md | 14 - .../new-jss-architecture.md | 35 - .../new-jss-install-config/requirements.md | 14 - .../new-jss-install-config/supported-tools.md | 16 - .../test-discovery-service/_category_.json | 4 - .../config-test-discovery-service.md | 88 - .../test-discovery-service/index.md | 25 - .../test-execution-service/_category_.json | 4 - .../config-test-execution-service.md | 62 - .../test-execution-service/index.md | 17 - .../tes-management/_category_.json | 4 - .../tes-management/deploy-new-tes.md | 44 - .../tes-management/index.md | 10 - .../tes-management/scale-up.md | 37 - .../tes-management/view-helm-deployments.md | 15 - .../test-repository-config/_category_.json | 9 - .../associate-tests-to-domains.md | 54 - .../test-repository-config/set-up-repo.md | 42 - .../update-considerations.md | 24 - .../quali-certified-libraries.md | 23 - .../quick-install/_category_.json | 9 - .../quick-install/before-you-begin.md | 20 - .../quick-install/install-cs-quick.md | 30 - .../secure-communication/_category_.json | 8 - .../config-secured-portal.md | 20 - .../config-secured-pypi.md | 78 - .../config-secured-python-drivers.md | 98 - .../config-secured-quali-api.md | 31 - .../config-secured-sandbox-api.md | 30 - .../upgrade-procedure/_category_.json | 4 - .../upgrade-procedure/index.md | 42 - .../migrate-python-dependencies.md | 21 - .../roll-back-to-earlier-version.md | 27 - .../upgrade-procedure/upgrade-prep.md | 35 - .../upgrade-procedure/upgrade-production.md | 46 - .../upgrade-procedure/upgrade-staging.md | 93 - .../cs-insight-bi/_category_.json | 4 - .../cs-insight-bi/bi-terminology.md | 17 - .../_category_.json | 4 - .../add-data-source-table.md | 26 - ...ackup-restore-elasticube-and-dashboards.md | 59 - .../create-dashboards-and-widgets.md | 11 - .../create-customize-dashboards/index.md | 14 - .../inner-join-connections.md | 14 - .../_category_.json | 4 - .../elasticube-data-stores.md | 28 - .../elasticube-tables.md | 504 ---- .../cs-insight-bi-elasticube-tables/index.md | 16 - .../_category_.json | 4 - .../config-cs-to-enbl-sis-dashbds.md | 26 - .../embed-dashboards-externally/index.md | 16 - .../share-with-unregistered-users.md | 9 - .../install-configure/cs-insight-bi/index.md | 21 - .../insight-dashboards/_category_.json | 7 - .../manage-users-and-permissions.md | 9 - .../using-insight-dashboards.md | 13 - .../cs-insight-bi/insight-sso/_category_.json | 4 - .../insight-sso/configure-sso-in-cs.md | 30 - .../insight-sso/configure-sso-in-sisense.md | 35 - .../insight-sso/grant-admin-privilege.md | 14 - .../cs-insight-bi/insight-sso/index.md | 14 - .../insight-sso/sso-to-insight-workflow.md | 29 - .../install-insight/_category_.json | 8 - .../cs-insight-bi-components.md | 23 - .../install-insight/download-install-files.md | 16 - .../insight-configuration/_category_.json | 4 - .../insight-configuration/build-elasticube.md | 19 - .../insight-configuration/configure-https.md | 35 - .../grant-permissions.md | 22 - .../import-dashboards.md | 56 - .../insight-configuration/index.md | 17 - .../insight-configuration/install-addons.md | 15 - .../insight-configuration/install-sisense.md | 39 - .../insight-configuration/map-dashboards.md | 40 - .../install-insight/install-checklist.md | 18 - .../install-insight/install-sisense.md | 23 - .../cs-insight-bi/install-insight/rebrand.md | 66 - .../install-insight/requirements.md | 9 - .../install-insight/synchronization.md | 28 - .../key-points-and-limitations.md | 17 - .../cs-insight-bi/sisense-bi-components.md | 17 - .../cs-system-requirements/_category_.json | 4 - .../cs-component-architechture.md | 48 - .../cs-port-requirements.md | 72 - .../cs-system-requirements/database-prereq.md | 105 - .../cs-system-requirements/index.md | 20 - .../min-requirements-for-cs.md | 71 - .../network-recommendations.md | 10 - .../security-recommendations.md | 25 - .../software-and-utilities.md | 21 - .../supported-browsers.md | 13 - .../third-party-software.md | 58 - .../ha-deployment/_category_.json | 4 - .../ha-deployment/appendix/_category_.json | 9 - .../ha-deployment/appendix/documentation.md | 11 - .../ha-deployment/appendix/glossary.md | 25 - .../ha-deployment/appendix/references.md | 20 - .../ha-deployment/best-practice-es-with-ha.md | 29 - .../cs-app-server-clusting/_category_.json | 4 - .../cs-app-server-clusting/failure-trigger.md | 19 - .../cs-app-server-clusting/index.md | 7 - .../cs-app-server-clusting/performance.md | 11 - .../deployment-types-ha/_category_.json | 9 - .../basic-4-server-configuration.md | 13 - .../basic-6-server-configuration.md | 13 - .../deployment-considerations.md | 16 - .../install-configure/ha-deployment/index.md | 11 - .../ha-deployment/overview/_category_.json | 4 - .../ha-deployment/overview/architecture-ha.md | 19 - .../overview/guiding-principles.md | 15 - .../ha-deployment/overview/index.md | 14 - .../ha-installation/_category_.json | 4 - .../ha-installation/appendix/_category_.json | 9 - .../ha-installation/appendix/documentation.md | 11 - .../ha-installation/appendix/glossary.md | 24 - .../ha-installation/appendix/references.md | 141 - .../_category_.json | 4 - .../before-you-begin.md | 12 - .../config-arr-to-ssl-offloading.md | 28 - .../config-arr-to-ssl.md | 27 - .../config-arr-and-iis-to-ssl-in-ha/index.md | 9 - .../_category_.json | 4 - .../add-servers-to-main-iis.md | 38 - .../alternatives.md | 7 - .../config-arr-server.md | 19 - .../config-server-farm.md | 46 - .../config-portal-load-balance/index.md | 41 - .../verify-system-up.md | 25 - .../_category_.json | 4 - .../config-new-cluster.md | 41 - .../index.md | 8 - .../install-failover-cluster-feature.md | 30 - .../deployment-types-ha/_category_.json | 8 - .../basic-4-server-configuration.md | 13 - .../basic-6-server-configuration.md | 13 - .../deployment-considerations.md | 16 - .../ha-installation/index.md | 16 - .../_category_.json | 9 - .../activate-quali-server-on-all-nodes.md | 21 - ...nfig-cs-components-to-quali-server-role.md | 37 - .../configure-each-node.md | 15 - .../configure-quali-server/_category_.json | 4 - .../config-quali-server-on-first-node.md | 16 - .../configure-quali-server-with-avl-grp.md | 31 - .../configure-remaining-cluster-nodes.md | 10 - .../display-cluster-health-info.md | 17 - .../configure-quali-server/index.md | 12 - .../set-the-same-certificate.md | 31 - .../set-up-alwayson-groups.md | 67 - .../configure-the-app-server/_category_.json | 4 - .../configure-the-app-server/index.md | 8 - .../locating-the-cluster-name.md | 15 - .../modify-elasticsearch-config-file.md | 21 - .../modify-the-quali-vbs-file.md | 22 - .../create-config-role-for-quali-server.md | 44 - .../_category_.json | 4 - .../_category_.json | 4 - .../config-web-server-load-balancing/index.md | 5 - .../ms-app-request-routing.md | 19 - .../requirements.md | 17 - .../configure-cs-portal-to-ssl.md | 9 - .../create-config-role.md | 57 - .../install-configure-cs-portal/index.md | 9 - .../install-cs-portal.md | 13 - .../modify-webportal-vbs-file.md | 24 - .../installing-quali-server.md | 9 - .../_category_.json | 4 - .../add-another-host-to-net-lb.md | 18 - .../config-win-net-lb.md | 55 - .../install-win-network-load-balance/index.md | 53 - .../monitor-cluster-env.md | 10 - .../work-with-arr-cluster.md | 51 - .../work-with-https-portal.md | 9 - .../installation-procedure/_category_.json | 4 - .../configure-mongodb-in-ha-mode.md | 72 - .../configure-sql-db-server-cluster.md | 82 - .../download-the-ha-plugin.md | 24 - .../installation-procedure/index.md | 94 - .../_category_.json | 8 - .../alternative-solution.md | 7 - ...re-cs-components-to-license-server-role.md | 22 - .../license-server-installation.md | 57 - .../known-issues-and-limitations.md | 14 - .../maintenance-of-ha-plugin/_category_.json | 4 - .../maintenance-of-ha-plugin/index.md | 9 - .../move-wsfc-role-between-nodes.md | 18 - .../upgrada-cs-ha-plugin.md | 39 - .../upgrade-cloudshell.md | 63 - .../ha-installation/overview/_category_.json | 4 - .../ha-installation/overview/index.md | 13 - .../ha-installation/overview/requirements.md | 82 - .../overview/software-licenses.md | 8 - .../overview/supported-versions-of-ms-sql.md | 12 - .../version-2024.1/install-configure/index.md | 14 - .../linux-virtual-appliance/_category_.json | 9 - .../cs-linux-va-known-limitations.md | 34 - .../installation-procedure/_category_.json | 4 - .../create-es-from-docker.md | 167 -- .../create-es-from-ovf.md | 41 - .../create-es-from-qcow2.md | 57 - .../create-es-from-script.md | 139 - .../installation-procedure/index.md | 15 - .../linux-es-va-overview/_category_.json | 4 - .../download-es-va-image.md | 30 - .../linux-es-va-overview/index.md | 9 - .../linux-es-va-overview/limitations.md | 12 - .../linux-es-va-overview/sw-requirements.md | 18 - .../post-installation/_category_.json | 9 - .../configure-linux-es-for-ansible.md | 57 - .../configure/_category_.json | 4 - .../configure/example-run-config-file.md | 45 - .../post-installation/configure/index.md | 92 - .../post-installation/log-into-the-vm.md | 21 - .../post-installation/start-the-es.md | 21 - .../install-configure/qualix/_category_.json | 4 - .../qualix/appendix/_category_.json | 9 - .../qualix/appendix/qualix-known-issues.md | 9 - .../appendix/remove-message-at-startup.md | 34 - .../appendix/setting-qualix-to-utc-time.md | 40 - .../work-with-qualix-vm/_category_.json | 4 - .../work-with-qualix-vm/copy-paste-text.md | 13 - .../appendix/work-with-qualix-vm/index.md | 11 - .../transfer-files-from-client-machine.md | 21 - .../transfer-files-to-client-machine.md | 19 - .../qualix/high-level-setup-process.md | 32 - .../install-configure/qualix/index.md | 16 - .../qualix/install-configure/_category_.json | 9 - .../install-configure/create-vm-using-ovf.md | 27 - .../qualix-4.1-using-docker.md | 79 - .../qualix-5.0-using-docker.md | 178 -- .../qualix/log-into-qualix.md | 18 - .../post-installation-config/_category_.json | 4 - .../config-jks-cert.md | 39 - .../configure-remote-access.md | 61 - .../configure-vm-web-console.md | 96 - .../customize-remote-access.md | 128 - .../enable-https/_category_.json | 4 - .../enable-https/configure-ssl-cert.md | 61 - .../enable-https/index.md | 34 - .../qualix/post-installation-config/index.md | 28 - .../modify-cpu-and-ram.md | 19 - .../qualix-config-for-5-and-up.md | 180 -- .../restrict-qualix-access.md | 33 - .../set-static-ip-for-qualix.md | 53 - .../qualix/prepare-and-reserve-blueprint.md | 35 - .../qualix/qualix-overview/_category_.json | 4 - .../qualix/qualix-overview/download-qualix.md | 23 - .../qualix-overview/how-qualix-works.md | 31 - .../qualix/qualix-overview/index.md | 16 - .../qualix-overview/qualix-requirements.md | 34 - .../qualix/qualix-overview/qualix-support.md | 12 - .../qualix/training-portal/_category_.json | 4 - .../qualix/training-portal/index.md | 32 - .../setting-up-using-docker.md | 176 -- .../setting-up-using-installer.md | 217 -- .../welcome-to-your-training-session.md | 28 - versioned_docs/version-2024.1/intro.md | 28 - versioned_docs/version-2024.1/intro/Abt-CS.md | 32 - .../version-2024.1/intro/CS-Use-Cases.md | 28 - versioned_docs/version-2024.1/intro/Term.md | 205 -- .../version-2024.1/intro/_category_.json | 8 - .../features/Configuration-Management.md | 71 - .../intro/features/_category_.json | 4 - .../intro/features/abstract-resources.md | 50 - .../intro/features/apps-overview.md | 57 - .../intro/features/assembly-lab.md | 46 - .../features/blueprint-approval-policy.md | 40 - .../intro/features/connectivity.md | 27 - .../intro/features/email-notifications.md | 120 - .../intro/features/features-and-benefits.md | 61 - .../intro/features/persistent-sandboxes.md | 72 - .../intro/features/resources.md | 39 - .../version-2024.1/intro/features/services.md | 40 - .../version-2024.1/intro/features/shells.md | 42 - .../intro/features/static-vms.md | 17 - .../traffic-gens/Traffic-Gens-Abst.md | 71 - .../features/traffic-gens/_category_.json | 4 - .../intro/features/traffic-gens/index.md | 65 - .../version-2024.1/jss/_category_.json | 4 - .../comparison-with-1st-gen-job-scheduling.md | 20 - versioned_docs/version-2024.1/jss/index.md | 27 - .../version-2024.1/jss/job-scheduling-data.md | 9 - .../jss/job-scheduling-terminology.md | 17 - .../jss/jss-portal/_category_.json | 4 - .../version-2024.1/jss/jss-portal/index.md | 11 - .../job-scheduling-page/_category_.json | 4 - .../jss-portal/job-scheduling-page/index.md | 19 - .../job-scheduling-page/jira-issues.md | 73 - .../managing-suites/_category_.json | 9 - .../managing-suites/create-suites.md | 181 -- .../managing-suites/delete-suites.md | 37 - .../managing-suites/edit-suites.md | 16 - .../job-scheduling-page/run-custom-suite.md | 25 - .../running-and-stopping-suites.md | 52 - .../job-scheduling-page/view-suites.md | 51 - .../job-scheduling-page/view-test-reports.md | 18 - .../job-scheduling-servers/_category_.json | 4 - .../discovery-servers-dashboard.md | 18 - .../job-scheduling-servers/index.md | 13 - .../job-scheduling-servers/tes-dashboard.md | 80 - .../test-repositories.md | 105 - .../jss/jss-portal/jss-rest-api.md | 52 - .../jss/jss-portal/login-to-jss-portal.md | 25 - .../version-2024.1/jss/new-jss-logs.md | 70 - .../jss/statuses-and-results.md | 173 -- .../version-2024.1/portal/_category_.json | 8 - .../portal/blueprints/_category_.json | 4 - .../portal/blueprints/blueprint-catalog.md | 270 -- .../blueprint-workspace/_category_.json | 4 - .../blueprint-list-view.md | 73 - .../blueprints/blueprint-workspace/index.md | 218 -- .../creating-blueprints/_category_.json | 4 - .../creating-blueprints/abstract-resources.md | 97 - .../add-connectivity/_category_.json | 4 - .../add-physical-network/_category_.json | 4 - .../add-phy-net-req/_category_.json | 4 - .../add-phy-net-req/add-multiple-net-req.md | 21 - .../add-phy-net-req/index.md | 68 - .../config-physical-conn-req.md | 36 - .../delete-physical-conn-req.md | 24 - .../add-physical-network/index.md | 12 - .../physical-net-connectivity-prereq.md | 21 - .../view-phy-net-connectivity-req.md | 28 - .../add-virtual-network/_category_.json | 4 - .../add-virtual-net-connectivity-req.md | 85 - .../config-virtual-conn-req.md | 38 - .../delete-virtual-conn-req.md | 23 - .../add-virtual-network/index.md | 14 - .../view-virtual-net-connectivity-req.md | 24 - .../virtual-net-connectivity-prereq.md | 23 - .../add-connectivity/connections-legend.md | 16 - .../add-connectivity/index.md | 23 - .../creating-blueprints/add-instructions.md | 62 - .../creating-blueprints/add-user-inputs.md | 107 - .../creating-blueprints/apps/_category_.json | 9 - .../apps/add-app-to-blueprint.md | 32 - .../apps/edit-app-in-blueprint.md | 43 - .../apps/remove-app-from-blueprint.md | 20 - .../apps/reset-app-settings.md | 24 - .../apps/view-apps-catalog.md | 24 - .../blueprint-dev-best-practices.md | 38 - .../blueprint-properties.md | 34 - .../check-blueprint-routes.md | 21 - .../creating-blueprints/check-blueprint.md | 19 - .../configure-orchestration.md | 101 - .../create-blueprint-commands.md | 42 - .../creating-blueprints/create-blueprint.md | 50 - .../duplicate-blueprint.md | 23 - .../export-blueprints/_category_.json | 9 - .../export-blueprints/export-a-package.md | 50 - .../export-blueprints/export-diagram.md | 33 - .../creating-blueprints/import-package.md | 61 - .../blueprints/creating-blueprints/index.md | 33 - .../blueprints/creating-blueprints/labels.md | 88 - .../link-global-input-to-attribute.md | 16 - .../name-your-blueprint.md | 19 - .../resources/_category_.json | 9 - .../resources/add-resources.md | 25 - .../resources/configure-sub-resources.md | 27 - .../resources/find-resources.md | 115 - .../resources/remove-resources.md | 20 - .../resources/replace-with-abstract.md | 15 - .../resources/share-reserved-resources.md | 25 - .../resources/update-resource-attr.md | 29 - .../creating-blueprints/save-as-template.md | 26 - .../creating-blueprints/services.md | 83 - .../set-blueprint-privacy.md | 22 - .../version-2024.1/portal/blueprints/index.md | 20 - .../portal/blueprints/opening-blueprints.md | 42 - .../portal/inventory/_category_.json | 4 - .../version-2024.1/portal/inventory/index.md | 18 - .../portal/inventory/inventory-dashboard.md | 35 - .../_category_.json | 4 - .../create-abstract-template/_category_.json | 4 - .../abstract-resource-settings.md | 246 -- .../create-abstract-template/index.md | 34 - .../deleting-abstract-templates.md | 25 - .../editing-abstract-templates.md | 27 - .../managing-abstract-templates/index.md | 15 - .../viewing-abstract-templates.md | 18 - .../managing-resources/_category_.json | 9 - .../_category_.json | 4 - .../adding-aws-cp.md | 233 -- .../adding-azure-cp.md | 210 -- .../adding-vcenter-cp.md | 249 -- .../adding-inventory-resources/index.md | 50 - .../associate-resources-to-es.md | 70 - .../managing-resources/connecting-remotely.md | 30 - .../deleting-resources-from-inventory.md | 32 - .../discovering-resources.md | 25 - ...ting-resources-from-inventory-dashboard.md | 125 - .../include-exclude-resources.md | 35 - .../reserving-from-inventory.md | 29 - .../searching-for-sub-resources.md | 24 - .../portal/inventory/search-the-inventory.md | 12 - .../portal/inventory/viewing-services.md | 19 - .../portal/job-scheduling/_category_.json | 4 - ...ociate-jira-issues-with-test-executions.md | 91 - .../_category_.json | 8 - .../extend-suite-jobs.md | 29 - .../stop-suite-jobs.md | 37 - .../portal/job-scheduling/index.md | 24 - .../job-scheduling-dashboard.md | 62 - .../manage-automation-suites/_category_.json | 9 - .../manage-automation-suites/add-suites.md | 271 -- .../delete-suites-jobs-tests.md | 50 - .../manage-automation-suites/edit-suites.md | 24 - .../running-automation-suites/_category_.json | 4 - .../running-automation-suites/index.md | 31 - .../run-adhoc-suites.md | 133 - .../run-custom-suites.md | 47 - .../run-suites-from-template.md | 45 - .../view-execution-history/_category_.json | 9 - .../view-execution-history.md | 19 - .../view-test-reports/_category_.json | 4 - .../view-test-reports/index.md | 24 - .../setting-test-execution-report-template.md | 22 - .../view-tests-job-suite-execution-results.md | 58 - .../what-are-automation-suites.md | 25 - .../portal/overview/_category_.json | 4 - .../portal/overview/change-language.md | 26 - .../overview/end-to-end-wf/_category_.json | 8 - .../overview/end-to-end-wf/consume-sandbox.md | 40 - .../overview/end-to-end-wf/create-shell.md | 24 - .../implement-config-management.md | 17 - .../end-to-end-wf/model-public-cloud.md | 24 - .../version-2024.1/portal/overview/index.md | 9 - .../portal/overview/logging-in.md | 34 - .../portal/overview/navigating.md | 26 - .../portal/overview/portal-settings.md | 73 - .../portal/overview/touring-the-portal.md | 23 - .../portal/sandboxes/_category_.json | 4 - .../portal/sandboxes/creating-sandboxes.md | 200 -- .../version-2024.1/portal/sandboxes/index.mdx | 10 - .../portal/sandboxes/opening-sandboxes.md | 43 - .../sandbox-save-and-restore-overview.md | 47 - .../sandbox-workspace/_category_.json | 4 - .../add-connectivity/_category_.json | 4 - .../add-physical-network/_category_.json | 4 - .../add-phy-net-req/_category_.json | 4 - .../add-phy-net-req/add-multiple-net-req.md | 21 - .../add-phy-net-req/index.md | 68 - .../config-physical-conn-req.md | 114 - .../delete-physical-conn-req.md | 24 - .../add-physical-network/index.md | 12 - .../physical-net-connectivity-prereq.md | 21 - .../view-phy-net-connectivity-req.md | 28 - .../add-virtual-network/_category_.json | 4 - .../add-virtual-net-connectivity-req.md | 92 - .../config-virtual-conn-req.md | 39 - .../delete-virtual-conn-req.md | 23 - .../add-virtual-network/index.md | 14 - .../view-virtual-net-connectivity-req.md | 24 - .../virtual-net-connectivity-prereq.md | 23 - .../add-connectivity/connections-legend.md | 16 - .../add-connectivity/index.md | 23 - .../sandbox-workspace/apps/_category_.json | 10 - .../apps/activity-feed-for-app.md | 38 - .../apps/add-app-to-sandbox.md | 34 - .../apps/edit-app-in-sandbox.md | 47 - .../apps/remove-app-from-sandbox.md | 21 - .../apps/run-app-commands.md | 234 -- .../apps/view-apps-catalog.md | 24 - .../sandbox-workspace/apps/view-vm-details.md | 29 - .../connect-resources-and-apps.md | 205 -- .../create-cal-event-for-sandbox.md | 25 - .../export-diagrams-and-connections.md | 25 - .../extend-and-end-sandbox.md | 40 - .../sandboxes/sandbox-workspace/index.md | 140 - .../sandboxes/sandbox-workspace/labels.md | 45 - .../resources/_category_.json | 9 - .../resources/activity-feed-for-resources.md | 37 - .../resources/add-resources.md | 26 - .../resources/configure-sub-resources.md | 29 - .../resources/connect-remotely-with-qualix.md | 34 - .../resources/find-resources.md | 121 - .../resources/mark-in-use.md | 21 - .../resources/remove-resources.md | 20 - .../resources/share-reserved-resources.md | 27 - .../resources/update-resource-attr.md | 26 - .../review-sandbox-instructions.md | 17 - .../sandbox-workspace/run-commands.md | 121 - .../sandbox-workspace/sandbox-list-view.md | 78 - .../save-sandbox-as-blueprint.md | 22 - .../sandbox-workspace/save-sandbox.md | 229 -- .../sandboxes/sandbox-workspace/services.md | 114 - .../show-physical-connections.md | 21 - .../sandbox-workspace/show-physical-layer.md | 21 - .../system-messages/_category_.json | 9 - .../activity-details-window.md | 22 - .../system-messages/activity-feed-pane.md | 37 - .../system-messages/indication-messages.md | 18 - .../system-messages/output-console-window.md | 25 - .../update-sandbox-properties.md | 77 - .../view-sandbox-metadata.md | 17 - .../portal/sandboxes/sandboxes-dashboard.md | 151 -- .../sandboxes/saved-sandboxes/_category_.json | 4 - .../saved-sandboxes/delete-saved-sandbox.md | 28 - .../portal/sandboxes/saved-sandboxes/index.md | 29 - .../saved-sandboxes/restore-saved-sandbox.md | 80 - .../show-restored-sandboxes.md | 19 - .../quick-start/_category_.json | 8 - .../quick-start/create-sandbox.md | 78 - .../quick-start/creating-reserving.md | 98 - .../quick-start/install-and-setup.md | 102 - .../release-notes/_category_.json | 4 - .../release-notes/behavior-change.md | 41 - .../version-2024.1/release-notes/bug-fixes.md | 20 - .../release-notes/general-announcments.md | 15 - .../version-2024.1/release-notes/index.md | 9 - .../release-notes/known-limitations.md | 69 - .../release-notes/supported-versions.md | 33 - .../version-2024.1/release-notes/whats-new.md | 70 - .../troubleshooting/_category_.json | 8 - .../cloudshell-portal/_category_.json | 4 - .../empty-resourceapp-catalogs.md | 18 - ...fails-on-nonexistent-resource-conflicts.md | 18 - ...k-is-missing-from-the-blueprint-catalog.md | 35 - ...vices-to-a-blueprint-or-sandbox-diagram.md | 31 - .../unable-to-add-resources.md | 40 - .../unable-to-locate-a-resource.md | 99 - .../unable-to-login-to-cloudshell-portal.md | 28 - .../unable-to-save-new-app.md | 36 - .../unable-to-share-resources.md | 31 - ...ery-error-discovery-failed-for-resource.md | 26 - ...powered-off-at-the-end-of-a-reservation.md | 45 - ...owered-on-at-the-start-of-a-reservation.md | 32 - .../database-and-permissions/_category_.json | 4 - .../access-to-database-denied.md | 32 - .../database-cannot-be-identified.md | 21 - ...rmissions-were-not-correctly-configured.md | 26 - ...ge-amount-of-memory-used-on-mssqlserver.md | 49 - ...ng-user-permissions-to-run-dbcc-traceon.md | 27 - .../execution-servers/_category_.json | 4 - ...-quali-server-and-the-execution-servers.md | 14 - ...failed-to-run-with-exit-code-1073741502.md | 32 - ...cripts-failed-with-exit-code-1073741819.md | 34 - .../execution-servers/venv-fails-to-build.md | 24 - .../troubleshooting/insight/_category_.json | 4 - ...or-key-already-exists-in-the-collection.md | 49 - .../how-to-migrate-sisense-to-a-new-server.md | 23 - ...ard-error-redirected-you-too-many-times.md | 52 - ...ally-large-resourceutilizationlog-table.md | 19 - .../installation/_category_.json | 4 - ...peration-resulted-in-one-or-more-errors.md | 31 - .../installation/load-license.md | 25 - .../manual-iis-installation-error.md | 37 - .../installation/msdtc-firewall-settings.md | 29 - .../msdtc-security-configuration.md | 67 - ...causing-cloudshell-installation-to-fail.md | 39 - ...hell-execution-policy-high-availability.md | 44 - ...ils-in-search-engine-health-check-stage.md | 24 - .../testshell-database-permissions.md | 39 - .../the-requested-page-cannot-be-accessed.md | 34 - ...cted-error-when-installing-quali-server.md | 43 - ...ll-upgrade-override-cloudshell-settings.md | 30 - .../job-scheduling/_category_.json | 4 - ...uite-execution-remains-in-pending-state.md | 39 - .../incorrect-test-execution-order.md | 17 - .../quali-server/_category_.json | 4 - ...-start-during-quali-server-installation.md | 94 - ...rabbitmq-service-fails-to-start-erl-exe.md | 25 - ...\342\200\231t-working-2022.1-and-above.md" | 35 - ...e-amount-of-memory-used-on-quali-server.md | 42 - ...ss-errors-error-installing-dependencies.md | 72 - .../quali-server/quali-server-crash.md | 40 - ...grade-fails-in-the-restart-service-step.md | 21 - ...r-upgrade-fails-on-import-packages-step.md | 18 - .../set-the-timeout-period-for-l1-drivers.md | 40 - .../troubleshooting/qualix/_category_.json | 4 - ...-ubuntu-22.04-machines-with-private-key.md | 48 - ...o-a-device-guacamole-refused-to-connect.md | 52 - ...d-permissionsinvalid-link-access-denied.md | 67 - ...-connection-error-remote-desktop-server.md | 30 - ...correct-name-for-resource-browser-title.md | 25 - ...ion-attempt-opens-cloudshell-login-page.md | 15 - .../troubleshooting-guacamole-services.md | 29 - .../troubleshooting-qualix-docker-services.md | 15 - .../qualix/what-is-my-qualix-version.md | 13 - .../resource-manager/_category_.json | 4 - .../resource-manager/auto-load-fails.md | 69 - .../troubleshooting/shells/_category_.json | 4 - .../shells/shell-update-error.md | 22 - .../troubleshooting-overview/_category_.json | 8 - .../collecting-logs.md | 307 --- .../useful-tools-and-utilities.md | 17 - .../whats-in-this-guide.md | 29 - .../version-2023.3-sidebars.json | 8 - .../version-2024.1-sidebars.json | 8 - versions.json | 5 +- 2265 files changed, 1 insertion(+), 140143 deletions(-) delete mode 100644 versioned_docs/version-2023.3/admin/_category_.json delete mode 100644 versioned_docs/version-2023.3/admin/administrative-operations-overview.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-event-queue.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/_category_.json delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/connecting-an-execution-server-to-quali-server.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/deleting-execution-servers.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/optimizing-execution-provisioning.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/setting-up-execution-servers-to-run-commands.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/_category_.json delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/cleaning-up-the-virtual-environments-folder.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/configuring-cloudshell-to-execute-python-commands-in-offline-mode.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/index.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/pypi-server-managing-python-shell-and-script-dependencies.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/updating-python-dependencies-for-shells-drivers-and-scripts.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/using-a-proxy-to-download-python-packages-from-public-pypi.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/what-are-python-virtual-environments.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-identity-management/_category_.json delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/_category_.json delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/active-directory-integration/_category_.json delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/active-directory-integration/configuring-cloudshell-to-automatically-import-active-directory-users-on-first-login.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/active-directory-integration/importing-users-into-cloudshell-from-an-active-directory.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/active-directory-integration/index.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/index.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/json-web-token-jwt-configuration.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/ldap-integration.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/saml-authentication-configuration-sso-slo/_category_.json delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/saml-authentication-configuration-sso-slo/configure-sso/_category_.json delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/saml-authentication-configuration-sso-slo/configure-sso/index.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/saml-authentication-configuration-sso-slo/configure-sso/sso-tester.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/saml-authentication-configuration-sso-slo/configuring-single-logout-slo.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/saml-authentication-configuration-sso-slo/index.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-identity-management/cloudshell-domains/_category_.json delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-identity-management/cloudshell-domains/adding-domains.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-identity-management/cloudshell-domains/addingremoving-domain-blueprints.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-identity-management/cloudshell-domains/addingremoving-resources-from-a-domain.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-identity-management/cloudshell-domains/archiving-and-restoring-domains.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-identity-management/cloudshell-domains/domains-window.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-identity-management/cloudshell-domains/index.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-identity-management/cloudshell-domains/optimized-resource-utilization-using-domains.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-identity-management/index.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-identity-management/managing-cloudshell-permissions/_category_.json delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-identity-management/managing-cloudshell-permissions/cloudshell-user-permission-levels-rbac.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-identity-management/managing-cloudshell-permissions/folder-permissions-for-shared-studio-tests.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-identity-management/managing-cloudshell-permissions/index.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-identity-management/managing-users/_category_.json delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-identity-management/managing-users/cloudshell-users-and-groups-overview.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-identity-management/managing-users/index.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-identity-management/managing-users/managing-cloudshell-groups.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-identity-management/managing-users/managing-cloudshell-users.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-identity-management/managing-users/updating-user-settings.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/_category_.json delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/blueprint-templates.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/javascript-extensions.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/licensing.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/maintenance-window.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/_category_.json delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/_category_.json delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/adding-app-template.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/app-resource.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/configuration-management.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/_category_.json delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/aws-ec2-dp-attributes.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/azure-custom-image-dp-attributes.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/azure-galery-dp-attributes.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/azure-marketplace-dp-attributes.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/openstack-glance-dp-attributes.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/vcenter-clone-image-dp-attributes.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/vcenter-clone-template-dp-attributes.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/vcenter-clone-vm-dp-attributes.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/vcenter-link-clone-vm-dp-attributes.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/index.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-dashboard-overview.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-automation/_category_.json delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-automation/associating-automation-to-domains.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-automation/automation-overview.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-automation/index.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-automation/managing-assets.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-automation/managing-drivers.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-categories.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-execution-servers/_category_.json delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-execution-servers/execution-servers-commands-queue-page.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-execution-servers/execution-servers-executions-page.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-execution-servers/execution-servers-overview-page.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-execution-servers/execution-servers-servers-page.md delete mode 100644 versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-shells.md delete mode 100644 versioned_docs/version-2023.3/admin/index.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/_category_.json delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/_category_.json delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/advanced-cloudshell-customizations.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/_category_.json delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/abstract-resources.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/api.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/apps.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/blueprint-catalog.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/blueprint-workspace.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/connectivity-management-and-route-configuration.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/execution-server.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/general.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/index.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/inventory-dashboard.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/ldap-integration.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/monitoring.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/new-job-scheduling.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/online-help.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/pypi-server.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/registration-passwords-emails-and-licenses.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/sandboxes.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/scheduling-and-queuing.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/scheduling-commands.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/search.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/single-sign-on-sso.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/testshell-studio.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customizing-email-notification-templates.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customizing-the-language-file.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/index.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/managing-cloudshell-portal-tours.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/rebranding-cloudshell-portal-white-labeling.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/resizing-the-value-box-of-text-global-inputs.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/save-sandbox-configurations.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-deployment-overview.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-resource-management-client.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/customizing-the-start-page-in-resource-manager-client/_category_.json delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/customizing-the-start-page-in-resource-manager-client/about-the-start-page-in-resource-manager-client.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/customizing-the-start-page-in-resource-manager-client/annotated-start-page-example.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/defining-the-target-server.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/_category_.json delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/adding-and-configuring-resources/_category_.json delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/adding-and-configuring-resources/adding-and-configuring-resources-in-resource-manager.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/adding-and-configuring-resources/associating-a-driver-with-a-resource.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/adding-and-configuring-resources/index.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/configuring-services.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connected-commands/_category_.json delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connected-commands/index.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connected-commands/power-management.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connectivity-control/_category_.json delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connectivity-control/define-the-resource-connections-of-the-switch-or-patch-panel.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connectivity-control/index.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connectivity-control/l1-switches.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connectivity-control/patch-panels.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connectivity-control/subnet-connectivity/_category_.json delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connectivity-control/subnet-connectivity/index.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connectivity-control/subnet-connectivity/subnet-connectivity--points-to-consider.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connectivity-control/vlan-connectivity/_category_.json delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connectivity-control/vlan-connectivity/index.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connectivity-control/vlan-connectivity/vlan-connectivity--points-to-consider.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/index.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/inventory-drivers-and-utilities.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/_category_.json delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/attributes.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/defining-the-resource-data-model.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/defining-the-resource-structure.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/importingexporting-resource-family-updates.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/index.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/viewing-resource-live-status.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/jira-integration-with-cloudshell.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/setting-up-license-pools/_category_.json delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/setting-up-license-pools/using-license-pools.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/source-control-using-local-tests-in-automation-suites/_category_.json delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/source-control-using-local-tests-in-automation-suites/enabling-automation-suites-to-use-local-tests.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/source-control-using-local-tests-in-automation-suites/index.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/source-control-using-local-tests-in-automation-suites/setting-up-source-control-for-testshell-tests.md delete mode 100644 versioned_docs/version-2023.3/admin/setting-up-cloudshell/source-control-using-local-tests-in-automation-suites/testshell-integration-with-gitlab.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/_category_.json delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/cloud-provider-2g-shells-features-and-capabilities.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/customizing-app-deployment-types.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/index.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/kubernetes-integration/_category_.json delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/kubernetes-integration/add-a-kubernetes-app-template.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/kubernetes-integration/add-a-kubernetes-cloud-provider-resource.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/kubernetes-integration/index.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/kubernetes-integration/kubernetes-prerequisites.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/kubernetes-integration/supported-cloud-providers-for-kubernetes-integration.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/_category_.json delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/index.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/managing-private-cloud-apps-in-domains.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/openstack-integration-and-configuration/_category_.json delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/openstack-integration-and-configuration/add-an-openstack-app-template.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/openstack-integration-and-configuration/add-openstack-cloud-provider-resource.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/openstack-integration-and-configuration/index.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/openstack-integration-and-configuration/openstack-configuration-requirements.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/openstack-integration-and-configuration/openstack-known-limitations.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/_category_.json delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/add-a-vcenter-app-template.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/add-vmware-vcenter-cloud-provider-resource.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/index.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/required-vcenter-user-permissions-per-deployment-type.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/vcenter-integration-architecture-and-prerequisites.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/_category_.json delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/_category_.json delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/_category_.json delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/add-an-aws-ec2-app-template.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/add-an-aws-ec2-cloud-provider-resource.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/aws-regions-supported-by-cloudshell.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/configure-an-execution-server-selector-for-aws-ec2.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/configure-the-qualix-server-for-aws-ec2.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/connect-the-management-vpc-to-quali-server.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/create-a-management-vpc/_category_.json delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/create-a-management-vpc/index.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/create-a-management-vpc/integrating-aws-with-cloud-based-cloudshell.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/create-a-shared-vpc-using-cloudformation.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/index.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/required-permissions-for-aws-deployment.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/cost-management-of-aws-ec2-instances.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/index.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/managing-aws-ec2-execution-servers.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/index.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/managing-public-cloud-apps-in-domains.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/_category_.json delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/azure-known-limitations.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/cost-management-of-microsoft-azure-resources.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/custom-routing-for-azure-in-sandboxes.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/index.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/integrating-azure-with-cloud-based-cloudshell-installation.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/managing-the-azure-execution-server.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/_category_.json delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/add-an-azure-app-template.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/add-an-azure-cloud-provider-resource.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/configure-an-execution-server-selector-for-azure.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/configure-azure-api-to-work-with-cloudshell.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/configure-the-qualix-server-for-azure.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/connect-the-cloudshell-management-vnet-to-quali-server.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/create-a-management-resource-group-and-vnets.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/index.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/using-multiple-azure-regions-in-cloudshell.md delete mode 100644 versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/setappsecuritygroups-code-example.md delete mode 100644 versioned_docs/version-2023.3/api-guide/_category_.json delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/_category_.json delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/add-blueprints-to-domain.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/add-domains-to-group.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/add-groups-to-domain.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/add-resource-to-domain.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/add-users-to-group.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/create-domain.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/create-group.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/create-license-pool.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/create-user.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/cs-admin-rest-api-response-code.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/cs-admin-rest-api-usage.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/delete-domain.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/delete-group.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/delete-license-pool.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/delete-user.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/edit-domain.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/edit-group.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/edit-license-pool.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/edit-user.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-admin-api-token.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-all-domains.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-all-external-groups.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-all-groups.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-all-license-pools.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-all-users.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-domain-blueprints.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-domain-by-id.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-domain-groups.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-domain-resources.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-group-by-id.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-group-domains.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-group-users.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-license-pool-by-id.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-user-by-id.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-users-from-an-external-group.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/import-external-users.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/index.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/remove-blueprint-from-domain.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/remove-domains-from-group.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/remove-groups-from-domain.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/remove-resource-from-domain.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/remove-users-from-group.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-api-overview.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-sandbox-api/_category_.json delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/_category_.json delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/blueprint-identifier.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/blueprint-start.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/blueprints.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/index.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/login.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/sandbox-identifier.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/sandbox-stop.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/sandboxes.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/_category_.json delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/blueprint-identifier.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/blueprint-start-persistent.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/blueprint-start.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/blueprints.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/component-command-name.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/component-command-start.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/execution-id.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/execution-stop.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/index.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/login.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-activity.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-command-name.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-command-start.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-commands.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-component-commands.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-component-id.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-components.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-extend.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-identifier.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-output.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-owner-identifier.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-stop.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandboxes.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-sandbox-api/get-started-with-cs-sandbox-api.md delete mode 100644 versioned_docs/version-2023.3/api-guide/cs-sandbox-api/index.md delete mode 100644 versioned_docs/version-2023.3/api-guide/new-jss-rest-api/_category_.json delete mode 100644 versioned_docs/version-2023.3/api-guide/new-jss-rest-api/api-support-for-jss-and-js.md delete mode 100644 versioned_docs/version-2023.3/api-guide/new-jss-rest-api/change-suite-owner.md delete mode 100644 versioned_docs/version-2023.3/api-guide/new-jss-rest-api/delete-suite-template.md delete mode 100644 versioned_docs/version-2023.3/api-guide/new-jss-rest-api/delete-test-discovery-service.md delete mode 100644 versioned_docs/version-2023.3/api-guide/new-jss-rest-api/delete-test-execution-service.md delete mode 100644 versioned_docs/version-2023.3/api-guide/new-jss-rest-api/get-suite-execution.md delete mode 100644 versioned_docs/version-2023.3/api-guide/new-jss-rest-api/get-suite-template-details.md delete mode 100644 versioned_docs/version-2023.3/api-guide/new-jss-rest-api/get-suite-template-executions.md delete mode 100644 versioned_docs/version-2023.3/api-guide/new-jss-rest-api/get-suite-templates.md delete mode 100644 versioned_docs/version-2023.3/api-guide/new-jss-rest-api/get-test-discovery-services.md delete mode 100644 versioned_docs/version-2023.3/api-guide/new-jss-rest-api/get-test-execution-report.md delete mode 100644 versioned_docs/version-2023.3/api-guide/new-jss-rest-api/get-test-execution-services.md delete mode 100644 versioned_docs/version-2023.3/api-guide/new-jss-rest-api/index.md delete mode 100644 versioned_docs/version-2023.3/api-guide/new-jss-rest-api/jss-api-login.md delete mode 100644 versioned_docs/version-2023.3/api-guide/new-jss-rest-api/jss-rest-api-response-codes.md delete mode 100644 versioned_docs/version-2023.3/api-guide/new-jss-rest-api/refresh-login.md delete mode 100644 versioned_docs/version-2023.3/api-guide/new-jss-rest-api/revoke-login.md delete mode 100644 versioned_docs/version-2023.3/api-guide/new-jss-rest-api/start-adhoc-suite-execution.md delete mode 100644 versioned_docs/version-2023.3/api-guide/new-jss-rest-api/start-suite-execution.md delete mode 100644 versioned_docs/version-2023.3/api-guide/new-jss-rest-api/stop-job-execution.md delete mode 100644 versioned_docs/version-2023.3/api-guide/new-jss-rest-api/stop-suite-execution.md delete mode 100644 versioned_docs/version-2023.3/api-guide/packaging-api/_category_.json delete mode 100644 versioned_docs/version-2023.3/api-guide/packaging-api/creat-and-load-blueprint-pkg/_category_.json delete mode 100644 versioned_docs/version-2023.3/api-guide/packaging-api/creat-and-load-blueprint-pkg/index.md delete mode 100644 versioned_docs/version-2023.3/api-guide/packaging-api/creat-and-load-blueprint-pkg/packaging-functions/_category_.json delete mode 100644 versioned_docs/version-2023.3/api-guide/packaging-api/creat-and-load-blueprint-pkg/packaging-functions/create.md delete mode 100644 versioned_docs/version-2023.3/api-guide/packaging-api/creat-and-load-blueprint-pkg/packaging-functions/get-blueprint-details-as-xml.md delete mode 100644 versioned_docs/version-2023.3/api-guide/packaging-api/creat-and-load-blueprint-pkg/packaging-functions/get-topology-names.md delete mode 100644 versioned_docs/version-2023.3/api-guide/packaging-api/creat-and-load-blueprint-pkg/packaging-functions/index.md delete mode 100644 versioned_docs/version-2023.3/api-guide/packaging-api/creat-and-load-blueprint-pkg/packaging-functions/load.md delete mode 100644 versioned_docs/version-2023.3/api-guide/packaging-api/get-start-with-pkg-api.md delete mode 100644 versioned_docs/version-2023.3/api-guide/packaging-api/index.md delete mode 100644 versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/_category_.json delete mode 100644 versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/add-attribute-to-family.md delete mode 100644 versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/add-attribute-to-model.md delete mode 100644 versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/add-family.md delete mode 100644 versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/add-model-to-family.md delete mode 100644 versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/add-or-update-attributes.md delete mode 100644 versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/add-rsrc-driver-to-model.md delete mode 100644 versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/add-rsrc-script-to-model.md delete mode 100644 versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/create-model-hierarchy.md delete mode 100644 versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/index.md delete mode 100644 versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/remove-parent-model.md delete mode 100644 versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/remove-rsrc-driver-from-model.md delete mode 100644 versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/remove-rsrc-script-from-model.md delete mode 100644 versioned_docs/version-2023.3/api-guide/quali-api.md delete mode 100644 versioned_docs/version-2023.3/api-guide/shell-dev-blueprint-design-api/_category_.json delete mode 100644 versioned_docs/version-2023.3/api-guide/shell-dev-blueprint-design-api/cs-automation-api.md delete mode 100644 versioned_docs/version-2023.3/api-guide/shell-dev-blueprint-design-api/testshell-api.md delete mode 100644 versioned_docs/version-2023.3/devguide/_category_.json delete mode 100644 versioned_docs/version-2023.3/devguide/available-cs-api/_category_.json delete mode 100644 versioned_docs/version-2023.3/devguide/available-cs-api/automate-cs-sandboxes-for-devops.md delete mode 100644 versioned_docs/version-2023.3/devguide/available-cs-api/index.md delete mode 100644 versioned_docs/version-2023.3/devguide/available-cs-api/sso-login-to-cs-api.md delete mode 100644 versioned_docs/version-2023.3/devguide/available-cs-api/useful-cs-api-examples/_category_.json delete mode 100644 versioned_docs/version-2023.3/devguide/available-cs-api/useful-cs-api-examples/edit-app-in-sandbox.md delete mode 100644 versioned_docs/version-2023.3/devguide/available-cs-api/useful-cs-api-examples/find-blueprints-with-rsrc-serv-or-app.md delete mode 100644 versioned_docs/version-2023.3/devguide/available-cs-api/useful-cs-api-examples/index.mdx delete mode 100644 versioned_docs/version-2023.3/devguide/available-cs-api/useful-cs-api-examples/peform-actions-on-rsrc-in-sandbox.md delete mode 100644 versioned_docs/version-2023.3/devguide/available-cs-api/useful-cs-api-examples/start-api-outside-cs.md delete mode 100644 versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/_category_.json delete mode 100644 versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/ansible-playbook-dev-for-apps/_category_.json delete mode 100644 versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/ansible-playbook-dev-for-apps/add-playbook-to-app.md delete mode 100644 versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/ansible-playbook-dev-for-apps/ansible-playbook-examples.md delete mode 100644 versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/ansible-playbook-dev-for-apps/configure-es-for-ansible.md delete mode 100644 versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/ansible-playbook-dev-for-apps/test-ansible-on-linux-es.md delete mode 100644 versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/ansible-playbook-dev-for-apps/tips-and-tricks-for-ansible-playbooks.md delete mode 100644 versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/custom-script-dev-for-apps/_category_.json delete mode 100644 versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/custom-script-dev-for-apps/add-script-to-app.md delete mode 100644 versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/custom-script-dev-for-apps/index.md delete mode 100644 versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/custom-script-dev-for-apps/tips-and-tricks-for-custom-scripts.md delete mode 100644 versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/customize-cfg-mng-settings.md delete mode 100644 versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/getting-started-with-cfg-mng-dev.md delete mode 100644 versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/index.md delete mode 100644 versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/passing-variables-to-cfg-mng.md delete mode 100644 versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/_category_.json delete mode 100644 versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/app-deployment.md delete mode 100644 versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/configure-the-deployment-paths.md delete mode 100644 versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/controlling-app-deployment-orch.md delete mode 100644 versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/create-cp-shell.md delete mode 100644 versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/extend-the-shell-data-model.md delete mode 100644 versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/getting-started-with-cp-dev.md delete mode 100644 versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/l2-network-connectivity.md delete mode 100644 versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/l3-network-connectivity.md delete mode 100644 versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/power-off-and-delete-vm.md delete mode 100644 versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/remove-the-address-field.md delete mode 100644 versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/resource-discovery.md delete mode 100644 versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/the-cloud-provider-interface.md delete mode 100644 versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/the-cp-shell-mode.md delete mode 100644 versioned_docs/version-2023.3/devguide/develop-orch-scripts/_category_.json delete mode 100644 versioned_docs/version-2023.3/devguide/develop-orch-scripts/common-orch-script-recipes.md delete mode 100644 versioned_docs/version-2023.3/devguide/develop-orch-scripts/cs-oob-orch/_category_.json delete mode 100644 versioned_docs/version-2023.3/devguide/develop-orch-scripts/cs-oob-orch/customize-guest-os-vcenter-command.md delete mode 100644 versioned_docs/version-2023.3/devguide/develop-orch-scripts/cs-oob-orch/index.md delete mode 100644 versioned_docs/version-2023.3/devguide/develop-orch-scripts/getting-started-with-orch-scripts.md delete mode 100644 versioned_docs/version-2023.3/devguide/develop-orch-scripts/how-orch-script-get-info-from-cs.md delete mode 100644 versioned_docs/version-2023.3/devguide/develop-orch-scripts/index.md delete mode 100644 versioned_docs/version-2023.3/devguide/develop-orch-scripts/script-commands-visibility-and-usability.md delete mode 100644 versioned_docs/version-2023.3/devguide/develop-orch-scripts/script-deep-dive.md delete mode 100644 versioned_docs/version-2023.3/devguide/developing-shells/_category_.json delete mode 100644 versioned_docs/version-2023.3/devguide/developing-shells/auto-discovery-for-inventory-shells.md delete mode 100644 versioned_docs/version-2023.3/devguide/developing-shells/commands-visibility-and-usability.md delete mode 100644 versioned_docs/version-2023.3/devguide/developing-shells/common-driver-recipes.md delete mode 100644 versioned_docs/version-2023.3/devguide/developing-shells/customize-shells.md delete mode 100644 versioned_docs/version-2023.3/devguide/developing-shells/debug-shell-driver-commands.md delete mode 100644 versioned_docs/version-2023.3/devguide/developing-shells/deploy-to-prod.md delete mode 100644 versioned_docs/version-2023.3/devguide/developing-shells/discover-inv-using-snmp.md delete mode 100644 versioned_docs/version-2023.3/devguide/developing-shells/driver-deep-dive.md delete mode 100644 versioned_docs/version-2023.3/devguide/developing-shells/first-gen-shells.md delete mode 100644 versioned_docs/version-2023.3/devguide/developing-shells/getting-started.md delete mode 100644 versioned_docs/version-2023.3/devguide/developing-shells/how-shells-get-info-from-cs.md delete mode 100644 versioned_docs/version-2023.3/devguide/developing-shells/index.md delete mode 100644 versioned_docs/version-2023.3/devguide/developing-shells/managing-the-shell-data-mode.md delete mode 100644 versioned_docs/version-2023.3/devguide/developing-shells/modeling-shells-with-tosca.md delete mode 100644 versioned_docs/version-2023.3/devguide/developing-shells/override-old-shell-attributes.md delete mode 100644 versioned_docs/version-2023.3/devguide/developing-shells/share-shell-with-comminity.md delete mode 100644 versioned_docs/version-2023.3/devguide/developing-shells/shell-drivers-overview.md delete mode 100644 versioned_docs/version-2023.3/devguide/developing-shells/the-shell-project-guide.md delete mode 100644 versioned_docs/version-2023.3/devguide/developing-shells/tips-and-tricks-for-shells.md delete mode 100644 versioned_docs/version-2023.3/devguide/enable-winrm-on-win-vm-for-cfg-mng.md delete mode 100644 versioned_docs/version-2023.3/devguide/index.md delete mode 100644 versioned_docs/version-2023.3/devguide/reference/_category_.json delete mode 100644 versioned_docs/version-2023.3/devguide/reference/aws-traffic-mirroring.md delete mode 100644 versioned_docs/version-2023.3/devguide/reference/categories-in-1st-gen-service-shells.md delete mode 100644 versioned_docs/version-2023.3/devguide/reference/common-cs-packages.md delete mode 100644 versioned_docs/version-2023.3/devguide/reference/custom-routing-for-azure-apps.md delete mode 100644 versioned_docs/version-2023.3/devguide/reference/custom-sandbox-metadata.md delete mode 100644 versioned_docs/version-2023.3/devguide/reference/intellisense-in-shells-and-scripts.md delete mode 100644 versioned_docs/version-2023.3/devguide/reference/l1-switch-shells.md delete mode 100644 versioned_docs/version-2023.3/devguide/reference/map-connections-using-app-sub-resources.md delete mode 100644 versioned_docs/version-2023.3/devguide/reference/migrate-1st-gen-shell-to-2nd-gen-shell.md delete mode 100644 versioned_docs/version-2023.3/devguide/reference/migrate-shells-to-py3.md delete mode 100644 versioned_docs/version-2023.3/devguide/reference/python-coding-standards.md delete mode 100644 versioned_docs/version-2023.3/devguide/reference/quali-shell-framework-py2.md delete mode 100644 versioned_docs/version-2023.3/devguide/reference/quali-shell-framework-py3.md delete mode 100644 versioned_docs/version-2023.3/devguide/reference/resource-scripts.md delete mode 100644 versioned_docs/version-2023.3/devguide/reference/shellfoundry.md delete mode 100644 versioned_docs/version-2023.3/devguide/reference/shells-that-load-static-vm.md delete mode 100644 versioned_docs/version-2023.3/devguide/reference/short-dev-videos.md delete mode 100644 versioned_docs/version-2023.3/devguide/setting-up-dev-env.md delete mode 100644 versioned_docs/version-2023.3/faq.md delete mode 100644 versioned_docs/version-2023.3/install-configure/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-sdk/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-sdk/general-info.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-sdk/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-sdk/installation-procedure/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-sdk/installation-procedure/create-vm-from-ova-template.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-sdk/installation-procedure/download-the-va-image.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-sdk/installation-procedure/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-sdk/installation-procedure/post-installation/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-sdk/installation-procedure/post-installation/apply-cs-license.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-sdk/installation-procedure/post-installation/setup-new-vm.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-sdk/overview/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-sdk/overview/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-sdk/overview/requirements.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-sdk/using-va-for-cs-operations.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/appendix/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/appendix/best-practices-cs-prod/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/appendix/best-practices-cs-prod/db-trimming.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/appendix/best-practices-cs-prod/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/appendix/fixed-server-roles.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/appendix/known-cs-install-issues.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/appendix/known-upgrade-issues.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/appendix/upgrade-rabbitmq-creds.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/appendix/utilities-and-l1-drivers.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/backup-restore/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/backup-restore/backup-cs-db.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/backup-restore/backup-vm.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/backup-restore/restore-cs-db.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/central-logging/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/central-logging/config-log4net.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/central-logging/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/central-logging/modify-cloudshell.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/central-logging/track-threads.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/cloudshell-suite-overview/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/cloudshell-suite-overview/high-availability.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/cloudshell-suite-overview/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/cloudshell-suite-overview/remote-connections.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/complete-install/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/complete-install/download-cloudshell.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/complete-install/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/complete-install/install-cloudshell/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/complete-install/install-cloudshell/check-cloudshell-required-components.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/complete-install/install-cloudshell/cloudshell-watcher-data-overview.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/complete-install/install-cloudshell/import-users-from-ad.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/complete-install/install-cloudshell/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/complete-install/install-cloudshell/install-cloudshell-sandbox-api.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/complete-install/install-cloudshell/install-products.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/complete-install/install-cloudshell/install.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/complete-install/install-cloudshell/select-components.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/complete-install/install-cloudshell/select-database-type/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/complete-install/install-cloudshell/select-database-type/best-practices-for-mongodb.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/complete-install/install-cloudshell/select-database-type/how-to-upgrade-4.2-6.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/complete-install/install-cloudshell/select-database-type/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/complete-install/install-cloudshell/select-database-type/set-the-mongodb-connection-string.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/complete-install/install-cloudshell/select-install-location.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/complete-install/install-cloudshell/select-installation-option.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/complete-install/installation-checklist.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/configure-products/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/configure-products/admin-config-settings.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/configure-products/change-service-user.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/configure-products/config-execution-server-process.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/configure-products/config-execution-server.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/configure-products/config-mongodb-connection.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/configure-products/config-pypi-server-in-offline-mode.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/configure-products/config-sandbox-api.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/configure-products/config-sql-connection.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/configure-products/configure-app-settings.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/configure-products/configure-portal/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/configure-products/configure-portal/best-practices.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/configure-products/configure-portal/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/configure-products/configure-portal/set-portal-timeout.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/configure-products/select-a-license.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/configure-products/server-connectivity-settings.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/cs-installation-validation.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/new-jss-install-config/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/new-jss-install-config/admin-actions/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/new-jss-install-config/admin-actions/change-log-level.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/new-jss-install-config/admin-actions/config-https.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/new-jss-install-config/admin-actions/config-sso.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/new-jss-install-config/admin-actions/modify-cs-admin-pass.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/new-jss-install-config/admin-actions/sandbox-creation-retries.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/new-jss-install-config/admin-actions/update-k8s-env.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/new-jss-install-config/high-level-install-flow/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/new-jss-install-config/high-level-install-flow/customize-deployment/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/new-jss-install-config/high-level-install-flow/customize-deployment/customize-deployment-config-params.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/new-jss-install-config/high-level-install-flow/customize-deployment/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/new-jss-install-config/high-level-install-flow/customize-deployment/set-static-ip.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/new-jss-install-config/high-level-install-flow/deploy-jss-with-helm.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/new-jss-install-config/high-level-install-flow/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/new-jss-install-config/high-level-install-flow/modify-cloudshell.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/new-jss-install-config/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/new-jss-install-config/new-jss-architecture.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/new-jss-install-config/requirements.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/new-jss-install-config/supported-tools.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/new-jss-install-config/test-discovery-service/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/new-jss-install-config/test-discovery-service/config-test-discovery-service.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/new-jss-install-config/test-discovery-service/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/new-jss-install-config/test-execution-service/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/new-jss-install-config/test-execution-service/config-test-execution-service.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/new-jss-install-config/test-execution-service/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/new-jss-install-config/test-execution-service/tes-management/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/new-jss-install-config/test-execution-service/tes-management/deploy-new-tes.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/new-jss-install-config/test-execution-service/tes-management/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/new-jss-install-config/test-execution-service/tes-management/scale-up.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/new-jss-install-config/test-execution-service/tes-management/view-helm-deployments.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/new-jss-install-config/test-repository-config/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/new-jss-install-config/test-repository-config/associate-tests-to-domains.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/new-jss-install-config/test-repository-config/set-up-repo.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/new-jss-install-config/update-considerations.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/quali-certified-libraries.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/quick-install/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/quick-install/before-you-begin.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/quick-install/install-cs-quick.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/secure-communication/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/secure-communication/config-secured-portal.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/secure-communication/config-secured-pypi.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/secure-communication/config-secured-python-drivers.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/secure-communication/config-secured-quali-api.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/secure-communication/config-secured-sandbox-api.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/upgrade-procedure/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/upgrade-procedure/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/upgrade-procedure/migrate-python-dependencies.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/upgrade-procedure/roll-back-to-earlier-version.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/upgrade-procedure/upgrade-prep.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/upgrade-procedure/upgrade-production.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cloudshell-suite/upgrade-procedure/upgrade-staging.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/bi-terminology.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/create-customize-dashboards/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/create-customize-dashboards/add-data-source-table.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/create-customize-dashboards/backup-restore-elasticube-and-dashboards.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/create-customize-dashboards/create-dashboards-and-widgets.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/create-customize-dashboards/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/create-customize-dashboards/inner-join-connections.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/cs-insight-bi-elasticube-tables/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/cs-insight-bi-elasticube-tables/elasticube-data-stores.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/cs-insight-bi-elasticube-tables/elasticube-tables.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/cs-insight-bi-elasticube-tables/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/embed-dashboards-externally/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/embed-dashboards-externally/config-cs-to-enbl-sis-dashbds.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/embed-dashboards-externally/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/embed-dashboards-externally/share-with-unregistered-users.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/insight-dashboards/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/insight-dashboards/manage-users-and-permissions.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/insight-dashboards/using-insight-dashboards.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/insight-sso/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/insight-sso/configure-sso-in-cs.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/insight-sso/configure-sso-in-sisense.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/insight-sso/grant-admin-privilege.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/insight-sso/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/insight-sso/sso-to-insight-workflow.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/install-insight/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/install-insight/cs-insight-bi-components.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/install-insight/download-install-files.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/install-insight/insight-configuration/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/install-insight/insight-configuration/build-elasticube.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/install-insight/insight-configuration/configure-https.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/install-insight/insight-configuration/grant-permissions.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/install-insight/insight-configuration/import-dashboards.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/install-insight/insight-configuration/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/install-insight/insight-configuration/install-addons.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/install-insight/insight-configuration/install-sisense.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/install-insight/insight-configuration/map-dashboards.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/install-insight/install-checklist.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/install-insight/install-sisense.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/install-insight/rebrand.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/install-insight/requirements.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/install-insight/synchronization.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/key-points-and-limitations.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-insight-bi/sisense-bi-components.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-system-requirements/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-system-requirements/cs-component-architechture.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-system-requirements/cs-port-requirements.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-system-requirements/database-prereq.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-system-requirements/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-system-requirements/min-requirements-for-cs.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-system-requirements/network-recommendations.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-system-requirements/security-recommendations.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-system-requirements/software-and-utilities.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-system-requirements/supported-browsers.md delete mode 100644 versioned_docs/version-2023.3/install-configure/cs-system-requirements/third-party-software.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-deployment/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-deployment/appendix/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-deployment/appendix/documentation.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-deployment/appendix/glossary.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-deployment/appendix/references.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-deployment/best-practice-es-with-ha.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-deployment/cs-app-server-clusting/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-deployment/cs-app-server-clusting/failure-trigger.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-deployment/cs-app-server-clusting/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-deployment/cs-app-server-clusting/performance.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-deployment/deployment-types-ha/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-deployment/deployment-types-ha/basic-4-server-configuration.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-deployment/deployment-types-ha/basic-6-server-configuration.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-deployment/deployment-types-ha/deployment-considerations.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-deployment/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-deployment/overview/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-deployment/overview/architecture-ha.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-deployment/overview/guiding-principles.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-deployment/overview/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/appendix/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/appendix/documentation.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/appendix/glossary.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/appendix/references.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/config-arr-and-iis-to-ssl-in-ha/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/config-arr-and-iis-to-ssl-in-ha/before-you-begin.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/config-arr-and-iis-to-ssl-in-ha/config-arr-to-ssl-offloading.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/config-arr-and-iis-to-ssl-in-ha/config-arr-to-ssl.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/config-arr-and-iis-to-ssl-in-ha/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/config-portal-load-balance/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/config-portal-load-balance/add-servers-to-main-iis.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/config-portal-load-balance/alternatives.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/config-portal-load-balance/config-arr-server.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/config-portal-load-balance/config-server-farm.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/config-portal-load-balance/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/config-portal-load-balance/verify-system-up.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/create-cluster-in-win-failover-manager/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/create-cluster-in-win-failover-manager/config-new-cluster.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/create-cluster-in-win-failover-manager/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/create-cluster-in-win-failover-manager/install-failover-cluster-feature.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/deployment-types-ha/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/deployment-types-ha/basic-4-server-configuration.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/deployment-types-ha/basic-6-server-configuration.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/deployment-types-ha/deployment-considerations.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/install-configure-cs-server/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/install-configure-cs-server/activate-quali-server-on-all-nodes.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/install-configure-cs-server/config-cs-components-to-quali-server-role.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/install-configure-cs-server/configure-each-node.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/install-configure-cs-server/configure-quali-server/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/install-configure-cs-server/configure-quali-server/config-quali-server-on-first-node.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/install-configure-cs-server/configure-quali-server/configure-quali-server-with-avl-grp.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/install-configure-cs-server/configure-quali-server/configure-remaining-cluster-nodes.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/install-configure-cs-server/configure-quali-server/display-cluster-health-info.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/install-configure-cs-server/configure-quali-server/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/install-configure-cs-server/configure-quali-server/set-the-same-certificate.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/install-configure-cs-server/configure-quali-server/set-up-alwayson-groups.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/install-configure-cs-server/configure-the-app-server/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/install-configure-cs-server/configure-the-app-server/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/install-configure-cs-server/configure-the-app-server/locating-the-cluster-name.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/install-configure-cs-server/configure-the-app-server/modify-elasticsearch-config-file.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/install-configure-cs-server/configure-the-app-server/modify-the-quali-vbs-file.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/install-configure-cs-server/create-config-role-for-quali-server.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/install-configure-cs-server/install-configure-cs-portal/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/install-configure-cs-server/install-configure-cs-portal/config-web-server-load-balancing/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/install-configure-cs-server/install-configure-cs-portal/config-web-server-load-balancing/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/install-configure-cs-server/install-configure-cs-portal/config-web-server-load-balancing/ms-app-request-routing.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/install-configure-cs-server/install-configure-cs-portal/config-web-server-load-balancing/requirements.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/install-configure-cs-server/install-configure-cs-portal/configure-cs-portal-to-ssl.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/install-configure-cs-server/install-configure-cs-portal/create-config-role.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/install-configure-cs-server/install-configure-cs-portal/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/install-configure-cs-server/install-configure-cs-portal/install-cs-portal.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/install-configure-cs-server/install-configure-cs-portal/modify-webportal-vbs-file.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/install-configure-cs-server/installing-quali-server.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/install-win-network-load-balance/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/install-win-network-load-balance/add-another-host-to-net-lb.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/install-win-network-load-balance/config-win-net-lb.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/install-win-network-load-balance/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/install-win-network-load-balance/monitor-cluster-env.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/install-win-network-load-balance/work-with-arr-cluster.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/install-win-network-load-balance/work-with-https-portal.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/installation-procedure/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/installation-procedure/configure-mongodb-in-ha-mode.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/installation-procedure/configure-sql-db-server-cluster.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/installation-procedure/download-the-ha-plugin.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/installation-procedure/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/installation-procedure/install-and-configure-license-server/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/installation-procedure/install-and-configure-license-server/alternative-solution.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/installation-procedure/install-and-configure-license-server/configure-cs-components-to-license-server-role.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/installation-procedure/install-and-configure-license-server/license-server-installation.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/known-issues-and-limitations.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/maintenance-of-ha-plugin/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/maintenance-of-ha-plugin/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/maintenance-of-ha-plugin/move-wsfc-role-between-nodes.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/maintenance-of-ha-plugin/upgrada-cs-ha-plugin.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/maintenance-of-ha-plugin/upgrade-cloudshell.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/overview/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/overview/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/overview/requirements.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/overview/software-licenses.md delete mode 100644 versioned_docs/version-2023.3/install-configure/ha-installation/overview/supported-versions-of-ms-sql.md delete mode 100644 versioned_docs/version-2023.3/install-configure/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/linux-virtual-appliance/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/linux-virtual-appliance/cs-linux-va-known-limitations.md delete mode 100644 versioned_docs/version-2023.3/install-configure/linux-virtual-appliance/installation-procedure/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/linux-virtual-appliance/installation-procedure/create-es-from-ovf.md delete mode 100644 versioned_docs/version-2023.3/install-configure/linux-virtual-appliance/installation-procedure/create-es-from-qcow2.md delete mode 100644 versioned_docs/version-2023.3/install-configure/linux-virtual-appliance/installation-procedure/create-es-from-script.md delete mode 100644 versioned_docs/version-2023.3/install-configure/linux-virtual-appliance/installation-procedure/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/linux-virtual-appliance/linux-es-va-overview/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/linux-virtual-appliance/linux-es-va-overview/download-es-va-image.md delete mode 100644 versioned_docs/version-2023.3/install-configure/linux-virtual-appliance/linux-es-va-overview/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/linux-virtual-appliance/linux-es-va-overview/limitations.md delete mode 100644 versioned_docs/version-2023.3/install-configure/linux-virtual-appliance/linux-es-va-overview/sw-requirements.md delete mode 100644 versioned_docs/version-2023.3/install-configure/linux-virtual-appliance/post-installation/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/linux-virtual-appliance/post-installation/configure-linux-es-for-ansible.md delete mode 100644 versioned_docs/version-2023.3/install-configure/linux-virtual-appliance/post-installation/configure/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/linux-virtual-appliance/post-installation/configure/example-run-config-file.md delete mode 100644 versioned_docs/version-2023.3/install-configure/linux-virtual-appliance/post-installation/configure/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/linux-virtual-appliance/post-installation/log-into-the-vm.md delete mode 100644 versioned_docs/version-2023.3/install-configure/linux-virtual-appliance/post-installation/start-the-es.md delete mode 100644 versioned_docs/version-2023.3/install-configure/qualix/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/qualix/appendix/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/qualix/appendix/qualix-known-issues.md delete mode 100644 versioned_docs/version-2023.3/install-configure/qualix/appendix/remove-message-at-startup.md delete mode 100644 versioned_docs/version-2023.3/install-configure/qualix/appendix/setting-qualix-to-utc-time.md delete mode 100644 versioned_docs/version-2023.3/install-configure/qualix/appendix/work-with-qualix-vm/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/qualix/appendix/work-with-qualix-vm/copy-paste-text.md delete mode 100644 versioned_docs/version-2023.3/install-configure/qualix/appendix/work-with-qualix-vm/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/qualix/appendix/work-with-qualix-vm/transfer-files-from-client-machine.md delete mode 100644 versioned_docs/version-2023.3/install-configure/qualix/appendix/work-with-qualix-vm/transfer-files-to-client-machine.md delete mode 100644 versioned_docs/version-2023.3/install-configure/qualix/high-level-setup-process.md delete mode 100644 versioned_docs/version-2023.3/install-configure/qualix/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/qualix/install-configure/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/qualix/install-configure/create-vm-using-ovf.md delete mode 100644 versioned_docs/version-2023.3/install-configure/qualix/install-configure/qualix-4.1-using-docker.md delete mode 100644 versioned_docs/version-2023.3/install-configure/qualix/install-configure/qualix-5.0-using-docker.md delete mode 100644 versioned_docs/version-2023.3/install-configure/qualix/log-into-qualix.md delete mode 100644 versioned_docs/version-2023.3/install-configure/qualix/post-installation-config/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/qualix/post-installation-config/config-jks-cert.md delete mode 100644 versioned_docs/version-2023.3/install-configure/qualix/post-installation-config/configure-remote-access.md delete mode 100644 versioned_docs/version-2023.3/install-configure/qualix/post-installation-config/configure-vm-web-console.md delete mode 100644 versioned_docs/version-2023.3/install-configure/qualix/post-installation-config/customize-remote-access.md delete mode 100644 versioned_docs/version-2023.3/install-configure/qualix/post-installation-config/enable-https/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/qualix/post-installation-config/enable-https/configure-ssl-cert.md delete mode 100644 versioned_docs/version-2023.3/install-configure/qualix/post-installation-config/enable-https/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/qualix/post-installation-config/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/qualix/post-installation-config/modify-cpu-and-ram.md delete mode 100644 versioned_docs/version-2023.3/install-configure/qualix/post-installation-config/qualix-config-for-5-and-up.md delete mode 100644 versioned_docs/version-2023.3/install-configure/qualix/post-installation-config/restrict-qualix-access.md delete mode 100644 versioned_docs/version-2023.3/install-configure/qualix/post-installation-config/set-static-ip-for-qualix.md delete mode 100644 versioned_docs/version-2023.3/install-configure/qualix/prepare-and-reserve-blueprint.md delete mode 100644 versioned_docs/version-2023.3/install-configure/qualix/qualix-overview/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/qualix/qualix-overview/download-qualix.md delete mode 100644 versioned_docs/version-2023.3/install-configure/qualix/qualix-overview/how-qualix-works.md delete mode 100644 versioned_docs/version-2023.3/install-configure/qualix/qualix-overview/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/qualix/qualix-overview/qualix-requirements.md delete mode 100644 versioned_docs/version-2023.3/install-configure/qualix/qualix-overview/qualix-support.md delete mode 100644 versioned_docs/version-2023.3/install-configure/qualix/training-portal/_category_.json delete mode 100644 versioned_docs/version-2023.3/install-configure/qualix/training-portal/index.md delete mode 100644 versioned_docs/version-2023.3/install-configure/qualix/training-portal/setting-up-using-docker.md delete mode 100644 versioned_docs/version-2023.3/install-configure/qualix/training-portal/setting-up-using-installer.md delete mode 100644 versioned_docs/version-2023.3/install-configure/qualix/training-portal/welcome-to-your-training-session.md delete mode 100644 versioned_docs/version-2023.3/intro.md delete mode 100644 versioned_docs/version-2023.3/intro/Abt-CS.md delete mode 100644 versioned_docs/version-2023.3/intro/CS-Use-Cases.md delete mode 100644 versioned_docs/version-2023.3/intro/Term.md delete mode 100644 versioned_docs/version-2023.3/intro/_category_.json delete mode 100644 versioned_docs/version-2023.3/intro/features/Configuration-Management.md delete mode 100644 versioned_docs/version-2023.3/intro/features/_category_.json delete mode 100644 versioned_docs/version-2023.3/intro/features/abstract-resources.md delete mode 100644 versioned_docs/version-2023.3/intro/features/apps-overview.md delete mode 100644 versioned_docs/version-2023.3/intro/features/blueprint-approval-policy.md delete mode 100644 versioned_docs/version-2023.3/intro/features/connectivity.md delete mode 100644 versioned_docs/version-2023.3/intro/features/email-notifications.md delete mode 100644 versioned_docs/version-2023.3/intro/features/features-and-benefits.md delete mode 100644 versioned_docs/version-2023.3/intro/features/persistent-sandboxes.md delete mode 100644 versioned_docs/version-2023.3/intro/features/resources.md delete mode 100644 versioned_docs/version-2023.3/intro/features/services.md delete mode 100644 versioned_docs/version-2023.3/intro/features/shells.md delete mode 100644 versioned_docs/version-2023.3/intro/features/static-vms.md delete mode 100644 versioned_docs/version-2023.3/intro/features/traffic-gens/Traffic-Gens-Abst.md delete mode 100644 versioned_docs/version-2023.3/intro/features/traffic-gens/_category_.json delete mode 100644 versioned_docs/version-2023.3/intro/features/traffic-gens/index.md delete mode 100644 versioned_docs/version-2023.3/jss/_category_.json delete mode 100644 versioned_docs/version-2023.3/jss/comparison-with-1st-gen-job-scheduling.md delete mode 100644 versioned_docs/version-2023.3/jss/index.md delete mode 100644 versioned_docs/version-2023.3/jss/job-scheduling-data.md delete mode 100644 versioned_docs/version-2023.3/jss/job-scheduling-terminology.md delete mode 100644 versioned_docs/version-2023.3/jss/jss-portal/_category_.json delete mode 100644 versioned_docs/version-2023.3/jss/jss-portal/index.md delete mode 100644 versioned_docs/version-2023.3/jss/jss-portal/job-scheduling-page/_category_.json delete mode 100644 versioned_docs/version-2023.3/jss/jss-portal/job-scheduling-page/index.md delete mode 100644 versioned_docs/version-2023.3/jss/jss-portal/job-scheduling-page/jira-issues.md delete mode 100644 versioned_docs/version-2023.3/jss/jss-portal/job-scheduling-page/managing-suites/_category_.json delete mode 100644 versioned_docs/version-2023.3/jss/jss-portal/job-scheduling-page/managing-suites/create-suites.md delete mode 100644 versioned_docs/version-2023.3/jss/jss-portal/job-scheduling-page/managing-suites/delete-suites.md delete mode 100644 versioned_docs/version-2023.3/jss/jss-portal/job-scheduling-page/managing-suites/edit-suites.md delete mode 100644 versioned_docs/version-2023.3/jss/jss-portal/job-scheduling-page/run-custom-suite.md delete mode 100644 versioned_docs/version-2023.3/jss/jss-portal/job-scheduling-page/running-and-stopping-suites.md delete mode 100644 versioned_docs/version-2023.3/jss/jss-portal/job-scheduling-page/view-suites.md delete mode 100644 versioned_docs/version-2023.3/jss/jss-portal/job-scheduling-page/view-test-reports.md delete mode 100644 versioned_docs/version-2023.3/jss/jss-portal/job-scheduling-servers/_category_.json delete mode 100644 versioned_docs/version-2023.3/jss/jss-portal/job-scheduling-servers/discovery-servers-dashboard.md delete mode 100644 versioned_docs/version-2023.3/jss/jss-portal/job-scheduling-servers/index.md delete mode 100644 versioned_docs/version-2023.3/jss/jss-portal/job-scheduling-servers/tes-dashboard.md delete mode 100644 versioned_docs/version-2023.3/jss/jss-portal/job-scheduling-servers/test-repositories.md delete mode 100644 versioned_docs/version-2023.3/jss/jss-portal/jss-rest-api.md delete mode 100644 versioned_docs/version-2023.3/jss/jss-portal/login-to-jss-portal.md delete mode 100644 versioned_docs/version-2023.3/jss/new-jss-logs.md delete mode 100644 versioned_docs/version-2023.3/jss/statuses-and-results.md delete mode 100644 versioned_docs/version-2023.3/portal/_category_.json delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/_category_.json delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/blueprint-catalog.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/blueprint-workspace/_category_.json delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/blueprint-workspace/blueprint-list-view.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/blueprint-workspace/index.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/_category_.json delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/abstract-resources.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/add-connectivity/_category_.json delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/add-connectivity/add-physical-network/_category_.json delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/add-connectivity/add-physical-network/add-phy-net-req/_category_.json delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/add-connectivity/add-physical-network/add-phy-net-req/add-multiple-net-req.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/add-connectivity/add-physical-network/add-phy-net-req/index.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/add-connectivity/add-physical-network/config-physical-conn-req.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/add-connectivity/add-physical-network/delete-physical-conn-req.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/add-connectivity/add-physical-network/index.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/add-connectivity/add-physical-network/physical-net-connectivity-prereq.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/add-connectivity/add-physical-network/view-phy-net-connectivity-req.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/add-connectivity/add-virtual-network/_category_.json delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/add-connectivity/add-virtual-network/add-virtual-net-connectivity-req.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/add-connectivity/add-virtual-network/config-virtual-conn-req.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/add-connectivity/add-virtual-network/delete-virtual-conn-req.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/add-connectivity/add-virtual-network/index.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/add-connectivity/add-virtual-network/view-virtual-net-connectivity-req.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/add-connectivity/add-virtual-network/virtual-net-connectivity-prereq.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/add-connectivity/connections-legend.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/add-connectivity/index.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/add-instructions.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/add-user-inputs.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/apps/_category_.json delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/apps/add-app-to-blueprint.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/apps/edit-app-in-blueprint.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/apps/remove-app-from-blueprint.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/apps/reset-app-settings.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/apps/view-apps-catalog.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/blueprint-dev-best-practices.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/blueprint-properties.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/check-blueprint-routes.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/check-blueprint.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/configure-orchestration.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/create-blueprint-commands.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/create-blueprint.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/duplicate-blueprint.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/export-blueprints/_category_.json delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/export-blueprints/export-a-package.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/export-blueprints/export-diagram.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/import-package.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/index.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/labels.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/name-your-blueprint.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/resources/_category_.json delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/resources/add-resources.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/resources/configure-sub-resources.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/resources/find-resources.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/resources/remove-resources.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/resources/replace-with-abstract.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/resources/share-reserved-resources.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/resources/update-resource-attr.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/save-as-template.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/services.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/creating-blueprints/set-blueprint-privacy.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/index.md delete mode 100644 versioned_docs/version-2023.3/portal/blueprints/opening-blueprints.md delete mode 100644 versioned_docs/version-2023.3/portal/inventory/_category_.json delete mode 100644 versioned_docs/version-2023.3/portal/inventory/index.md delete mode 100644 versioned_docs/version-2023.3/portal/inventory/inventory-dashboard.md delete mode 100644 versioned_docs/version-2023.3/portal/inventory/managing-abstract-templates/_category_.json delete mode 100644 versioned_docs/version-2023.3/portal/inventory/managing-abstract-templates/create-abstract-template/_category_.json delete mode 100644 versioned_docs/version-2023.3/portal/inventory/managing-abstract-templates/create-abstract-template/abstract-resource-settings.md delete mode 100644 versioned_docs/version-2023.3/portal/inventory/managing-abstract-templates/create-abstract-template/index.md delete mode 100644 versioned_docs/version-2023.3/portal/inventory/managing-abstract-templates/deleting-abstract-templates.md delete mode 100644 versioned_docs/version-2023.3/portal/inventory/managing-abstract-templates/editing-abstract-templates.md delete mode 100644 versioned_docs/version-2023.3/portal/inventory/managing-abstract-templates/index.md delete mode 100644 versioned_docs/version-2023.3/portal/inventory/managing-abstract-templates/viewing-abstract-templates.md delete mode 100644 versioned_docs/version-2023.3/portal/inventory/managing-resources/_category_.json delete mode 100644 versioned_docs/version-2023.3/portal/inventory/managing-resources/adding-inventory-resources/_category_.json delete mode 100644 versioned_docs/version-2023.3/portal/inventory/managing-resources/adding-inventory-resources/adding-aws-cp.md delete mode 100644 versioned_docs/version-2023.3/portal/inventory/managing-resources/adding-inventory-resources/adding-azure-cp.md delete mode 100644 versioned_docs/version-2023.3/portal/inventory/managing-resources/adding-inventory-resources/adding-vcenter-cp.md delete mode 100644 versioned_docs/version-2023.3/portal/inventory/managing-resources/adding-inventory-resources/index.md delete mode 100644 versioned_docs/version-2023.3/portal/inventory/managing-resources/associate-resources-to-es.md delete mode 100644 versioned_docs/version-2023.3/portal/inventory/managing-resources/connecting-remotely.md delete mode 100644 versioned_docs/version-2023.3/portal/inventory/managing-resources/deleting-resources-from-inventory.md delete mode 100644 versioned_docs/version-2023.3/portal/inventory/managing-resources/discovering-resources.md delete mode 100644 versioned_docs/version-2023.3/portal/inventory/managing-resources/editing-resources-from-inventory-dashboard.md delete mode 100644 versioned_docs/version-2023.3/portal/inventory/managing-resources/include-exclude-resources.md delete mode 100644 versioned_docs/version-2023.3/portal/inventory/managing-resources/reserving-from-inventory.md delete mode 100644 versioned_docs/version-2023.3/portal/inventory/managing-resources/searching-for-sub-resources.md delete mode 100644 versioned_docs/version-2023.3/portal/inventory/search-the-inventory.md delete mode 100644 versioned_docs/version-2023.3/portal/inventory/viewing-services.md delete mode 100644 versioned_docs/version-2023.3/portal/job-scheduling/_category_.json delete mode 100644 versioned_docs/version-2023.3/portal/job-scheduling/associate-jira-issues-with-test-executions.md delete mode 100644 versioned_docs/version-2023.3/portal/job-scheduling/extend-and-stop-automation-suites/_category_.json delete mode 100644 versioned_docs/version-2023.3/portal/job-scheduling/extend-and-stop-automation-suites/extend-suite-jobs.md delete mode 100644 versioned_docs/version-2023.3/portal/job-scheduling/extend-and-stop-automation-suites/stop-suite-jobs.md delete mode 100644 versioned_docs/version-2023.3/portal/job-scheduling/index.md delete mode 100644 versioned_docs/version-2023.3/portal/job-scheduling/job-scheduling-dashboard.md delete mode 100644 versioned_docs/version-2023.3/portal/job-scheduling/manage-automation-suites/_category_.json delete mode 100644 versioned_docs/version-2023.3/portal/job-scheduling/manage-automation-suites/add-suites.md delete mode 100644 versioned_docs/version-2023.3/portal/job-scheduling/manage-automation-suites/delete-suites-jobs-tests.md delete mode 100644 versioned_docs/version-2023.3/portal/job-scheduling/manage-automation-suites/edit-suites.md delete mode 100644 versioned_docs/version-2023.3/portal/job-scheduling/running-automation-suites/_category_.json delete mode 100644 versioned_docs/version-2023.3/portal/job-scheduling/running-automation-suites/index.md delete mode 100644 versioned_docs/version-2023.3/portal/job-scheduling/running-automation-suites/run-adhoc-suites.md delete mode 100644 versioned_docs/version-2023.3/portal/job-scheduling/running-automation-suites/run-custom-suites.md delete mode 100644 versioned_docs/version-2023.3/portal/job-scheduling/running-automation-suites/run-suites-from-template.md delete mode 100644 versioned_docs/version-2023.3/portal/job-scheduling/view-execution-history/_category_.json delete mode 100644 versioned_docs/version-2023.3/portal/job-scheduling/view-execution-history/view-execution-history.md delete mode 100644 versioned_docs/version-2023.3/portal/job-scheduling/view-execution-history/view-test-reports/_category_.json delete mode 100644 versioned_docs/version-2023.3/portal/job-scheduling/view-execution-history/view-test-reports/index.md delete mode 100644 versioned_docs/version-2023.3/portal/job-scheduling/view-execution-history/view-test-reports/setting-test-execution-report-template.md delete mode 100644 versioned_docs/version-2023.3/portal/job-scheduling/view-tests-job-suite-execution-results.md delete mode 100644 versioned_docs/version-2023.3/portal/job-scheduling/what-are-automation-suites.md delete mode 100644 versioned_docs/version-2023.3/portal/overview/_category_.json delete mode 100644 versioned_docs/version-2023.3/portal/overview/change-language.md delete mode 100644 versioned_docs/version-2023.3/portal/overview/end-to-end-wf/_category_.json delete mode 100644 versioned_docs/version-2023.3/portal/overview/end-to-end-wf/consume-sandbox.md delete mode 100644 versioned_docs/version-2023.3/portal/overview/end-to-end-wf/create-shell.md delete mode 100644 versioned_docs/version-2023.3/portal/overview/end-to-end-wf/implement-config-management.md delete mode 100644 versioned_docs/version-2023.3/portal/overview/end-to-end-wf/model-public-cloud.md delete mode 100644 versioned_docs/version-2023.3/portal/overview/index.md delete mode 100644 versioned_docs/version-2023.3/portal/overview/logging-in.md delete mode 100644 versioned_docs/version-2023.3/portal/overview/navigating.md delete mode 100644 versioned_docs/version-2023.3/portal/overview/portal-settings.md delete mode 100644 versioned_docs/version-2023.3/portal/overview/touring-the-portal.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/_category_.json delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/creating-sandboxes.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/index.mdx delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/opening-sandboxes.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-save-and-restore-overview.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/_category_.json delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/add-connectivity/_category_.json delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/add-connectivity/add-physical-network/_category_.json delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/add-connectivity/add-physical-network/add-phy-net-req/_category_.json delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/add-connectivity/add-physical-network/add-phy-net-req/add-multiple-net-req.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/add-connectivity/add-physical-network/add-phy-net-req/index.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/add-connectivity/add-physical-network/config-physical-conn-req.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/add-connectivity/add-physical-network/delete-physical-conn-req.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/add-connectivity/add-physical-network/index.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/add-connectivity/add-physical-network/physical-net-connectivity-prereq.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/add-connectivity/add-physical-network/view-phy-net-connectivity-req.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/add-connectivity/add-virtual-network/_category_.json delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/add-connectivity/add-virtual-network/add-virtual-net-connectivity-req.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/add-connectivity/add-virtual-network/config-virtual-conn-req.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/add-connectivity/add-virtual-network/delete-virtual-conn-req.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/add-connectivity/add-virtual-network/index.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/add-connectivity/add-virtual-network/view-virtual-net-connectivity-req.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/add-connectivity/add-virtual-network/virtual-net-connectivity-prereq.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/add-connectivity/connections-legend.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/add-connectivity/index.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/apps/_category_.json delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/apps/activity-feed-for-app.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/apps/add-app-to-sandbox.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/apps/edit-app-in-sandbox.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/apps/remove-app-from-sandbox.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/apps/run-app-commands.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/apps/view-apps-catalog.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/apps/view-vm-details.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/connect-resources-and-apps.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/create-cal-event-for-sandbox.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/export-diagrams-and-connections.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/extend-and-end-sandbox.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/index.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/labels.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/resources/_category_.json delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/resources/activity-feed-for-resources.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/resources/add-resources.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/resources/configure-sub-resources.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/resources/connect-remotely-with-qualix.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/resources/find-resources.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/resources/mark-in-use.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/resources/remove-resources.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/resources/share-reserved-resources.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/resources/update-resource-attr.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/review-sandbox-instructions.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/run-commands.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/sandbox-list-view.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/save-sandbox-as-blueprint.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/save-sandbox.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/services.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/show-physical-connections.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/show-physical-layer.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/system-messages/_category_.json delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/system-messages/activity-details-window.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/system-messages/activity-feed-pane.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/system-messages/indication-messages.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/system-messages/output-console-window.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/update-sandbox-properties.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandbox-workspace/view-sandbox-metadata.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/sandboxes-dashboard.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/saved-sandboxes/_category_.json delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/saved-sandboxes/delete-saved-sandbox.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/saved-sandboxes/index.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/saved-sandboxes/restore-saved-sandbox.md delete mode 100644 versioned_docs/version-2023.3/portal/sandboxes/saved-sandboxes/show-restored-sandboxes.md delete mode 100644 versioned_docs/version-2023.3/quick-start/_category_.json delete mode 100644 versioned_docs/version-2023.3/quick-start/create-sandbox.md delete mode 100644 versioned_docs/version-2023.3/quick-start/creating-reserving.md delete mode 100644 versioned_docs/version-2023.3/quick-start/install-and-setup.md delete mode 100644 versioned_docs/version-2023.3/release-notes/_category_.json delete mode 100644 versioned_docs/version-2023.3/release-notes/behavior-change.md delete mode 100644 versioned_docs/version-2023.3/release-notes/bug-fixes.md delete mode 100644 versioned_docs/version-2023.3/release-notes/general-announcments.md delete mode 100644 versioned_docs/version-2023.3/release-notes/index.md delete mode 100644 versioned_docs/version-2023.3/release-notes/known-limitations.md delete mode 100644 versioned_docs/version-2023.3/release-notes/supported-versions.md delete mode 100644 versioned_docs/version-2023.3/release-notes/whats-new.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/_category_.json delete mode 100644 versioned_docs/version-2023.3/troubleshooting/cloudshell-portal/_category_.json delete mode 100644 versioned_docs/version-2023.3/troubleshooting/cloudshell-portal/empty-resourceapp-catalogs.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/cloudshell-portal/reserving-blueprints-fails-on-nonexistent-resource-conflicts.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/cloudshell-portal/the-create-blueprint-link-is-missing-from-the-blueprint-catalog.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/cloudshell-portal/unable-to-add-apps-resources-or-services-to-a-blueprint-or-sandbox-diagram.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/cloudshell-portal/unable-to-add-resources.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/cloudshell-portal/unable-to-locate-a-resource.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/cloudshell-portal/unable-to-login-to-cloudshell-portal.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/cloudshell-portal/unable-to-save-new-app.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/cloudshell-portal/unable-to-share-resources.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/cloudshell-portal/vcenter-resource-discovery-error-discovery-failed-for-resource.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/cloudshell-portal/vm-is-not-powered-off-at-the-end-of-a-reservation.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/cloudshell-portal/vm-is-not-powered-on-at-the-start-of-a-reservation.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/database-and-permissions/_category_.json delete mode 100644 versioned_docs/version-2023.3/troubleshooting/database-and-permissions/access-to-database-denied.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/database-and-permissions/database-cannot-be-identified.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/database-and-permissions/database-user-permissions-were-not-correctly-configured.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/database-and-permissions/large-amount-of-memory-used-on-mssqlserver.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/database-and-permissions/missing-user-permissions-to-run-dbcc-traceon.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/execution-servers/_category_.json delete mode 100644 versioned_docs/version-2023.3/troubleshooting/execution-servers/network-issues-between-quali-server-and-the-execution-servers.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/execution-servers/setupteardown-scripts-failed-to-run-with-exit-code-1073741502.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/execution-servers/setupteardown-scripts-failed-with-exit-code-1073741819.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/execution-servers/venv-fails-to-build.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/insight/_category_.json delete mode 100644 versioned_docs/version-2023.3/troubleshooting/insight/elasticube-table-build-error-key-already-exists-in-the-collection.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/insight/how-to-migrate-sisense-to-a-new-server.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/insight/insight-dashboard-error-redirected-you-too-many-times.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/insight/low-disk-space-due-to-unusually-large-resourceutilizationlog-table.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/installation/_category_.json delete mode 100644 versioned_docs/version-2023.3/troubleshooting/installation/error-a-bulk-write-operation-resulted-in-one-or-more-errors.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/installation/load-license.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/installation/manual-iis-installation-error.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/installation/msdtc-firewall-settings.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/installation/msdtc-security-configuration.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/installation/older-3rd-party-installations-causing-cloudshell-installation-to-fail.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/installation/powershell-execution-policy-high-availability.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/installation/quali-server-configuration-wizard-fails-in-search-engine-health-check-stage.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/installation/testshell-database-permissions.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/installation/the-requested-page-cannot-be-accessed.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/installation/unexpected-error-when-installing-quali-server.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/installation/why-does-cloudshell-upgrade-override-cloudshell-settings.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/job-scheduling/_category_.json delete mode 100644 versioned_docs/version-2023.3/troubleshooting/job-scheduling/automation-suite-execution-remains-in-pending-state.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/job-scheduling/incorrect-test-execution-order.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/quali-server/_category_.json delete mode 100644 versioned_docs/version-2023.3/troubleshooting/quali-server/cloudshell-rabbitmq-service-fails-to-start-during-quali-server-installation.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/quali-server/cloudshell-rabbitmq-service-fails-to-start-erl-exe.md delete mode 100644 "versioned_docs/version-2023.3/troubleshooting/quali-server/l1-functionality-isn\342\200\231t-working-2022.1-and-above.md" delete mode 100644 versioned_docs/version-2023.3/troubleshooting/quali-server/large-amount-of-memory-used-on-quali-server.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/quali-server/pypi-server-process-errors-error-installing-dependencies.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/quali-server/quali-server-crash.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/quali-server/quali-server-upgrade-fails-in-the-restart-service-step.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/quali-server/quali-server-upgrade-fails-on-import-packages-step.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/quali-server/set-the-timeout-period-for-l1-drivers.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/qualix/_category_.json delete mode 100644 versioned_docs/version-2023.3/troubleshooting/qualix/cannot-connect-via-ssh-to-ubuntu-22.04-machines-with-private-key.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/qualix/error-connecting-remotely-to-a-device-guacamole-refused-to-connect.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/qualix/qualix-connection-error-missing-required-permissionsinvalid-link-access-denied.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/qualix/qualix-connection-error-remote-desktop-server.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/qualix/qualix-incorrect-name-for-resource-browser-title.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/qualix/qualix-remote-connection-attempt-opens-cloudshell-login-page.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/qualix/troubleshooting-guacamole-services.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/qualix/troubleshooting-qualix-docker-services.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/qualix/what-is-my-qualix-version.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/resource-manager/_category_.json delete mode 100644 versioned_docs/version-2023.3/troubleshooting/resource-manager/auto-load-fails.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/shells/_category_.json delete mode 100644 versioned_docs/version-2023.3/troubleshooting/shells/shell-update-error.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/troubleshooting-overview/_category_.json delete mode 100644 versioned_docs/version-2023.3/troubleshooting/troubleshooting-overview/collecting-logs.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/troubleshooting-overview/useful-tools-and-utilities.md delete mode 100644 versioned_docs/version-2023.3/troubleshooting/troubleshooting-overview/whats-in-this-guide.md delete mode 100644 versioned_docs/version-2024.1/admin/_category_.json delete mode 100644 versioned_docs/version-2024.1/admin/administrative-operations-overview.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-event-queue.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-execution-server-configurations/_category_.json delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-execution-server-configurations/connecting-an-execution-server-to-quali-server.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-execution-server-configurations/deleting-execution-servers.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-execution-server-configurations/optimizing-execution-provisioning.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-execution-server-configurations/setting-up-execution-servers-to-run-commands.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/_category_.json delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/cleaning-up-the-virtual-environments-folder.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/configuring-cloudshell-to-execute-python-commands-in-offline-mode.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/index.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/pypi-server-managing-python-shell-and-script-dependencies.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/updating-python-dependencies-for-shells-drivers-and-scripts.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/using-a-proxy-to-download-python-packages-from-public-pypi.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/what-are-python-virtual-environments.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-identity-management/_category_.json delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-identity-management/access-control-and-authentication/_category_.json delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-identity-management/access-control-and-authentication/active-directory-integration/_category_.json delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-identity-management/access-control-and-authentication/active-directory-integration/configuring-cloudshell-to-automatically-import-active-directory-users-on-first-login.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-identity-management/access-control-and-authentication/active-directory-integration/importing-users-into-cloudshell-from-an-active-directory.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-identity-management/access-control-and-authentication/active-directory-integration/index.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-identity-management/access-control-and-authentication/index.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-identity-management/access-control-and-authentication/json-web-token-jwt-configuration.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-identity-management/access-control-and-authentication/ldap-integration.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-identity-management/access-control-and-authentication/saml-authentication-configuration-sso-slo/_category_.json delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-identity-management/access-control-and-authentication/saml-authentication-configuration-sso-slo/configure-sso/_category_.json delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-identity-management/access-control-and-authentication/saml-authentication-configuration-sso-slo/configure-sso/index.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-identity-management/access-control-and-authentication/saml-authentication-configuration-sso-slo/configure-sso/sso-tester.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-identity-management/access-control-and-authentication/saml-authentication-configuration-sso-slo/configuring-single-logout-slo.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-identity-management/access-control-and-authentication/saml-authentication-configuration-sso-slo/index.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-identity-management/cloudshell-domains/_category_.json delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-identity-management/cloudshell-domains/adding-domains.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-identity-management/cloudshell-domains/addingremoving-domain-blueprints.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-identity-management/cloudshell-domains/addingremoving-resources-from-a-domain.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-identity-management/cloudshell-domains/archiving-and-restoring-domains.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-identity-management/cloudshell-domains/domains-window.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-identity-management/cloudshell-domains/index.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-identity-management/cloudshell-domains/optimized-resource-utilization-using-domains.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-identity-management/index.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-identity-management/managing-cloudshell-permissions/_category_.json delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-identity-management/managing-cloudshell-permissions/capabilities/_category_.json delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-identity-management/managing-cloudshell-permissions/capabilities/index.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-identity-management/managing-cloudshell-permissions/cloudshell-user-permission-levels-rbac.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-identity-management/managing-cloudshell-permissions/folder-permissions-for-shared-studio-tests.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-identity-management/managing-cloudshell-permissions/index.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-identity-management/managing-users/_category_.json delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-identity-management/managing-users/cloudshell-users-and-groups-overview.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-identity-management/managing-users/index.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-identity-management/managing-users/managing-cloudshell-groups.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-identity-management/managing-users/managing-cloudshell-users.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-identity-management/managing-users/updating-user-settings.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-manage-dashboard/_category_.json delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-manage-dashboard/blueprint-templates.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-manage-dashboard/javascript-extensions.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-manage-dashboard/licensing.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-manage-dashboard/maintenance-window.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-manage-dashboard/manage-app-templates/_category_.json delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/_category_.json delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/adding-app-template.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/app-resource.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/configuration-management.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/_category_.json delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/aws-ec2-dp-attributes.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/azure-custom-image-dp-attributes.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/azure-galery-dp-attributes.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/azure-marketplace-dp-attributes.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/openstack-glance-dp-attributes.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/vcenter-clone-image-dp-attributes.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/vcenter-clone-template-dp-attributes.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/vcenter-clone-vm-dp-attributes.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/vcenter-link-clone-vm-dp-attributes.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-manage-dashboard/manage-app-templates/index.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-manage-dashboard/manage-dashboard-overview.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-manage-dashboard/managing-automation/_category_.json delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-manage-dashboard/managing-automation/associating-automation-to-domains.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-manage-dashboard/managing-automation/automation-overview.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-manage-dashboard/managing-automation/index.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-manage-dashboard/managing-automation/managing-assets.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-manage-dashboard/managing-automation/managing-drivers.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-manage-dashboard/managing-categories.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-manage-dashboard/managing-execution-servers/_category_.json delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-manage-dashboard/managing-execution-servers/execution-servers-commands-queue-page.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-manage-dashboard/managing-execution-servers/execution-servers-executions-page.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-manage-dashboard/managing-execution-servers/execution-servers-overview-page.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-manage-dashboard/managing-execution-servers/execution-servers-servers-page.md delete mode 100644 versioned_docs/version-2024.1/admin/cloudshell-manage-dashboard/managing-shells.md delete mode 100644 versioned_docs/version-2024.1/admin/index.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/_category_.json delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/assembly-lab/_category_.json delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/assembly-lab/a-common-use-case.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/assembly-lab/configuration-keys.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/assembly-lab/configure-assembly-lab-domain.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/assembly-lab/fixed-devices.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/assembly-lab/index.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/assembly-lab/note.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/assembly-lab/required-actions.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/assembly-lab/work-order-management.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/cloudshell-configuration-options/_category_.json delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/cloudshell-configuration-options/advanced-cloudshell-customizations.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/_category_.json delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/abstract-resources.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/api.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/apps.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/blueprint-catalog.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/blueprint-workspace.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/connectivity-management-and-route-configuration.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/execution-server.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/general.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/index.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/inventory-dashboard.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/ldap-integration.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/monitoring.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/new-job-scheduling.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/online-help.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/pypi-server.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/registration-passwords-emails-and-licenses.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/sandboxes.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/scheduling-and-queuing.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/scheduling-commands.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/search.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/single-sign-on-sso.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/testshell-studio.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/cloudshell-configuration-options/customizing-email-notification-templates.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/cloudshell-configuration-options/customizing-sandboxes-dashboard.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/cloudshell-configuration-options/customizing-the-language-file.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/cloudshell-configuration-options/index.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/cloudshell-configuration-options/managing-cloudshell-portal-tours.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/cloudshell-configuration-options/rebranding-cloudshell-portal-white-labeling.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/cloudshell-configuration-options/resizing-the-value-box-of-text-global-inputs.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/cloudshell-configuration-options/resource-search-customizations.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/cloudshell-configuration-options/save-sandbox-configurations.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/cloudshell-deployment-overview.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/cloudshell-resource-management-client.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/customizing-the-start-page-in-resource-manager-client/_category_.json delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/customizing-the-start-page-in-resource-manager-client/about-the-start-page-in-resource-manager-client.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/customizing-the-start-page-in-resource-manager-client/annotated-start-page-example.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/defining-the-target-server.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/inventory-operations/_category_.json delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/inventory-operations/adding-and-configuring-resources/_category_.json delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/inventory-operations/adding-and-configuring-resources/adding-and-configuring-resources-in-resource-manager.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/inventory-operations/adding-and-configuring-resources/associating-a-driver-with-a-resource.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/inventory-operations/adding-and-configuring-resources/index.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/inventory-operations/configuring-services.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/inventory-operations/connected-commands/_category_.json delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/inventory-operations/connected-commands/index.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/inventory-operations/connected-commands/power-management.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/inventory-operations/connectivity-control/_category_.json delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/inventory-operations/connectivity-control/define-the-resource-connections-of-the-switch-or-patch-panel.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/inventory-operations/connectivity-control/index.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/inventory-operations/connectivity-control/l1-switches.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/inventory-operations/connectivity-control/patch-panels.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/inventory-operations/connectivity-control/subnet-connectivity/_category_.json delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/inventory-operations/connectivity-control/subnet-connectivity/index.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/inventory-operations/connectivity-control/subnet-connectivity/subnet-connectivity--points-to-consider.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/inventory-operations/connectivity-control/vlan-connectivity/_category_.json delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/inventory-operations/connectivity-control/vlan-connectivity/index.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/inventory-operations/connectivity-control/vlan-connectivity/vlan-connectivity--points-to-consider.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/inventory-operations/index.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/inventory-operations/inventory-drivers-and-utilities.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/_category_.json delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/attributes.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/defining-the-resource-data-model.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/defining-the-resource-structure.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/importingexporting-resource-family-updates.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/index.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/inventory-operations/viewing-resource-live-status.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/jira-integration-with-cloudshell.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/setting-up-license-pools/_category_.json delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/setting-up-license-pools/using-license-pools.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/source-control-using-local-tests-in-automation-suites/_category_.json delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/source-control-using-local-tests-in-automation-suites/enabling-automation-suites-to-use-local-tests.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/source-control-using-local-tests-in-automation-suites/index.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/source-control-using-local-tests-in-automation-suites/setting-up-source-control-for-testshell-tests.md delete mode 100644 versioned_docs/version-2024.1/admin/setting-up-cloudshell/source-control-using-local-tests-in-automation-suites/testshell-integration-with-gitlab.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/_category_.json delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/cloud-provider-2g-shells-features-and-capabilities.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/customizing-app-deployment-types.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/index.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/kubernetes-integration/_category_.json delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/kubernetes-integration/add-a-kubernetes-app-template.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/kubernetes-integration/add-a-kubernetes-cloud-provider-resource.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/kubernetes-integration/index.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/kubernetes-integration/kubernetes-prerequisites.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/kubernetes-integration/supported-cloud-providers-for-kubernetes-integration.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/_category_.json delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/index.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/managing-private-cloud-apps-in-domains.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/openstack-integration-and-configuration/_category_.json delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/openstack-integration-and-configuration/add-an-openstack-app-template.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/openstack-integration-and-configuration/add-openstack-cloud-provider-resource.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/openstack-integration-and-configuration/index.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/openstack-integration-and-configuration/openstack-configuration-requirements.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/openstack-integration-and-configuration/openstack-known-limitations.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/_category_.json delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/add-a-vcenter-app-template.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/add-vmware-vcenter-cloud-provider-resource.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/index.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/required-vcenter-user-permissions-per-deployment-type.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/vcenter-integration-architecture-and-prerequisites.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/_category_.json delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/_category_.json delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/_category_.json delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/add-an-aws-ec2-app-template.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/add-an-aws-ec2-cloud-provider-resource.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/aws-regions-supported-by-cloudshell.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/configure-an-execution-server-selector-for-aws-ec2.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/configure-the-qualix-server-for-aws-ec2.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/connect-the-management-vpc-to-quali-server.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/create-a-management-vpc/_category_.json delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/create-a-management-vpc/index.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/create-a-management-vpc/integrating-aws-with-cloud-based-cloudshell.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/create-a-shared-vpc-using-cloudformation.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/index.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/required-permissions-for-aws-deployment.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/cost-management-of-aws-ec2-instances.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/index.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/managing-aws-ec2-execution-servers.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/index.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/managing-public-cloud-apps-in-domains.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/_category_.json delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/azure-known-limitations.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/cost-management-of-microsoft-azure-resources.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/custom-routing-for-azure-in-sandboxes.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/index.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/integrating-azure-with-cloud-based-cloudshell-installation.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/managing-the-azure-execution-server.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/_category_.json delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/add-an-azure-app-template.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/add-an-azure-cloud-provider-resource.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/configure-an-execution-server-selector-for-azure.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/configure-azure-api-to-work-with-cloudshell.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/configure-the-qualix-server-for-azure.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/connect-the-cloudshell-management-vnet-to-quali-server.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/create-a-management-resource-group-and-vnets.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/index.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/using-multiple-azure-regions-in-cloudshell.md delete mode 100644 versioned_docs/version-2024.1/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/setappsecuritygroups-code-example.md delete mode 100644 versioned_docs/version-2024.1/api-guide/_category_.json delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-admin-rest-api/_category_.json delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-admin-rest-api/add-blueprints-to-domain.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-admin-rest-api/add-domains-to-group.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-admin-rest-api/add-groups-to-domain.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-admin-rest-api/add-resource-to-domain.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-admin-rest-api/add-users-to-group.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-admin-rest-api/create-domain.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-admin-rest-api/create-group.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-admin-rest-api/create-license-pool.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-admin-rest-api/create-user.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-admin-rest-api/cs-admin-rest-api-response-code.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-admin-rest-api/cs-admin-rest-api-usage.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-admin-rest-api/delete-domain.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-admin-rest-api/delete-group.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-admin-rest-api/delete-license-pool.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-admin-rest-api/delete-user.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-admin-rest-api/edit-domain.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-admin-rest-api/edit-group.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-admin-rest-api/edit-license-pool.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-admin-rest-api/edit-user.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-admin-rest-api/get-admin-api-token.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-admin-rest-api/get-all-domains.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-admin-rest-api/get-all-external-groups.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-admin-rest-api/get-all-groups.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-admin-rest-api/get-all-license-pools.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-admin-rest-api/get-all-users.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-admin-rest-api/get-domain-blueprints.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-admin-rest-api/get-domain-by-id.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-admin-rest-api/get-domain-groups.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-admin-rest-api/get-domain-resources.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-admin-rest-api/get-group-by-id.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-admin-rest-api/get-group-domains.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-admin-rest-api/get-group-users.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-admin-rest-api/get-license-pool-by-id.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-admin-rest-api/get-user-by-id.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-admin-rest-api/get-users-from-an-external-group.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-admin-rest-api/import-external-users.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-admin-rest-api/index.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-admin-rest-api/remove-blueprint-from-domain.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-admin-rest-api/remove-domains-from-group.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-admin-rest-api/remove-groups-from-domain.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-admin-rest-api/remove-resource-from-domain.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-admin-rest-api/remove-users-from-group.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-api-overview.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-sandbox-api/_category_.json delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/_category_.json delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/blueprint-identifier.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/blueprint-start.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/blueprints.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/index.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/login.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/sandbox-identifier.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/sandbox-stop.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/sandboxes.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/_category_.json delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/blueprint-identifier.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/blueprint-start-persistent.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/blueprint-start.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/blueprints.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/component-command-name.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/component-command-start.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/execution-id.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/execution-stop.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/index.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/login.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-activity.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-command-name.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-command-start.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-commands.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-component-commands.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-component-id.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-components.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-extend.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-identifier.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-output.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-owner-identifier.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-stop.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandboxes.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-sandbox-api/get-started-with-cs-sandbox-api.md delete mode 100644 versioned_docs/version-2024.1/api-guide/cs-sandbox-api/index.md delete mode 100644 versioned_docs/version-2024.1/api-guide/new-jss-rest-api/_category_.json delete mode 100644 versioned_docs/version-2024.1/api-guide/new-jss-rest-api/api-support-for-jss-and-js.md delete mode 100644 versioned_docs/version-2024.1/api-guide/new-jss-rest-api/change-suite-owner.md delete mode 100644 versioned_docs/version-2024.1/api-guide/new-jss-rest-api/delete-suite-template.md delete mode 100644 versioned_docs/version-2024.1/api-guide/new-jss-rest-api/delete-test-discovery-service.md delete mode 100644 versioned_docs/version-2024.1/api-guide/new-jss-rest-api/delete-test-execution-service.md delete mode 100644 versioned_docs/version-2024.1/api-guide/new-jss-rest-api/get-suite-execution.md delete mode 100644 versioned_docs/version-2024.1/api-guide/new-jss-rest-api/get-suite-template-details.md delete mode 100644 versioned_docs/version-2024.1/api-guide/new-jss-rest-api/get-suite-template-executions.md delete mode 100644 versioned_docs/version-2024.1/api-guide/new-jss-rest-api/get-suite-templates.md delete mode 100644 versioned_docs/version-2024.1/api-guide/new-jss-rest-api/get-test-discovery-services.md delete mode 100644 versioned_docs/version-2024.1/api-guide/new-jss-rest-api/get-test-execution-report.md delete mode 100644 versioned_docs/version-2024.1/api-guide/new-jss-rest-api/get-test-execution-services.md delete mode 100644 versioned_docs/version-2024.1/api-guide/new-jss-rest-api/index.md delete mode 100644 versioned_docs/version-2024.1/api-guide/new-jss-rest-api/jss-api-login.md delete mode 100644 versioned_docs/version-2024.1/api-guide/new-jss-rest-api/jss-rest-api-response-codes.md delete mode 100644 versioned_docs/version-2024.1/api-guide/new-jss-rest-api/refresh-login.md delete mode 100644 versioned_docs/version-2024.1/api-guide/new-jss-rest-api/revoke-login.md delete mode 100644 versioned_docs/version-2024.1/api-guide/new-jss-rest-api/start-adhoc-suite-execution.md delete mode 100644 versioned_docs/version-2024.1/api-guide/new-jss-rest-api/start-suite-execution.md delete mode 100644 versioned_docs/version-2024.1/api-guide/new-jss-rest-api/stop-job-execution.md delete mode 100644 versioned_docs/version-2024.1/api-guide/new-jss-rest-api/stop-suite-execution.md delete mode 100644 versioned_docs/version-2024.1/api-guide/packaging-api/_category_.json delete mode 100644 versioned_docs/version-2024.1/api-guide/packaging-api/creat-and-load-blueprint-pkg/_category_.json delete mode 100644 versioned_docs/version-2024.1/api-guide/packaging-api/creat-and-load-blueprint-pkg/index.md delete mode 100644 versioned_docs/version-2024.1/api-guide/packaging-api/creat-and-load-blueprint-pkg/packaging-functions/_category_.json delete mode 100644 versioned_docs/version-2024.1/api-guide/packaging-api/creat-and-load-blueprint-pkg/packaging-functions/create.md delete mode 100644 versioned_docs/version-2024.1/api-guide/packaging-api/creat-and-load-blueprint-pkg/packaging-functions/get-blueprint-details-as-xml.md delete mode 100644 versioned_docs/version-2024.1/api-guide/packaging-api/creat-and-load-blueprint-pkg/packaging-functions/get-topology-names.md delete mode 100644 versioned_docs/version-2024.1/api-guide/packaging-api/creat-and-load-blueprint-pkg/packaging-functions/index.md delete mode 100644 versioned_docs/version-2024.1/api-guide/packaging-api/creat-and-load-blueprint-pkg/packaging-functions/load.md delete mode 100644 versioned_docs/version-2024.1/api-guide/packaging-api/get-start-with-pkg-api.md delete mode 100644 versioned_docs/version-2024.1/api-guide/packaging-api/index.md delete mode 100644 versioned_docs/version-2024.1/api-guide/packaging-api/update-the-data-model/_category_.json delete mode 100644 versioned_docs/version-2024.1/api-guide/packaging-api/update-the-data-model/add-attribute-to-family.md delete mode 100644 versioned_docs/version-2024.1/api-guide/packaging-api/update-the-data-model/add-attribute-to-model.md delete mode 100644 versioned_docs/version-2024.1/api-guide/packaging-api/update-the-data-model/add-family.md delete mode 100644 versioned_docs/version-2024.1/api-guide/packaging-api/update-the-data-model/add-model-to-family.md delete mode 100644 versioned_docs/version-2024.1/api-guide/packaging-api/update-the-data-model/add-or-update-attributes.md delete mode 100644 versioned_docs/version-2024.1/api-guide/packaging-api/update-the-data-model/add-rsrc-driver-to-model.md delete mode 100644 versioned_docs/version-2024.1/api-guide/packaging-api/update-the-data-model/add-rsrc-script-to-model.md delete mode 100644 versioned_docs/version-2024.1/api-guide/packaging-api/update-the-data-model/create-model-hierarchy.md delete mode 100644 versioned_docs/version-2024.1/api-guide/packaging-api/update-the-data-model/index.md delete mode 100644 versioned_docs/version-2024.1/api-guide/packaging-api/update-the-data-model/remove-parent-model.md delete mode 100644 versioned_docs/version-2024.1/api-guide/packaging-api/update-the-data-model/remove-rsrc-driver-from-model.md delete mode 100644 versioned_docs/version-2024.1/api-guide/packaging-api/update-the-data-model/remove-rsrc-script-from-model.md delete mode 100644 versioned_docs/version-2024.1/api-guide/quali-api.md delete mode 100644 versioned_docs/version-2024.1/api-guide/shell-dev-blueprint-design-api/_category_.json delete mode 100644 versioned_docs/version-2024.1/api-guide/shell-dev-blueprint-design-api/cs-automation-api.md delete mode 100644 versioned_docs/version-2024.1/api-guide/shell-dev-blueprint-design-api/testshell-api.md delete mode 100644 versioned_docs/version-2024.1/devguide/_category_.json delete mode 100644 versioned_docs/version-2024.1/devguide/available-cs-api/_category_.json delete mode 100644 versioned_docs/version-2024.1/devguide/available-cs-api/automate-cs-sandboxes-for-devops.md delete mode 100644 versioned_docs/version-2024.1/devguide/available-cs-api/index.md delete mode 100644 versioned_docs/version-2024.1/devguide/available-cs-api/sso-login-to-cs-api.md delete mode 100644 versioned_docs/version-2024.1/devguide/available-cs-api/useful-cs-api-examples/_category_.json delete mode 100644 versioned_docs/version-2024.1/devguide/available-cs-api/useful-cs-api-examples/edit-app-in-sandbox.md delete mode 100644 versioned_docs/version-2024.1/devguide/available-cs-api/useful-cs-api-examples/find-blueprints-with-rsrc-serv-or-app.md delete mode 100644 versioned_docs/version-2024.1/devguide/available-cs-api/useful-cs-api-examples/index.mdx delete mode 100644 versioned_docs/version-2024.1/devguide/available-cs-api/useful-cs-api-examples/peform-actions-on-rsrc-in-sandbox.md delete mode 100644 versioned_docs/version-2024.1/devguide/available-cs-api/useful-cs-api-examples/start-api-outside-cs.md delete mode 100644 versioned_docs/version-2024.1/devguide/develop-config-management-scripts-for-apps/_category_.json delete mode 100644 versioned_docs/version-2024.1/devguide/develop-config-management-scripts-for-apps/ansible-playbook-dev-for-apps/_category_.json delete mode 100644 versioned_docs/version-2024.1/devguide/develop-config-management-scripts-for-apps/ansible-playbook-dev-for-apps/add-playbook-to-app.md delete mode 100644 versioned_docs/version-2024.1/devguide/develop-config-management-scripts-for-apps/ansible-playbook-dev-for-apps/ansible-playbook-examples.md delete mode 100644 versioned_docs/version-2024.1/devguide/develop-config-management-scripts-for-apps/ansible-playbook-dev-for-apps/configure-es-for-ansible.md delete mode 100644 versioned_docs/version-2024.1/devguide/develop-config-management-scripts-for-apps/ansible-playbook-dev-for-apps/test-ansible-on-linux-es.md delete mode 100644 versioned_docs/version-2024.1/devguide/develop-config-management-scripts-for-apps/ansible-playbook-dev-for-apps/tips-and-tricks-for-ansible-playbooks.md delete mode 100644 versioned_docs/version-2024.1/devguide/develop-config-management-scripts-for-apps/custom-script-dev-for-apps/_category_.json delete mode 100644 versioned_docs/version-2024.1/devguide/develop-config-management-scripts-for-apps/custom-script-dev-for-apps/add-script-to-app.md delete mode 100644 versioned_docs/version-2024.1/devguide/develop-config-management-scripts-for-apps/custom-script-dev-for-apps/index.md delete mode 100644 versioned_docs/version-2024.1/devguide/develop-config-management-scripts-for-apps/custom-script-dev-for-apps/tips-and-tricks-for-custom-scripts.md delete mode 100644 versioned_docs/version-2024.1/devguide/develop-config-management-scripts-for-apps/customize-cfg-mng-settings.md delete mode 100644 versioned_docs/version-2024.1/devguide/develop-config-management-scripts-for-apps/getting-started-with-cfg-mng-dev.md delete mode 100644 versioned_docs/version-2024.1/devguide/develop-config-management-scripts-for-apps/index.md delete mode 100644 versioned_docs/version-2024.1/devguide/develop-config-management-scripts-for-apps/passing-variables-to-cfg-mng.md delete mode 100644 versioned_docs/version-2024.1/devguide/develop-custom-cloud-provider-shells/_category_.json delete mode 100644 versioned_docs/version-2024.1/devguide/develop-custom-cloud-provider-shells/app-deployment.md delete mode 100644 versioned_docs/version-2024.1/devguide/develop-custom-cloud-provider-shells/configure-the-deployment-paths.md delete mode 100644 versioned_docs/version-2024.1/devguide/develop-custom-cloud-provider-shells/controlling-app-deployment-orch.md delete mode 100644 versioned_docs/version-2024.1/devguide/develop-custom-cloud-provider-shells/create-cp-shell.md delete mode 100644 versioned_docs/version-2024.1/devguide/develop-custom-cloud-provider-shells/extend-the-shell-data-model.md delete mode 100644 versioned_docs/version-2024.1/devguide/develop-custom-cloud-provider-shells/getting-started-with-cp-dev.md delete mode 100644 versioned_docs/version-2024.1/devguide/develop-custom-cloud-provider-shells/l2-network-connectivity.md delete mode 100644 versioned_docs/version-2024.1/devguide/develop-custom-cloud-provider-shells/l3-network-connectivity.md delete mode 100644 versioned_docs/version-2024.1/devguide/develop-custom-cloud-provider-shells/power-off-and-delete-vm.md delete mode 100644 versioned_docs/version-2024.1/devguide/develop-custom-cloud-provider-shells/remove-the-address-field.md delete mode 100644 versioned_docs/version-2024.1/devguide/develop-custom-cloud-provider-shells/resource-discovery.md delete mode 100644 versioned_docs/version-2024.1/devguide/develop-custom-cloud-provider-shells/the-cloud-provider-interface.md delete mode 100644 versioned_docs/version-2024.1/devguide/develop-custom-cloud-provider-shells/the-cp-shell-mode.md delete mode 100644 versioned_docs/version-2024.1/devguide/develop-orch-scripts/_category_.json delete mode 100644 versioned_docs/version-2024.1/devguide/develop-orch-scripts/common-orch-script-recipes.md delete mode 100644 versioned_docs/version-2024.1/devguide/develop-orch-scripts/cs-oob-orch/_category_.json delete mode 100644 versioned_docs/version-2024.1/devguide/develop-orch-scripts/cs-oob-orch/customize-guest-os-vcenter-command.md delete mode 100644 versioned_docs/version-2024.1/devguide/develop-orch-scripts/cs-oob-orch/index.md delete mode 100644 versioned_docs/version-2024.1/devguide/develop-orch-scripts/getting-started-with-orch-scripts.md delete mode 100644 versioned_docs/version-2024.1/devguide/develop-orch-scripts/how-orch-script-get-info-from-cs.md delete mode 100644 versioned_docs/version-2024.1/devguide/develop-orch-scripts/index.md delete mode 100644 versioned_docs/version-2024.1/devguide/develop-orch-scripts/script-commands-visibility-and-usability.md delete mode 100644 versioned_docs/version-2024.1/devguide/develop-orch-scripts/script-deep-dive.md delete mode 100644 versioned_docs/version-2024.1/devguide/developing-shells/_category_.json delete mode 100644 versioned_docs/version-2024.1/devguide/developing-shells/auto-discovery-for-inventory-shells.md delete mode 100644 versioned_docs/version-2024.1/devguide/developing-shells/commands-visibility-and-usability.md delete mode 100644 versioned_docs/version-2024.1/devguide/developing-shells/common-driver-recipes.md delete mode 100644 versioned_docs/version-2024.1/devguide/developing-shells/customize-shells.md delete mode 100644 versioned_docs/version-2024.1/devguide/developing-shells/debug-shell-driver-commands.md delete mode 100644 versioned_docs/version-2024.1/devguide/developing-shells/deploy-to-prod.md delete mode 100644 versioned_docs/version-2024.1/devguide/developing-shells/discover-inv-using-snmp.md delete mode 100644 versioned_docs/version-2024.1/devguide/developing-shells/driver-deep-dive.md delete mode 100644 versioned_docs/version-2024.1/devguide/developing-shells/first-gen-shells.md delete mode 100644 versioned_docs/version-2024.1/devguide/developing-shells/getting-started.md delete mode 100644 versioned_docs/version-2024.1/devguide/developing-shells/how-shells-get-info-from-cs.md delete mode 100644 versioned_docs/version-2024.1/devguide/developing-shells/index.md delete mode 100644 versioned_docs/version-2024.1/devguide/developing-shells/managing-the-shell-data-mode.md delete mode 100644 versioned_docs/version-2024.1/devguide/developing-shells/modeling-shells-with-tosca.md delete mode 100644 versioned_docs/version-2024.1/devguide/developing-shells/override-old-shell-attributes.md delete mode 100644 versioned_docs/version-2024.1/devguide/developing-shells/share-shell-with-comminity.md delete mode 100644 versioned_docs/version-2024.1/devguide/developing-shells/shell-drivers-overview.md delete mode 100644 versioned_docs/version-2024.1/devguide/developing-shells/the-shell-project-guide.md delete mode 100644 versioned_docs/version-2024.1/devguide/developing-shells/tips-and-tricks-for-shells.md delete mode 100644 versioned_docs/version-2024.1/devguide/enable-winrm-on-win-vm-for-cfg-mng.md delete mode 100644 versioned_docs/version-2024.1/devguide/index.md delete mode 100644 versioned_docs/version-2024.1/devguide/reference/_category_.json delete mode 100644 versioned_docs/version-2024.1/devguide/reference/aws-traffic-mirroring.md delete mode 100644 versioned_docs/version-2024.1/devguide/reference/categories-in-1st-gen-service-shells.md delete mode 100644 versioned_docs/version-2024.1/devguide/reference/common-cs-packages.md delete mode 100644 versioned_docs/version-2024.1/devguide/reference/custom-routing-for-azure-apps.md delete mode 100644 versioned_docs/version-2024.1/devguide/reference/custom-sandbox-metadata.md delete mode 100644 versioned_docs/version-2024.1/devguide/reference/intellisense-in-shells-and-scripts.md delete mode 100644 versioned_docs/version-2024.1/devguide/reference/l1-switch-shells.md delete mode 100644 versioned_docs/version-2024.1/devguide/reference/map-connections-using-app-sub-resources.md delete mode 100644 versioned_docs/version-2024.1/devguide/reference/migrate-1st-gen-shell-to-2nd-gen-shell.md delete mode 100644 versioned_docs/version-2024.1/devguide/reference/migrate-shells-to-py3.md delete mode 100644 versioned_docs/version-2024.1/devguide/reference/python-coding-standards.md delete mode 100644 versioned_docs/version-2024.1/devguide/reference/quali-shell-framework-py2.md delete mode 100644 versioned_docs/version-2024.1/devguide/reference/quali-shell-framework-py3.md delete mode 100644 versioned_docs/version-2024.1/devguide/reference/resource-scripts.md delete mode 100644 versioned_docs/version-2024.1/devguide/reference/shellfoundry.md delete mode 100644 versioned_docs/version-2024.1/devguide/reference/shells-that-load-static-vm.md delete mode 100644 versioned_docs/version-2024.1/devguide/reference/short-dev-videos.md delete mode 100644 versioned_docs/version-2024.1/devguide/setting-up-dev-env.md delete mode 100644 versioned_docs/version-2024.1/faq.md delete mode 100644 versioned_docs/version-2024.1/install-configure/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-sdk/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-sdk/general-info.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-sdk/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-sdk/installation-procedure/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-sdk/installation-procedure/create-vm-from-ova-template.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-sdk/installation-procedure/download-the-va-image.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-sdk/installation-procedure/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-sdk/installation-procedure/post-installation/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-sdk/installation-procedure/post-installation/apply-cs-license.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-sdk/installation-procedure/post-installation/setup-new-vm.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-sdk/overview/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-sdk/overview/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-sdk/overview/requirements.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-sdk/using-va-for-cs-operations.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/appendix/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/appendix/best-practices-cs-prod/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/appendix/best-practices-cs-prod/db-trimming.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/appendix/best-practices-cs-prod/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/appendix/fixed-server-roles.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/appendix/known-cs-install-issues.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/appendix/known-upgrade-issues.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/appendix/upgrade-rabbitmq-creds.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/appendix/utilities-and-l1-drivers.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/backup-restore/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/backup-restore/backup-cs-db.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/backup-restore/backup-vm.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/backup-restore/restore-cs-db.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/central-logging/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/central-logging/config-log4net.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/central-logging/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/central-logging/modify-cloudshell.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/central-logging/track-threads.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/cloudshell-suite-overview/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/cloudshell-suite-overview/high-availability.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/cloudshell-suite-overview/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/cloudshell-suite-overview/remote-connections.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/complete-install/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/complete-install/download-cloudshell.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/complete-install/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/complete-install/install-cloudshell/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/complete-install/install-cloudshell/check-cloudshell-required-components.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/complete-install/install-cloudshell/cloudshell-watcher-data-overview.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/complete-install/install-cloudshell/import-users-from-ad.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/complete-install/install-cloudshell/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/complete-install/install-cloudshell/install-cloudshell-sandbox-api.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/complete-install/install-cloudshell/install-products.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/complete-install/install-cloudshell/install.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/complete-install/install-cloudshell/select-components.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/complete-install/install-cloudshell/select-database-type/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/complete-install/install-cloudshell/select-database-type/best-practices-for-mongodb.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/complete-install/install-cloudshell/select-database-type/how-to-upgrade-4.2-6.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/complete-install/install-cloudshell/select-database-type/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/complete-install/install-cloudshell/select-database-type/set-the-mongodb-connection-string.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/complete-install/install-cloudshell/select-install-location.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/complete-install/install-cloudshell/select-installation-option.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/complete-install/installation-checklist.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/configure-products/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/configure-products/admin-config-settings.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/configure-products/change-service-user.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/configure-products/config-execution-server-process.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/configure-products/config-execution-server.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/configure-products/config-mongodb-connection.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/configure-products/config-pypi-server-in-offline-mode.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/configure-products/config-sandbox-api.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/configure-products/config-sql-connection.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/configure-products/configure-app-settings.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/configure-products/configure-portal/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/configure-products/configure-portal/best-practices.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/configure-products/configure-portal/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/configure-products/configure-portal/set-portal-timeout.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/configure-products/select-a-license.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/configure-products/server-connectivity-settings.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/cs-installation-validation.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/new-jss-install-config/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/new-jss-install-config/admin-actions/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/new-jss-install-config/admin-actions/change-log-level.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/new-jss-install-config/admin-actions/config-https.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/new-jss-install-config/admin-actions/config-sso.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/new-jss-install-config/admin-actions/modify-cs-admin-pass.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/new-jss-install-config/admin-actions/sandbox-creation-retries.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/new-jss-install-config/admin-actions/update-k8s-env.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/new-jss-install-config/high-level-install-flow/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/new-jss-install-config/high-level-install-flow/customize-deployment/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/new-jss-install-config/high-level-install-flow/customize-deployment/customize-deployment-config-params.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/new-jss-install-config/high-level-install-flow/customize-deployment/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/new-jss-install-config/high-level-install-flow/customize-deployment/set-static-ip.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/new-jss-install-config/high-level-install-flow/deploy-jss-with-helm.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/new-jss-install-config/high-level-install-flow/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/new-jss-install-config/high-level-install-flow/modify-cloudshell.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/new-jss-install-config/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/new-jss-install-config/new-jss-architecture.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/new-jss-install-config/requirements.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/new-jss-install-config/supported-tools.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/new-jss-install-config/test-discovery-service/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/new-jss-install-config/test-discovery-service/config-test-discovery-service.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/new-jss-install-config/test-discovery-service/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/new-jss-install-config/test-execution-service/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/new-jss-install-config/test-execution-service/config-test-execution-service.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/new-jss-install-config/test-execution-service/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/new-jss-install-config/test-execution-service/tes-management/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/new-jss-install-config/test-execution-service/tes-management/deploy-new-tes.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/new-jss-install-config/test-execution-service/tes-management/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/new-jss-install-config/test-execution-service/tes-management/scale-up.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/new-jss-install-config/test-execution-service/tes-management/view-helm-deployments.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/new-jss-install-config/test-repository-config/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/new-jss-install-config/test-repository-config/associate-tests-to-domains.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/new-jss-install-config/test-repository-config/set-up-repo.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/new-jss-install-config/update-considerations.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/quali-certified-libraries.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/quick-install/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/quick-install/before-you-begin.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/quick-install/install-cs-quick.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/secure-communication/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/secure-communication/config-secured-portal.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/secure-communication/config-secured-pypi.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/secure-communication/config-secured-python-drivers.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/secure-communication/config-secured-quali-api.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/secure-communication/config-secured-sandbox-api.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/upgrade-procedure/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/upgrade-procedure/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/upgrade-procedure/migrate-python-dependencies.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/upgrade-procedure/roll-back-to-earlier-version.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/upgrade-procedure/upgrade-prep.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/upgrade-procedure/upgrade-production.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cloudshell-suite/upgrade-procedure/upgrade-staging.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/bi-terminology.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/create-customize-dashboards/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/create-customize-dashboards/add-data-source-table.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/create-customize-dashboards/backup-restore-elasticube-and-dashboards.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/create-customize-dashboards/create-dashboards-and-widgets.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/create-customize-dashboards/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/create-customize-dashboards/inner-join-connections.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/cs-insight-bi-elasticube-tables/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/cs-insight-bi-elasticube-tables/elasticube-data-stores.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/cs-insight-bi-elasticube-tables/elasticube-tables.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/cs-insight-bi-elasticube-tables/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/embed-dashboards-externally/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/embed-dashboards-externally/config-cs-to-enbl-sis-dashbds.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/embed-dashboards-externally/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/embed-dashboards-externally/share-with-unregistered-users.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/insight-dashboards/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/insight-dashboards/manage-users-and-permissions.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/insight-dashboards/using-insight-dashboards.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/insight-sso/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/insight-sso/configure-sso-in-cs.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/insight-sso/configure-sso-in-sisense.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/insight-sso/grant-admin-privilege.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/insight-sso/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/insight-sso/sso-to-insight-workflow.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/install-insight/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/install-insight/cs-insight-bi-components.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/install-insight/download-install-files.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/install-insight/insight-configuration/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/install-insight/insight-configuration/build-elasticube.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/install-insight/insight-configuration/configure-https.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/install-insight/insight-configuration/grant-permissions.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/install-insight/insight-configuration/import-dashboards.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/install-insight/insight-configuration/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/install-insight/insight-configuration/install-addons.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/install-insight/insight-configuration/install-sisense.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/install-insight/insight-configuration/map-dashboards.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/install-insight/install-checklist.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/install-insight/install-sisense.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/install-insight/rebrand.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/install-insight/requirements.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/install-insight/synchronization.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/key-points-and-limitations.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-insight-bi/sisense-bi-components.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-system-requirements/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-system-requirements/cs-component-architechture.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-system-requirements/cs-port-requirements.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-system-requirements/database-prereq.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-system-requirements/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-system-requirements/min-requirements-for-cs.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-system-requirements/network-recommendations.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-system-requirements/security-recommendations.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-system-requirements/software-and-utilities.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-system-requirements/supported-browsers.md delete mode 100644 versioned_docs/version-2024.1/install-configure/cs-system-requirements/third-party-software.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-deployment/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-deployment/appendix/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-deployment/appendix/documentation.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-deployment/appendix/glossary.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-deployment/appendix/references.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-deployment/best-practice-es-with-ha.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-deployment/cs-app-server-clusting/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-deployment/cs-app-server-clusting/failure-trigger.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-deployment/cs-app-server-clusting/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-deployment/cs-app-server-clusting/performance.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-deployment/deployment-types-ha/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-deployment/deployment-types-ha/basic-4-server-configuration.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-deployment/deployment-types-ha/basic-6-server-configuration.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-deployment/deployment-types-ha/deployment-considerations.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-deployment/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-deployment/overview/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-deployment/overview/architecture-ha.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-deployment/overview/guiding-principles.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-deployment/overview/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/appendix/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/appendix/documentation.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/appendix/glossary.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/appendix/references.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/config-arr-and-iis-to-ssl-in-ha/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/config-arr-and-iis-to-ssl-in-ha/before-you-begin.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/config-arr-and-iis-to-ssl-in-ha/config-arr-to-ssl-offloading.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/config-arr-and-iis-to-ssl-in-ha/config-arr-to-ssl.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/config-arr-and-iis-to-ssl-in-ha/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/config-portal-load-balance/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/config-portal-load-balance/add-servers-to-main-iis.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/config-portal-load-balance/alternatives.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/config-portal-load-balance/config-arr-server.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/config-portal-load-balance/config-server-farm.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/config-portal-load-balance/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/config-portal-load-balance/verify-system-up.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/create-cluster-in-win-failover-manager/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/create-cluster-in-win-failover-manager/config-new-cluster.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/create-cluster-in-win-failover-manager/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/create-cluster-in-win-failover-manager/install-failover-cluster-feature.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/deployment-types-ha/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/deployment-types-ha/basic-4-server-configuration.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/deployment-types-ha/basic-6-server-configuration.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/deployment-types-ha/deployment-considerations.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/install-configure-cs-server/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/install-configure-cs-server/activate-quali-server-on-all-nodes.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/install-configure-cs-server/config-cs-components-to-quali-server-role.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/install-configure-cs-server/configure-each-node.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/install-configure-cs-server/configure-quali-server/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/install-configure-cs-server/configure-quali-server/config-quali-server-on-first-node.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/install-configure-cs-server/configure-quali-server/configure-quali-server-with-avl-grp.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/install-configure-cs-server/configure-quali-server/configure-remaining-cluster-nodes.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/install-configure-cs-server/configure-quali-server/display-cluster-health-info.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/install-configure-cs-server/configure-quali-server/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/install-configure-cs-server/configure-quali-server/set-the-same-certificate.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/install-configure-cs-server/configure-quali-server/set-up-alwayson-groups.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/install-configure-cs-server/configure-the-app-server/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/install-configure-cs-server/configure-the-app-server/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/install-configure-cs-server/configure-the-app-server/locating-the-cluster-name.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/install-configure-cs-server/configure-the-app-server/modify-elasticsearch-config-file.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/install-configure-cs-server/configure-the-app-server/modify-the-quali-vbs-file.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/install-configure-cs-server/create-config-role-for-quali-server.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/install-configure-cs-server/install-configure-cs-portal/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/install-configure-cs-server/install-configure-cs-portal/config-web-server-load-balancing/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/install-configure-cs-server/install-configure-cs-portal/config-web-server-load-balancing/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/install-configure-cs-server/install-configure-cs-portal/config-web-server-load-balancing/ms-app-request-routing.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/install-configure-cs-server/install-configure-cs-portal/config-web-server-load-balancing/requirements.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/install-configure-cs-server/install-configure-cs-portal/configure-cs-portal-to-ssl.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/install-configure-cs-server/install-configure-cs-portal/create-config-role.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/install-configure-cs-server/install-configure-cs-portal/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/install-configure-cs-server/install-configure-cs-portal/install-cs-portal.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/install-configure-cs-server/install-configure-cs-portal/modify-webportal-vbs-file.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/install-configure-cs-server/installing-quali-server.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/install-win-network-load-balance/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/install-win-network-load-balance/add-another-host-to-net-lb.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/install-win-network-load-balance/config-win-net-lb.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/install-win-network-load-balance/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/install-win-network-load-balance/monitor-cluster-env.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/install-win-network-load-balance/work-with-arr-cluster.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/install-win-network-load-balance/work-with-https-portal.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/installation-procedure/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/installation-procedure/configure-mongodb-in-ha-mode.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/installation-procedure/configure-sql-db-server-cluster.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/installation-procedure/download-the-ha-plugin.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/installation-procedure/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/installation-procedure/install-and-configure-license-server/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/installation-procedure/install-and-configure-license-server/alternative-solution.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/installation-procedure/install-and-configure-license-server/configure-cs-components-to-license-server-role.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/installation-procedure/install-and-configure-license-server/license-server-installation.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/known-issues-and-limitations.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/maintenance-of-ha-plugin/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/maintenance-of-ha-plugin/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/maintenance-of-ha-plugin/move-wsfc-role-between-nodes.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/maintenance-of-ha-plugin/upgrada-cs-ha-plugin.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/maintenance-of-ha-plugin/upgrade-cloudshell.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/overview/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/overview/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/overview/requirements.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/overview/software-licenses.md delete mode 100644 versioned_docs/version-2024.1/install-configure/ha-installation/overview/supported-versions-of-ms-sql.md delete mode 100644 versioned_docs/version-2024.1/install-configure/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/linux-virtual-appliance/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/linux-virtual-appliance/cs-linux-va-known-limitations.md delete mode 100644 versioned_docs/version-2024.1/install-configure/linux-virtual-appliance/installation-procedure/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/linux-virtual-appliance/installation-procedure/create-es-from-docker.md delete mode 100644 versioned_docs/version-2024.1/install-configure/linux-virtual-appliance/installation-procedure/create-es-from-ovf.md delete mode 100644 versioned_docs/version-2024.1/install-configure/linux-virtual-appliance/installation-procedure/create-es-from-qcow2.md delete mode 100644 versioned_docs/version-2024.1/install-configure/linux-virtual-appliance/installation-procedure/create-es-from-script.md delete mode 100644 versioned_docs/version-2024.1/install-configure/linux-virtual-appliance/installation-procedure/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/linux-virtual-appliance/linux-es-va-overview/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/linux-virtual-appliance/linux-es-va-overview/download-es-va-image.md delete mode 100644 versioned_docs/version-2024.1/install-configure/linux-virtual-appliance/linux-es-va-overview/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/linux-virtual-appliance/linux-es-va-overview/limitations.md delete mode 100644 versioned_docs/version-2024.1/install-configure/linux-virtual-appliance/linux-es-va-overview/sw-requirements.md delete mode 100644 versioned_docs/version-2024.1/install-configure/linux-virtual-appliance/post-installation/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/linux-virtual-appliance/post-installation/configure-linux-es-for-ansible.md delete mode 100644 versioned_docs/version-2024.1/install-configure/linux-virtual-appliance/post-installation/configure/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/linux-virtual-appliance/post-installation/configure/example-run-config-file.md delete mode 100644 versioned_docs/version-2024.1/install-configure/linux-virtual-appliance/post-installation/configure/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/linux-virtual-appliance/post-installation/log-into-the-vm.md delete mode 100644 versioned_docs/version-2024.1/install-configure/linux-virtual-appliance/post-installation/start-the-es.md delete mode 100644 versioned_docs/version-2024.1/install-configure/qualix/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/qualix/appendix/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/qualix/appendix/qualix-known-issues.md delete mode 100644 versioned_docs/version-2024.1/install-configure/qualix/appendix/remove-message-at-startup.md delete mode 100644 versioned_docs/version-2024.1/install-configure/qualix/appendix/setting-qualix-to-utc-time.md delete mode 100644 versioned_docs/version-2024.1/install-configure/qualix/appendix/work-with-qualix-vm/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/qualix/appendix/work-with-qualix-vm/copy-paste-text.md delete mode 100644 versioned_docs/version-2024.1/install-configure/qualix/appendix/work-with-qualix-vm/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/qualix/appendix/work-with-qualix-vm/transfer-files-from-client-machine.md delete mode 100644 versioned_docs/version-2024.1/install-configure/qualix/appendix/work-with-qualix-vm/transfer-files-to-client-machine.md delete mode 100644 versioned_docs/version-2024.1/install-configure/qualix/high-level-setup-process.md delete mode 100644 versioned_docs/version-2024.1/install-configure/qualix/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/qualix/install-configure/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/qualix/install-configure/create-vm-using-ovf.md delete mode 100644 versioned_docs/version-2024.1/install-configure/qualix/install-configure/qualix-4.1-using-docker.md delete mode 100644 versioned_docs/version-2024.1/install-configure/qualix/install-configure/qualix-5.0-using-docker.md delete mode 100644 versioned_docs/version-2024.1/install-configure/qualix/log-into-qualix.md delete mode 100644 versioned_docs/version-2024.1/install-configure/qualix/post-installation-config/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/qualix/post-installation-config/config-jks-cert.md delete mode 100644 versioned_docs/version-2024.1/install-configure/qualix/post-installation-config/configure-remote-access.md delete mode 100644 versioned_docs/version-2024.1/install-configure/qualix/post-installation-config/configure-vm-web-console.md delete mode 100644 versioned_docs/version-2024.1/install-configure/qualix/post-installation-config/customize-remote-access.md delete mode 100644 versioned_docs/version-2024.1/install-configure/qualix/post-installation-config/enable-https/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/qualix/post-installation-config/enable-https/configure-ssl-cert.md delete mode 100644 versioned_docs/version-2024.1/install-configure/qualix/post-installation-config/enable-https/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/qualix/post-installation-config/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/qualix/post-installation-config/modify-cpu-and-ram.md delete mode 100644 versioned_docs/version-2024.1/install-configure/qualix/post-installation-config/qualix-config-for-5-and-up.md delete mode 100644 versioned_docs/version-2024.1/install-configure/qualix/post-installation-config/restrict-qualix-access.md delete mode 100644 versioned_docs/version-2024.1/install-configure/qualix/post-installation-config/set-static-ip-for-qualix.md delete mode 100644 versioned_docs/version-2024.1/install-configure/qualix/prepare-and-reserve-blueprint.md delete mode 100644 versioned_docs/version-2024.1/install-configure/qualix/qualix-overview/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/qualix/qualix-overview/download-qualix.md delete mode 100644 versioned_docs/version-2024.1/install-configure/qualix/qualix-overview/how-qualix-works.md delete mode 100644 versioned_docs/version-2024.1/install-configure/qualix/qualix-overview/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/qualix/qualix-overview/qualix-requirements.md delete mode 100644 versioned_docs/version-2024.1/install-configure/qualix/qualix-overview/qualix-support.md delete mode 100644 versioned_docs/version-2024.1/install-configure/qualix/training-portal/_category_.json delete mode 100644 versioned_docs/version-2024.1/install-configure/qualix/training-portal/index.md delete mode 100644 versioned_docs/version-2024.1/install-configure/qualix/training-portal/setting-up-using-docker.md delete mode 100644 versioned_docs/version-2024.1/install-configure/qualix/training-portal/setting-up-using-installer.md delete mode 100644 versioned_docs/version-2024.1/install-configure/qualix/training-portal/welcome-to-your-training-session.md delete mode 100644 versioned_docs/version-2024.1/intro.md delete mode 100644 versioned_docs/version-2024.1/intro/Abt-CS.md delete mode 100644 versioned_docs/version-2024.1/intro/CS-Use-Cases.md delete mode 100644 versioned_docs/version-2024.1/intro/Term.md delete mode 100644 versioned_docs/version-2024.1/intro/_category_.json delete mode 100644 versioned_docs/version-2024.1/intro/features/Configuration-Management.md delete mode 100644 versioned_docs/version-2024.1/intro/features/_category_.json delete mode 100644 versioned_docs/version-2024.1/intro/features/abstract-resources.md delete mode 100644 versioned_docs/version-2024.1/intro/features/apps-overview.md delete mode 100644 versioned_docs/version-2024.1/intro/features/assembly-lab.md delete mode 100644 versioned_docs/version-2024.1/intro/features/blueprint-approval-policy.md delete mode 100644 versioned_docs/version-2024.1/intro/features/connectivity.md delete mode 100644 versioned_docs/version-2024.1/intro/features/email-notifications.md delete mode 100644 versioned_docs/version-2024.1/intro/features/features-and-benefits.md delete mode 100644 versioned_docs/version-2024.1/intro/features/persistent-sandboxes.md delete mode 100644 versioned_docs/version-2024.1/intro/features/resources.md delete mode 100644 versioned_docs/version-2024.1/intro/features/services.md delete mode 100644 versioned_docs/version-2024.1/intro/features/shells.md delete mode 100644 versioned_docs/version-2024.1/intro/features/static-vms.md delete mode 100644 versioned_docs/version-2024.1/intro/features/traffic-gens/Traffic-Gens-Abst.md delete mode 100644 versioned_docs/version-2024.1/intro/features/traffic-gens/_category_.json delete mode 100644 versioned_docs/version-2024.1/intro/features/traffic-gens/index.md delete mode 100644 versioned_docs/version-2024.1/jss/_category_.json delete mode 100644 versioned_docs/version-2024.1/jss/comparison-with-1st-gen-job-scheduling.md delete mode 100644 versioned_docs/version-2024.1/jss/index.md delete mode 100644 versioned_docs/version-2024.1/jss/job-scheduling-data.md delete mode 100644 versioned_docs/version-2024.1/jss/job-scheduling-terminology.md delete mode 100644 versioned_docs/version-2024.1/jss/jss-portal/_category_.json delete mode 100644 versioned_docs/version-2024.1/jss/jss-portal/index.md delete mode 100644 versioned_docs/version-2024.1/jss/jss-portal/job-scheduling-page/_category_.json delete mode 100644 versioned_docs/version-2024.1/jss/jss-portal/job-scheduling-page/index.md delete mode 100644 versioned_docs/version-2024.1/jss/jss-portal/job-scheduling-page/jira-issues.md delete mode 100644 versioned_docs/version-2024.1/jss/jss-portal/job-scheduling-page/managing-suites/_category_.json delete mode 100644 versioned_docs/version-2024.1/jss/jss-portal/job-scheduling-page/managing-suites/create-suites.md delete mode 100644 versioned_docs/version-2024.1/jss/jss-portal/job-scheduling-page/managing-suites/delete-suites.md delete mode 100644 versioned_docs/version-2024.1/jss/jss-portal/job-scheduling-page/managing-suites/edit-suites.md delete mode 100644 versioned_docs/version-2024.1/jss/jss-portal/job-scheduling-page/run-custom-suite.md delete mode 100644 versioned_docs/version-2024.1/jss/jss-portal/job-scheduling-page/running-and-stopping-suites.md delete mode 100644 versioned_docs/version-2024.1/jss/jss-portal/job-scheduling-page/view-suites.md delete mode 100644 versioned_docs/version-2024.1/jss/jss-portal/job-scheduling-page/view-test-reports.md delete mode 100644 versioned_docs/version-2024.1/jss/jss-portal/job-scheduling-servers/_category_.json delete mode 100644 versioned_docs/version-2024.1/jss/jss-portal/job-scheduling-servers/discovery-servers-dashboard.md delete mode 100644 versioned_docs/version-2024.1/jss/jss-portal/job-scheduling-servers/index.md delete mode 100644 versioned_docs/version-2024.1/jss/jss-portal/job-scheduling-servers/tes-dashboard.md delete mode 100644 versioned_docs/version-2024.1/jss/jss-portal/job-scheduling-servers/test-repositories.md delete mode 100644 versioned_docs/version-2024.1/jss/jss-portal/jss-rest-api.md delete mode 100644 versioned_docs/version-2024.1/jss/jss-portal/login-to-jss-portal.md delete mode 100644 versioned_docs/version-2024.1/jss/new-jss-logs.md delete mode 100644 versioned_docs/version-2024.1/jss/statuses-and-results.md delete mode 100644 versioned_docs/version-2024.1/portal/_category_.json delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/_category_.json delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/blueprint-catalog.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/blueprint-workspace/_category_.json delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/blueprint-workspace/blueprint-list-view.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/blueprint-workspace/index.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/_category_.json delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/abstract-resources.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/add-connectivity/_category_.json delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/add-connectivity/add-physical-network/_category_.json delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/add-connectivity/add-physical-network/add-phy-net-req/_category_.json delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/add-connectivity/add-physical-network/add-phy-net-req/add-multiple-net-req.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/add-connectivity/add-physical-network/add-phy-net-req/index.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/add-connectivity/add-physical-network/config-physical-conn-req.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/add-connectivity/add-physical-network/delete-physical-conn-req.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/add-connectivity/add-physical-network/index.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/add-connectivity/add-physical-network/physical-net-connectivity-prereq.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/add-connectivity/add-physical-network/view-phy-net-connectivity-req.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/add-connectivity/add-virtual-network/_category_.json delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/add-connectivity/add-virtual-network/add-virtual-net-connectivity-req.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/add-connectivity/add-virtual-network/config-virtual-conn-req.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/add-connectivity/add-virtual-network/delete-virtual-conn-req.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/add-connectivity/add-virtual-network/index.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/add-connectivity/add-virtual-network/view-virtual-net-connectivity-req.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/add-connectivity/add-virtual-network/virtual-net-connectivity-prereq.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/add-connectivity/connections-legend.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/add-connectivity/index.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/add-instructions.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/add-user-inputs.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/apps/_category_.json delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/apps/add-app-to-blueprint.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/apps/edit-app-in-blueprint.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/apps/remove-app-from-blueprint.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/apps/reset-app-settings.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/apps/view-apps-catalog.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/blueprint-dev-best-practices.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/blueprint-properties.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/check-blueprint-routes.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/check-blueprint.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/configure-orchestration.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/create-blueprint-commands.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/create-blueprint.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/duplicate-blueprint.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/export-blueprints/_category_.json delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/export-blueprints/export-a-package.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/export-blueprints/export-diagram.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/import-package.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/index.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/labels.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/link-global-input-to-attribute.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/name-your-blueprint.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/resources/_category_.json delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/resources/add-resources.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/resources/configure-sub-resources.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/resources/find-resources.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/resources/remove-resources.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/resources/replace-with-abstract.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/resources/share-reserved-resources.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/resources/update-resource-attr.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/save-as-template.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/services.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/creating-blueprints/set-blueprint-privacy.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/index.md delete mode 100644 versioned_docs/version-2024.1/portal/blueprints/opening-blueprints.md delete mode 100644 versioned_docs/version-2024.1/portal/inventory/_category_.json delete mode 100644 versioned_docs/version-2024.1/portal/inventory/index.md delete mode 100644 versioned_docs/version-2024.1/portal/inventory/inventory-dashboard.md delete mode 100644 versioned_docs/version-2024.1/portal/inventory/managing-abstract-templates/_category_.json delete mode 100644 versioned_docs/version-2024.1/portal/inventory/managing-abstract-templates/create-abstract-template/_category_.json delete mode 100644 versioned_docs/version-2024.1/portal/inventory/managing-abstract-templates/create-abstract-template/abstract-resource-settings.md delete mode 100644 versioned_docs/version-2024.1/portal/inventory/managing-abstract-templates/create-abstract-template/index.md delete mode 100644 versioned_docs/version-2024.1/portal/inventory/managing-abstract-templates/deleting-abstract-templates.md delete mode 100644 versioned_docs/version-2024.1/portal/inventory/managing-abstract-templates/editing-abstract-templates.md delete mode 100644 versioned_docs/version-2024.1/portal/inventory/managing-abstract-templates/index.md delete mode 100644 versioned_docs/version-2024.1/portal/inventory/managing-abstract-templates/viewing-abstract-templates.md delete mode 100644 versioned_docs/version-2024.1/portal/inventory/managing-resources/_category_.json delete mode 100644 versioned_docs/version-2024.1/portal/inventory/managing-resources/adding-inventory-resources/_category_.json delete mode 100644 versioned_docs/version-2024.1/portal/inventory/managing-resources/adding-inventory-resources/adding-aws-cp.md delete mode 100644 versioned_docs/version-2024.1/portal/inventory/managing-resources/adding-inventory-resources/adding-azure-cp.md delete mode 100644 versioned_docs/version-2024.1/portal/inventory/managing-resources/adding-inventory-resources/adding-vcenter-cp.md delete mode 100644 versioned_docs/version-2024.1/portal/inventory/managing-resources/adding-inventory-resources/index.md delete mode 100644 versioned_docs/version-2024.1/portal/inventory/managing-resources/associate-resources-to-es.md delete mode 100644 versioned_docs/version-2024.1/portal/inventory/managing-resources/connecting-remotely.md delete mode 100644 versioned_docs/version-2024.1/portal/inventory/managing-resources/deleting-resources-from-inventory.md delete mode 100644 versioned_docs/version-2024.1/portal/inventory/managing-resources/discovering-resources.md delete mode 100644 versioned_docs/version-2024.1/portal/inventory/managing-resources/editing-resources-from-inventory-dashboard.md delete mode 100644 versioned_docs/version-2024.1/portal/inventory/managing-resources/include-exclude-resources.md delete mode 100644 versioned_docs/version-2024.1/portal/inventory/managing-resources/reserving-from-inventory.md delete mode 100644 versioned_docs/version-2024.1/portal/inventory/managing-resources/searching-for-sub-resources.md delete mode 100644 versioned_docs/version-2024.1/portal/inventory/search-the-inventory.md delete mode 100644 versioned_docs/version-2024.1/portal/inventory/viewing-services.md delete mode 100644 versioned_docs/version-2024.1/portal/job-scheduling/_category_.json delete mode 100644 versioned_docs/version-2024.1/portal/job-scheduling/associate-jira-issues-with-test-executions.md delete mode 100644 versioned_docs/version-2024.1/portal/job-scheduling/extend-and-stop-automation-suites/_category_.json delete mode 100644 versioned_docs/version-2024.1/portal/job-scheduling/extend-and-stop-automation-suites/extend-suite-jobs.md delete mode 100644 versioned_docs/version-2024.1/portal/job-scheduling/extend-and-stop-automation-suites/stop-suite-jobs.md delete mode 100644 versioned_docs/version-2024.1/portal/job-scheduling/index.md delete mode 100644 versioned_docs/version-2024.1/portal/job-scheduling/job-scheduling-dashboard.md delete mode 100644 versioned_docs/version-2024.1/portal/job-scheduling/manage-automation-suites/_category_.json delete mode 100644 versioned_docs/version-2024.1/portal/job-scheduling/manage-automation-suites/add-suites.md delete mode 100644 versioned_docs/version-2024.1/portal/job-scheduling/manage-automation-suites/delete-suites-jobs-tests.md delete mode 100644 versioned_docs/version-2024.1/portal/job-scheduling/manage-automation-suites/edit-suites.md delete mode 100644 versioned_docs/version-2024.1/portal/job-scheduling/running-automation-suites/_category_.json delete mode 100644 versioned_docs/version-2024.1/portal/job-scheduling/running-automation-suites/index.md delete mode 100644 versioned_docs/version-2024.1/portal/job-scheduling/running-automation-suites/run-adhoc-suites.md delete mode 100644 versioned_docs/version-2024.1/portal/job-scheduling/running-automation-suites/run-custom-suites.md delete mode 100644 versioned_docs/version-2024.1/portal/job-scheduling/running-automation-suites/run-suites-from-template.md delete mode 100644 versioned_docs/version-2024.1/portal/job-scheduling/view-execution-history/_category_.json delete mode 100644 versioned_docs/version-2024.1/portal/job-scheduling/view-execution-history/view-execution-history.md delete mode 100644 versioned_docs/version-2024.1/portal/job-scheduling/view-execution-history/view-test-reports/_category_.json delete mode 100644 versioned_docs/version-2024.1/portal/job-scheduling/view-execution-history/view-test-reports/index.md delete mode 100644 versioned_docs/version-2024.1/portal/job-scheduling/view-execution-history/view-test-reports/setting-test-execution-report-template.md delete mode 100644 versioned_docs/version-2024.1/portal/job-scheduling/view-tests-job-suite-execution-results.md delete mode 100644 versioned_docs/version-2024.1/portal/job-scheduling/what-are-automation-suites.md delete mode 100644 versioned_docs/version-2024.1/portal/overview/_category_.json delete mode 100644 versioned_docs/version-2024.1/portal/overview/change-language.md delete mode 100644 versioned_docs/version-2024.1/portal/overview/end-to-end-wf/_category_.json delete mode 100644 versioned_docs/version-2024.1/portal/overview/end-to-end-wf/consume-sandbox.md delete mode 100644 versioned_docs/version-2024.1/portal/overview/end-to-end-wf/create-shell.md delete mode 100644 versioned_docs/version-2024.1/portal/overview/end-to-end-wf/implement-config-management.md delete mode 100644 versioned_docs/version-2024.1/portal/overview/end-to-end-wf/model-public-cloud.md delete mode 100644 versioned_docs/version-2024.1/portal/overview/index.md delete mode 100644 versioned_docs/version-2024.1/portal/overview/logging-in.md delete mode 100644 versioned_docs/version-2024.1/portal/overview/navigating.md delete mode 100644 versioned_docs/version-2024.1/portal/overview/portal-settings.md delete mode 100644 versioned_docs/version-2024.1/portal/overview/touring-the-portal.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/_category_.json delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/creating-sandboxes.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/index.mdx delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/opening-sandboxes.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-save-and-restore-overview.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/_category_.json delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/add-connectivity/_category_.json delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/add-connectivity/add-physical-network/_category_.json delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/add-connectivity/add-physical-network/add-phy-net-req/_category_.json delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/add-connectivity/add-physical-network/add-phy-net-req/add-multiple-net-req.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/add-connectivity/add-physical-network/add-phy-net-req/index.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/add-connectivity/add-physical-network/config-physical-conn-req.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/add-connectivity/add-physical-network/delete-physical-conn-req.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/add-connectivity/add-physical-network/index.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/add-connectivity/add-physical-network/physical-net-connectivity-prereq.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/add-connectivity/add-physical-network/view-phy-net-connectivity-req.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/add-connectivity/add-virtual-network/_category_.json delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/add-connectivity/add-virtual-network/add-virtual-net-connectivity-req.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/add-connectivity/add-virtual-network/config-virtual-conn-req.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/add-connectivity/add-virtual-network/delete-virtual-conn-req.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/add-connectivity/add-virtual-network/index.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/add-connectivity/add-virtual-network/view-virtual-net-connectivity-req.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/add-connectivity/add-virtual-network/virtual-net-connectivity-prereq.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/add-connectivity/connections-legend.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/add-connectivity/index.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/apps/_category_.json delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/apps/activity-feed-for-app.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/apps/add-app-to-sandbox.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/apps/edit-app-in-sandbox.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/apps/remove-app-from-sandbox.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/apps/run-app-commands.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/apps/view-apps-catalog.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/apps/view-vm-details.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/connect-resources-and-apps.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/create-cal-event-for-sandbox.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/export-diagrams-and-connections.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/extend-and-end-sandbox.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/index.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/labels.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/resources/_category_.json delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/resources/activity-feed-for-resources.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/resources/add-resources.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/resources/configure-sub-resources.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/resources/connect-remotely-with-qualix.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/resources/find-resources.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/resources/mark-in-use.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/resources/remove-resources.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/resources/share-reserved-resources.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/resources/update-resource-attr.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/review-sandbox-instructions.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/run-commands.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/sandbox-list-view.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/save-sandbox-as-blueprint.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/save-sandbox.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/services.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/show-physical-connections.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/show-physical-layer.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/system-messages/_category_.json delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/system-messages/activity-details-window.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/system-messages/activity-feed-pane.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/system-messages/indication-messages.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/system-messages/output-console-window.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/update-sandbox-properties.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandbox-workspace/view-sandbox-metadata.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/sandboxes-dashboard.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/saved-sandboxes/_category_.json delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/saved-sandboxes/delete-saved-sandbox.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/saved-sandboxes/index.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/saved-sandboxes/restore-saved-sandbox.md delete mode 100644 versioned_docs/version-2024.1/portal/sandboxes/saved-sandboxes/show-restored-sandboxes.md delete mode 100644 versioned_docs/version-2024.1/quick-start/_category_.json delete mode 100644 versioned_docs/version-2024.1/quick-start/create-sandbox.md delete mode 100644 versioned_docs/version-2024.1/quick-start/creating-reserving.md delete mode 100644 versioned_docs/version-2024.1/quick-start/install-and-setup.md delete mode 100644 versioned_docs/version-2024.1/release-notes/_category_.json delete mode 100644 versioned_docs/version-2024.1/release-notes/behavior-change.md delete mode 100644 versioned_docs/version-2024.1/release-notes/bug-fixes.md delete mode 100644 versioned_docs/version-2024.1/release-notes/general-announcments.md delete mode 100644 versioned_docs/version-2024.1/release-notes/index.md delete mode 100644 versioned_docs/version-2024.1/release-notes/known-limitations.md delete mode 100644 versioned_docs/version-2024.1/release-notes/supported-versions.md delete mode 100644 versioned_docs/version-2024.1/release-notes/whats-new.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/_category_.json delete mode 100644 versioned_docs/version-2024.1/troubleshooting/cloudshell-portal/_category_.json delete mode 100644 versioned_docs/version-2024.1/troubleshooting/cloudshell-portal/empty-resourceapp-catalogs.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/cloudshell-portal/reserving-blueprints-fails-on-nonexistent-resource-conflicts.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/cloudshell-portal/the-create-blueprint-link-is-missing-from-the-blueprint-catalog.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/cloudshell-portal/unable-to-add-apps-resources-or-services-to-a-blueprint-or-sandbox-diagram.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/cloudshell-portal/unable-to-add-resources.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/cloudshell-portal/unable-to-locate-a-resource.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/cloudshell-portal/unable-to-login-to-cloudshell-portal.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/cloudshell-portal/unable-to-save-new-app.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/cloudshell-portal/unable-to-share-resources.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/cloudshell-portal/vcenter-resource-discovery-error-discovery-failed-for-resource.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/cloudshell-portal/vm-is-not-powered-off-at-the-end-of-a-reservation.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/cloudshell-portal/vm-is-not-powered-on-at-the-start-of-a-reservation.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/database-and-permissions/_category_.json delete mode 100644 versioned_docs/version-2024.1/troubleshooting/database-and-permissions/access-to-database-denied.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/database-and-permissions/database-cannot-be-identified.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/database-and-permissions/database-user-permissions-were-not-correctly-configured.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/database-and-permissions/large-amount-of-memory-used-on-mssqlserver.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/database-and-permissions/missing-user-permissions-to-run-dbcc-traceon.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/execution-servers/_category_.json delete mode 100644 versioned_docs/version-2024.1/troubleshooting/execution-servers/network-issues-between-quali-server-and-the-execution-servers.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/execution-servers/setupteardown-scripts-failed-to-run-with-exit-code-1073741502.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/execution-servers/setupteardown-scripts-failed-with-exit-code-1073741819.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/execution-servers/venv-fails-to-build.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/insight/_category_.json delete mode 100644 versioned_docs/version-2024.1/troubleshooting/insight/elasticube-table-build-error-key-already-exists-in-the-collection.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/insight/how-to-migrate-sisense-to-a-new-server.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/insight/insight-dashboard-error-redirected-you-too-many-times.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/insight/low-disk-space-due-to-unusually-large-resourceutilizationlog-table.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/installation/_category_.json delete mode 100644 versioned_docs/version-2024.1/troubleshooting/installation/error-a-bulk-write-operation-resulted-in-one-or-more-errors.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/installation/load-license.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/installation/manual-iis-installation-error.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/installation/msdtc-firewall-settings.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/installation/msdtc-security-configuration.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/installation/older-3rd-party-installations-causing-cloudshell-installation-to-fail.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/installation/powershell-execution-policy-high-availability.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/installation/quali-server-configuration-wizard-fails-in-search-engine-health-check-stage.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/installation/testshell-database-permissions.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/installation/the-requested-page-cannot-be-accessed.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/installation/unexpected-error-when-installing-quali-server.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/installation/why-does-cloudshell-upgrade-override-cloudshell-settings.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/job-scheduling/_category_.json delete mode 100644 versioned_docs/version-2024.1/troubleshooting/job-scheduling/automation-suite-execution-remains-in-pending-state.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/job-scheduling/incorrect-test-execution-order.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/quali-server/_category_.json delete mode 100644 versioned_docs/version-2024.1/troubleshooting/quali-server/cloudshell-rabbitmq-service-fails-to-start-during-quali-server-installation.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/quali-server/cloudshell-rabbitmq-service-fails-to-start-erl-exe.md delete mode 100644 "versioned_docs/version-2024.1/troubleshooting/quali-server/l1-functionality-isn\342\200\231t-working-2022.1-and-above.md" delete mode 100644 versioned_docs/version-2024.1/troubleshooting/quali-server/large-amount-of-memory-used-on-quali-server.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/quali-server/pypi-server-process-errors-error-installing-dependencies.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/quali-server/quali-server-crash.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/quali-server/quali-server-upgrade-fails-in-the-restart-service-step.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/quali-server/quali-server-upgrade-fails-on-import-packages-step.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/quali-server/set-the-timeout-period-for-l1-drivers.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/qualix/_category_.json delete mode 100644 versioned_docs/version-2024.1/troubleshooting/qualix/cannot-connect-via-ssh-to-ubuntu-22.04-machines-with-private-key.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/qualix/error-connecting-remotely-to-a-device-guacamole-refused-to-connect.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/qualix/qualix-connection-error-missing-required-permissionsinvalid-link-access-denied.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/qualix/qualix-connection-error-remote-desktop-server.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/qualix/qualix-incorrect-name-for-resource-browser-title.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/qualix/qualix-remote-connection-attempt-opens-cloudshell-login-page.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/qualix/troubleshooting-guacamole-services.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/qualix/troubleshooting-qualix-docker-services.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/qualix/what-is-my-qualix-version.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/resource-manager/_category_.json delete mode 100644 versioned_docs/version-2024.1/troubleshooting/resource-manager/auto-load-fails.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/shells/_category_.json delete mode 100644 versioned_docs/version-2024.1/troubleshooting/shells/shell-update-error.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/troubleshooting-overview/_category_.json delete mode 100644 versioned_docs/version-2024.1/troubleshooting/troubleshooting-overview/collecting-logs.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/troubleshooting-overview/useful-tools-and-utilities.md delete mode 100644 versioned_docs/version-2024.1/troubleshooting/troubleshooting-overview/whats-in-this-guide.md delete mode 100644 versioned_sidebars/version-2023.3-sidebars.json delete mode 100644 versioned_sidebars/version-2024.1-sidebars.json diff --git a/versioned_docs/version-2023.3/admin/_category_.json b/versioned_docs/version-2023.3/admin/_category_.json deleted file mode 100644 index 5169ab27ac..0000000000 --- a/versioned_docs/version-2023.3/admin/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "CloudShell Administration", - "position": 8 -} diff --git a/versioned_docs/version-2023.3/admin/administrative-operations-overview.md b/versioned_docs/version-2023.3/admin/administrative-operations-overview.md deleted file mode 100644 index 3e93896c57..0000000000 --- a/versioned_docs/version-2023.3/admin/administrative-operations-overview.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Administrative Operations Overview - -This guide covers CloudShell administrative operations. Some of these actions are performed in **Resource Manager Client** and others in **CloudShell Portal** - -Admin responsibilities include: - -- Defining the resource data model -- Populating the resource data model -- Adding users, groups, and domains -- Assigning users to groups and domains -- Setting up the CloudShell license server - -## ![](/Images/Admin-Guide/Admin-operations.png) Define the resource data hierarchy - -After defining the data model, structure resource families and models into a logical hierarchy. - -## ![](/Images/Admin-Guide/Admin-operations_1.png) Build the attributes repository - -Use attributes to define resource runtime behavior, to assist with route resolution, and to define blueprint categories. - -## ![](/Images/Admin-Guide/Admin-operations_3.png) Add resource families and models - -Define the various models for each type or resource family, and populate the resource repository with instances of these models. -:::important -Tasks related to the resource data model only apply to resources based on 1st Gen shells. While CloudShell supports 1st Gen shells, we recommend using 2nd Gen shells, which already include all the data modeling and configurations, and offer enhanced shell management capabilities. For details, see [Shells Overview](../intro/features/shells.md). -::: -## ![](/Images/Admin-Guide/Admin-operations_4.png) Define CloudShell users - -Add or import your users into CloudShell. - -## ![](/Images/Admin-Guide/Admin-operations_5.png) Control permission levels - -Manage user access to resources by assigning them users to groups. Permission levels are determined by group membership. - -## ![](/Images/Admin-Guide/Admin-operations_6.png) Allocate resources - -Associating groups with domains allows the group's user access to domain resources. - -## Related Topics - -- [CloudShell Deployment Overview](../admin/setting-up-cloudshell/cloudshell-deployment-overview.md) -- [Inventory Operations](../admin/setting-up-cloudshell/inventory-operations/) -- [CloudShell Identity Management](../admin/cloudshell-identity-management/) -- [CloudShell Manage Dashboard](../admin/cloudshell-manage-dashboard/) -- [CloudShell Execution Server Configurations](../admin/cloudshell-execution-server-configurations/) diff --git a/versioned_docs/version-2023.3/admin/cloudshell-event-queue.md b/versioned_docs/version-2023.3/admin/cloudshell-event-queue.md deleted file mode 100644 index 3bc25e7782..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-event-queue.md +++ /dev/null @@ -1,155 +0,0 @@ ---- -sidebar_position: 7 ---- - -# CloudShell Server Events Queue - -Cloudshell Server emits events when some operations occur in the backend. -System designers can subscribe to these events for audit or automation purposes. - -This article describes how to configure this integration, as well as what events are available. - -# Requirements - -Cloudshell Server can publish to RabbitMQ. -The RabbitMQ Server needs to share a reliable network with Cloudshell Server. -RabbitMQ TCP listener port must be accessible by Cloudshell Server. - -Cloudshell Server Events Queue has been tested with RabbitMQ version 3.11 but should work with RabbitMQ 3.X - -To experiment with this, it is possible to emit messages to the RabbitMQ service used by an embedded Sandbox Service (which is installed with Cloudshell Server). -[See example](#example-configuration). - - -## Configuring Cloudshell Server Events Queue - -In RabbitMQ, make sure you have an exchange, and a queue. -Bind the queue to the exchange, with a routing key. - -In Cloudshell Server `customer.config`, set the following keys: - -:::info[customer.config] -```xml - - - - - - - -``` -::: - -### Whitelisting events - -It is possible to determine which events will be published by Cloudshell Server. -To do so, create a file titled ServerEventsWhiteList.csv in the application directory (next to QsTeamServer.exe). - -Typically this is `%Program Files(x86)%\Qualisystems\Server` -The contents of the CSV should be the events you *allow* to be published - -:::note -ServerEventsWhiteList.csv should be line-break separated, not comma separated. -::: - -[See](#supported-events) which [events](#supported-events) are supported (all are sent by default) - -:::info[Example csv] -``` -UserCreatedEvent -UserGroupsListUpdatedEvent -LoginEvent -``` -::: - -In the above example, Cloudshell Server would only emit events related to new users created, or modification to user groups (adding or removing users) or to logins - - -## Example Configuration - -:::info[Example for embedded sandbox service] -```xml - - - - - - - -``` -::: - - -## Supported Events -**UserCreatedEvent**: This event is triggered when a new user is created. - -**UserDeletedEvent**: This event occurs when a user is deleted. - -**UserGroupsListUpdatedEvent**: This event is fired when the list of user groups is updated. - -**UserUpdatedEvent**: This event happens when a user's details are updated. - -**LoginEvent**: This event is triggered when a user logs in. - -**UserGroupAddedEvent**: This event occurs when a new user group is added. - -**UserGroupDeletedEvent**: This event is fired when a user group is deleted. - -**UserGroupDomainsUpdatedEvent**: This event is triggered when the domains of a user group are updated. - -**UserGroupUpdatedEvent**: This event happens when a user group is updated. - -**JobEndedEvent**: This event occurs when a job ends. - -**JobSetEndedEvent**: This event is fired when a job suite ends. - -**ResourceAvailabilityChangedDomainEvent**: This event is triggered when the availability of a resource changes. - -**TopologyCreatedEvent**: This event occurs when a new blueprint is created. - -**TopologyUpdatedEvent**: This event is fired when a blueprint is updated. - -**TopologyDeletedEvent**: This event is triggered when a blueprint is deleted. - -**TopologyRenamedEvent**: This event happens when a blueprint is renamed. - -**DeployResourceEvent**: This event occurs when a resource is deployed. - -**ResourceEnabledEvent**: This event is fired when a resource is enabled. - -**ResourceDisabledEvent**: This event is triggered when a resource is disabled. - -**ResourceAddedEvent**: This event occurs when a resource is added. - -**ResourceDeletedEvent**: This event is fired when a resource is deleted. - -**ResourceMovedEvent**: This event happens when a resource is moved. - -**ResourceRenamedEvent**: This event occurs when a resource is renamed. - -**ResourceUpdatedEvent**: This event is fired when a resource is updated. - -**ResourcesReservedEvent**: This event is triggered when resources are reserved. - -**ResourceUnlockedEvent**: This event occurs when a resource is unlocked. - -**BulkResourcesAddedEvent**: This event is fired when multiple resources are added in bulk. - -**ReservationCreatedEvent**: This event is triggered when a sandbox is created. - -**ReservationDeleteEvent**: This event occurs when a sandbox is deleted. - -**ReservationEndEvent**: This event is fired when a sandbox ends. - -**ReservationEndTimeChangedEvent**: This event is triggered when the end time of a sandbox is changed. - -**ReservationRejectedEvent**: This event happens when a sandbox is rejected (typically due to user or license restrictions). - -**ReservationRenamedEvent**: This event occurs when a sandbox is renamed. - -**ReservationSetupEndedEvent**: This event is fired when the setup of a sandbox ends. - -**ReservationStartTimeChangedEvent**: This event is triggered when the start time of a sandbox is changed. - -**ReservationUpdateEvent**: This event happens when a sandbox is updated. - diff --git a/versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/_category_.json b/versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/_category_.json deleted file mode 100644 index 59961fb8fd..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/_category_.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "label": "CloudShell Execution Server Configurations", - "position": 5, - "link": { - "slug": "admin/cloudshell-execution-server-configurations", - "type": "generated-index", - "description": "This chapter explains how to configure execution servers to run tests and commands in CloudShell." - } -} diff --git a/versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/connecting-an-execution-server-to-quali-server.md b/versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/connecting-an-execution-server-to-quali-server.md deleted file mode 100644 index b7cf009411..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/connecting-an-execution-server-to-quali-server.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Connecting an Execution Server to Quali Server - -This article explains how to connect, or associate, an Execution Server to Quali Server. You need to do this whenever you install a new Execution Server, or deploy an Azure Template or AWS CloudFormation for a cloud-based Quali Server and need to associate the newly-created Execution Server with the Quali Server. - -:::note -The Azure and AWS Execution Servers created as part of the integration are installed on Linux machines. -::: - -**To associate a Windows Execution Server with Quali Server:** - -1. In the Execution Server machine, run the Execution Server configuration wizard. -2. In the **Server connectivity** screen, specify the Quali Server hostname or IP address and CloudShell system administrator's username/password. - -For additional information, see [Configure the Execution Server](../../install-configure/cloudshell-suite/configure-products/config-execution-server.md). - -**To associate a Linux Execution Server with Quali Server:** - -- Log in to the Execution Server machine and follow the instructions in [Configure the Linux Execution Server](../../install-configure/linux-virtual-appliance/post-installation/configure/). - -## Related Topics - -- [Integrating Azure with Cloud-based CloudShell Installation](../../admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/integrating-azure-with-cloud-based-cloudshell-installation.md) -- [Create a Management VPC and Networks using CloudFormation](../../admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/create-a-management-vpc/) diff --git a/versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/deleting-execution-servers.md b/versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/deleting-execution-servers.md deleted file mode 100644 index 10d5a7d15f..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/deleting-execution-servers.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -sidebar_position: 4 ---- - -# Deleting Execution Servers - -This article explains how to properly remove execution servers from CloudShell. This includes having a backup execution server that is configured to handle the to-be-deleted execution server's assignments. - -**To delete an execution server:** - -1. In CloudShell Portal, open the **Manage \> Execution Servers \> Servers** page. - - ![](/Images/Admin-Guide/Setting-Up-CloudShell/ExecutionServerManagementPage_587x389.png) - -2. Make sure you have at least one other working execution server (online and included). - -3. Click the name of the execution server to be deleted and check if it has a configured Execution Server Selector attribute. For example: - - ![](/Images/Admin-Guide/Setting-Up-CloudShell/ExecutionServerAssociations_474x303.png) - - If the execution server has associations, make sure to set the same associations on another execution server. For details, see [Setting Up Execution Servers to Run Commands](./setting-up-execution-servers-to-run-commands.md). - -4. Delete the execution server. - - ![](/Images/Admin-Guide/Setting-Up-CloudShell/ExecutionServerDelete_753x327.png) - -5. On the execution server machine, open Apps & Features and uninstall the execution server. - - ![](/Images/Admin-Guide/Setting-Up-CloudShell/ExecutionServerAppsAndFeatures_606x452.png) diff --git a/versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/optimizing-execution-provisioning.md b/versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/optimizing-execution-provisioning.md deleted file mode 100644 index 85a4da3fb8..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/optimizing-execution-provisioning.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -sidebar_position: 3 ---- - -# Optimizing Execution Provisioning - -This article provides guidelines on how to optimize execution provisioning in CloudShell, taking into account the number of execution servers to include, command/job slots, types of executions to handle (commands, test jobs, Python/Authoring drivers), test runtimes and their load on the system. - -## How CloudShell selects job/command slots for execution assignments - -When a new job or command execution is needed, CloudShell finds an execution server with an available slot based on these several factors: - -- Number of available execution servers (only execution servers that are both Online and Included can be used) -- Maximum job/command slot capacity of each execution server (how many tests/commands it can run in parallel. These are defined when installing or configuring an execution server, as explained in [Configure the Execution Server](../../install-configure/cloudshell-suite/configure-products/config-execution-server.md). -- Is the execution associated with a specific execution server or group of execution servers. For example, the resource is associated with a specific execution server via an **Execution Server Selector** attribute. -- Number of job/command executions in the queue -- Availability of resources (for jobs configured to run in a sandbox) - -## How to maximize execution capacity and performance - -You can maximize available execution capacity by installing additional execution servers, increasing job/command capacities of the execution server, and adding more CPU/RAM to the execution servers. - -- **Number of machines that can be allocated for execution provisioning**: Execution servers have no capacity limits and do not require a license, but it's more about what the execution server can handle. In most cases, you'll start with one execution server for the commands, and monitor the performance. Then, either add more power to the same machine or just add more execution servers for better redundancy (if one of the servers fails, it's always good to have others available). For details, see [Distributed provisioning](./setting-up-execution-servers-to-run-commands.md#distributed-provisioning). - - In addition, you can also **associate groups of resources and Apps to specific execution servers for improved performance**. This is extremely useful if you have geographically distributed sites in your organization and you want the infrastructure of each site to be handled by one or more execution servers that are physically located at or near that site. For details, see [Setting Up Execution Servers to Run Commands](./setting-up-execution-servers-to-run-commands.md). - -- **Types of automation to be run (Python-based or Authoring drivers)**: Execution servers are used for commands and orchestration, which are Python-based in most cases but also support Authoring drivers. The runtime for Authoring drivers takes more RAM/CPU than Python so limit the number of concurrent jobs to 5. -- **App deployment requires additional command slots**: For details, see [Configuring Execution Servers to Deploy vCenter Apps](./setting-up-execution-servers-to-run-commands#configuring-execution-servers-to-deploy-vcenter-apps) -- **To optimize run-time performance for individual tests**: Quali recommends setting each execution server's **Job slot capacity** to 1 (**Command slot capacity** is set to 20 by default). A job slot capacity of 1 ensures that maximum resources are always available to the running instance. For example, if there is some software/hardware that is installed on this machine that is required for the tests, and you cannot use it concurrently. - - That said, the runtime for Job Scheduling suites is heavier (more RAM/CPU) than python, but the execution server can still run a few tests concurrently if they are all independent and run against some remote targets. For example, if there is some software/hardware that is installed on this machine that is required for the tests, and you cannot use it concurrently, then you will need to limit the job slots on this execution server to 1. *This applies to the original Job Scheduling, the New Job Scheduling is specifically designed to handle high loads in the hundreds of concurrent executions.* - -- **Total number of job slots cannot exceed number of Runner licenses**: If you’re running TestShell Studio tests using the original Job Scheduling, then each test that starts consumes a runner license. These tests are also executed on the execution server and use a job slot. As such, you need to make sure the total number of job slots you allocate in the different execution servers does not exceed the number of Runner licenses you have. If this limit is reached and another test is executed, it will fail and exclude the execution server until an available license is found. -- **Test execution time and load on the system**: - - - How heavy are the tests to be executed (simple/complicated/short/long)? - - If the time it takes to execute each test is less important than the time it takes to run a series of tests, you can set execution server capacity according to the number of cores or the number of RAM on each machine. diff --git a/versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/setting-up-execution-servers-to-run-commands.md b/versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/setting-up-execution-servers-to-run-commands.md deleted file mode 100644 index 0c12e17b3b..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/setting-up-execution-servers-to-run-commands.md +++ /dev/null @@ -1,182 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Setting Up Execution Servers to Run Commands - -This article explains how to configure execution servers to run commands in CloudShell. Note that associating execution servers to automation suites is done on the job level, as explained in [Add jobs to an automation suite](../../portal/job-scheduling/manage-automation-suites/add-suites.md#add-jobs-to-an-automation-suite). - -## Managing execution servers - -The **Execution Servers** management pages in the web portal allow you to both manage and troubleshoot your execution servers, providing critical, real time data about the status of your execution servers, command and job executions, and troubleshooting information and options. For additional information, see [Managing Execution Servers](../../admin/manage-dashboard/execution-servers). - -## Distributed provisioning - -To allow for more flexibility and control, CloudShell uses execution servers to manage the executions of jobs and commands. Each CloudShell execution server has a job and command capacity, which can be modified as needed. CloudShell execution servers do not require a license, allowing for multiple execution servers to be used in CloudShell. For example, you can install several execution servers to distribute execution tasks and use execution servers that are physically closest to geographically distributed sites to minimize latency/avoid firewall issues. - -Execution servers can be installed in Windows and Linux environments. -:::important -Blueprint orchestration can be configured to run on one execution server, while the blueprint's orchestration can trigger resource commands that run on a completely different execution server. In this case, the orchestration will wait for the resource command(s) to finish. This kind of design decouples the resource level connectivity requirements from the orchestration. -::: -### Optimizing execution capacity - -For detailed information, see [Optimizing Execution Provisioning](./optimizing-execution-provisioning.md). - -### Distributed command execution - -Multiple execution servers can be deployed in order to scale out the provisioning and resource command tasks. By default, blueprint and resource commands are distributed between the execution servers according to their capacity. It is possible, however, to specify more explicit rules to control the execution server selection for commands, as explained in the "execution server selection" sections below. For additional information, see [Optimizing Execution Provisioning](./optimizing-execution-provisioning.md). - -### Resource commands - -*In this section, the term resource denotes resource, service or App.* - -When a resource command is executed, the system first checks whether a driver for that resource is already active on one of the execution servers. If it is, the command is automatically sent to that driver to be queued and handled. In case no driver is currently active, the resource driver is started on an available execution server. - -## Controlling execution server selection for resource commands - -Attributes can be used to match resource commands to the right execution server based on geographical location of the server and resource, execution server capabilities or other concerns. In a multi-site deployment, for example, there is an advantage in ensuring that overseas lab resources are only controlled by an on-premise execution server. This will help reduce the network latency and improve performance. - -For additional information, see [Associating Resources to Specific Execution Servers](../../portal/inventory/managing-resources/associate-resources-to-es.md). - -## Controlling execution server selection for App deployments - -To learn how to do this, see the appropriate article: - -- For private cloud Apps, see [Managing Private Cloud Apps in Domains](../supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/managing-private-cloud-apps-in-domains.md). -- For public cloud Apps, see [Managing Public Cloud Apps in Domains](../supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/managing-public-cloud-apps-in-domains.md). - -## Controlling execution server selection for blueprint commands - -Blueprint driver commands are also distributed between the execution servers based on availability and capacity. In order to restrict blueprint commands to a specific group of execution servers, a configuration key needs to be added specifying the relevant selector attribute value. - -1. Create a selector attribute and assign it to an execution server, as explained in [Associating Resources to Specific Execution Servers](../../portal/inventory/managing-resources/associate-resources-to-es.md). - -2. Specify an attribute value for blueprint commands. Add the following configuration key to the Quali server `customer.config` file: `EnvironmentCommandsESRestrictions` - -The value should be the attribute name and value given the syntax `Name=Value`. For example: - -![](/Images/CloudShell-Portal/Manage/Management_2_3_565x28.png) - -## Configuring the Execution Server to Run as a Process by Default - -See [Configure the Execution Server to Run as a Process by Default](../../install-configure/cloudshell-suite/configure-products/config-execution-server-process.md). - -## Working with local tests - -If you are using a source control tool and wish to configure CloudShell to work with your local tests, see [Source Control: Using Local Tests in Automation Suites](../setting-up-cloudshell/source-control-using-local-tests-in-automation-suites/) or contact Quali support or your Customer Success representative. - -## Configuring Execution Servers to Deploy vCenter Apps - -### Number of execution slots for VM deployments - -Take the following considerations into account when setting the number of Execution Server command slots for the deployment of Apps. - -| App deployment | Number of command slots required | -| --- | --- | -| **Apps deployed manually** | 3 slots per App | -| **Apps deployed automatically by CloudShell setup** | 2n + 1 (n = total number of Apps to be deployed at the same time)
For example, deploying 5 Apps requires at least 11 execution slots. | - -### Deployments from OVF image files - -The following configurations should be performed on each execution server machine that will be used by the vCenter resource to deploy VMs from OVF image files during App deployments. - -- Configure access to vCenter OVF image file path - -- Install the OVF tool - -## Configuring Execution Servers to support Python 3 shells and scripts - -Python 3 automation requires Microsoft Visual C++ Redistributable 2015 x86 and x64 to be installed on the Execution Server(s). Without this installation, CloudShell will not create the Python virtual environment for the shell or script's execution on the Execution Server. - -## Enabling custom execution servers - -You can enable or disable the use of your own custom-built execution server. This feature is enabled by default. - -To enable custom execution servers: - -1. Go to `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\customer.config` file, and add the following key: - - `` - -3. Restart the **CloudShell Portal IIS** service. - -## Setting the Virtual Environment validity period - -CloudShell virtual environments (venv) are used to isolate Python driver and script executions on the Execution Server, and include all the dependencies required by the execution. Since dependencies may change, the Execution Server has the capability to reinstall/upgrade the venv dependencies on each subsequent execution of a script or driver that has a live venv. However, doing this is time-consuming, even if the requirements are already met. - -It is therefore important to limit the number of times venvs are updated by the Execution Servers. This is done using the `VirtualEnvironmentLifetimeDurationInMinutes` configuration key, which sets the global validity period, in minutes, for venvs. During this timeframe, on subsequent executions of the venv's driver or script, the Execution Server will not attempt to update the venv as long as the validity period has not expired. - -The default value is 480 minutes. - -:::note Notes -- If the Execution Server restarts and there are existing virtual environments in place, the Execution Server will update the venv and reset the validity period. - -- This key applies to online and offline modes. -- Venvs are used for resource drivers, resource scripts and orchestration scripts. -- Since old venvs may still be in use, they are not deleted until the next CloudShell update or Execution Server restart. -::: -**To Setting the Virtual Environment validity period:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Set the desired value. -3. Save the file. -4. Restart the **Quali Server** service. - -## Setting the logging level for Python drivers and scripts running on an Execution Server - -It is possible to set the logging level for automation processes running on a specific Execution Server or Python driver (for drivers, see CloudShell Dev Guide's [Tips and Tricks for Shells](../../devguide/developing-shells/tips-and-tricks-for-shells.md) article). The logging levels are: DEBUG, INFO, WARN and ERROR.Only messages that are greater than the specified log level are saved to the logs. - -Logs are organized in different files according to resource and sandbox. The folder location will be relative to the driver in the virtual environment location at: `%venv%\[drivername]\Lib\site-packages\cloudshell\Logs` (e.g. C:\\ProgramData\\QualiSystems\\venv\\Deployment\_Orchestrator\_5\_2\\Lib\\site-packages\\cloudshell\\Logs). Under windows, `[venv]` will be located at `%programdata%\qualisystems\venv`. - -**To set the logging level for Python drivers and scripts:** - -1. Go to `C:\Program Files (x86)\QualiSystems\TestShell\ExecutionServer\customer.config` file, and add the following key: - - `` - -2. Replace `` with the desired level. - - For example: - - `` - -3. Restart the **TestShell Execution Server** service. - -## Setting environment variables to be used by Python driver instances - -Using the `DefaultPythonEnvrionmentVariables` key, you can define environment variables to be used by the driver. The environment variable is defined on the Execution Server and will be used by the appropriate driver instances that are running on that Execution Server. - -**To set environment variables for Python driver instances:** - -1. Go to `C:\Program Files (x86)\QualiSystems\TestShell\ExecutionServer\customer.config` file, and add the following key: - - `` - -3. Replace each `` with a semicolon (;) separated list of the appropriate variable name-value pairs. - - For example: - - `` - -4. Restart the **TestShell Execution Server** service. - -## Troubleshooting - -- **What happens if the Execution Server is offline while I run the update process?** - - The execution server will still change to a state of Waiting for update and once it gets back online, it will start the update process first, and only then it will get jobs to run. - -- **What happens if I (or someone else) start another update process before the previous one is done?** - - You cannot start another process until the update on the QualiServer is done. - - Once its done, and the system is updating or waiting to update the execution servers, you can start another update process and even provide different blueprint parameters. - - Idle stations that were already updated by the previous process and stations that are currently updating will start the update again. Each station that is in a Waiting for update state will remain in that state and will execute the batch file with the new parameters when it becomes idle - -- **If the batch files fails, how can I check what happened?** - - On each machine, you define the batch file to launch and a folder in which we save the outputs from these batch files. If your batch files outputs any information about the process, then you'll be able to see it in these files and check what might have gone wrong. If the process stopped on TestShell Studio, you can check the logs of the portal for other relevant details. If it failed on the execution server, check the logs of it to see if there is more information. diff --git a/versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/_category_.json b/versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/_category_.json deleted file mode 100644 index c16e5d3bea..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Setting Up Python Virtual Environments", - "position": 5 -} diff --git a/versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/cleaning-up-the-virtual-environments-folder.md b/versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/cleaning-up-the-virtual-environments-folder.md deleted file mode 100644 index 2abd1f11ab..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/cleaning-up-the-virtual-environments-folder.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -sidebar_position: 6 ---- - -# Cleaning Up the Virtual Environments Folder - -CloudShell creates a new virtual environment in the installation path on the Execution Server whenever: - -- A new or updated shell or script is being run in CloudShell -- (Applies to resource and orchestration scripts only) The same script is being run with a different Python version - defined in the **Manage - Scripts** page - -This takes up disk space as virtual environments of the older driver and script versions are retained. You can remove these older virtual environments to free up disk space. - -:::note -The installation paths are: - -- On Windows: `%PROGRAMDATA%\QualiSystems\venv` - -- On Linux: `/usr/share/QualiSystems/venv/`. -::: -**To remove unneeded virtual environments:** - -- Restart the Execution Server. - - CloudShell will automatically clean up the unneeded virtual environments that were associated with previous driver and script versions. diff --git a/versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/configuring-cloudshell-to-execute-python-commands-in-offline-mode.md b/versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/configuring-cloudshell-to-execute-python-commands-in-offline-mode.md deleted file mode 100644 index f01d43830d..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/configuring-cloudshell-to-execute-python-commands-in-offline-mode.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -sidebar_position: 4 ---- - -# Configuring CloudShell to Execute Python Commands in Offline Mode - -When a Python driver or script runs in CloudShell, the Execution Server gets the Python packages from the local PyPi Server repository or downloads them from the online public PyPi repository (if they're missing from the local PyPi) and places them in the driver or script's virtual environment on the execution server. - -PyPi Server is installed on the Quali Server machine and requires an internet connection, so if Quali Server and/or the execution servers work offline (i.e. do not have an internet connection), or the packages are missing from public PyPi, you will need to copy the required Python packages, including the out-of-the-box ones, to the local PyPi Server repository on the Quali Server computer. When a driver or script runs, the **PyPi Server** process running on the Quali Server computer will copy the required dependencies from this folder to the driver or script's virtual environment on the appropriate execution server. For additional information, see [Loading packages to your PyPi Server repository](./pypi-server-managing-python-shell-and-script-dependencies.md#loading-packages-to-your-pypi-server-repository). -:::warning -The `` configuration key that defines the local offline package folder has been deprecated in CloudShell 8.3. Therefore, when upgrading to CloudShell 8.3 and above, you will need to configure PyPi Server as the mechanism for serving Python dependencies to your Python drivers and scripts. For details, see this [Migrate Python Dependencies to PyPi Server](../../../install-configure/cloudshell-suite/upgrade-procedure/migrate-python-dependencies.md). To learn more about PyPi Server, see [PyPi Server - Managing Python Shell and Script Dependencies](./pypi-server-managing-python-shell-and-script-dependencies.md). -::: -In this article (perform the procedures that are relevant for you): - -- [Add the out-of-the-box dependencies package to the local PyPi Server repository](#add-shell-and-script-packages-to-the-local-pypi-server-repository) (required) -- [Add Shell and script packages to the local PyPi Server repository](#add-shell-and-script-packages-to-the-local-pypi-server-repository) - -## Add the out-of-the-box dependencies package to the local PyPi Server repository - -*This procedure applies to CloudShell deployments in which the Quali Server and/or the execution servers are offline and must be done when installing or upgrading CloudShell.* - -Some native CloudShell operations require running Python code that uses certain Python packages. These include out-of-the-box CloudShell orchestration, App deployments on private cloud providers and configuration management operations. These dependencies are included in the `OfflinePackageRepository.zip` package CloudShell provides with every CloudShell release. - -**To add out-of-the-box dependencies to the local PyPi Server repository:** - -- Download the extract the `OfflinePackageRepository.zip` **Offline Package** zip file from [CloudShell Download Center](https://support.quali.com/hc/en-us/articles/231613247) and extract it to the local PyPi Server repository (by default: `C:\Program Files (x86)\QualiSystems\CloudShell\Server\Config\Pypi Server Repository`). - -## Add Shell and script packages to the local PyPi Server repository - -*This procedure applies to CloudShell deployments that are either offline or require the use of Python packages that are not in the public PyPi repository.* - -Shells and scripts running in CloudShell may also rely on packages in the public PyPi Python repository. Therefore, each time you add a Shell or script to CloudShell, to enable your offline execution servers to run this Shell or script, make sure to download its dependent packages and place them in the local PyPi Server repository as well. - -**To add Python packages to the local PyPi Server repository (do this for each shell or script you add into CloudShell):** - -1. From an online computer, do one of the following: - - - Connect to the Internet and download each dependency specified in the `requirements.txt` file with the following command:  - :::note - For Python 2 shells or scripts, use a Python 2.7.10 (and up) interpreter and for Python 3, use a 3.x interpreter. The Python version is defined in the shell's `drivermetadata.xml`'s `PythonVersion` property and when editing the script in CloudShell Portal's **Manage>Assets** page. - ::: - ```python - pip download -r requirements.txt - ``` - - The Shell or script's requirements are downloaded as zip files. - - - In [Quali Repositories](https://github.com/orgs/QualiSystems/repositories), locate the Shell and click the Shell's **Download** link. In the page that is displayed, from the **Downloads** area, extract the dependencies package zip file. -2. Place these zip files in the local PyPi Server repository. - -## Related Topics - -- [PyPi Server - Managing Python Shell and Script Dependencies](./pypi-server-managing-python-shell-and-script-dependencies.md) -- [Updating Python Dependencies for Shells, Drivers and Scripts](./updating-python-dependencies-for-shells-drivers-and-scripts.md) diff --git a/versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/index.md b/versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/index.md deleted file mode 100644 index 1c0f9ebe1b..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/index.md +++ /dev/null @@ -1,13 +0,0 @@ -# Setting Up Python Virtual Environments - -You can use Python virtual environments in CloudShell in order to isolate the different Python drivers and scripts, and enable CloudShell to install their dependencies without worrying about contradicting dependencies in different driver or script versions. - -The following articles describe what Python virtual environments are, how to configure virtual environments, manage the Execution Server, manage driver dependencies, implement manual processes (when required) to run Python drivers in CloudShell, and remove unneeded virtual environments to free up disk space. - -## Related topics - -- [What are Python Virtual Environments?](./what-are-python-virtual-environments.md) -- [PyPi Server - Managing Python Shell and Script Dependencies](./pypi-server-managing-python-shell-and-script-dependencies.md) -- [Configuring CloudShell to Execute Python Commands in Offline Mode](./configuring-cloudshell-to-execute-python-commands-in-offline-mode.md) -- [Updating Python Dependencies for Shells, Drivers and Scripts](./updating-python-dependencies-for-shells-drivers-and-scripts.md) -- [Cleaning Up the Virtual Environments Folder](./cleaning-up-the-virtual-environments-folder.md) \ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/pypi-server-managing-python-shell-and-script-dependencies.md b/versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/pypi-server-managing-python-shell-and-script-dependencies.md deleted file mode 100644 index 77b72d3751..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/pypi-server-managing-python-shell-and-script-dependencies.md +++ /dev/null @@ -1,148 +0,0 @@ ---- -sidebar_position: 2 ---- - -# PyPi Server - Managing Python Shell and Script Dependencies - -CloudShell manages driver and script dependencies using **PyPi Server**. PyPi Server is a process that is installed with CloudShell on the **Quali Server** computer. -:::note -If you are upgrading to CloudShell 8.3 and above, make sure to migrate your offline and locally developed Python packages to the PyPi Server repository. For additional information, see [Migrate Python Dependencies to PyPi Server](../../../install-configure/cloudshell-suite/upgrade-procedure/migrate-python-dependencies.md). -::: -The PyPi server allows easy and organized development of Python packages for local use. A developer can remotely upload their own local Python packages to the local PyPi server, making them available to all the Execution Servers, without having to expose these packages in a public repository (such as public PyPi) or a testing repository (such as a local TestPy). For details, see [Configuring CloudShell to Execute Python Commands in Offline Mode](./configuring-cloudshell-to-execute-python-commands-in-offline-mode.md). - -As illustrated below, the following takes place when a Python script or driver is launched: - -1. The execution server contacts the PyPi Server to get the required package versions. -2. If copies of the packages, with the right versions, reside in the local PyPi Server repository, the Execution Server will download them. However, if the repository contains packages that don't have the right versions (as defined in the shell or script's `requirements.txt` file \- see [Referencing other packages](../../../devguide/developing-shells/driver-deep-dive.md#referencing-other-packages)), the operation will fail. -3. If the packages are missing from the local PyPi Server repository, the Execution Server will search and download the packages from public PyPi. - -![](/Images/Admin-Guide/Setting-Up-CloudShell/PyPiServer-flow_673x332.png) - -:::note Notes -- To configure PyPi Server behind a proxy to allow the Execution Servers to reach PyPi Server, see [Using a Proxy to Download Python Packages from Public PyPi](../setting-up-python-virtual-environments/using-a-proxy-to-download-python-packages-from-public-pypi.md). -- To configure PyPi Server behind a reverse proxy for secure communication between the PyPi Server and the Execution Servers, see [Configuring PyPi Server to Work in Secure Mode](../../../install-configure/cloudshell-suite/secure-communication/config-secured-pypi.md). -::: -The following configuration modes are available for Python driver and script dependencies: - -## Automatic online mode -:::note -The PyPi Server and Execution Servers must have access to the Internet in order for CloudShell to work in this mode. -::: -This is the default mode. When a Python driver or script that has dependencies is running, the execution server running the driver or script automatically creates a new virtual environment for the driver or script's instance and PyPi Server sends the dependencies (i.e. links to download the dependencies) to the execution server, which downloads the missing dependencies and loads all the required dependencies to the virtual environment. - -If any of the dependencies are not in the local repository, PyPi Server searches for them online in public PyPi and sends links to their online locations for download to the local PyPi server. *To learn how to block PyPi Server from downloading certain packages in online mode, see the section below.* -:::important -Packages you add to the local PyPi Server repository will constrict all Python scripts and drivers that use any version of these packages to use the specific versions residing in the repository (if they require a different version, the execution will result in error). Therefore, for packages that are published in the public PyPi repository, the best practice is to specify the package versions in the `requirements.txt` instead of adding them to the local repository. -::: -### Blocking PyPi Server from downloading packages from public PyPi - -If you have internet access but want to block PyPi Server from downloading packages that reside in the public PyPi repository, place all the Python dependencies in your local PyPi Server repository, including the dependencies of Shells you are using and any other dependencies required by custom scripts and drivers you have in CloudShell. - -However, we do not recommend to place CloudShell dependencies in the repository (packages that come out\-of\-the\-box with CloudShell and packages that are released by Quali's Shells team), as this will force your scripts and drivers to use those package versions even if newer ones are in public PyPi (as explained in the note above). Therefore, we recommend to leave out any CloudShell dependencies (packages that include "cloudshell" in their name) to make sure you get backwards\-compatible CloudShell fixes and updates we publish from time to time on public PyPi. - -## Manual offline mode - -This mode is used when access to the Internet is unavailable for Quali Server and the execution servers. To make dependencies available in offline mode, the admin needs to download the dependencies and place them in the local PyPi Server repository residing on the Quali Server machine when installing or upgrading CloudShell. - -For additional information, see [Configuring CloudShell to Execute Python Commands in Offline Mode](./configuring-cloudshell-to-execute-python-commands-in-offline-mode.md). - -## Loading packages to your PyPi Server repository - -This procedure explains how to place specific packages in the local PyPi Server repository. This is required if Quali Server is in offline mode and cannot download packages from public PyPi and is useful for development and testing of drivers and scripts that require the use of packages, which are not published in the public PyPI Python repository. - -There are two ways to load packages to your PyPi Server repository, you can **manually extract** the dependencies packages to the repository or **use command\-line** to load specific packages, as explained below. -:::note -This applies to both online and offline CloudShell deployments. -::: -### Special considerations - -Packages you add to the local PyPi Server repository will constrict all Python scripts and drivers that use any version of these packages to use the specific versions residing in the repository (if they require a different version, the execution will result in error). Therefore, for packages that are published in the public PyPi repository, the best practice is to specify the package versions in the `requirements.txt` instead of adding them to the local repository. - -If you are upgrading from version 8.2 or below, you will need to add many packages at once, for example, when migrating to the PyPi Server method for managing Python packages. If this is the case, copy the Python dependencies residing in the dependencies folder(s) defined by the `` key to the new PyPi Server repository. You can also manually copy the packages to the new location if you have access to the Quali Server machine. - -### Manually uploading the dependencies to the local PyPi Server repository - -You can manually copy the dependency packages to the new location if you have access to the Quali Server machine. - -**To manually upload the dependencies:** - -1. Copy the ZIP packages to the Quali Server computer. - - You can download the dependencies from the shell's [Quali Repositories](https://github.com/orgs/QualiSystems/discussions/categories/integrations). - - For custom shells and scripts that are not available in the Community, you can download the dependencies listed in the `requirements.txt` file using the following command: - - ```python - pip download -r requirements.txt - ``` - :::warning - For custom shells, make sure to install dependencies that match the operating system of the Execution Server (Windows/Linux). - ::: -2. If multiple dependencies are zipped up together \- extract the bundle to the local PyPi Server repository DON’T extract the actual packages. - - For example: - - ![](/Images/Admin-Guide/Setting-Up-CloudShell/extracting-dependencies_633x90.png) - - By default, the local PyPi Server repository is at: `C:\Program Files (x86)\QualiSystems\CloudShell\Server\Config\Pypi Server Repository`. - - -### Loading a package using command\-line - -For this method, you need the access credentials to the PyPi Server repository, which were defined when running the Quali Server configuration wizard. If you do not have them, contact your IT administrator. By default, the username and password are "pypiadmin". - -**To load a package using command\-line:** - -1. Unzip the package. Make sure the package contains a `setup.py` file. -2. In the unzipped package, create a file named **.pypirc** with the following data (common practice when working with Python packages and uploading them to PyPi): - - ```python - [distutils] - index-servers = - pypiserver - - [pypiserver] - repository=http://: - username= - password= - ``` - - For example: - - ```python - [distutils] - index-servers = - pypiserver - - [pypiserver] - repository=http://192.168.54.37:8036 - username=pypiadmin - password=pypiadmin - ``` - -3. Save the file. -4. Open command\-line from the unzipped package folder location and upload using the suitable option: **Setup** or **Twine**: - - - **To upload using Setup:** - - ```python - set HOME= - python setup.py sdist upload -r pypiserver - ``` - - - **To upload using Twine:** - - (If the dist folder is missing from the package, run `python setup.py sdist`) - - ```python - pip install twine - python -m twine upload dist/* --config-file .pypirc -r pypiserver - ``` - - - The package is uploaded to the local PyPi Server repository. - - -## Related Topics - -- [Updating Python Dependencies for Shells, Drivers and Scripts](./updating-python-dependencies-for-shells-drivers-and-scripts) diff --git a/versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/updating-python-dependencies-for-shells-drivers-and-scripts.md b/versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/updating-python-dependencies-for-shells-drivers-and-scripts.md deleted file mode 100644 index 71b4533c7f..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/updating-python-dependencies-for-shells-drivers-and-scripts.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -sidebar_position: 5 ---- - -# Updating Python Dependencies for Shells, Drivers and Scripts - -This article explains how to update your local PyPi Server repository. This is required when you upgrade a Shell, driver or script that has new/updated dependencies. It applies to both online and offline dependencies. - -## Updating offline Python dependencies - -**To update offline Python dependencies:** - -1. Make a backup copy of the PyPi Server repository folder so you have the option to revert back if any errors occur. -2. Download the latest Python dependencies package zip file locally and extract the zip file to the local PyPi Server repository. See [Configuring CloudShell to Execute Python Commands in Offline Mode](./configuring-cloudshell-to-execute-python-commands-in-offline-mode.md). -3. Restart any execution server that has a live instance of the relevant driver or script. This requires running the Execution Server's configuration wizard - see [Configure the Execution Server](../../../install-configure/cloudshell-suite/configure-products/config-execution-server.md). - - -## Updating online Python dependencies - -In online mode, the PyPi Server process automatically downloads and extracts the appropriate dependencies file to the driver or script's virtual environment every time a new instance of the driver or script is created. - -**To update online Python dependencies:** - -- If there is a live instance of the driver or script, restart the execution server to delete the instance, as explained above. The next time a command of the driver or script is executed, PyPi Server will download the Python dependencies. - -## Related Topics - -- [PyPi Server - Managing Python Shell and Script Dependencies](./pypi-server-managing-python-shell-and-script-dependencies.md) -- [Configuring CloudShell to Execute Python Commands in Offline Mode](./configuring-cloudshell-to-execute-python-commands-in-offline-mode.md) diff --git a/versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/using-a-proxy-to-download-python-packages-from-public-pypi.md b/versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/using-a-proxy-to-download-python-packages-from-public-pypi.md deleted file mode 100644 index 72db64c61d..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/using-a-proxy-to-download-python-packages-from-public-pypi.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -sidebar_position: 3 ---- - -# Using a Proxy to Download Python Packages from Public PyPi - -If the CloudShell Server resides on your internal network, you may need to set up an outbound proxy server to allow it to access [Public PyPi](https://pypi.org/) for downloading Python packages required by your scripts and shells. - -There are different ways to do this, and we'll cover using a configuration file or environment variables. - -## Using configuration file - -1. On the Execution Server machine, create a file called `pip.ini` under `C:\programdata\pip\`. -2. In `pip.ini` specify the proxy server's address as follows: - - ```javascript - [global] - proxy = http://[username:password@]proxyserver:port - ``` - - No need to specify the port if it's 80 for HTTP or 443 for HTTPS. - - -The process may differ if you're on a Linux Execution Server. For details, see the pip official documentation: [https://pip.pypa.io/en/stable/user\_guide/#using\-a-proxy\-server](https://pip.pypa.io/en/stable/user_guide/#using-a-proxy-server). - -## Using environment variables - -1. Depending on the proxy's communication protocol, create an environment variable on the Execution Server machine: - - `http_proxy` or `https_proxy variables` - -2. Set the variable's address in the format: - - ```javascript - http://[username:password@]proxyserver:port - ``` - - No need to specify the port if it's 80 for HTTP or 443 for HTTPS. - - -## Points to consider - -- In the proxy, sometimes not all internet access is allowed. In such cases, make sure at least these 2 addresses are allowed (both are over HTTPS and therefore use port 443): - - [https://pypi.org](https://pypi.org/) - - [https://files.pythonhosted.org](https://files.pythonhosted.org/) - -- When setting the proxy to use, the Execution Server will also try to reach out to the Quali Server (where the local PyPi Server is installed) using this proxy information, so if the proxy needs to allow access to the Quali Server machine, this is something you might want to consider adding to the proxy. - -- If you cannot add the Quali Server to the proxy, one option is to use the environment variables, and only set the `https_proxy` variable, which will be used to access the online Python repositories. However, this will not be used for HTTP access to the local PyPi Server on Quali Server. - - Note that only using the `https_proxy` variable will not work if the local PyPi Server is also secured and uses HTTPS. In this case, you need to either apply the changes to the proxy as mentioned in the note above, or use the offline mode (i.e. copy all packages to the local PyPi repository). - - -## Related Topics - -- [Configuring CloudShell to Execute Python Commands in Offline Mode](../../../admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/configuring-cloudshell-to-execute-python-commands-in-offline-mode.md) -- [Configuring PyPi Server to Work in Secure Mode](../../../install-configure/cloudshell-suite/secure-communication/config-secured-pypi.md) diff --git a/versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/what-are-python-virtual-environments.md b/versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/what-are-python-virtual-environments.md deleted file mode 100644 index 37fbf23156..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/what-are-python-virtual-environments.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -sidebar_position: 1 ---- - -# What are Python Virtual Environments? - -*This article discusses virtual environments for shells and scripts. For virtual environments created for New Job Scheduling jobs, see [Setting Up a Test Repository](../../../install-configure/cloudshell-suite/new-jss-install-config/test-repository-config/set-up-repo.md).* - -A virtual environment is a folder containing the dependencies required by a particular Python shell driver or script that is running in CloudShell. This enables running different drivers and scripts with different dependencies simultaneously. - -Therefore, whenever a Python driver or script runs in an execution server for the first time, CloudShell creates a new virtual environment in the execution server for that driver or script, and installs, in the virtual environment, the dependencies specified in the driver or script's `requirements.txt` file. This virtual environment is used in subsequent runs of the driver or script on that execution server, which enables the execution of different drivers and scripts with different dependencies simultaneously. - -However, if a newer version of the shell or script runs, or the same script is run with a different Python version, CloudShell will create a new virtual environment for the updated driver or script, but will only delete the old virtual environment when the execution server is restarted. The installation path of the virtual environment is:  - -- On Windows: `%PROGRAMDATA%\QualiSystems\venv` -- On Linux: `/usr/share/QualiSystems/venv/` -:::note -Using the driver or script for the first time on the execution server may take some setup time to create the new virtual environment and install the dependencies. The next time the same Python driver script is used, any new dependencies uploaded to the Python Package Index (PyPI) repository for this driver or script will be installed. Any existing dependencies will be reused without any changes (and will not require additional setup time). For details on how and when the Execution Server updates the venv, see [Setting the Virtual Environment validity period](../setting-up-execution-servers-to-run-commands.md#setting-the-virtual-environment-validity-period). -::: -## Related Topics - -- [PyPi Server - Managing Python Shell and Script Dependencies](./pypi-server-managing-python-shell-and-script-dependencies.md) -- [Configuring CloudShell to Execute Python Commands in Offline Mode](./configuring-cloudshell-to-execute-python-commands-in-offline-mode.md) -- [Cleaning Up the Virtual Environments Folder](./cleaning-up-the-virtual-environments-folder.md) diff --git a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/_category_.json b/versioned_docs/version-2023.3/admin/cloudshell-identity-management/_category_.json deleted file mode 100644 index 0ff2d6653f..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "CloudShell Identity Management", - "position": 3 -} diff --git a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/_category_.json b/versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/_category_.json deleted file mode 100644 index 3d1b87f7c0..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Access Control and Authentication", - "position": 4 -} diff --git a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/active-directory-integration/_category_.json b/versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/active-directory-integration/_category_.json deleted file mode 100644 index 98ef3e589f..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/active-directory-integration/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Active Directory Integration", - "position": 1 -} diff --git a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/active-directory-integration/configuring-cloudshell-to-automatically-import-active-directory-users-on-first-login.md b/versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/active-directory-integration/configuring-cloudshell-to-automatically-import-active-directory-users-on-first-login.md deleted file mode 100644 index c431d16caa..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/active-directory-integration/configuring-cloudshell-to-automatically-import-active-directory-users-on-first-login.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Configuring CloudShell to Automatically Import Active Directory Users on First Login - -This article explains how to configure CloudShell to automatically import users from an active directory (or LDAP) when they log in to CloudShell for the first time, and associate the imported users to the appropriate group. Note that the passwords of imported users are managed by the directory service provider itself. - -**To configure CloudShell to auto-import users on first login:** - -1. Make sure Quali Server is running using a Microsoft login account with access to the appropriate active directory domain. - :::note - The account is displayed in the **Windows Windows Services** window, in the **Properties** of the Quali Server service, in the **Log On** tab. - ::: -2. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following keys: - - | Key | Description | - | --- | --- | - | ActiveDirectory.Domain | This key sets the active directory domain containing the users you want to allow into CloudShell. Specify the active directory domain as the value. For example, setting an active directory domain called "Router\_UK":
\
**Prerequisite:** The computer that will be used to import the users must be in your corporate domain. | - | ExternalUserManagement.AutoImportUser | Add this key to enable CloudShell to automatically import users from an active directory or LDAP when they log in to CloudShell for the first time.
\ | - | Registration.AdditionalGroup | When added automatically (at login), users imported from an active directory or LDAP will be added to the Group that is defined in this key.
For example, setting the "Regular Users" group for imported users:
\
The default group is **External Users**.
**Important:** The Group must be associated with a domain. | - -3. Save the file. -4. Restart the **Quali Server** service. diff --git a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/active-directory-integration/importing-users-into-cloudshell-from-an-active-directory.md b/versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/active-directory-integration/importing-users-into-cloudshell-from-an-active-directory.md deleted file mode 100644 index d546f23e0f..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/active-directory-integration/importing-users-into-cloudshell-from-an-active-directory.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Importing users into CloudShell from an active directory - -The following procedures explain how to import users from your active directory into CloudShell. To enable user import, the `ActiveDirectory.Domain` configuration key needs to be set - see [Configuring CloudShell to import user definitions from an active directory](../../../setting-up-cloudshell/cloudshell-configuration-options/advanced-cloudshell-customizations.md#configuring-cloudshell-to-import-user-definitions-from-an-active-directory). - -Once imported and associated to the relevant CloudShell groups and domains, imported users log into CloudShell using their active directory username and password, and the desired CloudShell domain. In addition, the password of an imported user can only be changed from the active directory itself. - -In **Resource Manager Client**, in the **Users** tab, imported users have the **Imported** check box selected (illustrated for user "Mika-y" in the image below). - -![](/Images/Admin-Guide/User-Management/UsersTabCheckboxes.png) - -## Importing users from an active directory group - -**To import users from a specific active directory group**: - -1. Log in to **Resource Manager Client** as administrator. -2. In the **Admin** ribbon, click **Users**. -3. Click the **Import Users** button. -4. In the **Import Users** dialog box, select the **Group** option. - - ![](/Images/Admin-Guide/User-Management/ImportUsersFromGroup_491x468.png) - -5. Click **Refresh** to get a full list of groups that exist in the current domain. -6. Select the required group from the **Group** drop down list or leave **All Groups** to get all users in the active directory. -7. Click **Run Query** to get the list of users. -8. Select the users to import. Press the **\[CTRL\]+\[A\]** keys to select all users in the list or press the **\[CTRL\]** key to select specific users. - - :::note Active Directory users are added as follows: - - AD First Name field maps to the CloudShell Username (in user list and auto-import dialog) - - AD Display Name field maps to the CloudShell Display Name (in auto-import dialog) - - AD Pre-win2000 field (SamAccountName) maps to Cloudshell Username. -
- More... - - ![](/Images/Admin-Guide/User-Management/SamAccountName.png) -
- - -9. Click **OK**. - -## Importing active directory users from a file - -You can also import users from an external text file. The file must contain a list of valid email addresses in the active directory, separated with a comma or semicolon. - -**To import users from a file**: - -1. Log in to **Resource Manager Client** as administrator. -2. In the **Admin** ribbon, click **Users**. -3. Click the **Import Users** button. -4. In the **Import Users** dialog box, select the **Import from file** option. - -![](/Images/Admin-Guide/User-Management/ImportUsersFromFile_511x416.png) - -5. Click **Browse** and select the txt file. The email addresses must be comma or semicolon-separated. For example: jane.d@company.com,john.j@company.com,steve.b@company.com,deb.h@company.com - - The file contents are displayed in the text box. - -6. Click the **Run Query** button to get the list of users from the loaded file. - - The users are listed in the dialog box. Nonexistent users in the file are not listed. - -7. Select the users to import: Press the **\[CTRL\]+\[A\]** keys to select all users in the list or press the **\[CTRL\]** key to select specific users. -8. Click **OK**. - - The users are added to the **Users Management** list from the current domain. diff --git a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/active-directory-integration/index.md b/versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/active-directory-integration/index.md deleted file mode 100644 index ac65fd6bab..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/active-directory-integration/index.md +++ /dev/null @@ -1,12 +0,0 @@ -# Active Directory Integration - -CloudShell provides built-in integration with Microsoft Active Directory services for user authentication and authorization. To learn how to use Active Directory with CloudShell, see the following articles: - -- [Importing users into CloudShell from an active directory](./importing-users-into-cloudshell-from-an-active-directory.md) -- [Configuring CloudShell to Automatically Import Active Directory Users on First Login](./configuring-cloudshell-to-automatically-import-active-directory-users-on-first-login.md) - -If you cannot integrate with Active Directory, we also support integration with an LDAP, SSO or JWT solution: - -- [LDAP Integration](../ldap-integration.md) -- [Configuring Single Sign-On (SSO)](../saml-authentication-configuration-sso-slo/configure-sso/index.md) -- [JSON Web Token (JWT) Configuration](../json-web-token-jwt-configuration.md) \ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/index.md b/versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/index.md deleted file mode 100644 index 02070dd646..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/index.md +++ /dev/null @@ -1,10 +0,0 @@ -# Access Control and Authentication - -CloudShell provides several access control and authentication methods. Active Directory and LDAP enable your users to access CloudShell with their own corporate accounts, while SSO and JWT provide user access to CloudShell through your own login page. - -## Related Topics - -- [Active Directory Integration](./active-directory-integration/index.md) -- [LDAP Integration](./ldap-integration.md) -- [Configuring Single Sign-On (SSO)](./saml-authentication-configuration-sso-slo/configure-sso/index.md) -- [JSON Web Token (JWT) Configuration](./json-web-token-jwt-configuration.md) \ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/json-web-token-jwt-configuration.md b/versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/json-web-token-jwt-configuration.md deleted file mode 100644 index e3a7877148..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/json-web-token-jwt-configuration.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -sidebar_position: 3 ---- - -# JSON Web Token (JWT) Configuration - -*JWT configuration is available for Premium accounts only. Using JWT Authentication in order to log into CloudShell requires advanced customization of the login requests, as well as on the CloudShell side. Please consult with your Technical Account Manager prior to such customization.* - -JWT is an access control and authentication method that enables you to access several services through a single login page, prompting you to enter your credentials only once. You can use JWT to enable your users to access CloudShell through your homepage. - -## Configuring JWT Authentication - -To integrate JWT authentication with CloudShell, make sure JWT is installed and configured on your web app. For additional information, see [JWT documentation](https://jwt.io/). Using JWT, an online Service Provider (SP) - CloudShell in our case - can contact a separate online Identity Provider (IdP), the customer's web app for example, to authenticate users who are trying to access secure content. - -The following figure shows the typical use case addressed by JWT, where the principal (user) tries to access CloudShell. CloudShell redirects to the customer's login page, prompting the user to log in. Successful login grants the user access to CloudShell and the user is redirected back into CloudShell Portal, along with a JWT token. In subsequent logins, the user will automatically be granted access to CloudShell Portal as long as this token exists and is valid. - -![](/Images/Admin-Guide/Setting-Up-CloudShell/JWT-worfklow.png) - -## Enabling JWT authentication for CloudShell Portal - -In order to enable your users to access CloudShell using JWT authentication, CloudShell needs to obtain certain details about the user from the cookie created by your login page. - -**To enable JWT authentication for CloudShell Portal:** - -1. Go to the `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\customer.config` file, and add the following keys: - - | Configuration key | Description | - | --- | --- | - | \ | The URL to the customer's login page. The user will be redirected to this page for login authentication.
For example: "http://localhost:7658/home/login" | - | \ | Name of the cookie created by the customer's login page | - | \ | The customer's verification code. CloudShell uses this code to verify the customer's identity. | - | \ | The field containing the user's name in the cookie. | - | \ | The field containing the user's email in the cookie. | - | \ | **\[server\]** is the IdP server's IP or DNS. The URL to the customer's logout page. This page will be displayed when the user logs out of CloudShell. | - - :::note - You can map **JWT.UsernameField** and **JWT.EmailField** to fields in a `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\jwt_payload_mapping.config.json` claims file. For example: - ![](/Images/Admin-Guide/Setting-Up-CloudShell/jwt_payload_file.png) - ::: -2. Restart the **CloudShell Portal IIS** service. -3. Next, follow the steps in the below procedure to define the user's access permissions in CloudShell. - -## Defining the user's access permissions in CloudShell - -When the user logs in to your web app, a CloudShell user is created. This user is created only once, and will be used to allow your application's user to access CloudShell on all future logins. This user is allowed to access a predefined CloudShell domain containing blueprints, resources and other assets that have been prepared in advance for the user. The configuration keys below set the login mode to be used and the CloudShell domain, the user's group and the group's role. - -**To define the user's access permissions in CloudShell:** - -1. Go to the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Specify the user's settings in CloudShell. - - | Configuration key | Description | - | --- | --- | - | \ | The CloudShell domain which the user will be able to access | - | \ | The group associated to the specified domain | - | \ | The group's role | -:::note -You can change the user's permissions in the future, as appropriate. -::: -4. Restart the **Quali Server** service. - - Your users should now be able to access CloudShell with their own accounts. diff --git a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/ldap-integration.md b/versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/ldap-integration.md deleted file mode 100644 index 74df79dfef..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/ldap-integration.md +++ /dev/null @@ -1,146 +0,0 @@ ---- -sidebar_position: 4 ---- - -# LDAP Integration - -The integration of an LDAP server with CloudShell enables LDAP users to log in to CloudShell Portal with their credentials, without having to be imported manually into the **Resource Manager** users list. The import is done automatically when the user logs in to the portal. -:::tip -CloudShell provides additional user authentication options, including Active Directory, SSO and JWT. However, if possible, consider using Active Directory for user authentication as it features a simple configuration process. For additional information, see [Active Directory Integration](../../../admin/cloudshell-identity-management/access-control-and-authentication/active-directory-integration/index.md). -::: - -## Enabling secure LDAP (LDAPS) - -This procedure configures LDAP users to access CloudShell over SSL. - -**To enable LDAP to run in SSL mode:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file. -2. Copy the following keys to the file: - - ```javascript - - - - - ``` - -3. Set the key values according to your LDAP server configurations: - - - - - - - - - - - - - - - - - - - - - - - - - - -
KeyDescription
<add key="LDAP.IsLDAPS" value="true"/>true enables LDAPS mode.
<add key="LDAP.AuthType" value="1"/> - Determines how to authenticate Active Directory users in CloudShell. Possible values are: - - - - - - - -
-

**0** - Anonymous

-

**1** - Basic

-

**2** - Negotiate

-

**3** - Ntlm

-

**4** - Digest

-
-

**5** - Sicily

-

**6** - Dpa

-

**7** - Msn

-

**8** - External

-

**9** - Kerberos

-
-
<add key="LDAP.Timeout" value="600"/>Timeout period, in seconds. If the system does not respond within this period, an error is displayed.
<add key="LDAP.CheckCertificate" value="false"/> - Determine whether to validate the given SSL certificate against the local store.
Default is false. -
- - :::important - In addition, you will need to set the `LDAP.Port` key to **636**. This is covered in the following section. - ::: -4. Save the file. -5. Proceed to register LDAP users in CloudShell below. If you already registered your LDAP users in CloudShell, restart the **Quali Server** service to apply the changes. - -## Registering LDAP users in CloudShell - -This procedure requires good working knowledge of LDAP servers. - -**To register LDAP users in CloudShell:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file. -2. Make sure the following key is in the file. If it is missing, add it. - - `` - -3. Copy the following keys to the file: - - ```javascript - - - - - - - - - - - - - - - - - - - - - - - - - - ``` - -4. Set the key values according to your LDAP server configurations. For assistance, contact your IT department or use your preferred LDAP browser utility to verify the object classes used by your LDAP Server. - -5. To enable CloudShell to automatically add the users when they first log in to CloudShell, copy this key to the file: - - `` - -6. When added automatically (at login), users imported from LDAP will be added to the Group that is listed in the `Registration.AdditionalGroup` key. The default group is **External Users** (Used to be **System Administrators**). If you want a different Group, change the value of the key. - :::note - For the registration of non-imported users to succeed, the group defined in the `Registration.AdditionalGroup` key must be included in **Resource Manager Client** and associated with a domain. - ::: -7. Save the file. -8. Restart the **Quali Server** service. -9. To prevent users from changing their passwords in CloudShell, do the following: - - 1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\customer.config` file and add this key: - - `` - - 2. Save the file and restart the **CloudShell Portal IIS** service. diff --git a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/saml-authentication-configuration-sso-slo/_category_.json b/versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/saml-authentication-configuration-sso-slo/_category_.json deleted file mode 100644 index bfd7ed3550..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/saml-authentication-configuration-sso-slo/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "SAML Authentication Configuration (SSO / SLO)", - "position": 2 -} diff --git a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/saml-authentication-configuration-sso-slo/configure-sso/_category_.json b/versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/saml-authentication-configuration-sso-slo/configure-sso/_category_.json deleted file mode 100644 index 2c6a0218cd..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/saml-authentication-configuration-sso-slo/configure-sso/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Configuring Single Sign-On (SSO)", - "position": 1 -} diff --git a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/saml-authentication-configuration-sso-slo/configure-sso/index.md b/versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/saml-authentication-configuration-sso-slo/configure-sso/index.md deleted file mode 100644 index 39eaecea6f..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/saml-authentication-configuration-sso-slo/configure-sso/index.md +++ /dev/null @@ -1,306 +0,0 @@ -# Configuring Single Sign-On (SSO) - -## SSO Overview - -*SSO/SLO configuration is available with CloudShell Premium Tier.* - -Single sign-on is an access control and authentication method that enables you to access several services through a single login page, prompting you to enter you credentials only once. You can use SSO to enable your users to access CloudShell through your homepage. - -Single sign on to the CloudShell Portal is done using the SAML protocol. This configuration relies on a third-party identity provider (IdP) for authentication and authorization, using Security Assertion Markup Language (SAML). - -SAML SSO for CloudShell is implemented through Saml2 (previously known as Kentor AuthServices), an open-source library that adds SAML2 support to ASP.NET and IIS websites, integrating with various identity providers. - -## Configuring SAML Single Sign-On (SSO) - -You can configure Security Assertion Markup Language (SAML) single sign-on (SSO) to allow secure web domains to exchange user authentication and authorization data (such as username and password). Using SAML, an online Service Provider (SP) can contact a separate online Identity Provider (IdP) to authenticate users who are trying to access secure content. - -The following figure shows the typical use case addressed by SAML, where the principal (user) requests a service from the Service Provider. The Service Provider requests and obtains an identity assertion from the Identity Provider. On the basis of this assertion, the Service Provider can make an access control decision, in other words it can decide whether to perform some service for the connected principal (user). -:::note -CloudShell supports SAML v2.0. If you encounter an error, please contact your SAML administrator. -::: -![](/Images/Admin-Guide/Setting-Up-CloudShell/SAML-workflow.png) - -**To configure SAML SSO for CloudShell Portal:** - -1. [Set up an Identity Provider (IdP)](#set-up-an-identity-provider-idp). - :::note - When setting up and managing the Identity provider, make sure to configure the IdP to recognize CloudShell Portal as a service provider. - ::: -2. [Install a certificate on a local machine](#install-a-certificate-on-a-local-machine). -3. [Configure CloudShell to work with SAML SSO](#configure-cloudshell-to-work-with-saml-sso). - -### Set up an Identity Provider (IdP) - -When setting up an Identity Provider, make sure you do the following: - -1. Configure a SAML 2.0 app with the required users. - :::note Notes - When creating users in the IdP, the users must have the following attributes in order to be authenticated (see the `kentor.config` example to see how they are used): - - - `userName`: with the user name; - - `emailAddress`: with the email address; - - `timezoneName`: with the values from the **Time zone name** column in [MSDN's Time Zone IDs](https://msdn.microsoft.com/en-us/library/gg154758.aspx) - - `RelayState`: with the URL of the location to be directed to after sign-on - - (Optional) `Domain`: with the CloudShell domain name to log the user into (if the user's group is associated with more than one domain). To change the name of the `Domain` attribute, see [SAML Single Sign On (SSO)](../../../../../admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/single-sign-on-sso.md#saml-single-sign-on-sso). - - - When a user logs into CloudShell for the first time or if the specified CloudShell domain does not exist, they will be logged in randomly to one of the domains they can access. - - The user will be logged into the domain they were last logged into if either the user does not have permission to access this domain, or no domain attribute was created in the IdP for that user. - - Plus any other attributes according to which users should be mapped into groups in the sso\_group\_rules.config.json file - ::: -2. In the ACS URL field, add the following URL: `http://[server]/AuthServices/ACS` - - `[Server]` should be replaced with the address or name of the machine on which the CloudShell Portal client is installed. -
- - To see a sample configuration using Okta, click here... - - 1. Log in to your Okta organization as a user with administrative privileges. If you don’t have an Okta organization, you can create a free [Okta Developer Edition organization](https://developer.okta.com/signup/). - 2. Click **Admin**. - - ![](/Images/Admin-Guide/SLO-configuration/OktaAdminButton_58x30.png). - - 3. Click the **Add Applications** shortcut. - - ![](/Images/Admin-Guide/SLO-configuration/OktaAddApplicationsShortcut_118x16.png). - - 4. Click **Create New App**. - - ![](/Images/Admin-Guide/SLO-configuration/OktaCreateNewAppButton_125x27.png). - - 5. In the dialog that opens, select the **SAML 2.0** option, then click **Create**. - - ![](/Images/Admin-Guide/SLO-configuration/OktaCreateNewApplicationIntegrationPage_447x255.png) - - 6. In step 1 - **General Settings**, enter **Example SAML Application** in the **App name** field, then click **Next**. - - ![](/Images/Admin-Guide/SLO-configuration/OktaGeneralSettings_456x286.png) - - 7. In step 2 - **Configure SAML**, section A **SAML Settings**, paste the logout page URL in the **Single sign on URL** and **Audience URI (SP Entity ID)** fields. - - ![](/Images/Admin-Guide/SLO-configuration/OktaSAMLSettings_468x303.png) - - 8. In the **Attribute Statements** section, add the following two attribute statements: - - - **emailAddress: user.email** - - **userName: user.login** - - - ![](/Images/Admin-Guide/SLO-configuration/OktaAttributeStatements_463x156.png) - - 9. Click **Next**. - 10. In step 3 - **Feedback**, select **I'm a software vendor. I'd like to integrate my app with Okta** then click **Finish**. - - ![](/Images/Admin-Guide/SLO-configuration/OktaFeedback_434x204.png) - - 11. The **Sign On** section of your newly created “Example SAML Application” application is displayed. Right-click the **Identity Provider metadata** link, select copy and save it somewhere you'll remember. - - ![](/Images/Admin-Guide/SLO-configuration/OktaSignOn_434x406.png) - - 12. Right-click the **Assignments** section of the “Example SAML Application” application and select **Open Link In New Tab** (so that you can come back to the “Sign On” section later). - 13. In the new tab that opens, click **Assign** button and select **Assign to People**. - - ![](/Images/Admin-Guide/SLO-configuration/OktaAssignments_231x139.png) - - 14. In the **Assign Example SAML Application to People** dialog box, type your username into the search box and click the **Assign** button next to your username. - - ![](/Images/Admin-Guide/SLO-configuration/OktaAssignUser_303x81.png) - - 15. Verify your user's attributes and select **Save and Go Back**. - - ![](/Images/Admin-Guide/SLO-configuration/OktaVerifyUser.png) - - 16. Click **Done**. -
-3. Download the X.509 Certificate acquired from the IdP. Make sure the file type is `.cer`. -4. Copy the Identity Provider Single Sign-On URL and save it for later. -5. Copy the Issuer URL and save it for later. - -### Install a certificate on a local machine - -While setting-up an IdP, you are required to download a certificate file used for communication with the IdP. For increased security, install certificates on your local machine. - -**To install a certificate:** - -1. After downloading the `.cer` file to your local directory, double-click to open it. -2. In the **Security Warning** window, click **Open**. -3. In the **Certificates** window, click **Install Certificate**. - - The **Certificates Import Wizard** displays. - -4. In the **Store Location** section, select **Local Machine** and click **Next**. -5. Select the certificate store in which you want to install your certificate, and click **Next**. -6. Click **Finish** to import the certificate. - -### Configure CloudShell to work with SAML SSO - -Configuration includes defining user groups and enabling the use of SAML SSO in CloudShell. - -Users created in the IdP can use their defined **User Name** and **Email** attributes to log in to CloudShell Portal. If they are not pre-existing CloudShell users, they are automatically mapped to a group in CloudShell, according to the group rules defined in a dedicated `sso_group_rules.config.json` file. -:::note -By default, users that are added to CloudShell via SSO are also added to the **External Users** group. However, you can change this via the `Registration.AdditionalGroup` configuration key. -::: -For information about creating users, see [Managing CloudShell Users](../../../../../admin/cloudshell-identity-management/managing-users/managing-cloudshell-users.md). - -#### To define user groups for SAML SSO: - -1. Make sure the required user groups already exist in CloudShell and are added to a domain. -2. Create a JSON file with the groups and their constraints per your needs, and save it under the name `sso_group_rules.config.json` in the root folder of the CloudShell Portal installation directory. -3. Alternatively, you can download the [sample JSON file](https://qualisystems.hosted-by-files.com/Onlinehelpresources/SSO/sso_group_rules.config.json) and use it as a template for the construction of a static predefined group. - - :::note Points to consider - - Users are associated to a group if their attributes match all the constraints defined for that group. Users can be associated to more than one group. - - By default, group associations are created when registering the user. However, admins can set CloudShell to update the group associations whenever the user logs into CloudShell. For details, see [Enabling CloudShell to auto-update group associations on user login](#enabling-cloudshell-to-auto-update-group-associations-on-user-login). - - Optionally, you can use regular expressions in the `sso_group_rules.config.json` file you created to define dynamic groups that are conditioned by the values of the SAML parameters. Once regular expressions are enabled, with the `EnableRegex` element, the constraints' values are recognized as regular expressions. - ::: - :::note Notes for setting up SSO login to a CloudShell API: - - If you're setting up SSO login to a CloudShell API, place the file under the Server installation directory (usually at `C:\Program Files (x86)\QualiSystems\CloudShell\Server\`). - - Users are created according to the email and **preferred\_username** claim. If there is no **preferred\_username**, the username will be the email. - ::: - **Example: A group defined using regular expressions:** - - ```javascript - { - "Groups":[ - { - "EnableRegex":true, - "GroupName":"{group_name}", - "Constraints":[ - { - "Attribute":"TargetGroup", - "Value":"^(?.*)$" - } - { - "Attribute":"Location", - "Value":"*" - } - ] - } - ] - - } - ``` - - **Example: Adding all new SSO users to a specific group:** - - *The attribute you use is an attribute that comes back from the IdP, so it doesn't matter which one you choose. If the value is set to \*, it will match any user and assign them to the NewUsers group.* - - ```javascript - { - "Groups":[ - { - "GroupName":"NewUsers", - "Constraints":[ - { - "Attribute":"userName", - "Value":"*" - } - ] - } - ] - } - ``` - :::note - The asterisk in `Value="*"` is recognized as a regular expression, even if regular expressions are not enabled. - ::: -4. Save your JSON file under the name `sso_group_rules.config.json` (make sure the name is an exact match). - -**To enable SAML SSO:** - -1. Go to the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Go to the `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\customer.config` file, add the following keys and set the required values: - - `` (Used to redirect the user to a specified URL whenever the user browses the CloudShell Portal's login page. The \[Server\] should be replaced with the address or name of the machine on which the CloudShell Portal client is installed.) - - `` (\[server\] is the IdP server's IP or DNS (for some IdPs, you may need to specify the CloudShell Portal instead). Used to redirect users after logging out of CloudShell Portal.) -3. Add the `kentor.config` file, based on our [sample file](https://qualisystems.hosted-by-files.com/Onlinehelpresources/SSO/kentor.config), to the `C:\Program Files (x86)\QualiSystems\CloudShell\Portal` folder. - -The `kentor.config` file contains all the Authentication requirements, for example, the location of the certificate store and requested attributes for the IdP response. - -#### Sample file requirements -
- -Expand for a description of the requirements in the sample file: - -| Requirement | Description | -| --- | --- | -| **\** | | -| entityId | The name the service provider will use for itself when sending messages. In this case, it is the CloudShell Portal location on your local machine with the addition of /**AuthServices**. | -| returnUrl | The URL that you want users to be redirected to once the authentication is complete. This is typically the start page of the application, or a special signed in start page. | -| **\** | | -| requestedAttributes | List of attributes to be included in the assertions generated by the identity provider. The **requestedAttributes** section SHOULD NEVER be changed. | -| **\** | | -| entityId | The name that the IdP will use for itself when sending responses. Here you must enter the Issuer URL you retrieved from the IdP. | -| signOnUrl | The URL to the sign-in page of the IdP, to which CloudShell Portal will redirect users in order to sign in. | -| allowUnsolicitedAuthnResponse | This enables the IdP to initiate sign on where there was no prior authentication request. | -| binding | The binding that the services provider should use when sending requests to the identity provider. | -| **\** | | -| storeLocation | The location of the certificate store to search for the certificate you installed. | -| storeName | Name of the certificate store to search for the certificate.
**Note**: If you stored the certificate in the Personal store, enter "My" as value. For more information see MSDN's [StoreName Enumeration](https://msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.storename(v=vs.110).aspx) page. | -| findValue | A search term to use to find the certificate. The value will be searched for in the field specified by the **x509FindType** attribute. The required information can be found in the installed certificate details in the certificate store. | -| x509FindType | The field according to which the certificate will be searched, as defined by the value in the **findValue** attribute. You can find more information about this in MSDN's [X509FindType Enumeration](https://msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.x509findtype.aspx) page. | -
-:::note Notes -- The sample file shows only the minimum requirements. -- You may also save the certificate file and use the key `` with your certificate file path. -::: -4. Edit the file according to the additional information required by your IdP. - - For more details on the file and its elements, see the [Saml2 Configuration documentation](https://github.com/Sustainsys/Saml2/blob/master/docs/configuration.rst). - -5. Restart **Quali Server** and **CloudShell Portal IIS** services. -6. Open your browser and navigate to your portal. - - You are redirected to the IdP's login page instead of CloudShell Portal. - :::note - When trying to access the login page, if you receive a "Missing BASE64 Value" error message, make sure you have configured all the required application details correctly in the IdP. - ::: -7. Enter the user name and password you gave the user via the IdP, and you will be referred directly to the Portal's home. -:::tip -You can use the SSO Tester utility to test your SSO configuration. For additional information, see [SSO Tester](../../../../../admin/cloudshell-identity-management/access-control-and-authentication/saml-authentication-configuration-sso-slo/configure-sso/sso-tester.md). -::: -## Enabling CloudShell to auto-update group associations on user login - -By default, group associations are created when registering the user. However, by enabling the `ReevaluateSSOUserAssociationUponLogin` configuration key, CloudShell will update the group associations whenever the user logs into CloudShell. - -**To enable group associations on login:** - -1. Go to the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Restart the **CloudShell Server** service. - - -## Enabling direct access to CloudShell Portal - -Users with CloudShell credentials can access CloudShell Portal directly, not via the SSO login page. By default this is disabled. - -**To enable direct access to CloudShell Portal:** - -1. Go to the `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\customer.config` file, and add the following key: - - `` - -2. Restart the **CloudShell Portal IIS** service. - -3. Log in to CloudShell Portal using this URL format: **https://\/Account/Login?nocustom=nocustom**. - - For example: "`https://192.173.45.80/Account/Login?nocustom=nocustom`" - - You are directed to the CloudShell Portal login page - -4. If you encounter an error, in IIS Manager, in the **Advanced Settings** window of the CloudShell Portal site's application pool, set **Load User Profile** to **True**. - - ![](/Images/Admin-Guide/Setting-Up-CloudShell/SsoLoadUserProfile_408x508.png) - - -## Disabling SSO - -**To disable SSO:** - -1. Go to the `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\customer.config` file, and take out the following key: - - `` - -2. Restart the **CloudShell Portal IIS** service. \ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/saml-authentication-configuration-sso-slo/configure-sso/sso-tester.md b/versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/saml-authentication-configuration-sso-slo/configure-sso/sso-tester.md deleted file mode 100644 index 267e9a278d..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/saml-authentication-configuration-sso-slo/configure-sso/sso-tester.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -sidebar_position: 1 ---- - -# SSO Tester - -The SSO Tester utility allows you to test the Saml2 configuration on a CloudShell system with predefined SSO SAML integration. It is used to ensure that the SSO implementation works with your IdP and local configurations. We recommend using the SSO Tester utility on your staging environment before implementing CloudShell with Saml2 SSO in your production environment. - -## Prerequisites - -Before using the SSO Tester utility, make sure to: - -1. [Install the SSO Tester utility](#install-the-sso-tester-utility) -2. [Create a new website in IIS Manager](#create-a-new-website-in-iis-manager) -3. [Configure CloudShell to work with SAML SSO](./index.md#configure-cloudshell-to-work-with-saml-sso) -:::note -Make sure you have IIS installed on your machine. The SSO Tester utility does not work on machines on which the default IIS Express is installed. -::: -### Install the SSO Tester utility - -The SSO Tester package includes a web application that tests SSO integration with CloudShell Portal. - -**To install the SSO Tester utility:** - -1. Download the [SSO Tester](https://qualisystems.hosted-by-files.com/Downloadcenter/Platform%20Extensions/SSOTester/SSO%20Tester%207.2.exe) package file. -2. Extract the contents of the compressed archive to your local directory. - -### Create a new website in IIS Manager - -**To create a new website in IIS Manager:** - -1. Open IIS Manager. - -2. In the **Connections** pane, right-click **Sites**. - - ![](/Images/Admin-Guide/User-Management/SSO_Check-for-CloudShell-required_1.png) - -3. Select **Add Website**. - - ![](/Images/Admin-Guide/User-Management/SSO_Check-for-CloudShell-required_2_559x541.png) - -4. In the **Site name** field, specify a name for the site. -5. In the **Content Directory** field, specify a **Physical Path**, pointing to your CloudShell installation's `Portal` folder (usually at `C:\Program Files (x86)\QualiSystems\CloudShell\Portal`). -6. In the **Binding** field, specify an available port and click **OK**. - - ![](/Images/Admin-Guide/User-Management/SSO_Check-for-CloudShell-required_3.png) - -7. In the **Connections** pane, click **Application Pools**. - -8. In the **Application Pools** window, double-click your new website. - - ![](/Images/Admin-Guide/User-Management/SSO_Check-for-CloudShell-required_4.png) - -9. In the **Edit Application Pool** window, edit the application pool that was created for your website. -10. Verify that the **.NET CLR version is 4.0.\***. -11. Select the **Start application pool immediately** checkbox, and click **OK**. -12. In the **Connections** pane, click your website, then in the **Actions** pane, under **Manage Website**, click **Restart**. -13. If you are using IIS 8 with Windows Server 2012 or Windows Server 2012 R2, make sure to install the 'Web Server' role within the server manager. -14. After selecting the web server role, click **Next** and in the **Role Services** section, under **Application Development**, select **ASP.NET 4.5**. - - This sub-role enables IIS to use the ASP.NET 4.5 for running the CloudShell Portal. - - -## Using the SSO Tester utility - -**To use the SSO Tester utility:** - -1. Browse to the location to which you extracted the tester. Open the `customer.config` file, and add the URL of the newly created website to the following key: - - `` - -2. In the same folder, open the `kentor.config` file, and add the URL of the newly created website as the value of both the `entityId` and `returnUrl` attributes of the following key: - - ```javascript - - ``` - -3. Edit the `kentor.config` file, according to the requirements described in [Sample file requirements](./index.md#sample-file-requirements). -4. Open CloudShell Portal. - - You are redirected to the IdP login page. - -5. Log in with the credentials of one of the users you defined in the IdP. - - A test page with the attributes returned by the IdP is displayed. - -6. If errors are displayed, make the required changes and reload the website. - :::note Notes - - If error message HTTP Error 500.19 is issued, change the permissions of the SSO Tester's Portal folder and reload the website. - - If changes were made to the `kentor.config` file, reset the application in the IIS Manager. - - ![](/Images/Admin-Guide/User-Management/SSO_Restart-IIS.png) - ::: \ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/saml-authentication-configuration-sso-slo/configuring-single-logout-slo.md b/versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/saml-authentication-configuration-sso-slo/configuring-single-logout-slo.md deleted file mode 100644 index 51e0166fa3..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/access-control-and-authentication/saml-authentication-configuration-sso-slo/configuring-single-logout-slo.md +++ /dev/null @@ -1,180 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Configuring Single Logout (SLO) - -*SSO/SLO configuration is available with CloudShell Premium Tier.* - -Single logout (SLO) invalidates CloudShell single sign-on (SSO) sessions and redirects the logging out user to their defined logout page. If your CloudShell deployment includes multiple domains, where each domain uses a different logout page, each one of your users will be redirected to their respective logout page. -:::note -SLO must be used in conjunction with SSO. -::: - -## Creating an SSL certificate - -The first step is to create an SSL certificate, which you will need to install on all CloudShell Portal machines. - -**To create an SSL certificate:** - -1. In your personal store, create an SSL certificate with a private key. - - 1. If CloudShell Portal is not installed on the Quali Server machine, copy the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\Certificates\makecert.exe` file from the Quali Server machine to the Portal machine - 2. Create an SSL certificate: - - ```javascript - cd "makecert.exe containing folder" - ``` - - ```javascript - makecert.exe -n "CN=My Company Development Root CA,O=My Company, OU=Development,L=Quali,S=NY,C=US" -pe -ss My -sr LocalMachine -sky exchange -m 120 -a sha1 -len 2048 -r - ``` - - Where "My Company Development Root CA" is the name of the certificate - -2. Export the certificate to all CloudShell Portal machines. - - 1. From the Start menu, search for the **Manage Computer Certificates** app and locate the certificate you created in the previous step. - - The certificate should have the same name you gave it in the command. In our example: "My Company Development Root CA". - - 2. Right-click the certificate and select **Export>All Tasks>Export**. - - ![](/Images/Admin-Guide/Setting-Up-CloudShell/SAMLExportCertificate.png) - - 3. In the **Certificate Export Wizard**, select **Yes, export the private key**. - - ![](/Images/Admin-Guide/Setting-Up-CloudShell/SAMLExportWithPrivate.png) - - 4. Click **Next**. - 5. Specify the **Password** to allow exporting the certificate. - 6. Click **Next**, specify the file name. and complete the wizard. - 7. Import the certificate to the personal store on all CloudShell Portal machines. -3. Export the certificate for the service provider. - - 1. In the **Certificate Export Wizard**, select **No, do not export the private key**. - - ![](/Images/Admin-Guide/Setting-Up-CloudShell/SAMLExportCertificateWithoutPrivateKey.png) - - 2. Select **DER encoded binary X.509 (.CER)**. - - ![](/Images/Admin-Guide/Setting-Up-CloudShell/SAMLSaveCertificateFormat_376x111.png) - - 3. Specify the file name and location of the `.cer` certificate and complete the wizard. - 4. Import the generated public key to the service provider. Okta example: - - 1. In Okta, from the **Applications** menu, select the app you created for SSO.. - 2. In the **General** tab, edit the SAML settings. - 3. Under **SAML Settings**, click **Edit.** - 4. Proceed to **SAML Settings**. - 5. Select **Show Advanced Settings**, and set the following: - - - **Signature Certificate**: Upload the public certificate. - - **Enable Single Logout** - - **Single Logout URL**: Specify the URL. - - **SP Issuer**: Specify the SP issuer URL. - - ![](/Images/Admin-Guide/Setting-Up-CloudShell/OktaSLOConfig.png) - - :::note - In some cases, you may also need to import the generated certificate to the trusted certificates folder in CloudShell Portal. Right-click the **Trusted Root Certification>Certificates** folder and select **All Tasks>Import**. - ::: - -## Configuring SAML SLO on each CloudShell Portal - -Perform the following procedure on each CloudShell Portal machine. - -**To configure SAML SLO for CloudShell Portal:** - -1. Make sure SSO is configured. For details, see [Configuring Single Sign-On (SSO)](./configure-sso/index.md). -2. Disable the `requireSsl` flag by adding the following code to the `web.config` file. - :::note - The `requireSsl` flag only applies to websites that do not use HTTPS. If HTTPS is used, perform the steps in the [Configuring SAML SLO for CloudShell Portal in SSL mode](../../../../admin/cloudshell-identity-management/access-control-and-authentication/saml-authentication-configuration-sso-slo/configuring-single-logout-slo.md#configuring-saml-slo-for-cloudshell-portal-in-ssl-mode) section and carry on with the configuration process. - ::: - ```javascript - - - - - - - ``` - :::important - The `web.config` file is overridden during a CloudShell patch or version upgrade. Therefore, make sure to keep a backup copy of the file, and after upgrade, replace the file's `` section with the one in the backup version. - ::: -3. In the `Kentor.config` file, do the following: - - 1. In the ` - - ``` - - 2. Under the `` section, set the following: - - - `entityId`: Identity provider issuer - - `logoutUrl`: Identity provider SLO URL - - For example: - - ```javascript - - - ``` - - 3. In the `Kentor.config` file, add a section that will point to the newly created certificate. For example: - - ```javascript - - - - - ``` - -4. Configure your identity provider. This typically includes setting the SLO logout page URL, CloudShell Portal issuer (for example: "`http://192.168.20.134/AuthServices`") and .cer certificate file. - - **To configure the identity provider on Okta:** - - -1. Restart **Quali Server** and **CloudShell Portal IIS** services. -2. Log in to CloudShell Portal with your Idp user. -3. Log out of CloudShell Portal. - - You are redirected to the defined logout page. - - -## Configuring SAML SLO for CloudShell Portal in SSL mode - -If CloudShell Portal is running in SSL mode (HTTPS), you will need to perform several additional configurations to enable SLO. - -**To configure SAML SLO to work in HTTPS:** - -1. In your identity provider, update all SLO logout URLs to be in https mode. For example: "`https://192.168.30.27/AuthServices/Acs`". -2. In the `Kentor.config` file, in the `Topologies** tab, to add a blueprint to the domain. Any resources within that blueprint are automatically added to the domain. - - ![](/Images/Admin-Guide/User-Management/AddDomainRes_1.png) - - -**To associate multiple domains to a specific resource:** - -1. Right-click the resource and select **Configuration** from the context menu. - ![](/Images/Admin-Guide/User-Management/AddDomainRes_2_261x345.png) -2. In the resource's **Configuration** tab, select the **Domains** tab. - -![](/Images/Admin-Guide/User-Management/AddDomainRes_3.png) - -1. To allocate the resource to additional domains, click **Add** to open the **Domains Selection** window. - - -![](/Images/Admin-Guide/User-Management/AddDomainRes_4.png) - -6. Select one or more domains and click **OK**. - -## Removing resources from domains - -This section explains how to remove resources from domains in Resource Manager Client. Admins can also remove resources via the CloudShell Portal Inventory dashboard but this removes the resource entirely - see [Deleting Resources from the Inventory](../../../portal/inventory/managing-resources/deleting-resources-from-inventory.md). - -**To remove resources via the domain's Resources page:** - -1. Click the **Admin** ribbon's **Domains** icon to open the **Domains Explorer** window. - -![](/Images/Admin-Guide/User-Management/AddDomainRes_428x106.png) - -2. In the **Domains** pane, right-click a domain and select **Open** from the context menu to open the domain's tab. -3. Open the **Resources** page from the **Page** drop down list. - -![](/Images/Admin-Guide/User-Management/AddDomainRes_5.png) - -1. In the **Resources** page, select the resource that you wish to delete and click the **Delete** button. If the selected resource has descendants, they will be removed as well. - -**To remove resources via the domain's Diagram page:** - -1. Click the **Admin** ribbon's **Domains** button to open the **Domains** pane. -2. In the **Domains** pane, right-click a domain and select **Open** from the context menu to open the domain's tab. -3. Open the **Diagram** page from the **Page** drop down list. -4. In the **Diagram** page, select the resources and click the **Remove** button in the top left corner of the diagram. - -**To remove a specific resource from associated domains**: - -1. Right-click the resource and select **Configuration** from the context menu. - ![](/Images/Admin-Guide/User-Management/AddDomainRes_2_235x310.png) -2. In the resource's **Configuration** tab, select the **Domains** tab. - ![](/Images/Admin-Guide/User-Management/AddDomainRes_3.png) -3. Select one or more associated domains and click **Remove**. diff --git a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/cloudshell-domains/archiving-and-restoring-domains.md b/versioned_docs/version-2023.3/admin/cloudshell-identity-management/cloudshell-domains/archiving-and-restoring-domains.md deleted file mode 100644 index 999ce26060..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/cloudshell-domains/archiving-and-restoring-domains.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -sidebar_position: 6 ---- - -# Archiving and Restoring Domains - -This article explains how to archive and restore domains. Archiving domains applies to scenarios where the domain is no longer needed but you want to keep it for future use. It is also possible to delete domains that are no longer needed as well as set an end date on domains in the domain's properties tab (for details, see [Domains Window](../../../admin/cloudshell-identity-management/cloudshell-domains/domains-window.md)). - -## Archiving domains - -**To archive a domain that is no longer needed**: - -1. Click the **Admin** tab's **Domains** icon to open the **Domains Explorer** window. - ![](/Images/Admin-Guide/User-Management/DomainsButton.png) - -2. In the **Domains Explorer**, double-click a domain or right-click a domain and choose **Open** from the context menu to open the domain's tab. -3. Click the **Archive** button, to the right of the **Edit** button next to the **Domain Name** field. - -## Deleting domains - -**To delete a domain**: - -1. Click the **Admin** tab's **Domains** icon to open the **Domains Explorer** window. - ![](/Images/Admin-Guide/User-Management/DomainsButton.png) -2. In the **Domains Explorer**, select the domain that you wish to delete and click the toolbar's **Delete** icon. -3. Click **OK** to confirm. - -## Restoring archived domains - -Unlike deleted domains, archived domains can be restored. Restoring an archived domain restores all associated groups and allocated resources and blueprints. Deleted sandboxes will not be restored. - -**To restore an archived domain**: - -1. Click the Admin tab's **Domains** icon to open the **Domains Explorer** window. -2. In the **Domains Explorer**, if archived domains aren't visible, click the toolbar's **Show Archived Domains** icon. -3. Double-click a domain or right-click a domain and choose **Open** from the context menu to open the domain's tab. -4. Click the **Unarchive** button, to the right of the **Edit** button next to the **Domain Name** field. diff --git a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/cloudshell-domains/domains-window.md b/versioned_docs/version-2023.3/admin/cloudshell-identity-management/cloudshell-domains/domains-window.md deleted file mode 100644 index c3c4208db1..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/cloudshell-domains/domains-window.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Domains Window - -Use the domain's tab to add and remove resources, and blueprints (including their components and logic) to and from domains. User access to a domain is determined according to the domain's associated groups. - -**To configure a domain:** - -1. In the **Domains** pane, right-click a domain and select **Open** from the context menu, or double-click the domain. - - ![](/Images/Admin-Guide/User-Management/The-Domain-window.png) - - The domain's tab is displayed. - -2. Use the buttons in the pane to add, remove and show archived domains. - - The domain's tab has three pages: - - - [Properties page](#properties-page) - - [Resources page](#resources-page) - - [Diagram page](#diagram-page) - -## Properties page - -The **Properties** page displays the current domain settings: the domain name, description, the default blueprints folder, a short summary of the domain's reservation history, and any groups or blueprints that are associated with the domain. - -![](/Images/Admin-Guide/User-Management/The-Domain-window_1.png) - -**To configure settings in the Properties page:** - -1. To change a domain's name and description, click the **Edit** button next to the **Domain Name** field. -2. To archive the domain, click the **Archive** button next to the **Domain Name** field. If the domain is currently archived, click the **Archive** button to restore the domain. For additional information, see [Archiving and Restoring Domains](./archiving-and-restoring-domains.md). -3. The domain's **Topologies Folder** arranges all blueprints created within that domain. To change the domain's topologies folder, click the **Change** button next to the **Topologies Folder** field. - :::tip - Clicking the Clear button next to the Topologies Folder field will remove the blueprints folder and prevent users from adding blueprints to the domain. - ::: -4. The domain's **License Pool** determines the domain's permitted number of concurrent sandboxes. To change the domain's default license pool, click the **License Pool** drop down list and specify the number of sandboxes to be allowed to run at the same time. -5. To specify an expiry date for the domain, click the **Calendar** button next to the **End Time** field. Click **Clear** to remove the expiry date. - :::note - The default duration for a domain is indefinite. - ::: -6. The **Resources** field displays the number of resources associated with the domain. Click the **Add Resource** button to find additional resources. -7. The **Reservations** field shows a real time summary of the domain's activity. -8. To add or remove groups from the domain, click the **Groups** tab. The **Groups** tab lists all groups associated with the domain. The **View Only** field is checked for any group with view-only access to the domain. To manage groups and their permission levels, see [Managing CloudShell Groups](../managing-users/managing-cloudshell-groups.md). - :::note - You can also associate a group with a domain via the **Domains** area in the **Groups** tab. - ::: -9. Click the **Topologies** tab to add or remove blueprints. The **Topologies** tab lists all blueprints associated with the domain. When you add a blueprint to a domain, the blueprint's resources, Apps and services are added as well. For additional information, see [Adding resources to a domain](./addingremoving-resources-from-a-domain.md#adding-resources-to-a-domain). - - ![](/Images/Admin-Guide/User-Management/The-Domain-window_2.png) - :::note - You can also manage domain blueprints via the domain's **Diagram** page. - ::: - -## Resources page - -The **Resources** page lists all resources associated with the domain. Here you can search for and add resources to domains. For additional information, see [Searching for resources to add to a domain](./addingremoving-resources-from-a-domain.md#searching-for-resources-to-add-to-a-domain). - -![](/Images/Admin-Guide/User-Management/The-Domain-window_3.png) - -:::note -You can also add and remove resources via the **Diagram** page. -::: -Use the **Resources** page to add resources via a resource search, or for adding resources to large domains. - -## Diagram page - -The **Diagram** page displays the domain's resources and blueprints. You can use the domain diagram to add and remove resources and to manage domain blueprints. - -- Drag and drop resources from the Resource Explorer or from the search results to allocate the resources to the domain. -- Drag and drop a blueprint from the Resource Explorer to add the blueprint and its associated routes and resources to the domain. - -Resource Manager resolves blueprints that are added via the domain diagram. If any of the blueprints' connected resources are connected via an L1 switch or a patch panel, these will be added automatically to the blueprint. - -**To toggle display of the blueprint's L1 switches and patch panels:** - -1. Click **Logical** to view only the requested resources. - - ![](/Images/Admin-Guide/User-Management/The-Domain-window_4.png) - -2. Click **Physical** to also display resource connections. - - ![](/Images/Admin-Guide/User-Management/The-Domain-window_5.png) diff --git a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/cloudshell-domains/index.md b/versioned_docs/version-2023.3/admin/cloudshell-identity-management/cloudshell-domains/index.md deleted file mode 100644 index a20ca6fb19..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/cloudshell-domains/index.md +++ /dev/null @@ -1,3 +0,0 @@ -# CloudShell Domains - -The following articles explain how to manage CloudShell domains. A domain is a subnet of lab resources and blueprints that are blocked for use by specific teams. The System Administrator specifies which resources and blueprints are available to each domain. \ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/cloudshell-domains/optimized-resource-utilization-using-domains.md b/versioned_docs/version-2023.3/admin/cloudshell-identity-management/cloudshell-domains/optimized-resource-utilization-using-domains.md deleted file mode 100644 index 82150d99f2..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/cloudshell-domains/optimized-resource-utilization-using-domains.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Optimized Resource Utilization Using Domains - -A domain is a subnet of lab resources and blueprints that are blocked for use by specific teams. The System Administrator specifies which resources and blueprints are available to each domain. - -You can allocate resources to a domain via the **Resources** and **Diagram** pages in the domain's tab, or via the **Domains** tab in the resource's **Configuration** tab. - -A user's access to lab resources is dictated by the user's group memberships. The System Administrator user limits the scope of each user's access to lab resources and blueprints by adding the users to groups where the user is allowed to operate. - -Group association with a domain can be either active or view-only. When a group is added to a domain, the admin user specifies the group's level of access to that domain. - -You can associate groups with a domain via the **Groups** tab in the domain's **Properties** page or via the **Domains** tab in the **Groups** tab. - -You can view the group associations of any resource in the in the resource's **Configuration** tab's **Groups** area. - -Associating a group with a domain grants users of that group access to all of the domain's resources and blueprints. If the group is granted only view-only access to a domain, users in that group will be able to view and request available resource from that domain, but will not be able to reserve resources or sandboxes from that domain. - -In the simplest scenario, the admin adds users to groups, and associates each group with a domain. The group membership specifies the user's permissions; while the domain defines where these permissions are applicable. - -It's actually somewhat more complex, as users can be added to multiple groups, and groups can be added to multiple domains. - -The system includes a built in Global domain which contains all the entities: folders, resources and blueprints. By default, only System Administrators have access to this domain. diff --git a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/index.md b/versioned_docs/version-2023.3/admin/cloudshell-identity-management/index.md deleted file mode 100644 index 50e388e303..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/index.md +++ /dev/null @@ -1,15 +0,0 @@ -# CloudShell Identity Management - -Users can be created within CloudShell, or imported from an active directory or LDAP server. In addition, CloudShell allows integration with an SSO solution to allow your users to access CloudShell from your company's home page. - -CloudShell user permissions are determined by the role (e.g. domain admin, regular user) assigned to the user's group, while access to the system's existing blueprints, sandboxes, resources and Apps is provided through the user's domain. Groups are associated to domains, thereby providing domain access to the group's users. A user can be associated to multiple groups, each with a different role and associated to a different domain, essentially enabling the same user, for example, to log in as a regular user in "Domain A" and as a domain admin in "Domain B". - -:::note -Additional permissions like creating CloudShell blueprints and extending external user permissions require the use of configuration keys. -::: - -## Related Topics - - - [Managing Users](../../admin/cloudshell-identity-management/managing-users/index.md) - - [Managing CloudShell Permissions](../../admin/cloudshell-identity-management/managing-cloudshell-permissions/index.md) - - [Access Control and Authentication](../../admin/cloudshell-identity-management/access-control-and-authentication/index.md) \ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/managing-cloudshell-permissions/_category_.json b/versioned_docs/version-2023.3/admin/cloudshell-identity-management/managing-cloudshell-permissions/_category_.json deleted file mode 100644 index 0a981bc425..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/managing-cloudshell-permissions/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Managing CloudShell Permissions", - "position": 3 -} diff --git a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/managing-cloudshell-permissions/cloudshell-user-permission-levels-rbac.md b/versioned_docs/version-2023.3/admin/cloudshell-identity-management/managing-cloudshell-permissions/cloudshell-user-permission-levels-rbac.md deleted file mode 100644 index 3232c40958..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/managing-cloudshell-permissions/cloudshell-user-permission-levels-rbac.md +++ /dev/null @@ -1,873 +0,0 @@ ---- -sidebar_position: 1 ---- -# CloudShell User Permission Levels (RBAC) - -

This article lists the different actions each user type can perform in CloudShell. In the tables below, supported actions are indicated in green while unsupported actions are red.

- - -For more information about group roles and access levels, see [Managing CloudShell Groups](../managing-users/managing-cloudshell-groups.md). -:::note -In the tables below, "View Only access" indicates the permissible actions for users who are members of a group that is defined as **View Only** in the domain. For more information, see [Associating groups with a domain](../managing-users/managing-cloudshell-groups.md#associating-groups-with-a-domain). -::: -## Blueprints - -The following table shows which actions are available for each CloudShell user type in a blueprint. - -The permissible actions in a blueprint for users other than the blueprint owner are determined by a combination of the user type, group's role (regular, domain, external), and the group's access level (whether the group is defined as View Only in the current domain). -:::note -For brevity, the "Edit" action indicates the user type can create, edit and delete the element. -::: -\* indicates that the action is available to the blueprint owner - -\*\* indicates that the option can be hidden from non-admin users with the `BlockPackageExportForNonAdmins` key - -\*\*\* If the `` key is defined on the server , users can only create blueprints from a template but not from scratch (empty blueprints). However, if there are no templates assigned to the domain, users of that domain cannot create new blueprints. For details, see [The + Create Blueprint Link is Missing From the Blueprint Catalog](../../../troubleshooting/cloudshell-portal/the-create-blueprint-link-is-missing-from-the-blueprint-catalog.md). - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ActionSystem Administrator userDomain administrator userRegular userView-only accessExternalExtended external
**View the list of blueprints**vvvvvv
**View the blueprint diagram**vvvvvv
**Create blueprints**v ***v ***v ***v ***xx
**Edit blueprints**vvx *x *xx
**Reserve blueprints**vvvxxv
**Export blueprint packages**vvv **v **xx
- -## Sandboxes - -The permissible actions in a sandbox are determined by a combination of the user type, group's role (regular, domain, external), and the group's access level (whether the group is defined as View Only in the current domain), and the current sandbox status. - -### Permissible actions according to user type - -The following table shows which actions are available for each CloudShell user type in a sandbox (applies to sandbox consumers that are neither Owner nor Permitted User in the sandbox). Note that sandboxes of other users in the domain can be hidden from regular users using the `ShowOtherUserInDomainReservations` key. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ActionSystem Administrator userDomain administrator userRegular userView-only accessExternal user
View the list of sandboxesvvvvx
View the sandbox diagramvvxxx
Edit the sandbox (form)vvxxx
Extend the sandboxvvxxx
End the sandboxvvxxx
Delete the sandboxvvxxx
Terminate the sandboxvvxxx
Execute commandsvvxxx
Interact with the sandbox during setupvvxxx
Launch applicationsvvxxx
Save sandbox as blueprintvvxxx
Save the sandboxvvxxx
- -### Permissible actions for Owner/Permitted User - -The following table shows which actions are available for the sandbox's owner or permitted users (users that were added by the sandbox owner to the sandbox as **Permitted Users**). - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Sandbox actionsOwnerPermitted - regularPermitted - view onlyPermitted - externalPermitted - extended external
View the list of sandboxesvvvvv
View the sandbox diagramvvvvv
Edit the sandbox (form)vvxxv
Extend the sandboxvvxxv
End the sandboxvvxxv
Delete the sandboxvxxxx
Terminate the sandboxvxxxx
Execute commandsvvxvv
Interact with the sandbox during setupvvxxv
Launch applicationsvvxvv
Save sandbox as blueprintvvxxx
Save the sandboxvvxxv
- -### Permissible actions according to sandbox status - -The following table shows the available actions in a sandbox for each sandbox status. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ActionPendingSetupActiveTeardownCompletedOvertimeSaving
View the list of sandboxesvvvvvvv
View the sandbox diagramvvvvvvv
Edit the sandbox (form)vvvxxvv
Extend the sandboxvvvxxvv
End the sandboxxvvxxvv
Delete the sandboxvxxxvxx
Terminate the sandboxxxxvxvx
Execute commandsxxvxxvx
Interact with the sandbox during setupxvvxxxx
Launch applicationsxxvvxvx
Save the sandboxxxvxxxx
- -## Saved Sandboxes - -The following table shows which actions are available for each CloudShell user type in a saved sandbox. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ActionSystem adminDomain adminRegular userView-only accessExternal userExtended external user
Restore a saved sandboxvvvxxv
Delete a saved sandboxvvvxxv
View my saved sandboxesvvvxxv
View list of all saved sandboxesvvxxxx
- -## Job Scheduling dashboard - -The following table shows which actions are available for each CloudShell user type in the **Job Scheduling** dashboard. Note that admins can allow regular users to edit and create suite templates using the `AllowRegularUsersToEditSnQ` key. -:::note -For brevity, the "Edit" action indicates the user type can create, edit and delete the element. -::: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ActionSystem Administrator userDomain administrator userRegular userView-only accessExternal/extended user
Edit suite templatevvxxx
Customize suite templatevvvxx
View execution reportsvvvxx
Run suite template executionvvvxx
Extend suite template executionvvvxx
Stop suite template executionvvvxx
AdHoc suitevvvxx
- -## Inventory dashboard - -The following table shows which actions are available for each CloudShell user type in the Inventory dashboard. -:::note -For brevity, the "Edit" action indicates the user type can create, edit and delete the element. -::: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ActionSystem Administrator userDomain administrator userRegular userView-only accessExternal/extended user
View resourcesvvvvx
Edit resourcesvvxxx
Reserve resourcesvvvxx
Search within resourcesvvvvx
View abstract resource templatesvvvvx
Edit abstract resource templatesvvxxx
View servicesvvvvx
- -## Insight dashboard - -If Sisense is configured to work with SSO from CloudShell, the first time a CloudShell user (any user role) logs in to **Insight**, a user is created in Sisense with **Viewer** permissions (CloudShell user must have an email). For designer or admin privileges, customize the user’s role in Sisense or contact [Quali Support](https://support.quali.com/). - -For information about Sisense user permissions, see [Sisense Documentation](https://documentation.sisense.com/). - -## Manage dashboard - -The following table shows which actions are available for each CloudShell user type in the **Manage** dashboard. This only applies to system administrators and domain administrators as other user types cannot access this dashboard. Note that system admins can allow domain admins to manage drivers using the `HideDriversTabInManage` key. -:::note -For brevity, the "Edit" action indicates the user type can both view and edit the element. -::: -\*\* indicates that the user type can only access the element in their own domain. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ActionSystem Administrator userDomain administrator userRegular userView-only accessExternal/extended user
Edit Appsvv **xxx
Edit Categoriesvxxxx
Edit Shells (See [Shells](../../../admin/cloudshell-identity-management/managing-cloudshell-permissions/cloudshell-user-permission-levels-rbac.md#shells) below)vxxxx
View Licensingvxxxx
Edit Domainsvv **xxx
Edit Execution Serversvxxxx
Edit JavaScript Extensionvxxxx
Edit Blueprint Templatesvvxxx
Edit Scriptsvv **xxx
Edit Driversvv **xxx
- -## Shells - -The following tables show which Shell management actions are available for each CloudShell user type. - -### 1st Gen Shells - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ActionSystem Administrator userDomain administrator userRegular userView-only accessExternal/extended user
Importvvvvx
Modify (Resource Manager Client)vvxxx
- -### 2nd Gen Shells - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ActionSystem Administrator userDomain administrator userRegular userView-only accessExternal/extended user
Importvxxxx
Add custom attributesvxxxx
Upgradevxxxx
Download from CloudShellvxxxx
Deletevxxxx
diff --git a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/managing-cloudshell-permissions/folder-permissions-for-shared-studio-tests.md b/versioned_docs/version-2023.3/admin/cloudshell-identity-management/managing-cloudshell-permissions/folder-permissions-for-shared-studio-tests.md deleted file mode 100644 index bda5ddd1fb..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/managing-cloudshell-permissions/folder-permissions-for-shared-studio-tests.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Folder Permissions for Shared Studio Tests - -Admin users can set permissions for Shared tests. - -By default: - -- Folder permissions are inherited from the root Shared folder. -- The admin user can configure specific permissions per user or group for any folder or test in the Shared repository -- Any user can open tests from any Shared folder or sub-folder. -- Any user can add new folders and tests to the Shared repository. -- Only the admin owner or owner can rename, modify or delete folders or folder contents. Admin users cannot remove owner permissions on Shared tests. For additional information, see Creating folders. - -**To set permissions for a shared tests folder:** - -- Right-click the folder and choose **Properties** from the context menu. - -![](/Images/Admin-Guide/User-Management/Folder-permissions.png) - -**To set permissions for a specific user or group:** - -1. Open permissions for a folder or test in the **Shared** repository. -2. Clear the Inherit **Permissions From Parent** checkbox. -3. Click the toolbar's **New** icon choose a user or group from the list. -4. Select or unselect the checkbox next to each permission that you wish to change and click **OK** to apply the new settings. - ![](/Images/Admin-Guide/User-Management/Folder-permissions_1_230x345.png) - -**Note that unlike Local tests, tests that are deleted from the Shared repository cannot be restored.** diff --git a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/managing-cloudshell-permissions/index.md b/versioned_docs/version-2023.3/admin/cloudshell-identity-management/managing-cloudshell-permissions/index.md deleted file mode 100644 index 9e713ec3d1..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/managing-cloudshell-permissions/index.md +++ /dev/null @@ -1,7 +0,0 @@ -# Managing CloudShell Permissions - -The System Administrator specifies which resources and blueprints are available to each domain. - -Permissible actions in a blueprint for users other than the blueprint owner are determined by a combination of the user type, group membership, and the group's access level in the current domain. - -Permissible actions in a sandbox are determined by a combination of the user type, group membership, the group's access level in the current domain, and the current sandbox status. \ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/managing-users/_category_.json b/versioned_docs/version-2023.3/admin/cloudshell-identity-management/managing-users/_category_.json deleted file mode 100644 index ec78b48bc5..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/managing-users/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Managing Users", - "position": 1 -} diff --git a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/managing-users/cloudshell-users-and-groups-overview.md b/versioned_docs/version-2023.3/admin/cloudshell-identity-management/managing-users/cloudshell-users-and-groups-overview.md deleted file mode 100644 index 3d19d14332..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/managing-users/cloudshell-users-and-groups-overview.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -sidebar_position: 1 ---- - -# CloudShell Users and Groups Overview - -User permissions in CloudShell are based on the user's group memberships. The System Administrator grants user permissions by adding users to groups. - -Each group in the system is assigned with a group role. The group role defines the permissions for all the users added to the group. - -The available group roles are: - -- System admins -- Domain admins -- Regular users – default role for new group. -- External users - -The group with System admins role is created by the system, the group role can not be changed. only one group can hold the System admins role. the group contains the admin user. - -Any user can be added or removed from the group, with the exception of the admin user. The admin user is added by default and cannot be removed from the group. - -All group roles, except for the system administrator, can be changed at any time. - -**To allow a user to perform admin operations:** - -- Specify the user as a system administrator when creating the user, or use the **Groups** tab to add the user to the System Administrators group. - -**To prevent users from performing admin operations:** - -- Create one or more groups, assign a role other than admins to these groups and add CloudShell users to these groups. - :::note - User and group settings are common to all CloudShell applications. - ::: - -**Adding CloudShell users** - -There are various ways to create CloudShell users: - -1. Add users manually -2. Import users from the Active directory, a CSV file, or a list -3. Build a driver to import users from a CSV file and automatically add them to groups -4. Using TestShell API diff --git a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/managing-users/index.md b/versioned_docs/version-2023.3/admin/cloudshell-identity-management/managing-users/index.md deleted file mode 100644 index c59bb48a58..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/managing-users/index.md +++ /dev/null @@ -1,13 +0,0 @@ -# Managing Users - -User permissions in CloudShell are based on the user's group memberships. The System Administrator grants user permissions by adding users to groups. System administrators can be defined by other system administrators when creating a user profile, as explained in [Managing CloudShell Users](../../../admin/cloudshell-identity-management/managing-users/managing-cloudshell-users.md). - -Each group in the system is assigned with a group role. The group role defines the permissions for all the users added to the group. - -The available group roles are: - -- Domain admins -- Regular users – default role for new group. -- External users - -For details about each role, see [Managing CloudShell Groups](../../../admin/cloudshell-identity-management/managing-users/managing-cloudshell-groups.md). \ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/managing-users/managing-cloudshell-groups.md b/versioned_docs/version-2023.3/admin/cloudshell-identity-management/managing-users/managing-cloudshell-groups.md deleted file mode 100644 index 56e880b24d..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/managing-users/managing-cloudshell-groups.md +++ /dev/null @@ -1,117 +0,0 @@ ---- -sidebar_position: 4 ---- - -# Managing CloudShell Groups - -## Adding groups - -There are various ways to define CloudShell groups: - -- Create groups manually by adding new groups via the **Groups** tab. -- Build a driver to import groups from a file and automatically specify the domain access for each group. -- Use TestShell APIs. - -**To add a new group manually:** - -1. Click the **Admin** tab's **Groups** icon. - - ![](/Images/Admin-Guide/User-Management/GroupsButton.png) - -2. In the **Groups** tab, click the **New** button in the **Groups** list pane toolbar. - - ![](/Images/Admin-Guide/User-Management/GroupsTabUsersTabAddButton.png) - -3. In the **New Group** window, enter the name and description, and select a role for the new group. - - - **Domain admins** can access all domain assets, create inventory resources and apps, and perform administrative tasks in the domain via CloudShell Portal's **Manage** dashboard. - - **Regular users** are the default role for new groups. Regular users can access and use public blueprints in their domain and become owners of blueprints, which allows them to modify the blueprint’s properties and elements. - - **External users** are very limited users that can view blueprints but not use them. They can view and export public blueprint diagrams but cannot create or modify blueprints and sandboxes. Using the `ExternalUserHasExtendedPermissions` configuration key, external user permissions can be extended to allow them to see blueprint resource structures and commands and reserve blueprints. - :::note - System administrators are defined per user in the user's profile. For additional information, see [Managing CloudShell Users](../../../admin/cloudshell-identity-management/managing-users/managing-cloudshell-users.md). - ::: - - ![](/Images/Admin-Guide/User-Management/NewGroupWindow1.png) - :::note - To edit an existing group's details, in the Groups tab, double click the desired group - ::: -4. Click **OK** to add the new group. - -## Adding users to groups - -The System Administrator grants user permissions by adding users to groups. - -Users can be added to several groups. - -**To add users to a group:** - -1. Select the target group from the list in left pane. -2. Select the **Users** tab. - - ![](/Images/Admin-Guide/User-Management/GroupsTabGroupListNamesPane.png) - -3. Click the **Add** button to open the **Users Selection** window. - - ![](/Images/Admin-Guide/User-Management/UsersSelectionWindow1.png) - -4. Select users from the list and click **OK** to add them to the group. - - Multi-selection is supported. - - Use the Search field to search for specific users. - - -## Removing users from a group - -**To remove a user from the group:** - -- Select the user in **Users** list and click the **Remove** button. - - ![](/Images/Admin-Guide/User-Management/GroupsTabUsersTabRemoveButt.png) - - -## Associating groups with a domain - -Associating a group with a specific domain provides users of that group with access to all resources and blueprints associated with that domain. - -Groups can be added to multiple domains: - -- Group access to a domain can be either active or view only. -- Group access to a domain is specific to that domain. -- Group access to a domain can be configured via the group's **Domains** tab or via the domain's **Groups** tab. - -Here are some options for setting up view only domains: - -- Assign a group to an active domain where users can reserve resources and perform resource operations. Add the group to all the other domains - or to the Global domain - on a view-only basis. -- Allocate groups to domains to support current work-flow processes. Limit user access to lab equipment by selectively add groups to domains on a view-only basis. -- Associate all groups with the global domain, allowing all users full access to the entire lab. -:::note -A user can be a member of multiple groups and thus have multiple roles and permissions. If a user has more than one role in a domain, the user’s permissions in the domain are determined according to the most privileged role. -::: -**To associate groups with a domain:** - -1. Click the **Admin** tab's **Domains** icon to open the **Domains Explorer** window. - - ![](/Images/Admin-Guide/User-Management/DomainsButton.png) - - -2. In the **Domains Explorer**, double-click a domain or right-click a domain and choose **Open** from the context menu to open the domain's tab. -3. Click the **Groups** tab. -4. Click the **Add** button to select the groups. -5. In the **Groups Selection** window, select the groups that you wish to associate with the domain. -6. Specify the permissions level for each selected group. Check the **View Only** checkbox if you wish to grant view-only access to that group. -7. Click **OK** to add the selected groups. - -## Removing groups from a domain - -**To remove groups from the domain**: - -1. Click the **Admin** tab's **Domains** icon to open the **Domains Explorer** window. - - ![](/Images/Admin-Guide/User-Management/DomainsButton.png) - - -2. In the **Domains Explorer**, double-click a domain or right-click a domain and choose **Open** from the context menu to open the domain's tab. -3. Open the **Properties** page from the **Page** drop down. -4. Click the **Groups** tab. -5. Select the groups that you wish to remove and click the **Delete** button. diff --git a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/managing-users/managing-cloudshell-users.md b/versioned_docs/version-2023.3/admin/cloudshell-identity-management/managing-users/managing-cloudshell-users.md deleted file mode 100644 index 089024ef54..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/managing-users/managing-cloudshell-users.md +++ /dev/null @@ -1,151 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Managing CloudShell Users - -The following user management options are performed in the **Users** tab in the Resource Manager. To access the **Users** tab, in the **Admin** ribbon, click the **Users** button. - -## Adding new users manually - -**To add a new user manually:** - -1. Log in to **Resource Manager Client** as administrator. -2. In the **Admin** ribbon, click **Users**. -3. Click **New**. The **New User** dialog box is displayed. -4. Fill in the settings: - - - **Username** - - **Password** - - **Email**: user's email that will receive email notifications and messages from other users regarding sandboxes. - - :::note Notes - - The user can change their email in CloudShell Portal. - - To enable email notifications, [SMTP mail configuration](../../../install-configure/cloudshell-suite/configure-products/admin-config-settings.md#smtp-mail-configuration) is required. - ::: - - **Administrator**: Select to grant the user System Administrator permissions. - - System administrators are the most privileged users in CloudShell. They can access and modify all assets in their domain(s), including private blueprints, create inventory resources and Apps, perform administrative tasks in CloudShell, like managing users, groups and domains, modifying resource families and models, creating and configuring resources in **Resource Manager Client**, and viewing CloudShell activity logs and utilization reports. Other, less privileged user types are defined by their group's role - see [Managing CloudShell Groups](./managing-cloudshell-groups.md). - - - **Active**: Clear to add the user as an inactive user. This will prevent the user from accessing and using CloudShell but keep the user profile in the system. - - **Reservation Duration limit**: Select the maximum allowed sandbox duration for the user. The default is 1 day, which can be changed using the `DefaultUserMaxReservationDuration` configuration key. - - **Max Concurrent Reservations**: Set the maximum number of sandboxes the user can own at any time. - - The default is 10 scheduled sandboxes for new users, which can be changed using the `DefaultUserMaxConcurrentReservations` configuration key. - - - **Max Scheduled Sandboxes**: Set the maximum number of scheduled (planned/future) sandboxes the user can have at any time. - - By default, new users are allowed to have up to 10 scheduled sandboxes while users migrated from a pre-9.3 Patch 2 CloudShell version (via upgrade) have an empty value (unlimited). Value "0" means the user can only start immediate reservations (no scheduled). Admins can change the default using the `DefaultUserMaxScheduledSandboxes` configuration key. - - - **Max Owned Blueprints**: (Applies to admins, domain admins and regular users only) Set the maximum of blueprints the user can own at any given time. Unlimited by default. - - **Max Saved Sandboxes**: (Applies to customers using the **Save and Restore** add-on) Set the maximum number of saved sandboxes the user can have at any time. - - This overrides the default, which is unlimited, and can be changed using the `DefaultUserMaxSavedSandboxes` configuration key. - -5. Click **OK**. - -## Importing users into CloudShell from an active directory - -The following procedures explain how to import users from your active directory into CloudShell. To enable user import, the `ActiveDirectory.Domain` configuration key needs to be set - see [Configuring CloudShell to import user definitions from an active directory](../../setting-up-cloudshell/cloudshell-configuration-options/advanced-cloudshell-customizations.md#configuring-cloudshell-to-import-user-definitions-from-an-active-directory). - -Once imported and associated to the relevant CloudShell groups and domains, imported users log into CloudShell using their active directory username and password, and the desired CloudShell domain. In addition, the password of an imported user can only be changed from the active directory itself. - -In **Resource Manager Client**, in the **Users** tab, imported users have the **Imported** check box selected (illustrated for user "Mika-y" in the image below). - -![](/Images/Admin-Guide/User-Management/UsersTabCheckboxes.png) - -### Importing users from an active directory group - -**To import users from a specific active directory group**: - -1. Log in to **Resource Manager Client** as administrator. -2. In the **Admin** ribbon, click **Users**. -3. Click the **Import Users** button. -4. In the **Import Users** dialog box, select the **Group** option. - - ![](/Images/Admin-Guide/User-Management/ImportUsersFromGroup_491x468.png) - -5. Click **Refresh** to get a full list of groups that exist in the current domain. -6. Select the required group from the **Group** drop down list or leave **All Groups** to get all users in the active directory. -7. Click **Run Query** to get the list of users. -8. Select the users to import. Press the **\[CTRL\]+\[A\]** keys to select all users in the list or press the **\[CTRL\]** key to select specific users. - - :::note Active Directory users are added as follows: - - AD First Name field maps to the CloudShell Username (in user list and auto-import dialog) - - AD Display Name field maps to the CloudShell Display Name (in auto-import dialog) - - AD Pre-win2000 field (SamAccountName) maps to Cloudshell Username. - ![](/Images/Admin-Guide/User-Management/SamAccountName.png) - ::: - -9. Click **OK**. - -### Importing active directory users from a file - -You can also import users from an external text file. The file must contain a list of valid email addresses in the active directory, separated with a comma or semicolon. - -**To import users from a file**: - -1. Log in to **Resource Manager Client** as administrator. -2. In the **Admin** ribbon, click **Users**. -3. Click the **Import Users** button. -4. In the **Import Users** dialog box, select the **Import from file** option. - - ![](/Images/Admin-Guide/User-Management/ImportUsersFromFile.png) - -5. Click **Browse** and select the txt file. The email addresses must be comma or semicolon-separated. For example: `jane.d@company.com,john.j@company.com,steve.b@company.com,deb.h@company.com` - - The file contents are displayed in the text box. - -6. Click the **Run Query** button to get the list of users from the loaded file. - - The users are listed in the dialog box. Nonexistent users in the file are not listed. - -7. Select the users to import: Press the **\[CTRL\]+\[A\]** keys to select all users in the list or press the **\[CTRL\]** key to select specific users. -8. Click **OK**. - - The users are added to the **Users Management** list from the current domain. - - -### Enabling CloudShell to automatically import Active Directory users when they first log in - -For additional information, see [Configuring CloudShell to automatically import users from an external system at login](../../setting-up-cloudshell/cloudshell-configuration-options/advanced-cloudshell-customizations.md#configuring-cloudshell-to-automatically-import-users-from-an-external-system-at-login). - -## Updating user settings - -This section explains how to edit a user's settings. The user's name cannot be edited. To edit a user's password, see [Changing a user's password](../../../admin/cloudshell-identity-management/managing-users/managing-cloudshell-users.md#changing-a-users-password). - -**To edit a user's settings:** - -1. Log in to **Resource Manager Client** as administrator. -2. In the **Admin** ribbon, click **Users**. -3. Select a user from the list and click **Edit**. -4. If this user was imported from an Active Directory of a Windows Domain, the **Imported** check box is selected and the **Email** field is disabled. -5. The **Edit User** window also displays all of the user's group memberships. -6. Perform the required changes and click **OK**. - -## Changing a user's password - -Imported user passwords are managed from the active directory itself. - -**To change a user's password**: - -1. Log in to **Resource Manager Client** as administrator. -2. In the **Admin** ribbon, click **Users**. -3. Select a user from the list and click **Change Password** . -4. Enter the new password in the **Password** and **Confirm** fields. -5. Click **OK**. - -## Deleting users - -Before deleting a user, you must either deactivate the user (by unselecting the **Active** check box in the user's profile) or delete all sandboxes (current, historic, future) that are associated with this user. -:::note -To see a user's associated sandboxes, open the Sandboxes dashboard in CloudShell Portal, preferably in the Global domain, select the correct time range and then filter the sandboxes by entering the username in the Search sandboxes field. -::: -:::important -Deleting the sandboxes affects BI data (such as resource utilization and blueprint consumption), while deactivating the user keeps the BI data consistent. -::: -**To delete an existing user:** - -1. Log in to **Resource Manager Client** as administrator. -2. In the **Admin** ribbon, click **Users**. -3. Select the user that you wish to remove from the list and click **Delete**. To select multiple users, press the **\[CTRL\]** key and select the users. diff --git a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/managing-users/updating-user-settings.md b/versioned_docs/version-2023.3/admin/cloudshell-identity-management/managing-users/updating-user-settings.md deleted file mode 100644 index 97904db8e3..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-identity-management/managing-users/updating-user-settings.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -sidebar_position: 3 ---- - -# Updating User Settings - -You can modify the user's email and change the user's status in **Resource Manager Client**, and, if enabled, from **CloudShell Portal**. This procedure explains how to do so in Resource Manager Client. For information about modifying user settings in CloudShell Portal, see [Logging into CloudShell](../../../portal/overview/logging-in.md). - -**To edit an existing user:** - -1. In **Resource Manager Client**, click the **Admin** tab's **Users** icon. -2. In the **Users** tab, select the user from the list and click the **Edit** button. -If this user was imported from an Active Directory of a Windows Domain, the Imported checkbox will be selected and the Email field will be disabled. -The **Edit User** window also displays all of the user's group memberships. -3. Perform the required changes and click **OK** to apply. - -**To change a user's password:** - -1. Select the user in the list and click the **Change Password** button. - - ![](/Images/Admin-Guide/User-Management/UsersTabChangePassButt.png) - -2. Enter the new password. -3. Populate the **Confirm** field with same string as **Password** field - otherwise the **OK** button stays disabled. -4. Click **OK** to confirm. diff --git a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/_category_.json b/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/_category_.json deleted file mode 100644 index 85bb48b45d..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/_category_.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "label": "CloudShell Manage Dashboard", - "position": 4, - "link": { - "slug": "admin/cloudshell-manage-dashboard", - "type": "generated-index", - "description": "The following CloudShell administration operations are available from CloudShell Portal's Manage dashboard." - } -} diff --git a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/blueprint-templates.md b/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/blueprint-templates.md deleted file mode 100644 index 2e302aa162..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/blueprint-templates.md +++ /dev/null @@ -1,148 +0,0 @@ ---- -sidebar_position: 8 ---- - -# Blueprint Templates - -## About blueprint templates - -Blueprint templates enable your organization to define a uniform standard for new blueprints. A blueprint template consists of a predefined set of elements (resources, connections, inputs, properties etc.). Users can repeatedly create new blueprints based on existing templates, in a quick and easy way, effortlessly maintaining the organization’s standard. - -Blueprint templates can be viewed and created by system and domain administrators. Domain administrators can view and create templates for their permitted domains only. - -CloudShell includes a default out-of-the-box blueprint template, **CloudShell Sandbox Template**, on which all new blueprints are based. You can create additional blueprint templates, according to your needs. For more information, see [Creating a new blueprint template](../../admin/cloudshell-manage-dashboard/blueprint-templates.md#creating-a-new-blueprint-template). - -You can enable users to create empty blueprints that are not based on a template and do not include orchestration scripts. For more information, see [Allowing users to create new empty blueprints](../../admin/cloudshell-manage-dashboard/blueprint-templates.md#allowing-users-to-create-new-empty-blueprints). - -## CloudShell Sandbox Template - -The **CloudShell Sandbox Template** is provided out-of-the-box by CloudShell and is configured to run CloudShell's **Default Sandbox Setup**, **Default Sandbox Teardown**, **Default Sandbox Restore**, and **Default Sandbox Save** scripts during the sandbox lifecycle. **Save and Restore** is a paid add-on that requires a license. - -The CloudShell Sandbox Template performs the following important operations as part of the sandbox lifecycle: - -- Deploy and tear down Apps and their VMs from the cloud provider -- Enable the use of Apps based on public clouds (like AWS EC2 and Azure) by running connectivity procedures that set up the cloud network and subnet for the sandbox -- Connect and disconnect virtual network and physical connectivity routes (L1 and L2 ) between resources and/or Apps -- Enable the save and restore functionality, which is part of the **Save and Restore** paid add-on -:::note -Starting with CloudShell 2022.1, the out-of-the-box **CloudShell Sandbox Template** includes orchestration scripts that support the deployment of Apps with multiple configuration management scripts/playbooks. If you're upgrading from an older CloudShell version, your existing blueprints will continue using the old orchestration scripts while new blueprints will be created with the new template and therefore will have the new script versions. -::: -## Managing blueprint templates - -### Creating a new blueprint template - -**To create a blueprint template**: - -1. Open the **Manage** dashboard. -2. In the page navigation bar, click **Blueprint Templates**. -3. In the toolbar, click the **\+ Add New** button.  - The **Add New Template** dialog box is displayed. -4. Enter the required information in the new blueprint template.  - :::note - To expose the template to all domains, select the **Global** domain. - ::: -5. Click **Save**.  - The new blueprint template is displayed in the **Templates** list. -6. Use the **Diagram** and **Blueprint** links to set up the template's canvas and properties, same as with a regular blueprint. - -### Associating a blueprint template with a domain - -Users can only see and use blueprint templates that are either global or are associated with their domain. - -**To associate a blueprint with a domain:** - -1. Click the **Manage** dashboard. -2. In the page navigation bar, click **Blueprint Templates**. -3. Click the template's name. - - The **Edit Template** dialog box is displayed. - -4. In the **Domains** drop-down list, select the required domain and click **Save**. - -### Editing a blueprint template -:::important -The **CloudShell Sandbox Template** is provided by default and is updated by CloudShell from time to time. DO NOT edit this template. -::: -**To edit a blueprint template's general settings:** - -1. Click the **Manage** dashboard. -2. In the page navigation bar, click **Blueprint Templates**. -3. Click the name of the blueprint template. Alternatively, click the blueprint template's More Actions button ![](/Images/CloudShell-Portal/Manage/ExecutionServersServersMenuButton.png) and select **Edit**. - - The **Edit Template** dialog box is displayed. - -4. Edit the settings as appropriate. -5. Click **Save**. - -**To update the elements of the blueprint template:** - -1. Click the **Manage** dashboard. -2. In the page navigation bar, click **Blueprint Templates**. -3. In the relevant template row, click the **Diagram** link. - - The diagram of the blueprint template is displayed. - -4. Update the blueprint template. - - The changes you perform are saved automatically. - - -**To update the properties of the blueprint template:** - -1. Click the **Manage** dashboard. -2. In the page navigation bar, click **Blueprint Templates**. -3. In the relevant template row, click the **Properties** link. - - The **Properties** page of the blueprint template is displayed. - -4. Update the properties and click **Save**. - -All non-administrator users can now create blueprints from the templates(s) you created. For step-by-step instructions on how to create a blueprint from a template, see the help topic: [Creating a blueprint from a template](../../portal/blueprints/creating-blueprints/create-blueprint.md#creating-a-blueprint-from-a-template). -:::note -The owner of the blueprint template is the administrator who created the template. -::: -### Saving an existing blueprint as a blueprint template - -**To create a template from an existing blueprint**: - -1. In the **Blueprints Catalog**, open the blueprint. -2. Click the **Blueprint** menu. -3. Select **Save as a Template**.  - - A new blueprint template is created and the diagram of the template opens for editing. - -4. Rename the template. -5. Update the blueprint template’s components as required. Update the blueprint template’s components as required. - -Changes you perform on the diagram of the template are saved automatically.  -For administrators, the blueprint template is listed in the **Manage** dashboard in the **Blueprint Templates** page.  -For users, the blueprint template is now available for creating a new blueprint based on the new template. - -All non-administrator users can now create blueprints from the templates(s) you created. For step-by-step instructions on how to create a blueprint from a template, see the help topic: [Creating a blueprint from a template](../../portal/blueprints/creating-blueprints/create-blueprint.md#creating-a-blueprint-from-a-template). -:::note -The owner of the blueprint template is the administrator who created the template. -::: -### Allowing users to create new empty blueprints - -By default, when creating a new blueprint, it will be based on the CloudShell Sandbox Template. If multiple templates were defined, users must select a template on which to base the blueprint. However, the Admin can enable users to create blueprints that are not based on a template. For more information, see [Enabling the creation of empty blueprints](../../admin/setting-up-cloudshell/cloudshell-configuration-options/advanced-cloudshell-customizations.md#enabling-the-creation-of-empty-blueprints) -:::note -Changes to the configuration file affect the entire system. -::: -### Filtering the display of the blueprint templates list - -**To filter the display of the blueprint templates list by domain:** - -- In the toolbar, click the **Domain** drop-down list and select the required domain. - -### Deleting blueprint templates - -This section explains how to delete blueprint templates from CloudShell. -:::note -It is not possible to delete the **CloudShell Sandbox Template** that comes out of the box with CloudShell. If you no longer need it, edit the template and disassociate it from any domains. -::: -**To delete blueprint templates:** - -1. Open the **Manage** dashboard. -2. In the page navigation bar, click **Blueprint Templates**. -3. Select the check box next to the template(s) to delete. -4. In the toolbar, click ![](/Images/CloudShell-Portal/Manage/Management_3.png) diff --git a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/javascript-extensions.md b/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/javascript-extensions.md deleted file mode 100644 index 76fad52754..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/javascript-extensions.md +++ /dev/null @@ -1,136 +0,0 @@ ---- -sidebar_position: 9 ---- - -# JavaScript Extensions - -JavaScript Extensions allow administrators to write custom client-side code in JavaScript that can execute any logic as a part of the suite creation, update, removal, and so on. These scripts can give additional functionality to the user input parameters defined in the tests or for a blueprint resource, for example you can use [Using JavaScript Extensibility to configure dependencies between test parameters](../../admin/cloudshell-manage-dashboard/javascript-extensions.md#using-javascript-extensibility-to-configure-dependencies-between-test-parameters). - -You can use the JavaScript Extensions to control the different sets of user input parameters in a Blueprint or Test (modules) by adding JavaScript code in the **Manage** dashboard, in the **Custom JavaScript Modules** extensions page. Modifying the code for the JavaScript extension modules triggers an event when the user performs a particular action in the **Create Suite Template/Edit Suite Template/Run Suite** page. The code can either validate the user inputs, or make changes to them. - -For example: - - - - - - - - - - - - - - - - - - - - - - - - -
- When you modify the code in the following module - - Changes will be made to the inputs when the user performs the following tasks -
- Blueprint input – all parameters - -
    -
  • - Creates a new suite (Create Suite Template) page (in the Job Scheduling dashboard) with blueprint inputs published in the blueprint -
  • -
  • - Edits a suite in the Edit Suite Template page with blueprint inputs published in blueprint -
  • -
  • - Opens the Run Suite page - All Inputs tab with blueprint inputs published in the blueprint -
  • -
  • - Opens the Run Custom page (by clicking the Customize button in the Run Suite page) with blueprint inputs published in the blueprint -
  • -
  • - Reserves a blueprint -
  • -
-
- Blueprint input - published parameters - -
    -
  • - Opens the Run Suite page with blueprint inputs published in the blueprint and in the suite. -
  • -
-
- Test input - all parameters - -
    -
  • - Creates a new suite (Create Suite Template) page -
  • -
  • - Edits a suite in the Edit Suite Template page -
  • -
  • - Opens the Run Suite page – All Inputs tab -
  • -
  • - Opens the Run Custom page (by clicking the Customize button in the Run Suite page) -
  • -
-
- Test input - published parameters - -
    -
  • - Opens the Run Suite page -
  • -
  • - Opens the Run Suite page – Customize tab -
  • -
-
- - -## Using JavaScript Extensibility to configure dependencies between test parameters - -As an administrator can configure the possible parameters displayed to the user in a test, and define dependencies between the variable fields. For example, in the code samples presented in the **Custom JavaScript Modules extensions** page, in the **Test input - all parameters** module, the possible values for the **log\_level** parameter field are only available after selecting the values in the **test\_type** parameter field. Since the script defines a set of possible log level values for each test type, the code updates the **log\_level** field's possible values according to the selected value for the **test\_type**. - -**To configure possible values for a test parameter:** - -1. Create a test with a **test\_type** string input. -2. Create a suite template with a single job and add the test to the job. - - The **test\_type** parameter displays in the suite. - -4. In your script, for this parameter, add the following code, which assigns possible values to the variables: - - ```javascript - data.getParameterByName(t, 'test_type').possibleValues = ["-select-","type 1","type 2"]; - ``` - - -**To configure dependencies between test parameters:** - -1. In the **Custom JavaScript Modules extensions** page, from the **Select module** dropdown list, select **Test input – all parameters**. -2. In the **Test input – all parameters** module, enter a code based on the following example. Make sure to include the required parameters: - - ```python - if (test_type.value == 'type 1') - log_level.possibleValues = ["-select-", "1A", "1B", "1C", "1D"]; - - else if (test_type.value == 'type 2') - log_level.possibleValues = ["-select-", "2A", "2B"]; - ``` - - -You can find a complete sample of the code in the code sample panes at the bottom of the **JavaScript Extension** module pages. - -## Related Topics - -- Creating Tests -- [Adding Automation Suites](../../portal/job-scheduling/manage-automation-suites/add-suites.md) diff --git a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/licensing.md b/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/licensing.md deleted file mode 100644 index 5370e977d6..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/licensing.md +++ /dev/null @@ -1,166 +0,0 @@ ---- -sidebar_position: 5 ---- - -# Licensing - -CloudShell's licensing mechanism is based on the amount of concurrent sandboxes. For better management of the licenses, the system administrator can create license pools – the total capacity is equal to the amount of purchased sandboxes. Licenses in CloudShell are managed in **Licensing** page, which is available to Admins only. - -## License types - -Licenses are required for each of the following: - -| License name | Description | Type | -| --- | --- | --- | -| CloudShell Team / Premium Tier | Quali server.
CloudShell Premium Tier supports High Availability, SSO, sandbox environment automation and enhanced orchestration. | 1 per Quali Server | -| Concurrent Environment for Team / Premium Tier | Concurrent Sandboxes | 1 per active sandbox | -| Concurrent Authoring | TestShell Studio, CloudShell Authoring | 1 per open application | -| Concurrent Execution | TestShell Runner, Execution Server (Running TestShell Tests) | 1 per open application | -| Remote Agent | TestShell Remote Runner | 1 per open application | -| Staging Environment | Additional permanent Quali Server for dev/staging activities (doesn’t include Concurrent Environment licenses). More than one may be purchased. | 1 per Quali Server | -| CloudShell Runtime | Required by all Quali Product components, and included out-of-the-box with every license package | | - -| Licensed features | Description | -|---|---| -| Save and Restore | Save and Restore plugin | -| Job Scheduling | Job Scheduling. This holds true for both the original Job Scheduling used for TestShell Studio test suites and the New Job Scheduling that works with Robot tests. | - -**Each license can be one of the following types:** - -- **Floating**: Configured in the License Server, which is accessible to each product component. This license types requires an ongoing connection to the License Server. Disconnection will result in a temporary loss of the license, until the connection is resumed. -- **Seat**: Configured separately on each machine. -- **Commuter**: (Applies to the Studio, Runner and Authoring applications) Configured to temporarily use a floating license as a seat license on a single machine. This license allows you to continue working with the application in cases you have no access to the License Server (e.g. when you are out-of-office and your PC is not connected to any domain). - -A new license is required when installing CloudShell, or upgrading to a major (8.0, 9.0, etc.) or minor (8.1, 8.2, etc.) version. Patches do not require a new license. - -All license types have an expiration date. - -A license is provided in one of the following formats:  - -- **License file**: This format requires the fingerprint of the machine on which the license is configured. For a Floating license, the fingerprint of the License Server required. For a Seat license, the fingerprint of the machine on which the license in configured, is required. -- **Activation token**: This format requires an internet connection only. The license locks for the specific machine from which you activate the license. - -## Configuring a license - -**To configure a Floating license:** - -1. If the License Server has an internet connection, a token will be provided for you. - 1. Run CloudShell License Server's configuration wizard. - 2. In the **Welcome** page, click **Next** and in the **License server settings** page click **Next**. - 3. In the **Configure a License** page, click **Specify Token**, enter the activation code, and click **Send**. - 4. Click **Next** and then **Finish**. -2. If the License Server doesn’t have an internet connection, - 1. Acquire the fingerprint of the Quali Server: - 1. Run CloudShell License Server's configuration wizard. - 2. In the **Welcome** page, click **Next** and in the **License server settings** page click **Next**. - 3. In the **Configure a License** page, click **Specify Token** and under **Email Fingerprint**, click **Generate and Copy Fingerprint to Clipboard**. - 2. Provide the copied fingerprint via a Quali Support License request ticket. - - You will receive a `.lsn` file containing your license entitlement. - - 3. Save the file in a location accessible to the CloudShell License Server. - 4. To load the license file, in the **Configure a License** page, click **Browse** and point to the provided `.lsn` file. -3. Once the license is loaded, run the configuration wizard of each installed product component and do the following: - 1. In the **Select a License** page, select the **License Server** checkbox. - 2. In the **License server (enter address of your license server)** field, enter the server's IP address or name. - 3. Click **Next** and then **Finish**. - -**To configure a Seat license:** - -1. If the machine has an internet connection: - 1. Run the Configuration Wizard of the relevant product component: - 2. In the **Select a License** page, click **Get License File**. - 3. Enter the activation code and click **Send**. - 4. Confirm the rest of the process. -2. If the machine hasn’t an internet connection: - 1. Run the configuration wizard of the relevant product component: - 2. In the **Select a License** page, click **Get License File**, under **Email Fingerprint** click **Generate** and then click **Copy Fingerprint to Clipboard**. - 3. Provide the copied fingerprint via a Quali support license request ticket. - - You will receive a `.lsn` file which contains your license entitlement. - - 4. Save the file in a location accessible to the relevant machine. -3. To load the license file, in the configuration wizard of the relevant product component, in the **Configure a License** page, click **Browse** and point to the provided `.lsn` file. -4. Click **Next** and then **Finish**. - -**To configure a Commuter license:** -:::note -Commuter license is available for the following product components only: CloudShell Authoring, TestShell Studio TestShell Runner and Remote Runner. -::: -1. In the client, on which the relevant product component is installed, browse to the following folder: `C:\Program Files(X86)\Qualisystems\CloudShell\LicenseServer\Commute`. -2. Run the **WCommute.exe** utility on the relevant product component machine. -3. Connect to the License Server in one of the following ways : - 1. Click **Single Server** and enter the License Server's address (DNS or IP). - - -or- - - 2.  Click **Search Subnet** to scan the network for it. -4. In the left pane, select the feature relevant to the license you require: - - | Feature | Description | - | --- | --- | - | QS\_Procedure\_Editor | For TestShell Studio or CloudShell Authoring licenses | - | QS\_RemoteRunner | For a Remote Runner (execution) license | - | QS\_Studio\_Runner | For a TestShell Runner license | - | QS\_TestShellRuntime | Required license for any product component | -:::note -The QS\_TestShell\_Runtime is required. Make sure to configure this license along with any other required license. -::: -5. Click **Check Out**. -6. On the same client, access the Configuration Wizard and in the **Select a license** page, select the **Commuter License** checkbox. -7. Click **Refresh**. -8. A validation message displays, indicating which commuter license was configured. Click **OK** to close the message box. -9. In Select a License page, click **Next**. -10. In the **Folder and file migration** page, click **Close**. - -To convert the license back to floating: - -1. Run the **WCommute.exe** utility on the relevant product component machine. -2. Connect to the License Server in one of the following ways : - 1. Click **Single Server** and enter the License Server's address (DNS or IP). - - -or- - - 2. Click **Search Subnet** to scan the network for it. - -3. In the left pane, select the relevant checked-out feature and then click **Check In**. - -## Monitoring the license usage - -In the **Licensing** page, the system administrator can monitor the current usage in each pool – how many concurrent sandboxes are in use in each pool. - -![](/Images/CloudShell-Portal/Manage/LcnsManagement_611x170.png) - -It includes the following information, which refers to the image above: - -1. Active concurrent sandboxes allowed - total number of sandboxes in the system -2. Current usage – total number of active sandboxes in the system that are in one of the following statuses: active/setup/teardown/overtime -3. License expiration date -4. For each license pool: - - - Pool name - - Domains using this pool - - Pool size - - Pool usage (total number of active sandboxes) - -The status page is automatically refreshed at a set period. However, you can use the **Refresh** button to immediately refresh the **Licensing** page. - -## Release license after idle time has elapsed - -The applications specified below automatically release the license after the idle time has elapsed. The idle time is specified by the administrator by updating the `IdleLicenseReleaseWatchdog.IdleTimeInMinutes` key in the `customer.config` file. The application remains open and when focus is returned to the application, a new license is retrieved. However, if no licenses are available, a message is issued to notify the user that the license is missing. By default, when the application has been lying idle for 65 minutes, the license is released. - -In the following conditions, idle time is not counted: - - - When TestShell Runner is under external control. - - When a Test or function is either running or has paused. - - When a seat license is being used. - -The relevant applications are: - - - TestShell Studio - - TestShell Runner - - CloudShell Authoring - -## Related Topics - -- [Manage Dashboard Overview](../../admin/cloudshell-manage-dashboard/manage-dashboard-overview.md) diff --git a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/maintenance-window.md b/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/maintenance-window.md deleted file mode 100644 index 9b2958033c..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/maintenance-window.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -sidebar_position: 7 ---- - -# Maintenance Window - -## About the maintenance window - -**Maintenance Window** allows system admins to schedule and notify users of an immediate or upcoming system-wide maintenance. For example, to perform an upgrade or any other preventive maintenance that could cause disruption of service. During the maintenance window, only system administrators and domain administrators can log in to CloudShell, schedule and work in sandboxes, and launch jobs. - -The maintenance window is system-wide and applies to all domains. - -If a non-admin user attempts to log in during this period, they will get a canned message. If they are logged in when the maintenance window starts, they will be logged-out and redirected to the login page and presented with the **Message on Login** message. - -Additional points to consider when a maintenance window is defined: - -- Sandboxes scheduled before the maintenance window will run as usual even if they overlap with the maintenance window. Admin users can view all sandboxes scheduled for the maintenance window duration, by clicking the **Go to Sandboxes** button. See the [Navigating the maintenance window](../../admin/cloudshell-manage-dashboard/maintenance-window.md#navigating-the-maintenance-window) section. -- If a regular user reserves or restores a sandbox that starts or ends outside the maintenance window, the sandbox will be reserved or restored as usual. Users are warned that they will not have access to the sandbox during the maintenance period. -- Admins can run automation suites during the maintenance window. -- Reserving a recurring sandbox is blocked if all the occurrences start or end during the maintenance window. Otherwise, the sandbox will start as usual. -- You cannot change the timeslot of a reservation that falls within the maintenance window. -- Automation suite jobs moved to the scheduled queue after the maintenance window was created will run as usual unless they overlap the maintenance window. If this occurs, they will run after the maintenance window. -- Automation suite jobs that were set to run automatically before the maintenance window was created or during the period in which the maintenance window was extended will fail if they overlap with the maintenance window. -- API: non-admin users cannot create a new session during a maintenance window. If they are in the middle of a session, the session will not be terminated, but they will be logged out on the session timeout. - -## Setting a maintenance window - -The **Maintenance Window** page is only displayed for system administrators in the **Global** domain. - -**To set a maintenance window:** - -1. As system administrator, access the **Global** domain. -2. Open the **Manage** dashboard. -3. In the page navigation bar, click **Maintenance Window**. -4. Click the **Add New Maintenance Window** button. - - The maintenance window is created. - -5. Enter the required information in the dialog box, as explained below. - -6. Click **Save**. - -## Navigating the maintenance window - -In the image below, hover over an area or option to learn more about it, or use the table that follows. You can edit any of the messages presented in the **Maintenance Window**. Click **Save** to apply your changes. - -![](/Images/CloudShell-Portal/Manage/MaintenanceWindow_624x501.png) - -The maintenance window's areas are arranged as follows: - -|   | Field | Description | -| --- | --- | --- | -| 1 | Add New Maintenance Window | Click this button to define a maintenance window. You can have only one active maintenance window at any time. | -| 2 | Status | A maintenance window can be:
  • **NEW** - new maintenance window which was not saved yet
  • **ACTIVE** - maintenance window has started but has not ended
  • **PLANNED** - maintenance window is scheduled to start at a future time
| -| 3 | Schedule | Define the maintenance period. You can start the maintenance window now or at a future time, and set the duration.
You can extend or stop a maintenance window by editing this section. | -| 4 | Go to Sandboxes | Click this button to show the sandboxes that are scheduled to run during the maintenance timeframe. Feel free to inform the sandbox owners that they will not have access to these sandboxes. | -| 5 | Show Notification | Define how long before the maintenance window's start time to show the **Notification message**.
If you do not configure this setting, CloudShell Portal will not notify users prior to the beginning of the maintenance window. | -| 6 | Notification Message | The message shown to all users for the period defined in **Show notification** prior to the maintenance window start time.
The notification is shown in the upper right hand corner of the screen as follows during the defined period:
![](/Images/CloudShell-Portal/Manage/NotificationMessage.png)
**Note:** During the maintenance window, the contents of the tooltip change to the **Message on login**, and are visible only to system and domain admins. | -| 7 | Message on Login | The message shown to all users who try to log in to CloudShell Portal during the maintenance window. For system and domain admin users, CloudShell Portal also shows this message during the maintenance period. | -| 8 | Error on Reserve | The message shown to non-admin users who try in advance to create a sandbox that starts or ends within the maintenance window. | -| 9 | Warning on Reserve | The message shown to non-admin users who try in advance to create a sandbox that starts and ends outside the maintenance window. The user is presented with the option to either **Continue** or **Cancel**. If they select to continue, the sandbox will be created and remain active during the maintenance period, but it will be inaccessible.
In the API, there is no warning, and the action is allowed. | -| 10 | Delete button |
  • **PLANNED** or **NEW** state: deletes the maintenance window
  • **ACTIVE** state: ends and deletes the maintenance window
| - -## Related Topics - -- [Manage Dashboard Overview](../../admin/cloudshell-manage-dashboard/manage-dashboard-overview.md) diff --git a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/_category_.json b/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/_category_.json deleted file mode 100644 index 334530cf8d..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Managing App Templates", - "position": 2 -} diff --git a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/_category_.json b/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/_category_.json deleted file mode 100644 index 9fdd50cac9..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Adding App Templates", - "position": 2 -} diff --git a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/adding-app-template.md b/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/adding-app-template.md deleted file mode 100644 index 35ec7ca333..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/adding-app-template.md +++ /dev/null @@ -1,122 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Adding a new App Template - -When adding a new App template, you need to configure the settings of the virtual machine and application you want to deploy. To add App templates, at least one cloud provider resource must be defined. To define private cloud provider resources, see [Private Cloud Provider Support in CloudShell](../../../supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/index.md), and for public cloud providers, see [Public Cloud Provider Support in CloudShell](../../../supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/index.md). - -If your CloudShell deployment includes multiple sites, it is recommended to configure the deployment process of the App to be carried out in the domain that is physically closest to the cloud provider. For additional information, see [Managing Private Cloud Apps in Domains](../../../supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/managing-private-cloud-apps-in-domains.md) or [Managing Public Cloud Apps in Domains](../../../supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/managing-public-cloud-apps-in-domains.md). - -:::note Notes for public cloud Apps -- By default, all public cloud Apps of the same type in the same sandbox are deployed within the same subnet and therefore are connected to each other and isolated from other sandboxes. However, using the Subnet service, blueprint designers can set up multiple subnet networks in the sandbox, instead of having one default subnet for all the Apps of the same cloud provider. For details, see [Subnet Connectivity](../../../setting-up-cloudshell/inventory-operations/connectivity-control/subnet-connectivity/index.md). -- Public cloud App deployment requires the management network and subnet(s) to be prepared in advance as part of the sandbox Setup process. CloudShell's out-of-the-box Setup process does this. However, the blueprint must include at least one public cloud App to initiate the Setup script's connectivity preparation process for deployment in that public cloud. -::: - -1. Click **\+ Add**. - - The **Create New App** wizard is displayed. - - ![](/Images/CloudShell-Portal/Manage/CreateNewApp.png) - -2. From the **Select Deployment Type** pane, select the desired deployment type. For example, "**vCenter VM From Template**" deploys a vCenter virtual machine from a template while "**AWS EC2 Instance**" deploys an AWS EC2 instance from an AMI image. -3. Enter a **Name** for the App template. - - :::note - The App template's name has a limit of 100 characters and can only contain alpha-numeric characters, spaces, and the following characters: | . - \_ \] \[ - ::: - -4. Click **Create**. - - The App template is created and the **App** wizard's **General** page is displayed. - - ![](/Images/CloudShell-Portal/Manage/AppGeneralPage.png) - -5. In the **General** page, define the App template's display settings and category. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FieldRequiredDescription
NameRequiredApp name that is displayed in the catalog.
DescriptionOptionalDescription of the App.
IconOptional - Add an image to the catalog definition. The recommended size for the image is 190x120 pixels (image size is limited to 400x400 pixels or 200 KB). -
CategoriesOptional -

Service categories are a method to classify Apps. The Apps are displayed in the **Add App / Service** side pane in the blueprint and sandbox diagram, arranged in categories. Only users who are permitted to view the category can access the App. Apps without a category are not displayed.

-

By default, the **Applications** category is selected.

-

Select a category from the dropdown list. You can select additional categories. Examples of categories are: applications, networking and VLAN.

-:::note Notes -- The category must be associated with the domain in which the required cloud provider resides. For information about domain categories, see [Managing domain categories](../../../cloudshell-manage-dashboard/managing-categories.md#managing-domain-categories). -- It is recommended to use up to a 2-level hierarchy when organizing the **Add App / Service** catalog (i.e. root and sub-category). -- In the **Add App / Service** side pane, Apps are displayed in the root category only. This includes services associated to sub-categories. -::: -
- -6. In the left pane, click **Deployment Paths** and configure the App template's deployment path. - - A deployment path consists of (1) the selected deployment type (the method to be used to deploy the VM, for example, from a vCenter VM template or AWS AMI image, (2) the VM’s settings such as storage size, CPU and image file, and (3) the CloudShell cloud provider resource that enables CloudShell to access the cloud provider and deploy the VM on it. - - Note the deployment path's name (highlighted in the image below). The path's name is dynamic and consists of the selected **Cloud Provider** resource and **Deployment** type. You can change the name of the path by clicking the field. - - ![](/Images/CloudShell-Portal/Manage/AppDeploymentPathsPage.png) - - 1. From the **Deployment** drop down list, select the deployment type. - - The selected deployment type's attributes are displayed. - - :::note - Deployment types related to 2nd Gen cloud provider shells include "2G" in the title (for example: "vCenter VM From Template 2G"). - ::: - - 2. Enter the required information based on the selected deployment path: - 1. For AWS EC2 Instance attributes - [Read here](./deployment-path/aws-ec2-dp-attributes). - 2. For Azure VM From Custom Image attributes - [Read here](./deployment-path/azure-custom-image-dp-attributes.md). - 3. For Azure VM From Marketplace attributes - [Read here](./deployment-path/azure-marketplace-dp-attributes.md). - 4. For Azure VM From Gallery Image 2nd Gen attributes - [Read here](./deployment-path/azure-galery-dp-attributes.md). - 5. For OpenStack Deploy Glance Image 2G attributes - [Read here](./deployment-path/openstack-glance-dp-attributes.md). - 6. For vCenter Clone VM From VM attributes - [Read here](./deployment-path/vcenter-clone-vm-dp-attributes.md). - 7. For vCenter Deploy VM From Linked Clone attributes - [Read here](./deployment-path/vcenter-link-clone-vm-dp-attributes.md). - 8. For vCenter VM From Image attributes - [Read here](./deployment-path/vcenter-clone-image-dp-attributes.md). - 9. For vCenter VM From Template attributes - [Read here](./deployment-path/vcenter-clone-template-dp-attributes.md). - -7. To add additional deployment paths to the App template, click the **Add New Deployment Path** link at the bottom of the wizard and fill in the required information. - - Note that for Apps with multiple deployment paths, the user who adds the App to the blueprint or sandbox diagram will be prompted to select the suitable deployment path to use out of the deployment paths that are based on cloud provider resources in that user’s domain. - - ![](/Images/Admin-Guide/Inventory-Operations/AppsNumberOfDeploymentTypes.png) - -8. In the left pane, click **Configuration Management** and configure the application to be installed on the VM. - - Read about the different options [here](./configuration-management.md). - - -9. In the left pane, click **App Resource** to optionally set the VM's operating system user credentials (for example, to connect to the VM via RDP or SSH). You can also change the deployed App's Shell. - - Read about the different options [here](./app-resource.md). - -10. Click **Done**. - - The new App template is displayed in the Apps page. \ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/app-resource.md b/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/app-resource.md deleted file mode 100644 index a6fbb32e81..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/app-resource.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -sidebar_position: 4 ---- - -# Setting up the App Resource - -When adding or editing an App, click **App Resource** in the left page, to optionally set the VM's operating system user credentials (for example, to connect to the VM via RDP or SSH). You can also change the deployed App's Shell. - -![](/Images/CloudShell-Portal/Manage/AppResource.png) - -:::tip -To help sandbox end-users connect to the VM, it is recommended to include the **User** and **Password** in the blueprint's instructions. For additional information, see [Add Instructions](../../../../portal/blueprints/creating-blueprints/add-instructions.md). -::: - - - - - - - - - - - - - - - - - - - - -
AttributeDescription
Shell -

The Shell on which the App's VMs are based. When an App is deployed in a sandbox, it changes into a "deployed App resource", which is based on the selected Shell. By default, the "Generic App Model" Shell is used.

-

- Deployed Apps include a default set of commands such as Power On and Refresh IP, and the VM's User and Password attributes, as explained below. -

-:::note -Changing the Shell might cause additional fields to become visible and you may need to enter further information. -::: -
User -

User defined in the App's image. The **User/Password** credentials are used by QualiX to create in-browser connections to the VM from within the sandbox.

-:::note Notes -- For AWS instances,make sure to set the User of a user that already exists on the Amazon machine image. For custom images, the image owner should know the credentials, while community/marketplace images have the image's credentials listed in their documentation. -- Azure VM username and password restrictions apply. For details, see [Frequently asked question about Windows Virtual Machines](https://docs.microsoft.com/en-us/azure/virtual-machines/windows/faq). -- For Azure Marketplace images, CloudShell will create a user on the VM based on the User/Password credentials you specify. -- For Azure Marketplace VMs, if the user is not set, CloudShell will set adminuser as the default user name. -::: -
Password - VM user's password. -:::note Notes -- For AWS Marketplace images, leave the Password empty. The AWS shell generates a new key-pair for each sandbox, which QualiX will use to establish the in-browser connection. -- For Azure Marketplace images: - - If the password is not set, only the user name will be required. For Linux VMs, CloudShell will create an SSH key-pair to enable a secure connection. - - If the password is set, it will be displayed as asterisks (\*\*\*\*\*\*) in the blueprint or sandbox. -::: -
- \ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/configuration-management.md b/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/configuration-management.md deleted file mode 100644 index a21b90e0af..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/configuration-management.md +++ /dev/null @@ -1,175 +0,0 @@ ---- -sidebar_position: 3 -hide_table_of_contents: true ---- - -# App Configuration Management Settings - -When adding or editing an App, click **Configuration Management** and configure the application to be installed on the VM - -![](/Images/CloudShell-Portal/Manage/ConfigurationManagement.png) - -:::tip -To learn how to develop custom scripts and Ansible playbooks, including examples, and set up support for the desired configuration management tool, see [Developing Configuration Management Scripts for Apps](../../../../devguide/develop-config-management-scripts-for-apps/index.md). -::: - -:::note Notes -- To run configuration management on an Azure App, make sure the App's VM size is Basic\_A2 or larger. -- For configuration management operations, CloudShell uses an available Execution Server (for Ansible, it's a Linux Execution Server that has the **Supports Ansible** flag). - - If the cloud provider resource has an **Execution Server Selector** configured, it will use that selector. If the selector is empty, CloudShell will use the selector defined in the appropriate **Resource Manager Client \>Configuration Services** model (**Ansible Configuration** or **Custom Script Configuration**). - -- Execution Server selectors specified on the deployed App shell/resource are not used to execute configuration management operations. -::: - -1. Define the script or playbook to install. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AttributeDescription
Select Tool -Select the application's installation and configuration tool. -- **None**: Do not use any Configuration Management option. Use this option if, for example, the image or template already contains the application to install. -- **Script**: Select the custom script to run (PowerShell, bash or sh). -- **Ansible**: (Intended for customers who are already using Ansible) Select the Ansible playbook to run. -:::note -The playbook runs once during the Setup phase for all of the sandbox's Apps that use that playbook, after CloudShell has finished deploying their VMs. This is done both to improve performance and support cross-server logic where multiple applications need to be installed and configured in a certain way. -::: - -Depending on the selection, additional options may become available. -
Connection Method -The method to use to connect to the VM. - -Select: - -- **SSH** if the VM has a Linux OS -- **Windows Remote Management** if the VM has a Windows OS - -:::note -To run configuration management on a Windows VM, the VM must have WinRM enabled. For details, see [Enable WinRM on Windows VMs to Support Configuration Management](../../../../devguide/enable-winrm-on-win-vm-for-cfg-mng.md). -::: -
Playbook / Script Location -Details of the Ansible playbook or custom script. - -- URL: Raw URL of the Ansible playbook or ZIP file, or custom script on the online repository (GitHub, GitLab and BitBucket are supported). URL must be accessible to the Execution Servers. - -:::tip -The URL can accept parameters defined on the App, enabling you to test new versions of scripts without affecting consumer-ready versions. For example, you can have an App everyone is using, but if you want to test a version you're developing, simply change the value of the URL parameter in the test blueprint. - -- To use parameters, specify the parameter name in curly brackets (for example: `{branch}`). -- If the App has this parameter, CloudShell will replace the `{branch}` with its value during execution. -- If the parameter is missing, CloudShell will replace `{branch}` with an empty string. -- If you are using a global input, customers would be well advised to set a default value on the global input -::: - -**For GitHub, specify the raw URL. For example:** - -```javascript -https://raw.githubusercontent.com/.../site.yml -``` - -**For GitLab, specify the API endpoint in the format:** - -```javascript -https://gitlab.com/api/v4/projects/{Project ID}/repository/files/testsharding%2Eyml/raw?ref=master -``` - -Where: - -- Each special character that the file contains has to be encoded. In the example above - "%2E” is an encoded point (".”) - -- The ref value is the branch name (master for this example) - - -**For BitBucket Data Center (on premise), use the following URL format:** - -```javascript -http://{datacenter server IP}/rest/api/1.0/projects/{projectKey}/repos/{repository name}/raw/testsharding.yml -``` - -**For BitBucket Cloud, use one of the following:** - -- For source code files, specify the API endpoint: - - ```javascript - https://api.bitbucket.org/2.0/repositories/{workspace}/{repository name}/src/{GUID- the Commit hash string}/testsharding.yml - ``` - -- For download files (files residing in the repository's "Downloads" folder), specify this endpoint: - - ```javascript - https://api.bitbucket.org/2.0/repositories/{workspace}/{repository name}/downloads/site.yml - ``` - -:::note Important -If the URL is private (HTTPS), the VM will need to have a valid SSL certificate. To disable the certificate check, open Resource Manager Client>Resource Families>Configuration Services (Ansible Configuration or Custom Script Configuration) and set the **Verify Certificate** attribute to **False**. -::: - -- User/Password: (For private repositories) Access credentials or token to the script/playbook's online repository. - -- Token: (For private repositories) Access token to the script/playbook's online repository. - - For GitHub and GitLab, specify the API token. For BitBucket Cloud, set the repo's "App Password" in the App template's Password field. For BitBucket Data Center, specify the personal access token. - -:::note Notes -- For Custom Script configurations: In SSH mode, only bash and sh scripts are allowed. In WinRM mode, only PowerShell scripts are allowed. WinRM over HTTPS only applies to custom scripts at this time. If WinRM is configured to run over HTTPS, the execution server will first try to run the custom script over HTTPS and then fall back to HTTP if HTTPS is unsuccessful. To prevent the fallback, set the winrm\_transport parameter to ssl. -- For Ansible configurations: The Ansible playbook must be a YML or YAML file. To specify multiple playbooks or a hierarchy of an Ansible project, you can specify multiple Ansible playbooks or a ZIP package. For example: `https://raw.githubusercontent.com/QualiSystemsLab/private-repo-zip-download/master/README.zip` -- If a ZIP containing 2 or more playbooks is specified, CloudShell will use the playbook file titled site.yml or site.yaml. If the file is missing, the App's deployment will fail. -::: -
Inventory Groups -(For Ansible) Specify the host groups for the application to be installed, separated by semicolons (;). The newly deployed VM will be associated to these groups, thus allowing plays that target these groups to run on the VM. - -For example: `Servers/AppServers;Servers/DBServers` -
Parameters -Parameters to be passed to the Ansible playbook or custom script. Specify the parameters and their default values. - -In the blueprint or sandbox diagram, privileged users can also set the parameter to receive the value that is specified for a global input when reserving a sandbox containing the App. This is done by selecting the global input when editing the App in the blueprint or sandbox diagram. For example, a global input that specifies the build number of a product to be tested or which components of a product to install. - -(For Ansible) To customize the port to be used to communicate with the VM, add the `Ansible_port` parameter. Default: `SSH` / `Port: 22` / `WinRM: 5985`. -
Additional Arguments -(For Ansible) Define arguments to be passed to the execution of the playbook (`Ansible-playbook` command). For example, `-v` will set verbose mode on while `-f` will set the maximum number of VMs to be handled in parallel. Multiple arguments can be given, separated by spaces. For additional information on possible arguments, see the official Ansible documentation. - -The arguments must be specified in Resource Manager Client > Configuration Services family > Ansible Configuration model > Ansible Additional Arguments attribute. - -Note: The arguments are defined globally for all Apps using Ansible. - -Important: To configure Ansible to connect to certified hosts only (Linux VMs with a valid 'known\_hosts' key), include the following additional arguments: `--ssh-extra-args='-o StrictHostKeyChecking=yes'` -
- - -2. To enable the end-user to rerun the App's configuration management on the deployed App in the sandbox, select **Allow rerunning configuration management for resources deployed from the App**. Once the App's deployment completes, a Rerun Configuration Management command is included in the deployed App's Application Commands pane. For details, see [Run App Commands](../../../../portal/sandboxes/sandbox-workspace/apps/run-app-commands.md). This is useful for rolling back the App's VM to its original state. - -3. To enable blueprint and sandbox owners to modify the App's Configuration Management details, select Allow blueprint/sandbox owners to modify the App's Configuration Management. The following details can be modified: playbook/script, authentication details, inventory groups, and parameters. Note that the modifications only apply to the blueprint or sandbox of the instance. -4. Optionally click the Add New Script/Playbook link at the bottom right to add additional custom scripts/Ansible playbooks to the App. The scripts will run in their display order, from top to bottom. You can drag scripts up or down to rearrange. - -5. To change the script's alias, click the script's name and change as appropriate. - - ![](/Images/CloudShell-Portal/Manage/RenameConfigManageScript.png) diff --git a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/_category_.json b/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/_category_.json deleted file mode 100644 index 853336a851..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Deployment Paths Options", - "position": 2 -} diff --git a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/aws-ec2-dp-attributes.md b/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/aws-ec2-dp-attributes.md deleted file mode 100644 index 944b966c86..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/aws-ec2-dp-attributes.md +++ /dev/null @@ -1,219 +0,0 @@ ---- -sidebar_position: 1 -sidebar_label: AWS EC2 Instance -hide_table_of_contents: true ---- - -# AWS EC2 Instance Deployment Path Attributes - -The following attributes would be used to define the AWS EC2 Instance deployment: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AttributeAWS shell versionDescription
Cloud ProviderAllName of the AWS EC2 cloud provider resource to be used
AWS AMI IDAll - AWS AMI ID to launch the instance from. For example, "ami-6869aa05". -:::note -The AMI must be accessible in the selected cloud provider's AWS region. -::: -
Allow All Sandbox TrafficAll - Determines if the App allows inbound traffic from all other AWS EC2 Apps in the sandbox. If set to **False**, the instance will be isolated. Access from specific Apps or subnets can be defined using the **Inbound Ports** attribute or API. -:::note -By default, this attribute is **True**. This means that all access is allowed to all ports from all Apps in the sandbox and all ports are open for traffic within the sandbox. -::: -
Instance TypeAll -AWS EC2 instance type. The instance type determines the CPU, memory, storage and networking capacity of the instance. For example, "t2.large". - -Leave empty to use the default instance type specified in the AWS EC2 cloud provider resource. - -For built-in or Marketplace images, make sure the instance type is supported by the image you defined in the App. -
IAM Role NameAll - (Optional) Name of the IAM role to associate to the App's AWS EC2 instance. The instance will use this role to access AWS. -:::note Notes -- The role must have the AWS permissions required for the actions the instance is expected to perform. -- If the role does not exist, or there are other issues with launching the instance with the role, App deployment will fail. -::: -
Inbound PortsAll -Semi-colon separated list of ports and protocols to open for inbound traffic. Note that by default all ports are open for traffic between AWS EC2 App instances within the sandbox, but this can be changed using the **Allow All Sandbox Traffic** attribute. - -In addition, all outbound traffic is allowed. - -The syntax is: - -`port[single/range]:protocol[tcp(default)/udp]` - -For example: "80;443:tcp;200-220:udp". - -:::note -If not specified, the protocol defaults to TCP. -::: - -:::tip Tips -- To allow QualiX in-browser connections to the VM from the sandbox, include port "22". -- To set more specific security groups, it is recommended to use the TestShell API's [SetAppsSecurityGroup](pathname:///api-docs/2023.3/TestShell-API/TestShell%20XML%20RPC%20API.html) method instead. Unlike the Inbound Ports attribute, it enables you to define different port settings per subnet and allow inbound access to specific source CIDRs. For additional information, see [SetAppSecurityGroups Code Example](../../../../supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/setappsecuritygroups-code-example.md). -::: -
Public IP OptionsAll - Enables access to the instance from the internet. Options are: - -- **No Public IP** - default option -- **Public IP (single subnet)** - (for Apps connected to a single subnet \[private or public\]) allocates a public IP -- **Elastic IPs** - (for Apps connected to multiple subnets) allocates an elastic IP for the App in each of the public subnets that it is connected to - -:::note -In AWS EC2 Apps, this setting is mandatory if the App is connected to more than one network (private or public). -::: -
Storage Size2nd Gen only - The root volume size. The value must be greater or equal to the size of the root snapshot used. If set to 0, the default defined in the image will be used. For example: 30. -
Storage IOPS2nd Gen only - The default number of I/O operations per second that the root volume can support. This parameter is used only for storage of type *io1*, in which you can provision up to 30 IOPS per GiB. If set to 0, the default in the image is used. For example: 240. -
Storage Type2nd Gen only - The type of storage volume. In AWS, there are several EBS Volume types that can be used, *gp2* and *io1* for SSD, *st1* and *sc1* for HDD or the standard type which is the old generation EBS volume type. If auto is selected, the storage type defined in the image is used. -
Root Volume Name2nd Gen only - The device names available for the volume. Depending on the block device driver of the selected AMI's kernel, the device may be attached with a different name than what you specify. If left empty, the default defined in the AMI is used. For example: /dev/xvda -
Autoload2nd Gen only - Enables the automatic execution of the Autoload command during reservation Setup. -
Wait for IP2nd Gen only - If set to **False**, the deployment will not wait for the VM to get an IP. -
Wait for Status Check2nd Gen only - If set to **True**, the App's deployment will end successfully only after instance status checks have passed. The status checks include network connectivity, physical host status, system status and more. -
Wait for Credentials2nd Gen only - Enable in order to retrieve credentials from a Windows machine. Note that if this parameter is enabled and the credentials are not retrieved within 15 minutes, the deployment will fail. -
Custom TagsAll - Custom tags to be set on CloudShell-deployed AWS EC2 instances for billing, like the details of the project or team that deployed the instance. - -For multiple tags, specify a comma-separated list of the key-value pairs. For example: - -`tag_name1:ec2_instance,tag_name2:ec2_instance2` -
User Data URLAll - (Optional) URL to the raw version of the script to execute (PowerShell, bash, sh, etc.). -
User Data ParametersAll - (Optional) Parameters to pass to the user data script. For example, specifying `param1 param2` will result in the command running as follows: - -`./file.sh param1 param2` -
Private IPAll - When the VPC is in static mode (defined on the AWS EC2 cloud provider resource's **VPC Mode** attribute), this attribute is used to set a static private IP for the deployed App. - -To set a static private IPs in multi-subnet mode, specify a json string that maps the subnet request CIDR to the requested static private IP. For example: `{"10.0.0.0/28": "10.0.0.6"}` -
Enable Source Dest Check2nd Gen only - Set to **True** to enable source/destination checks. Source/destination checks allow users to create custom routing inside the VPC. It is applied to all vNICs of a certain instance. If enabled, you can reconfigure routing to go through that instance. This value must be **False** for Virtual Appliance instances like virtual firewalls/routers. - -:::note Important -This value must be False for Virtual Appliance instances like virtual firewalls/routers. The reason for this is that some virtual appliances may take a while to fully deploy and AWS will show them as impaired from 20 minutes until they fully deploy. Setting **Enable Source Dest Check** to **False** ensures the instances are not stopped when they become impaired. -::: -
Status Check Timeout2nd Gen only - Timeout, in seconds, for AWS status checks to pass. Some virtual appliances may take a while to fully deploy and AWS will show them as impaired from 20 minutes until they fully deploy. Therefore, to ensure virtual appliance instances are not stopped when they become impaired, use this attribute to provide a long enough timeout for the instance to complete its status check. - -:::note -The default timeout is 600 seconds (10 minutes). However, instance deployment will fail once the instance status becomes "impaired". Specifying a status check timeout period will configure CloudShell to ignore the "impaired" status and instead wait for the instance deployment to complete or the timeout period to pass. -::: -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/azure-custom-image-dp-attributes.md b/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/azure-custom-image-dp-attributes.md deleted file mode 100644 index fce217531d..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/azure-custom-image-dp-attributes.md +++ /dev/null @@ -1,260 +0,0 @@ ---- -sidebar_position: 2 -sidebar_label: Azure VM From Custom Image -hide_table_of_contents: true ---- - -# Azure VM From Custom Image Deployment Path Attributes - -The following attributes would be used to define the Azure VM From Custom Image: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AttributeAzure shell versionDescription
Cloud ProviderAllName of the Azure cloud provider resource to be used
Azure ImageAllName of the custom image. The image name is listed in the **Images** blade of the Azure portal.
Azure Resource GroupAllName of the resource group in which the custom image resides.
VM SizeAll - (Optional) Size of the Microsoft Azure computing resources, including CPU, memory and networking capacity of the VM. Leave it empty to use the default VM Size that was set in the cloud provider resource. For example: "Standard\_A1\_v2”. - - Make sure the VM size you specify is supported by the image you defined in the App. -:::important - For Azure Apps that will run configuration management operations, specify a VM size of Standard\_A2\_v2 or larger. -::: - For additional information, see the Azure help page [Sizes for virtual machines in Azure](https://docs.microsoft.com/en-us/azure/virtual-machines/sizes) or use Azure CLI to get a list of your region's supported sizes. -
Disk TypeAll - Type of disk to use for the VM's operating system. Possible options depend on the shell version: - - Azure 1G shell: -- **HDD (default)** -- **SSD** - -Azure 2G shell: -- **Standard HDD** -- **Standard SSD** -- **Premium SSD** -- **Standard SSD (zone-redundant storage)** -- **Premium SSD (zone-redundant storage)** -
Disk SizeAll - (Optional) Disk size (in GB) of the VM's operating system. For example, "17” or "35”. - - If you leave it empty, CloudShell will determine the disk size according to the App's VM Size. -
Data Disks2G - Semicolon-separated list of data disks that will be added to the VM. - -The syntax is: `disk_name:disk_size,disk_type` - -For example: - -`disk1:10;disk2:20,Premium SSD;disk3:20,Standard SSD (zone-redundant storage)` - -Supported disk types are: - -- **Standard HDD (default)** -- **Standard SSD** -- **Premium SSD** -- **Ultra SSD** -- **Standard SSD (zone-redundant storage)** -- **Premium SSD (zone-redundant storage)** -
License Type2G - Optionally apply an OS license you own to the VM. - -Options are: - -- **No License**: None -- **Windows OS**: Windows\_Client -- **Windows Server OS**: Windows\_Server -- **Red Hat Enterprise Linux (RHEL)**: RJE:\_BYOS -- **SUSE Linux Enterprise Server (SLES)**: SLES\_BYOS -
Enable Boot Diagnostics2G - Enable Boot diagnostics for the VM. For additional information, see Microsoft Docs' [Azure boot diagnostics](https://docs.microsoft.com/en-us/azure/virtual-machines/boot-diagnostics) article. -
Boot Diagnostics Storage Account2G - The name of a storage account where boot diagnostic artifacts will be stored. Enter "Sandbox Storage" to use the storage account created by the sandbox. By default: the managed storage account is used if **Enable Boot Diagnostics** is enabled. -
Resource Group Name2G - (Optional) The name of the predefined resource group where the VM will be deployed. This resource group will contain all cloud resources created for the VM (such as network interfaces, security groups, disks and the VM itself). When the VM tears down, its cloud resources will be deleted from the resource group but the resource group will remain. -
Add Public IPAll - Set to **True** to use a public IP address to communicate with the VM from outside the virtual network. - - In most cases the public IP address is associated with the VM until the VM is stopped or terminated, after which the IP is no longer available. To ensure that the IP is available to your subscription at any time, reserve it by setting the **Public IPType** attribute to **Static**. -
Wait for IPAll - Determines if the App deployment process waits for the VM to get an IP. Default is **False**. -
Extension Script File / ConfigurationAll - (Optional) Custom extension script (PowerShell, Python, batch, etc.) to execute on the deployed VM. - -- **Extension Script File**: Raw URL of the script file -- **Extension Script Configuration**: Space-separated value containing the tool to be used to execute the script, such as Python or PowerShell, the script's file name and extension, and any inputs that need to be passed to the script. For example: `python my_script.py input1` `input2` - - :::note Notes - - For non-PowerShell scripts, the tool to be used to execute the script must be installed on the VM. - - For Linux VMs, you must specify the tool to be used. For Windows VMs, PowerShell is used by default, unless a different tool is specified. - - Extension scripts are not supported on Kali Linux images in Azure Marketplace. To fix this issue, you will need to use a modified version of the Marketplace image: - - 1. Deploy a VM based on the **Kali Linux** Marketplace image. - - 2. Run the following command: - - ```javascript - sudo nano /usr/lib/python3/dist-packages/azurelinuxagent/common/osutil/factory.py - ``` - - 3. Find the line: - - ```javascript - from .debian import DebianOSModernUtil - ``` - - 4. Replace with: - - ```javascript - from .debian import DebianOSModernUtil,DebianOSBaseUtil - ``` - - 5. Press **\[CTRL\]** + **\[O\]** and **\[Enter\]** keys. - 6. Press **\[CTRL\]** + **\[X\]** and **\[Enter\]** keys. - 7. Restart the **walinuxagent.service** service. - 8. Create a custom image out of the VM. - ::: - -:::note -To support the execution of extension scripts, custom images created outside of Azure Marketplace must include the **ProvisionGuestAgent** agent. For additional information, see [Virtual machine extensions and features for Windows](https://docs.microsoft.com/en-us/azure/virtual-machines/extensions/features-windows). -::: -
Public IP TypeAll - Set to **Static** to ensure that the VM always uses the same public IP. By default, public IPs are **Dynamic** and the address associated to them may change when the VM is powered off. -
Inbound PortsAll - (Optional) Semi-colon separated list of ports and protocols to open for inbound traffic. Note that by default access from the management VPC is allowed and all ports are open for traffic between Azure App VMs within the sandbox, but this can be changed using the **Allow All Sandbox Traffic** attribute. - -In addition, all outbound traffic is allowed. - -The syntax is: - -`port[single/range]:protocol[tcp(default)/udp]` - -For example: "80;443:tcp;200-220:udp". -:::note -If not specified, the protocol defaults to TCP. -::: -:::tip Tips -- To allow QualiX in-browser connections to the VM from the sandbox, include port "22". -- To set more specific security groups, it is recommended to use the TestShell API's [SetAppSecurityGroups](pathname:///api-docs/2023.3/TestShell-API/TestShell%20XML%20RPC%20API.html#SetAppSecurityGroups) method instead. Unlike the **Inbound Ports** attribute, it enables you to define different port settings per subnet and allow inbound access to specific source CIDRs. For additional information, see [SetAppSecurityGroups Code Example](../../../../supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/setappsecuritygroups-code-example.md). -::: -
Custom Tags2G - Semi-colon separated list of up to 9 tags to be applied to all related Azure objects created during the App deployment, such as the sandbox's resource group, VNETs, subnets, NSGs and VMs. Attribute supports the following syntax: [TagName]=[TagValue]; [TagName]=[TagValue]. For example: "Tag1=Val1;Tag2=Val2” -
Allow All Sandbox TrafficAll - Determines if the App allows inbound traffic from all other Azure Apps in the sandbox. If set to **False**, the App's VM will be isolated. Access from specific Apps or subnets can be defined using the **Inbound Ports** attribute or API. -:::note -By default, this attribute is True, and access is allowed to all ports from all Apps in the sandbox. By default, all ports are open for traffic within the sandbox. -::: -
Enable IP Forwarding2G - Enables IP forwarding on all network interfaces of the app in order to support virtual appliances like routers and firewalls that are connected to multiple subnets. -
Autoload2G - Enables the automatic execution of the Autoload command during reservation Setup. -
Availability Zones2G - Specify the Availability Zone (1, 2, or 3) in which the App’s VM, managed disk and public IP (if available) will be deployed. Leave empty to inherit the Availability Zones defined on the cloud provider resource. For details and supported regions, see [Regions and availability zones](https://learn.microsoft.com/en-us/azure/availability-zones/az-overview). -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/azure-galery-dp-attributes.md b/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/azure-galery-dp-attributes.md deleted file mode 100644 index 16a8ec1a87..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/azure-galery-dp-attributes.md +++ /dev/null @@ -1,224 +0,0 @@ ---- -sidebar_position: 4 -sidebar_label: Azure VM From Gallery Image 2G -hide_table_of_contents: true ---- - -# Azure VM From Gallery Image 2G Deployment Path Attributes - -The following attributes would be used to define the Azure VM From Gallery Image 2nd Gen: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AttributeDescription
Cloud ProviderName of the Azure cloud provider resource to be used
Shared Image GalleryName of the shared image gallery to be used to create a VM. The image gallery is listed in the **Shared image galleries** blade of the Azure portal.
Image DefinitionThe image definition is listed in the **Image definitions** blade of the Azure portal.
Image VersionName of the image version to be used to create Azure VMs. Use "latest" if version is unavailable.
Shared Gallery Resource GroupResource group in which the shared image gallery resides.
Shared Gallery Image Subscription IDThe subscription ID of the shared image gallery. Use "current" if not set.
VM Size - (Optional) Size of the Microsoft Azure computing resources, including CPU, memory and networking capacity of the VM. Leave it empty to use the default VM Size that was set in the cloud provider resource. For example: "Standard\_A1\_v2”. -:::important -For Azure Apps that will run configuration management operations, specify a VM size of Standard\_A2\_v2 or larger. -::: -For additional information, see the Azure help page [Sizes for virtual machines in Azure](https://docs.microsoft.com/en-us/azure/virtual-machines/sizes) or use Azure CLI to get a list of your region's supported sizes. -
Disk Type - Type of disk to use for the VM's operating system. - -- **Standard HDD** -- **Standard SSD** -- **Premium SSD** -- **Standard SSD (zone-redundant storage)** -- **Premium SSD (zone-redundant storage)** -
Disk Size - (Optional) Disk size (in GB) of the VM's operating system. For example, "17” or "35”. - -If you leave it empty, CloudShell will determine the disk size according to the App's **VM Size**. -
Data Disks - Semicolon-separated list of data disks that will be added to the VM. - -The syntax is: `disk_name:disk_size,disk_type` - -For example: - -`disk1:10;disk2:20,Premium SSD;disk3:20,Standard SSD (zone-redundant storage)` - -Supported disk types are: - -- **Standard HDD** (default) -- **Standard SSD** -- **Premium SSD** -- **Ultra SSD** -- **Standard SSD (zone-redundant storage)** -- **Premium SSD (zone-redundant storage)** -
License Type - Optionally apply an OS license you own to the VM. - -Options are: - -- **No License**: None -- **Windows OS**: Windows\_Client -- **Windows Server OS**: Windows\_Server -- **Red Hat Enterprise Linux (RHEL)**: RJE:\_BYOS -- **SUSE Linux Enterprise Server (SLES)**: SLES\_BYOS -
Enable Boot DiagnosticsEnable Boot diagnostics for the VM. For additional information, see Microsoft Docs' [Azure boot diagnostics](https://docs.microsoft.com/en-us/azure/virtual-machines/boot-diagnostics) article.
Boot Diagnostics Storage AccountThe name of a storage account where boot diagnostic artifacts will be stored. Enter "Sandbox Storage" to use the storage account created by the sandbox. By default: the managed storage account is used if **Enable Boot Diagnostics** is enabled.
Resource Group Name(Optional) The name of the predefined resource group where the VM will be deployed. This resource group will contain all cloud resources created for the VM (such as network interfaces, security groups, disks and the VM itself). When the VM tears down, its cloud resources will be deleted from the resource group but the resource group will remain.
Add Public IP - Set to **True** to use a public IP address to communicate with the VM from outside the virtual network. - -In most cases the public IP address is associated with the VM until the VM is stopped or terminated, after which the IP is no longer available. To ensure that the IP is available to your subscription at any time, reserve it by setting the **Public IP Type** attribute to **Static**. -
Wait for IPDetermines if the App deployment process waits for the VM to get an IP. Default is **False**.
Extension Script File / Configuration - (Optional) Custom extension script (PowerShell, Python, batch, etc.) to execute on the deployed VM. - -- **Extension Script File**: Raw URL of the script file -- **Extension Script Configuration**: Space-separated value containing the tool to be used to execute the script, such as Python or PowerShell, the script's file name and extension, and any inputs that need to be passed to the script. For example: `python my_script.py input1` `input2` - - :::note Notes - - For non-PowerShell scripts, the tool to be used to execute the script must be installed on the VM. - - For Linux VMs, you must specify the tool to be used. For Windows VMs, PowerShell is used by default, unless a different tool is specified. - - Extension scripts are not supported on Kali Linux images in Azure Marketplace. To fix this issue, you will need to use a modified version of the Marketplace image: - - 1. Deploy a VM based on the **Kali Linux** Marketplace image. - - 2. Run the following command: - - ```javascript - sudo nano /usr/lib/python3/dist-packages/azurelinuxagent/common/osutil/factory.py - ``` - - 3. Find the line: - - ```javascript - from .debian import DebianOSModernUtil - ``` - - 4. Replace with: - - ```javascript - from .debian import DebianOSModernUtil,DebianOSBaseUtil - ``` - - 5. Press **\[CTRL\]** + **\[O\]** and **\[Enter\]** keys. - 6. Press **\[CTRL\]** + **\[X\]** and **\[Enter\]** keys. - 7. Restart the **walinuxagent.service** service. - 8. Create a custom image out of the VM. - ::: -:::note -To support the execution of extension scripts, custom images created outside of Azure Marketplace must include the ProvisionGuestAgent agent. For additional information, see [Virtual machine extensions and features for Windows](https://docs.microsoft.com/en-us/azure/virtual-machines/extensions/features-windows). -::: -
Public IP TypeSet to **Static** to ensure that the VM always uses the same public IP. By default, public IPs are **Dynamic** and the address associated to them may change when the VM is powered off.
Inbound Ports - (Optional) Semi-colon separated list of ports and protocols to open for inbound traffic. Note that by default access from the management VPC is allowed and all ports are open for traffic between Azure App VMs within the sandbox, but this can be changed using the **Allow All Sandbox Traffic** attribute. - -In addition, all outbound traffic is allowed. - -The syntax is: - -`port[single/range]:protocol[tcp(default)/udp]` - -For example: "80;443:tcp;200-220:udp". -:::note -If not specified, the protocol defaults to TCP. -::: -:::tip Tips -- To allow QualiX in-browser connections to the VM from the sandbox, include port "22". -- To set more specific security groups, it is recommended to use the TestShell API's [SetAppSecurityGroups](pathname:///api-docs/2023.3/TestShell-API/TestShell%20XML%20RPC%20API.html#SetAppSecurityGroups) method instead. Unlike the **Inbound Ports** attribute, it enables you to define different port settings per subnet and allow inbound access to specific source CIDRs. For additional information, see [SetAppSecurityGroups Code Example](../../../../supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/setappsecuritygroups-code-example.md). -::: -
Custom TagsSemi-colon separated list of up to 9 tags to be applied to all related Azure objects created during the App deployment, such as the sandbox's resource group, VNETs, subnets, NSGs and VMs. Attribute supports the following syntax: [TagName]=[TagValue]; [TagName]=[TagValue]. For example: "Tag1=Val1;Tag2=Val2”
Allow All Sandbox Traffic - Determines if the App allows inbound traffic from all other Azure Apps in the sandbox. If set to **False**, the App's VM will be isolated. Access from specific Apps or subnets can be defined using the **Inbound Ports** attribute or API. -:::note -By default, this attribute is **True**, and access is allowed to all ports from all Apps in the sandbox. By default, all ports are open for traffic within the sandbox. -::: -
Enable IP ForwardingEnables IP forwarding on all network interfaces of the app in order to support virtual appliances like routers and firewalls that are connected to multiple subnets.
AutoloadEnables the automatic execution of the Autoload command during reservation Setup.
Availability ZonesSpecify the Availability Zone (1, 2, or 3) in which the App’s VM, managed disk and public IP (if available) will be deployed. Leave empty to inherit the Availability Zones defined on the cloud provider resource. For details and supported regions, see [Regions and availability zones](https://learn.microsoft.com/en-us/azure/availability-zones/az-overview).
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/azure-marketplace-dp-attributes.md b/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/azure-marketplace-dp-attributes.md deleted file mode 100644 index aea9b4fbcf..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/azure-marketplace-dp-attributes.md +++ /dev/null @@ -1,256 +0,0 @@ ---- -sidebar_position: 3 -sidebar_label: Azure VM From Marketplace -hide_table_of_contents: true ---- - -# Azure VM From Marketplace Deployment Path Attributes - -The following attributes would be used to define the Azure VM From Marketplace: -:::note -Every VM deployed from a Marketplace image is created with a managed disk, which is deleted when the sandbox ends. -::: -:::important -If you want to deploy a third party application from a Marketplace image, make sure Programmatic Deployment is enabled for the image in the subscription. To enable, log in to Azure and open the Marketplace, find the image and click it, select the Want to deploy programmatically? Get started link at the bottom of the blade that appears. Then, in the Configure Programmatic Deployment blade, scroll down to the bottom, select Enable for the appropriate subscription and click Save. For additional information, see the following Azure help page: [Working with Marketplace Images on Azure Resource Manager](https://azure.microsoft.com/en-us/blog/working-with-marketplace-images-on-azure-resource-manager/). -::: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AttributeAzure shell versionDescription
Cloud ProviderAllName of the Azure cloud provider resource to be used
Image PublisherAll - Define the VM image's **Publisher**, **Offer** and **SKU**. -:::note -The Publisher, Offer and SKU must exist in the Azure region where the VM will be deployed. -::: -For typical image properties, see the following Azure help pages: [Linux VM images](https://docs.microsoft.com/en-us/azure/virtual-machines/linux/cli-ps-findimage) and [Windows VM images](https://docs.microsoft.com/en-us/azure/virtual-machines/windows/cli-ps-findimage). -
Image OfferAllImage Offer
Image SKUAllImage SKU
VM SizeAll - (Optional) Size of the Microsoft Azure VM. This parameter determines the CPU, memory and networking capacity of the VM. Leave it empty to use the default VM Size that was set in the cloud provider resource. For example: "Standard\_A1\_v2”. -:::important -For Azure Apps that will run configuration management operations, specify a VM size of Standard\_A2\_v2 or larger. -::: -
Disk TypeAll - Type of disk to use for the VM's operating system. Possible options depend on the shell version: - -Azure 1G shell: - -- **HDD (default)** -- **SSD** - -Azure 2G shell: - -- **Standard HDD** -- **Standard SSD** -- **Premium SSD** -- **Standard SSD (zone-redundant storage)** -- **Premium SSD (zone-redundant storage)** -
Disk SizeAll - (Optional) Disk size (in GB) of the VM's operating system. For example, "17” or "35”. - -If you leave it empty, CloudShell will determine the disk size according to the App's **VM Size**. -
Data Disks2G - Semicolon-separated list of data disks that will be added to the VM. - -The syntax is: `disk_name:disk_size,disk_type` - -For example: - -`disk1:10;disk2:20,Premium SSD;disk3:20,Standard SSD (zone-redundant storage)` - -Supported disk types are: - -- **Standard HDD** (default) -- **Standard SSD** -- **Premium SSD** -- **Ultra SSD** -- **Standard SSD (zone-redundant storage)** -- **Premium SSD (zone-redundant storage)** -
License Type2G - Optionally apply an OS license you own to the VM. - -Options are: - -- **No License**: None -- **Windows OS**: Windows\_Client -- **Windows Server OS**: Windows\_Server -- **Red Hat Enterprise Linux (RHEL)**: RJE:\_BYOS -- **SUSE Linux Enterprise Server (SLES)**: SLES\_BYOS -
Enable Boot Diagnostics2G - Enable Boot diagnostics for the VM. For additional information, see Microsoft Docs' [Azure boot diagnostics](https://docs.microsoft.com/en-us/azure/virtual-machines/boot-diagnostics) article. -
Boot Diagnostics Storage Account2GThe name of a storage account where boot diagnostic artifacts will be stored. Enter "Sandbox Storage" to use the storage account created by the sandbox. By default: the managed storage account is used if **Enable Boot Diagnostics** is enabled.
Resource Group Name2G(Optional) The name of the predefined resource group where the VM will be deployed. This resource group will contain all cloud resources created for the VM (such as network interfaces, security groups, disks and the VM itself). When the VM tears down, its cloud resources will be deleted from the resource group but the resource group will remain.
Add Public IPAll - Set to **True** to use a public IP address to communicate with the virtual machine from outside the virtual network. - -In most cases the public IP address is associated with the VM until the VM is stopped or terminated, after which the IP is no longer available. To ensure that the IP is available to your subscription at any time, reserve it by setting the **Public IP Type** attribute to **Static**. -
Wait for IPAllDetermines if the App deployment process waits for the VM to get an IP. Default is **False**.
Extension Script File / ConfigurationAll - (Optional) Custom extension script (PowerShell, Python, batch, etc.) to execute on the deployed VM. - -- **Extension Script File**: Raw URL of the script file -- **Extension Script Configuration**: Space-separated value containing the tool to be used to execute the script, such as Python or PowerShell, the script's file name and extension, and any inputs that need to be passed to the script. For example: `python my_script.py input1` `input2` - -:::note Notes -- For non-PowerShell scripts, the tool to be used to execute the script must be installed on the VM. -- For Linux VMs, you must specify the tool to be used. For Windows VMs, PowerShell is used by default, unless a different tool is specified. -- Extension scripts are not supported on Kali Linux images in Azure Marketplace. To fix this issue, you will need to use a modified version of the Marketplace image: - - 1. Deploy a VM based on the **Kali Linux** Marketplace image. - - 2. Run the following command: - - ```javascript - sudo nano /usr/lib/python3/dist-packages/azurelinuxagent/common/osutil/factory.py - ``` - - 3. Find the line: - - ```javascript - from .debian import DebianOSModernUtil - ``` - - 4. Replace with: - - ```javascript - from .debian import DebianOSModernUtil,DebianOSBaseUtil - ``` - - 5. Press **\[CTRL\]** + **\[O\]** and **\[Enter\]** keys. - 6. Press **\[CTRL\]** + **\[X\]** and **\[Enter\]** keys. - 7. Restart the **walinuxagent.service** service. - 8. Create a custom image out of the VM. -::: -
Public IP TypeAllSet to **Static** to ensure that the VM always uses the same public IP. By default, public IPs are **Dynamic** and the address associated to them may change when the VM is powered off.
Inbound PortsAll - (Optional) Semi-colon separated list of ports and protocols to open for inbound traffic. Note that by default access from the management VPC is allowed and all ports are open for traffic between Azure App VMs within the sandbox, but this can be changed using the **Allow All Sandbox Traffic** attribute. - -In addition, all outbound traffic is allowed. - -The syntax is: - -`port[single/range]:protocol[tcp(default)/udp]` - -For example: "80;tcp:443;udp:200-220". -:::note -If not specified, the protocol defaults to TCP. -::: -:::tip Tips -- To allow QualiX in-browser connections to the VM from the sandbox, include port "22". -- To set more specific security groups, it is recommended to use the TestShell API's [SetAppSecurityGroups](pathname:///api-docs/2023.3/TestShell-API/TestShell%20XML%20RPC%20API.html#SetAppSecurityGroups) method instead. Unlike the Inbound Ports attribute, it enables you to define different port settings per subnet and allow inbound access to specific source CIDRs. For additional information, see [SetAppSecurityGroups Code Example](../../../../supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/setappsecuritygroups-code-example.md). -::: -
Custom Tags2GSemi-colon separated list of up to 9 tags to be applied to all related Azure objects created during the App deployment, such as the sandbox's resource group, VNETs, subnets, NSGs and VMs. Attribute supports the following syntax: [TagName]=[TagValue]; [TagName]=[TagValue]. For example: "Tag1=Val1;Tag2=Val2”
Allow All Sandbox TrafficAll - Determines if the App allows inbound traffic from all other Azure Apps in the sandbox. If set to False, the App's VM will be isolated. Access from specific Apps or subnets can be defined using the Inbound Ports attribute or API. - -:::note -By default, this attribute is True, and access is allowed to all ports from all Apps in the sandbox. By default, all ports are open for traffic within the sandbox. -::: -
Enable IP Forwarding2GEnables IP forwarding on all network interfaces of the app in order to support virtual appliances like routers and firewalls that are connected to multiple subnets.
Autoload2GEnables the automatic execution of the Autoload command during reservation Setup.
Availability Zones2GSpecify the Availability Zone (1, 2, or 3) in which the App’s VM, managed disk and public IP (if available) will be deployed. Leave empty to inherit the Availability Zones defined on the cloud provider resource. For details and supported regions, see [Regions and availability zones](https://learn.microsoft.com/en-us/azure/availability-zones/az-overview).
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/openstack-glance-dp-attributes.md b/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/openstack-glance-dp-attributes.md deleted file mode 100644 index 69dff66825..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/openstack-glance-dp-attributes.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -sidebar_position: 5 -sidebar_label: OpenStack Deploy Glance Image 2G -hide_table_of_contents: true ---- - -# OpenStack Deploy Glance Image 2G Deployment Path Attributes - -The following attributes would be used to define the OpenStack Deploy Glance Image 2nd Gen: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AttributeDescription
Cloud ProviderName of the OpenStack cloud provider resource to be used
Image IDUUID of the image to be used to create the App's Openstack instance. Can be found on Portal in **Compute>Images**>select the image>**ID** value.
Instance Flavor - (Optional) OpenStack instance Flavor. The instance flavor determines the CPU, memory and networking capacity of the instance. For example: "m1.tiny" or "m1.xlarge". - -Can be found on Portal in **Compute**>**Flavors**>select the flavor>**Flavor Name**. -
Add Floating IP - Set to **True** to use a static (public) IP address to communicate with the instance from outside the virtual network. Default value is **False**. - -In most cases the floating IP address is associated with the instance until the instance is stopped or terminated, after which the floating IP is no longer available. You can reserve a floating IP in OpenStack to ensure that the IP is available to your subscription at any time. -
Affinity Group ID - (Optional) UUID of the affinity group ("nova server-group") to which the instance will be associated. Affinity groups determine on which compute nodes to place instances. -:::note -To support the deployment of 'all' OpenStack instances using the same hypervisor, affinity groups with the 'affinity' policy are used. -::: -
Availability Zone(Optional) Name of the availability zone to which the instance will be associated. Availability zones are used to group network nodes to enhance the availability of network resources.
Floating IP Subnet IDUUID of the subnet to use for Floating IPs.
Auto UDEVEnable Linux udev rules to allow new interfaces to be recognized by the OS automatically. When using Windows machines, this attribute should be set to **False**.
User DataCustom user data to pass to the deployed App instance. For example, some metadata or post-installation script. For details, see this official OpenStack documentation page: [https://docs.openstack.org/nova/rocky/user/user-data.html](https://docs.openstack.org/nova/rocky/user/user-data.html).
Inbound Ports - Semi-colon separated list of CIDRs, ports and protocols on which to open inbound traffic from outside of the sandbox. -The syntax is `[cidr:][protocol:]port-or-port-range`. For example: `0.0.0.0/0:tcp:80;443;udp:200-220`. -Default CIDR is "0.0.0.0/0". Default protocol is "tcp". -
Private IPThe IP will be set for the management interface. The IP should be inside the management network ranges. OpenStack doesn't allow to use the same IP address for different instances.
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/vcenter-clone-image-dp-attributes.md b/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/vcenter-clone-image-dp-attributes.md deleted file mode 100644 index 8a0970cfb5..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/vcenter-clone-image-dp-attributes.md +++ /dev/null @@ -1,123 +0,0 @@ ---- -sidebar_position: 8 -sidebar_label: vCenter VM From Image -hide_table_of_contents: true ---- - -# vCenter VM From Image Deployment Path Attributes - -The following attributes would be used to define the vCenter VM From Image: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AttributevCenter shell versionDescription
Cloud ProviderAllName of the vCenter cloud provider resource to be used
vCenter ImageAll - Full path to the vCenter OVF image file, relative to the datacenter. For example: `My-OVF-Images/Image.ovf` -:::note -Path must be accessible to all execution servers. OVF tool must be installed on all execution servers. -::: -
vCenter NameAllName of the vCenter resource to be used
vCenter Image ArgumentsAll - (Optional) vCenter-specific arguments to use when deploying the virtual machine. - -Example for OVF: - -`--allowExtraConfig --prop:Hostname=ASAvtest --prop:HARole=Standalone --prop:SSHEnable=True --prop:DHCP=True --net:Management0-0='Office LAN 41' --net:GigabitEthernet0-0='VLAN_access_101'` -
Behavior During SaveAll - (Applies to the **Save and Restore** paid add-on) The VM's state while the sandbox is being saved. Options are **Remain Powered On** and **Power Off**. - -- **Inherit**: (Default) Uses the setting defined on the vCenter cloud provider resource -- **Remain Powered On**: The VM will remain powered on during the saving state. -- **Power Off**: If the VM was powered on before the sandbox entered the saving state, the VM will shut down (power off) for the duration of the save. - -:::note Notes -- The value configured here overrides the configuration in the vCenter cloud provider resource, see [Add VMware vCenter Cloud Provider Resource](../../../../supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/add-vmware-vcenter-cloud-provider-resource.md). -- After save has ended, the VM returns to its state prior to saving, regardless of the behavior during the save. -::: -
Saved Sandbox StorageAll - (Applies to the **Save and Restore** paid add-on) During the saving process, CloudShell creates a clone of the sandbox's App VMs in this vCenter storage, which CloudShell will later use to restore the VM when the user restores the saved sandbox. See [Save a Sandbox](../../../../../portal/sandboxes/sandbox-workspace/save-sandbox.md) for more information. - -For storage purposes, these VM clones can be stored in a different data storage than the one configured in the **VM Storage** attribute defined on the vCenter cloud provider resource. The storage can be either a datastore or a datastore cluster. For example: datastore1 or clustername/datastore1. -:::note -The value configured here overrides the configuration in the vCenter cloud provider resource, see [Add VMware vCenter Cloud Provider Resource](../../../../supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/add-vmware-vcenter-cloud-provider-resource.md). -::: -
Customization Spec2nd Gen onlyName of the vSphere VM Customization Specification to apply to the App's VM.
Hostname2nd Gen only - (Only applies to Windows and Linux VMs) The hostname to set on the VM. -:::note -If **Customization Spec** is specified, the value specified in the **Hostname** attribute will be used. If **Customization Spec** is not specified, a new one will be created for the VM. For Windows VMs, make sure to specify a password in the App resource page -::: -
Private IP2nd Gen only - (Only applies to Windows and Linux VMs) The private static IP to set on the first vNIC of the VM. If there's a default gateway, specify it after the private IP. For example: "192.168.4.124:80.114.1.87" where 80.114.1.87 is the default gateway - -:::note Notes -- If there is no gateway, the .1 IP of the same subnet will be used as the gateway. So, for private IP "192.168.4.124", gateway "192.168.4.1" will be used. -- It is also possible to provide a subnet mask here. For example: "192.168.4.124/24:80.114.1.87" -- If **Customization Spec** is specified, the value specified in the **Private IP** attribute will be used. -- If **Customization Spec** is not specified, a new one will be created for the VM. For Windows VMs, make sure to specify a **Password** in the **App resource** page. -- If **Customization Spec** is specified, the value specified in the **Private IP** attribute will be used. If **Customization Spec** is not specified, a new one will be created for the VM. For Windows VMs, make sure to specify a **Password** in the **App resource** page. -::: -
CPU2nd Gen onlyNumber of CPU core s to configure on the VM.
RAM2nd Gen onlyAmount of RAM (GB) to configure on the VM.
HDD2nd Gen onlyAllows to add/edit hard disk size to the VM. The syntax is semi-colon separated disk pairs 'Hard Disk Label: Disk Size (GB)'. For example: 'Hard Disk 1:100;Hard Disk 2:200'. Short-hand format is also valid: '1:100;2:200'.
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/vcenter-clone-template-dp-attributes.md b/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/vcenter-clone-template-dp-attributes.md deleted file mode 100644 index 111d655729..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/vcenter-clone-template-dp-attributes.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -sidebar_position: 9 -sidebar_label: vCenter VM From Template -hide_table_of_contents: true ---- - -# vCenter VM From Template Deployment Path Attributes - -The following attributes would be used to define the vCenter VM From Template: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AttributevCenter shell versionDescription
Cloud ProviderAllName of the vCenter cloud provider resource to be used
vCenter TemplateAllPath to the vCenter template to use in the virtual machine's creation. Path is relative to the datacenter and must include the template name, for example: `My-Templates/Template1`
Behavior During SaveAll - (Applies to the Save and Restore paid add-on) The VM's state while the sandbox is being saved. Options are **Remain Powered On** and **Power Off**. - -- **Inherit**: (Default) Uses the setting defined on the vCenter cloud provider resource -- **Remain Powered On**: The VM will remain powered on during the saving state. -- **Power Off**: If the VM was powered on before the sandbox entered the saving state, the VM will shut down (power off) for the duration of the save. - - -:::note Notes -- The value configured here overrides the configuration in the vCenter cloud provider resource, see [Add VMware vCenter Cloud Provider Resource](../../../../supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/add-vmware-vcenter-cloud-provider-resource.md). -- After save has ended, the VM returns to its state prior to saving, regardless of the behavior during the save. -::: -
Saved Sandbox StorageAll - (Applies to the **Save and Restore** paid add-on) During the saving process, CloudShell creates a clone of the sandbox's App VMs in this vCenter storage, which CloudShell will later use to restore the VM when the user restores the saved sandbox. See [Save a Sandbox](../../../../../portal/sandboxes/sandbox-workspace/save-sandbox.md) for more information. - -For storage purposes, these VM clones can be stored in a different data storage than the one configured in the **VM Storage** attribute defined on the vCenter cloud provider resource. The storage can be either a datastore or a datastore cluster. For example: datastore1 or clustername/datastore1. -:::note -Setting a value in the App template’s attribute will override the value in the Saved Sandbox Storage attribute on the vCenter resource. See [Add VMware vCenter Cloud Provider Resource](../../../../supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/add-vmware-vcenter-cloud-provider-resource.md). -::: -
Customization Spec2nd Gen onlyName of the vSphere VM Customization Specification to apply to the App's VM.
Hostname2nd Gen only - (Only applies to Windows and Linux VMs) The hostname to set on the VM. -:::note -If **Customization Spec** is specified, the value specified in the **Hostname** attribute will be used. If **Customization Spec** is not specified, a new one will be created for the VM. For Windows VMs, make sure to specify a password in the App resource page -::: -
Private IP2nd Gen only - (Only applies to Windows and Linux VMs) The private static IP to set on the first vNIC of the VM. If there's a default gateway, specify it after the private IP. For example: "192.168.4.124:80.114.1.87" where 80.114.1.87 is the default gateway - -:::note Notes -- If there is no gateway, the .1 IP of the same subnet will be used as the gateway. So, for private IP "192.168.4.124", gateway "192.168.4.1" will be used. -- It is also possible to provide a subnet mask here. For example: "192.168.4.124/24:80.114.1.87" -- If **Customization Spec** is specified, the value specified in the **Private IP** attribute will be used. -- If **Customization Spec** is not specified, a new one will be created for the VM. For Windows VMs, make sure to specify a **Password** in the **App resource** page. -- If **Customization Spec** is specified, the value specified in the **Private IP** attribute will be used. If **Customization Spec** is not specified, a new one will be created for the VM. For Windows VMs, make sure to specify a **Password** in the **App resource** page. -::: -
CPU2nd Gen onlyNumber of CPU core s to configure on the VM.
RAM2nd Gen onlyAmount of RAM (GB) to configure on the VM.
HDD2nd Gen onlyAllows to add/edit hard disk size to the VM. The syntax is semi-colon separated disk pairs 'Hard Disk Label: Disk Size (GB)'. For example: 'Hard Disk 1:100;Hard Disk 2:200'. Short-hand format is also valid: '1:100;2:200'.
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/vcenter-clone-vm-dp-attributes.md b/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/vcenter-clone-vm-dp-attributes.md deleted file mode 100644 index 58bce4fb10..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/vcenter-clone-vm-dp-attributes.md +++ /dev/null @@ -1,101 +0,0 @@ ---- -sidebar_position: 6 -sidebar_label: vCenter Clone VM From VM -hide_table_of_contents: true ---- - -# vCenter Clone VM From VM Deployment Path Attributes - -The following attributes would be used to define the vCenter Clone VM from VM: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AttributevCenter shell versionDescription
Cloud ProviderAllName of the vCenter cloud provider resource to be used
vCenter VMAllFull path to the VM that will be used to clone a new VM, relative to the datacenter. For example: `My-Folder/My-VM`
Behavior During Save (optional)All - (Applies to the **Save and Restore** paid add-on) The VM's state while the sandbox is being saved. Options are **Remain Powered On** and **Power Off**. - -- **Inherit**: (Default) Uses the setting defined on the vCenter cloud provider resource -- **Remain Powered On**: The VM will remain powered on during the saving state. -- **Power Off**: If the VM was powered on before the sandbox entered the saving state, the VM will shut down (power off) for the duration of the save. - -:::note Notes -- The value configured here overrides the configuration in the vCenter cloud provider resource, see [Add VMware vCenter Cloud Provider Resource](../../../../supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/add-vmware-vcenter-cloud-provider-resource.md). -- After save has ended, the VM returns to its state prior to saving, regardless of the behavior during the save. -::: -
Saved Sandbox StorageAll - (Applies to the **Save and Restore** paid add-on) During the saving process, CloudShell creates a clone of the sandbox's App VMs in this vCenter storage, which CloudShell will later use to restore the VM when the user restores the saved sandbox. See [Save a Sandbox](../../../../../portal/sandboxes/sandbox-workspace/save-sandbox.md) for more information. - -For storage purposes, these VM clones can be stored in a different data storage than the one configured in the **VM Storage** attribute defined on the vCenter cloud provider resource. The storage can be either a datastore or a datastore cluster. For example: datastore1 or clustername/datastore1. - -- **Note**: The value configured here overrides the configuration in the vCenter cloud provider resource, see [Add VMware vCenter Cloud Provider Resource](../../../../supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/add-vmware-vcenter-cloud-provider-resource.md). -
Customization Spec2nd Gen onlyName of the vSphere VM Customization Specification to apply to the App's VM.
Hostname2nd Gen only - (Only applies to Windows and Linux VMs) The hostname to set on the VM. -:::note -If **Customization Spec** is specified, the value specified in the **Hostname** attribute will be used. If **Customization Spec** is not specified, a new one will be created for the VM. For Windows VMs, make sure to specify a password in the App resource page. -::: -
Private IP2nd Gen only - (Only applies to Windows and Linux VMs) The private static IP to set on the first vNIC of the VM. If there's a default gateway, specify it after the private IP. For example: "192.168.4.124:80.114.1.87" where 80.114.1.87 is the default gateway - -:::note Notes -- If there is no gateway, the .1 IP of the same subnet will be used as the gateway. So, for private IP "192.168.4.124", gateway "192.168.4.1" will be used. -- It is also possible to provide a subnet mask here. For example: "192.168.4.124/24:80.114.1.87" -- If **Customization Spec** is specified, the value specified in the **Private IP** attribute will be used. -- If **Customization Spec** is not specified, a new one will be created for the VM. For Windows VMs, make sure to specify a **Password** in the **App resource** page. -- If **Customization Spec** is specified, the value specified in the **Private IP** attribute will be used. If **Customization Spec** is not specified, a new one will be created for the VM. For Windows VMs, make sure to specify a **Password** in the **App resource** page. -::: -
CPU2nd Gen onlyNumber of CPU core s to configure on the VM.
RAM2nd Gen onlyAmount of RAM (GB) to configure on the VM.
HDD2nd Gen onlyAllows to add/edit hard disk size to the VM. The syntax is semi-colon separated disk pairs 'Hard Disk Label: Disk Size (GB)'. For example: 'Hard Disk 1:100;Hard Disk 2:200'. Short-hand format is also valid: '1:100;2:200'.
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/vcenter-link-clone-vm-dp-attributes.md b/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/vcenter-link-clone-vm-dp-attributes.md deleted file mode 100644 index 558dce34c0..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/app-template/deployment-path/vcenter-link-clone-vm-dp-attributes.md +++ /dev/null @@ -1,112 +0,0 @@ ---- -sidebar_position: 7 -sidebar_label: vCenter Deploy VM From Linked Clone -hide_table_of_contents: true ---- - -# vCenter Deploy VM From Linked Clone Deployment Path Attributes - -The following attributes would be used to define the VCenter Deploy VM From Linked Clone: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AttributevCenter shell versionDescription
Cloud ProviderAllName of the vCenter cloud provider resource to be used
vCenter VMAllFull path to the VM containing the snapshot that will be used to clone a new VM, relative to the datacenter.
vCenter VM SnapshotAll - Full path to the virtual machine snapshot that will be used to clone a new VM. For example Snapshot1/Snapshot2 - -This snapshot should be associated with the VM defined in the **vCenter VM** input. -
Behavior During SaveAll - (Applies to the **Save and Restore** paid add-on) The VM's state while the sandbox is being saved. Options are **Remain Powered On** and **Power Off**. - -- **Inherit**: (Default) Uses the setting defined on the vCenter cloud provider resource -- **Remain Powered On**: The VM will remain powered on during the saving state. -- **Power Off**: If the VM was powered on before the sandbox entered the saving state, the VM will shut down (power off) for the duration of the save. - - -:::note Notes -- The value configured here overrides the configuration in the vCenter cloud provider resource, see [Add VMware vCenter Cloud Provider Resource](../../../../supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/add-vmware-vcenter-cloud-provider-resource.md). -- After save has ended, the VM returns to its state prior to saving, regardless of the behavior during the save. -::: -
Saved Sandbox StorageAll - (Applies to the **Save and Restore** paid add-on) During the saving process, CloudShell creates a clone of the sandbox's App VMs in this vCenter storage, which CloudShell will later use to restore the VM when the user restores the saved sandbox. See [Save a Sandbox](../../../../../portal/sandboxes/sandbox-workspace/save-sandbox.md) for more information. - -For storage purposes, these VM clones can be stored in a different data storage than the one configured in the **VM Storage** attribute defined on the vCenter cloud provider resource. The storage can be either a datastore or a datastore cluster. For example: datastore1 or clustername/datastore1. -:::note -The value configured here overrides the configuration in the vCenter cloud provider resource, see [Add VMware vCenter Cloud Provider Resource](../../../../supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/add-vmware-vcenter-cloud-provider-resource.md). -::: -
Customization Spec2nd Gen onlyName of the vSphere VM Customization Specification to apply to the App's VM.
Hostname2nd Gen only - (Only applies to Windows and Linux VMs) The hostname to set on the VM. -:::note -If **Customization Spec** is specified, the value specified in the **Hostname** attribute will be used. If **Customization Spec** is not specified, a new one will be created for the VM. For Windows VMs, make sure to specify a password in the App resource page -::: -
Private IP2nd Gen only - (Only applies to Windows and Linux VMs) The private static IP to set on the first vNIC of the VM. If there's a default gateway, specify it after the private IP. For example: "192.168.4.124:80.114.1.87" where 80.114.1.87 is the default gateway - -:::note Notes -- If there is no gateway, the .1 IP of the same subnet will be used as the gateway. So, for private IP "192.168.4.124", gateway "192.168.4.1" will be used. -- It is also possible to provide a subnet mask here. For example: "192.168.4.124/24:80.114.1.87" -- If **Customization Spec** is specified, the value specified in the **Private IP** attribute will be used. -- If **Customization Spec** is not specified, a new one will be created for the VM. For Windows VMs, make sure to specify a **Password** in the **App resource** page. -- If **Customization Spec** is specified, the value specified in the **Private IP** attribute will be used. If **Customization Spec** is not specified, a new one will be created for the VM. For Windows VMs, make sure to specify a **Password** in the **App resource** page. -::: -
CPU2nd Gen onlyNumber of CPU core s to configure on the VM.
RAM2nd Gen onlyAmount of RAM (GB) to configure on the VM.
HDD2nd Gen onlyAllows to add/edit hard disk size to the VM. The syntax is semi-colon separated disk pairs 'Hard Disk Label: Disk Size (GB)'. For example: 'Hard Disk 1:100;Hard Disk 2:200'. Short-hand format is also valid: '1:100;2:200'.
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/index.md b/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/index.md deleted file mode 100644 index 256806dc41..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-app-templates/index.md +++ /dev/null @@ -1,94 +0,0 @@ -# Managing App Templates - -This article describes the administrative actions needed to configure App templates in CloudShell that are based on a cloud provider resource. For additional information, see [Apps Overview](../../../intro/features/apps-overview.md). - -## Viewing App templates - -In the **Apps** page, you can view the App templates you are permitted to access. - -To view existing App templates: - -- In the **Manage** dashboard, in the left sidebar, click **Apps**. - The **Apps** page is displayed, listing the App templates that were previously added to CloudShell. - -You can use the toolbar to sort the App templates according to **Name** or Modified time (last modified App at the top), and to filter them according to a specific **Category** or **Domain**. - -## Adding App templates - -When adding a new App template, you need to configure the settings of the virtual machine and application you want to deploy. To add App templates, at least one cloud provider resource must be defined. To define private cloud provider resources, see [Private Cloud Provider Support in CloudShell](../../../admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/index.md), and for public cloud providers, see [Public Cloud Provider Support in CloudShell](../../../admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/index.md). - -If your CloudShell deployment includes multiple sites, it is recommended to configure the deployment process of the App to be carried out in the domain that is physically closest to the cloud provider. For additional information, see [Managing Private Cloud Apps in Domains](../../../admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/managing-private-cloud-apps-in-domains.md) or [Managing Public Cloud Apps in Domains](../../../admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/managing-public-cloud-apps-in-domains.md). - -:::note Notes for public cloud Apps -- By default, all public cloud Apps of the same type in the same sandbox are deployed within the same subnet and therefore are connected to each other and isolated from other sandboxes. However, using the Subnet service, blueprint designers can set up multiple subnet networks in the sandbox, instead of having one default subnet for all the Apps of the same cloud provider. For details, see [Subnet Connectivity](../../../admin/setting-up-cloudshell/inventory-operations/connectivity-control/subnet-connectivity/index.md). -- Public cloud App deployment requires the management network and subnet(s) to be prepared in advance as part of the sandbox Setup process. CloudShell's out-of-the-box Setup process does this. However, the blueprint must include at least one public cloud App to initiate the Setup script's connectivity preparation process for deployment in that public cloud. -::: - -**To add a new App template:** - -Follow the instructions [here](./manage-app-templates/app-template/adding-app-template). - - -## Cloning App templates - -This section explains how to clone an existing App template in the Apps page. You can use this method, for example, if you want to create an App template that is largely based on an existing one but requires several modifications. - -To clone an App template: - -1. In the Manage dashboard, in the left sidebar, click Apps. - - The Apps page is displayed. - -2. Click the App template's menu button ![](/Images/CloudShell-Portal/Manage/ExecutionServersServersMenuButton.png) and select Clone. - - The cloned App template is added to the Apps page under the original App template. For example: - - ![](/Images/Admin-Guide/Inventory-Operations/AppsClone.png) - - -## Editing App templates - -This option is enabled using the `RestrictEditToCreatingDomain` key. - -To edit an App template: - -1. In the Manage dashboard, in the left sidebar, click Apps. - - The Apps page is displayed. - -2. Click the Name of the App template. - - Or- - - Click the App template's menu button ![](/Images/CloudShell-Portal/Manage/ExecutionServersServersMenuButton.png) and select Edit. - - The App template's configuration wizard is displayed in the General page. - -3. Edit the App template’s settings. For more information, see [Adding App templates](../../../admin/cloudshell-manage-dashboard/manage-app-templates/index.md#adding-app-templates). -4. Click Save. - - -## Deleting App templates - -This option is enabled using the `RestrictEditToCreatingDomain` key. - -To delete App templates: - -1. In the Manage dashboard, in the left sidebar, click Apps. - - The Apps page is displayed. - -2. Select the check boxes of the required App templates. -3. Click the **Delete** button in the toolbar. - - Or- - - Click the App template's menu button ![](/Images/CloudShell-Portal/Manage/ExecutionServersServersMenuButton.png) and select Delete. - - -## Related Topics - -- [Manage Dashboard Overview](../../../admin/cloudshell-manage-dashboard/manage-dashboard-overview.md) -- [Managing Public Cloud Apps in Domains](../../../admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/managing-public-cloud-apps-in-domains.md) -- [Managing Private Cloud Apps in Domains](../../../admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/managing-private-cloud-apps-in-domains.md) -- [Apps in Blueprints](../../portal/blueprints/creating-blueprints/apps/) diff --git a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-dashboard-overview.md b/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-dashboard-overview.md deleted file mode 100644 index cbc71493ac..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/manage-dashboard-overview.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Manage Dashboard Overview - -The **Manage** dashboard enables CloudShell system administrators and domain administrators to carry out various administrative tasks. This includes creating categories to help organize items in catalogs, viewing and managing execution servers, creating blueprint templates, adding orchestration scripts and drivers to be used in blueprints, and viewing licensing information. - -## Navigating the Manage dashboard - -In the image below, hover over an area or option to learn more about it, or use the table that follows. - -![](/Images/CloudShell-Portal/Manage/ManageDashboard_1_.png) - -The dashboard's areas are arranged as follows: - -| Area | Description | -| --- | --- | -| 1 | Run a free text search for items in the dashboard. | -| 2 | Switch between the different pages in the **Manage** dashboard. | -| 3 | Depending on the dashboard, the toolbar may include filtering and sorting options, as well as buttons to add, delete and rearrange the items in the dashboard. | -| 4 | View and manage the dashboard items. | - - -## Related Topics - -- [Managing Shells](../../admin/cloudshell-manage-dashboard/managing-shells.md) -- [Managing App Templates](../../admin/cloudshell-manage-dashboard/manage-app-templates/index.md) -- [Managing Categories](../../admin/cloudshell-manage-dashboard/managing-categories.md) -- [Licensing](../../admin/cloudshell-manage-dashboard/licensing.md) -- [Setting Up Execution Servers to Run Commands](../../admin/cloudshell-execution-server-configurations/setting-up-execution-servers-to-run-commands.md) -- [Maintenance Window](../../admin/cloudshell-manage-dashboard/maintenance-window.md) -- [Blueprint Templates](../../admin/cloudshell-manage-dashboard/blueprint-templates.md) -- [Automation Overview](../../admin/cloudshell-manage-dashboard/managing-automation/automation-overview.md) diff --git a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-automation/_category_.json b/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-automation/_category_.json deleted file mode 100644 index 977b48d362..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-automation/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Managing Automation", - "position": 10 -} diff --git a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-automation/associating-automation-to-domains.md b/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-automation/associating-automation-to-domains.md deleted file mode 100644 index 1a7d3aae8f..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-automation/associating-automation-to-domains.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -sidebar_position: 4 ---- - -# Associating Automation to Domains - -CloudShell supports multi-tenancy for CloudShell components (scripts, resources, services, and Apps), allowing users in other domains to also use them. However, in the Global domain, you can manage all components regardless of their association to any particular domain. - -## Scripts in multiple domains - -When you add a script, it is associated to the domain you are currently in. - -- To expose a script to all domains, add the script to the Global domain. -- If you added a script it to a blueprint or resource that has additional domains, the script will be accessible in those domains as well. - -## Resources in multiple domains - -To enable users of a specific domain to access and use a resource, you must associate that resource to the domain. - -- If you add a resource to a blueprint that is associated with multiple domains, the resource will be accessible in those domains as well. -- You can add a resource directly to an additional domain through Resource Manager. See [Adding resources to a domain](../../../admin/cloudshell-identity-management/cloudshell-domains/addingremoving-resources-from-a-domain.md#adding-resources-to-a-domain). - -## Services and Apps in multiple domains - -### Services - -When you import a service shell, most shells are automatically assigned a default service category which is associated with the Global domain. For custom shells, this may not be true. - -To expose a service to users of a non-Global domain, either associate the service to a category that is assigned to that domain or associate the service's category to that domain. - -- For 1st gen service shells: modify the category(s) in the shell project’s configuration files to add a new category(s). See the CloudShell Dev Guide's [Migrating Shells to Python 3](../../../devguide/reference/migrate-shells-to-py3.md). - -- For 2nd gen service shells: See the CloudShell Dev Guide's [Associating categories to a service shell](../../../devguide/developing-shells/customize-shells.md#associating-categories-to-a-service-shell). - - -### Apps - -By default, all Apps are associated with the **Applications** category, which exposes those Apps in the Global domain.To expose an App in a non-Global domain, associate the App to a category in that domain. However, you also need to associate the App's deployment to that domain. To learn how to do this, see [Managing Public Cloud Apps in Domains](../../../admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/managing-public-cloud-apps-in-domains.md) or [Managing Private Cloud Apps in Domains](../../../admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/managing-private-cloud-apps-in-domains.md). diff --git a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-automation/automation-overview.md b/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-automation/automation-overview.md deleted file mode 100644 index 76cd98ef70..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-automation/automation-overview.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Automation Overview - -The Automation process is enabled in the **Sandbox** workspace and is invoked during: - -- **Blueprint Orchestration**: You can use automation at the blueprint level when setting up and cleaning up the sandbox. You can also define automation that the user can use during the lifetime of the blueprint. -- **Resource Automation**: You can use the resource commands to integrate the same capabilities within the resource that can be reused in multiple blueprints. - -Scripts and drivers are used in the automation process, and their functions vary. For more details, see: - -- [Managing Assets](./managing-assets.md) -- [Managing Drivers](./managing-drivers.md) (hidden by default, applies to 1st Gen shells only) -:::warning Important -The **Drivers** management page is only visible if you set the HideDriversTabInManage key. This tab is only relevant when developing 1st Gen Shells. For details, see [Customer Configuration Keys Repository](../../setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/general.md#show-the-drivers-management-page). -::: -CloudShell supports associating scripts and drivers with different domains. For more details, see: - -- [Associating Automation to Domains](./associating-automation-to-domains.md) - -## Related Topics - -- [Run Commands](../../../portal/sandboxes/sandbox-workspace/run-commands.md) diff --git a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-automation/index.md b/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-automation/index.md deleted file mode 100644 index 548885f11c..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-automation/index.md +++ /dev/null @@ -1,20 +0,0 @@ -# Managing Automation - -The Automation process is enabled in the **Sandbox** workspace and triggered during: - -- **Blueprint Orchestration**: You can use automation at the blueprint level when setting up and tearing down the sandbox. You can also define automation that the user can use during the lifetime of the sandbox. -- **Resource Automation**: You can run resource commands that perform different actions on the resource, including power on, power off, and deploy. - -Scripts and drivers are used in the automation process, and their functions vary. For more details, see: - -- [Managing Assets](../managing-automation/managing-assets.md) -- [Managing Drivers](../managing-automation/managing-drivers.md) (hidden by default, applies to 1st Gen shells only) - - :::warning Important - The Drivers management page is only visible if you set the HideDriversTabInManage key. This tab is only relevant when developing 1st Gen Shells. For details, see [Customer Configuration Keys Repository](../../setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/general.md#show-the-drivers-management-page). - ::: - - -CloudShell supports associating scripts and drivers with different domains. For more details, see: - -- [Associating Automation to Domains](./associating-automation-to-domains.md) \ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-automation/managing-assets.md b/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-automation/managing-assets.md deleted file mode 100644 index a20d51c7cc..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-automation/managing-assets.md +++ /dev/null @@ -1,421 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Managing Assets - -## Assets overview - -An asset is a script that runs automation in CloudShell sandboxes. CloudShell supports two types of scripts: - -- **Python scripts** that run on the resource/App/blueprint level: A script is a single command on the blueprint or resource/App level. You can add many scripts to your blueprint or resources. CloudShell runs the scripts, which actually are processed in an external environment such as Python, which then returns the results to CloudShell. - -*Sandbox environment automation and enhanced orchestration is available with CloudShell Premium Tier.* - -- **Repository Assets** are Configuration Management scripts (bash/PowerShell) or Ansible playbooks that run on resources. For Configuration Management that runs on deployed Apps, see [Adding App templates](../../../admin/cloudshell-manage-dashboard/manage-app-templates/app-template/adding-app-template.md). -:::note -For brevity, the term "script" denotes both Python scripts and repository assets, unless indicated otherwise. -::: -### Out-of-the-box orchestration scripts - -CloudShell provides the following orchestration scripts out-of-the-box. These scripts are included in the [CloudShell Sandbox Template](../../../admin/cloudshell-manage-dashboard/blueprint-templates.md#cloudshell-sandbox-template) but can also be added and removed from blueprints as appropriate. - -- Default Sandbox Setup -- Default Sandbox Teardown -- Default Sandbox Save -- Default Sandbox Restore - -To learn how to develop scripts for CloudShell, see [Getting Started with Orchestration Scripts](../../../devguide/develop-orch-scripts/getting-started-with-orch-scripts.md). - -## Viewing scripts - -In the **Manage** dashboard, you can view a repository of the blueprint and resource scripts that were uploaded in your domain. You can filter, sort, and search the repository for scripts. -:::tip -Global admins can see all scripts in CloudShell, including scripts that were added to other domains, while domain admins can only see scripts that were added to the domain they're currently in. -::: -**To view existing blueprint and resource scripts:** - -1. In the **Manage** dashboard, from the left sidebar, select **Assets \> Blueprint**, or **Assets \> Resource**. - - The respective script catalog opens, displaying the blueprint or resource scripts/assets that were previously added to CloudShell, and related details, including: **Name**, **Type**, **Version**, **Blueprints** or resource **Models**, **Type**, **Domains**, and **Modified** by date and time. - :::note - Clicking **Manage \> Assets** opens the **Script/Blueprint** catalog by default. - ::: -2. To filter the list by domain, from the **Domain** dropdown list, select **All Domains** or a particular domain. -3. To sort the list, from the **Sort By** dropdown list, select **Modified** to sort the list by date and time in chronological order, or select **Name** to sort the list by script name in alphabetical order. -4. To search for particular scripts, type the relevant text in the search box ![](/Images/CloudShell-Portal/Manage/Manage-Scripts-Drivers/Searching-for-a-script-or_2_114x27.png) at the top of the left sidebar. For example, you can search by name, type, model, or owner. - -## Adding scripts - -Scripts give you the flexibility to customize a blueprint and make extra features available, for example, adding specialized commands that can be run in a sandbox. You can add commands through Python scripts and upload them to CloudShell Portal to be used when configuring blueprint orchestration, including PY, PYC, and ZIP files containing several Python files. - -Use the steps in the following procedure to add blueprint and resource scripts to the CloudShell Portal. - -:::note Notes -- The script is added to the domain you are currently in. To expose the script to all domains, add the script in the Global domain -- By default, new scripts are added into CloudShell as Python 3 scripts. Therefore, if you're adding a Python 2 script, make sure to change the script's **Type**, as explained in [Editing scripts](../../../admin/cloudshell-manage-dashboard/managing-automation/managing-assets.md#editing-scripts). -::: -**To add blueprint and resource scripts:** - -1. In the **Manage** dashboard, from the left sidebar, select **Assets \> Blueprint** or **Assets \> Resource** to open the respective script catalog. - :::note - Repository assets only apply to resource-level components. - ::: -2. In the toolbar, click **\+ Add Python Script** to add a Python script or **\+ Add Repository Asset** to add a Configuration Management script/playbook. - - A dialog box is displayed, prompting you to select a script to upload. - -3. Browse and select a script file to upload to CloudShell, and click **Open**. - - The **Uploading Completed** message is displayed at the top of the script catalog, indicating the upload status. When completed, the **Edit** button is displayed on the right. For more information, see [Editing scripts](../../../admin/cloudshell-manage-dashboard/managing-automation/managing-assets.md#editing-scripts). - - -## Editing scripts - -This section explains how to edit a Python script or repository asset's default parameters. -:::note -Global admins can edit any script in CloudShell while domain admins can only edit scripts that were added to the domain they are currently in. -::: -**To edit Python scripts:** - -1. In the **Manage** dashboard, from the left pane, select **Assets \> Blueprint** or **Assets \> Resource** to open the respective script catalog. - -2. Click the **Name** of the script you want to edit. - - Or- - - Click the script's More actions button ![](/Images/CloudShell-Portal/Manage/ExecutionServersServersMenuButton_22x20.png) and select **Edit**. - - The **Edit Script** dialog box for the respective blueprint or resource script is displayed. - -3. Edit the relevant fields, as described in the following table: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FieldDescription
Script FileThe script file. To replace the current script file with another one, browse to the location where the required PY or PYC file is located, select the file, and click **Open**.
NameThe name of the script. Edit as required.
Script Type - From the dropdown list, select an option: - -- Default -- Setup -- Teardown -- Save -- Restore - -If you select **Setup**, **Teardown**, **Save**, or **Restore**, you cannot specify Category, Alias or parameters for the script. - -:::note -This field is relevant for blueprint scripts only. -::: -
VersionType the script version number. Remember to increment the number the next time you upload a new version of the script.
Visibility - (Hidden for blueprint scripts that have a Script Type defined) Determines who can see the script in the diagram's **Commands** pane: - -- **Admin Only**: Only domain admins and system admins -- **Everyone**: (Default) All user types -
Type - Select the Python version of the script. Options are **Python 2** or **Python 3**. - -The default setting is Python 3, but the CloudShell admin can change it via the `DefaultPythonVersion` configuration key. - -:::note Notes -- This does not affect existing scripts, whose Python version remains as is. -- Python 3 automation requires Microsoft Visual C++ Redistributable 2015 x86 and x64 to be installed on the Execution Server(s). -::: -
DescriptionType the relevant text to clearly describe the script.
Models - (Relevant for resource scripts) From the dropdown list, select the relevant resource models associated with the resource script. - -Associate App installation scripts to the relevant **Installation Options** model(s). -
Blueprints(Relevant for blueprint scripts) Lists the blueprints that use the script. This field is only visible if the script is included in any blueprints.
CategoryType the category name. In an active sandbox, in the **Blueprint Commands** pane, the scripts are arranged according to these categories.
AliasThe alias for the script. Edit as required. In an active sandbox, in the **Blueprint Commands** pane, the scripts appear under this alias.
- -4. To add additional parameters to the script, click the **Add Parameter** link at the bottom of the dialog box, and type the **Name**, **Default Value**, and **Description** of the parameter. Make sure you add parameters that are relevant for your script. - - These parameters will be available for editing when running the script in an active sandbox. - - To edit and delete the script parameters, click the adjacent **Edit** or **Delete** button. - -5. Click **Apply** to apply the changes and keep the window open. -6. Click **Save** to save the changes and close the window. - - The updated details of the edited script are displayed in the relevant blueprint or resource script catalog. - - -**To edit repository assets:** - -1. In the **Manage** dashboard, from the left pane, select **Assets \> Resource** to open the Resource Assets catalog. - -2. Click the **Name** of the repository asset you want to edit. - - Or- - - Click the asset's More actions button ![](/Images/CloudShell-Portal/Manage/ExecutionServersServersMenuButton_22x20.png) and select **Edit**. - - The **Edit Script** dialog box is displayed. - -3. Edit the relevant fields, as described in the following table: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FieldDescription
NameThe name of the asset. Edit as required.
Visibility - Determines who can see the asset in the diagram's **Commands** pane: - -- **Admin Only**: Only domain admins and system admins -- **Everyone**: (Default) All user types -
DescriptionType the relevant text to clearly describe the asset.
Select Tool - Select the resource's installation and configuration tool. - -- **Script**: Select the custom script to run (PowerShell, bash or sh). -- **Ansible**: (Intended for customers who are already using Ansible) Select the Ansible playbook to run. - - -Depending on the selection, additional options may become available. -
Connection Method - The method to use to connect to the resource. - -Select: - -- **SSH** if the resource has a Linux OS -- **Windows Remote Management** if the resource has a Windows OS -:::note -To run configuration management on a Windows machine, the machine must have WinRM enabled. For details, see [Enable WinRM on Windows VMs to Support Configuration Management](../../../devguide/enable-winrm-on-win-vm-for-cfg-mng.md). -::: -
URL - Details of the Ansible playbook or custom script. Unlike for Apps, resources support only one Configuration Management script or playbook. - -- **URL**: Raw URL of the Ansible playbook or ZIP file, or custom script on the online repository (GitHub, GitLab and BitBucket are supported). URL must be accessible to the Execution Servers. -:::tip -The URL can accept parameters defined on the App, enabling you to test new versions of scripts without affecting consumer-ready versions. For example, you can have an App everyone is using, but if you want to test a version you're developing, simply change the value of the URL parameter in the test blueprint. - -- To use parameters, specify the parameter name in curly brackets (for example: \{branch\}). -- If the App has this parameter, CloudShell will replace the \{branch\} with its value during execution. -- If the parameter is missing, CloudShell will replace \{branch\} with an empty string. -- If you are using a global input, customers would be well advised to set a default value on the global input -::: -
- -For GitHub, specify the raw URL. For example: - -```javascript -https://raw.githubusercontent.com/.../site.yml -``` -
-
- -For GitLab, specify the API endpoint in the format: - - -```javascript -https://gitlab.com/api/v4/projects/{Project ID}/repository/files/testsharding%2Eyml/raw?ref=master -``` - -Where: - -- Each special character that the file contains has to be encoded. In the example above - "%2E” is an encoded point (".”) - -- The ref value is the branch name (master for this example) -
- -
- -For BitBucket Data Center (on premise), use the following URL format: - - -```javascript -http://{datacenter server IP}/rest/api/1.0/projects/{projectKey}/repos/{repository name}/raw/testsharding.yml -``` -
-
- -For BitBucket Cloud, use one of the following: - - -- For source code files, specify the API endpoint: - -```javascript -https://api.bitbucket.org/2.0/repositories/{username}/{repository name}/src/{GUID- the Commit hash string} /testsharding.yml -``` - -- For download files (files residing in the repository's "Downloads" folder), specify this endpoint: - -```javascript -https://api.bitbucket.org/2.0/repositories/{username}/{repository name}/downloads/site.yml -``` -
-
User/Password(For private repositories) Access credentials or token to the script/playbook's online repository.
Token - (For private repositories) Access token to the script/playbook's online repository. - -For GitHub and GitLab, specify the API token. For BitBucket Data Center, specify the personal access token. -
Inventory Groups - (For Ansible) Specify the host groups for the Configuration Management to be installed, separated by semicolons (;), thus allowing plays that target these groups to run on the resource. - -For example: `Servers/AppServers;Servers/DBServers` -
ModelsFrom the dropdown list, select the relevant resource models associated with the asset.
CategoryType the category name. In an active sandbox, in the **Resource Commands** pane, the resource is arranged according to these categories.
AliasThe alias for the repository asset. Edit as required. In an active sandbox, in the **Resource Commands** pane, the asset appears under this alias.
- -4. To add additional parameters to the asset, click the **Add Parameter** link at the bottom of the dialog box, and type the **Name**, **Default Value**, and **Description** of the parameter. Make sure you add parameters that are relevant for your asset. - - These parameters will be available for editing when running the asset in an active sandbox. - - To edit and delete the asset parameters, click the adjacent **Edit** or **Delete** button. - -5. Click **Apply** to apply the changes and keep the window open. -6. Click **Save** to save the changes and close the window. - - The details of the update asset are displayed in the Resource Assets catalog. - - -## Downloading scripts - -You can download uploaded scripts to save them in your system. -:::note -Global admins can download any script in CloudShell while domain admins can only download scripts that were added to the domain they are currently in. -::: -**To download blueprint and resource scripts:** - -1. In the **Manage** dashboard, from the left pane, select **Assets \> Blueprint** or **Assets \> Resource**. - - The respective blueprint or resource script catalog is displayed. - -2. Click the script's More actions button ![](/Images/CloudShell-Portal/Manage/ExecutionServersServersMenuButton_27x26.png) and select **Download**. - - A dialog box is displayed, prompting you to open or save the file. - - -## Deleting scripts - -You can delete scripts you no longer require. -:::note -Global admins can delete any script in CloudShell while domain admins can only delete scripts that were added to the domain they are currently in. -::: -**To delete scripts:** - -1. In the **Manage** dashboard, from the left pane, select **Assets \> Blueprint** or **Assets \> Resource**. - - The respective blueprint or resource script catalog is displayed. - -2. Select the check boxes next to the relevant scripts that you want to delete. -3. In the toolbar, click the **Delete Selected** button. - - Or- - - Click the script's More actions button ![](/Images/CloudShell-Portal/Manage/ExecutionServersServersMenuButton_27x26.png) and select **Remove**. - - A message is displayed, prompting you to confirm the deletion. - - The selected scripts are removed from the respective blueprint or resource script catalog. - - -## Requirements, script dependencies, virtual environments - -Each Python script's dependencies are listed in the `requirements.txt` file that is included in the zip file that contains the script. The dependencies are installed on the execution server by the pip installation when CloudShell prepares the Python virtual environment for the script. To use offline execution servers, the admin will need to perform several additional configurations. - -For additional information, see [What are Python Virtual Environments?](../../cloudshell-execution-server-configurations/setting-up-python-virtual-environments/what-are-python-virtual-environments.md). - -## Related Topics - -- [Creating Blueprints](../../../portal/blueprints/creating-blueprints/index.md) -- [Create Blueprint Commands](../../../portal/blueprints/creating-blueprints/create-blueprint-commands.md) -- [Configure Blueprint Orchestration](../../../portal/blueprints/creating-blueprints/configure-orchestration.md) -- [Run Commands](../../../portal/sandboxes/sandbox-workspace/run-commands.md) -- [Run App Commands](../../../portal/sandboxes/sandbox-workspace/apps/run-app-commands.md) -- [CloudShell Sandbox Template](../blueprint-templates.md#cloudshell-sandbox-template) diff --git a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-automation/managing-drivers.md b/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-automation/managing-drivers.md deleted file mode 100644 index cad59e163f..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-automation/managing-drivers.md +++ /dev/null @@ -1,163 +0,0 @@ ---- -sidebar_position: 3 ---- - -# Managing Drivers -:::warning Important -The **Drivers** management page is only visible if you set the HideDriversTabInManage key. This tab is only relevant when developing 1st Gen Shells. For details, see [Customer Configuration Keys Repository](../../setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/general.md#show-the-drivers-management-page). -::: -## Drivers overview - -In CloudShell, a driver is a group of commands that can be associated with a blueprint or resource. Each blueprint or resource can have one driver associated with it. Blueprint drivers are developed in CloudShell Authoring while resource drivers can also be developed in Python, on their own or within Shells. To learn more about Shells, see [Managing Shells](../managing-shells.md). -:::note -Resource drivers are supported for backwards compatibility only. -::: -CloudShell manages the life cycle of the driver, where it: - -- **Initializes** the driver, whereby it allows the driver to do some setup initialization -- Performs **Cleanup** at the end of driver life cycle, whereby it allows the driver to free system resources for which the driver is no longer required -- Preserves the **State** of the driver commands - -## Viewing drivers - -In the **Manage** dashboard, you can view a repository of the blueprint and resource drivers that were uploaded in your domain. You can filter, sort, and search the repository for drivers. - -**To view existing blueprint and resource drivers:** - -1. In the **Manage** dashboard, from the left sidebar, select **Drivers \> Blueprint**, or **Drivers \> Resource**. - - The respective driver catalog opens, displaying the blueprint or resource drivers that were previously added to CloudShell, and related details, including: **Name**, **Type**, **Version**, **Blueprints** or resource **Models**, **Domains**, and **Modified** by date, time, and user name. - :::note - Clicking Manage > Drivers opens the Driver/Blueprint catalog by default. - ::: -2. To filter the list by domain, from the **Domain** dropdown list, select **All Domains** or a particular domain. -3. To sort the list, from the **Sort By** dropdown list, select **Modified** to sort the list by date and time in chronological order, or select **Name** to sort the list by driver name in alphabetical order. -4. To search for particular drivers, type the relevant text in the search box ![](/Images/CloudShell-Portal/Manage/Manage-Scripts-Drivers/Searching-for-a-script-or_2.png) at the top of the left sidebar. For example, you can search by name, type, model, or owner. - -## Adding drivers - -You can add drivers to resources or blueprints to add commands that can be run in a sandbox. Drivers can be developed using CloudShell Authoring or Python scripts that comply with the rules defined by CloudShell. To learn how to create Python scripts, see the [Getting Started with Orchestration Scripts](../../../devguide/develop-orch-scripts/getting-started-with-orch-scripts.md). -:::note -Python drivers may have dependencies they need to use in order to run. For additional information, see [Requirements, driver dependencies, virtual environments](../../../admin/cloudshell-manage-dashboard/managing-automation/managing-drivers.md#requirements-driver-dependencies-virtual-environments). -::: -You can also automate the execution of Python scripts using the API. For details about automating scripts, see [CloudShell Automation API](../../../api-guide/shell-dev-blueprint-design-api/cs-automation-api). - -You can upload the following CloudShell Authoring and Python drivers to the CloudShell Portal: - -- For resources, you can add DLL CloudShell Authoring drivers and ZIP files with Python drivers - :::note - Python drivers may have dependencies they need to use in order to run. For additional information, see [Requirements, driver dependencies, virtual environments](../../../admin/cloudshell-manage-dashboard/managing-automation/managing-drivers.md#requirements-driver-dependencies-virtual-environments). - ::: -- For blueprints, you can add DLL CloudShell Authoring drivers - :::note - The driver will be added to the domain you are currently in. To expose the driver to all domains, add the driver to the Global domain. - ::: -**To add blueprint and resource drivers:** - -1. In the **Manage** dashboard, from the left sidebar, select **Drivers \> Blueprint** or **Drivers \> Resource** to open the respective driver catalog. -2. In the toolbar, click **\+Add New Driver**. - - A dialog box is displayed, prompting you to select a driver to upload. - -3. Browse and select a driver file to upload to CloudShell, and click **Open**. - - The **Uploading Completed** message is displayed at the top of the driver catalog, indicating the upload status. When completed, the **Edit** button is displayed on the right. For more information, see [Editing drivers](#editing-drivers). - :::note - In the driver catalog, you can easily identify the driver type. The driver names are marked by the respective **Python** or **CloudShell Authoring** icon, and the **Type** column displays the driver type. - ::: - -## Editing drivers - -You can edit a driver to modify its default parameters. - -**To edit blueprint and resource drivers:** - -1. In the **Manage** dashboard, from the left sidebar, select **Drivers \> Blueprint** or **Drivers \> Resource** to open the respective driver catalog. -2. Click the **Name** of the driver you want to edit. - - Or- - - Click the driver's More actions button ![](/Images/CloudShell-Portal/Manage/ExecutionServersServersMenuButton.png) and select **Edit**. - - The **Edit Driver** dialog box for the respective blueprints or resource driver is displayed. - -3. Edit the relevant fields, as described in the following table. For each driver, additional read-only fields are displayed and vary per driver type and related functions. - - | Field | Description | - | --- | --- | - | Driver File | The driver file. To replace the current driver file with another one, browse to the location where the required file is located, select the file (DLL file for blueprint drivers, or zip, py, or pyc file for resource drivers), and click **Open**. | - | Name | The name of the driver. Edit as required. | - | Version | The driver version number is automatically generated by the system. The number will be automatically incremented with every new version of the driver. | - | Description | Type the relevant text to clearly describe the driver. | - | Models | (Relevant for resource drivers) From the dropdown list, select the relevant resource models to associate the resource driver to. After you upload the resource driver, you will need to associate it to its intended resource models.
To associate drivers to resource models via Resource Manager, see [Associating a driver to a resource model](../../../admin/setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/defining-the-resource-data-model.md#associating-a-driver-to-a-resource-model). | - -4. Click **Apply** to apply the changes and keep the window open. -5. Click **Save** to save the changes and close the window. - - The updated details of the edited driver are displayed in the relevant blueprint or resource driver catalog. - - -## Activating resource drivers - -After you upload the resource driver and you specify the resource models for it, you can then associate this driver with the existing inventory resources that do not have drivers. - -**To activate a resource driver:** - -1. In the **Manage** dashboard, from the left sidebar, select **Drivers \> Resource**. - - The resource driver catalog is displayed. - -2. Click the driver's More actions button ![](/Images/CloudShell-Portal/Manage/ExecutionServersServersMenuButton.png) and select **Set as active**. - - A dialog box is displayed, prompting you to confirm. - - A confirmation message is displayed, indicating the number of resources updated with this driver. - - -## Downloading drivers - -**To download blueprint and resource drivers:** - -1. In the **Manage** dashboard, from the left sidebar, select **Drivers \> Blueprint** or **Drivers \> Resource**. - - The respective blueprint or resource driver catalog is displayed. - -2. Click the driver's More actions button ![](/Images/CloudShell-Portal/Manage/ExecutionServersServersMenuButton.png) and select **Download**. - - A dialog box is displayed, prompting you to open or save the file. - - -## Deleting drivers - -**To delete drivers:** - -1. In the **Manage** dashboard, from the left sidebar, select **Drivers \> Blueprint** or **Drivers \> Resource**. - - The respective blueprint or resource driver catalog is displayed. - -2. Select the check boxes next to the relevant drivers that you want to delete. -3. In the toolbar, click the **Delete Selected** button. - - Or- - - Click the script's More actions button ![](/Images/CloudShell-Portal/Manage/ExecutionServersServersMenuButton.png) and select **Remove**. - - A message is displayed, prompting you to confirm the deletion. - - The selected drivers are removed from the respective blueprint or resource driver catalog. - - -## Requirements, driver dependencies, virtual environments - -Each Python driver's dependencies are listed in the `requirements.txt` file that is included in the zip file that contains the driver. The dependencies are installed on the execution server by the pip installation when CloudShell prepares the Python virtual environment for the driver. To use offline execution servers, the admin will need to perform several additional configurations. - -For additional information, see [What are Python Virtual Environments?](../../../admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/what-are-python-virtual-environments.md). - -## Related Topics - -- [Creating Blueprints](../../../portal/blueprints/creating-blueprints/index.md) -- [Create Blueprint Commands](../../../portal/blueprints/creating-blueprints/create-blueprint-commands.md) -- [Configure Blueprint Orchestration](../../../portal/blueprints/creating-blueprints/configure-orchestration.md) -- [Run Commands](../../../portal/sandboxes/sandbox-workspace/run-commands.md) -- [Run App Commands](../../../portal/sandboxes/sandbox-workspace/apps/run-app-commands.md) -- [CloudShell Sandbox Template](../../../admin/cloudshell-manage-dashboard/blueprint-templates.md#cloudshell-sandbox-template) diff --git a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-categories.md b/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-categories.md deleted file mode 100644 index 0d7114ae78..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-categories.md +++ /dev/null @@ -1,151 +0,0 @@ ---- -sidebar_position: 3 ---- - -# Managing Categories - -Categories enable system and domain administrators to organize CloudShell inventory items in logical groups, and expose specific items to members of a particular domain. - -## System Categories - -The system categories are stored as a pool of categories that can be used in a single domain or multiple domains. The categories are used to create catalogs. Two types of categories are supported. - -- Blueprint categories -- Service categories - -Categories are managed in the **Manage** dashboard and require the following user permissions: - -- System administrators can create and customize the system categories and also specific domain categories -- Domain administrators can create and customize categories only in the domain in which they are the administrator. - -### Managing system categories - -**To manage the system categories:** - -1. In the **Manage** dashboard, in the left sidebar, click **Categories**. -2. Select the desired category type, either **Blueprints Categories** or **Services Categories**. - ![](/Images/CloudShell-Portal/Manage/CatManagement1.png) - -### Creating a new system category - -**To create a new category:** - -1. In the left sidebar, click **Categories**. -2. Select the desired category type, either **Blueprints Categories** or **Services Categories**. - -3. Click **\+ Add New Category**. -4. In the **Add New Category** dialog box, enter the required information: - - | Field | Required | Description | - | --- | --- | --- | - | NAME | Required | Category name that displays in the catalog. | - | DESCRIPTION | Optional | Description of the category. | - | CATALOG | View only | The type of category, selected automatically according to categories view selection | - | LOCATION | Optional | Determines if the current definition is a category or sub-category:
If you leave the selection with slash (‘/’), then this definition is a Category.
If you select a value, then this definition becomes a sub-category of the selected category. | - | DOMAINS | Optional | Select the domain or domains where the category will be available.
If you are a domain administrator, the selected domain is displayed but cannot be changed.
If this category is a sub-category, this field inherits the domain values that were selected for the main category. The sub-category can be displayed in less domains than the main category. However, additional domains cannot be added. | - | IMAGE | Optional | You can add an image to the catalog definition. The recommended size for the image is 190x120 pixels (image size is limited to 400x400 pixels or 200Mb). | - -5. Click **Save**. - -In the **Categories** list, sub-categories have a line in front of the category name, as displayed in the following image: - -![](/Images/CloudShell-Portal/Manage/CatManagement1-_1.png) - - -### Editing system categories - -**To edit a system category:** - -1. In the left sidebar, click **Categories**. -2. Select the desired category type, either **Blueprints Categories** or **Services Categories**. -3. In the list of categories, click the name of the required category. -4. In the **Edit Category** dialog box, edit the required fields. -5. Click **Save**. -:::note -The category's Location is not editable. -::: -### Deleting system categories - -**To delete a system category**: - -1. In the left sidebar, click **Categories**. -2. Select the desired category type, either **Blueprints Categories** or **Services Categories**. -3. In the list of categories, select the checkbox next to the category to delete. -4. Click the **Delete** button. - -or- - At the end of the row of the required category, click the menu icon and select Delete . -:::note -If you delete a category that has sub-categories, they are automatically deleted. Connections between blueprints and deleted categories and sub-categories are removed. -::: -## Managing domain categories - -You can create, add or remove categories from a domain. - -The system administrator can, but is not limited to, use system categories in the specific domain while the domain administrator can only create new categories in their specific domain. -:::note -Categories created in a specific domain are also added as system categories. -::: -![](/Images/CloudShell-Portal/Manage/CatManagement1_2.png) - -### Adding domain categories - -Domain categories are accessible for users of the specified domain and of course to the system administrator. - -**To add a category to a domain:** - -1. In the left sidebar, click **Domains**. -2. Click the required domain. -3. Select the desired category type, either **Blueprints Categories** or **Services Categories**. -4. Click **Add Category to Domain**. -5. In the **Select Categories for This Domain** dialog box, select the categories to add (this step is available only for system administrators). -6. To create a new category, click **Create New Category** (opens by default to domain administrator), define the new category and click **Save**. -7. Click **Done**. - - -### Editing domain categories - -Editing a domain category as a system administrator will update the system category as well. Domain users cannot edit system categories that were added as domain categories. - -**To edit a domain category:** - -1. In the left sidebar, click **Domains**. -2. Click the required domain. -3. Select the desired category type, either **Blueprints Categories** or **Services Categories**. -4. In the list of categories, click the name of the required category. -5. In the **Edit Category** dialog, edit the required fields. -6. Click **Save**. -:::note -Location of **Category** and **Domain** are not editable. -::: -### Deleting categories from domains - -**To delete a category from a domain:** - -1. In the left sidebar, click **Domains**. -2. Click the required domain. -3. Select the desired category type, either **Blueprints Categories** or **Services Categories**. -4. In the list of categories, select the required category/categories. -5. Click the **Delete** button. - -or- - At the end of the row of the required category, click the menu icon and select **Delete** . -:::note -If you delete a category that has sub-categories, they are automatically deleted. Connections between blueprints and deleted categories and sub-categories are removed. Deleting a category from a domain removes the category from that domain but keeps the category in the system. -::: -## Rearranging order of categories - -You can change the order in which categories and sub-categories are displayed in the **Blueprint Catalog** (blueprints categories) or in the **Add App / Service** window (services categories). - -**To rearrange the categories' order:** - -- Drag the required category up or down within the list to the desired position. - - -or- - - Select a category and use the position controls (on top bar or inside the More Actions menu ![](/Images/CloudShell-Portal/Manage/ExecutionServersServersMenuButton.png)) to move the category up or down. - -:::note -When moving a category, its sub-categories are also moved. When moving a sub-category, it changes order only under the main category. Only one category can be moved at a time. -::: -## Related Topics - -- [Manage Dashboard Overview](../../admin/cloudshell-manage-dashboard/manage-dashboard-overview.md) diff --git a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-execution-servers/_category_.json b/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-execution-servers/_category_.json deleted file mode 100644 index 6f8fb42d5d..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-execution-servers/_category_.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "label": "Managing Execution Servers", - "position": 6, - "link": { - "slug": "admin/manage-dashboard/execution-servers", - "type": "generated-index", - "description": "This article explains how to track and manage the execution servers, and the command and job executions in CloudShell." - } -} diff --git a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-execution-servers/execution-servers-commands-queue-page.md b/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-execution-servers/execution-servers-commands-queue-page.md deleted file mode 100644 index 6072b8e189..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-execution-servers/execution-servers-commands-queue-page.md +++ /dev/null @@ -1,144 +0,0 @@ ---- -sidebar_position: 4 ---- - -# Execution Servers - Commands Queue Page - -The **Commands Queue** page lists the command executions that are currently in the queue. In addition, it displays the reason why each command is in the queue. This applies to all types of commands in CloudShell, including resource/App/service commands coming from the shell's driver and orchestration commands. For details on developing such commands, see [Driver Deep Dive](../../../devguide/developing-shells/driver-deep-dive.md) and [Script Deep Dive](../../../devguide/develop-orch-scripts/script-deep-dive.md). - -![](/Images/CloudShell-Portal/Manage/ExecutionServersCommandsQueue.png) - -The information available for each command execution in the **Commands Queue** page includes: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
Command NameName of the command in CloudShell
Type**Blueprint** or **Resource**
Sandbox NameLink to the sandbox
Resource NameName of the CloudShell resource. This field is empty for blueprint commands.
Enqueue TimeTime when the command execution entered the queue, set to the time zone defined in CloudShell Portal.
Status - Reason why the command is in the queue. -:::important -If additional information is available, an exclamation mark (!) is displayed next to the command's status. Hover over the exclamation mark to see a table of matching execution servers. Each row in the table displays an execution server's name and the status, or reason why the command is not running on it. The statuses are explained in the Statuses section below. -::: -
- -## Statuses - -### If no compatible execution server exists: - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
StatusDescription
"New, Waiting to be processed"The command has not been processed by CloudShell. CloudShell typically processes new commands within a few seconds, so the command should be processed shortly.
"Pending, Concurrent commands not enabled" - A command is already running on the resource but the command's shell does not support running multiple commands at the same time, or, if it's a blueprint command, a command is already running on the sandbox but CloudShell is configured to not support multiple blueprint commands at the same time. - -To fix this issue, do one of the following: - -- Wait for the current command to complete. The enqueued command will run as soon as a command slot is available on the execution server. -- Stop the currently running command that is preventing the enqueued command to run. -- Enable concurrent commands for the resource or blueprints, as follows: - - For resources based on 1st Gen Shells, in **Resource Manager Client**, open the Shell's model and in the **Parameters** area, select **Supports Concurrent Commands**. For 2nd Gen Shells, you need to add support concurrent commands in the `shell-definition.yaml` file, as explained in [Drivers and concurrency](../../../devguide/developing-shells/driver-deep-dive.md#drivers-and-concurrency). To enable concurrent blueprint script commands, set the `AllowConcurrentTopologyScriptCommands` configuration key to `true`. -
"No installed execution servers" - CloudShell cannot find any registered execution servers. In this case, while the command was in the queue, all your execution servers were deleted, possibly through the **Execution Servers - Executions** page. - -To fix this issue, install the execution server(s) using the **TestShell Execution Server Configuration Wizard**. -
"No execution servers matching attribute requirements (!)" - The command's resource or App is defined to select an execution server by **Execution Server Selector** attributes but no execution server matches the criteria. - -To link the element to an execution server, see the appropriate "Controlling execution server selection" section in [Setting Up Execution Servers to Run Commands](../../cloudshell-execution-server-configurations/setting-up-execution-servers-to-run-commands.md). -
"Execution server with existing driver instance doesn't match attribute requirements (!)" - When a resource command is executed, an instance of the shell's driver is created on the execution server that is running the command. - -This is a very specific scenario in which the instance on the execution server is still alive, but the user links the resource's Shell to a different execution server and attempts to run another command on that resource. However, the new command will enter the queue since multiple instances of the same driver cannot co-exist, and the original instance is associated to a different execution server. - -To fix the issue, do one of the following: - -- Wait for the idle timeout of the original driver instance to pass, which will terminate the instance and enable the new command to run. -- Terminate the original driver instance in the **Execution Servers - Executions** page. -- Add the missing attribute value to the execution server hosting the driver instance. -
- -### If compatible execution servers exist: - - - - - - - - - - - - - - - - -
StatusDescription
"Pending, Waiting to be processed"CloudShell typically processes enqueued commands within a few seconds, so the command will either be processed shortly or executed on a compatible execution server, as soon as one is available.
"No Available Execution Server (!)" - CloudShell has execution servers that can run the command, but none are available at the moment. To see why the execution servers are unavailable, hover over the more info icon. - -Possible reasons are that the execution servers are: - -- Excluded -- Offline -- Set to have a zero command slots capacity -- All command slots are being used. -
- -## Related Topics - -- [Execution Servers - Overview Page](../managing-execution-servers/execution-servers-overview-page.md) -- [Execution Servers - Servers Page](../managing-execution-servers/execution-servers-servers-page.md) -- [Execution Servers - Executions Page](../managing-execution-servers/execution-servers-executions-page.md) diff --git a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-execution-servers/execution-servers-executions-page.md b/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-execution-servers/execution-servers-executions-page.md deleted file mode 100644 index 504a3f6ab7..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-execution-servers/execution-servers-executions-page.md +++ /dev/null @@ -1,147 +0,0 @@ ---- -sidebar_position: 3 ---- - -# Execution Servers - Executions Page - -The **Executions** page enables you to both view the real time status and general information of active driver instances and job executions and manage their executions. - -Regarding drivers, the **Executions** page displays the instances of the active drivers, not their commands. For additional information, see [Instance](../../../intro/Term.md#instance). - -:::note Notes -- Starting with CloudShell 9.3, CloudShell runs orchestration scripts directly without needing the **Python Setup & Teardown** blueprint driver. This out-of-the-box behavior can be changed using the ExecutePythonOrchestrationScriptsDirectly configuration key. -- The blueprint driver is still included with CloudShell and running orchestration scripts manually from the sandbox's **Blueprint Commands** pane will invoke it, creating an instance for the driver in the **Executions** page. -::: -![](/Images/CloudShell-Portal/Manage/ExecutionServersExecutionsPage.png) - -The information available for each driver or test in the **Executions** page includes: - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
NameDisplays the name of the resource or blueprint containing the driver, and for tests, the path of the current test.
Type - Indicates the type of driver: - -- **Blueprint** for sandbox-level drivers -- **Resource** for resource/service/App drivers -
ServerThe name of the execution server running the execution.
Status - Current status of the execution. - -For drivers: - -- **Active**: driver instance has command executions -- **Idle**: driver instance has no command executions - -For jobs: - -- **Running**: tests are currently running -
menu icon ![](/Images/CloudShell-Portal/Manage/ExecutionServersServersMenuButton_20x19.png) - The following options are available: - -- **Stop**: Stop all command executions of a specific driver/script instance. Applies to both CloudShell Authoring and Python drivers. -- **Remove**: Remove a CloudShell Authoring driver instance and its command executions. -- **Terminate**: Remove a Python driver instance and any command executions that are running on the instance. -- **Details**: Show the job details page in the **Job Scheduling** dashboard. - -For example: - -![](/Images/CloudShell-Portal/Manage/ExecutionServersStopTerminate.png) -
- -## Stopping all command executions of a specific driver instance - -This procedure shuts down the command executions of a driver's instance but leaves the instance alive. This also applies to script executions. -:::tip -To stop a specific command execution, in the sandbox workspace, open the appropriate commands pane and click Stop. For additional information, see [Stopping commands during execution](../../../portal/sandboxes/sandbox-workspace/run-commands.md#stopping-commands-during-execution). -::: -**To stop a driver's commands:** - -1. In the **Execution Servers** page, click **Executions**. - - The **Executions** view of the page is displayed. - -2. Click the execution's menu button and select **Stop**. - - ![](/Images/CloudShell-Portal/Manage/ExecutionServersStopTerminate.png) - - The execution is stopped and removed from the page. If there are any commands in the queue for this resource, they will run now in the instance. - :::note - If errors occur when attempting to stop a command or a test, please contact Quali Support at: [support.quali.com](https://support.quali.com/). Quali Support can assist you in testing your network and in adjusting your configuration to help solve these issues.. - ::: - -## Terminating a driver's instance or script execution - -*This procedure applies to Python drivers and scripts. For CloudShell Authoring drivers, see [Removing a driver's instance](../managing-execution-servers/execution-servers-executions-page.md#removing-a-drivers-instance).* -:::note -Driver instances may include multiple command executions while script executions only have one. For brevity, the term "instance" is used for both driver instances and script executions. -::: -Terminating a driver's instance immediately cancels all running commands on that instance, without waiting for them to complete. Therefore, it is recommended to either stop a command or let it run its course instead of terminating. - -In some cases, however, terminating an instance is required. For example, if you associate the resource or App to an execution server, but already have an instance of the driver running on a different execution server, that instance will prevent new commands from running on the resource. This is because the instance is associated to the wrong execution server and multiple driver instances of the same component cannot co\-exist in CloudShell. In this case, terminating the driver instance will enable the new commands to run on the correct execution server. - -:::note Notes -- Terminating running commands may cause unexpected behavior. For example, terminating a Teardown command execution on a sandbox with Azure VMs may prevent CloudShell from deleting the sandbox's resource group and VMs from the cloud provider. -- In some cases, terminating a driver's instance in one sandbox may apply to other sandboxes if the resource is shared and is being used in different sandboxes, or in a scenario where concurrent commands are running on the resource. -::: -**To terminate a driver's instance or script execution:** - -1. In the **Execution Servers** page, click **Executions**. - - The **Executions** view of the page is displayed. - -2. Click the execution's menu button and select **Terminate**. - - ![](/Images/CloudShell-Portal/Manage/ExecutionServersStopTerminate.png) - -3. In the confirmation window, click **OK**. If there are any commands in the queue for this resource, they will run now in a new instance. - -## Removing a driver's instance - -*This procedure applies to CloudShell Authoring drivers. For Python drivers, see [Terminating a driver's instance or script execution](../managing-execution-servers/execution-servers-executions-page.md#terminating-a-drivers-instance-or-script-execution).* - -In some scenarios, you may need to remove a driver's instance. - -For example, if you associate the resource or App to an execution server, but already have an instance of the driver running on a different execution server, that instance will prevent new commands from running on the resource. This is because the instance is associated to the wrong execution server and multiple driver instances of the same component cannot co\-exist in CloudShell. In this case, terminating the driver instance will enable the new commands to run on the correct execution server. -:::note -Before you remove an Authoring driver instance, make sure you stop all of the instance's command executions and exclude the execution server on which the instance resides. To exclude an execution server, see [Including/excluding execution servers](../managing-execution-servers/execution-servers-servers-page.md#includingexcluding-execution-servers). -::: -**To remove a driver instance:** - -1. In the **Execution Servers** page, click **Executions**. - - The **Executions** view of the page is displayed. - -2. In the row of the required execution, click the menu icon and select **Remove**. - - ![](/Images/CloudShell-Portal/Manage/ExecutionServersRemove.png) - - -## Related Topics - -- [Execution Servers - Overview Page](../managing-execution-servers/execution-servers-overview-page.md) -- [Execution Servers - Servers Page](../managing-execution-servers/execution-servers-servers-page.md) -- [Execution Servers - Commands Queue Page](../managing-execution-servers/execution-servers-commands-queue-page.md) diff --git a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-execution-servers/execution-servers-overview-page.md b/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-execution-servers/execution-servers-overview-page.md deleted file mode 100644 index 8487a834c3..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-execution-servers/execution-servers-overview-page.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Execution Servers - Overview Page - -The **Overview** page displays the total number of running/scheduled/pending jobs and commands, and the availability status of the execution servers, job slots and command slots. - -![](/Images/CloudShell-Portal/Manage/ExecutionServersOverviewPage.png) - -## Related Topics - -- [Execution Servers - Servers Page](../managing-execution-servers/execution-servers-servers-page.md) -- [Execution Servers - Executions Page](../managing-execution-servers/execution-servers-executions-page.md) -- [Execution Servers - Commands Queue Page](../managing-execution-servers/execution-servers-commands-queue-page.md) diff --git a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-execution-servers/execution-servers-servers-page.md b/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-execution-servers/execution-servers-servers-page.md deleted file mode 100644 index b2e5bbbcc6..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-execution-servers/execution-servers-servers-page.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Execution Servers - Servers Page - -In the **Servers** page, you can view and manage the execution servers in CloudShell. - -![](/Images/CloudShell-Portal/Manage/ExecutionServersServersPage.png) - -The information available for each execution server in the **Servers** page includes: - -| Property | Description | -| --- | --- | -| Server | Name and description | -| Type | (Relevant if you are using **Job Scheduling** and a custom-developed execution server)
Indicates if the Execution Server is a CloudShell Execution Server (Windows or Linux-based) or a custom-developed Execution Server. For example, "TestShell" indicates standard CloudShell execution servers that run commands and TestShell tests. | -| Status | **Included** or **Excluded** | -| Connection | **Online** or **Offline**
If you are experiencing network-related issues between Quali Server and the Execution Server, for example, the Execution Server's connection status changes frequently from online to offline, please contact Quali Support at: [support.quali.com](https://support.quali.com/). Quali Support can assist you in testing your network and in adjusting your configuration to help solve these issues. | -| Activity | Indicates if the execution server is doing anything at the moment. For example, **Idle** (no tests/commands are running) or **3 Running** (3 executions are currently running) | -| Job Slots | Displays the permitted number of concurrent jobs | -| Command Slots | Displays the permitted number of concurrent commands | -| Host Name | Displays the host name of the machine on which the execution server is installed. Hover over the host name to see the machine's operating system. | - -## Including/excluding execution servers - -Execution servers need to be excluded in certain situations. For example, when doing maintenance work on a particular machine and you don't want anybody to use it. - -In addition, the execution server may exclude itself in the event of a runtime error. - -:::note Important -Excluding an execution server basically means that we're excluding it from new assignments, so when you exclude an execution server, it will complete any running jobs/commands but new ones will be handled by an available execution server. -::: -**To change the status of the execution server:** - -1. In the **Execution Servers** page, click **Servers**. - - The **Servers** view of the page is displayed. - -2. Click the execution server's menu button ![](/Images/CloudShell-Portal/Manage/ExecutionServersServersMenuButton.png) and select the appropriate option.![](/Images/CloudShell-Portal/Manage/ExecutionServersIncludeExclude.png) - -## Viewing the current execution activity of an execution server - -**To view the execution activity of an execution server:** - -1. In the **Execution Servers** page, click **Servers**. - - The **Servers** view of the page is displayed. - -2. Click the execution server's menu button ![](/Images/CloudShell-Portal/Manage/ExecutionServersServersMenuButton.png) and select **View Executions**. Alternatively, click **Executions** from the left menu. - -## Setting attribute values - -In order to improve performance and stability in CloudShell deployments that include multiple geographically distributed sites, it is recommended to configure the deployment process of resource and App commands to run on execution servers that are physically closest to those elements. This is also used to restrict CloudShell's blueprint commands to run on a dedicated execution server or group of execution servers. - -This is done by associating an attribute that has the **Execution Server Selector** rule to the resource or App. And setting the same attribute value on that resource or App and on the execution server or execution servers that will deploy the element's commands. For blueprint commands, the attribute needs to be created, and linked to blueprint command executions using the `EnvironmentCommandsESRestrictions` configuration key. For additional information, see the "Controlling execution server selection" sections in [Setting Up Execution Servers to Run Commands](../../cloudshell-execution-server-configurations/setting-up-execution-servers-to-run-commands.md). - -**To set an attribute value on an execution server:** - -1. In the **Execution Servers** page, click **Servers**. - - The **Servers** page is displayed. - -2. Click the name of the execution server or click the execution server's menu button ![](/Images/CloudShell-Portal/Manage/ExecutionServersServersMenuButton.png) and select **Attributes**. - - The **Attributes** dialog box is displayed, showing the **Execution Server Selector** attributes in CloudShell. - - ![](/Images/CloudShell-Portal/Manage/ExecutionServersServersAttributes.png) - -3. Select the check box of the appropriate attribute and specify the value that is set on the resource's attribute. For example, the domain name. - -4. Click **Done**. - -## Deleting an execution server - -**To delete an execution server from CloudShell:** - -1. In the **Execution Servers** page, click **Servers**. - - The **Servers** view of the page is displayed. - -2. Click the execution server's menu button ![](/Images/CloudShell-Portal/Manage/ExecutionServersServersMenuButton.png) and select **Delete**. - -## Related Topics - -- [Execution Servers - Overview Page](../managing-execution-servers/execution-servers-overview-page.md) -- [Execution Servers - Executions Page](../managing-execution-servers/execution-servers-executions-page.md) -- [Execution Servers - Commands Queue Page](../managing-execution-servers/execution-servers-commands-queue-page.md) diff --git a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-shells.md b/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-shells.md deleted file mode 100644 index d290ddcdc8..0000000000 --- a/versioned_docs/version-2023.3/admin/cloudshell-manage-dashboard/managing-shells.md +++ /dev/null @@ -1,150 +0,0 @@ ---- -sidebar_position: 4 ---- - -# Managing Shells -:::note -The procedures in this article apply to 2nd Gen Shells, unless stated otherwise. For information about 1st Gen Shells, contact CloudShell Support. -::: -This article explains how to add, update and remove Shells from CloudShell. Note that Shell management operations are performed by system administrators in the **Global** domain. For additional information, see [Shells Overview](../../intro/features/shells.md). - -## Viewing Shells - -The **Shells** page is only displayed for system administrators in the **Global** domain. - -**To view Shells:** - -1. As system administrator, access the **Global** domain. -2. In the **Manage** dashboard, in the left sidebar, click **Shells**. - - The **Shells** page is displayed. - - -You can use the toolbar to only display official Quali shells, sort the Shells according to **Name** or date of modification, and filter them according to Shell **Type**. - -## Importing Shells -:::warning -A shell update is not reversible(in other words, you cannot downgrade to an earlier shell version). Therefore, update the template version in the shell's `shell-definition.yaml` ONLY when something in the data model changes (new attributes added to `shell-definition.yaml`). Any changes in just the driver or underlying packages you can keep the template version number the same and then freely "roll back" to a previous version if the shell presents unexpected behavior. -::: -**To import a new Shell into CloudShell:** - -- From the **Add Shells** drop-down list, select the appropriate option: - - - **Get From Community** to download a compatible Shell from [Quali Repositories](https://github.com/orgs/QualiSystems/discussions/categories/integrations) page. After you download the Shell, Click **Add Shells>Add From File** to import the Shell into CloudShell. - - **Add From File** if you already have the Shell ZIP file and want to import it into CloudShell - :::note - To import a 1st Gen Shell, see [Import a Blueprint Package into CloudShell](../../portal/blueprints/creating-blueprints/import-package.md). - ::: - - The Shell is displayed in the **Shells** page and can be used by domain administrators in all CloudShell domains to create new inventory resources, as explained in [Adding Inventory Resources](../../portal/inventory/managing-resources/adding-inventory-resources/index.md). - - :::note Notes - - If you are planning on running CloudShell in offline mode, and the Shell has dependencies, make sure to update the dependencies repository - see [Updating Python Dependencies for Shells, Drivers and Scripts](../../admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/updating-python-dependencies-for-shells-drivers-and-scripts.md). - - Python 3 automation requires Microsoft Visual C++ Redistributable 2015 x86 and x64 to be installed on the Execution Server(s). - ::: - -## Adding custom attributes to a Shell - -This section explains how to add an attribute from the pool of global attributes to the Shell and set the attribute's defaults. Note that this capability applies to the Shell's root model and sub-models. - -:::note Notes -- This capability applies to attributes that already exist in CloudShell. If the attribute you want to add is missing, make sure to add it in Resource Manager Client's **Attributes** tab. -- Custom attributes that are added to already-installed service shells are defined as "user input". As such, when adding the service into the blueprint/sandbox diagram, these attributes are displayed in the service's details form. In addition, when upgrading CloudShell to 9.1 or a later version, CloudShell will set all custom service attributes as user input. -::: -**To add a custom attribute to a Shell:** - -1. Click the Shell's row or menu button ![](/Images/CloudShell-Portal/Manage/ExecutionServersServersMenuButton_28x27.png) and select **Details/Edit**. - - The **Details/Edit Resource** dialog box is displayed. - -2. Click the **Add Custom Attribute** link at the bottom. - - A New Attribute is added to the list of attributes. - -3. Select the **Attribute Name**. -4. Select the **Model Name** that will contain the attribute. -5. Optionally specify a **Default Value** (Mandatory for Lookup and Numeric attributes). -6. (For Lookup attributes) Use the **Restricted Values** field to optionally determine the attribute's possible values in this resource. - :::tip - To link the attribute’s possible values to the global attribute, remove all restricted values. This way, any updates made to the global attribute in Resource Manager Client are automatically applied to the shell’s attribute. - ::: - -## Updating Shells - -Shell update overrides that existing Shell's settings with the new Shell. -:::warning -A shell update is not reversible(in other words, you cannot downgrade to an earlier shell version). Therefore, update the template version in the shell's `shell-definition.yaml` ONLY when something in the data model changes (new attributes added to `shell-definition.yaml`). Any changes in just the driver or underlying packages you can keep the template version number the same and then freely "roll back" to a previous version if the shell presents unexpected behavior. -::: -:::note Points to consider -- You can only update Shells with a compatible version. -- Updating an uncertified Shell may cause backward compatibility issues. -::: - -**To update a Shell:** - -1. Click the Shell's menu button ![](/Images/CloudShell-Portal/Manage/ExecutionServersServersMenuButton_27x26.png) and select **Update**. - - A dialog box is displayed. - -2. In the dialog box, navigate to the updated Shell's ZIP file, select it and click **Open**. - :::note - If you are planning on running CloudShell in offline mode, and the Shell has dependencies, make sure to update the dependencies repository - see [Updating Python Dependencies for Shells, Drivers and Scripts](../cloudshell-execution-server-configurations/setting-up-python-virtual-environments/updating-python-dependencies-for-shells-drivers-and-scripts.md). - ::: - -## Downloading Shells from CloudShell - -CloudShell enables you to download Shells from the Shells page. This can be useful if you or a developer in your organization wants to make changes or updates to a specific Shell, as explained in the CloudShell Dev Guide's [Getting Started with Shell Development](../../devguide/developing-shells/getting-started.md). You can then update the existing Shell in CloudShell with the updated one. - -**To download a Shell from CloudShell:** - -1. Click the Shell's menu button ![](/Images/CloudShell-Portal/Manage/ExecutionServersServersMenuButton_26x24.png) and select **Download**. - - Depending on your web browser, a dialog box prompting you to save the Shell's ZIP file or a "downloading" indication is displayed. - -2. Save the file. - -## Deleting Shells - -Shells that have inventory resources cannot be deleted. -:::note -To delete a 1st Gen Shell, you must use the `DeleteResourceTemplate` method in the [TestShell API](../../api-guide/shell-dev-blueprint-design-api/testshell-api.md). -::: -**To delete Shells:** - -- Click the Shell's menu button ![](/Images/CloudShell-Portal/Manage/ExecutionServersServersMenuButton_29x28.png) and select **Remove**. - - If the Shell cannot be deleted, an error message is displayed, prompting you to download a CSV file. - - ![](/Images/CloudShell-Portal/Manage/ShellDependenciesMessage.png) - - The file lists the Shell's dependencies that need to be removed before deleting the Shell, and contains the following details: - - - - - - - - - - - - - - - - - - - - - - - - -
Entity NameNames of the elements in CloudShell
Entity TypeType of elements (Resource, Service, App, Abstract Resource, Abstract Template)
Blueprint NamesNames of the blueprints containing the elements
Blueprint Template NamesNames of the blueprint templates containing the elements
Sandbox NamesNames of sandboxes containing the elements
- - -## Related Topics - -- [Adding Inventory Resources](../../portal/inventory/managing-resources/adding-inventory-resources/index.md) diff --git a/versioned_docs/version-2023.3/admin/index.md b/versioned_docs/version-2023.3/admin/index.md deleted file mode 100644 index a116e684a1..0000000000 --- a/versioned_docs/version-2023.3/admin/index.md +++ /dev/null @@ -1,15 +0,0 @@ -# CloudShell Administration - -Admin responsibilities include: - -- Setting up CloudShell -- Assigning users to groups and groups to domains -- Adding resources to the CloudShell inventory -- Adding Apps and services, and associating them to domains -- Adding users, groups, and domains -- Associating resources with domains -- Setting up the CloudShell license server - -:::note -Some of these actions are performed in **Resource Manager Client** and others in **CloudShell Portal**. -::: \ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/_category_.json b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/_category_.json deleted file mode 100644 index b0a5808e5c..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/_category_.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "label": "Setting Up CloudShell", - "position": 2, - "link": { - "type": "generated-index", - "description": "The following articles explain how to set up and configure CloudShell" - } -} diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/_category_.json b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/_category_.json deleted file mode 100644 index 5dbdaa4bee..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "CloudShell Configuration Options", - "position": 4 -} diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/advanced-cloudshell-customizations.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/advanced-cloudshell-customizations.md deleted file mode 100644 index ea3eb662db..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/advanced-cloudshell-customizations.md +++ /dev/null @@ -1,2313 +0,0 @@ ---- -sidebar_position: 3 ---- - -# Advanced CloudShell Customizations - -## Introduction - -This topic describes how to use CloudShell configuration keys to customize and configure CloudShell. For the complete repository of our customer configuration keys, see [Customer Configuration Keys Repository](../../setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/index.md). - -## How to use configuration keys - -Some configurations involve setting configuration keys. This means copying the key into the appropriate `customer.config` file, as a new line anywhere in the file before the closing `` tag, and restarting the relevant component: - -- For Server configurations, restart the **Quali Server** service in the **Windows Services** dialog box or run the **Quali Server Configuration Wizard**. -- For Portal configurations, restart the CloudShell Portal website via the IIS Manager or run the **CloudShell Portal Configuration Wizard** if the CloudShell Portal website is running on IIS Express. - -## How to use this article - -In this article, you will find CloudShell keys, logically arranged in categories. For example, the Setting home page `key = HomePageUrl` is found under the General category both in the table (see [Set the default home page (HomePageUrl)](./customer-configuration-keys-repository/general.md#set-the-default-home-page) in the list of keys) and in the General category [Setting the default home page](#setting-the-default-home-page). - -The following categories are used to organize the configuration keys: - -- [Abstract resources](./advanced-cloudshell-customizations.md#abstract-resources) -- [API](./advanced-cloudshell-customizations.md#api) -- [Apps](./advanced-cloudshell-customizations.md#apps) -- [Connectivity management and route configuration](./advanced-cloudshell-customizations.md#connectivity-management-and-route-configuration) -- [Custom live status icons](./advanced-cloudshell-customizations.md#custom-live-status-icons) -- [Blueprint Catalog](./advanced-cloudshell-customizations.md#blueprint-catalog) -- [Blueprint Workspace](./advanced-cloudshell-customizations.md#blueprint-workspace) -- [Execution Server](./advanced-cloudshell-customizations.md#execution-server) -- [General](./advanced-cloudshell-customizations.md#general) -- [Inventory dashboard](./advanced-cloudshell-customizations.md#inventory-dashboard) -- [New Job Scheduling](./advanced-cloudshell-customizations.md#new-job-scheduling) -- [LDAP Integration](./advanced-cloudshell-customizations.md#ldap-integration) -- [Monitoring](./advanced-cloudshell-customizations.md#monitoring) -- [Online Help](./advanced-cloudshell-customizations.md#online-help) -- [Registration, passwords, emails, and licenses](./advanced-cloudshell-customizations.md#registration-passwords-emails-and-licenses) -- [Sandboxes](./advanced-cloudshell-customizations.md#sandboxes) -- [Scheduling and Queuing](./advanced-cloudshell-customizations.md#scheduling-and-queuing) -- [Scheduling commands](./advanced-cloudshell-customizations.md#scheduling-commands) -- [Search](./advanced-cloudshell-customizations.md#search) -- [Single Sign On (SSO)](./advanced-cloudshell-customizations.md#single-sign-on-sso) -- [TestShell Studio](./advanced-cloudshell-customizations.md#testshell-studio) - -## Abstract resources - -### Advanced: Randomized abstract resource selection - -By default, the abstract resource selection process is randomized in order to reduce clashes when blueprints are resolved in parallel. Disabling randomization will cause abstract resources and network connections to be resolved in the same order each time. - -**To make abstract resolution non-randomized:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -### Changing the number of matches that are considered for abstract sub-resource requirements - -For performance reasons, when resolving sub-resource requirements, CloudShell only considers the first 1000 matches it finds. This default can be changed using the `AbstractSubResourceResultsPageSize` configuration key. -:::note -This key only applies to the matches that are considered for resolution of the abstract resource and is unrelated to the matches indicator in the abstract resource's dialog box. -::: -**To change the default for possible abstract sub-resource requirements:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file. -2. Add the following key: - - `` - -3. Change the value as appropriate. - -4. Save the file. -5. Restart the **Quali Server** service. - -## API - -For configuration keys related to API SSO, see [SSO Login to CloudShell APIs](../../../devguide/available-cs-api/sso-login-to-cs-api.md). - -### Setting the response page size for the Sandbox API live documentation pages - -The administrator can set the maximum amount of entries included in each response page, when running the `sandbox output` and `sandbox events` methods. By default, the response includes up to 1000 entries. - -**To set maximum entries per response page:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, add the following key, and set the relevant value: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -### Extending the API authorization token validity period - -The authorization token is valid for 5 hours by default, but the validity period can be changed using the `AuthToken.ExpirationSpanMinutes` configuration key. - -**To change the token validity period:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file. -2. Add the following key: - - `` - -3. Set the desired validity period, in minutes -4. Save the file. -5. Restart the **Quali Server** service. - -## Apps - -### Setting the default category for new Apps - -This configuration key enables you to specify the default category that will be selected for new Apps. The default category is "Apps". -:::note -Only users that have permissions to the category's domain will have access to the App. -::: -**To set the default category for new Apps:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file. -2. Add the following key: - - `` - -3. Replace "`app category`" with the new default category. - - To set a sub-category, use "/". For example, `Apps/My App Category`"(where "My App Category" is the sub-category). - -4. Save the file. -5. Restart the **Quali Server** service. - -### Enabling the modification and deletion of App templates only from the template's domain - -This key disables the options to edit or delete an App template when the admin is not in the domain in which the App was created. By default, Apps templates can be modified from any CloudShell domain. - -:::note Notes -- This key does not restrict system admins from editing Apps in other domains. -- This key does not apply to the "clone App" option. -::: -**To enable this restriction:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\customer.config` file, add the following key, and set the value accordingly: - - `` - -2. Save the file. -3. Restart the **CloudShell Portal IIS** service. - -## Connectivity management and route configuration - -For more information about the connection types, see [Add Physical Network Connectivity Requirements](../../../portal/sandboxes/sandbox-workspace/add-connectivity/add-physical-network/add-phy-net-req/index.md). - -### Setting max hops for routes - -You can set the maximum allowed hops for route resolution to cap the number of chassis connections that can be used when resolving a route. For details, see [Configure Physical Network Connectivity Requirements](../../../portal/sandboxes/sandbox-workspace/add-connectivity/add-physical-network/config-physical-conn-req.md). - -The default value is 6 hops (or 7 switches). - -**To change the max hops settings for routes:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, add the following key, and set the value accordingly (for example, 10 hops): - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -### Setting default max hops for routes - -This key defines the default value to display in the connection line's **Max Hops** property in the **Resource Connections** dialog box. The default value is 2 hops. - -**To change the default max hops settings for routes:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, add the following key, and set the value accordingly (for example, 10 hops): - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -### Enabling automatic route configuration - -You can enable the server to automatically configure the L1 connections to support the maximum possible speed for the selected route, based on the end point port and their connected L1 speed capabilities. Once enabled, CloudShell will look for an attribute called **Speed** on both endpoints of the L1 route, and when the route gets connected in a sandbox, the server will change the attribute’s value on both endpoints to the highest mutually supported speed. - -**To enable automatic route configuration:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, add the following key, and set the value accordingly: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -### Set the supported connection types for new connections - -You can set the supported connection types for new connections from these default values: Route, Cable, Tap, Connector. This key allows you choose the connection types to include in CloudShell, disabling any values you don't specify. To set these connection types, just specify their name, comma separated, as the key value. - -**To set the supported connection types for new connections:** - -1. Open the ``C:\Program Files (x86)\QualiSystems\CloudShell\Portal\customer.config`` file, add the following key, and set the value accordingly by specifying the connection types you want to include: - - `` - -2. Save the file. -3. Restart the **CloudShell Portal IIS** service. - -## Custom live status icons - -### Modifying the list of custom live statuses - -The system supports custom statuses for resources which can also be visualized using different icons. - -**To define the custom statuses and their icons:** - -1. Open the `%programdata%\QualiSystems\Settings\Global\ServerUniversalSettings.xml` file, and in the `ResourcesLiveStatus`section, add a new key (where the name is the status name and value is the icon path), for example: - - ```javascript - - … - C:\ProgramData\QualiSystems\Portal\Content\Images\cust.png - - ``` - -2. Save the file. - -## Blueprint Catalog - -The main page of the **Blueprint Catalog**, when no specific category is selected, can be customized to contain any or none of the following sections. This is done by adding the relevant configuration key in the `customer.config` file in the CloudShell Server installation directory. Note that each of the sections described below do not appear if there are no relevant blueprints to display. - -### All blueprints - -This key controls whether to display all blueprints in the main **Blueprint Catalog**, when no category is selected. - -**To enable displaying all blueprints:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -There are two supported modes for displaying the blueprints: as one group, or categorized alphabetically (default). - -**To disable alphabetic sub-grouping:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file. - -2. Add the following key: - - `` - -3. Save the file. -4. Restart the **Quali Server** service. - -### New Blueprints section (Featured section) - -The **Blueprint Catalog**'s **Featured** view includes a **New** section, which displays blueprints that were recently added to the domain. - -**To display new published blueprints, ordered by date of creation:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -**To control the maximum number of new blueprints:** - -1. Add the following key and set the value (the default is 5): - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -**To restrict the maximum number of days a blueprint can be considered ‘new’:** - -1. Add the following key and set the value to specify the number of days (the default is `-1` for no restriction): - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -### Recently modified blueprints (Featured section) - -This **Blueprint Catalog**'s **Featured** view includes a **Recently Modified** section, which displays recently-modified private and public blueprints owned by the user, ordered by the modification date. This makes it convenient to quickly find a blueprint after creating/modifying it. -:::note -This section will not appear if no blueprints are owned by the user. -::: -**To enable displaying recently modified blueprints:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -**To control the maximum number of recently modified blueprints:** - -1. Add the following key and set the value (the default is 5): - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -### Recently reserved blueprints (Featured section) - -The **Blueprint Catalog**'s **Featured** view includes a **Recently Reserved** section, which displays recently reserved blueprints in which you are either the owner or a permitted user. If you never reserved blueprints, this section will be hidden. Using the below keys, you can choose to show/hide this section and set the maximum number of recently reserved blueprints to include. - -**To enable displaying recently reserved blueprints:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key:  - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -**To control the number of recently reserved blueprints to appear in "Recently Reserved" within the Featured section of the Blueprint Catalog:** - -1. Add the following key and set the value (the default is 5) - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -### Featured categories (Featured section) - -This key can be used to set one or more blueprint categories whose blueprints will be displayed in the **Featured** section of the **Blueprint Catalog** To set these categories, just specify their name, comma separated, as the key value. - -**To enable displaying featured categories:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Set the desired categories s the value (comma-separated). - -3. Save the file. -4. Restart the **Quali Server** service. - -### Hiding the Featured section - -These keys control whether to display the **Featured** section in the **Blueprint Catalog**. When disabled, all blueprints will appear in a single section in the catalog. - -**To disable the Featured section:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and change the following keys' values to False: - - `` - - `` - - `` - -2. In addition, make sure to either remove the `TopologyDashboardFeaturedCategories` key from the `customer.config` file or set it to an empty value. -3. Save the file. -4. Restart the **Quali Server** service and the **CloudShell Portal IIS** service. - -### Hiding the "Status” filter - -As of CloudShell 6.2.3, an administrator can show/hide the **Status** filter from the **Blueprint Catalog**. - -**To show/hide the "Status" filter:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\customer.config` file, and add the following key: - - `` - -2. To show the option, set the value to `False`. To hide the option, set the value to `True`. -3. Save the file. -4. Restart the **CloudShell Portal IIS** service. - -### Enabling blueprints of "view” type - -An administrator can enable users to set blueprints to type "view”. Blueprints of type "view” cannot be edited, deleted or reserved by users with view permissions. - -**To enable View blueprints:** - -1. Open the folder `C:\Program Files (x86)\QualiSystems\CloudShell\Server`. -2. Open the `customer.config` file. -3. Add the following key:  - - `` - -4. Save the file. -5. Restart the **Quali Server** service. - -### Enabling the creation of empty blueprints - -As an administrator you can enable users to create empty blueprints, which are not based on any predefined template and do not include out-of-the-box setup and teardown scripts. - -**To enable users to create blank blueprints:**  - -1. Go to `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -Note that this will change the behavior of the **\+ Create Blueprints** button. - -The following table describes all the possible behaviors:  - -| Activity | Key value set to 'False'  | Key value set to 'True' | -| --- | --- | --- | -| A single template is defined | Clicking **\+ Create Blueprint** opens the drop-down list which includes the default out-of-the-box CloudShell Sandbox Template. The **Create Empty Blueprint** button is available. | Clicking **\+ Create Blueprint** creates a new blueprint based on the default out-of-the-box [CloudShell Sandbox Template](../../cloudshell-manage-dashboard/blueprint-templates.md#cloudshell-sandbox-template). The Create Empty Blueprint button is not available. | -| Multiple templates are defined | Clicking **\+ Create Blueprint** opens the drop-down list containing all available templates. The **Create Empty Blueprint** button is available. | The **Add New Blueprint** button is available. Clicking **\+ Create Blueprint** opens the drop-down list containing all available templates. The **Create Empty Blueprint** button is not available. | - -## Blueprint Workspace - -### Setting the maximum allowed teardown time for blueprints - -The default maximum value for teardown time for blueprints is 48 hours. - -**To change the maximum allowed teardown time:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -### Setting the maximum allowed setup time for blueprints - -The default maximum value for setup time for blueprints is 48 hours. - -**To change the maximum allowed setup time:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - ` - -2. Save the file. -3. Restart the **Quali Server** service. - -### Hiding the "More Info” option - -An administrator can enable the option to show/hide the **More Info** option from blueprints. - -**To show/hide the More Info option:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\customer.config` file, and add the following key:  - - `` - -2. To show the option, set the value to `False`. To hide the option, set the value to `True`. -3. Save the file. -4. Restart the **CloudShell Portal IIS** service. - -This change applies to all the blueprints in the catalog, in both **Tile** and **List View** modes.  - -When hiding the **More Info** option, it still remains available in the **Blueprint** menu of the blueprint's workspace.  - -### Specifying which side panes should be open by default (blueprints) - -It is possible to specify that either the instructions side pane or the blueprint commands side pane be opened by default in the **Blueprints** pages. - -**To specify which side panes should be open by default:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\customer.config` file, and add the appropriate key: - - `` - - `` - -2. Save the file. -3. Restart the **CloudShell Portal IIS** service. - -### Blocking non-admin users from exporting a blueprint package - -As an administrator you can block non-admin users from exporting a blueprint package. This option is disabled by default. - -**To block non-admin users from exporting a blueprint package:**  - -1. Go to `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -### Changing the time allocated for exporting the blueprint diagram - -By default, CloudShell allocates 2 seconds for the **Export Diagram (pdf)** process. For most blueprints, this is enough time to accurately render the diagram's components and connection lines. However, in large blueprints, this period may not be enough and some components/connection lines may be missing. If this is the case, you can increase the period to give CloudShell the time necessary to properly complete the action. - -**To change the time allocated for exporting the blueprint diagram:** - -1. Go to ``C:\Program Files (x86)\QualiSystems\CloudShell\Portal\customer.config`` file, and add the following key: - - `` - - Where the value is the period, in milliseconds. - -2. Save the file. -3. Restart the **CloudShell Portal IIS** service. - -### Enabling the Check Blueprint Routes option - -Use this key to show the **Check Blueprint Routes** option in the **Blueprint** menu. For additional information, see [Check Blueprint Routes](../../../portal/blueprints/creating-blueprints/check-blueprint-routes.md). - -**To enable the Check Blueprint Routes option:**  - -1. Go to `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -### Setting the route grouping policy - -You can change the route grouping policy in the blueprint or sandbox diagram. By default, 3 or more connection lines between any two endpoints are grouped together. For example: - -![](/Images/CloudShell-Portal/Lab-Management/Environments/GroupedRoutes.png) - -**To change the route grouping policy:** - -1. Go to `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\customer.config` file, and add the following key: - - `` - - Where the value is the minimum number of connections to be grouped. - -2. Save the file. -3. Restart the **CloudShell Portal IIS** service. - -## Execution Server - -For Python package handling keys, see [Advanced CloudShell Customizations](./advanced-cloudshell-customizations.md). For execution server configurations and customizations, see [Optimizing Execution Provisioning](../../cloudshell-execution-server-configurations/optimizing-execution-provisioning.md). - -## General - -### Controlling the visibility of the main navigation bar components - -You can control which components will be visible to the user using the main menu bar. This removes some features from the user’s view. - -**To remove/hide the Scheduling and Queuing component:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **CloudShell Portal IIS** service. - -**To remove/hide the Sandboxes component:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **CloudShell Portal IIS** service. - -**To remove/hide the Blueprints component:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **CloudShell Portal IIS** service. - -**To remove/hide the Inventory component:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **CloudShell Portal IIS** service. - -### Configuring the CloudShell Portal virtual front - -This key is used for two reasons: - -- To set the CloudShell Portal virtual front in a high availability configuration. For details, see [Creating a Configuration Role in Windows Failover Cluster](../../../install-configure/ha-installation/install-configure-cs-server/install-configure-cs-portal/create-config-role.md). -- To include a sandbox link in email notifications. - -**To configure the CloudShell Portal:** - -1. Go to the `C:\Program Files (x86)\QualiSystems\CloudShell\Server` folder and open the `customer.config` file. -2. Add the following key to the file. This key sets the virtual front address to be used in emails sent from CloudShell to users. - - `` - -3. Modify the key's values: - - | Parameter | Parameter details | - | --- | --- | - | protocol | http or https if CloudShell Portal is set to use SSL | - | PublicServerName | The DNS name or IP address of the CloudShell Portal virtual front | - | PortalPort | The port which CloudShell Portal is using (If the port is 80 or 443, which are the default http and https ports, remove this parameter and the colon from the key). | - -4. Save the file. -5. Restart the **Quali Server** service. - -### Setting the default home page - -The web application directs the user to the last dashboard that was visited upon login. You can determine the default page that users are directed to upon first time login. - -**To set the default home page:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\customer.config` file, and add the following key: - - `` - :::note - The value of the configuration key should be the relative path of the first page the user needs to be directed to, which can be taken from the address bar of each dashboard. - ::: -2. Save the file. -3. Restart the **CloudShell Portal IIS** service. - -### Adding the "Contact Us" option to the user menu in CloudShell Portal - -It is possible to add a "contact us" option to the user menu in CloudShell Portal. When clicked, it opens the webpage you configure in this key. You could use this feature, for example, to receive feedback and feature requests from your customers. - -This option is disabled by default. - -**To add a "Contact Us" option to CloudShell Portal:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\customer.config` file, and add the following key: - - `` - - Where `` is the URL to your contact form. - -2. Save the file. -3. Restart the **CloudShell Portal IIS** service. - -**To disable the "Contact Us" option:** - -1. Remove the key from the `customer.config` file. -2. Save the file. -3. Restart the **CloudShell Portal IIS** service. - -### Setting a page to redirect to after logout from CloudShell Portal - -By default, when users log out of CloudShell Portal, they are redirected to your custom login page. You can change this setting to redirect users to another page, such as your main homepage or a page that offers additional information. - -**To set the redirected login page to a custom location:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **CloudShell Portal IIS** service. - -### Configuring CloudShell to import user definitions from an active directory - -The following procedures explain how to enable the import of users from your corporate Microsoft Active Directory into CloudShell. To import user definitions, see [Importing users into CloudShell from an active directory](../../cloudshell-identity-management/managing-users/managing-cloudshell-users.md#importing-users-into-cloudshell-from-an-active-directory). Note that the passwords of imported users are managed by the active directory itself. - -:::note Prerequisite -The computer that will be used to import the users must be in your corporate domain. -::: -**To enable the import of active directory users:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Set the key to the name of the domain of the active directory, for example, `Router_UK`. -3. Save the file. -4. Restart the **Quali Server** service. -5. Import the users into **Resource Manager Client**, as explained in [Importing users into CloudShell from an active directory](../../cloudshell-identity-management/managing-users/managing-cloudshell-users.md#importing-users-from-an-active-directory-group). - -### Configuring CloudShell to automatically import users from an external system at login - -This key enables CloudShell to automatically import users from an active directory or LDAP when they log in to CloudShell for the first time. Note that the passwords of imported users are managed by the directory service provider itself. - -This option is disabled by default. - -**To enable CloudShell to auto-import users when they log in:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -### Defining the Instructions pane size - -You can control the width, in pixels, of the **Instructions** pane in a blueprint or sandbox. The default value is 540 pixels. - -**To set the width of the Instructions pane:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **CloudShell Portal IIS** service. -:::note -This setting applies to all blueprints in the system. -::: -### Disabling DBCC TRACEON (sql_sysadmin_membership_exists) - -Set to **False** to disable DBCC TRACEON (sql query execution performance). This requires membership in the sysadmin fixed server role. Default is **True**. - -**To disable DBCC TRACEON:** - -1. Go to `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -### Showing the Drivers management page (Manage dashboard) - -This key determines if the **Manage** dashboard's **Drivers** tab is visible. By default, the **Drivers** tab is hidden. This tab is relevant only when developing or customizing 1st Gen shells. - -**To display the Drivers tab:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **CloudShell Portal IIS** service. - -### Setting the default python version for new Python scripts - -This key determines which Python version will be used by default for new Python scripts the admin loads into CloudShell. Python 3 is the default. - -:::note Notes -- You can change the default setting for a script in the **Scripts** management page, as explained in [Editing scripts](../../cloudshell-manage-dashboard/managing-automation/managing-assets.md#editing-scripts). -- Python 3 automation requires Microsoft Visual C++ Redistributable 2015 x86 and x64 to be installed on the Execution Server(s). -::: - -**To set the default Python version for new scripts:** - -1. Go to `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Replace `` with the appropriate option: **Python 2** or **Python 3**. -3. Save the file. -4. Restart the **Quali Server** service. - -### Hiding the CloudShell Portal footer - -This key enables you to hide the CloudShell Portal footer. The footer is displayed by default on all pages and dashboards in CloudShell Portal, except the login page. - -To hide the footer: - -1. Go to `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **CloudShell Portal IIS** service. - -### Allowing the execution of orchestration scripts without the need for a blueprint driver - -This key determines if sandbox scripts (Setup, Teardown, Save and Restore) are run directly in the sandbox as orchestration scripts or require a .NET orchestration driver to invoke them. - -By default, Quali Server runs orchestration scripts directly in the sandbox, ignoring the blueprint driver if one is defined for the sandbox. Note that manually running orchestration scripts with the key enabled will still run them with the default **Python Setup & Teardown** driver. - -**To require the use of a blueprint driver when running sandbox orchestration scripts:** - -1. Go to `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. -4. Make sure a driver is added to all blueprints in CloudShell. For details, see [Add Setup and Teardown scripts](../../../portal/blueprints/creating-blueprints/configure-orchestration.md#add-setup-and-teardown-scripts). - -### Increasing the time allowed for Quali Server to stop gracefully - -When upgrading Quali Server, one of the steps is to stop the **Quali Server** service. By default, the step has 30 seconds to complete. This period is enough for most cases. However, if the service does not stop gracefully within the allotted period, the upgrade process will shut down. This can be resolved by stopping the **Quali Server** service before running the upgrade, or, for scenarios in which Quali Server is performing some critical process and must be running during the upgrade, it is possible to increase the timeout period to allow the Quali Server stop step more time to complete. - -This configuration key also applies to non-upgrade scenarios in which a graceful shutdown is required. For example, in high availability mode where two or more Quali Servers work against the same DB and you need to change node, stopping the Quali Server in a timely manner is important. - -**To increase the timeout period:** - -1. Go to `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Change the period, in seconds, as appropriate. -3. Save the file. -4. Restart the **Quali Server** service. - -### Changing the default Quali API port (9000) - -By default, Quali API runs over TCP/9000. - -**To change the Quali API port:** - -1. Go to `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Change the port, as appropriate. For example: "9002". -3. Save the file. -4. Restart the **Quali Server** service. - -### Hiding Approval Request content from CloudShell Portal - -If you don't intend to use Approval Request flows, you can disable the EnableApprovals key to remove all Approval Request content from CloudShell Portal. This will do the following: - -- Hide the **Require Approval** section in the blueprint properties page -- Hide the **Approval Requests** page that lists end-user requests for approval. -- Revert the **Request** button on approval blueprints back to **Reserve**. - -**To hide Approval Request content:** - -1. Go to `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\customer.config` file, and add the following key: - - `` - - Default is "True". - -2. Save the file. -3. Restart the **CloudShell Portal IIS** service. - -### Setting approval request expiration policy - -There are three configuration keys relating to approval request expirations. - -- `ApprovalsCleanup.EnableOldExpiredRequests`: If set to True (default), this key enables the automatic removal of approval requests that have expired. -- `ApprovalsCleanup.OldExpiredRequestsTimeoutInHours`: The default timeout for expired approval requests is 168 hours (one week). Once the request end time has passed, the request is considered expired and will be automatically deleted. -- `ApprovalsCleanup.OldExpiredRequestsCheckIntervalInHours`: Interval (in hours) for checking the expired approval requests. The default value is 24. - -All three keys are defined in the `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\customer.config` file. - -## Inventory dashboard - -### Allowing regular users to reserve resources from the Inventory dashboard - -By default, only admins can reserve resources from the **Inventory** dashboard. For additional information about this option, see [Reserving Resources from the Inventory](../../../portal/inventory/managing-resources/reserving-from-inventory.md). - -![](/Images/CloudShell-Portal/Lab-Management/Working-with-the-Inventory/InventResResFromInventory.png) - -**To allow regular users to reserve resources from the Inventory dashboard:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **CloudShell Portal IIS** service. - -## New Job Scheduling - -### Switching between Sandbox Services - -The CloudShell Server installation includes a Sandbox Service component which is used to handle sandbox reservations. In addition, when deploying the New Job Scheduling infrastructure, a separate Sandbox Service is deployed on the New Job Scheduling Kubernetes cluster. This Sandbox Service can communicate both with Quali Server and the Kubernetes-based New Job Scheduling. Therefore, in deployments that include New Job Scheduling, the Kubernetes-based Sandbox Service needs to be used instead of the out-of-the-box one. - -**To switch to the Kubernetes-based Sandbox Service:** - -1. Go to `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Run the Quali Server configuration wizard. - - -### Allowing Quali Server to access the Kubernetes-based Sandbox Service - -Following the successful deployment of the New Job Scheduling infrastructure, you need to allow Quali Server to communicate with the **sandbox-service-svc**. - -To allow Quali Server to access the Kubernetes-based Sandbox Service: - -1. Go to `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following keys: - - `` - - `` - -2. Edit the values as appropriate. Note that the default Sandbox Service port is 8888. - -3. Save the file. -4. Restart the **Quali Server** service. - -### Allowing Quali Server to access the Kubernetes-based RabbitMQ Service - -Following the successful deployment of the New Job Scheduling infrastructure, you need to allow Quali Server to communicate with the **cloudshell-rabbitmq-ha**. - -**To allow Quali Server to access the Kubernetes-based RabbitMQService:** - -1. Go to `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following keys: - - `` - - `` - -2. Edit the values as appropriate. Note that the default RabbitMQ port is 15671. - -3. Save the file. -4. Restart the **Quali Server** service. - -## LDAP Integration - -For information about integration with an LDAP server, see [LDAP Integration](../../cloudshell-identity-management/access-control-and-authentication/ldap-integration.md). - -## Monitoring - -### Setting the retention period for old logs - -By default, old logs are retained for 2 weeks. When this time elapses, these files are automatically purged. -:::note -Logs are considered old if they were note created or modified over the last 24 hours. This period is configurable using the `QsPythonLogsCleanup.OldFilesCheckIntervalInHours` key. -::: -**To set the retention period for old logs:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key (value in days): - - `` - -2. In the key's `value`, set the retention period, in hours. -3. Save the file. -4. Restart the **Quali Server** application. - -### Setting the retention period for CloudShell Monitor logs - -By default, CloudShell Monitor collects logs that were created or modified within the last 14 days. Using this key, you can change this period. For example, to limit the size of the logs. - -**To set the duration for CloudShell Monitor logs:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Monitor\monitor.config` file, and add the following key (value in days): - - `` - -2. Save the file. -3. Restart the **CloudShell Monitor** application. - -### Disabling the export of usage data to Quali - -By default, Quali exports CloudShell usage data to help us improve CloudShell. If you do not want to share this data, set the `EnableWatcher` key to **False**. - -Note that disabling this key does not prevent CloudShell from sending usage data to **CloudShell Monitor**, but you can prevent that from happening by disabling the `AddUsageDataToMonitoring` key. - -**To disable the export of usage data to Quali:** - -1. Go to `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -### Disabling the export of usage data to CloudShell Monitor - -By default, **CloudShell Monitor** collects CloudShell usage data, which you can retrieve by saving CloudShell system logs, as explained in [Collecting Logs](../../../troubleshooting/troubleshooting-overview/collecting-logs.md). If you do not want CloudShell Monitor to collect this data, set the `AddUsageDataToMonitoring` key to **False**. - -Note that disabling this key does not prevent CloudShell from sending usage data to Quali, but you can prevent that from happening by disabling the `EnableWatcher` key. - -**To prevent CloudShell Monitor from collecting usage data:** - -1. Go to `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -## Online Help - -### Switching between online and offline help - -CloudShell provides two help packages, an online package and an offline package. By default, the online package is used. - -This key applies to the CloudShell Portal, TestShell Studio, and CloudShell Authoring components. - -**To use the offline help instead of the online help:** - -1. If CloudShell has been upgraded from version 8.0 or below, delete the `KnowledgeBase` folders from: - - `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\` - - `C:\Program Files (x86)\QualiSystems\CloudShell\` - -2. Place the offline help files in the appropriate folder: - - 1. On the CloudShell Server machine, create a folder named `Knowledge Base` in the appropriate path: - - - For CloudShell Portal: `C:\Program Files (x86)\QualiSystems\CloudShell\Portal` - - For Resource Manager Client: `C:\Program Files (x86)\QualiSystems\CloudShell\ResourceManagement` - - For TestShell Studio and TestShell Runner: `C:\Program Files (x86)\QualiSystems\TestShell\Studio` - - For CloudShell Authoring: `C:\Program Files (x86)\QualiSystems\CloudShell\Authoring` - 2. If any of the clients are installed on a different machine, make sure to create the appropriate folder on the client machine. - 3. Create the following folders in that folder: - - - `DRB` - - `Portal` - - `RM` - - `RUN` - - `ST` - 4. Download the component's updated offline help package locally and unzip it. To download the offline help packages, see [All Help Versions](https://help-archive.quali.com/help%20versions/All%20Versions%20Help/Content/Versions.htm). - 5. Place the unzipped folder's contents in the appropriate sub-folder. The folder structure is as follows: - - - `DRB` - CloudShell Authoring help folder - - `Portal` - CloudShell Portal help folder - - `RM` - Resource Manager Client - - `RUN` - TestShell Runner help folder - - `ST` - TestShell Studio help folder -3. Configure CloudShell to use the offline help instead of the online help: - - 1. Open the relevant installation folder: - - `C:\Program Files (x86)\QualiSystems\CloudShell\Authoring` - - `C:\Program Files (x86)\QualiSystems\CloudShell\Portal` - - `C:\Program Files (x86)\QualiSystems\CloudShell\ResourceManagement` - - `C:\Program Files (x86)\QualiSystems\TestShell\Studio` (for TestShell Studio and Runner) - - 2. In each installation folder, do the following: - - 1. Open the `customer.config` file, and enter this key: - - `` - - 2. Save the file. - - 3. Restart the service of the updated components. You can do this by restarting the actual service or running the component's configuration wizard. - - -### Using your own help files in CloudShell portal - -You can use your own help content instead of CloudShell’s. You can switch back to CloudShell help at any time. - -**To use your own help content:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\customer.config` file, add the following key: - - `` - - Where `` is the website URL to your web help content - -2. Save the file. -3. Restart the **CloudShell Portal IIS** service. - -**To switch back to CloudShell help content:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\customer.config` file, remove the above key or replace it with: - - `` - -2. Save the file. -3. Restart the **CloudShell Portal IIS** service. - -## PyPi Server - -### Setting the online computer for downloading Python dependencies -:::note -This applies to CloudShell deployments using PyPi Server to retrieve and serve Python dependencies from a dedicated online computer. -::: -**To set the online computer:** - -1. Go to `C:\Program Files (x86)\QualiSystems\TestShell\ExecutionServer\customer.config` file, and add the following key: - - `` - - Where the value is the online computer's hostname/IP address and port - -2. Restart the **TestShell Execution Server** service. - -### Defining the online computer as a trusted host - -This key adds an additional fallback online repository to search if the local PyPi Server and online PyPi repository don't have the missing package(s). -:::note -This applies to CloudShell deployments using PyPi Server to retrieve and serve Python dependencies from a dedicated online computer. -::: -**To define the online computer as a trusted host:** - -1. Go to `C:\Program Files (x86)\QualiSystems\TestShell\ExecutionServer\customer.config` file, and add the following key: - - `` - - Where the value is the hostname or IP address specified in the `RequirementsRepository` configuration key - -2. Restart the **TestShell Execution Server** service. - -### Setting a secondary online Python packages repository - -This key adds an additional fallback online repository to search if the local PyPi Server and online PyPi repository don't have the missing package(s). For example, let's say you have an internal artifactory where you manage your packages, and you would prefer to just pull packages from there instead of our local PyPi repo. -:::note -Make sure to set this key on all execution servers. -::: -To set secondary online Python repo: - -1. Go to `C:\Program Files (x86)\QualiSystems\TestShell\ExecutionServer\customer.config` file, and add the following key: - - `` - - Where the value is the online computer's hostname/IP address and port. For example: - - `https://testpypi.python.org/simple//` - -2. Restart the **TestShell Execution Server** service. - -## Registration, passwords, emails, and licenses - -### Enabling regular users to change their email address - -Email defaults are read-only to all users, except administrators and domain administrators, who can allow regular users to change their email address, when the following key is turned on. - -**To enable regular users to change their email address:** - -1. Go to **C:\Program Files (x86)\QualiSystems\CloudShell\Portal\customer.config** file, and add the following key: - - `` - -2. Save the file. -3. Restart the **CloudShell Portal IIS** service. - -### Enabling password reset - -This key hides or shows the **Forgot your password?** link in the login page. To get the password reset option to work, you need to also configure the [SMTP mail configuration](../../../install-configure/cloudshell-suite/configure-products/admin-config-settings.md#smtp-mail-configuration) when installing or configuring the Quali Server. By default, this option is disabled. - -![](/Images/Admin-Guide/Setting-Up-CloudShell/PasswordReset.png) - -**To enable password reset:** - -1. Go to `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **CloudShell Portal IIS** service. - -### Hiding the Change Password option - -This key enables users to change their password from the user login menu in CloudShell Portal. By default, this option is enabled. - -![](/Images/Admin-Guide/Setting-Up-CloudShell/ChangePassword.png) - -**To hide the "Change Password" option:** - -1. Go to `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **CloudShell Portal IIS** service. - -### Enabling registration - -Before a new user can register, you need to create the default group and configure the following keys. - -**To enable registration:** - -1. Go to `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\customer.config` file, and add the following keys: - - `` - - `` - - As well as configure the default role using the following key: - - `` - :::note - DefaultRole is relevant when the group does not exist. - ::: - In this case, the default group is called "Registered Users”. - -2. Save the file and restart the **CloudShell Portal IIS** service. -3. In the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, define the default role, the group’s name, the domain of the group, and the admin’s email address (according to the address set for a system administrator level user in the Resource Manager): - - `` - - `` - :::note - The default additional group is External Users. If you want users to be added to a different group, change the value of the key to another group name. To disable this option, leave this key's value empty. - ::: -4. Save the file. - -5. Restart the **Quali Server** service. - - In order to get to the registration page, you need to post a few parameters to it. Depending on your use case, you can either provide the user and email values (if you already know them) or leave them empty to let the user provide them. You must provide the group name that this user will be added to. You can use the following procedure to create a link that redirects the user to the registration form without providing the user and email details: - -6. Add the following javascript function to the page from where you would like to redirect new users, and modify the default group value: - - ```javascript - function NewUser() { - var redirect = function(url, method) { - var group = document.createElement('input'); - group.name = 'Group'; - group.value = 'Regular Users'; //the group name to add the user to - group.type = 'text'; - var form = document.createElement('form'); - form.method = method; - form.action = url; - form.appendChild(group); - form.submit(); - }; - redirect('http://CloudShellPortal/Account/Register', 'post'); - } - ``` - :::note - The group name that you provide does not have to exist and it will be created upon the first registration. - ::: -7. The link that redirects to the registration form needs to call the above function and might look like this: - - `New user?` - - Then, when the user clicks on the link to the registration in his client’s website, he is directed to the CloudShell Registration page and is required to supply only a password. - - After this, a new user should appear in the **Users** tab. - - A different approach would be to create a registration form of your own. In this case your registration form might look like this: - - ```css -
-
- UserName - -
-
- Email - -
-
- -
- -
- ``` - - When the user submits this form he will be redirected to the CloudShell Registration page where he will need to provide only the password. - - -### Enabling brute-force protection for logins - -To prevent a brute-force attack trying to find a user/password match that can log in to CloudShell, the Administrator can enable a delay between failed log in attempts. -This adds an extra layer of security by applying exponential delays after defined failed login attempts, with resets on successful login, password change via Resource Manager or Forgot password, or when the MaxDelay time has passed. - -**To enable the delay between failed login attempts:** - -1. Go to `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. To set the maximum failed log in attempts before a user account gets locked, add the following key (the default is 3 attempts): - - `` - -3. To set the lock time for a user that reached the maximum failed log in attempts, add the following key (value is in hours, the default is 10 hours): - - `` - -4. Save the file. -5. Restart the **Quali Server** service. - -### Setting password policies for CloudShell user accounts - -To increase the security with who access CloudShell and reduce easy password guessing, you can set the following password policies that will be enforced upon user creation or password change: -:::note -This does not apply to Single-Sign-On (SSO) users or existing users (until their password changes). -::: -**To enable the password policies:** - -1. Go to `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following keys: - - `` - - `` - - `` - - `` - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -**Update the error message a user gets if their password does not match the policy:** - -1. An error message will be displayed to the users when they try to set a password which is not complying to the configured policies. To update the message to explain to the user what is the required policy, you can update the localization file at `C:\Program Files (x86)\QualiSystems\CloudShell\Server\Localization\LanguageServer.xml` and set a new value to the PasswordPolicyErrorMessage key. - - -### Configuring the workspace to release the license after lying idle for a specified time - -An administrator can configure the relevant applications (detailed below) to automatically release the license by updating a key in the `customer.config` file. The application remains open and when focus is returned to the application, a new license is retrieved. If none is available, a message is issued to notify the user that the license is missing. - -By default, when the application has been lying idle for 65 minutes, the license is released. - -In the following conditions, idle time is not counted: - -- When TestShell Runner is under external control. -- When a Test or function is either running or has paused. -- When a seat license is being used. - -Relevant applications: - -- TestShell Studio -- TestShell Runner -- CloudShell Authoring - -**To change the default idle time for releasing the license in TestShell Studio and TestShell Runner:** - -1. Open the `C:\Program Files (x86)\QualiSystems\TestShell\Studio\customer.config` file, and add the following key: - - `` - -2. Specify the value `0` to disable the idle check. -3. Save the file. -4. Run the **TestShell Studio Configuration Wizard**. - -**To change the default idle time for releasing the license in CloudShell Authoring:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Authoring\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Run the **CloudShell Authoring Configuration Wizard**. - -**To disable the idle check:** - -- In the above key, set `value=0` and run the **CloudShell Authoring Configuration Wizard**. - -### Setting the email validation pattern - -You can specify the email validation pattern to limit the characters the user can enter for the email address (for example, to limit to a company-provided email address per specified string). The default email validation allows the user to insert any email, where the strings can be any character in any language or symbol (separated by "@" and "."). - -**To set the email validation pattern:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\customer.config` file, add the following key, and set the relevant value (for example, to limit users to enter email addresses that are specific to a particular company, such as Quali): - - `` - -2. Save the file. -3. Restart the **CloudShell Portal IIS** service. - -### Enabling regular users to change email notifications - -Administrators and domain administrators can allow users to change notifications about their sandboxes when the following key is turned on. - -**To enable regular users to change notifications about their sandboxes:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -### Setting email notification defaults for sandboxes - -:::note Notes -- The time stamps on sandbox events are in the time zone of the recipient. In the event of multiple recipients in different time zones, CloudShell will send a different email to each time zone's recipients. -- Email notifications require [SMTP mail configuration](../../../install-configure/cloudshell-suite/configure-products/admin-config-settings.md#smtp-mail-configuration). -- It's possible to customize email notification templates. For details, see [Email Notifications Overview](../../../intro/features/email-notifications.md). -::: -**To set the email event defaults for sandboxes, for the sandbox's lifecycle events:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the appropriate keys: - - To send an email notification when the sandbox starts (**On setup** option): - - `` - - To send an email notification when the sandbox is active (**On setup** complete option): - - `` - - To send an email notification when teardown starts (**Before end** option): - - `` - - To send an email notification x minutes before the teardown phase starts: - - `` - - To send an email notification when the sandbox ends (**On end** option): - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -**To include a link to the sandbox in notification emails:** - -1. Go to `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - -`` - -3. Modify the key's values: - - | Parameter | Parameter details | - | --- | --- | - | protocol | http or https if CloudShell Portal is set to use SSL | - | PublicServerName | The DNS name or IP address of the CloudShell Portal virtual front | - | PortalPort | The port which CloudShell Portal is using (If the port is 80 or 443, remove this parameter and the colon from the key value). | - -4. Save the file. -5. Restart the **CloudShell Server** service. - -### Enabling calendar events for future sandboxes - -As an administrator you can configure CloudShell to send calendar invitations for future sandboxes via email. The invitations are suitable for both Outlook and Google calendars. All calendar invitations are sent to the owner of the sandbox only. - -Email notifications can be created for sandboxes that were created either manually or via an API. - -If you extend or end the sandbox, a new event notification will be sent, changing the event time or canceling the event. For more information about extending and ending sandboxes, see [Extend and End Sandboxes](../../../portal/sandboxes/sandbox-workspace/extend-and-end-sandbox.md). -:::note -Email notifications require [SMTP mail configuration](../../../install-configure/cloudshell-suite/configure-products/admin-config-settings.md#smtp-mail-configuration). -::: -**To enable the calendar event:** - -1. Go to `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - -`` - -3. Save the file. -4. Restart the **Quali Server** service. - -### Disabling admin calendar event when user extends/cancels a sandbox - -By default, whenever a user extends the duration of a sandbox or cancels a future one, the system administrator receives a calendar invite. - -**To disable the calendar event:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following keys: - - `` - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -### Adding additional recipients for sandbox notifications, in addition to the owner - -There are two supported methods to specifying additional recipients that are to be emailed on all sandbox events in addition to the owner. The two methods can be used in conjunction. - -**To specify a hard-coded list of email addresses (the list items should be separated by a semi-colon):** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -**To set more general policies to inform admins and non-admins globally:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following keys: - - `` - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -### Ensuring admin notifications even if a user disables them - -The admin can specify that he wants to always get a notification for some sandbox events, regardless whether the user disables them in the sandbox. Set the below keys to **True** to have CloudShell send a notification email to the admin/domain admin when the event occurs, or **False** to only send notifications based on the sandbox end-user's settings. - -By default, admin notifications are sent. - -**To ensure admin notifications even if user disables them:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following keys: - - `` - - `` - - `` - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -### Disabling admin email notifications - -Setting the keys `ReservationEmail.NotifySystemAdmins` and `ReservationEmail.NotifyDomainAdmins` to **False** determines that the admin/domain admin should not receive email notifications for notifications that were enabled in sandboxes by the users that launched them (when reserving the sandboxes). However, the `ReservationEmail.Override` keys, which are enabled by default, will override the admin notification setting and ensure that CloudShell will send email notifications for the specified sandbox events even if these notifications were disabled in a specific sandbox. - -**As such, to completely disable notifications from reaching the admin:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following keys: - - `` - - `` - -2. Disable the appropriate `ReservationEmail.Override` keys. - - For example, disabling the "on start" notification override: - - `` - -3. Save the file. -4. Restart the **Quali Server** service. - -## Sandboxes - -### Allowing users to reserve existing blueprints only - -In some cases, it can be undesirable to allow regular users to create new blank sandboxes. For example, sandboxes that are not based on blueprints cannot run setup scripts that perform important configuration steps on the sandbox, such deploying App VMs and preparing connectivity for public cloud Apps, such as AWS EC2 and Azure. - -**To enforce the rule that users reserve existing blueprints only:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -### Unlocking sandboxes for use during the Setup process - -*This applies to sandboxes that either use the Default Sandbox Setup script or a modified version of the script. Note that these restrictions do not apply to API methods.* - -During the Setup process, CloudShell prevents users from performing certain actions in the sandbox. This restriction both protects the Setup process from unexpected changes and avoids situations where the user makes changes to the sandbox and the Setup process overrides them. - -The following actions cannot be performed in the sandbox during Setup: - -- Run commands -- Add or remove resources, services and Apps -- Remotely connect to sandbox elements via QualiX - -**To enable users to interact with sandboxes during setup:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -### Enabling extended permissions for external users - -An external user is limited in the ways they are able to interact with CloudShell Portal. By default, an external user is not allowed to create new sandboxes, for example. - -An external user with extended permissions can also perform actions such as: - -- Resources and Apps: Viewing and controlling the resources in a blueprint or sandbox. This includes managing connections and moving elements in the diagram, viewing resource attributes and commands, and connecting to devices and VMs from the sandbox diagram (using remote connection protocols such as Telnet, SSH, and RDP). -- Blueprints: Using advanced settings when reserving a blueprint and resolving reservation conflicts. -- Sandboxes: Controlling the duration of the sandbox, changing the sandbox properties and input values, exporting diagrams and connections, downloading file attachments, and viewing the sandbox's **Instructions** and **Activity feed**. - -**To enable extended permissions for external users:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **Quali Server** and **CloudShell IIS Portal** services. - -### Allowing sandboxes to be shared only with users in the same group - -By default, the user can share their own sandbox with anyone in the same domain. If you enable this key, only users in the same CloudShell group as the user who created a particular sandbox can use it. - -**To restrict the possible users to users in the same group:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -### Preventing users reserving a blueprint from viewing Owner and Permitted Users details - -This key controls whether to display the **Owner** and **Permitted Users** details when creating a sandbox (in the **Reserve** dialog box). When enabled, the **Owner** and **Permitted Users** sections will display only the details of the logged in user. If the logged in user is not the designated owner, the **Owner** section will be empty. - -This option is disabled by default. - -**To prevent users reserving a blueprint from viewing Owner and Permitted Users details:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. -4. Then, restart the **CloudShell Portal IIS** service. - -### Preventing users from using the "Reserve Anyway" option to create sandboxes with conflicts - -In some cases, it may be undesirable to allow users to use the **Reserve Anyway** option to create a sandbox with conflicts. - -**To remove the Reserve Anyway option from the interface:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -:::note -When this key is enabled, an administrator will still be able to reserve with conflicts. -This is also the behavior when using the CloudShell automation api. -If however, the logged in admin is trying to create a reservation for a regular user (set the owner to a regular user), this will fail as well if there are conflicts. -::: - -### Allowing regular users to view sandboxes of other users in their domain - -By default, all users in the same domain have visibility of each other’s sandboxes. You can disable this with the following key. - -**To disable non admin users from viewing sandboxes other than their own:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -### Setting the default duration for new sandboxes - -The default value for all new sandboxes is two hours. - -**To change the default duration for new sandboxes:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, add the following key and set the value accordingly: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -### Disabling the "Recurrence" option when creating sandboxes - -When creating a sandbox, the sandbox can be set to repeat on a schedule. By default, this option is enabled. - -Note that this does not prevent users from modifying existing recurrence settings. - -**To disable the Recurrence option:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, add the following key and set the value accordingly: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. -4. Restart the **CloudShell Portal IIS** service. - -### Setting the default maximum concurrent sandboxes limit for CloudShell users - -This key enables you to set the default number of maximum number of live sandboxes any user can own in CloudShell. If this key is not used, users are allowed to own up to 10 scheduled sandboxes. Note that admins can change the default for specific users using Resource Manager Client or the API. - -**To apply this constraint for all new users:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, add the following key and set the value for the specified number of sandboxes: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -### Setting the default maximum scheduled sandboxes limit for CloudShell users - -This key enables you to set the default number of maximum scheduled sandboxes for all users in CloudShell. By default, new users can reserve up to 10 scheduled sandboxes while users migrated from a pre-9.3 Patch 2 version (during upgrade) have an empty value (unlimited). Value "0" means users can only start immediate reservations (no scheduled). Note that admins can change the default for specific users using Resource Manager Client or the API. - -**To apply this constraint for all new users:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, add the following key and set the value for the specified number of sandboxes: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -### Setting the default maximum number of blueprints a user can own - -By default, new users are allowed to own an unlimited number of blueprints. Using this key, the CloudShell administrator can change the number of blueprints new users can own at any given time. By default, new users can own an unlimited number of blueprints (empty value). - -**To apply this constraint for all new users:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, add the following key and set the value for the specified number of sandboxes: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -### Setting the default maximum number of saved sandboxes for CloudShell users -:::note -This only applies if you are using the **Save and Restore** paid add-on. -::: -By default, users are allowed to save as many sandboxes as they require. This is done using the `DefaultUserMaxSavedSandboxes` key. This key applies only to new users or users created in a CloudShell version prior to 9.0 that are migrated for the first time. The default value is empty (unlimited). -:::note -Admins can override the default for specific users in **Resource Manager Client**. -::: -**To set the default maximum number of saved sandboxes:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, add the following key and set the value: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -### Setting the default maximum sandbox duration limit for each user - -By default, users are not restricted to sandboxes up to a certain duration. Using this key, you can apply a maximum duration limit for all new users. It is possible to change the value for specific users later using the application or the API. - -**To apply this constraint for all new users:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, add the following key and set the number of minutes as the value (for example, 2 days): - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -### Setting the maximum number of permitted users per reservation - -Use this key to set the maximum number of permitted users that a single reservation can have. The default is 20. - -**To specify which side panes should be open by default:** - -1. `Open the C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add this key with the appropriate value: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -### Specifying which side panes should be open by default (sandboxes) - -It is possible to specify that either the instructions side pane or the blueprint commands side pane be opened by default in the **Sandboxes** pages. - -**To specify which side panes should be open by default:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\customer.config` file, and add the appropriate key: - - `` - - `` - -2. Save the file. -3. Restart the **CloudShell Portal IIS** service. - -### Controlling whether sandboxes should end automatically - -The server can end sandboxes automatically when their end time arrives, or allow them to go into overtime. Sandboxes that have resources that are marked "in use” can go into overtime when their time ends. Using this configuration key, you can enable sandboxes to go into overtime when their time ends. By default, sandboxes end automatically without going into overtime. -:::note Important -It is not recommended to enable Overtime since it makes managing and troubleshooting conflicts more difficult. -::: -**To enable overtime (have sandboxes not end automatically if "in use" resources are present):** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -### Showing the **Mark "in use"** option for resources - -This key determines whether the mark in use option is available for sandbox resources. For details see [Mark Resources "in use"](../../../portal/sandboxes/sandbox-workspace/resources/mark-in-use.md). - -To display the Mark "in use" option: - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -### Preventing regular users from reserving shared resources exclusively - -Administrators can specify that resources marked as "Shared by default" cannot be "unshared" by a regular user. The intent is to apply a policy that prevents exclusive access to some devices, which are meant as shared. - -**To prevent regular users from reserving shared resources exclusively:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -### Preventing non admin users from viewing the physical sandbox layer - -Administrator can prevent non-admin users from using the **Show Physical Layer** functionality in the web portal, which exposes him to the L1, patch panel, and other physical layer devices. - -**To prevent users from viewing the physical sandbox layer:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -### Enabling HTML formatting in system and command messages - -HTML formatting such as rich text and hyperlinks is displayed by default in the **Output** console, **Activity Details**, and **Commands** side panes. For security reasons, \ tags are disabled by design. -:::note -Before you begin writing your scripts, you must determine your required output format. If you require a special format other than HTML (for example, XML), you need to set this key to `False` in order to prevent unexpected behavior and erroneous output. -::: -**To disable HTML formatting:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\customer.config` file, add the following key, and set the value to `False`: - - `` - -2. Save the file. -3. Restart the **CloudShell Portal IIS** service. - -### Limiting the time to keep sandbox Activity Feed/Output data - -This key enables you to set the time, in days, to retain sandbox events data. - -By default, CloudShell keeps sandbox events data for 49+ years (Value "17910"). Setting a retention limit ensures that the CloudShell database is smaller and as a result can improve performance in high throughput deployments. However, a smaller retention period also means that older reservations may not have the entire original Activity Feed data. - -**To change the sandbox Activity Feed/Output retention period:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Set the desired value. -3. Save the file. -4. Restart the **Quali Server** service. - -### Preventing the Output console from opening when new sandbox events occur - -Starting with 2022.1, the **Output** console opens whenever a new sandbox event occurs. This default behavior can be changed using the `AutoOpenCommandOutputOnNewEvents` configuration key. - -**To prevent the Output console from opening automatically:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **CloudShell Portal IIS** service. - -### Enabling users to create ad-hoc sandboxes - -Administrators can enable CloudShell users to start a new sandbox from scratch (ad-hoc). Ad-hoc sandboxes can be based on existing blueprints or by starting a blank sandbox, to which components such as resources and services can be added. - -By default, sandboxes can only be created from existing blueprints. -:::note -Apps based on a public cloud provider, such as AWS EC2 and Azure, cannot be used when creating an ad-hoc sandbox. For additional information, see [Apps in Blueprints](../../../portal/blueprints/creating-blueprints/apps/). -::: -**To enable users to create ad-hoc sandboxes:** - -1. Open the C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config file, and add the following key: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. -4. restart the **CloudShell Portal IIS** service. - -### Preventing CloudShell from switching to the domain of a sandbox/blueprint when accessing via URL - -By default, when trying to open a URL to a sandbox from a domain you can access but are not currently logged into, CloudShell prompts the user to switch to the domain (assuming the blueprint is public and the user is permitted to access the sandbox/blueprint). If the user confirms the switch, CloudShell will then open the sandbox/blueprint in its domain. However, you can choose to prevent this domain switch by setting the `AutoSwitchDomain` key. For additional information, see [Opening Sandboxes](../../../portal/sandboxes/opening-sandboxes.md). -:::note -When opening a blueprint from a URL, the domain switch only works if the blueprint URL includes the domain ID. To obtain a blueprint URL with the domain ID, use the CloudShell Automation API's [GetTopologyUrls](pathname:///api-docs/2023.3/python-api/cloudshell.api.html?#cloudshell.api.cloudshell_api.CloudShellAPISession.GetTopologyUrls) method. -::: -**To disable the domain switch when accessing a sandbox/blueprint link:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -### Showing/hiding user/sandbox details of currently shared resources in CloudShell Portal - -The `ShowSharedResourceUsage` key determines whether to display the list of users and sandboxes that are currently using a shared resource, when viewing the resource's information in the **Inventory** dashboard or **Add Resources** catalog in a blueprint/sandbox. - -By default, this information is displayed, as illustrated in this image: - -![](/Images/Admin-Guide/Setting-Up-CloudShell/UserDetailsOnSharedResource.png) - -**To hide user/sandbox details on a shared resource:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -### Set List view as the default for sandbox workspaces - -By default, when you open a sandbox, the sandbox's elements are displayed in **Diagram** view. However, you can choose to change the default display mode to **List** view, using this key. For additional information, see [Sandbox List View](../../../portal/sandboxes/sandbox-workspace/sandbox-list-view.md). - -**To set List view as the default:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **CloudShell Portal IIS** service. - -### Preventing regular users from adding/removing resources in sandboxes - -By default, CloudShell enables regular users to add and remove resources in the sandbox. To block this option, enable the following key. As a result, the **Resource** button in the sandbox toolbar will be hidden in the active sandbox. - -Note that this does not apply to admins (who have full access permissions), or external users (who are unable to modify the sandbox diagram). - -**To prevent regular users from adding/removing resources in the sandbox:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -### Allowing sandboxes with shorter duration than Before end notification - -This section applies to sandboxes that have a **Before end** notification. By default, it is not possible to launch such a sandbox if the sandbox's duration is shorter than the **Before end** notification period. Using this key, you can allow users to launch such sandboxes. - -**To allow launching sandboxes with a shorter duration than the Before end period:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\customer.config` file, and add the following key: - -`` - -3. Save the file. -4. Restart the **CloudShell Portal IIS** service. - -### Setting the lowest role that can create and use persistent sandboxes (MinimalRoleForPersistentSandbox) - -This does not apply to "External" users, which do not have blueprint "Create" and "Reserve" permissions. External Extended users can reserve persistent sandboxes as long as this key is set to "None". In addition, by definition, users who have "View only" permission in the domain can only create but not reserve blueprints. - -**To set the lowest role for persistent sandboxes:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Set the role. Options are: - - **None (default)** - - - **Regular** - - - **DomainAdmin** - - - **SystemAdmin** - -3. Save the file. -4. Restart the **Quali Server** service. - -### Block non-admin users from ending persistent sandboxes (BlockNonAdminEndingPersistentSandbox) - -To avoid unintended stops of a persistent sandbox by non-admin users, while still permitting them to create or be designated as permitted users in such sandboxes, you can activate the following key. Enabling this key restricts the ability to stop a persistent sandbox solely to domain admin and system admin users. As a result, other users, including sandbox owners, won't have the permission to stop it. - -**To block non-admin users (even owners) from ending persistent sandboxes:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -## Scheduling and Queuing - -***Job Scheduling*** *is available as an add-on. For details, contact your account manager.* - -### Customizing the schedule-ahead buffer for pending jobs - -The scheduling and queuing engine continually tries to find open slots for pending jobs. By default, every 30 minutes. This configuration key enables you to determine the time interval at which the engine searches for available time slots. - -For example, if a job has completed running its tests but the job’s duration hasn’t ended, the job slot is available. However, the next job in queue will have to wait either for the current job's duration to end or the scheduling and queuing engine to run it. - -**To customize the time limits for the schedule-ahead buffer for pending jobs:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, add the following key, and set the relevant value: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -## Scheduling and Queuing - -***Job Scheduling*** *is available as an add-on. For details, contact your account manager.* - -### Customizing the schedule-ahead buffer for pending jobs - -The scheduling and queuing engine continually tries to find open slots for pending jobs. By default, every 30 minutes. This configuration key enables you to determine the time interval at which the engine searches for available time slots. - -For example, if a job has completed running its tests but the job’s duration hasn’t ended, the job slot is available. However, the next job in queue will have to wait either for the current job's duration to end or the scheduling and queuing engine to run it. - -**To customize the time limits for the schedule-ahead buffer for pending jobs:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, add the following key, and set the relevant value: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -### Setting allowed job overtime before termination - -The SNQ engine can allow jobs some to go overtime, instead of terminating them. - -This value, set by the admin, is used to add an additional overtime buffer for all jobs. Jobs that exceed their allocated time are considered overtime, and their owner receives a warning email. The buffer is specified as a percentage. - -**To set the job overtime buffer:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, add the following key, and set the relevant value: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -### Controlling the number of recently completed jobs displayed in the Job Scheduling page - -The **Job Scheduling** page in the CloudShell Portal displays the currently running jobs for each suite, as well as a limited number of recently ended jobs. By default, the last two completed jobs will be displayed. - -**To change the number of completed jobs displayed:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, add the following key, and set the relevant value: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -### Working with local tests - -By default, the **Create Suite Template (TestShell)** page in CloudShell Portal's **Job Scheduling** dashboard enables you to select only shared tests to add to the job. Adding this key enables you to select local tests as well. - -**To enable local test selection:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\customer.config` file, and add the following key: - -`` - -3. Save the file. -4. Restart the **CloudShell Portal IIS** service. - -You must get the latest parameters for the local tests per the execution server on which they are stored. - -**To get environment variables into the batch files:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\customer.config` file, and add the following key: - -`` - -Separate the relevant parameters with a comma as in the example above. - -4. Save the file. -5. Restart the **CloudShell Portal IIS** service. - -For additional information, see [Setting Up Execution Servers to Run Commands](../../cloudshell-execution-server-configurations/setting-up-execution-servers-to-run-commands.md). - -### Locking a test for editing - -This key enables you to configure if TestShell tests are locked for editing while they are being updated by other users. - -Note that while a test is being edited, other users can still edit this test and save changes, but their changes will not be applied. Setting this key to **True** will pop up an error message if a second user tries to save a locked test and block the action. - -Once the test is saved, all users with the required permission may edit the test. - -You can enable Admin users to unlock tests. See [Enabling TestShell admins to unlock tests in TestShell Studio](./advanced-cloudshell-customizations.md#enabling-testshell-admins-to-unlock-tests-in-testshell-studio). - -**To enable locking a test for editing in TestShell Studio:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - -`` - -3. Save the file. -4. Restart the **Quali Server** service. -5. Rerun the TestShell Configuration Wizard if your TestShell Studio client is installed on a different machine than **Quali Server**. - -### Enabling TestShell admins to unlock tests in TestShell Studio - -**To enable unlocking by an admin:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\TestShell\Studio\customer.config` file, and add the following key: - -`` - -2. Restart the TestShell Studio client. - -### Configurations for running local tests - -For additional information, see [Working with local tests](../../cloudshell-execution-server-configurations/setting-up-execution-servers-to-run-commands.md#working-with-local-tests). - -### Suite notification default severity level - -You can define the default notification severity level for your suite notification emails. - -**To set a default:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\customer.config` file, and add the following key: - -`` - -Other possible values are `None`, `SuiteAndErrors`, and `All`. - -2. Save the file. -3. Restart the **CloudShell Portal IIS** service. - -### Setting the Test Execution Report Template for Automation Suite Tests - -For additional information, see [Setting the Test Execution Report Template for Automation Suite Tests](../../../portal/job-scheduling/view-execution-history/view-test-reports/setting-test-execution-report-template.md). - -### Setting the maximum number of steps for test reports - -Reports of very large TestShell tests (over 10,000 steps) may take a long time to open and in some cases, may not open at all. To prevent this from happening, it is recommended to set a limit on the maximum number of steps allowed in a test report. - -The default is 10,000. - -**To set the maximum number of steps for test reports:** - -1. Open the appropriate file: - - - For reports created in TestShell Studio and Runner: `C:\Program Files (x86)\QualiSystems\TestShell\Studio\customer.config` file. - - For reports created in CloudShell Portal automation suites: `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\customer.config` file. -2. Add the following key: - - `` - -3. Set the value, as appropriate. -4. Save the files. -5. Run the **TestShell Studio Configuration Wizard** for Studio or Runner, or restart the **CloudShell Portal IIS** service for CloudShell Portal. - -### Setting the default Reporting Profile for automation suite jobs - -This key sets the default logging profile for automation suite tests. For tests that are executed in TestShell Studio and Runner, the default logging profile is defined globally in the application itself . - -The default value is: Results - -**To set the default Reporting Profile for jobs:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\customer.config` file, and add the following key: - - `` - - Possible values are: - - - **Results** logs only the execution results (results of following tools: Pass, Fail, Text To Report, Criteria, Attributes). - - **Measurements and Results** logs execution results and measures of all tools with output. - - **All** logs all results and outputs of the test execution (including tools without outputs). - - **None** runs the test without logging any output or result. - -2. Set the value, as appropriate. -3. Save the file. -4. Restart the **CloudShell Portal IIS** service. - -### Enabling non-admin users to edit and create suite templates - -**To enable non-admins to edit and create suite templates:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **CloudShell Portal IIS** service. - -## Scheduling commands - -### Controlling the time a command can stay in "pending" state - -This key determines the period a resource or blueprint command can be in the commands queue before it is automatically canceled. - -**To set the timeout period:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Set the timeout period, in minutes. The default is 10. -3. Save the file. -4. Restart the **Quali Server** service. - -### Enabling concurrent blueprint scripts - -Set this key to **True** to enable multiple blueprint script commands to run at the same time in a sandbox. This enables the **Default Sandbox Setup** script to run other scripts as part of its own execution. - -This option is disabled by default. - -:::note -To enable a resource driver's commands to run concurrently, in **Resource** **Manager** **Client**, open the **Resource** **Families** explorer and in the resource model's **Drivers** tab, select **Supports** **Concurrent** **Commands**. -::: -**To enable blueprint scripts to run concurrently:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -## Search - -It is possible to customize the resource search experience and scope using several configuration keys. - -### Showing/hiding the bulk add resources option in the search side pane - -The functionality to add a bulk of resources at once to a sandbox can be useful, especially in cases where the user needs to add hundreds of ports, storage LUNs or any other type of device to a sandbox. In such a scenario, dragging them in one-by-one might not be relevant. - -However, if that scenario is not relevant, you can disable this option for the user. - -**To disable the bulk add resources option:** - -1. Open the C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config file, and add the following key: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -### Controlling the resource types the user can drag into the sandboxes - -This can be useful if the admin wants to hide certain resources from the search pane results only, when the user is selecting which resource to add to his/her sandbox. In this manner, for example, it is possible to ensure that the user only uses the chassis/port level for certain device types, and avoid the confusing of many sub slot/blade/port group hierarchies. - -**To control the resource types the user can drag into sandboxes:** - -1. Open the C:\\Program Files (x86)\\QualiSystems\\CloudShell\\Server\\customer.config file, and add the following key: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. -4. In the **Resource Manager client**, in the **Resource Families** explorer, click a resource family. In the **Parameters** area, set the **Searchable** property according to the required visibility.  - - ![](/Images/Admin-Guide/Setting-Up-CloudShell/ConfigurationScreen.png) - - -### Controlling which attributes to display as filters - -As the user searches the database, automatic filtering attributes appear in the search panel and can be used to further focus the search. To avoid clutter, you can specify which attribute should be used for filtering in the **Resource Manager Client**. - -**To control which attributes to display as filters:** - -- Open the **Resource** **Manager** **Client**'s **Attributes** tab and add the **Displayed in Search Results** rule to the relevant attributes. - -### Advanced: Controlling the number of attributes and values filters retrieved for search results - -As the user searches the resources database, automatic attribute filters appear based on the search results. It is possible to configure the maximal number of these attribute filters and the maximal number of values for filtering. This can be useful if your resources have numerous relevant attributes which you want the user to be able to filter by, or if you want to reduce clutter and focus the user only on the most common attributes. - -**To control the maximum number of filtering attributes:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key and set the value (the default is 10 attributes): - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -**To control the maximum number of possible values per attribute:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key and set the value (the default is 5): - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -## Single Sign On (SSO) - -*SSO/SLO configuration is available with CloudShell Premium Tier.* - -For information about configuring Single Sign-On and SAML, see [Configuring Single Sign-On (SSO)](../../cloudshell-identity-management/access-control-and-authentication/saml-authentication-configuration-sso-slo/configure-sso/index.md). - -## TestShell Studio - -### Preventing regular users (non-admins) from creating tests and folders in the Shared test folder - -By default, non-admins can create tests and folders (in TestShell Studio) under the `Shared` root. To only allow domain admins and global admins to create tests and folders in the `Shared` test folder, disable the `AllowNonAdminToCreateTestsUnderSharedRoot` key. - -:::note -Shared tests and assets are stored in the MS SQL database -::: -**To prevent regular users from creating tests and folders:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, and add the following key: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -### Hiding the "Shared" test folder from Job Scheduling - -(This key applies to the original Job Scheduling) By default, the `Shared` test folder is accessible from Job Scheduling. However, you can hide the `Shared` test folder, preventing automation suite designers from using its tests in their automation suites. - -**To hide the "Shared" test folder:** - -1. Open the C:\Program Files (x86)\QualiSystems\CloudShell\Portal\customer.config file, and add the following key: - - `` - -2. Save the file. -3. Restart the **CloudShell Portal IIS** service. - -## Related topics - -- [Customer Configuration Keys Repository](./customer-configuration-keys-repository) diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/_category_.json b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/_category_.json deleted file mode 100644 index fafeb434dc..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Customer Configuration Keys Repository", - "position": 4 -} diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/abstract-resources.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/abstract-resources.md deleted file mode 100644 index 73aab174be..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/abstract-resources.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Abstract Resources - -## Randomized abstract resource selection - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Server installation directory
Default valueTrue
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
- -## Change the number of matches that are considered for abstract sub-resource requirements - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesNumeric
Where to add/change`customer.config` CloudShell Server installation directory
Default value1000
Affected CloudShell ComponentCloudShell Portal
Version2021.1 and above
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/api.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/api.md deleted file mode 100644 index 8e4ff8ca51..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/api.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -sidebar_position: 2 ---- - -# API - -For configuration keys related to API SSO, see [SSO Login to CloudShell APIs](../../../../devguide/available-cs-api/sso-login-to-cs-api.md). - -## Setting the response page size - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesNumeric
Where to add/change`customer.config` CloudShell Server installation directory
Default value1000
Affected CloudShell ComponentCloudShell API
Version8.1 and above
- -## Extending the API authorization token validity period - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesNumeric (in minutes)
Where to add/change`customer.config` CloudShell Server installation directory
Default value300
Affected CloudShell ComponentCloudShell API
Version6.4 and above
diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/apps.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/apps.md deleted file mode 100644 index 266723269f..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/apps.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -sidebar_position: 3 ---- - -# Apps - -## Set the default category for new Apps - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible values\ = the new default category
Where to add/change`customer.config` CloudShell Server installation directory
Default valueApplications
Affected CloudShell ComponentCloudShell Portal
Version7.0 and above
- -## Enable the modification and deletion of App templates only from the template's domain - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Portal installation directory
Default valueFalse
Affected CloudShell ComponentCloudShell Portal
Version8.2 and above
diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/blueprint-catalog.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/blueprint-catalog.md deleted file mode 100644 index d61f884c5c..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/blueprint-catalog.md +++ /dev/null @@ -1,426 +0,0 @@ ---- -sidebar_position: 5 ---- - -# Blueprint Catalog - -## New blueprints section: visibility - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Server installation directory
Default valueTrue
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
- -## New blueprints section: number of blueprints to display - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesNumeric (suggested 1-20)
Where to add/change`customer.config` CloudShell Server installation directory
Default value5
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
- -## New blueprints section: maximum age for new blueprints - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesNumeric (number of days)
Where to add/change`customer.config` CloudShell Server installation directory
Default value-1 (to not restrict to any timeframe)
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
- -## Recently modified section: visibility - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Server installation directory
Default valueTrue
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
- -## Recently modified section: number of blueprints to display - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesNumeric (suggested 1-20)
Where to add/change`customer.config` CloudShell Server installation directory
Default value5
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
- -## Display most recently reserved blueprints in the **Blueprint Catalog**'s **Featured** view, in which you are either the owner or a permitted user - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/changecustomer.config CloudShell Server installation directory
Default valueTrue
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
- -## Blueprint Catalog: Set the maximum number of recently reserved blueprints to display in the **Featured** view's **Recently Reserved** section - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesNumeric
Where to add/change`customer.config` CloudShell Server installation directory
Default value5
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
- -## Specify categories of the blueprints to display in the **Featured** section of the **Blueprint Catalog** - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesCategory names, separated by comma
Where to add/changecustomer.config CloudShell Server installation directory
Default valueN/A
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
- -## Display all blueprints in the main Blueprint Catalog - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Server installation directory
Default valueTrue
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
- -## Blueprint display modes - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Server installation directory
Default valueFalse
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
- -## Hide the **Status** filter - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Portal installation directory
Default valueFalse
Affected CloudShell ComponentCloudShell Portal
Version6.2.3 and above
- -## Enable **View** type blueprints - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Server installation directory
Default valueFalse
Affected CloudShell ComponentCloudShell Portal
Version6.2.3 and above
- -## Enable reference architecture flows - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Server installation directory
Default valueFalse
Affected CloudShell ComponentCloudShell Portal
Version6.2 and above
- -## Hide templates that require order to disable creating blueprints using those templates - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Server installation directory
Default valueTrue
Affected CloudShell ComponentCloudShell Portal
Version6.2 and above
- diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/blueprint-workspace.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/blueprint-workspace.md deleted file mode 100644 index 1bd11b8a53..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/blueprint-workspace.md +++ /dev/null @@ -1,305 +0,0 @@ ---- -sidebar_position: 6 ---- - -# Blueprint Workspace - -## Defines the maximum allowed orchestration driver teardown time - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesNumeric (in hours)
Where to add/change`customer.config` Quali Server installation directory
Default value48
Affected CloudShell ComponentQuali Server
Version6.0 and above
- -## Defines the maximum allowed orchestration driver setup time - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesNumeric (in hours)
Where to add/change`customer.config` Quali Server installation directory
Default value48
Affected CloudShell ComponentQuali Server
Version6.0 and above
- -## Enable the option to show or hide the **More Info** option from blueprints - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Portal installation directory
Default valueFalse
Affected CloudShell ComponentCloudShell Portal
Version6.2.3 and above
- -## Block non-admin users from exporting blueprint packages - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Server installation directory
Default valueFalse
Affected CloudShell ComponentCloudShell Portal
Version9.0 and above
- -## Display **Instructions** side pane by default - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Portal installation directory
Default valueFalse
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
- -## Display **Commands** side pane by default - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Portal installation directory
Default valueFalse
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
- -## Enable users to create blueprints from a template - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Server installation directory
Default valueFalse
Affected CloudShell ComponentCloudShell Portal
Version6.3 and above
- -## Change the time allocated for exporting the blueprint diagram - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesNumeric (time to wait, in milliseconds)
Where to add/change`customer.config` CloudShell Portal installation directory
Default value2000
Affected CloudShell ComponentCloudShell Portal
Version2021.2 and above
- -## Enable the **Check Blueprint Routes** option in the **Blueprint** menu - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Server installation directory
Default valueFalse
Affected CloudShell ComponentCloudShell Portal
Version9.2 and above
- -## Set the route grouping policy - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesNumeric (number of connection lines to be grouped)
Where to add/change`customer.config` CloudShell Portal installation directory
Default value3
Affected CloudShell ComponentCloudShell Portal
Version6.4 and above
diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/connectivity-management-and-route-configuration.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/connectivity-management-and-route-configuration.md deleted file mode 100644 index f377266df2..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/connectivity-management-and-route-configuration.md +++ /dev/null @@ -1,216 +0,0 @@ ---- -sidebar_position: 4 ---- - -# Connectivity Management and Route Configuration - -## Set the maximum number of hops allowed per route - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesNumeric
Where to add/change`customer.config` CloudShell Server installation directory
Default value6
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
- -## Enable automatic route configuration (automatically configures L1 connections) - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Server installation directory
Default valueFalse
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
- -## Enable regular users to change their email address - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Portal installation directory
Default valueFalse
Affected CloudShell ComponentCloudShell Portal
Version7.0 and above
- -## Enable regular users to change email notifications - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Server installation directory
Default valueTrue
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
- -## Set the default number of max hops displayed for routes (in the connection’s Max Hops field in the Resource Connections dialog box) - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesNumeric (in hops)
Where to add/change`customer.config` CloudShell Server installation directory
Default value2
Affected CloudShell ComponentCloudShell Portal
Version6.1 and above
- -## Set the default connection type when creating a connection - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesText
Where to add/change`customer.config` CloudShell Server installation directory
Default valueRoute
Affected CloudShell ComponentCloudShell Portal
Version6.2 and above
- -## Set the supported connection types for new connections - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesConnection type, separated by comma
Where to add/change`customer.config` CloudShell Portal installation directory
Default valueRoute, Cable, Tap, Connector
Affected CloudShell ComponentCloudShell Portal
Version6.2 and above
- diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/execution-server.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/execution-server.md deleted file mode 100644 index 8a73c1e13f..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/execution-server.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -sidebar_position: 7 ---- - -# Execution Server - -- For Python package handling keys, see [PyPi Server](./pypi-server). - -- For execution server configurations and customizations, see [Optimizing Execution Provisioning](../../../cloudshell-execution-server-configurations/optimizing-execution-provisioning.md). diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/general.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/general.md deleted file mode 100644 index e76605625d..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/general.md +++ /dev/null @@ -1,664 +0,0 @@ ---- -sidebar_position: 8 ---- - -# General - - ## Show/hide the main navigation bar components - -Show/hide the main navigation bar components (HideSnQ, HideReservations, HideTopologies, HideInventory) - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key - `` - -`` - -`` - -`` -
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Portal installation directory
Default valueFalse for all keys
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
- - -## Set the default home page - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible values - Scheduling and queueing: "SnQ/Scheduler/" - -Topologies: "RM/Topology" - -Reservations: "RM/" - -Any other page relative address. -
Where to add/change`customer.config` CloudShell Portal installation directory
Default valueThe topologies dashboard URL ("/RM/Topology")
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
- -## Add the Contact option to the user menu in CloudShell Portal - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesurl
Where to add/change`customer.config` CloudShell Portal installation directory
Default valueN/A (disabled)
Affected CloudShell ComponentCloudShell Portal
Version7.0 and above
- -## Specify the number of resource driver executions that can run in parallel - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesNumeric
Where to add/change`customer.config` CloudShell Server installation directory
Default value20
Affected CloudShell ComponentQuali Server
Version6.0
- -## Enable user definitions to be imported from an active directory - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesDomain names
Where to add/change`customer.config` CloudShell Server installation directory
Default valueN/A
Affected CloudShell ComponentCloudShell Portal
Version6.3 and above
- -## Manual import of users using LDAP or Active Directory - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible values - `ActiveDirectoryPlugin` - -`LdapPlugin` - requires additional configurations - see [LDAP Integration](../../../cloudshell-identity-management/access-control-and-authentication/ldap-integration.md) -
Where to add/changecustomer.config CloudShell Server installation directory
Default value`ActiveDirectoryPlugin`
Affected CloudShell ComponentCloudShell Portal
Version7.0 and above
- -## Import user from external system (Active Directory, LDAP) if it does not exist in TestShell - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Server installation directory
Default valueTrue
Affected CloudShell ComponentCloudShell Portal
Version6.1 and above
- -## Disable **DBCC TRACEON** - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False (True = DBCC TRACEON is enabled)
Where to add/change`customer.config` CloudShell Server installation directory
Default valueTrue
Affected CloudShell ComponentCloudShell Portal
Version6.1 and above
- -## Set the user cache timeout value in seconds - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesNumeric (in seconds)
Where to add/change`customer.config` CloudShell Server installation directory
Default value600
Affected CloudShell ComponentCloudShell Portal
Version6.1 and above
- -## Specify the path for the packaging logs - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesText
Where to add/change`customer.config` CloudShell Server installation directory
Default valueInstallation path:=`:\Program Files(x86)\QualiSystems\CloudShell\Server\Packaging Logs`
Affected CloudShell ComponentCloudShell Portal
Version6.2.3 and above
- -## Define the Instructions pane size - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesNumeric (in pixels)
Where to add/change`customer.config` CloudShell Portal installation directory
Default value540
Affected CloudShell ComponentCloudShell Portal
Version7.1 and above
- -## Set the default Python version for new Python scripts - -Python 3 automation requires Microsoft Visual C++ Redistributable 2015 x86 and x64 to be installed on the Execution Server(s). - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible values - `Python 2` - -`Python 3` -
Where to add/change`customer.config` CloudShell Server installation directory
Default valuePython 3
Affected CloudShell ComponentExecution Server
Version9.2 and above
- -## Show the **Drivers** management page - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False (True = Hide **Drivers** tab is enabled)
Where to add/change`customer.config` CloudShell Portal installation directory
Default valueTrue
Affected CloudShell ComponentCloudShell Portal
Version9.2 and above
- -## Hiding the CloudShell Portal footer - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False (False = hide the footer)
Where to add/change`customer.config` CloudShell Portal installation directory
Default valueTrue
Affected CloudShell ComponentCloudShell Portal
Version2021.3 and above
- -## Allowing the execution of orchestration scripts without the need for a blueprint driver - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False (False = disable the ability to run orchestration scripts directly from Quali Server and require the use of a blueprint driver)
Where to add/changetemp
Default value`customer.config` CloudShell Server installation directory
Affected CloudShell ComponentCloudShell Server
Version9.3 and above
- -## Increasing the time allowed for Quali Server to stop during upgrade - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesNumeric (in seconds)
Where to add/change`customer.config` CloudShell Server installation directory
Default value30
Affected CloudShell ComponentCloudShell Server
Version2021.3 and above
- -## Change the default Quali API port - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesNumeric (port number)
Where to add/change`customer.config` CloudShell Server installation directory
Default value9000
Affected CloudShell ComponentQuali API
Version6.4 and above
- -## Hide Approval Request content from CloudShell Portal - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Portal installation directory
Default valueTrue
Affected CloudShell ComponentCloudShell Portal
Version2023.1 and above
- -## Enabling the automatic removal of expired approval requests - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Server installation directory
Default valueTrue
Affected CloudShell ComponentCloudShell Portal
Version2023.1 and above
- -## Setting the expiration timeout for approval requests - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesNumeric (in hours)
Where to add/change`customer.config` CloudShell Server installation directory
Default value168
Affected CloudShell ComponentCloudShell Portal
Version2023.1 and above
- -## Setting the interval for detecting for expired approval requests - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesNumeric (in hours)
Where to add/change`customer.config` CloudShell Server installation directory
Default value24
Affected CloudShell ComponentCloudShell Portal
Version2023.1 and above
diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/index.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/index.md deleted file mode 100644 index 45182a5fa6..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/index.md +++ /dev/null @@ -1,27 +0,0 @@ -# Customer Configuration Keys Repository - -The customer configuration keys repository is arranged in the following categories: - -- [Abstract resources](./customer-configuration-keys-repository/abstract-resources) -- [API](./customer-configuration-keys-repository/api) -- [Apps](./customer-configuration-keys-repository/apps) -- [Connectivity management and route configuration](./customer-configuration-keys-repository/connectivity-management-and-route-configuration) -- [Blueprint Catalog](./customer-configuration-keys-repository/blueprint-catalog) -- [Blueprint Workspace](./customer-configuration-keys-repository/blueprint-workspace) -- [Execution Server](./customer-configuration-keys-repository/execution-server) -- [General](./customer-configuration-keys-repository/general) -- [Inventory dashboard](./customer-configuration-keys-repository/inventory-dashboard) -- [New Job Scheduling](./customer-configuration-keys-repository/new-job-scheduling) -- [LDAP Integration](./customer-configuration-keys-repository/ldap-integration) -- [Monitoring](./customer-configuration-keys-repository/monitoring) -- [Online Help](./customer-configuration-keys-repository/online-help) -- [PyPi Server](./customer-configuration-keys-repository/pypi-server) -- [Registration, passwords, emails, and licenses](./customer-configuration-keys-repository/registration-passwords-emails-and-licenses) -- [Sandboxes](./customer-configuration-keys-repository/sandboxes) -- [Scheduling and Queuing](./scheduling-and-queuing.md) -- [Scheduling commands](./customer-configuration-keys-repository/scheduling-commands) -- [Search](./customer-configuration-keys-repository/search) -- [Single Sign On (SSO)](./single-sign-on-sso.md) -- [TestShell Studio](./customer-configuration-keys-repository/testshell-studio) - -For more information on the use of each configuration key and for examples, see [Advanced CloudShell Customizations](../advanced-cloudshell-customizations.md). diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/inventory-dashboard.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/inventory-dashboard.md deleted file mode 100644 index 386dcb65e2..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/inventory-dashboard.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -sidebar_position: 9 ---- - -# Inventory Dashboard - -## Allow regular users to reserve resources from the **Inventory** dashboard - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False (True = allow this option for regular users)
Where to add/change`customer.config` CloudShell Portal installation directory
Default valueFalse
Affected CloudShell ComponentCloudShell Portal
Version9.1 and above
- diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/ldap-integration.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/ldap-integration.md deleted file mode 100644 index b11e2ae613..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/ldap-integration.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -sidebar_position: 11 ---- - -# LDAP Integration - -See [LDAP Integration](../../../cloudshell-identity-management/access-control-and-authentication/ldap-integration.md). diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/monitoring.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/monitoring.md deleted file mode 100644 index 16a9fd279c..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/monitoring.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -sidebar_position: 12 ---- - -# Monitoring - -## Set the duration for CloudShell Monitor logs - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesNumeric
Where to add/change`monitor.config` Monitor installation directory
Default value14 (in days)
Affected CloudShell ComponentCloudShell Monitor
Version9.1 and above
- -## Disable the export of usage data to Quali - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Server installation directory
Default valueTrue
Affected CloudShell ComponentCloudShell Server
Version9.2 GA and above
- -## Disable the export of usage data to **CloudShell Monitor** - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Server installation directory
Default valueTrue
Affected CloudShell ComponentCloudShell Monitor
Version9.2 GA and above
- diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/new-job-scheduling.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/new-job-scheduling.md deleted file mode 100644 index b925594ee1..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/new-job-scheduling.md +++ /dev/null @@ -1,116 +0,0 @@ ---- -sidebar_position: 10 ---- - -# New Job Scheduling - -## Switching between Sandbox Services - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible values - True: Use Quali Server's out-of-the-box Sandbox Service - -False: Use Kubernetes-based Sandbox Service -
Where to add/change`customer.config` CloudShell Server installation directory
Default valueTrue
Affected CloudShell ComponentCloudShell Server
Version2020.2 and above
- -## Allowing Quali Server to access the Kubernetes-based Sandbox Service - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key - `` - -`` -
Possible values - SandboxServiceHost - Ip address/hostname - -SandboxServiceRestPort - port number -
Where to add/change`customer.config` CloudShell Server installation directory
Default value8888 - default port number
Affected CloudShell ComponentCloudShell Server
Version2020.2 and above
- -## Allowing Quali Server to access the Kubernetes-based RabbitMQ Service - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key - `` - -`` -
Possible values - RabbitHostname - Ip address/hostname - -RabbitPort - port number -
Where to add/change`customer.config` CloudShell Server installation directory
Default value15671 - default port number
Affected CloudShell ComponentCloudShell Server
Version2020.2 and above
- diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/online-help.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/online-help.md deleted file mode 100644 index 90bf523157..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/online-help.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -sidebar_position: 13 ---- - -# Online Help - -## Determine if to use online help or offline help - -For additional information, see [Switching between online and offline help](../advanced-cloudshell-customizations.md#online-help). - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False (True = online help)
Where to add/change`customer.config` CloudShell Portal / TestShell Studio / CloudShell Authoring / Resource Manager Client installation directory (as appropriate)
Default valueTrue
Affected CloudShell ComponentCloudShell Portal / TestShell / Authoring / Resource Manager Client
Version6.4 and above
- -## Use non-CloudShell help content - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible values - "Empty" = CloudShell help content - -\ = different help content -
Where to add/change`customer.config` CloudShell Portal installation directory
Default valueEmpty
Affected CloudShell ComponentCloudShell Portal
Version6.4 and above
- diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/pypi-server.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/pypi-server.md deleted file mode 100644 index ad4bdefc1f..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/pypi-server.md +++ /dev/null @@ -1,109 +0,0 @@ ---- -sidebar_position: 14 ---- - -# PyPi Server - -## Set the online computer's name and port -:::note -This applies to CloudShell deployments using PyPi Server to retrieve and serve Python dependencies from a dedicated online computer. -::: - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valueshostname or IP address and port
Where to add/change`customer.config` CloudShell Execution Server installation directories
Default valueN/A
Affected CloudShell ComponentExecution Server
Version8.2 and above
- -## Define the online computer as a trusted host -:::note -This applies to CloudShell deployments using PyPi Server to retrieve and serve Python dependencies from a dedicated online computer. -::: - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valueshostname or IP address specified in the `RequirementsRepository` configuration key
Where to add/change`customer.config` CloudShell Execution Server installation directories
Default valueN/A
Affected CloudShell ComponentExecution Server
Version8.2 and above
- -## Set a secondary online python packages repository -:::note -Make sure to set this key on all execution servers. -::: - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible values - hostname or IP address and port. For example: - -`` -
Where to add/change`customer.config` CloudShell Execution Server installation directories
Default valueN/A
Affected CloudShell ComponentExecution Server
Version8.2 and above
- diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/registration-passwords-emails-and-licenses.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/registration-passwords-emails-and-licenses.md deleted file mode 100644 index f0091b62cb..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/registration-passwords-emails-and-licenses.md +++ /dev/null @@ -1,345 +0,0 @@ ---- -sidebar_position: 15 ---- - -# Registration, Passwords, Emails, and Licenses - -## Enable registration - -Enable registration (Requires also setting the Registration.AdminEmail key, as explained below) (Registration.Enabled) - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Portal installation directory
Default valueFalse
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
-## Set email address for a system administrator level user - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key - `` - -Where `admin@company.com` is the email address of a **Resource Manager Client** system administrator -
Possible valuesEmail address, separated by semi-colons (;)
Where to add/change`customer.config` CloudShell Server installation directory
Default valueN/A
Affected CloudShell ComponentCloudShell Server
Version6.0 and above
-## Configure registered user permissions - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesDefault domain
Where to add/change`customer.config` CloudShell Server installation directory
Default valueN/A
Affected CloudShell ComponentCloudShell Server
Version6.0 and above
-## Configure registered user permissions - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesText
Where to add/change`customer.config` CloudShell Server installation directory
Default valueExternal Users
Affected CloudShell ComponentCloudShell Server
Version6.0 and above
-## Configure the default role when a user is registered - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesText
Where to add/change`customer.config` CloudShell Server installation directory
Default valueRegular
Affected CloudShell ComponentCloudShell Portal
Version6.1 and above
-## Enable password reset - -This also requires configuring the SMTP mail. See [Enabling password reset](../advanced-cloudshell-customizations.md#enabling-password-reset). - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Portal installation directory
Default valueFalse
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
-## Hide the "Change Password" option from the user menu - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Portal installation directory
Default valueTrue
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
-## Enable delaying failed login attempts/brute-force protection - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Server installation directory
Default valueFalse
Affected CloudShell ComponentCloudShell Server
Version2023.3 and above
-## Change the default idle time for releasing the license - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesNumeric (in minutes)
Where to add/change`customer.config` CloudShell Portal / CloudShell Authoring / TestShell Studio installation directory
Default value65
Affected CloudShell ComponentTestShell Studio/TestShell Runner/CloudShell Authoring
Version6.3 and above
-## Change the email validation pattern - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key - `` - -Where the email address strings can include any character in any language or symbol (separated by "@" and "."). For example, to limit the email address to a particular company, set value="[^\s@]+@company\.com" -
Possible valuesText, email address string
Where to add/change`customer.config` CloudShell Portal installation directory
Default valueEmail address format (*@*.*)
Affected CloudShell ComponentCloudShell Portal
Version7.0 and above
-## Include a link to the sandbox in notification emails - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key - `` - -| Parameter | Parameter details | -| --- | --- | -| `protocol` | http or https if CloudShell Portal is set to use SSL | -| `PublicServerName` | The DNS name or IP address of the CloudShell Portal virtual front | -| `PortalPort` | The port which CloudShell Portal is using (If the port is 80 or 443, remove this parameter and the colon from the key value). | -
Possible valuesText, email address string
Where to add/change`customer.config` CloudShell Server installation directory
Default valueN/A
Affected CloudShell ComponentCloudShell Portal
Version7.0 and above
diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/sandboxes.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/sandboxes.md deleted file mode 100644 index 06285c6c93..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/sandboxes.md +++ /dev/null @@ -1,1385 +0,0 @@ ---- -sidebar_position: 16 ---- - -# Sandboxes - -## Controlling the time a command can stay in "pending" state - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesNumeric (in minutes)
Where to add/change`customer.config` CloudShell Server installation directory
Default value10
Affected CloudShell ComponentCloudShell Portal
Version6.4 and above
-## Enable users to share a sandbox only with other users of the same groups - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Server installation directory
Default valueFalse
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
-## Prevents users reserving a blueprint from viewing **Owner** and **Permitted Users** details - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Server installation directory
Default valueFalse
Affected CloudShell ComponentCloudShell Portal
Version9.0 and above
-## Unlock sandboxes for use during the Setup process - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Server installation directory
Default valueTrue
Affected CloudShell ComponentCloudShell Portal
Version8.1 and above
-## Enable extended permissions for external users - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change - `customer.config` CloudShell Server installation directory - -\* Requires restarting both the **Quali Server** and **CloudShell Portal IIS** services. -
Default valueFalse
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
-## Prevent users from using the **Reserve Anyway** option - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config CloudShell Server installation directory`
Default valueFalse
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
- -:::note -When this key is enabled, an administrator will still be able to reserve with conflicts. -This is also the behavior when using the CloudShell automation api. -If however, the logged in admin is trying to create a reservation for a regular user (set the owner to a regular user), this will fail as well if there are conflicts. -::: - -## Enable regular users to view sandboxes of other users in their domain - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Server installation directory
Default valueTrue
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
-## Set the default duration for new sandboxes - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesNumeric (in hours)
Where to add/change`customer.config` CloudShell Server installation directory
Default value2
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
-## Disable the "Recurrence" option when creating sandboxes - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Server installation directory
Default valueTrue
Affected CloudShell ComponentCloudShell Portal
Version8.2 and above
-## Set the default maximum number of sandboxes a user can have at the same time - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesNumeric
Where to add/change`customer.config` CloudShell Server installation directory
Default value10
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
-## Set the default maximum number of scheduled sandboxes a user can have at the same time - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible values - Numeric - -empty value - unlimited number of scheduled sandboxes allowed - -0 - no scheduled sandboxes allowed -
Where to add/changecustomer.config CloudShell Server installation directory
Default value10/empty (unlimited) for users migrated from a pre-9.3 Patch 2 CloudShell
Affected CloudShell ComponentCloudShell Portal
Version9.3 Patch 2 and above
-## Set the default maximum number of blueprints a user can own at any given time - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesNumeric
Where to add/change`customer.config` Quali Server installation directory
Default valueempty (unlimited)
Affected CloudShell ComponentQuali Server
Version2021.3 and above
-## Set the default maximum number of saved sandboxes a user can create with the **Save and Restore** add-on - -This key applies only to new users or users created in a CloudShell version prior to 9.0 that are migrated for the first time. -:::note -Admins can configure the maximum number of saved sandboxes for a specific user in Resource Manager Client or via API, when updating user settings or when creating a new user. -::: - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesNumeric
Where to add/change`customer.config` Quali Server installation directory
Default valueempty (unlimited)
Affected CloudShell ComponentQuali Server
Version9.0 and above
-## Set the default maximum sandbox duration limit for each user - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesdays:hours:minutes:seconds
Where to add/change`customer.config` CloudShell Server installation directory
Default value1:00:00:00
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
-## Set the maximum number of users per reservation - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesNumeric
Where to add/change`customer.config` CloudShell Server installation directory
Default value20
Affected CloudShell ComponentCloudShell Portal
Version7.0 and above
-## Display **Instructions** side pane by default - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Portal installation directory
Default valueFalse
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
-## Display **Commands** side pane by default - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Portal installation directory
Default valueFalse
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
-## Determine whether sandboxes should end automatically - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible values - True/False (True - auto end sandbox at end time / False = allow sandbox to enter overtime -:::note Important -It is not recommended to enable Overtime since it makes managing and troubleshooting conflicts more difficult. -::: -
Where to add/change`customer.config` CloudShell Server installation directory
Default valueTrue
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
-## Show the **Mark "in use"** option for resources - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False (True - hides the option) **Mark "in use"** option / False = displays **Mark "in use" option**
Where to add/change`customer.config` Quali Server installation directory
Default valueTrue
Affected CloudShell ComponentCloudShell Portal
Version9.2 and above
-## Prevent non-admin users from reserving shared resources exclusively - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False (False = resources marked as ‘Shared by default’ cannot be ‘unshared’ by regular user)
Where to add/change`customer.config` CloudShell Server installation directory
Default valueFalse
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
-## Prevent non-admin users from viewing the physical connection layer in the sandboxes dashboard - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Server installation directory
Default valueFalse
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
-## Set email notification defaults for sandboxes - notify when sandbox is reserved - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Server installation directory
Default valueFalse
Affected CloudShell ComponentCloudShell Server
Version6.0 and above
-## Set email notification defaults for sandboxes - notify when setup completes - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/changecustomer.config CloudShell Server installation directory
Default valueFalse
Affected CloudShell ComponentCloudShell Server
Version9.3 GA and above
-## Set email notification defaults for sandboxes - notify when teardown is scheduled to start - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Server installation directory
Default valueFalse
Affected CloudShell ComponentCloudShell Server
Version6.0 and above
-## Set email notification defaults for sandboxes - notify x minutes before sandbox is scheduled to end - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesNumeric (in minutes)
Where to add/change`customer.config` CloudShell Server installation directory
Default value10
Affected CloudShell ComponentCloudShell Server
Version6.0 and above
-## Set email notification defaults for sandboxes - notify when sandbox ends - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Server installation directory
Default valueFalse
Affected CloudShell ComponentCloudShell Server
Version6.0 and above
-## Add additional recipients for sandbox notifications - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesEmail addresses, separated by semi-colons
Where to add/change`customer.config` CloudShell Server installation directory
Default valueN/A
Affected CloudShell ComponentCloudShell Server
Version6.0 and above
-## Set general policies to inform system admins - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Server installation directory
Default valueFalse
Affected CloudShell ComponentCloudShell Server
Version6.0 and above
-## Set general policies to inform domain admins - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Server installation directory
Default valueFalse
Affected CloudShell ComponentCloudShell Server
Version6.0 and above
-## Set general policies to inform domain admins - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Server installation directory
Default valueFalse
Affected CloudShell ComponentCloudShell Server
Version6.0 and above
-## Force admin notifications **On Start** even if user disables them - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible values - True - send an email notification to the admin/domain admin when the sandbox starts - -False - send an email notification according to the sandbox end-user's settings when booking the sandbox -
Where to add/changecustomer.config CloudShell Server installation directory
Default valueTrue
Affected CloudShell ComponentCloudShell Server
Version6.0 and above
-## Force admin notifications **On setup complete** even if user disables them - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Server installation directory
Default valueFalse
Affected CloudShell ComponentCloudShell Server
Version9.3 GA and above
-## Force admin notifications **Before End** even if user disables them - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible values - True - send an email notification to the admin/domain admin before the sandbox ends - -False - send an email notification according to the sandbox end-user's settings when booking the sandbox -
Where to add/change`customer.config` CloudShell Server installation directory
Default valueTrue
Affected CloudShell ComponentCloudShell Server
Version6.0 and above
-## Force admin notifications **On end** even if user disables them - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible values - True - send an email notification to the admin/domain admin when the sandbox ends - -False - send an email notification according to the sandbox end-user's settings when booking the sandbox -
Where to add/change`customer.config` CloudShell Server installation directory
Default valueTrue
Affected CloudShell ComponentCloudShell Server
Version6.0 and above
-## Enable users to create ad-hoc sandboxes - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Server installation directory
Default valueTrue
Affected CloudShell ComponentCloudShell Portal
Version6.2 and above
-## Enable HTML formatting in **Output** console, **Full Activity Feed** and **Commands** side pane - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Portal installation directory
Default valueTrue
Affected CloudShell ComponentCloudShell Portal
Version7.0 and above
-## Limit the time to keep sandbox **Activity Feed/Output** data - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesNumeric (in days)
Where to add/change`customer.config` CloudShell Server installation directory
Default value17910
Affected CloudShell ComponentCloudShell Server
Version2020.2 EA and above
-## Prevent the **Output** console from opening when new sandbox events occur - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Server installation directory
Default valueTrue
Affected CloudShell ComponentCloudShell Portal
Version2021.3 EA and above
-## Configure a calendar event for future sandboxes - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Server installation directory
Default valueTrue
Affected CloudShell ComponentCloudShell Server
Version7.1 and above
-## Disable admin calendar event when user extends (or cancels a future) sandbox - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key - `` - -`` -
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Server installation directory
Default valueTrue
Affected CloudShell ComponentCloudShell Server
Version8.2 and above
-## Prevent users from accessing sandbox links in a different domain - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Server installation directory
Default valueTrue
Affected CloudShell ComponentCloudShell Portal
Version9.0 and above
-## Show/hide user/sandbox details of currently shared resources in CloudShell Portal - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue (show user/sandbox details)
Where to add/change`customer.config` CloudShell Server installation directory
Default valueTrue
Affected CloudShell ComponentCloudShell Portal
Version8.2 and above
-## Set **List** view as the default for sandbox workspaces - -For additional information, see [Sandbox List View](../../../../portal/sandboxes/sandbox-workspace/sandbox-list-view.md). - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/changecustomer.config CloudShell Portal installation directory
Default valueFalse
Affected CloudShell ComponentCloudShell Portal
Version9.2 and above
-## Prevent regular users from adding/removing resources in sandboxes - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Server installation directory
Default valueFalse
Affected CloudShell ComponentCloudShell Server
Version9.2 GA and above
-## Allow sandboxes with shorter duration than Before end notification - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/changecustomer.config CloudShell Portal installation directory
Default valueTrue
Affected CloudShell ComponentCloudShell Server
Version2022.2 GA
-## Set the lowest role that can create and use persistent sandboxes - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Server installation directory
Default valueTrue
Affected CloudShell ComponentCloudShell Portal
Version6.2 and above
diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/scheduling-and-queuing.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/scheduling-and-queuing.md deleted file mode 100644 index cb8bb41040..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/scheduling-and-queuing.md +++ /dev/null @@ -1,306 +0,0 @@ ---- -sidebar_position: 17 ---- - -# Scheduling and Queuing - -***Job Scheduling*** *is available as an add-on. For details, contact your account manager.* - -For local tests configurations, see [Working with local tests](../../../cloudshell-execution-server-configurations/setting-up-execution-servers-to-run-commands.md#working-with-local-tests). - -## Set allowed job overtime before termination - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesNumeric (in percentage)
Where to add/change`customer.config` CloudShell Server installation directory
Default value10
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
-## Set number of recently completed jobs to display in the scheduler - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesNumeric
Where to add/change`customer.config` CloudShell Server installation directory
Default value2
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
-## Set the default job time buffer for extra time for tests, per job - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesNumeric (in minutes)
Where to add/change`customer.config` CloudShell Server installation directory
Default value10
Affected CloudShell ComponentCloudShell Portal
Version6.1 and above
-## Lock a test for editing - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Server installation directory
Default valueFalse
Affected CloudShell ComponentCloudShell Portal
Version7.1 and above
-## Admin unlock permission - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` TestShell Studio installation directory
Default valueFalse
Affected CloudShell ComponentTestShell Studio
Version7.1 and above
-## Set the default severity level for suite notification emails - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesNone, ErrorsOnly, SuiteAndErrors, All
Where to add/change`customer.config` CloudShell Portal installation directory
Default valueErrorsOnly
Affected CloudShell ComponentCloudShell Portal
Version7.1 and above
-## Set the report template to use for tests executed in the Job Scheduling dashboard - -*To set the default execution report template for tests that were executed in Remote Runner, see Specifying the default report template.* - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTest Results, Test Steps, Detailed Report, Failure Report
Where to add/change`customer.config` CloudShell Portal installation directory
Default valueTest Results
Affected CloudShell ComponentCloudShell Portal
VersionBefore 7.0
-## Set the maximum number of steps for test reports - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesNumeric
Where to add/change`customer.config` CloudShell Portal/TestShell installation directory
Default value10000
Affected CloudShell ComponentCloudShell Portal, TestShell Studio and Runner
VersionBefore 7.0
-## Set the default Reporting Profile for automation suite jobs - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible values - Results, Measurements and Results, All, None - -For details, see [Setting the default Reporting Profile for automation suite jobs](../advanced-cloudshell-customizations.md#setting-the-default-reporting-profile-for-automation-suite-jobs). -
Where to add/change`customer.config` CloudShell Portal installation directory
Default valueResults
Affected CloudShell ComponentCloudShell Portal
VersionBefore 7.0
-## Enable non-admin users to edit and create suite templates - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Portal installation directory
Default valueFalse
Affected CloudShell ComponentCloudShell Portal
Version6.3 and above
diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/scheduling-commands.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/scheduling-commands.md deleted file mode 100644 index d64b8506e2..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/scheduling-commands.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -sidebar_position: 18 ---- - -# Scheduling Commands - -## Enable blueprint scripts to run concurrently - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Server installation directory
Default valueFalse
Affected CloudShell ComponentCloudShell Server
Version8.0 and above
-## Setting Quali Server's timeout period for L1 drivers -:::note -For more information, see [Set the timeout period for L1 drivers](../../../setting-up-cloudshell/inventory-operations/connectivity-control/l1-switches.md#set-the-timeout-period-for-l1-drivers). -::: - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesNumeric (in seconds)
Where to add/change`customer.config` CloudShell Server installation directory
Default value1
Affected CloudShell ComponentCloudShell Server
Version7.1 and above
diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/search.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/search.md deleted file mode 100644 index d8c20eeb70..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/search.md +++ /dev/null @@ -1,122 +0,0 @@ ---- -sidebar_position: 19 ---- - -# Search - -## Show/hide the bulk add resources option - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Server installation directory
Default valueTrue
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
-## Ensure the user only uses the chassis/port level for certain device types - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Server installation directory
Default valueTrue
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
-## Specify the maximum number of filtering attributes - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesNumeric
Where to add/change`customer.config` CloudShell Server installation directory
Default value10
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
-## Specify the maximum number of possible values per attribute - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesNumeric
Where to add/change`customer.config` CloudShell Server installation directory
Default value5
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/single-sign-on-sso.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/single-sign-on-sso.md deleted file mode 100644 index c2df60fa22..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/single-sign-on-sso.md +++ /dev/null @@ -1,540 +0,0 @@ ---- -sidebar_position: 20 ---- - -# Single Sign On (SSO) - -## SSO – Change the login page in case the user logs out - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesText
Where to add/change`customer.config` CloudShell Portal installation directory
Default valueN/A
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
-## SSO – Enable or disable SSO - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesToken, Header, None
Where to add/change`customer.config` CloudShell Server installation directory
Default valueToken
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
-## SSO – Enable or disable using Token mode - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesToken, Header, None
Where to add/change`customer.config` CloudShell Server installation directory
Default valueToken
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
-## SSO – Configure token encryption using Rijndael symmetric encryption key (32 bytes) - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesAny multiple of 32 bits
Where to add/change`customer.config` CloudShell Server installation directory
Default valueAs set in the QsTeamServer.exe.config file in the Quali Server installation directory
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
-## SSO – Configure token encryption using Rijndael symmetric encryption key IV (16 bytes) - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesAny multiple of 16 bits
Where to add/change`customer.config` CloudShell Server installation directory
Default valueAs set in the QsTeamServer.exe.config file in the Quali Server installation directory
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
-## Header mode – used when the username is added to one of the HTTP headers - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesAny username that is added to one of the HTTP headers
Where to add/change`customer.config` CloudShell Server installation directory
Default valueToken
Affected CloudShell ComponentCloudShell Portal
Version6.0 and above
- -## SAML Single Sign On (SSO) - -*SSO/SLO configuration is available with CloudShell Premium Tier.* - -For step-by-step instructions on how to use these configuration keys, see [Configuring SAML Single Sign-On (SSO)](../../../cloudshell-identity-management/access-control-and-authentication/saml-authentication-configuration-sso-slo/configure-sso/index.md#configuring-samlsingle-sign-on-sso). -:::note -CloudShell supports SAML v2.0. If you encounter an error, please contact your SAML administrator. -::: -## SAML SSO – Enable SAML SSO authentication - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Portal installation directory
Default valueFalse
Affected CloudShell ComponentCloudShell Portal
Version6.4 and above
-## SAML SSO – Configure the Assertion Consumer Service URL - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesURL string with the address of the CloudShell Portal (including server IP address and port number)
Where to add/change`customer.config` CloudShell Portal installation directory
Default valueN/A
Affected CloudShell ComponentCloudShell Portal
Version6.4 and above
-## SAML SSO – Configure the URL of the Identity Provider - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesURL of the Identity Provide (IdP)
Where to add/change`customer.config` CloudShell Portal installation directory
Default valueN/A
Affected CloudShell ComponentCloudShell Portal
Version6.4 and above
-## SAML SSO – Configure the address of the login page (CustomAbsoluteLoginPage) - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesText, URL string with the address of the CloudShell Portal (including server IP address and port number)
Where to add/change`customer.config` CloudShell Portal installation directory
Default valueN/A
Affected CloudShell ComponentCloudShell Portal
Version6.4 and above
-## SAML SSO – Configure the deflate/inflate compression when processing SAML requests - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Portal installation directory
Default valueTrue
Affected CloudShell ComponentCloudShell Portal
Version6.4 and above
-## SAML SSO – Configure the name of the certificate key file (.pfx file) to sign the SAML request with - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesText, if the certificate is locked with a password use a semicolon and provide the password (as shown in the above example)
Where to add/change`customer.config` CloudShell Portal installation directory
Default valueN/A
Affected CloudShell ComponentCloudShell Portal
Version6.4 and above
-## SAML SSO – Configure the HTTP method to use when issuing the SAML request to the Identity Provider - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesGet, Post, Redirect
Where to add/change`customer.config` CloudShell Portal installation directory
Default valueRedirect (which does not check for browser compatibility)
Affected CloudShell ComponentCloudShell Portal
Version6.4 and above
-## SAML SSO – Redirect the user to a specified URL whenever the user browses the SAML consumer endpoint without a response - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesURL string or Null
Where to add/change`customer.config` CloudShell Portal installation directory
Default valueNULL (which means the user will not be redirected and ultimately will get an error message saying the response is empty)
Affected CloudShell ComponentCloudShell Portal
Version6.4 and above
-## SAML SSO – Redirect the user to a specified URL whenever the user browses the CloudShell Portal login page - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesURL string (In SAML and SSO context, this key is usually used to hide the login page and redirect incoming users to the SAML endpoint. Some environments (like Huawei) use it to redirect users when they log off of the portal back to their landing page.)
Where to add/change`customer.config` CloudShell Portal installation directory
Default valueN/A
Affected CloudShell ComponentCloudShell Portal
Version6.4 and above
-## SAML SSO – Redirect the user to a specified URL whenever the user browses the CloudShell Portal logout page - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesURL string , where [server] is the IdP server's IP or DNS
Where to add/change`customer.config` CloudShell Portal installation directory
Default valueN/A
Affected CloudShell ComponentCloudShell Portal
Version6.4 and above
-## SAML SSO – Enable direct access to CloudShell Portal - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Portal installation directory
Default valueFalse
Affected CloudShell ComponentCloudShell Portal
Version7.1 and above
-## SAML SSO – Change the name of the Domain attribute which defines the CloudShell domain to associate the user to -:::note -This attribute may be added when setting up users in an IdP, to log a user into a specific domain if a user belongs to more than one domain. For more information, see [Set up an Identity Provider (IdP)](../../../cloudshell-identity-management/access-control-and-authentication/saml-authentication-configuration-sso-slo/configure-sso/index.md#set-up-an-identity-provider-idp). -::: - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesText
Where to add/change`customer.config` CloudShell Server installation directory
Default valueDomain
Affected CloudShell ComponentCloudShell Portal
Version8.2 and above
diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/testshell-studio.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/testshell-studio.md deleted file mode 100644 index 1ce8789b4a..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customer-configuration-keys-repository/testshell-studio.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -sidebar_position: 21 ---- - -# TestShell Studio - -## Prevent regular users (non-admins) from creating tests and folders in the Shared test folder - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Server installation directory
Default valueFalse
Affected CloudShell ComponentTestShell Studio
Version6.1.1 and above
-## Hiding the "Shared" test folder from Job Scheduling - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key``
Possible valuesTrue/False
Where to add/change`customer.config` CloudShell Portal installation directory
Default valueFalse
Affected CloudShell ComponentCloudShell Portal
Version6.4 and above
diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customizing-email-notification-templates.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customizing-email-notification-templates.md deleted file mode 100644 index f936254aeb..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customizing-email-notification-templates.md +++ /dev/null @@ -1,111 +0,0 @@ ---- -sidebar_position: 7 ---- - -# Customizing Email Notification Templates - -CloudShell email notifications are based on HTML templates, which can be customized as appropriate. - -:::note Important -Make backup copies of any templates you want to customize just in case you need to revert back. Upgrading CloudShell will override any custom templates you have so make sure to keep backups. - -After modifying these files, restart the Quali Server service for the changes to take effect. -::: - -These templates reside on the Quali Server machine at `C:\Program Files (x86)\QualiSystems\CloudShell\Server\EmailTemplates` and use a combination of text and CloudShell variables that pass information from CloudShell. - -For example, the "Sandbox Ending" email template: - -![](/Images/Admin-Guide/Setting-Up-CloudShell/EmailNotificationTemplate.png) - -The "Sandbox Ending" email notification: - -![](/Images/Admin-Guide/Setting-Up-CloudShell/EmailNotificationExample.png) - -## Email templates - -### Job templates: - -- **JobExecutionEnded**: Emailed when a job's execution has finished. -- **JobExecutionEnding**: Emailed when a job's blueprint reaches overtime. -- **JobExecutionStarted**: Emailed when a job's execution starts. -- **JobSuiteEnded**: Emailed when all of a suite's jobs have finished their execution. -- **JobSuiteStarted**: Emailed when a suite's execution starts. - -### Reservation templates: - -- **MultipleServersAreUsingTheDatabase**: When Quali Server detects that another Quali Server is already using the Quali SQL database, CloudShell sends this email and disables itself to prevent data consistency issues. - -- **PermittedUserAddedToReservation**: Emailed to users when they are added as permitted users to an a sandbox. -- **ReservationCanceled**: Emailed when the sandbox is canceled. -- **ReservationEnded**: Emailed when the sandbox is torn down. Corresponds to the On end email notification defined on the sandbox. -- **ReservationEnding**: Emailed before a sandbox begins teardown. Corresponds to the Before end email notification defined on the sandbox. -- **ReservationPending**: Emailed when a future sandbox is reserved. -- **ReservationRescheduled**: Emailed when a sandbox's duration has been modified. -- **ReservationSetupCompleted**: Emailed when a sandbox's setup phase completes. Corresponds to the On setup complete email notification defined on the sandbox. -- **ReservationStarted**: Emailed when a sandbox is reserved. Corresponds to the On start email notification defined on the sandbox. - -### License templates: - -- **LicenseExtendedReservationLimitExceeded**: Emailed to users when their reservation request is rejected because they have reached their concurrent reservations limit. -- **LicensePoolLimitExceeded**: Emailed to users when their reservation request is rejected because the domain's concurrent reservations limit has been reached. -- **LicenseReservationLimitExceeded**: Emailed to users who have reached their concurrent reservations limit. - -## Available variables - -### Reservation variables: - -- **Now**: Time at which the email notification was sent. -- **ReservationName**: Sandbox name. -- **ReservationStartTime**: Time at which the sandbox was reserved. -- **TimeZone** -- **ReservationMainTopology**: Blueprint on which the sandbox is based. -- **ReservationLink / ReservationLinkHelp**: Used in the link to the sandbox workspace. For example: - - ```javascript - {{ReservationLinkHelp}} - ``` - -- **ReservationOwner**: Owner of the reservation. Reservation creator by default. -- **ReservationId**: Sandbox ID -- **ReservationEndTimeWithTimeZoneOrPersistent**: Planned end time. "No end time" is displayed for persistent sandboxes. -- **ReservationDescription**: Sandbox description. -- **ReservationResources**: Details of the sandbox's resources. -- **ReservationNumberOfResources**: Number of resources in the sandbox. -- **ReservationConflicts**: Resource conflicts that occurred when reserving the sandbox. - -### Job variables: -:::note -For some of these variables, the information provided depends on the type of execution - job or suite. -::: -- **SuiteName**: Automation suite name. -- **JobName** -- **StartDate**: Job/suite execution start date, depending on the notification. -- **EndDate**: Job/suite execution end date, depending on the notification. -- **Result**: Job/suite execution result, depending on the notification. -- **Owner**: Owner of the job or suite. -- **TriggeredBy**: Indicates how the Automation Suite was triggered: Manual ("User”), API or Scheduled. -- **Description** -- **TopologyName**: Blueprint attached to the job. -- **TotalNumberOfTests**: Number of tests in the job. -- **State**: Job's completion state. -- **Result**: Job/suite execution result. For details, see [Viewing Test, Job and Suite Execution Results](../../../portal/job-scheduling/view-tests-job-suite-execution-results.md). -- **FailureReason** -- **JobSuitePage**: Link to the suite's execution page. -- **JobPageLink**: Used to build the link to the job''s execution page. For example: - - ```javascript - To view job progress click here - ``` - - -### License variables: - -- **MessageTitle**: Title of the email notification. For example: "Reservations Limit Exceeded". -- **ReservationOwner** -- **ReservationName** -- **LimitExceededDate**: Date at which the concurrent reservation limit was reached. -- **LimitExceededTime**: Time at which the concurrent reservation limit was reached. -- **TimeZone** -- **Domain**: Domain in which the limit was reached. -- **LicensePoolName**: Name of the domain's license pool, which indicates the domain's number of allowed concurrent reservations. diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customizing-the-language-file.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customizing-the-language-file.md deleted file mode 100644 index 8ea126ebd6..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/customizing-the-language-file.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Customizing the Language File - -Language files are used to support various languages and locales. -:::note -Another way to customize CloudShell Portal is to change its design elements, such as the background color and logo. For more information, see [Rebranding CloudShell Portal (White Labeling)](./rebranding-cloudshell-portal-white-labeling.md). -::: -## Retitling CloudShell Portal GUI elements - -This procedure explains how to change the display text of GUI elements in CloudShell Portal. If you want to use text in a different language, see [Localizing CloudShell Portal](#localizing-cloudshell-portal). - -**To retitle the captions of specific GUI elements in CloudShell Portal:** - -1. Go to the `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\Localization\CloudShell` folder, and add a new file named `LanguagePortal.Override.xml` if it is missing. - -2. Go to the `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\Localization` folder, open `LanguagePortal.xml` (the regular portal language file), and copy any key into the new file, and override its value. - - If you would like to change a large number of keys it is possible to copy the complete content of `LanguagePortal.xml` into `LanguagePortal.Override.xml` and then edit only the necessary values in `LanguagePortal.Override.xml`. - -3. Be sure to preserve any XML hierarchy in the original file. - :::important - CloudShell upgrade will override the `LanguagePortal.Override.xml` file, so please make sure to keep a copy of your latest language file somewhere safe. - ::: -4. To apply, restart the **CloudShell Portal IIS** service or open CloudShell Configuration and perform the **CloudShell Portal** configuration. - - -## Localizing CloudShell Portal - -This procedure explains how to retitle certain GUI elements in CloudShell Portal to a different language. - -**To localize CloudShell Portal:** - -1. Go to the `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\Localization` folder. -2. Create a copy of the `LanguagePortal.xml` file and add the language code before the file extension. For a list of supported file codes, click [here](/attachments/Locales.pdf). - - For example, changing GUI elements to be in Danish: - - ![](/Images/Admin-Guide/Setting-Up-CloudShell/LanguageFileChangeLanguage.png) - -3. Edit the necessary values in the new file. -4. Restart the **CloudShell Portal IIS** service or open CloudShell Configuration and perform the **CloudShell Portal** configuration. - - Users can now change the language in CloudShell Portal. For additional information, see [Changing the Language in CloudShell Portal](../../../portal/overview/change-language.md). diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/index.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/index.md deleted file mode 100644 index 3fbd9260f8..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/index.md +++ /dev/null @@ -1,11 +0,0 @@ -# CloudShell Configuration Options - -The customer configuration keys enable you to customize different aspects of the CloudShell Portal, including look & feel, workflows, access privileges, connectivity and route configurations, and more. For identity management and access control, see [CloudShell Identity Management](../../../admin/cloudshell-identity-management/index.md). - -## Related Topics - -- [Customizing the Language File](./customizing-the-language-file.md) -- [Managing CloudShell Portal Tours](./managing-cloudshell-portal-tours.md) -- [Advanced CloudShell Customizations](./advanced-cloudshell-customizations.md) -- [Customer Configuration Keys Repository](./customer-configuration-keys-repository/index.md) -- [Rebranding CloudShell Portal (White Labeling)](./rebranding-cloudshell-portal-white-labeling.md) \ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/managing-cloudshell-portal-tours.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/managing-cloudshell-portal-tours.md deleted file mode 100644 index 4fa2cd31f8..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/managing-cloudshell-portal-tours.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Managing CloudShell Portal Tours - -CloudShell Portal includes some basic out-of the-box web tour (tutorial) templates (for the **Blueprint Catalog**, blueprint workspace, and **Sandboxes** dashboard). These web tours can be used as is, or customized as required. You can also create your own new custom tours. The component used for the tour is the 3rd party [Bootstrap tour API](http://bootstraptour.com/api/). Once a tour is configured, you can manually launch it via the **Tutorials** menu in CloudShell Portal. - -The tours configuration is defined in the `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\tours.config` file. -:::note -Do not modify the `tours.config` file directly. You should instead copy the `tours.config` file (with its XML structure) into a new file named `customertours.config` and make modifications in the new customized file. This will prevent overriding your changes when you upgrade CloudShell versions. -::: -Each tour has the following definitions: - -```javascript - - - - - - - - -``` - -## Special considerations - -- The file should be the JavaScript file name located in the folder `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\Scripts\lib\tours`. -- The auto-start is per user per browser (per unique CloudShell URL). It is possible to have more than one tour per CloudShell webpage, but only one tour should be defined as auto-start enabled (`autostart="true"`) for that URL. The `autostart` key is optional. -- The visibility selector allows to show a tour based on a CSS selector in a page. This may be useful when you wish to add a tour for a specific sandbox, blueprint, and so on. The `visibility-selector` key is optional. -- There is no need to restart QualiServer/IIS when updating the `tours.config` file. - -## Creating tours - -This procedure explains the steps required for creating custom CloudShell Portal tours. - -**To create CloudShell Portal tours:** - -1. Manually create the new configuration file. Go to `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\`, copy and paste the `tours.config` file into the same folder, and rename it to `customertours.config`. -2. The `customertours.config` file should contain the same XML structure as the original `tours.config` file. However, you need to replace all instances of `` with ``, as shown in the following sample template: - - ```javascript - - - - - - - ``` - -3. Add/update/remove steps from your tour using the 3rd party [Bootstrap tour](http://bootstraptour.com/). - -4. Once the new tour template is created, you can manage the web tours exactly as in the original `tours.config` file. The tours should be uploaded to CloudShell Portal in the same way. - - -The new `customertours.config` file will not be deleted during CloudShell upgrades, and the customer tours settings will remain intact. - -## Disabling tours - -To disable a tour, you can either remove it from the `tours.config` file or comment it out to hide it but save the tour's definition. - -**To disable a tour:** - -1. Go to `C:\Program Files (x86)\QualiSystems\CloudShell\Portal\` and open the `tours.config` file. - - The file has the following three tours by default. - - ![](/Images/Admin-Guide/Setting-Up-CloudShell/ToursConfig.png) - -2. Comment out the lines of the tours you want to hide. For example: - - ![](/Images/Admin-Guide/Setting-Up-CloudShell/ToursConfigComment.png) - -3. Save the file. -4. Restart CloudShell Portal and log in. - - The **Tutorials** menu is no longer visible in the CloudShell Portal pages of the disabled tours. diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/rebranding-cloudshell-portal-white-labeling.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/rebranding-cloudshell-portal-white-labeling.md deleted file mode 100644 index 19de50a53f..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/rebranding-cloudshell-portal-white-labeling.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -sidebar_position: 5 ---- - -# Rebranding CloudShell Portal (White Labeling) - -*CloudShell white labeling is available with CloudShell Premium Tier via your Customer Success Manager.* - -It is possible to customize the look and feel of certain elements in CloudShell Portal to match your organization's branding and color scheme. This includes changing design elements such as the logo and the color of different elements including the main menu and dashboard toolbars. - -For Example: - -![](/Images/CloudShell-Portal/Portal-Main-Menu.png) -:::note -You can also apply branding per domain, to enable users from different domains to see different branding than the one defined globally. -::: -The elements that can be customized are: - -| Element | Description | -| --- | --- | -| Application body | Background color of the application body | -| Upper header (navigation bar) | Main menu of the application. Here you can change the colors of the background and the text | -| Logo box | Logo box in CloudShell Portal header, including its background color, border radius, and the logo image (42\*42 pixels maximum image size) | -| Secondary header | Color of the dashboard/catalog/workspace headers | -| Actions bar | Color of the toolbar under the dashboard/catalog headers | -| Busy indicator | Color of the loading screen | -| Dialog window background | Background color of CloudShell Portal when dialog boxes are open | -| Powered by Quali footer | Background color of the CloudShell Portal footer. It is also possible to hide the footer altogether. | -:::note -Another way to customize CloudShell Portal is to change the text of CloudShell Portal elements, such as button names and menu items. For example, you can change the text to your local language. For more information, see [Customizing the Language File](./customizing-the-language-file.md). -::: \ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/resizing-the-value-box-of-text-global-inputs.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/resizing-the-value-box-of-text-global-inputs.md deleted file mode 100644 index 3beea6fc34..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/resizing-the-value-box-of-text-global-inputs.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -sidebar_position: 6 ---- - -# Resizing the value box of "text" global inputs - -This is useful for global inputs that include json values. - -**To resize the global input value box:** - -1. Edit the appropriate `customer_override.css` file. -2. Add the following code block: - - ```javascript - #globalParametersView > ul > li > div:nth-child(1) > div.global-value.cell > div.qs-editable-input > div.qs-inputContainer > textarea - { - max-height: 200px !important; /* change the max height */ - min-height: 70px !important; /* change the default height */ - width: 450px !important; /* make it wider */ - left: -85px !important; /* if you make it wider you should also move the box to the left */ - } - ``` - -3. Save the file. -4. Restart the browser and open CloudShell Portal. diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/save-sandbox-configurations.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/save-sandbox-configurations.md deleted file mode 100644 index 69c3f6d3c4..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-configuration-options/save-sandbox-configurations.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -sidebar_position: 8 ---- - -# Save Sandbox Configurations - -The CloudShell **Save and Restore** paid add-on has a number of administrative elements that are important to the proper usage of this feature. - -## Save and restore license - -**Save and Restore** is a paid add-on. For details, contact your account manager. - -## Set the maximum number of saved sandboxes for a particular user - -**To set the maximum number of saved sandboxes for a particular user:** - -- See [Adding new users manually](../../cloudshell-identity-management/managing-users/managing-cloudshell-users.md#adding-new-users-manually). - - \- or - -- Use the **UpdateUserLimitations** method in the CloudShell Automation API. For more information visit the [CloudShell API Overview](../../../api-guide/cs-api-overview.md). - -## Set the default maximum number of saved sandboxes for CloudShell users - -By default, users are allowed to save as many sandboxes as they require. This is done using the `DefaultUserMaxSavedSandboxes` key. This key applies only to new users or users created in a CloudShell version prior to 9.0 that are migrated for the first time. The default value is empty (unlimited). -:::note -Admins can override the default for specific users in **Resource Manager Client**. -::: -**To set the default maximum number of saved sandboxes:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, add the following key and set the value: - - `` - -2. Save the file. -3. Restart the **Quali Server** service. - -See [Advanced CloudShell Customizations](./advanced-cloudshell-customizations.md) for additional information on the `DefaultUserMaxSavedSandboxes` configuration key. - -## Enable save in a blueprint - -You can only save a sandbox if its blueprint has the **Enable Sandbox Save** check box enabled. - -**To save a sandbox and later restore it, you must configure certain blueprint properties (General page):** - -- In the **Save Sandbox** area, ensure that the **Enable Sandbox Save** is checked. -- In the **Scripts** area, ensure that **Default Sandbox Save** and **Default Sandbox Restore** scripts are included in the blueprint properties. - -For more information, see [Add save and restore orchestration scripts](../../../portal/blueprints/creating-blueprints/configure-orchestration.md#add-save-and-restore-orchestration-scripts). - -## vCenter/OpenStack advanced saving configurations - -Several **Snapshot management** permissions are required on the role of the vCenter user defined in the cloud provider resource (See [Required vCenter User Permissions per Deployment Type](../../supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/required-vcenter-user-permissions-per-deployment-type.md)). For OpenStack, the save process is a bit different as the shell creates a snapshot of the App and it'll be located in the Image section in the OpenStack web portal. - -The following configurations can be made on vCenter cloud provider resources or App templates. Configurations made on an App template will override the vCenter cloud provider resource configuration and the settings will apply only to that specific App. - -- **Behavior during save**: The VM's state while the sandbox is being saved. Options are **Remain Powered On** (default) and **Power Off**. -- **Saved Sandbox Storage**: During the saving process, CloudShell creates a clone of the sandbox's App VMs in this vCenter storage, which CloudShell will later use to restore the VM when the user restores the saved sandbox. - -For more information see [Add VMware vCenter Cloud Provider Resource](../../supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/add-vmware-vcenter-cloud-provider-resource.md) and [Adding App templates](../../cloudshell-manage-dashboard/manage-app-templates/index.md#adding-app-templates). - -## Extending save and restore blueprint scripts - -See the CloudShell Dev Guide's [Save and Restore Orchestration](../../../devguide/develop-orch-scripts/cs-oob-orch/index.md#save-and-restore-orchestration) to learn more about how to extend save and restore blueprint scripts. diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-deployment-overview.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-deployment-overview.md deleted file mode 100644 index 34881c2748..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-deployment-overview.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -sidebar_position: 1 ---- - -# CloudShell Deployment Overview - -To manage a lab, you need to add all your equipment into CloudShell via **Resource Manager**. - -In CloudShell, the devices are considered resources. - -After adding your equipment into CloudShell, you will need to create your resources. Resources are based on what we call shells. A shell is a CloudShell entity that defines the resource's metadata, attributes, and automation, and resource structure. CloudShell supports two types of shells, 1st Gen and 2nd Gen resources. Learn more at [Shells Overview](../../intro/features/shells.md). - -CloudShell can only manage devices it knows about, so you will first need to import the shells into CloudShell and then create your resources. - -The admin user is responsible for populating CloudShell and ensuring that all devices are loaded to the lab. - -The admin user is responsible for setting up the resource repository. - -Set up the user groups and resource domains, and then add or import users to the system. diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-resource-management-client.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-resource-management-client.md deleted file mode 100644 index d234ef2d9a..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/cloudshell-resource-management-client.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -sidebar_position: 2.5 ---- - -# CloudShell Resource Manager Client - -The CloudShell Resource Manager Client is an administration tool for setting up and managing CloudShell deployment. - -Presently, Resource Manager Client enables CloudShell admins to: - -- Manage CloudShell identities and user permissions (users, groups and domains) -- Manage 1st Gen shells -- Manage global attributes -- Set up CloudShell license pools -- View all resources in CloudShell, regardless of domain (reserved for system admins) -- Gain visibility into CloudShell domains (view domain contents, share resources across multiple domains) - -Additional management and administrative actions are available in CloudShell Portal, including managing 2nd Gen shells, Apps and services, automation, domain categories, execution servers, blueprint templates and more. - -## Related Topics - -- [CloudShell Administration](../index.md) \ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/customizing-the-start-page-in-resource-manager-client/_category_.json b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/customizing-the-start-page-in-resource-manager-client/_category_.json deleted file mode 100644 index 381c467019..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/customizing-the-start-page-in-resource-manager-client/_category_.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "label": "Customizing the Start Page in Resource Manager Client", - "position": 5, - "link": { - "type": "generated-index", - "description": "The Resource Manager Client's start page can be customized to match your personal preferences. The following topics describe the customization options available. The Resource Manager Client's start page is built from an .xml file that comes installed with the application. It allows providing both local and remote information to the user, and supports offline and online modes." - } -} diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/customizing-the-start-page-in-resource-manager-client/about-the-start-page-in-resource-manager-client.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/customizing-the-start-page-in-resource-manager-client/about-the-start-page-in-resource-manager-client.md deleted file mode 100644 index c8810711f7..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/customizing-the-start-page-in-resource-manager-client/about-the-start-page-in-resource-manager-client.md +++ /dev/null @@ -1,111 +0,0 @@ ---- -sidebar_position: 1 ---- - -# About the Start Page in Resource Manager Client - -The **Resource Manager Client**'s start page is built from an xml file that comes installed with the application. It allows providing both local and remote information to the user, and supports offline and online modes. - -In each application folder there is a StartPage sub folder that contains the local xml. - -This xml has the whole information that the application needs to display the start page to the user. - -Editing the file on one station will not affect the others. You'll have to publish/copy the new file to the other stations as well. - -Upgrading to a new version of CloudShell will overwrite the xml, so make sure you have a backup of the xml that you edit. - -There is no way to add links to the start page in between the QualiSystems links. You can only add new tabs or replace the current ones with your own. - -## Before you start - -Editing the file in a wrong way might cause some exceptions when you'll start the application (it will not harm the work with the application – but it's not designed to accept xml errors). - -Please make sure you have a backup of the original file and verify that it works on one station before sending it to the others. - -## XML structure - -The start page has few levels to organize the information: - -![](/Images/Admin-Guide/Setting-Up-CloudShell/The-start-page-is-built-from.png) - - - - - - - - - - - - - - - - - - - - - - - - -
Tabdifferent kind of information comes in different tabs
Subjectunder a tab, you can group the information into subjects
Topicyou can then have different topics that each covers part of the subject
Sub Topicfor each video/sample you can then specify the sub topic
Linkand provide the different links for it
- -## XML markup - -### Tab - -```markup -Subjects… -``` - -**Source –** - -You can specify this argument if you want to take the tab content from a remote/shared location. A remote xml file will have the same structure exactly, but it should contain only the relevant tab (with the same title). - -If you don't specify it, or if the remote file could not be accessed the tab will fall back to show the local information (subjects that you define inside the tab section). If there is no local information – the tab will not appear. - -**Title –** The title for the tab. - -### Subject - -```markup -Topics… -``` - -**Title –** The title for the subject. - -### Topic - -```markup -SubTopics… -``` - -**Title –** The title for the topic. - -**Description –** Description of the topic and what you can find in it. The description will appear below the title. - -**Image –** You can point to an image file that represents the topic. Provide a full path if the file is not located in the start page folder (could be an online link as well). When not providing any file name (or removing this attribute) a default image will be used. - -### Sub Topic - -```markup -Links… -``` - -**Title –** The title of the sub topic. - -### Link - -```markup - -``` - -**Type –** Can be one of: Video – Path to a video file/url to a video on the web. -Web – Opens a web browser with the provided target will open a test if it is located locally. - -**Title –** The title of the link. - -**Target –** File path or url, according to the Type. diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/customizing-the-start-page-in-resource-manager-client/annotated-start-page-example.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/customizing-the-start-page-in-resource-manager-client/annotated-start-page-example.md deleted file mode 100644 index 2b40eeaaa3..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/customizing-the-start-page-in-resource-manager-client/annotated-start-page-example.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Annotated Start Page Example - -## Example code will be used to show a Get Started tab - -```markup - - - - - - - - - - - -``` - -## Explanation - -First it will try to get the content of the tab from the provided source. - -```markup - -``` - -If it is not available it will use the fall back code (Studio subject). - -```markup - -… - -``` - -If it is not available it will use the fall back code. - -In this case, the fall back has one subject (Studio). - -```markup - -… - -``` - -And that subject has just one topic: ("Studio in action") with a description and an image file. - -```markup - -… - -``` - -In this topic there is only one sub topic, and this sub topic has two links: one for a test and one for a video. - -```markup - - - - -``` diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/defining-the-target-server.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/defining-the-target-server.md deleted file mode 100644 index 249d866d5c..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/defining-the-target-server.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Defining the Target Server - -Make sure that SQL is set up on the target server, and that all CloudShell clients have access to the QualiServer. - -Make sure that the IT department knows about the CloudShell deployment and that the CloudShell database is added to the scheduled backup routine. - -Ensure all relevant credentials for the database instance are available at the time of installation. - -Prepare any 3rd party applications for working with CloudShell. - -Prepare a list of all L1 switches and traffic generators, including the IP address and login information for each device. - -Prepare a list of all CloudShell users, including their email address and login information. - -Prepare a CSV file listing your lab equipment devices. This will allow you to automate most of the import process. - -Resource Manager domains are virtual subsets of lab equipment and devices. Define the target domains for your lab. Define the target user groups. Specify which groups of users will have access to each domain. Groups are allowed either active or view-only access to domains. - -It is recommended to start with a validation domain that contains a subset of representative resources. The representative subset can be reused in the future as a validation domain. diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/_category_.json b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/_category_.json deleted file mode 100644 index e9860b4753..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Inventory Operations", - "position": 7 -} diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/adding-and-configuring-resources/_category_.json b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/adding-and-configuring-resources/_category_.json deleted file mode 100644 index c25cbc8b12..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/adding-and-configuring-resources/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Adding and Configuring Resources", - "position": 2 -} diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/adding-and-configuring-resources/adding-and-configuring-resources-in-resource-manager.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/adding-and-configuring-resources/adding-and-configuring-resources-in-resource-manager.md deleted file mode 100644 index bc550d4296..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/adding-and-configuring-resources/adding-and-configuring-resources-in-resource-manager.md +++ /dev/null @@ -1,167 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Adding and Configuring Resources in Resource Manager - -:::note -This article only applies to resources based on 1st Gen shells. While CloudShell supports 1st Gen shells, we recommend using 2nd Gen shells, which offer enhanced shell management capabilities. For details, see [Shells Overview](../../../../intro/features/shells.md). -::: - -This article explains how to manually create resources in Resource Manager, including sub-resources (such as ports), connections, attributes, and resource settings. - -Drivers, groups and domains must be associated to the resources separately. For additional information, see [Associating a Driver with a Resource](./associating-a-driver-with-a-resource.md) and [Adding/Removing Resources from a Domain](../../../cloudshell-identity-management/cloudshell-domains/addingremoving-resources-from-a-domain.md) . - -:::note -It is recommended to add resources based on 2nd Gen Shells via the CloudShell Portal, to enjoy the full range of CloudShell capabilities. For additional information, see [Shells Overview](../../../../intro/features/shells.md). -::: - -## Adding resources to Resource Manager - -**To create a new resource:** - -1. In the **Resource Explorer** pane, right-click the folder where you want to add the new resource and select **New > Resource** from the context menu. - - Or - - - In the toolbar, click the down arrow of the folder button and select **Resource** from the context menu. - - ![](/Images/Admin-Guide/Inventory-Operations/Inven-Opers.png) - -2. In the **New Resource** dialog box, enter the resource name. - - Note: The resource's name has a limit of 100 characters and can only contain alpha-numeric characters, spaces, and the following characters: | . - \_ \] \[ - ![](/Images/Admin-Guide/Inventory-Operations/Inven-Opers_1.png) - -3. Fill in the address. Make sure there are no spaces before or after the address. - -4. Select the resource Family, Model, and Driver from the dropdown lists and click **OK** to add the new resource to the **Resource Explorer** pane. - - -## Adding sub resources to a resource - -**To add sub-resources to a resource:** - -1. In the **Resource Explorer** pane, right-click the resource and select **Configuration** from the context menu. - - The **Configuration** tab is displayed. - -2. Right-click the resource in the **Internal Resources** explorer, and select **New** from the context menu. - -3. In the **New Resource** dialog box, enter the resource name. - - **Note:** The resource's name has a limit of 100 characters and can only contain alpha-numeric characters, spaces, and the following characters: | . - \_ \] \[ - ![](/Images/Admin-Guide/Inventory-Operations/Inven-Opers_1.png). - -4. Fill in the address. -5. Select the resource Family, Model, and Driver from the dropdown lists and click **OK**. -6. Press **Ctrl + S** to save the changes. - -:::note -When you select a sub-resource in the Internal Resources Explorer, the Parameters and Details sections update to display resource details for the selected sub-resource. -::: - -## Configuring sub-resources - -**To configure a resource**: - -1. In the **Resource Explorer** pane, right-click a resource and select **Configuration** from the context menu. - - The Configuration tab is displayed. - -2. In the **Parameters** section of the resource's Configuration tab, you can update the resource name, description, and address. - - You can also select which driver to associate with the resource. - ![](/Images/Admin-Guide/Inventory-Operations/Inven-Opers_5_New.png) - - -- The list of available drivers for a resource is defined by the inheritance settings of the parent model or resource family. -- Select the **Details** tab to modify any overridable attribute values. -- Select the **Domains** tab to modify resource allocation settings. -- The **Groups** tab displays which groups are associated with the resource, and the access level for each group. -- In the **Resources Explorer** pane, you can add, edit, and remove internal resources. Additional actions are available from the resource's Settings and Configuration tabs from which you can exclude, include and sync/autoload the device's structure. - -## Updating resource details - -You can update the following details: resource name, description and address, attribute details, domains, sub resources, and internal mappings. - -**To update resource details**: - -1. In the **Resource Explorer** pane, right-click the resource and select **Configuration** from the context menu. - - The **Configuration** page is displayed. - -2. Make the necessary changes in the **Configuration** and **Settings** tabs. -3. Save your changes. - -## Updating attribute values - -**To update an attribute's values**: - -1. In the **Resource Explorer** pane, right-click the resource and select **Configuration** from the context menu. - - The Configuration tab is displayed. - -2. Click the **Details** tab. - -![](/Images/Admin-Guide/Inventory-Operations/Inven-Opers_9_New.png) - -4. Specify the attribute's values. -5. Press **Ctrl + S** to save the changes. - -:::note -Some attribute values will be read-only, depending on the inheritance and override rules that you defined for the resource family and model. -::: - -:::danger Important -The attribute inheritance feature will be deprecated in an upcoming release. Please do not use this setting. For additional information, see [Configuring attribute inheritance settings](../resource-data-modeling-for-1st-gen-shells/defining-the-resource-data-model.md#configuring-attribute-inheritance-settings) or contact [Quali Support](https://register.quali.com/). -::: - -You cannot update attribute values for active resources when they are being shared. - -## Defining resource connections - -**To define physical connections (usually cables) between resource ports**: - -1. In the **Resource Explorer** pane, right-click the resource and select **Configuration** from the context menu. - - The Configuration tab is displayed. - -2. Click the **Connections** button at the bottom of the Configuration tab. - -![](/Images/Admin-Guide/Inventory-Operations/Inven-Opers_11.png) - -The **Connections** page lists all of the ports for the selected resource. - -![](/Images/Admin-Guide/Inventory-Operations/Inven-Opers_12.png) - -- The **Path** column displays the full path of a specific port. -- The **Name** column displays the name of the port. -- The **Connected To** column contains the full path of the target port to which the source port is connected. -- The **Connection Weight** value is taken into account during abstract blueprint resolution. - -**To create a new connection between ports**: - -1. In the **Connections** page, hover over the **Connected To** cell of the relevant port, and click the **Ellipsis** icon to open the **Direction** menu. - -![](/Images/Admin-Guide/Inventory-Operations/Inven-Opers_13.png) - -1. In the **Resource connection** dialog box, select the Family and specific **Resource Parent** from the top dropdown lists. - -![](/Images/Admin-Guide/Inventory-Operations/Inven-Opers_14.png) - -5. Select the connecting port from the list. -6. Click **OK** to add the connection. - - The relevant ports are displayed on the bottom grid in the **Connected To** column. - - -**To remove existing connections**: - -- In the **Connections** page, select the required ports and click **Clear Selected**. - -**To apply the changes**: - -- In the Home ribbon, click the **Save** button. - -You cannot update connections for resources with conflicting active sandboxes. diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/adding-and-configuring-resources/associating-a-driver-with-a-resource.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/adding-and-configuring-resources/associating-a-driver-with-a-resource.md deleted file mode 100644 index 2c773cae43..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/adding-and-configuring-resources/associating-a-driver-with-a-resource.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Associating a Driver with a Resource - -:::note -This article only applies to resources based on 1st Gen shells. While CloudShell supports 1st Gen shells, we recommend using 2nd Gen shells, which offer enhanced shell management capabilities. For details, see [Shells Overview](../../../../intro/features/shells.md). -::: - -A driver provides commands that can be run on the resources to which it is associated. - -:::note -Resource drivers are supported for backwards compatibility only. -::: - -**To associate a driver with a resource:** - -1. Make sure the driver is associated to the resource model. For additional information, see [Associating a driver to a resource model](../resource-data-modeling-for-1st-gen-shells/defining-the-resource-data-model.md#associating-a-driver-to-a-resource-model). - -1. Right-click the resource and select **Configuration** from the context menu. - ![](/Images/Admin-Guide/Inventory-Operations/Inven-Opers_4_354x445.png) -2. In the **Parameters** pane, select the **Driver**. - -![](/Images/Admin-Guide/Inventory-Operations/Inven-Opers_10.png) - -4. Press **Ctrl + S** to save the changes. - diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/adding-and-configuring-resources/index.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/adding-and-configuring-resources/index.md deleted file mode 100644 index 970aba0099..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/adding-and-configuring-resources/index.md +++ /dev/null @@ -1,25 +0,0 @@ -# Adding and Configuring Resources - -:::info -This article only applies to resources based on 1st Gen shells. While CloudShell supports 1st Gen shells, we recommend using 2nd Gen shells, which offer enhanced shell management capabilities. For details, see [Shells Overview](../../../../intro/features/shells.md). -::: - -In Resource Manager Client, you can manually add and configure resources. This includes setting up the resource's data model, structure including sub-resources, associating a driver that provides automation commands to be executed on the resource in CloudShell, and associating domains to the resource to allow the domain's users to access and use it. - -## Adding and configuring resources in Resource Explorer - -Each resource in the **Resource Explorer** pane represents a resource, including the resource's model, address, internal resources such as ports, internal port mappings, and other settings. - -**To add or modify resources in Resource Explorer:** - -1. Define the relevant resource data model. For more details, see [Defining the Resource Data Model](../resource-data-modeling-for-1st-gen-shells/defining-the-resource-data-model.md). -2. Create the resources, associate the relevant attributes, and create the relevant resource connections. See [Adding and Configuring Resources in Resource Manager](./adding-and-configuring-resources-in-resource-manager.md). - - If you are populating your CloudShell inventory for the first time, we recommend to use the CloudShell Autodiscovery tool, which allows you to load multiple resources at the same time. For additional information, see the tool's [readme](https://github.com/QualiSystems/cloudshell-autodiscovery/blob/master/README.md). - -3. Associate the required resource driver. See [Associating a Driver with a Resource](./associating-a-driver-with-a-resource.md). -4. Associate the resource to the required domains. See [Adding/Removing Resources from a Domain](../../../cloudshell-identity-management/cloudshell-domains/addingremoving-resources-from-a-domain.md) . - -## Related Topics - -- [Import a Blueprint Package into CloudShell](../../../../portal/blueprints/creating-blueprints/import-package.md) \ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/configuring-services.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/configuring-services.md deleted file mode 100644 index 0dc704a900..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/configuring-services.md +++ /dev/null @@ -1,171 +0,0 @@ ---- -sidebar_position: 3 ---- - -# Configuring Services -:::important -This article only applies to resources based on 1st Gen shells. While CloudShell supports 1st Gen shells, we recommend using 2nd Gen shells, which offer enhanced shell management capabilities. For details, see [Shells Overview](../../../intro/features/shells.md). -::: -## Creating a service catalog category - -To make the service available to users of a specific domain, you must create a service category for that domain and then associate the service family to this service category. This is a two step process: first create a service category that can access the domain, and then attach the service category to the service. - -### Creating a service category for a domain - -**To create a service category**: - -1. Log in to CloudShell Portal as system administrator. -2. In the main menu, click **Manage**. -3. In the left pane, click **Categories**. -4. To create a new category click **Add New Category**. - ![](/Images/Admin-Guide/Inventory-Operations/AddNewServiceCategoryCapture.png) - The **Add New Category** dialog box is displayed. - -5. Enter the required information: - - | Field | Required | Description | - | --- | --- | --- | - | NAME | Required | Category name that displays in the catalog. | - | DESCRIPTION | Optional | Description of the category. | - | CATALOG | View only | The type of category, selected automatically according to categories view selection | - | LOCATION | Optional | Determines if the current definition is a category or sub-category:
If you leave the selection with slash (‘/’), then this definition is a Category.
If you select a value, then this definition becomes a sub-category of the selected category. | - | DOMAINS | Optional | Select the domain or domains where the category will be available.
If you are a domain administrator, the selected domain is displayed but cannot be changed.
If this category is a sub-category, this field inherits the domain values that were selected for the main category. The sub-category can be displayed in less domains than the main category. However, additional domains cannot be added. | - | IMAGE | Optional | You can add an image to the catalog definition. The recommended size for the image is 190x120 pixels (image size is limited to 400x400 pixels or 200Mb). | - -6. Make sure to select the required domain. -7. Click **Save**. - -## Creating a service resource family - -A service family is a special type of resource family. A service family can hold one or more services of the same type. Service families, and the services under them, are created in the Resource Manager by the administrator. - -**To create a service resource family:** - -1. Open Resource Manager Client with administrator credentials. -2. In the **Admin** tab click **Resource Families**. - -3. In the **Resource Families** explorer, right-click **Resource Families**, select **New** and then click **Resource Family**. - -4. In the **New Resource Family** dialog box, in the **Name** field, enter the name of the resource family. - - ![](/Images/Admin-Guide/Inventory-Operations/NewResFamilyWindow_493x232.png) - -5. You can optionally enter a **Description** and provide an **Image** for the new resource family for services. The maximum allowed image size is 240 KB but it is recommended to use 32x32 pixel icons. -6. Select the **Service Template** check box and from the **Type** dropdown list that is displayed to the right of the check box, select **Regular**. - - ![](/Images/Admin-Guide/Inventory-Operations/NewServiceFamilyVM.png) - -7. Click **OK**. - -A new service resource family is created. - -The new service resource family displays in the **Resource Families** explorer. In the list of resource families, the service icon ![](/Images/Admin-Guide/Inventory-Operations/ServiceIcon.png) displays alongside the name of the service family, distinguishing it from other resource families. - -![](/Images/Admin-Guide/Inventory-Operations/List.png) - -## Managing attributes, rules and categories for service families - -In Resource Manager Client, in the **Parameters** workspace of a service family, you can manage the attributes, rules and categories and perform the following actions: - -- Associate attributes and rules to be inherited by all the services of this family. -- Link the service family to one or more categories. -:::note -Services only display in the services catalog in CloudShell Portal if the resource family of that service is linked to a service category. -::: -**To manage service families parameters**: - -1. In Resource Manager Client, in the **Admin** tab, click **Resource Families**. - -2. In the **Resource Families** explorer, select the required service family. For the purposes of this procedure, the Quali VM service family is selected. - - ![](/Images/Admin-Guide/Inventory-Operations/ResourceFamiliesPaneTree.png) - - The details of the service family display in the **Parameters** workspace. - - ![](/Images/Admin-Guide/Inventory-Operations/ServiceFamilyParameters_529x396.png "Parameters workspace of the service family") - -3. To associate an attribute, in the **Attributes** tab, click **Add/Remove From Bank**. - - ![](/Images/Admin-Guide/Inventory-Operations/ResourceFamilyAttributes.png) - -4. In the **Resource Family Attributes** dialog box, select the required attributes and click **OK**. -5. To apply rules to the attribute, select the attribute in the workspace. - - ![](/Images/Admin-Guide/Inventory-Operations/AttributeSelected.png) - -6. Click **Edit Rules**. - - ![](/Images/Admin-Guide/Inventory-Operations/AttributeRules_457x354.png) - -7. In the **Attribute Rules** dialog box, specify the required rules and click **OK**. - :::note Important - The attribute inheritance feature will be deprecated in an upcoming release. Please do not use this setting. For additional information, see [Configuring attribute inheritance settings](../inventory-operations/resource-data-modeling-for-1st-gen-shells/defining-the-resource-data-model.md#configuring-attribute-inheritance-settings) or contact [Quali Support](https://register.quali.com/). - ::: -8. To link the service family to a domain category, in the **Categories** tab click **Add**. - - ![](/Images/Admin-Guide/Inventory-Operations/AddCategory.png) - -9. In the **Select Category** dialog box, select the required categories and click **OK**. - ![](/Images/Admin-Guide/Inventory-Operations/SelectCategory.png) - - The selected categories display in the **Categories** dashboard. - - -## Creating a service - -Services are created under the service families to which they belong. New services are created in Resource Manager using the **New Resource Model** dialog box. - -**To create a new service:** - -1. In Resource Manager Client, in the **Admin** tab, click **Resource Families**. -2. In the **Resource Families** explorer, right-click the required service family within which to create the service. For the purposes of this procedure, the Quali VM service family is selected. - -3. Select **New** and then click **Resource Model**. - -4. In the **New Resource Model** dialog box, enter the name and description of the service. - -5. Click **OK**. - - The new service is created and displays in the **Resource Families** explorer under the service family to which it belongs. - - ![](/Images/Admin-Guide/Inventory-Operations/ServiceInTree.png) - - -## Configuring service attributes - -This section assumes you already added the attribute(s) to the service, as explained in [Managing attributes, rules and categories for service families](../inventory-operations/configuring-services.md#managing-attributes-rules-and-categories-for-service-families). To learn how to create attributes in CloudShell, see [Attributes](../inventory-operations/resource-data-modeling-for-1st-gen-shells/attributes.md). - -**To configure service attributes:** - -1. In the **Resource Families** explorer, select a service and in the **Parameters** pane select the **Attributes** tab. - ![](/Images/Admin-Guide/Inventory-Operations/ServiceAttributes_550x432.png) -2. To associate attributes or remove existing attributes, click **Add/Remove From Bank**. -3. To set a default attribute value or mark an attribute as user input, click **Edit Rules**. - User input attributes are presented to the user when adding a service to a blueprint or a sandbox. The user is then prompted to update the attribute values. - -![](/Images/Admin-Guide/Inventory-Operations/AttributeRulesUserInput_557x436.png) - -## Associating a driver to a service - -Service driver commands can be executed manually by the user while the sandbox is active, or automatically by the blueprint driver on blueprint setup and teardown. - -**To associate a driver to a service**: - -1. From the **Resource Families** explorer, select the required service. - -The service’s **Properties** pane is displayed. -![](/Images/Admin-Guide/Inventory-Operations/ServiceParameters.png) - -2. Select the **Drivers** tab. - - ![](/Images/Admin-Guide/Inventory-Operations/DriversTab.png) - -3. Click **Add/Remove from bank**. - ![](/Images/Admin-Guide/Inventory-Operations/SelectDriver_581x417.png) - -4. In the **Select Drivers** dialog box, select the drivers to associate with the service. -5. Click **OK**. - -## Associating a script to a service - -Scripts are associated to service models in the Resource Scripts page of the **Manage** dashboard of the **CloudShell Portal**. See [Managing Assets](../../cloudshell-manage-dashboard/managing-automation/managing-assets.md). diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connected-commands/_category_.json b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connected-commands/_category_.json deleted file mode 100644 index 0b428e9a0d..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connected-commands/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Connected Commands", - "position": 7 -} diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connected-commands/index.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connected-commands/index.md deleted file mode 100644 index 4dab3ea45d..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connected-commands/index.md +++ /dev/null @@ -1,10 +0,0 @@ -# Connected Commands - -In some scenarios, a command that runs on a specific resource logically requires the use of a different resource. These types of commands are called connected commands. They are executed on a resource in CloudShell but in reality run on the connected resource that performs the action. - -For example: - -- A command that powers on/off a router actually runs on a PDU power switch. For additional information, see [Power Management](./power-management.md). -- A command that modifies a resource's settings may run on the server that performs the modifications - -For instructions on setting up connected commands, see the CloudShell Dev Guide's [Defining a connected command (which runs on another resource)](../../../../devguide/developing-shells/common-driver-recipes.md#defining-a-connected-command-which-runs-on-another-resource). \ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connected-commands/power-management.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connected-commands/power-management.md deleted file mode 100644 index 5443117359..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connected-commands/power-management.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Power Management - -CloudShell provides its users the ability to control the power to devices in the lab through different power control devices such as PDUs (Power Distribution Units) which can be controlled remotely. This way, users of a particular resource in CloudShell Portal can use the power switch's commands from that target resource even though the commands reside in the power switch's driver. Such commands are called connected commands. For additional information, see Creating Connected Commands. - -By defining the required parameters in the system and associating drivers to the devices, users and administrators can turn devices on and off either manually through the UI or through automated procedures. -:::note -It is possible to run power management commands via [CloudShell Automation API](../../../../api-guide/shell-dev-blueprint-design-api/cs-automation-api.md) and [TestShell API](../../../../api-guide/shell-dev-blueprint-design-api/testshell-api.md) either by executing the `ExecuteResourceConnected` command method on the connected resource in the sandbox or by running the following dedicated API methods: `PowerCycleResource`, `PowerOffResource` and `PowerOnResource`. -::: -## How CloudShell power management works - -CloudShell allows users to control the power management of resources, using power switches. - -To enable control on a resource's power management, the resource has to be connected to a power controller through its power port(s). - -Once the resource is connected to a power controller, which is based on the PDU Shell, the resource can be switched on or off using the power management connected commands provided by the power switch. The resource must be exclusively reserved to activate power management commands. - -The PDU Shells are used by CloudShell to interact with the power switches. The interaction method can vary according to the device capabilities. Some examples include; SNMP, Telnet and SSH. For the Shell to operate correctly through built-in CloudShell UI the Shell needs to be based on the PDU Shell template. - -## Setting up Power Switches for power management operations - -Like with other Shells, first try finding a suitable Shell in [Quali Repositories](https://github.com/orgs/QualiSystems/discussions/categories/integrations). If you find one, import it into CloudShell, create a resource from it, and define the physical connections in CloudShell (just make sure to make a direct connection between the resources - if you have a switch or router resource in between, the connection will fail). Once defined, connected resources will have the power commands available in active sandboxes. - -If we don’t have what you’re looking for, create a new shell using the PDU Shell template and implement the required capabilities. For additional information, see the CloudShell Dev Guide's [Defining a connected command (which runs on another resource)](../../../../devguide/developing-shells/common-driver-recipes.md#defining-a-connected-command-which-runs-on-another-resource). - -## Related Topics - -- [Define the Resource Connections of the Switch or Patch Panel](../connectivity-control/define-the-resource-connections-of-the-switch-or-patch-panel.md) diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connectivity-control/_category_.json b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connectivity-control/_category_.json deleted file mode 100644 index b6ec01b22a..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connectivity-control/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Connectivity Control", - "position": 6 -} diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connectivity-control/define-the-resource-connections-of-the-switch-or-patch-panel.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connectivity-control/define-the-resource-connections-of-the-switch-or-patch-panel.md deleted file mode 100644 index 20929f5202..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connectivity-control/define-the-resource-connections-of-the-switch-or-patch-panel.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -sidebar_position: 4 ---- - -# Define the Resource Connections of the Switch or Patch Panel - -*This section applies to patch panels, power switches, L1 switches and L2 switches. For brevity, the term "switch resource" is used for all four.* - -Once the resource structure of the switch is updated, you can define which devices are connected to the switch's ports by associating the CloudShell resources of those devices to the switch resource(s). -:::note -CloudShell cannot create connectivity paths involving both L1 and L2 networking devices. Only pure L1 or pure L2 paths are supported. For example, "DUT1 - L1 - L2 - DUT2" path is not supported. -::: -**To define resource connections:** - -1. In **Resource Manager Client**, open the **Resource Explorer** pane. -2. Right click the switch resource and click **Configuration**. - - The **Configuration** page is displayed. - -3. Click the **Connections** button at the bottom of the page. - - The **Resource connection** dialog box is displayed. - -4. Connect a resource's port to a different port in the switch resource by clicking each port's **Connected To** button, selecting the resource's **Family** and **Resource**, and selecting the port to connect. -5. For each connection, you can set the **Connection Weight**. To do so, double click the **Connection Weight** cell of the connection and specify the desired number. The default value is 10. - - The connection weight ensures that specific connections take priority over others when an L1 route can be resolved through multiple possible connections. Specifically, the more weight a connection has, the "heavier" it becomes, and CloudShell's route resolution will be less likely to choose it, and the opposite is true as well - a connection with less weight will have a higher likelihood of being chosen for a route. - - For example, in a hub and spoke formation that includes multiple switches, let's say DUT 1 resource normally uses Switch 1 and Switch 2 to connect to DUT 2. In cases where this route is jammed, you could have DUT 1 use the more expensive central switch instead by setting the sum of this route's connection weights to be lower than that of the normal route. - -6. Click **OK** in the **Resource connection** dialog box. -7. Repeat this step to connect all relevant resources to the switch resource. -8. Save your changes. - -## Related Topics - -- [Patch Panels](./patch-panels.md) -- [L1 Switches](./l1-switches.md) -- [VLAN Connectivity](./vlan-connectivity/index.md) diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connectivity-control/index.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connectivity-control/index.md deleted file mode 100644 index 0651955463..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connectivity-control/index.md +++ /dev/null @@ -1,10 +0,0 @@ -# Connectivity Control - -CloudShell provides connectivity support for physical and virtual resources. You can use Patch Panels and L1 switches for physical resources, and VLANs for virtual resources on a private cloud as well as physical resources, and subnets for Apps on a public cloud, such as AWS EC2. - -The following articles explain how to configure these: - -- [Patch Panels](patch-panels.md) -- [L1 Switches](./l1-switches.md) -- [VLAN Connectivity](./vlan-connectivity/index.md) -- [Subnet Connectivity](./subnet-connectivity/index.md) \ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connectivity-control/l1-switches.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connectivity-control/l1-switches.md deleted file mode 100644 index 934c66171a..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connectivity-control/l1-switches.md +++ /dev/null @@ -1,214 +0,0 @@ ---- -sidebar_position: 1 ---- - -# L1 Switches - -CloudShell includes dedicated specialized features for working with L1 switches. These are implemented using CloudShell Shells. To learn how to use L1 switches in CloudShell Portal, see [L1 switches in CloudShell Portal](./l1-switches.md#l1-switches-in-cloudshell-portal). - -This article explains how to update an L1 switch with a new shell. For details specific to a particular L1 switch, see the documentation set included with the switch's shell. - -## Why update an L1 switch? - -Every major CloudShell release includes updated resource configurations for the different L1 switches. After upgrading to a new L1 version, you should import the updated shells for that device in your lab. The shell includes the family, model, attributes, and driver. - -The steps for updating an L1 switch are as follows: - -1. [Import an L1 shell to CloudShell](./l1-switches.md#import-an-l1-shell-to-cloudshell) using the instructions in this article. -2. [Create the L1 switch resource](./l1-switches.md#create-the-l1-switch-resource) -3. [Update the L1 switch firmware](./l1-switches.md#update-the-l1-switch-firmware), if needed. -4. [Sync between the L1 switch and CloudShell](./l1-switches.md#sync-between-the-l1-switch-and-cloudshell) to load the switch's blades, ports, and settings. -5. [Define the resource connections of the L1 switch](./l1-switches.md#define-the-resource-connections-of-the-l1-switch) -6. (Optional) [Configure L1 switch runtime](./l1-switches.md#configure-l1-switch-runtime) and replace any incompatible mappings. -7. [Set the timeout period for L1 drivers](./l1-switches.md#set-the-timeout-period-for-l1-drivers), if needed. - -## Verify user privileges - -To deploy an L1 shell, make sure you have the following permissions: - -- User with Administrator privileges for **Resource Manager Client** -- Username and password for the L1 switch - -## Import an L1 shell to CloudShell - -An updated shell may add new options, while rendering others obsolete. Check the release notes for instructions on managing changed functionality. -:::note -To support physical endpoints, make sure your physical switches and routers use shells compatible with your version of CloudShell. -::: -**To import an L1 Shell:** - -1. Download the shell to a temporary location. See [Quali Repositories](https://github.com/orgs/QualiSystems/repositories). - :::tip - Before you import, open the zip file and verify that it includes an `install_driver.bat` file. - ::: -2. Copy the shell to the Quali Server’s `\Drivers` installation folder. - - If the folder is missing, create it in the Server installation directory. By default: `C:\Program Files (x86)\QualiSystems\CloudShell\Server\Drivers`. - -3. Extract the shell’s zip file here. Make sure the `.exe` and `.json` files are located directly under the `\Drivers` folder. - -4. In command-line, navigate to the extracted folder and run the `install_driver.bat` file. - - When the process completes, return to the Drivers folder and make sure you see an `.exe` file for the shell. - -5. Make sure the L1 shell's `.exe` file is unblocked. - - - 1. Right-click the file and select **Properties**. - 2. If you see an **Unblock** option, select it and click **OK**. - -6. In **Resource Manager Client**, open the **Admin** ribbon, and click **Resource Families**. -7. In the **Resource Families** explorer, right-click the root and select **Import**. - -![](/Images/Admin-Guide/Inventory-Operations/Imprt.png) - -8. Navigate to the shell’s download folder, open the data model folder, select the ...`ResourceConfiguration.xml` file and click **Open**. -9. In the confirmation window, click **OK**.  - - The driver, families and resource models of the L1 switch are added to CloudShell. - -10. Optionally refresh the **Resource Families** explorer to see the new L1 switch families and models. - :::note - There is no need to restart Quali Server to complete this procedure. - ::: -11. If you are upgrading an existing Layer 1 shell, stop all existing processes of this shell that have the same name as the shell's `.exe` files included in the shell’s downloaded folder. - -## Create the L1 switch resource - -**To create an L1 switch resource:** - -1. In **Resource Manager Client**, open **Resource Explorer**. -2. Add a new **Folder** that will house the L1 switch resources. -3. Right-click the folder and select **New>Resource**. - - The **New Resource** dialog box is displayed. - - 1. Enter a **Name** for the resource. - :::note - The resource's name has a limit of 100 characters and can only contain alpha-numeric characters, spaces, and the following characters: | . - \_ \] \[ - ::: - 2. Enter the device's **Address**. - - If you are creating a resource for an OnPath switch on Horizon, make sure the address includes the Horizon server's address and the name of the OnPath. For example, "192.168.10.214?Horizon=OnPath1" where 192.168.10.214 is the Horizon server's address and OnPath1 is the name of the OnPath. - - 3. Select the switch's **Family**, **Model** and **Driver**. - :::note - The updated Family, Model and Drivers are added when you import the shell to **Resource Manager Client**. The driver contains the device's relevant commands, enables connectivity, and enables you to autoload/synchronize the switch with the updated settings. More about autoload and synchronizations in [Sync between the L1 switch and CloudShell](./l1-switches.md#sync-between-the-l1-switch-and-cloudshell). - ::: - 4. Click **OK**. -4. In **Resource Explorer**, right-click the new resource and select **Configuration**. - - The resource's **Configuration** tab is displayed. - -5. Enter the switch's **User** and **Password** access credentials. -6. Save your changes. - -## Update the L1 switch firmware - -Drivers are designed to work with a limited range of firmware. Updating a driver may require you to update the L1 switch's firmware as well, and vice-versa. Make sure a compatible driver is available before updating the L1 switch's firmware. - -## Sync between the L1 switch and CloudShell - -**To sync between the L1 switch and CloudShell:** - -1. If you are configuring an L1 switch for the first time or if the device's structure has changed, use the **Auto Load** operation to create the resource structure of the resource in CloudShell, along with the switch's settings. - - If the resource was previously autoloaded, **Auto Load** will update the resource's structure and attributes to match the switch. This includes creating missing sub resources, removing sub resources that are missing from the device, replacing sub resources that are using the wrong model with the correct ones, and also copying mappings and attributes from the switch. - - Additional options include **Sync From** and **Sync To**: - - - - The **Sync From** operation updates the attributes of the CloudShell resource but does not override the resource structure like the **Auto Load** operation. **Sync From** updates attributes such as software version, switch address, port names and alarm states with the existing settings of the switch. - - The **Sync To** operation enables you to update the physical device's settings with the settings defined in the CloudShell resource. To change the values of specific attributes on the physical device, in the **Settings** document of the resource, edit the attribute values and click **Activate**. - :::note - **Sync From** and **Sync To** can also be performed on a specific sub-resource, such as a blade or a port, while **Auto Load** applies to the entire resource structure. For additional information about these operations, see [Inventory Drivers and Utilities](../inventory-drivers-and-utilities.md). - ::: - -2. Set port attributes. - - The resource configuration for a switch model includes default attributes and value sets for each type of switch. - - Significant attributes for using the switch in a blueprint route include: - - - **Protocol** \- a read-write attribute allows users to determine the protocol to be used by the port - - **Protocol Type** \- used to mark a port as Ethernet or Fibre channel - - **Speed** \- a read-write attribute that determines the transmission speed or rate for the port - - Admin users can modify the switch attributes and values in CloudShell and apply the new values to the device, but in most cases, an L1 switch allows a list of permitted protocols and speeds for its ports. - - Typically, the L1 switch is set as a shared resource that is available to multiple users while the L1 switch ports are set as exclusive per sandbox. If the protocol type and speed attributes are associated with the switch ports, each user can specify which connectivity settings to use for the selected ports. - - If protocol type and speed are not specified, the route uses the default protocol type and speed for the switch. - -3. Next, if you need to make adjustments to the port mappings (for example, to replace incompatible mappings), manually modify the ports and mappings and apply the changes to the device. - -## Define the resource connections of the L1 switch - -For detailed information on how to do this, see [Define the Resource Connections of the Switch or Patch Panel](../connectivity-control/define-the-resource-connections-of-the-switch-or-patch-panel.md). - -## Configure L1 switch runtime - -Switch runtime behavior is determined by a combination of settings in the driver's runtime configuration file and the values set for the port attributes. Each driver includes a runtime configuration that stores login information, logging preferences, and default actions to perform. - -It is possible to have different runtime configuration settings for each driver. However, if you have multiple switches using the same driver, they will share the runtime configuration settings. Runtime settings between the Host tags will override the default runtime settings for a specific switch. For an example `RuntimeConfig.xml` file: - -`` - -`` - -`` - -`` - -`` - -`` - -`` - -`` - -`` - -`` - -`` - -`` - -**To change logging preferences**: - -1. Navigate to the Shell’s server folder, select the ... `RuntimeConfig.xml` file and click **Open**. -2. Edit the `VERBOSE` key for each host. - - Verbose values range from 1, which documents only critical errors, to 7, which documents every action the driver takes. High verbosity creates large log files and can affect the time taken to resolve switch commands. - -3. Save the file. - -## Set the timeout period for L1 drivers - -CloudShell manages the execution of L1 resource commands using a dedicated process for each L1 driver on the **Quali Server** machine. The process is named after the driver and is created when running the first command of an L1 driver in the sandbox, after restarting **Quali Server** or if the driver's previous process was terminated during the sandbox's lifecycle. - -However, some drivers, especially Python-based drivers, may require a longer startup time than the default 2 seconds timeout period defined in CloudShell. If the driver does not respond within the defined period, the following error message is displayed: "No response received from agent". - -**To set a different timeout period for L1 drivers:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file, add the following key, and set the value in seconds: - - `` - -2. Restart the **Quali Server** service. - -## L1 switches in CloudShell Portal - -*This section applies to both patch panels and L1 switches. For brevity, the term "L1 device" is used for both.* - -When you reserve a blueprint that has resources with connectivity requirements, CloudShell will resolve those connections using the L1 device resource(s) you configured. -:::note -You can see an L1 device's resolved connections in real time in the **Resource Explorer**. Right-click the L1 device resource and select **Settings**. In the L1 resource's **Settings** tab, click the **Mappings** button. For example, a switch that connects the "Router2" and "Router1" resources to each other: - -![](/Images/Admin-Guide/Inventory-Operations/SwitchMappings.png) -::: -CloudShell Portal also enables you to reserve specific blades/ports for the duration of the sandbox. You can either drag the L1 resource into the sandbox (its default is shared) and then use the **Add sub resources** option to add some ports to the diagram (this will allocate the ports exclusively to sandboxes based on this blueprint), or you can use the **Unshare** option on the L1 device resource itself to get exclusive access to the entire resource for that sandbox. - -To learn how to add sub-resources and unshare a resource, see [Configure Sub-resources](../../../../portal/sandboxes/sandbox-workspace/resources/configure-sub-resources.md) and [Share Reserved Resources](../../../../portal/sandboxes/sandbox-workspace/resources/share-reserved-resources.md). diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connectivity-control/patch-panels.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connectivity-control/patch-panels.md deleted file mode 100644 index e47082013b..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connectivity-control/patch-panels.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Patch Panels - -Patch panels can be used in CloudShell as a replacement or in addition to L1 switches. They can represent real physical patch panels and store the connectivity information. - -A route can be requested between two devices that are connected to the same patch panel, and be activated by the user or automation. A patch panel driver will not do any active operation like an L1 driver does, but automation can refer to the connectivity information for various use cases. Such automation can, for example, send an email to the sandbox owner or to the lab admin with patching instructions. - -### Patch panel configuration - -To create a patch panel resource, make sure to use the provided resource families (this can be imported from the system.xml or when importing any L1 configuration): - -- A patch panel family (PatchPanel) -- A patch panel model (Generic PatchPanel) -- A patch panel jack family (Panel Jack) -- A patch panel jack model (Generic Jack) -- A resource structure that defines the patch panel hierarchy - -**To use the patch panel:** - -1. Download the latest Additional Files zip file (from [CloudShell Download Center - Earlier Releases](https://support.quali.com/hc/en-us/articles/231613287)) to a temporary location. -2. Extract the zip file. -3. In **Resource Manager Client**, open the **Resource Families** explorer. -4. Import the `system.xml` file from the extracted zip folder (located in the `Lab Management` sub folder). -5. Create a new resource using the patch panel family and model. Make sure the **Patch Panel Driver** is selected. -6. Right-click the new resource and click **Configuration** from the context menu. -7. The **Resource Configuration** page is displayed. -8. Add the patch panel's ports: - 1. In the **Internal Resources** pane, right-click the patch panel resource and select **New \> Resource** from the context menu. In the **New Resource** dialog box, enter the required information and click **OK**. -9. To define which devices are connected to the patch panel ports, see [Define the Resource Connections of the Switch or Patch Panel](./define-the-resource-connections-of-the-switch-or-patch-panel.md). -10. Save the changes. - - The patch panel can now be used for any route request, same as L1 routes. - - -### Patch panels in CloudShell Portal - -*This section applies to both patch panels and L1 switches. For brevity, the term "L1 device" is used for both.* - -When you reserve a blueprint that has resources with connectivity requirements, CloudShell will resolve those connections using the L1 device resource(s) you configured. -:::note -You can see an L1 device's resolved connections in real time in the **Resource Explorer**. Right-click the L1 device resource and select **Settings**. In the L1 resource's **Settings** tab, click the **Mappings** button. For example, a switch that connects the "Router2" and "Router1" resources to each other: - -![](/Images/Admin-Guide/Inventory-Operations/SwitchMappings.png) -::: -CloudShell Portal also enables you to reserve specific blades/ports for the duration of the sandbox. You can either drag the L1 resource into the sandbox (its default is shared) and then use the **Add sub resources option** to add some ports to the diagram (this will allocate the ports exclusively to sandboxes based on this blueprint), or you can use the **Unshare** option on the L1 device resource itself to get exclusive access to the entire resource for that sandbox. - -To learn how to add sub-resources and unshare a resource, see [Configure Sub-resources](../../../../portal/sandboxes/sandbox-workspace/resources/configure-sub-resources.md) and [Share Reserved Resources](../../../../portal/sandboxes/sandbox-workspace/resources/share-reserved-resources.md). diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connectivity-control/subnet-connectivity/_category_.json b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connectivity-control/subnet-connectivity/_category_.json deleted file mode 100644 index 4baabe7b68..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connectivity-control/subnet-connectivity/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Subnet Connectivity", - "position": 5 -} diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connectivity-control/subnet-connectivity/index.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connectivity-control/subnet-connectivity/index.md deleted file mode 100644 index 09da79d288..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connectivity-control/subnet-connectivity/index.md +++ /dev/null @@ -1,76 +0,0 @@ -# Subnet Connectivity - -*In CloudShell 9.1, subnets are supported out-of-the-box for AWS EC2 and Azure.* - -This article explains how to configure CloudShell's **Subnet** service to enable the creation of multiple subnets in a single sandbox. - -During the sandbox's setup, CloudShell creates the subnets in the public cloud and during App deployment, each App's VM is connected to the appropriate subnets. Subnet-based connectivity supports connections involving public cloud Apps (peer-to-peer and many-to-many). - -:::note Notes -- By default, CloudShell creates a subnet for every sandbox that has public cloud Apps. If additional subnets are required, the blueprint designer can add **Subnet** services to the blueprint and/or create peer-to-peer connections between AWS/Azure Apps. Note that if additional subnets are used, the default subnet will not be created in the sandbox. -- CloudShell creates the necessary route tables in AWS/Azure. -::: -To use subnets in CloudShell, the system administrator needs to perform the following configurations: - -1. [Associate the Subnet service family to the domain categories](./index.md#associate-the-subnet-service-family-to-the-domain-categories) -2. [Customize the Subnet service model](./index.md#customize-the-subnet-service-model) - -## How CloudShell creates subnet networks - -When a sandbox is deployed, CloudShell uses the cloud provider resource of the Apps to create the defined subnets. If no subnets are specified, a single default subnet is created for the sandbox's Apps. However, if the sandbox's blueprint includes Subnet services and/or peer-to-peer connections between Apps, CloudShell will create a dedicated subnet for each, allocating the service's defined IPs for the duration of the sandbox. Note that for each peer-to-peer connection, CloudShell will create a 16 IP subnet. - -## Associate the Subnet service family to the domain categories - -To expose the Subnet service in the **Apps / Services** catalog of a specific domain, you must associate the service family to each desirable domain's service category. For information about creating service categories for domains, see [Creating a service catalog category](../../../inventory-operations/configuring-services.md#creating-a-service-catalog-category). - -**To associate the Subnet service to the domain category:** - -1. As system administrator, log into **Resource Manager Client**. -2. In the **Admin** ribbon, click **Resource Families**. - - The **Resource Families** explorer is displayed. - -3. Click the **Virtual Network** service family. - - The family's **Parameters** pane is displayed. - -4. Click the **Categories** tab. -5. Click **Add**. - - The **Select Category** dialog box is displayed. - -6. Select the domain category. To select multiple categories, press the **\[Shift\]** key. -7. Save your changes. - -## Customize the Subnet service model - -This section explains how to customize the default settings of the Subnet service and control which settings can be changed by the user in the blueprint diagram. To learn how to add a subnet to a blueprint and set the service's attribute values, see [Services in Blueprints](../../../../../portal/blueprints/creating-blueprints/services.md). - -**To customize a Subnet preset's attributes:** - -1. In the **Resource Families** explorer, open the **Virtual Network** service family and click the Subnet service model. Alternatively, copy the service model to customize a separate preset. - - The **Parameters** pane is displayed to the right of the **Resource Families** explorer. - -2. Click the **Attributes** tab and configure the required attributes: - - | Attribute | Description | - | --- | --- | - | Allocated CIDR | (Read only attribute) This attribute stores the CIDR allocated to the subnet by the sandbox. The allocated CIDR is based on the service's Subnet Size. | - | Public | Determines if the subnet is connected to the internet. | - | QnQ | Sets the Subnet connection to be in QinQ mode. Default is **False**. | - | Subnet Id | Read only attribute that displays the allocated subnet ID. | - | Subnet Size | Defines the possible sizes of this subnet (block size of the subnet CIDR). Possible values: 16, 32, 64, 128 (corresponding to block sizes of /28, /27, /26 and /25). The maximum VPC IP range is 256 IPs (/24), and cannot be changed in CloudShell 8.2.
**Note:** Since each cloud provider has a few IPs in each subnet reserved for networking services, the actual number of Apps that can be added to a subnet is lower than the number set in the subnet size attribute. Currently in AWS, 5 IPs are reserved. | - -3. Save your changes. - -## Related Topics - -- [Subnet Connectivity - Points to Consider](./subnet-connectivity--points-to-consider.md) -- [AWS Integration](../.././../../supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/index.md) -- [Microsoft Azure Integration](../.././../../supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/index.md) -- [Managing App Templates](../../../../cloudshell-manage-dashboard/manage-app-templates/index.md) -- [Services Overview](../../../../../intro/features/services.md) -- [Apps Overview](../../../../../intro/features/apps-overview.md) -- [Virtual Network Connectivity](../../../../../portal/sandboxes/sandbox-workspace/add-connectivity/add-virtual-network/index.md) -- [Connect Resources and Apps](../../../../../portal/sandboxes/sandbox-workspace/connect-resources-and-apps.md) \ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connectivity-control/subnet-connectivity/subnet-connectivity--points-to-consider.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connectivity-control/subnet-connectivity/subnet-connectivity--points-to-consider.md deleted file mode 100644 index 51fb9ebb01..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connectivity-control/subnet-connectivity/subnet-connectivity--points-to-consider.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Subnet Connectivity - Points to Consider - -When adding a subnet to a blueprint diagram, take the following points under consideration. To learn how to add a subnet to a blueprint and set the service's attribute values, see [Services in Blueprints](../../../../../portal/blueprints/creating-blueprints/services.md). - -## General - -- By default, CloudShell creates a single subnet on the public cloud for the sandbox's public cloud Apps. However, blueprint designers can have CloudShell create additional subnets. - :::note - If both AWS and Azure Apps are included in the sandbox, CloudShell will create two subnets, one for each public cloud. - ::: -- There are two ways to create additional subnets, by adding **Subnet** services to the blueprint diagram or creating peer-to-peer connections by directly creating a **Connector** route between two AWS EC2 or Azure Apps. -- A sandbox that has additional subnets will create these subnets instead of the default one. - -## Out-of-the-box support - -- CloudShell provides out-of-the-box support for multiple subnets in the same sandbox for AWS EC2/Azure Apps. - -## Sandbox IP limit - -- The maximum number of IPs per sandbox is 255. Therefore, when adding multiple subnet services, make sure the total subnet size does not exceed this limit. -- For P2P connections between two AWS EC2 or Azure Apps, CloudShell creates a subnet with 16 IPs. - -## Private cloud Apps - -- Subnet services cannot be connected to private cloud Apps, such as vCenter. For additional information, see [Virtual Network Connectivity](../../../../../portal/sandboxes/sandbox-workspace/add-connectivity/add-virtual-network/index.md). - -## Cloud provider resource - -- All Apps connected to the same subnet must use the same cloud provider resource for their deployment. This prevents modeling a network with components in different clouds. -- CloudShell allows changing a connected deployed App's deployment type as long as the new deployment type uses the same cloud provider resource. - -## Connections - -- Deployed Apps cannot be connected or disconnected in the sandbox. - - However, if you need to disconnect a deployed App, you can remove it from the sandbox. This will both disconnect the App from the subnets or Apps it is connected to, and delete the App's VM from the cloud provider. For additional information, see [Apps in Sandboxes](../../../../../portal/sandboxes/sandbox-workspace/apps/). - -- It is possible to connect Azure Apps to predefined subnets residing on the Sandbox VNet. This capability is supported for Azure 2nd Gen cloud provider resources. For additional information, see [Connecting Azure Apps to predefined subnets](../../../../../portal/sandboxes/sandbox-workspace/connect-resources-and-apps.md#connecting-azure-apps-to-predefined-subnets). -- If the diagram has any subnet services, make sure all AWS EC2/Azure Apps in that diagram are connected to at least one subnet. For additional information, see [Apps in Sandboxes](../../../../../portal/sandboxes/sandbox-workspace/apps/). -- For AWS EC2 instances, the subnet range allocation is independent from the IP allocation. As a result, instance IPs may not be included in the defined range of their subnet. Please note that this is a display issue and does not affect connectivity. - - For example, the IPs allocated to the deployed instances are outside the subnet's range: - - ![](/Images/Admin-Guide/Inventory-Operations/AWSSubnetConnectivity.png) - - -## Modifying subnets - -- Subnet services cannot be added, edited or removed from a sandbox. For additional information, see [Services in Sandboxes](../../../../../portal/sandboxes/sandbox-workspace/services.md). - -## Related Topics - -- [Subnet Connectivity](./index.md) -- [Services in Blueprints](../../../../../portal/blueprints/creating-blueprints/services.md) -- [Apps in Blueprints](../../../../../portal/blueprints/creating-blueprints/apps/) -- [Virtual Network Connectivity](../../../../../portal/sandboxes/sandbox-workspace/add-connectivity/add-virtual-network/index.md) diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connectivity-control/vlan-connectivity/_category_.json b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connectivity-control/vlan-connectivity/_category_.json deleted file mode 100644 index 051ff1d2d5..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connectivity-control/vlan-connectivity/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "VLAN Connectivity", - "position": 3 -} diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connectivity-control/vlan-connectivity/index.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connectivity-control/vlan-connectivity/index.md deleted file mode 100644 index 0ec0cd0f89..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connectivity-control/vlan-connectivity/index.md +++ /dev/null @@ -1,312 +0,0 @@ -# VLAN Connectivity - -CloudShell provides dedicated VLAN services that enable the creation of Layer 2 connections between both physical and virtual endpoints (for example, physical servers and App-deployed virtual machines) by allocating a VLAN ID for each connection. VLAN-based connectivity supports both peer-to-peer and many-to-many connections. - -To use VLANs in CloudShell, the system administrator needs to perform the following configurations: - -1. Make sure the organization's L2 switches are properly modeled in CloudShell, and include the appropriate resource connections, as explained in [Define the Resource Connections of the Switch or Patch Panel](../define-the-resource-connections-of-the-switch-or-patch-panel.md). -2. [Associate the VLAN service family to the domain categories](../vlan-connectivity/index.md#associate-the-vlan-service-family-to-the-domain-categories) -3. [Customize the VLAN service models](../vlan-connectivity/index.md#customize-the-vlan-service-models) -:::note Important -Before setting up your L2 resources and connections, review [VLAN Connectivity - Points to Consider](../vlan-connectivity/vlan-connectivity--points-to-consider.md). -::: -:::tip -CloudShell supports connecting vCenter Apps to existing port groups. For details, see [Connecting vCenter Apps to an existing VLAN port group](../../../../../portal/sandboxes/sandbox-workspace/connect-resources-and-apps.md#connecting-vcenter-apps-to-an-existing-vlan-port-group). -::: -## How CloudShell creates VLAN connections - -When resolving a VLAN connection between sandbox resources/Apps, CloudShell assumes the devices can access one another on the L2 network. In other words, if the connection involves several interconnected switches, CloudShell only configures the edges of the layer 2 networks but doesn’t affect what happens inside. - -For example, the diagram below illustrates an L2 network using three L2 switches. Switch 1 is connected to your physical devices, while switches 2 and 3 comprise the fabric. - -![](/Images/Admin-Guide/Inventory-Operations/L2NetworkDiagram.png) - -When connecting any of the endpoints, whether its physical devices or virtual machines deployed in your vCenter server, CloudShell only cares about their immediate ports, and not what happens between them. - -## How CloudShell allocates VLAN IDs - -CloudShell allocates VLAN IDs for routes using several parameters that are defined by the administrator in the VLAN service. The parameters are **Pool Name**, **VLAN ID**, **Allocation Ranges**, and **Isolation Level**, which are explained below. - -CloudShell can check availability for a specific **VLAN ID** or find an available VLAN ID within the defined **Allocation Ranges**. - -When connecting a route that uses a VLAN service, CloudShell allocates the VLAN ID based on the availability of the VLAN ID in the pool specified, which is the domain by default. However, if the VLAN ID is **Shared** (defined in the **Isolation Level** attribute), it can be shared among multiple connections in the same sandbox and between sandboxes in the same domain/pool. - -## Associate the VLAN service family to the domain categories - -To expose the VLAN services in the **Apps / Services** catalog of a specific domain, you must associate the service family to each desirable domain's service category. For information about creating service categories for domains, see [Creating a service catalog category](../../../inventory-operations/configuring-services.md#creating-a-service-catalog-category). - -**To associate the VLAN services to the domain category:** - -1. As system administrator, log into **Resource Manager Client**. -2. In the **Admin** ribbon, click **Resource Families**. - - The **Resource Families** explorer is displayed. - -3. Click the service family containing the VLAN services. For example, **Virtual Network**. - - The family's **Parameters** pane is displayed. - -4. Click the **Categories** tab. -5. Click **Add**. - - The **Select Category** dialog box is displayed. - -6. Select the domain category. To select multiple categories, press the **\[Shift\]** key. -7. Save your changes. - -## Customize the VLAN service models - -This section explains how to customize the default settings of the VLAN service and control which settings can be changed by the user in the blueprint diagram. To learn how to add a VLAN service to a blueprint and set the service's attribute values, see [Services in Blueprints](../../../../../portal/blueprints/creating-blueprints/services.md). -:::note -Additional VLAN services can be created. For example, you could set up multiple VLAN Auto services in the same domain, each with a different allocation range. Simply duplicate an existing VLAN service and edit the settings, as appropriate. Then, in the Scripts - Resource management page, add the new VLAN service model to the Vlan Service Connect All script. -::: - - **VLAN Auto**: This preset automatically selects the VLAN ID for each endpoint connection out of a defined range according to availability in the domain's pool. **VLAN Auto** allocates VLAN IDs as exclusive by default. This means that the same VLAN ID cannot be used in two or more sandboxes in the same pool. - -:::note -**VLAN Auto** selects only one available VLAN ID, even if it is used in **Trunk** mode. -::: -
- **Customizing a VLAN Auto preset** - - **To customize a VLAN Auto preset's attributes:** - - 1. In the **Resource Families** explorer, open the **Virtual Network** service family and click the **VLAN Auto** service model. Alternatively, copy the service model to customize a separate preset. - - The **Parameters** pane is displayed to the right of the **Resource Families** explorer. - - 2. Click the **Attributes** tab and configure the required attributes: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AttributeDescription
Access Mode - Determines if the VLAN is configured as Access or Trunk. Default is Access. -:::note -Only Access mode is supported for OpenStack instances deployed in CloudShell sandboxes. -::: -
Allocation Ranges - Determines the ranges of VLAN IDs that can be used. CloudShell will select the first available ID from the allocation ranges specified. - -You can specify one or more ranges, and specific VLAN IDs. Multiple values are separated by a comma. Default range is 2-4094 for VLAN and 16777216 for VXLAN. - -For example: "3, 100-220, 300-350" -:::note -VXLAN ID ranges are only supported for OpenStack cloud provider. To use VXLAN IDs, the VLAN service must be connected to a virtual endpoint that supports VXLAN. VXLAN IDs are supported only for OpenStack. -::: - -:::important -Modifying a range will not affect VLANs that are currently in use. -::: -
Isolation LevelDetermines if the allocated VLAN ID is **Exclusive** or **Shared**. Default is **Exclusive**.
Virtual NetworkRead only field that stores the allocated VLAN ID. This can be published for users to see but cannot be edited.
VLAN ID(Optional) Enables you to specify the VLAN ID (or range if **Access Mode** is set to **Trunk**) to use. The VLAN ID must be included in the specified allocation range. However, if the VLAN ID is already allocated exclusively to someone else, an error will be displayed.
Pool Name - (Optional) Enables you to specify a value to be used as the pool name. This is especially useful for CloudShell configurations that involve multiple domains in different geographic sites. - -If empty, the domain name is used. -:::note -A VLAN service can allocate the same VLAN in different domains if the pool name is not set. -::: -
QinQ - (Only in **Access** mode) Sets the VLAN connection to be in QinQ mode. This requires the L2 switch device to support QinQ. Default is **False**. -:::note -If QinQ mode is enabled on the VLAN service but cannot be established on the L2 switch (for example, because it is not supported on the switch or disabled on the port to be used), the connection will fail. -::: -
- - 3. Save your changes. -
-- **VLAN Manual**: This preset enables the user to specify the VLAN ID to use. **VLAN Manual** allocates VLAN IDs as shared by default. -
- **Customizing a VLAN Manual preset** - - **To customize a VLAN Manual preset's attributes:** - - 1. In the **Resource Families** explorer, open the **Virtual Network** service family and click the **VLAN Manual** service model. Alternatively, copy the service model to customize a separate preset. - - The **Parameters** pane is displayed to the right of the **Resource Families** explorer. - - 2. Click the **Attributes** tab and configure the required attributes: - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
**Access Mode** - Determines if the VLAN is configured as **Access** or **Trunk**. Default is Access. -:::note -Only **Access** mode is supported for OpenStack instances deployed in CloudShell sandboxes. -::: -
**Isolation Level**Determines if the allocated VLAN ID is **Exclusive** or **Shared**. Default is **Shared**.
**Virtual Network**Read only field that stores the allocated VLAN ID. This can be published for users to see but cannot be edited.
**VLAN ID**(Mandatory) Enables you to specify the VLAN ID (or range if **Access** **Mode** is set to **Trunk**) to use. If the VLAN ID is already allocated exclusively to someone else, an error will be displayed.
**Pool Name** - (Optional) Enables you to specify a value to be used as the pool name. This is especially useful for CloudShell configurations that involve multiple domains in different geographic sites. - -If empty, the domain name is used. -:::note -A VLAN service can allocate the same VLAN in different domains if the pool name is not set. -::: -
**QinQ** - (Only in **Access** mode) Sets the VLAN connection to be in QinQ mode. This requires the L2 switch device to support QinQ. Default is **False**. -:::note -If QinQ mode is enabled on the VLAN service but cannot be established on the L2 switch (for example, because it is not supported on the switch or disabled on the port to be used), the connection will fail. -::: -
- - 3. Save your changes. -
- -- **P2P VLAN Default**: This preset enables you to set the default VLAN settings to be used by peer-to-peer connections. By default, it allocates an exclusive VLAN ID for each endpoint connection out of a defined range according to availability in the domain's pool. - -
-**Customizing a P2P VLAN Default preset** - -The default VLAN service to be used for peer-to-peer connections can be defined by a **P2P VLAN Default** service model. Even if not configured, a peer-to-peer fallback is provided by CloudShell, as described in the note at the bottom of this section. -:::note -P2P VLAN Default is an admin-level service that is only visible to domain and system administrators in CloudShell Portal. -::: -**To customize a P2P VLAN Default preset's attributes:** - -1. In the **Resource Families** explorer, open the **Virtual Network \- Administrative** service family and click the **P2P VLAN Default** service model. Alternatively, copy the service model to customize a separate preset. - - The **Parameters** pane is displayed to the right of the **Resource Families** explorer. - -2. Click the **Attributes** tab and configure the required attributes: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Access Mode - Determines if the VLAN is configured as **Access** or **Trunk**. Default is **Access**. -:::note -Only **Access** mode is supported for OpenStack instances deployed in CloudShell sandboxes. -::: -
Allocation Ranges - Determines the ranges of VLAN IDs that can be used. CloudShell will select the first available ID from the allocation ranges specified. - -You can specify one or more ranges, and specific VLAN IDs. Multiple values are separated by a comma. Default range is 2-4094 for VLAN and 16777216 for VXLAN. - -For example: "3, 100-220, 300-350" -:::note -VXLAN ID ranges are only supported for OpenStack cloud provider. To use VXLAN IDs, the VLAN service must be connected to a virtual endpoint that supports VXLAN. VXLAN IDs are supported only for OpenStack. -::: -:::important -Modifying a range will not affect VLANs that are currently in use. -::: -
Isolation LevelDetermines if the allocated VLAN ID is **Exclusive** or **Shared**. Default is **Exclusive**.
Virtual NetworkRead only field that stores the allocated VLAN ID. This can be published for users to see but cannot be edited.
VLAN ID(Optional) Enables you to specify the VLAN ID (or range if **Access** **Mode** is set to **Trunk**) to use. The VLAN ID must be included in the specified allocation range. However, if the VLAN ID is already allocated exclusively to someone else, an error will be displayed.
Default VLANDefines the Virtual Network service as a default service to use for peer-to-peer connections.
Pool Name - (Optional) Enables you to specify a value to be used as the pool name. This is especially useful for CloudShell configurations that involve multiple domains in different geographic sites. - -If empty, the domain name is used. -:::note -A VLAN service can allocate the same VLAN in different domains if the pool name is not set. -::: -
QinQ - (Only in **Access** mode) Sets the VLAN connection to be in QinQ mode. This requires the L2 switch device to support QinQ. Default is **False**. -:::note -If QinQ mode is enabled on the VLAN service but cannot be established on the L2 switch (for example, because it is not supported on the switch or disabled on the port to be used), the connection will fail. -::: -
-1. Save your changes. -:::note Notes -When a peer-to-peer connection is being resolved, CloudShell selects a VLAN to use according to the following logic: - -1. CloudShell selects the P2P VLAN Default service that exists in the blueprint. - -2. Otherwise, it uses a P2P VLAN Default service in a category associated to the user's domain. - -3. Otherwise, it uses a P2P VLAN Default service in CloudShell. - -4. Otherwise, the VLAN Auto preset's settings are used. -::: -
- - ## Related Topics - - - [VLAN Connectivity - Points to Consider](./vlan-connectivity--points-to-consider.md) - - [Services Overview](../../../../../intro/features/services.md) - - [Apps Overview](../../../../../intro/features/apps-overview.md) - - [Connections Legend](../../../../../portal/sandboxes/sandbox-workspace/add-connectivity/connections-legend.md) - - [Virtual Network Connectivity](../../../../../portal/sandboxes/sandbox-workspace/add-connectivity/add-virtual-network/index.md) - - [Connect Resources and Apps](../../../../../portal/sandboxes/sandbox-workspace/connect-resources-and-apps.md) \ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connectivity-control/vlan-connectivity/vlan-connectivity--points-to-consider.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connectivity-control/vlan-connectivity/vlan-connectivity--points-to-consider.md deleted file mode 100644 index e8f04514ec..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/connectivity-control/vlan-connectivity/vlan-connectivity--points-to-consider.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -sidebar_position: 1 ---- - -# VLAN Connectivity - Points to Consider - -When setting up your L2 resources, take these points into consideration. - -## Compatibility - -- CloudShell cannot create connectivity paths involving both L1 and L2 networking devices. Only pure L1 or pure L2 paths are supported. For example, "DUT1 - L1 - L2 - DUT2" path is not supported. - - -## Out-of-the-box support - -- CloudShell automatically deploys and tears down L2 connections when starting and ending the sandbox. -- CloudShell provides out-of-the-box support for multiple VLAN networks in the same sandbox. - -## Networking - -- CloudShell only controls and models the leaf switches (those connected to the endpoints). All L2 switches in the fabric must be fully trunked. -- To enable the use of VLANs between physical end points, make sure you connect the physical devices to the appropriate L2 switch resources, as explained in [Define the Resource Connections of the Switch or Patch Panel](../define-the-resource-connections-of-the-switch-or-patch-panel.md). -- To auto-discover an L2 switch resource and add it to the CloudShell inventory, you should use an appropriate CloudShell L2 Shell (from [Quali Repositories](https://github.com/orgs/QualiSystems/repositories)) that provides all the required VLAN connectivity capabilities. -- To enable connections for virtual machines deployed in a private cloud, make sure to configure networking in their cloud provider resource. For example, define the vCenter dvswitch or OpenStack management network when configuring the cloud provider resource. -- CloudShell supports L2 connections based on SDN. For details, see the [SDN Controller Shell Standard](https://github.com/QualiSystems/cloudshell-standards/blob/master/Documentation/SDN_controller_standard.md) and shells in the [Quali Repositories](https://github.com/orgs/QualiSystems/discussions/categories/integrations) page. - -## VLAN services - -- **VLAN service customizations**: Additional VLAN services can be created. For example, you could set up multiple VLAN Auto services in the same domain, each with a different allocation range. Simply duplicate an existing VLAN service and edit the settings, as appropriate. Then, in the **Scripts - Resource** management page, add the new VLAN service model to the **Vlan Service Connect All** script. -- Modifying a range on a VLAN service does not affect VLANs that are currently in use. -- Peer-to-peer (P2P) connections: - - - **P2P VLAN Default** is an admin-level service that is only visible to domain and system administrators in CloudShell Portal. - - When a peer-to-peer connection is being resolved, CloudShell selects a VLAN to use according to the following logic: - - 1. CloudShell selects the P2P VLAN Default service that exists in the blueprint. - 2. Otherwise, it uses a P2P VLAN Default service in a category associated to the user's domain. - 3. Otherwise, it uses a P2P VLAN Default service in CloudShell. - 4. Otherwise, the **VLAN Auto** preset's settings are used. - -## OpenStack - -- Only Access mode is supported for OpenStack instances deployed in CloudShell sandboxes. -- VXLAN ID ranges are only supported for OpenStack cloud provider, and configured in the Allocated Ranges attribute of the VLAN service. - :::note - To use VXLAN IDs, the VLAN service must be connected to a virtual endpoint that supports VXLAN. VXLAN IDs are supported only for OpenStack. - ::: -- VLAN Trunking: Starting with OpenStack Cloud Provider Shell version 1.2.0, CloudShell will create a new interface on the deployed App's VM for every connected VLAN service. For details, see [OpenStack Configuration Requirements](../../../../supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/openstack-integration-and-configuration/openstack-configuration-requirements.md). - -## Related Topics - -- [VLAN Connectivity](./index.md) -- [Services Overview](../../../../../intro/features/services.md) -- [Apps Overview](../../../../../intro/features/apps-overview.md) -- [Connections Legend](../../../../../portal/sandboxes/sandbox-workspace/add-connectivity/connections-legend.md) -- [Virtual Network Connectivity](../../../../../portal/sandboxes/sandbox-workspace/add-connectivity/add-virtual-network/index.md) -- [Connect Resources and Apps](../../../../../portal/sandboxes/sandbox-workspace/connect-resources-and-apps.md) diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/index.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/index.md deleted file mode 100644 index fc43e62bcc..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/index.md +++ /dev/null @@ -1,17 +0,0 @@ -# Inventory Operations - -:::info -Some of the articles in this chapter apply to 1st Gen shells only. Even though CloudShell still supports 1st Gen shells, we recommend using 2nd Gen shells, which offer enhanced shell management capabilities. For details, see [Shells Overview](../../../intro/features/shells.md). -::: - -This chapter explains how to configure your resources and services in CloudShell. This includes setting up the families and models, associating attributes and drivers, and associating the resources and services to domains in order to enable the domain users to access and use them. - -## Related Topics - - - [Resource Data Modeling (for 1st Gen Shells)](./resource-data-modeling-for-1st-gen-shells/index.md) - - [Adding and Configuring Resources](./adding-and-configuring-resources/index.md) - - [Configuring Services](./configuring-services.md) - - [Inventory Drivers and Utilities](./inventory-drivers-and-utilities.md) - - [Viewing Resource Live Status](./viewing-resource-live-status.md) - - [Connectivity Control](./connectivity-control/index.md) - - [Connected Commands](./connected-commands/index.md) \ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/inventory-drivers-and-utilities.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/inventory-drivers-and-utilities.md deleted file mode 100644 index f097734b9e..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/inventory-drivers-and-utilities.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -sidebar_position: 4 ---- - -# Inventory Drivers and Utilities -:::important -This article only applies to resources based on 1st Gen shells. While CloudShell supports 1st Gen shells, we recommend using 2nd Gen shells, which offer enhanced shell management capabilities. For details, see [Shells Overview](../../../intro/features/shells.md). -::: -## Autoloading resource configuration settings - -**Auto Load** is a process that discovers and creates the internal resources of the root resource (for example, switch cards and ports). The Auto Load process automatically updates the configuration of the CloudShell resource to match the structure, mappings and attributes of the device, adding missing sub resources in the process. - -If the resource already exists in CloudShell, Auto Load will exclude any sub resources that are either missing from the device or have the wrong model. However, on existing L1 switch resources, Autoload removes the sub resources from the L1 switch resource instead (as explained in [Sync between the L1 switch and CloudShell](../inventory-operations/connectivity-control/l1-switches.md#sync-between-the-l1-switch-and-cloudshell)). -:::note -**Auto Load** must be performed on new L1 switches not yet inventoried in CloudShell. -::: -**To perform Auto Load on a new L1 switch:** - -1. Create a new L1 switch resource in **Resource Manager Client**. -2. Right-click the switch resource and select **Configuration**. -3. Enter the user name and password - ![](/Images/Admin-Guide/Inventory-Operations/Inven-Opers_9.png) -4. If this is an existing L1 switch, in the **Internal Resources** pane, right-click the switch and select **Exclude** from the context menu. - ![](/Images/Admin-Guide/Inventory-Operations/InternalResExclude.png). -5. Make sure the L1 shell's `.exe` file is unblocked. - - 1. In the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\Drivers` folder, right-click the L1 shell's `.exe` file and select **Properties**. - - 2. If you see an **Unblock** option, select it and click **OK**. - - -5. Click the **Auto Load** button at the bottom of the **Configuration** tab. - - The Auto Load process completes. - -6. If you excluded the resource before running Auto Load, right-click the switch in the **Internal Resources** pane and select **Include** from the context menu. "Included" resources are available for reservation in a sandbox. Sandboxes are created in the CloudShell Portal (for details, see [Creating Sandboxes](../../../portal/sandboxes/creating-sandboxes.md)). - - ![](/Images/Admin-Guide/Inventory-Operations/InternalResInclude.png) - - At the end of the Auto Load process, all relevant auto-detected internal resources (blades, ports) are displayed in the **Internal Resources** pane, under the root resource node. - -7. For L1 switches, if the **Autoload** process made changes to the resource structure, you may need to redefine any lost device connections, see [Define the resource connections of the L1 switch](../inventory-operations/connectivity-control/l1-switches.md#define-the-resource-connections-of-the-l1-switch). - -### Sync To/From device operations - -You can re-synchronize a resource in the database without performing a full **Auto Load**. - -While **Auto Load** updates the resource structure with the structure of the device, **Sync** does not remove resources that were added manually, but only updates existing ones. - -Sync can be performed for a resource or any of its internal resources (e.g. whole chassis, a blade or a port). - -- **Sync From Device** updates the resource properties stored in **Resource Manager Client** with the current device settings. -- **Sync To Device** overrides device settings with the current state of the device as documented in **Resource Manager Client**. - -As synchronization requires the resource to be reserved, the process first initiates an active sandbox for the resource. If you do not reserve the resource before initiating a sync process, an automatic sandbox will be initiated. -:::note Important -Before running Sync To/From, make sure the CloudShell resource's structure does not include blades or ports that don't exist in the device. -::: -#### Sync From Device for existing resources - -This section explains how to update the resource properties stored in **Resource Manager Client** with the current device settings. - -**To update the resource properties stored in the Resource Manager with the current device settings:** - -1. Right-click the switch from the **Resource Explorer** tree and select **Configuration**. - -2. To avoid affecting sandboxes that are using this resource, in the **Internal Resources** pane, right-click the resource and select **Exclude** from the context menu. -3. Click the **Sync From Device** button at the bottom. - -4. When the Sync From Device process completes, in the **Internal Resources** pane, right-click the sub-resource and select **Include** from the context menu. - -#### Sync To Device for existing resources - -**To override device settings with the current state of the device as documented in Resource Manager Client:** - -1. Right-click the switch from the **Resource Explorer** tree and select **Configuration** from the context menu. -2. Click the **Sync To Device** button at the bottom. - - The L1 switch's attributes and mappings are updated according to the new data. - -:::note -To change the values of specific attributes on the physical device, in the resource's **Settings** tab, edit the attribute values and click **Activate**. -::: \ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/_category_.json b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/_category_.json deleted file mode 100644 index 33898dd999..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Resource Data Modeling (for 1st Gen Shells)", - "position": 1 -} diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/attributes.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/attributes.md deleted file mode 100644 index da3fd1ea40..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/attributes.md +++ /dev/null @@ -1,265 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Attributes - -Attributes allow you to add information about resources, Apps, and services. This may include information intended for the user and/or data to be used by the shell, such as the firmware version of the physical device or cloud provider to be used for App deployments. CloudShell components inherit the attributes defined in their family and model. For example, a router resource has the Port attribute defined in that router's model. -:::note -Components based on 2nd Gen Shells inherit their settings from their Shells. For additional information, see [Shells Overview](../../../../intro/features/shells). -::: -## Creating an Attribute - -**To create an attribute:** - -1. Click the **Admin** ribbon. -2. In the **Configuration** section, click **Attributes**. - - The attributes list is displayed. - -3. To add a new attribute, in the toolbar, click **Add**. - ![](/Images/Admin-Guide/Resource-Data-Modeling/Add-Attribute.png) -4. Enter the following information: - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AttributeDescription
Name - Enter the attribute name. The name field is mandatory. - -Attribute name must begin with a letter and can contain alpha numeric characters, spaces and underscores. -
Attribute Type - Select the attribute type from the drop down list. There are five types of attributes: **String**, **Password**, **Numeric**, **Boolean** (Yes/No), and **Lookup**. For additional information, see [Attribute Types and Values](./attributes.md#attribute-types-and-values) below. -
Read-onlySelect this check box to prevent this attribute from being edited by the user.
DescriptionEnter a description of the attribute. Add keywords to help identify the attribute and to use as search criteria.
PropertiesEnter the required property values. Specify attribute values and default values. Each attribute has its own set of attributes
- -5. Click **OK**. - -### Attribute Types and Values - -There are five types of attributes: Boolean, Numeric, Password, String and Lookup. - -The following table explains how to configure each attribute type: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Attribute TypeDescriptionValid Values
StringIn the **Default Value** field, specify the initial attribute value and clear the **Read-only** check box.alphanumeric characters
Password - In the **Default Value** field, specify the initial attribute value and clear the **Read-only** check box. - -Password text is displayed as hidden characters in functions. - alphanumeric characters
NumericIn the **Default Value** field, specify the initial attribute value and clear the **Read-only** check box.numbers
BooleanIn the **Default Value** field, specify the initial attribute value and clear the **Read-only** check box.True/False
Lookup - Click the **Add lookup value** icon to specify a list of values. - -To add lookup values, click the **Add lookup value** button in the **Properties** area. - -It is possible to add only **String** lookup values. -:::note -The first added value automatically becomes the default. To specify a different value as the default, click it and select **Set Default**. -![](/Images/Admin-Guide/Resource-Data-Modeling/AttribTypesandVal.png) -::: - list of values
-:::note -By default, all attributes are of type **String**. To change the type, select another type from the **Attribute Type** dropdown list. -::: - -## Defining attribute rules - -Attribute rules allow administrators to define different behaviors for attributes in the application. - -**To assign rules to an attribute**: - -1. Click the **Admin** ribbon. -2. In the **Configuration** section, click **Attributes**. - - The attributes list is displayed. - -3. Select an attribute from the list and click the toolbar's **Rules** button. - - The **Set Attribute Rules** dialog box is displayed. - -4. Select the required rules. - - ![](/Images/Admin-Guide/Resource-Data-Modeling/St_Atrbt_Rules.png) - -5. Click **OK**. - -The following table details the attribute rules: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
RuleDescription
Configuration - Displays the attribute in the resource's **Configuration** tab in **Resource Manager Client**, for resources associated with the family or model. - -Configuration attributes are visible only to admins. -
Setting - Enables any user that can view the resource to view and/or edit the attribute's value. In addition, attributes with this rule are displayed as filters in the search window in CloudShell Portal (both in the **Add Resources** pane and **Inventory** page). - -Displays the attribute in the Resource Manager Client's **Settings** tab and in CloudShell Portal. For example, in the Attribute drop down list of the Advanced Search (if the attribute has a value), and in the blueprint/sandbox diagram's **Attributes** pane for resources associated with the family or model. -
Displayed In DiagramDisplays the attribute on the resource box in the blueprint and sandbox diagrams in CloudShell Portal and in the domain tab's **Diagram** page in Resource Manager Client. By default only the resource name, address and model are visible in the diagram.
Link Configurations(Applies to L1 routes) Displays the attribute in the **Inventory** tab of the **Resource Connections** dialog box and in the **Connection Properties** side pane. This enables users to specify a specific attribute value (such as Speed) that will apply only to this specific route when it is connected in a sandbox. For details, see [Configure Physical Network Connectivity Requirements](../../../../portal/sandboxes/sandbox-workspace/add-connectivity/add-physical-network/config-physical-conn-req.md).
Variable Capability - Defines an attribute with a number of potential values which should be taken into account when searching for a possible route. - -The final value is ultimately set by the system. -
Constant CapabilityDefines an attribute that has a specific value which should be taken into account when searching for a possible route.
Displayed in route creation - Displays the attribute as an additional column in the **Resource Connections** dialog box. You can use **Displayed in route creation** attributes to ensure that all ports in a route have the same protocol type and speed. - -![](/Images/Admin-Guide/Resource-Data-Modeling/DefAttribRules_2.png) -
Available For Abstract ResourcesOnly attributes with the **Available For Abstract Resource** rule are available as possible requirements or additional information when creating or editing abstract resources.
Displayed In Search FiltersEnables CloudShell users to search CloudShell elements by specific attribute values.
Execution Server Selector - Enables admins to limit the execution of a resource or App to a specific execution server (or group of execution servers) instead of just using the first available execution server. For more information, see [Setting Up Execution Servers to Run Commands](../../../cloudshell-execution-server-configurations/setting-up-execution-servers-to-run-commands.md). - -:::note Notes -- If the Execution Server Selector attribute is missing from the execution server's details page, make sure the attribute has the **Execution Server Selector** rule attached to it, in Resource Manager Client's **Attributes** tab. -- Attributes with this rule are displayed in the Inventory dashboard's resource discovery form. -- This does not apply to job suites as they provide the option of associating specific execution servers to the execution of the job. For more information, see [Add jobs to an automation suite](../../../../portal/job-scheduling/manage-automation-suites/add-suites.md#add-jobs-to-an-automation-suite). -::: -
Monitor Modifications - Enables admins to monitor the value of a specific **Numeric** attribute/s in real time. - -This requires setting the `MonitorTaggedAttributes` configuration key. -
Admin OnlyEnables only CloudShell admins (domain admins and system admins) to edit the attribute's values in CloudShell Portal. The attribute is still visible to other users, but they may not be able to edit them.
Displayed in Insight - Enables displaying attributes in CloudShell Insight BI, enable filtering dashboards data according to attribute values. - -See [Displaying attributes in BI](./attributes.md#displaying-attributes-in-bi). -
- **Important:** The **Editable After Run** rules below apply to TestShell Studio and TestShell Runner but are associated to attributes in Resource Manager Client. Once configured, you must associate the attributes to test modules in either Studio or Runner, and enable the privileged user (depending on the rule that is used) to change the attribute's value, either from TestShell Studio or Resource Manager Client, after the test is executed. -
Editable After Run (System Administrators)Enables system administrators to edit the attribute's value.
Editable After Run (Everyone)Enables any TestShell user to edit the attribute's value.
- -### Displaying attributes in BI - -**To display attributes in CloudShell Insight BI, and to enable filtering of dashboards data according to attribute values:** - -1. In the **Set Attribute Rules** dialog box, select the rule **Displayed in Insight**. -:::note -Attribute named "model" will be automatically assigned with the rule **Displayed in Insight**. -::: -1. After setting the attribute rule in Resource Manager, the attribute will be added to the insight database (Table: ResourceAttributesValuesSummary). To use it in BI dashboards you need to rebuild the elastic cube, as explained in [Build the Insight ElastiCube](../../../../install-configure/cs-insight-bi/install-insight/insight-configuration/build-elasticube.md). -:::tip -For performance reasons, the Insight database adds new attributes once every 24 hours, so you need to wait 24 hours before completing the next steps -::: -## Related Topics - -- [Associating an attribute to a family or model](./defining-the-resource-data-model.md#associating-an-attribute-to-a-family-or-model) -- [Restricting values for an associated attribute](./defining-the-resource-data-model.md#restricting-values-for-an-associated-attribute) -- [Configuring attribute inheritance settings](./defining-the-resource-data-model.md#configuring-attribute-inheritance-settings) -- [Configuring associated attribute rules](./defining-the-resource-data-model.md#configuring-associated-attribute-rules) diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/defining-the-resource-data-model.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/defining-the-resource-data-model.md deleted file mode 100644 index 9c6121d86d..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/defining-the-resource-data-model.md +++ /dev/null @@ -1,294 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Defining the Resource Data Model -:::important -This article only applies to resources based on 1st Gen shells. While CloudShell supports 1st Gen shells, we recommend using 2nd Gen shells, which offer enhanced shell management capabilities. For details, see [Shells Overview](../../../../intro/features/shells.md). -::: -## Introduction to data modeling - -Every resource in the resource repository inherits a collection of properties and behaviors from the data model on which it is based. - -For example, the resource data model describes which attributes and drivers to associate with each type of resource. Initial, default and runtime attribute values are determined by the parent family and model. - -Even if you choose to set up the resource data model and populate the resource repository automatically, it's important to understand the process in case you choose to customize the default settings and values. If you assign new attributes or modify the attribute values of a resource family or model, the updated properties will be applied to both new and existing resources. - -Defining the resource data model affects the whole system, including how resources are searched for, how abstract resources are created, how they are saved in the database and more. - -The data model and attributes should be standardized across the company therefore should get a proper design and review procedure prior to deployment. - -There are two ways to define the resource data model: importing or manually creating them. In practice, defining the data model usually requires a mix of both methods. - -Importing data modeling populates Resource Manager with pre-defined resource families, models and structures. You can import updated definitions by launching the configuration wizard, or by importing xml configuration files via the Resource Families tree. For additional information, see [Importing/Exporting Resource Family Updates](../../../../admin/setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/importingexporting-resource-family-updates.md). - -You can use these configuration files to add new resource families, associated models, attributes and their complete structure, or to update existing family and model definitions for the current resource structure. - -Importing data modeling is a good starting point for setting up your resource data model, as it sets up common resource data models and configurations. - -However, it was not designed to cover every possible device brand and version. If you need additional resource data models, you can add them manually. You may want to customize the default properties for imported resource families and models. The available options are extensive. - -When you add a new resource family manually, in addition to defining its properties, you'll need to add associated models and structure manually. You can add new resource models to an existing resource family, or to one that you create. - -### Steps to defining your data model - -1. [Creating a resource family](../../../../admin/setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/defining-the-resource-data-model.md#creating-a-resource-family) -2. [Creating a resource model](../../../../admin/setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/defining-the-resource-data-model.md#creating-a-resource-model) -3. [Associating a driver to a resource model](../../../../admin/setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/defining-the-resource-data-model.md#associating-a-driver-to-a-resource-model) -4. [Associating an attribute to a family or model](../../../../admin/setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/defining-the-resource-data-model.md#associating-an-attribute-to-a-family-or-model) -5. [Define the resource structure](../../../../admin/setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/defining-the-resource-data-model.md#define-the-resource-structure) - -## Creating a resource family - -1. Click the **Admin** ribbon. -2. In the **Configuration** section, click **Resource Families**. - - The **Resource Families** explorer is displayed. - -3. Right-click the root and select **New \> Resource Family**. - - ![](/Images/Admin-Guide/Resource-Data-Modeling/New-Resource-Family.png) - -:::note -The **Name** field is mandatory. The **Description** field is optional. Resource family names can include any combination of alpha numeric characters, including spaces, hyphens, periods, pipes, and square brackets. -::: -4. Click the **Image** button and select **Set Image** to browse for an icon for the new resource family. - - The icon will be displayed on the resource, Execution instance diagram, and Lab Monitor, for every family resource. The maximum allowed image size is 240 KB. It is recommended to use 32x32 pixel icons. - :::tip - It is recommended to add the relevant images to your data model so that users creating complex blueprints in CloudShell Portal will easily identify the resources. - ::: -5. Select the required properties for resources of this family: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
ConnectableWhen selected, resources from this family can be connected to other resources. For example, a traffic generator port is usually connectable, while the parent chassis and blades are not
Locked By Default - When selected, resources from this family are unshared by default, and therefore cannot be used in different sandboxes at the same time. - -For example, you can choose to share a server resource to allow it to serve multiple sandboxes at the same time, while a port is typically used exclusively and therefore should be locked by default. -:::note -To override the setting for a specific resource, edit the resource's default share level in the **Inventory** dashboard. For more details, see [Editing Resources from the Inventory Dashboard](../../../../portal/inventory/managing-resources/editing-resources-from-inventory-dashboard.md). -::: -
Acts As Group - Tells CloudShell to reserve all sub-resources of a resource whose family is defined to act as a group, along with the resource itself. For example, when attempting to reserve a port within a blade that is defined to act as a group, the blade resource and all the blade’s ports will be reserved as well. - -This option is typically used to create a pair of neighboring ports. -:::note -**Acts As Group** is only defined when creating a new family. -::: -
Admin Only - Hides this family's resources from all non-admin users. Admins can change this setting for a resource in CloudShell Portal - see [Editing Resources from the Inventory Dashboard](../../../../portal/inventory/managing-resources/editing-resources-from-inventory-dashboard.md). -:::note -You can only define a sub-resource as admin only, if the root family was defined as admin only. -::: -
SearchableDisplays this family in advanced resource search results.
Service Template - If you are creating a family for services or apps, select the type of service that will be included in this category. Select the **Service Template** check box. From the **Type** drop-down list that is displayed, select the type of service: - -- **Regular**: This is a regular service, not an app -- **Deployment**: Relevant for apps. This service deploys the app's virtual machine on the selected cloud provider. -- **Installation**: Relevant for apps. This service installs the application on the virtual machine. -- **Orchestration**: Relevant for apps. This is a built-in service that manages the execution of the app's services. Contact support before working with this type of service. -
Type - The **Type** check box enables you to classify resources within this family into a category to help end-users search for this resource in the CloudShell Portal. - -The categories are: - -- **Resource** -- **Application** -
Allow Remote Connection - Enables users to remotely connect to resources of this family from the sandbox and the **Inventory** dashboard. The option is enabled by default. -:::note -When importing packages into CloudShell or upgrading from CloudShell 8.0 or earlier, the option is enabled by default for root resource families only. To enable for sub-resource families, select the check box in the family's **Parameters** page. -::: -
- -6. Click **OK**. - - The new resource family is added to the **Resource Families** explorer. - - -## Creating a resource model - -1. Click the **Admin** ribbon. -2. In the **Configuration** section, click **Resource Families**. -3. In the **Resource Families** explorer, select the relevant family. -4. Right-click the family name and select **Add \> New \> Resource Model**. - ![](/Images/Admin-Guide/Resource-Data-Modeling/Resource-Model.png) -5. Enter a **Name** and optionally enter a **Description** for your model. - :::tip - It is recommended to start with the device vendor and complete with the device model - ::: -6. Click the **Image** button and browse for an icon to represent the model. The maximum allowed image size is 240 KB. It is recommended to use 32x32 pixel icons. - :::tip - It is recommended to add the relevant images to your data model so that users creating complex blueprints in CloudShell Portal, will easily identify the resources. - ::: -7. Click **OK**. - - The new model is added under the relevant family. - - -## Associating a driver to a resource model -:::warning Important -The **Drivers** management page is only visible if you set the HideDriversTabInManage key. This tab is only relevant when developing 1st Gen Shells. For details, see [Customer Configuration Keys Repository](../../cloudshell-configuration-options/customer-configuration-keys-repository/general.md#show-the-drivers-management-page). -::: -This procedure explains how to associate a driver that exists in CloudShell to a resource model. Drivers provide commands that can be run on resources. - -Drivers are added to CloudShell in the CloudShell Portal's **Manage** dashboard, as explained in [Adding drivers](../../../cloudshell-manage-dashboard/managing-automation/managing-drivers.md#adding-drivers). - -**To associate a driver to a resource model:** - -1. Click the **Admin** ribbon. -2. In the **Configuration** section, click **Resource Families**. -3. In the **Resource Families** explorer, select the relevant resource model. - - The resource model's **Parameters** page tab is displayed. - -4. In the **Drivers** sub-tab, click **Add/Remove From Bank**. - - The **Select Drivers** dialog box is displayed. - -5. From the **Available Drivers** pane, select the driver you want to associate and click ![](/Images/Admin-Guide/Resource-Data-Modeling/RightArrow_45x30.png). -6. Click **OK**. -7. Optionally, select the **Supports Concurrent Commands** check box to enable multiple commands to run on the model's resources at the same time. -:::note -To use this driver, you will need to associate it to the resource(s) you create in the **Resource Explorer**. You can also associate a driver to a resource model in the **Manage** dashboard. For additional information, see [Editing drivers](../../../../admin/cloudshell-manage-dashboard/managing-automation/managing-drivers.md#editing-drivers). -::: -## Associating an attribute to a family or model - -For information on how to create attributes, see [Attributes](../../../../admin/setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/attributes.md). - -**To associate an attribute with a resource family or model:** - -1. In the **Resource Families** explorer, select the required family/model. - - The **Parameters** pane is displayed. - -2. In the **Parameters** pane, in the **Attributes** tab, click **Add/Remove From Bank**. -3. In the **Resource Family Attributes** window, in the **Available Attributes** pane, select the required attributes. - 1. To add an attribute, in the **Available Attributes** pane, click ![](/Images/Admin-Guide/Resource-Data-Modeling/RightArrow_45x30.png). - 2. To remove attributes, in the **Selected Attributes** pane, click ![](/Images/Admin-Guide/Resource-Data-Modeling/LeftArrow_43x28.png). -4. Click **OK**. -:::note -If you don't see the attribute in the resource's **Configuration/Settings** tabs, make sure that the attribute has the **Configuration/Settings** rules selected. -::: -## Configuring associated attribute rules - -After associating an attribute with a family or model, you can modify the rules associated with that instance of the attribute. The settings that you specify for an attribute instance will affect all child resources of the selected family or model, but will not affect the attribute's source settings. - -**To edit attribute rules for an attribute instance:** - -1. Click the **Admin** tab's **Resource Families** icon to open the **Resource Families** explorer. -2. Select a resource family or model from the **Resource Families** tree. Any attributes associated with the selected family or model will be displayed in the **Attributes** pane on the right. -3. Select the attribute that you wish to configure, and click the **Edit Rules** button. - -**To edit rules for an attribute that is associated with a resource family:** - -1. Select a resource family and click the toolbar's **Edit Rules** button. - - The Attributes **Rules** window contains three tabs: **Attributes Details**, **Value Constraints**, and **Inheritance Rules**. - -### Setting new default value for an attribute instance - -**To modify the attribute's default value:** - -1. Click the **Attribute Details** tab. - - The attribute name, type, and description are global settings and cannot be changed. - -### Restricting values for an associated attribute - -**To define a set of valid attribute values for this specific family or model:** - -1. Click the **Value Constraints** tab. By default, no constraints are set -2. To add constraints, check the **Restricted Values** option. - 1. For **String** or **Numeric** type attributes, enter the list of valid values for the attribute instance, separated by a comma - 2. For **Lookup** type attributes, check each value that you wish to associate with the attribute -:::note -Value constraints cannot be set for **Password** or **Boolean** type attributes. -::: -### Configuring attribute inheritance settings -:::note Important -The attribute inheritance feature will be deprecated in an upcoming release. Please do not use this setting.For additional information, contact [Quali Support](https://register.quali.com/). -::: -**To specify inheritance settings for this instance of the attribute:** - -1. Click the **Inheritance Rules** tab. -2. Select **Default** rule: Not inherited to disable inheritance. - In this case, the attribute will apply to the selected family or model, but not to any resources of this type. -3. Select **Not overridable** to enable inheritance but to disable modifications to the attribute settings. - This attribute will be added to any child resources for the selected family or model with the current values and rules -4. Select **Inherited**, **overridable** to enable inheritance and property modifications. - - Child resources of the selected family or model can modify attribute values and settings. - :::note - Attributes inherited by a child resource cannot be removed from a family or model. You can however modify the default and restricted values of inherited attributes in a child resource. If you choose to modify the default or restricted values of an inherited attribute, the inheritance connection between the child resource and the parent family or model will be lost. Future changes to the family will no longer automatically apply to the modified child. Inherited attribute values that have been modified are marked with an asterisk - ::: - -## Duplicating an existing data model - -1. Click the **Admin** ribbon. -2. In the **Configuration** section, click **Resource Families**. - -**To duplicate an existing family along with the models included in it:** - -1. In the **Resource Families** tree, select the family you wish to duplicate. -2. Right-click the family name and select **Copy**. -3. Right-click the root of the **Resource Families** tree and select **Paste**. - -A new family and all its models is added to the **Resource Families** tree. - -**To duplicate a model:** - -1. In the **Resource Families** tree, select the model that you wish to duplicate. -2. Right-click the model name and select **Copy**. -3. Select the family of the model you just copied. -4. Right-click the family's name and select **Paste**. -:::note -You can only duplicate a model within the same family. -::: -A duplicate model, under a new name is added to the same family in the **Resource Families** tree. - -## Define the resource structure - -If the device you are modeling has sub-resources, such as ports or jacks, you can associate your resource model with the models of those sub-resources. This will enable you to add sub-resources, which use the associated models, to the actual resource you will create. For more information, see [Defining the Resource Structure](../../../../admin/setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/defining-the-resource-structure.md). - -## Relate topics - -- [Importing/Exporting Resource Family Updates](../../../../admin/setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/importingexporting-resource-family-updates.md) diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/defining-the-resource-structure.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/defining-the-resource-structure.md deleted file mode 100644 index 7949f8abc3..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/defining-the-resource-structure.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -sidebar_position: 4 ---- - -# Defining the Resource Structure - -:::important -This article only applies to resources based on 1st Gen shells. While CloudShell supports 1st Gen shells, we recommend using 2nd Gen shells, which offer enhanced shell management capabilities. For details, see [Shells Overview](../../../../intro/features/shells.md). -::: - -If the device you are modeling has sub-resources, such as ports or jacks, you can associate the resource model of the device with the models of its sub-resources. This enables you to add sub-resources that are based on the associated models to the resource you are creating. - -The resource structure is created automatically for any imported resource definitions. -:::note -The **AutoLoad** process enables you to quickly create or update the internal resource structure of a resource to that of the physical device, For more information, see [Inventory Drivers and Utilities](../inventory-drivers-and-utilities.md). -::: -**To define the resource model structure**: - -1. Click the Admin tab's **Resource Structure** icon to open **Resource Structure**. - ![](/Images/Admin-Guide/Resource-Data-Modeling/DefineReStruct.png) - - The **Resource Structure** consists of two panes. - - ![](/Images/Admin-Guide/Resource-Data-Modeling/DefineReStruct_1.png) - - The left pane displays the current data model hierarchy. - - The right pane available models for the selected resource family. - -2. Choose the relevant family from the left panel and mark the model you would like to build. -3. Select any models that you wish to add to the resource structure and click **Add**. - :::important Example structure: - - OnPath Switch 3912 (Part of L1 Switch Family) - S-Blade (Part of L1 switch blade family) - Port S-Blade (Part of L1 switch port family) - ::: \ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/importingexporting-resource-family-updates.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/importingexporting-resource-family-updates.md deleted file mode 100644 index 4dd1ce0b0f..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/importingexporting-resource-family-updates.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -sidebar_position: 3 ---- - -# Importing/Exporting Resource Family Updates -:::important -This article only applies to resources based on 1st Gen shells. While CloudShell supports 1st Gen shells, we recommend using 2nd Gen shells, which offer enhanced shell management capabilities. For details, see [Shells Overview](../../../../intro/features/shells.md). -::: -## Importing resource family updates - -Changing and updating families has a significant impact on the QualiServer and should be done with care. - -The system.xml configuration file contains updates to the default families, models and attributes. - -**To update the Resource Families:** - -1. In the Admin ribbon, click **Resource Families**. - - The **Resource Families** explorer is displayed. - - -2. Right-click the **Resource Families** root and select **Import** from the context menu. - - ![](/Images/Admin-Guide/Resource-Data-Modeling/ImportResFamilies.png) - - -3. Navigate to the Resource Management Additional files > **Configuration** folder, select the XML file containing the resource family updates, and click **Open**. - :::note Note about attributes referenced in the XML: - Referencing attributes whose names contain unsupported characters may cause unexpected behavior. For details about attribute names, see [Creating an Attribute](./attributes.md#creating-an-attribute). - ::: -4. Repeat the process to import updated Resource Family samples, L1 switches configuration files, and traffic family libraries. - -## Exporting resource families - -You can save a resource family's structure to an XML file that can be later used to update the settings of resource families, models and attributes. - -**To export a resource family structure**: - -1. Right-click the **Resource Families** root folder and select **Export** from the context menu. - - ![](/Images/Admin-Guide/Resource-Data-Modeling/ImportResFamilies_1.png) - - -2. In the **Export Configuration** dialog, specify the file name and location. -3. Click **Save**. - - The updates are saved to the XML file. diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/index.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/index.md deleted file mode 100644 index 548bf065ed..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/index.md +++ /dev/null @@ -1,27 +0,0 @@ -# Resource Data Modeling (for 1st Gen Shells) - -:::info -This article only applies to resources based on 1st Gen shells. While CloudShell supports 1st Gen shells, we recommend using 2nd Gen shells, which offer enhanced shell management capabilities. For details, see [Shells Overview](../../../../intro/features/shells.md). -::: - -Every resource in the resource repository inherits a collection of properties and behaviors from the data model on which it is based. - -For example, the resource data model describes which attributes and drivers to associate with each type of resource. Initial, default and runtime attribute values are determined by the parent family and model. - -Even if you choose to set up the resource data model and populate the resource repository automatically, it's important to understand the process in case you choose to customize the default settings and values. If you assign new attributes or modify the attribute values of a resource family or model, the updated properties will be applied to both new and existing resources. - -Defining the resource data model affects the whole system, including how resources are searched for, how abstract resources are created, how they're saved in the database and more. - -The resource data model and attributes should be standardized across the company therefore should get a proper design and review procedure prior to deployment. - -There are two ways to define the resource data model: importing or manually creating them. In practice, defining the data model usually requires a mix of both methods. - -Importing data modeling populates Resource Manager with pre-defined resource families, models and structures. You can import updated definitions by launching the configuration wizard, or by importing xml configuration files via the Resource Families tree. For additional information, see [Importing/Exporting Resource Family Updates](./importingexporting-resource-family-updates.md). - -You can use these configuration files to add new resource families, associated models, attributes and their complete structure, or to update existing family and model definitions for the current resource structure. - -Importing data modeling is a good starting point for setting up your resource data model, as it sets up common resource data models and configurations. - -However, it wasn't designed to cover every possible device brand and version. If you need additional resource data models, you can add them manually. You may want to customize the default properties for imported resource families and models. The available options are extensive. - -When you add a new resource family manually, in addition to defining its properties, you'll need to add associated models and structure manually. You can add new resource models to an existing resource family, or to one that you create. \ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/viewing-resource-live-status.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/viewing-resource-live-status.md deleted file mode 100644 index 317cbd9986..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/inventory-operations/viewing-resource-live-status.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -sidebar_position: 5 ---- - -# Viewing Resource Live Status - -In the **Inventory** dashboard, you can see the live status of resources that are in active sandboxes. The sandbox live status icon displays additional information about the current sandbox. The live status indication is activated via API. The ![](/Images/CloudShell-Portal/Lab-Management/Reservations/In_a_ReservationIcon.png) icon indicates that the resource is part of an active sandbox. diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/jira-integration-with-cloudshell.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/jira-integration-with-cloudshell.md deleted file mode 100644 index d5eebd7657..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/jira-integration-with-cloudshell.md +++ /dev/null @@ -1,108 +0,0 @@ ---- -sidebar_position: 8 ---- - -# JIRA Integration with CloudShell - -*To purchase this feature, please contact your Account Manager. For assistance with first time configuration, please contact your Technical Account Manager* - -CloudShell integration with JIRA enables users to leverage JIRA defect management to manage failed CloudShell tests by associating Jira issues with specific CloudShell test executions. - -To illustrate how this feature can be used, consider the following scenario: A tester investigates an automation suite failure, discovers the originating test (or tests) and opens a JIRA bug to pass to the company's developers so they can fix the problem. Once the bug is resolved, the tester manually reruns the failed job or suite to make sure the bug is fixed. -:::note -This feature is supported for JIRA version 7.4.0 and above. -::: - -## JIRA Integration with CloudShell - -**To integrate CloudShell with JIRA:** - -1. Open the `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config` file. -2. Add the following keys, and set each key's value accordingly: - - - - - - - - - - - - - - - - - - - - - - - - -
KeyDescription
`` - JIRA server base URL. Make sure you include "http://” or https://, as appropriate. - -For example, http://jira-srv:8080/jira. -
`` - JIRA admin user that is authorized to create and modify issues in all related projects. CloudShell will use this user to automatically authenticate CloudShell users when they create or associate JIRA issues to a test execution. -:::note -This user is only used for the authentication. The reporter of the bug in JIRA will be the logged in CloudShell user who initiated the request. -::: -
``JIRA user's password
- `` - -`` - - Jira project and issue cache timeout periods, in seconds. Default is 30 minutes. - -When integrating CloudShell with a new Jira project or issue type, the Jira [project or issue] cache on the Quali Server needs to be restarted. This can be done by manually restarting the **Quali Server** service or setting a shorter cache timeout period using these keys. - -To disable the cache, set the appropriate key's value to "0". -
- - For example: - - ```javascript - - - - - - ``` - -3. Restart the **Quali Server** service. - -## Additional Requirements - -- The CloudShell domain in which the test is executed must have the same name as the JIRA project ID. -- The CloudShell user must have a corresponding Jira user that has access to the Jira project defined by the CloudShell domain. -- A ‘Bug' issue type must include the "Environment" field and be associated with the JIRA project. -- CloudShell Server IP address must be white listed in Jira configuration. -- Adjustments of CloudShell to your JIRA environment - to be performed by a Quali Customer Success representative. - -## Troubleshooting - -### Setting the logging level for communication between CloudShell and Jira - -CloudShell logs errors related to communication with Jira out of the box. However, in some cases, you may need to drill down into the communication level. - -**To change the logging level to debug:** - -1. On the Quali Server, go to `C:\Program Files (x86)\QualiSystems\CloudShell\Server`. -2. Edit the `log4net.config` file. -3. Search for `` line that follows, change "ERROR" to "DEBUG". - -5. Save the file and restart the **Quali Server** service. - - -## Related Topics - -- [Associating JIRA Issues with Test Executions](../../portal/job-scheduling/associate-jira-issues-with-test-executions.md) diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/setting-up-license-pools/_category_.json b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/setting-up-license-pools/_category_.json deleted file mode 100644 index d79aa6f346..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/setting-up-license-pools/_category_.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "label": "Setting Up License Pools", - "position": 3, - "link": { - "type": "generated-index", - "description": "The number of concurrent sandboxes in the system is managed using License Pools. A license pool defines the maximum number of active concurrent sandboxes that can be created by users. License pools are defined by the system administrator and can be assigned to a single or multiple domains." - } -} diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/setting-up-license-pools/using-license-pools.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/setting-up-license-pools/using-license-pools.md deleted file mode 100644 index 46c7d8dde2..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/setting-up-license-pools/using-license-pools.md +++ /dev/null @@ -1,95 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Using License Pools - -## About License Pools - -A license pool defines the maximum number of active concurrent sandboxes that can be created by users and domain administrators in the domain. License pools are defined by the system administrator and the same pool can be assigned to multiple domains. The domain's license pool limit does not apply to the system administrator. - -The License Pools in the system are: - -| Pool Type | Description | -| --- | --- | -| Global License Pool | Holds the total amount of concurrent active sandboxes allowed in the system. The size of the Global License Pool cannot be modified. | -| License Pool | Holds the number of concurrent sandboxes that can be created in the domain that is using this pool. | -:::note -The Global License Pool is added, by default, to all new domains. When migrating from an earlier version, the global license pool is added to all domains. -::: -A License pool can be assigned to multiple domains. - -## Managing License Pools -:::note -Every domain must have a license pool. -::: -### Creating license pools - -**To create a new license pool:** - -1. In the **Resource Manager**, click the **Admin** tab and then click ![](/Images/Admin-Guide/Setting-Up-CloudShell/Setting-up_24x34.png) **License Pools**. - - The **License Pools** page is displayed, listing the maximum number of licenses that are available and the number of used licenses. - -2. Click **New**. -3. Enter the required information in the following fields: - - | Field | Required | Description | - | --- | --- | --- | - | Name | Mandatory | The name of the license pool. | - | Description | Optional | A meaningful description of the license pool. | - | Number of Licenses | Mandatory | The number of permitted concurrent sandboxes. The value must be at least 1 and the highest amount is the number that is set by the concurrent sandbox license.
**Note:** The permitted number of sandboxes is the license pool limit plus 1. For example, if the license pool is set to 3 licenses, the domain's users can have up to 3 concurrent sandboxes. | - | Domains | Optional | Licenses can be assigned from the pool to, or removed from, existing domains. Multiple selections are supported. A license pool can be assigned to a single domain or multiple domains. You can also assign a pool to a domain from the **Properties** page of the selected domain. | - - -4. Click **OK**. - - The details of the license pool are displayed in the **License Pools** page and the number of used licenses is updated accordingly. - - -### Deleting license pools - -Before deleting a license pool, make sure it is not assigned to any domains. - -**To delete a license pool:** - -1. In the **License Pools** page, select the required license pool. -2. Click **Delete**. - - A confirmation message informs you that the specified license pool will be deleted and that domains that used that license pool will now be linked to the global pool. - -3. Click **OK**. - - The details in the **License Pools** page and the number of used licenses is updated accordingly. - - -### Editing license pools - -**To edit the details of a license pool:** - -1. In the **License Pools** page, double click the license pool or select it and click **Edit**. -2. Edit the required fields in the **New License Pool** window. -3. Click **OK**. - -## Validating Licenses - -A license pool is a subset of the global license pool. The validation is done both for license pool size and global pool size. - -The size of the license pool is strictly maintained. When the license pool limit is reached, any new sandbox is rejected. - -### User Notifications - -When the permitted concurrent active sandboxes amount is exceeded, the following notifications are issued: - - - - - - - - - - - - -
**When the domain license pool limit is reached**The license sandbox owner is notified by way of a warning message. An external user receives a general message. Notification email messages are also sent automatically to the user, domain administrator and system administrator.
**When using the global license pool and the maximum number of licenses is reached**If the sandbox owner is a domain administrator or system administrator, he is notified by a warning message popup. In addition a notification email is sent automatically to the system administrator.
diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/source-control-using-local-tests-in-automation-suites/_category_.json b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/source-control-using-local-tests-in-automation-suites/_category_.json deleted file mode 100644 index 5e913cda06..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/source-control-using-local-tests-in-automation-suites/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Source Control: Using Local Tests in Automation Suites", - "position": 6 -} diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/source-control-using-local-tests-in-automation-suites/enabling-automation-suites-to-use-local-tests.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/source-control-using-local-tests-in-automation-suites/enabling-automation-suites-to-use-local-tests.md deleted file mode 100644 index 01363c42fe..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/source-control-using-local-tests-in-automation-suites/enabling-automation-suites-to-use-local-tests.md +++ /dev/null @@ -1,300 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Enabling Automation Suites to Use Local Tests - -As administrator, you can enable test automation developers to add tests from their local tests folder to jobs in their automation suites. This requires a source control system that will manage the TestShell tests and make them available to CloudShell. To learn how to do this, follow the configuration steps below, or contact your Technical Account Manager. - -By default, when creating new CloudShell automation suites, the user can only select shared tests (shared tests and assets are stored in the MS SQL database). - -First, let’s try to understand the general flow for working with local tests: - -1. Each test developer creates and saves tests on their local machine. The developer's local tests folder should be mapped to a source control repository, which stores all the tests. -2. A test developer creates or updates a test and pushes the updates to the source control. -3. An admin can then execute an update process to make sure that all the execution server have the latest version of the tests, and that CloudShell Portal displays the latest version as well (changes might include new tests, new functions, new inputs, etc). - -Now that we understand the general concept, let's drill down to the technical part: - -- The **Job Scheduling** dashboard's **Update local tests** button (available for admins only) runs a batch script file. This file pulls the latest version from the repository to the Quali Server machine (the files on the Quali Server are used for listing only) and allows CloudShell Portal to show which tests exists/get inputs/etc. - - :::warning Important - - **Update local tests** applies to ALL execution servers in your CloudShell deployment. As such, when running **Update local tests**, execution servers that do not have a batch file configured will go into "Waiting for update” mode and become excluded. For details on how to add a passing script, see [Batch scripts](#batch-scripts). - - **Update local tests** only applies to included execution servers. Therefore, if your execution servers are excluded, ensure that the batch script passes with "exit code 0" and include them, as explained in [Including/excluding execution servers](../../cloudshell-manage-dashboard/managing-execution-servers/execution-servers-servers-page.md#includingexcluding-execution-servers). - ::: -- Once the batch file completes: - - For each execution server, if the execution server state is idle (not running any test), the execution server launches a batch file that pulls the latest test versions to the execution server. If the execution server is not idle, the batch file will run when it completes its current executions. - - During this update, the execution server does not run any new job until the batch file ends successfully. - -This diagram illustrates the full process: - -![](/Images/Admin-Guide/Setting-Up-CloudShell/UpdateLocalTestsFlow.png) -:::note -This only applies to tests residing in the source control repository, so before you start, make sure the local tests folder on the Quali Server is on source control. -::: -For this to work, you need to do the following: - -1. [Configure CloudShell Portal](#configure-cloudshell-portal): Enable CloudShell Portal to browse the local tests folder -2. [Configure Quali Server](#configure-quali-server): Set the local tests folder and batch script that will retrieve the local tests from the source control repository -3. [Configure each Execution Server that will support local tests](#configure-each-execution-server-that-will-support-local-tests): Set the folder that will store the tests from the source control repository -4. [Enable the use of Local Assets](#enable-the-use-of-local-assets): Enable the tests to use local assets if any tests require the use of local TestShell assets - - Once enabled, CloudShell admins can run the **Update Local Tests** batch script from the **Job Scheduling** dashboard to retrieve the local tests from the source control repository. - - -## Configure CloudShell Portal - -On the CloudShell Portal, enable admins to browse the local tests folder and set any environment parameters you’d like to pass to the **Update Local Tests** process. - -**To configure CloudShell Portal:** - -1. Open the Portal installation directory (`C:\Program Files (x86)\QualiSystems\CloudShell\Portal` by default) and edit the `customer.config` file. -2. Add the following key: - - `` - -3. To insert environment variables into the Update local tests process, add the following key and set the environment parameters, separated by commas: - - For example: - - `` - - Whenever the admin runs the **Update local tests** process, the **User Blueprint Parameters** page will be displayed, prompting the admin to set the custom parameters to be used by the Upgrade local tests process. - - ![](/Images/Admin-Guide/Setting-Up-CloudShell/JobSchedulingUpdateLocalTests.png) - :::note - Values of arguments that have the word "password” in the name are displayed as asterisks. - ::: -4. Restart the **CloudShell Portal IIS** service. - -## Configure Quali Server - -On the Quali Server machine, the automation developer needs to add the new test from the repository to the Quali Server. - -To configure Quali Server: - -1. On the Quali Server machine, open the Server installation directory (`C:\Program Files (x86)\QualiSystems\CloudShell\Server` by default) and edit the `customer.config` file. -2. Copy the following keys and specify the values: - - `` - - `` - - `` - - - - - - - - - - - - - - - - -
`TestShellServerLocalTestsPath` - Set the local tests folder on the Quali Server that contains the tests to be used. The contents of this folder will be displayed when the test automation developer browses local tests in the **Job Scheduling** dashboard. - -For example: - -`` - -The folder must be different from the one in use for saved Studio tests (`~\Documents\TestShell Files\Tests` by default). -
`LocalEnvironmentGetBatchFilePath` - Set the path to the batch script that will update the tests from source control when the admin initiates the **Update local tests** process. For details, see [Batch scripts](#batch-scripts). - -*Although the Quali Server doesn't run the tests, it needs to expose the latest test versions when adding tests to the automation suite.* - -For example: - -`` -
`LocalEnvironmentGetBatchFileOutPutPath` - Set the path to the file that will contain the log files and outputs of the **Update local tests** process. CloudShell will overwrite the log file every time the admin initiates the process. - -For example: - -`` -
- -3. Save and close the file. - -4. Restart the **Quali Server** service. - - -## Configure each Execution Server that will support local tests - -On each execution server machine, the developer/admin adds the new test from the repository to the execution server. -:::important -Prior to running the **Update local tests** process, make sure every execution server has a batch file in the specified folder, as the update process will run on all the execution servers in CloudShell and exclude execution servers with a bad or missing batch file. For details, see [Batch scripts](#batch-scripts). -::: -**To configure an execution server:** - -1. On each execution server, open the execution server's installation folder (`C:\Program Files (x86)\QualiSystems\TestShell\ExecutionServer` by default) and edit the `customer.config` file. -2. Copy the following keys and specify the values: - - `` - - `` - - `` - - `` - - - - - - - - - - - - - - - - - - - - -
`TestShellFilesPath` - Set the path to the folder that will contain the local tests retrieved from the source control repository - -(`~\Documents\TestShell Files\Tests` by default). - -For example: - -`` -:::important -Do not include the local tests folder. For example, if the local tests folder is `~\Documents\TestShell Files\Tests`, specify `~\Documents\TestShell Files`. -::: -
`LocalQsAppDataPath` - Set the path to your QualiSystems `AppData` folder (`C:\ProgramData\QualiSystems\WS_User\AppData` by default). - -For example: - -`` -
`LocalEnvironmentGetBatchFilePath` - Set the path to the batch file that will update the tests from source control during the **Update local tests** process. For details, see [Batch scripts](#batch-scripts). - -For example: - -`` -
`LocalEnvironmentGetBatchFileOutPutPath` - Set the path to the file that will contain the log files and outputs of the **Update local tests** process. CloudShell will overwrite the log file every time the admin initiates the process. - -For example: - -`` -
- -3. Save and close the file. -4. Restart the **TestShell Execution Server** service. - -## Enable the use of Local Assets - -Like tests, assets can be local or shared. By default, ‘local tests’ support the use of ‘shared assets’. However, support for local assets needs to be configured to allow local tests to use them. - -Local assets are composed of two files: the actual asset file that can be located anywhere on your computer, and a metadata file that points to the asset file. By default, the metadata files are located at `C:\ProgramData\QualiSystems\Resources`. - -This folder contains the assets' folder tree that can be seen in the **Asset** explorer in TestShell Studio. - -In order to use a local asset, the asset's metadata file AND the asset's actual file need to be in the same path on each appropriate execution server as they are on your local machine. -:::important -Perform the following procedure on all execution servers you plan on using for test execution. -::: -**To use assets in your execution servers:** - -1. In the folder `C:\TestShell Files`, create a new folder named: **Assets Manager**. -2. In the `Assets Manager` folder, create the following two folders: - - **Assets References**: Contains links that TestShell creates between assets and tests (i.e. which asset is being used by which tests) - - **Actual Files**: Contains the asset files - -3. Edit the `customer.config` file (`C:\Program Files (x86)\QualiSystems\TestShell\Studio` by default). -4. Add the following key: - - `` - -5. Update the source control with the `Asset Manager` folder content. - - Before importing a new asset into TestShell Studio, place the actual asset file (DLL\EXE) in the `Actual Files` directory and then import the new asset from TestShell Studio. - -6. Next, make sure the assets exist on each execution server. The asset folder path must be exactly the same as defined in the developer machine -7. On all execution servers, make sure the batch file retrieves the latest of the **Asset Manager** folder. - -For more information, contact you Customer Success representative. - -## Batch scripts -:::note -In the Server installation directory, there is a sub-folder called `Local Sync Batch Samples` where you can find a sample script for TFS. Do not point to this file as this is a sample folder that might be overwritten in future versions. -::: -- The script file can be a simple file like: - - `cd %LOCAL_TESTS_PATH%` - - `git pull https://%GIT_USER%:%GIT_PASSWORD%@github.com/%GIT_USER%/%GIT_REPO%` - - Where GIT_USER, GIT_PASSWORD and GIT_REPO are parameters defined in the `LocalEnvironmentUserParameters Portal` configuration key. - - -- It is possible to pass or fail the batch script with the following exit codes: - - **Pass**: - - `Exit 0` - - **Failed**: - - `Exit -1` - - -### Example for validating git pull and passing / failing based on ErrorLevel after git pull: - -`REM change directory to TEST path configured in customer.config` - -`cd %LOCAL_TESTS_PATH%` - -`REM going to the parent directory in order to perform git operations` - -`cd..` - -`REM Displaying input params from user (optional to use these params in git commands)` - -`echo param 1: %Param1%` - -`echo param 2: %Param2%` - -`REM: pulling updated code to Repo` - -`git pull` - -`REM validating error code of git pull command` - -`if %ERRORLEVEL% EQU 0 goto passed` - -`:passed` - -`REM command passed` - -`exit 0` - -`REM command failed` - -`exit -1` - -### Example for an Execution Server that is not running any git commands and just needs to pass to avoid being excluded: - -`exit 0` - -## Related Topics - -- [Job Scheduling Dashboard](../../../portal/job-scheduling/job-scheduling-dashboard.md) diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/source-control-using-local-tests-in-automation-suites/index.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/source-control-using-local-tests-in-automation-suites/index.md deleted file mode 100644 index c0c703bd72..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/source-control-using-local-tests-in-automation-suites/index.md +++ /dev/null @@ -1,11 +0,0 @@ -# Source Control: Using Local Tests in Automation Suites - -If you are working with local tests and assets, it is recommended to manage them through a source control solution, to help you track changes in your tests and resolve conflicts. - -As illustrated below, in a source controlled deployment, the TestShell Studio Clients push test updates and additions to the source control server, which synchronizes the Execution Servers and Quali Server with the latest updates, allowing you to use the latest test versions when running your tests and automation suites. - -![](/Images/Admin-Guide/Setting-Up-CloudShell/SourceControlArchitecture.png) - -- For local tests executed in TestShell Studio, Runner and Authoring, see [Setting Up Source Control for TestShell Tests](./setting-up-source-control-for-testshell-tests.md). -- For an end-to-end example explaining how to use GitLab source control to sync tests for **Job Scheduling** automation suites, see [TestShell Integration with GitLab](./testshell-integration-with-gitlab.md). -- For offline deployments, use an on-prem source control solution like GitLab, Apache Subversion or Microsoft Team Foundation Server. For details, see [TestShell Integration with GitLab](./testshell-integration-with-gitlab.md). \ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/source-control-using-local-tests-in-automation-suites/setting-up-source-control-for-testshell-tests.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/source-control-using-local-tests-in-automation-suites/setting-up-source-control-for-testshell-tests.md deleted file mode 100644 index 04fee4ca20..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/source-control-using-local-tests-in-automation-suites/setting-up-source-control-for-testshell-tests.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -sidebar_position: 3 ---- - -# Setting Up Source Control for TestShell Tests - -This article discusses the configuration steps for adding and managing tests using a source control solution. These procedures apply to tests executed by TestShell Studio and Runner. For executing local tests in Job Scheduling automation suites, see [Enabling Automation Suites to Use Local Tests](./enabling-automation-suites-to-use-local-tests.md). -:::note -The application is oblivious to source control, so all source control\-related actions including Commit, Get Latest and conflict management are handled in your source control solution. -::: -## Adding test folders to source control - -To manage your tests using a source control solution, add the folders of your local tests and dependencies as repositories. - -There are three TestShell elements you need to add to source control: - -- **Tests**: Your local tests and custom tools - - The default folder is `C:\Users\Administrator\Documents\TestShell Files`, and also includes custom tools. - -- **Assets**: Local dependencies and packages that are used by your tests. There is no centralized default folder for assets. - -- **Pointers**: .tsdll files that link each asset to the tests that use it. - - The default folder is `C:\ProgramData\QualiSystems\Resources` - -:::note -If you want to change the folder locations for the tests or assets folders, use the `TestShellServerLocalTestsPath` and `AssetsPath` keys. -::: -## Migrating existing assets to the designated Assets folder - -(Migration applies to existing customers only) As assets may be stored in different places, to add them to source control, you need to first copy the local assets to the source\-controlled folder, and redirect each local asset's path to this folder. - -**To migrate existing assets to the designated Assets folder:** - -1. Copy the local assets to the new folder. -2. In TestShell Studio, in the **Assets** explorer, double click each local asset and update the **Path** (Do not delete the asset's filename). -3. Save your changes. -4. Commit the updates to source control. - -## Using tests that are managed in source control - -This workflow outlines the basic process for adding, updating or using source\-controlled tests. The terminology may change, depending on the source control solution. - -1. Get latest version of the tests to ensure you are using the current version of the test and related files (If more people are working on the same repository). - -2. Add, update or run tests in TestShell. -3. If you added or updated a test, Add, Commit and Push the tests to source control. -:::tip -Make sure to include a meaningful description for each commit as it may be difficult to compare different versions of a test due to the complexity of the local test files. -::: \ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/source-control-using-local-tests-in-automation-suites/testshell-integration-with-gitlab.md b/versioned_docs/version-2023.3/admin/setting-up-cloudshell/source-control-using-local-tests-in-automation-suites/testshell-integration-with-gitlab.md deleted file mode 100644 index 6eb922e18f..0000000000 --- a/versioned_docs/version-2023.3/admin/setting-up-cloudshell/source-control-using-local-tests-in-automation-suites/testshell-integration-with-gitlab.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -sidebar_position: 1 ---- - -# TestShell Integration with GitLab - -This article guides you on how to configure GitLab as the source control solution for your local tests and assets for automation suites executed in the **Job Scheduling** dashboard. Since local tests are accessible only to the client on which they were created, using a source control solution, these tests can be shared with other clients as well. In this article we will focus on GitLab as the source control solution. For other solutions, see [Source Control: Using Local Tests in Automation Suites](../source-control-using-local-tests-in-automation-suites/index.md). - -This integration provides test users with the latest version of the desired test(s) and assets and also allows test developers to push updates to GitLab. In this process, you will link your CloudShell clients (CloudShell Portal, TestShell Studio and Runner) and Execution Server(s) to a specific GitLab repository, which will contain the tests and assets, and make them available to these clients. -:::note -For brevity, the terms "Portal”, "Studio” and "Runner” are used to denote "CloudShell Portal”, "TestShell Studio” and "TestShell Runner”, respectively. -::: -For this to work, you need to follow these basic steps: - -1. Consolidate the Tests and Assets folders under a single parent folder -2. Install GitLab server on a Linux machine to have a local GitLab repository server -3. Install Git on each TestShell machine to allow Git interaction -4. Add files from the base Studio machine: Add the Tests and Assets folders to create the repository -5. Clone the GitLab repository on each relevant client machine to create a local copy of the repository on each client (Studio, Runner and Portal) -6. Configure Quali Server: Set the local Tests and Assets folders and create a batch script that will pull the local tests from the GitLab repository -7. Configure Execution Servers to access the GitLab repository: Set the folder that will store the tests and assets, create a batch script that will pull the local tests from the GitLab repository - -**To set up GitLab source control for your tests:** - -1. On the base machine (where you will create the repository), create a folder that will contain the managed files. -2. Copy and place the Tests and Assets folders in this parent folder. The default paths are: - - - Assets – `C:\ProgramData\QualiSystems\Resources` - - - Tests – `C:\Users\\Documents\TestShell Files\Tests` - -3. On your Studio and Runner client machines, go to the `C:\Program Files (x86)\QualiSystems\TestShell\Studio\customer.config` file, and set the local Assets and parent folders (make sure the paths are accessible to all users): - - `` - - `` - -4. Install GitLab server on a Linux machine to allow you to have an on premise Git repository. - - You can download GitLab at [https://about.gitlab.com/](https://about.gitlab.com/). - -5. Log in to the GitLab portal and create a new Project. The project should have the same name as the Tests and Assets parent folder. - -6. Install Git on the Quali Server, and each appropriate Execution Server, Studio and Runner, machine to allow you to perform Git operations on any of the clients (Pull/Push). You can download git at [https://git-scm.com/downloads](https://git-scm.com/downloads). - - If you are not familiar with Git, please use this simplified commands manual [http://rogerdudler.github.io/git-guide/](http://rogerdudler.github.io/git-guide/). - -7. Add the Test and Assets parent folder from the base machine to the GitLab repository. You can use the manuals or review the sample here (the below commands upload the local Tests and Assets to the GitLab repository): - - ```javascript - C:\> cd c:\TestShell\TestEnv - C:\TestShell\TestEnv\> git init - C:\TestShell\TestEnv\> git remote add origin http:///root/.git - C:\TestShell\TestEnv\> git add . - C:\TestShell\TestEnv\> git commit -m "" - C:\TestShell\TestEnv\> git Push -u origin master - ``` - -8. Clone the GitLab repository on the relevant Studio, Runner and Execution Server machines so it will have a local copy of the Tests and Assets. - - ```javascript - C:\> cd c:\TestShell - C:\TestShell\> git clone http:///root/.git - ``` - - Note that you need to configure each machine to work with the parent folder path, as explained in the beginning of this procedure. - -9. [Configure Quali Server](./enabling-automation-suites-to-use-local-tests.md#configure-quali-server) to work with local tests and assets. - - This requires setting a batch file that automates the Git Pull request using the **Update Local Tests** process (executed from Portal’s **Job Scheduling** dashboard). You’re welcome to use the following code in the **Update Local Tests** batch file. - - ```javascript - cd %LOCAL_TESTS_PATH% - REM going to the parent directory - cd.. - git pull - ``` - - For details and additional batch script examples, see [Batch scripts](./enabling-automation-suites-to-use-local-tests.md#batch-scripts). - -10. To use source controlled tests in CloudShell Portal job suites, enable the relevant execution servers to access the repository, as explained in [Configure each Execution Server that will support local tests](./enabling-automation-suites-to-use-local-tests.md#configure-each-execution-server-that-will-support-local-tests). -11. To verify, update local files on each client, and make sure that client uses the updated tests. - - This concludes the integration process. - - Before running local tests in Studio or Runner, or in automation suites in Portal, CloudShell users will need to pull the latest local tests and assets from the GitLab repository. In Portal, this is done by running the **Update Local Tests** batch script in the **Job Scheduling** dashboard, and in Studio or Runner, by manually performing a pull request from the Tests and Assets parent folder. diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/_category_.json b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/_category_.json deleted file mode 100644 index c886c7f415..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Supported Cloud Providers in CloudShell", - "position": 6 -} diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/cloud-provider-2g-shells-features-and-capabilities.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/cloud-provider-2g-shells-features-and-capabilities.md deleted file mode 100644 index b7c7961f7f..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/cloud-provider-2g-shells-features-and-capabilities.md +++ /dev/null @@ -1,538 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Cloud Provider 2G Shells Features and Capabilities - -This article lists the enhancements and capabilities introduced with each release of our certified 2nd Gen cloud provider shells, as well as documentation references. -:::important -In addition to our certified cloud provider shells, we also have "community" grade cloud provider shells that were developed by our community's developers, including shells for Nutanix and Google Cloud Platform. Feel free to download them from [Quali Repositories](https://github.com/orgs/QualiSystems/discussions/categories/integrations). -::: -## VMware vCenter - -- Shell's community page - [VMware vCenter Cloud Provider Shell 2G](https://github.com/orgs/QualiSystems/discussions/1691). -- Shell's [README](https://github.com/QualiSystems/VMware-vCenter-Cloud-Provider-Shell-2G/blob/master__old_code/README.md). -:::note -vCenter 5.0.0 and above works only with CloudShell 2022.1 EA and above. -::: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ReleaseCapabilities added
6.0.2 - - **Forged Transmits** internal enhancements -
6.0.1 - - Added support for splitting VM UUIDs by ";" and "," in affinity rule commands -- Added automation process that creates affinity rule name if it is specified but not present -
6.0.0 - Optional port group attributes. To use these attributes, the CloudShell admin needs to manually add them to the VLAN service model in Resource Manager Client. For details, see [Configuring Services](../setting-up-cloudshell/inventory-operations/configuring-services.md). - -The new attributes are: - -- **Forged Transmits**: (Boolean) Enables to configure the port groups on the virtual switch to allow forged transmits. [VMware Docs](https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.security.doc/GUID-7DC6486F-5400-44DF-8A62-6273798A2F80.html) article. -- **Promiscuous Mode**: (Boolean) Enables to configure the port groups on the virtual switch to allow promiscuous mode. [VMware Docs](https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.security.doc/GUID-92F3AB1F-B4C5-4F25-A010-8820D7250350.html) article -- **MAC Address Changes**: (Boolean) Enables to configure the port groups on the virtual switch to allow MAC address changes. [VMware Docs](https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.security.doc/GUID-942BD3AA-731B-4A05-8196-66F2B4BF1ACB.html) article -- **Switch Name**: (String/Lookup) Allows you to choose the switch to use. The switch can be hard-coded in the attribute or set as a **User input** on the VLAN model, allowing the sandbox end-user to specify the desired switch. - - ![](/Images/Admin-Guide/switch-name_2022.2.png) -
5.0.5 - - Updated dependencies -
4.2.5 - - Remove the App's newly created vCenter folder if cloning the VM fails -- VM details show each disk size (See [View an App's VM Details](../../portal/sandboxes/sandbox-workspace/apps/view-vm-details.md)) -- Added hint support for templates to the **VM From Linked Clone** deployment path, so the **vCenter VM** attribute now displays your vCenter server's VMs and templates (See [Add a vCenter App Template](./private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/add-a-vcenter-app-template.md)) -- **Autoload**, **Behavior During Save**, and **IP Regex** attributes are now visible in the App deployment paths (See [Add a vCenter App Template](./private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/add-a-vcenter-app-template.md)) -- Fixed issue that caused CloudShell to ignore the **Behavior During Save** attribute **VM From Linked Clone** deployment path on the resource (See [Add a vCenter App Template](./private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/add-a-vcenter-app-template.md)) -- Fixed wmks link generation for different vCenter versions (wmks is used by QualiX) -- Fixed issue that prevented changing an HDD of a Linked Clone VM (VM created from a VM snapshot) (See [Add a vCenter App Template](./private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/add-a-vcenter-app-template.md)) -- Fixed issue that prevented selecting a datastore cluster -- Fixed issue preventing CloudShell from getting the cluster usage without cluster name -- Fixed issue preventing CloudShell from finding Resource Group under Compute Cluster -
5.0.3 - - **Refresh IP** command returns the updated IP -
5.0.2 - - Added the **Enable Tags** attribute -
5.0.1 - - Fixed "connection to existing port groups" issue using the "vCenter VLAN Port Group" service -- Fixed issue with automatic removal of port groups after disconnecting connection routes -
5.0.0 - - Implemented possible value suggestions (autocomplete) for App template attributes: **VM Name**, **VM Template**, and **VM Snapshot** (See [Add a vCenter App Template](./private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/add-a-vcenter-app-template.md)) -:::note -vCenter 5.0.0 and above works only with CloudShell 2022.1 EA and above. -::: -
4.2.0 - - Implemented various fixes and updates -- Added integration with QualiX for the **Get VM Web Console** feature, by adding the **VM Console Link** attribute to the App Resource Shell (See [Run App Commands](../../portal/sandboxes/sandbox-workspace/apps/run-app-commands.md)) -- The default value for the shutdown method is hard. even if the value is not valid. (See [Add VMware vCenter Cloud Provider Resource](./private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/add-vmware-vcenter-cloud-provider-resource.md)) -- Updated **Remove Snapshot** command with new parameter **remove_child** (See [Run App Commands](../../portal/sandboxes/sandbox-workspace/apps/run-app-commands.md)) -
4.1.0 - - Added support for **Static Apps** -:::note -This version is supported for CloudShell 2022.1 and up. -::: -
4.0.0 - - Support for python 3.9/3.10 -- Added **Remove Snapshot** command (See [Run App Commands](../../portal/sandboxes/sandbox-workspace/apps/run-app-commands.md)) -- Added tags for the VM/Folder/Network for vCenter 6.5+ - -- Improved deployment of Apps with a private IP - -- Fixed duplicate VMs names in the sandbox - -- Fixed issue that prevented Save and Restore Sandbox from saving the state of VM - -- Fixed issue with Port Group not being removed when disconnecting -
3.5.0 - - Added **Customize Guest OS** hidden command (See [Run App Commands](../../portal/sandboxes/sandbox-workspace/apps/run-app-commands.md)) -
3.4.0 - - Added the ability to set FQDN hostnames for Linux virtual machines -- Added the ability to reconfigure CPU/RAM on powered on VMs (See [Run App Commands](../../portal/sandboxes/sandbox-workspace/apps/run-app-commands.md)) -- Fixed VM cleanup in case of incorrect customization specification -- Added the ability to create a new network interface if there are no virtual network adapters on the virtual machine -
3.3.0 - - Fixed sandbox folder deletion in the event of failed/canceled VM deployment -- Fixed issue preventing the addition of multiple HDD disks in the **Reconfigure VM** command for vCenter v7 (See [Run App Commands](../../portal/sandboxes/sandbox-workspace/apps/run-app-commands.md)) -- Added **vCenter VLAN Port Group** service to support connecting Apps to existing port groups. The vCenter.VLAN.Port.Group.zip service can be downloaded from the vCenter 2G shell's Integrations page and imported into CloudShell. (See [Connecting vCenter Apps to an existing VLAN port group](../../portal/sandboxes/sandbox-workspace/connect-resources-and-apps.md#connecting-vcenter-apps-to-an-existing-vlan-port-group)) -- Release Notes: - - The "vCenter VLAN Port Group" service still has the "VLAN ID" attribute (not required). It was added in order to support consistency between vCenter and CloudShell in terms of VLAN management. -
3.2.0 - - Added possibility to set gateway in the **Private IP** attribute (See [Add a vCenter App Template](./private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/add-a-vcenter-app-template.md)) -
3.1.2 - - Fix for Save/Restore Sandbox (See [Save a Sandbox](../../portal/sandboxes/sandbox-workspace/save-sandbox.md) and [Restore a Saved Sandbox](../../portal/sandboxes/saved-sandboxes/restore-saved-sandbox.md)) -- Changed App's **Deploy** command's mechanism to deploy VMs into folders. Separate folder per sandbox. Folder name = sandbox id (See [Run App Commands](../../portal/sandboxes/sandbox-workspace/apps/run-app-commands.md)) -
3.1.1 - - Added new attributes to all App deployment types: Hostname and **Private IP** (See [Add a vCenter App Template](./private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/add-a-vcenter-app-template.md)) -
3.0.0 - - Fixed typo: Renamed **HHD** attribute to **HDD** (See [Add a vCenter App Template](./private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/add-a-vcenter-app-template.md)) -
2.2.0 - - Added **Get VM Web Console** deployed App command (See [Run App Commands](../../portal/sandboxes/sandbox-workspace/apps/run-app-commands.md)) -- Added vSwitch connectivity support (See [Add VMware vCenter Cloud Provider Resource](./private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/add-vmware-vcenter-cloud-provider-resource.md)) -
2.1.0 - - Added **Reconfigure VM** deployed App command (See [Run App Commands](../../portal/sandboxes/sandbox-workspace/apps/run-app-commands.md)) -- Added **Get Cluster Usage** hidden command -- Added Managed Object Reference ID to the deployed App's **Get VM Details** (See [View an App's VM Details](../../portal/sandboxes/sandbox-workspace/apps/view-vm-details.md)) -
2.0.1 - - Removed **Execution Server Selector** attribute -
1.0.0 - - Official release -- Based on python 3 -- Supports vCenter 5.5 - 7. PDF guides on how to find required vCenter elements are available for download in [Add VMware vCenter Cloud Provider Resource](./private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/add-vmware-vcenter-cloud-provider-resource.md) (step 8). -- Built according to Cloud Provider Standard version 1.0.0 -- Added **Customization Spec** attribute to allow additional customization of deployed App (See [Add a vCenter App Template](./private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/add-a-vcenter-app-template.md)) -
- -## vCenter Static VM - -- Shell's [README](https://github.com/QualiSystems/Generic-Static-vCenter-VM-Shell-2G/blob/master/README.md). - - - - - - - - - - - - -
ReleaseCapabilities added
1.0.0 - - Official release -:::note -Works with cloud provider resource based on vCenter VMWare shell 4.1.0 and above. -::: -- Based on python 3 -
- -## Microsoft Azure - -- Shell's community page - [Azure Cloud Provider Shell 2G](https://github.com/orgs/QualiSystems/discussions/1687). -- Shell's [README](https://github.com/QualiSystems/Microsoft-Azure-Cloud-Provider-Shell-2G/blob/master/README.md). - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ReleaseCapabilities added
2.5.0 - - **Autoload** and **Enable IP Forwarding** are now available on the App deployment paths (See [Add an Azure App Template](./public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/add-an-azure-app-template.md)) -- Added Managed Identity authorization to Azure Shell -- Added **KeyVault** attribute (and SSHKeys processing) to the Azure shell resource (See [Add an Azure Cloud Provider Resource](./public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/add-an-azure-cloud-provider-resource.md)) -- Added **Availability Zones** attribute to the Azure shell resource and App deployment paths -- Fixed several bugs related to storage account creation, VM details display, and extension script executions -
2.4.2 - - Added **AutoGenerated Name** attribute switch, that allows user to override default name generation behavior -
2.4.1 - - Added **Boot Diagnostics Storage Account** deployment type attribute (See [Add an Azure App Template](./public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/add-an-azure-app-template.md)) -
2.4.0 - - Added support for adding Bring Your Own License (BYOL) licenses for the virtual machines -- Added custom tags support in the Azure Deployment Path (See [Add an Azure App Template](./public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/add-an-azure-app-template.md)) -- The App's **Get VM Details** command now returns more accurate information about the OS disk and data disks (See [View an App's VM Details](../../portal/sandboxes/sandbox-workspace/apps/view-vm-details.md)) -- Added an additional validation for the **Resource Group** attribute in the Azure Deployment Path -- Removed Sandbox NSG creation for scenarios where all subnets are predefined -- Added ability to enable boot diagnostic for the VM (See [Add an Azure App Template](./public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/add-an-azure-app-template.md)) -- Added logic to automatically hide **Power On** command for shared deployed App resources - Apps that were deployed in a different sandbox (See [Add an Azure App Template](./public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/add-an-azure-app-template.md)) -
2.3.0 - - Added support for data disks in the Azure deployment paths (See [Add an Azure App Template](./public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/add-an-azure-app-template.md)) -- Added **Reconfigure VM** command (See [Run App Commands](../../portal/sandboxes/sandbox-workspace/apps/run-app-commands.md)) -- Added support for **Standard SSD/Premium SSD/Ultra SSD** and other types of Azure disks (See [Add an Azure App Template](./public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/add-an-azure-app-template.md)) -- Removed Sandbox/MGMT vNETs binding to the network tags -- Added possibility to deploy Azure VM in a separate Resource Group (See [Add an Azure App Template](./public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/add-an-azure-app-template.md)) -
2.1.0 - - New **Azure Shared Image Gallery** App deployment type (See [Add an Azure App Template](./public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/add-an-azure-app-template.md)) -- Sandbox management network is optional now (See [Create a Management Resource Group and VNets](./public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/create-a-management-resource-group-and-vnets.md)) -- Added support for predefined subnets (See [Connecting Azure Apps to predefined subnets](../../portal/sandboxes/sandbox-workspace/connect-resources-and-apps.md#connecting-azure-apps-to-predefined-subnets)) -
2.0.0 - - Removed **Execution Server Selector** attribute -
1.1.2 - - Added support for custom tags (See [Create a Management Resource Group and VNets](./public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/create-a-management-resource-group-and-vnets.md)) -
1.0.0 - - Official release -- Based on python 3 -- Built according to Cloud Provider Standard version 1.0.0 -
- -## Amazon AWS EC2 - -- Shell's community page - [Amazon AWS Cloud Provider Shell 2G](https://github.com/orgs/QualiSystems/discussions/1695). -- Shell's [README](https://github.com/QualiSystems/Amazon-AWS-Cloud-Provider-Shell-2G#readme). - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ReleaseCapabilities added
1.3.0 - - Added support for PowerShell scripts in User Data (See [Add an AWS EC2 App Template](./public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/add-an-aws-ec2-app-template.md)) -
1.2.0 - - Added new **Single VPC Mode**. Defined in the AWS cloud provider resource, which allows Apps that use this resource to be deployed within the Management VPC (See [Add an AWS EC2 Cloud Provider Resource](./public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/add-an-aws-ec2-cloud-provider-resource.md)) -
1.1.1 - - Updated description for the attributes **Enable Source Dest Check** and **Status Check Timeout** (See [Add an AWS EC2 App Template](./public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/add-an-aws-ec2-app-template.md)) -
1.1.0 - - New deployment type attribute **Enable Source Dest Check** allows disabling source/dest check (See [Add an AWS EC2 App Template](./public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/add-an-aws-ec2-app-template.md)) -- New deployment type attribute **Status Check Timeout** to set timeout for a status check (See [Add an AWS EC2 App Template](./public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/add-an-aws-ec2-app-template.md)) -
1.0.3 - - Official release -- Added new flavor - **Shared VPC** (See [AWS Integration](./public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/index.md)) -- Multiple minor bug fixes -
0.2.2 - - Pre-release -- Added support for **Shared VPC** (See [AWS Integration](./public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/index.md)) -- Based on Python 3 -
- -## OpenStack - -- Shell's community page - [OpenStack Cloud Provider Shell 2G](https://github.com/orgs/QualiSystems/discussions/1694). -- Shell's [README](https://github.com/QualiSystems/OpenStack-Cloud-Provider-Shell-2G#readme). - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ReleaseCapabilities added
1.2.1 -:::note -Supported on CloudShell 2022.2 GA and up -::: -- Added **Behavior During Save** attribute for the Save/Restore command (See [Add OpenStack Cloud Provider Resource](./private-cloud-provider-support-in-cloudshell/openstack-integration-and-configuration/add-openstack-cloud-provider-resource.md)) -
1.2.0 -:::note -Supported on CloudShell 2022.2 GA and up -::: -- Added sandbox Save/Restore support for OpenStack Apps and deployed Apps (See [Save a Sandbox](../../portal/sandboxes/sandbox-workspace/save-sandbox.md)) -- Added the **Private IP** attribute (See [Add an OpenStack App Template](./private-cloud-provider-support-in-cloudshell/openstack-integration-and-configuration/add-an-openstack-app-template.md)) -- Added the **User Data** attribute, allowing you to specify metadata or a post-installation script that will run on the deployed App (See [Add an OpenStack App Template](./private-cloud-provider-support-in-cloudshell/openstack-integration-and-configuration/add-an-openstack-app-template.md)) -- Added ability to connect to an existing network (See [Connecting OpenStack App to an existing network](../../portal/sandboxes/sandbox-workspace/connect-resources-and-apps.md#connecting-openstack-app-to-an-existing-network)) -- Added ability to specify **Subnet CIDR** in VLAN service (See [Specify Subnet CIDR for OpenStack VLAN service](../../portal/sandboxes/sandbox-workspace/connect-resources-and-apps.md#specify-subnet-cidr-for-openstack-vlan-service)) -- Added built-in capability to create separate trunks for different VLAN services -
1.1.0 - - VLAN trunk support -- Added the **OpenStack Trunk Network ID** attribute (See [Add OpenStack Cloud Provider Resource](./private-cloud-provider-support-in-cloudshell/openstack-integration-and-configuration/add-openstack-cloud-provider-resource.md)) -- Updated the **OpenStack Domain Name** attribute's description (See [Add OpenStack Cloud Provider Resource](./private-cloud-provider-support-in-cloudshell/openstack-integration-and-configuration/add-openstack-cloud-provider-resource.md)) -
1.0.0 - - Official release -- Added the **Console** command (See [Run App Commands](../../portal/sandboxes/sandbox-workspace/apps/run-app-commands.md)) -- Renamed the Shell to "OpenStack Cloud Provider Shell 2G" (See [OpenStack Cloud Provider Shell 2G](https://github.com/orgs/QualiSystems/discussions/1694) community page) -- Added the **Inbound Ports** attribute to the App's deployment type (See [Add an OpenStack App Template](./private-cloud-provider-support-in-cloudshell/openstack-integration-and-configuration/add-an-openstack-app-template.md)) -
0.1.1 - - Pre-release -- Based on Python 3 -- Known issues: - - Security groups are not created for the VM -
- -## Kubernetes - -- Shell's community page - [Kubernetes Cloud Provider Shell 2G](https://github.com/orgs/QualiSystems/discussions/1689). -- Shell's [README](https://github.com/QualiSystems/Kubernetes-Cloud-Provider-2G/blob/master/README.md). - - - - - - - - - - - - -
ReleaseCapabilities added
1.0.1 - - Initial release -- Based on python 3 -- Built according to Cloud Provider Standard version 1.0.0 -
- -## Oracle Cloud Infrastructure (OCI) - -- Shell's community page - [Oracle Cloud Infrastructure (OCI) Shell 2G](https://github.com/orgs/QualiSystems/discussions/1686). -- Shell's [README](https://github.com/QualiSystems/OCI-Shell-2G/blob/dev/README.md). - - - - - - - - - - - - - - - - - - - - - - - - -
ReleaseCapabilities added
1.1.9 - - Added retries for vNIC retrieval -- Adjusted VCN Service configuration -
1.1.5 - - Fixed issue preventing security list from being populated across all subnets/VCNs -
1.1.4 - - Fixed compatibility issues with the latest OCI python packages -
1.1.3 - - Initial release -
- -## Cisco VIRL - -- Shell's community page - [VIRL Shell 2G](https://github.com/orgs/QualiSystems/discussions/1685). -- Shell's [README](https://github.com/QualiSystems/VIRL-Shell-2G). - - - - - - - - - - - - - - - - - - - - -
ReleaseCapabilities added
1.0.2 - - Added support for SSH version 2 -- Added option to specify additional "empty" interfaces (interfaced without IP addresses that are not connected to any endpoints) -
1.0.1 - - Added fix for non-unique Resource Names. -
1.0 - - Official release -
diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/customizing-app-deployment-types.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/customizing-app-deployment-types.md deleted file mode 100644 index 7df74ab1b1..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/customizing-app-deployment-types.md +++ /dev/null @@ -1,191 +0,0 @@ ---- -sidebar_position: 5 ---- - -# Customizing App Deployment Types - -As a CloudShell system administrator, you can publish and configure the settings of certain App creation and orchestration processes. - -## Publishing App parameters - -This section explains how to set App creation and orchestration parameters as user inputs, so that when creating an App in the **Manage** dashboard, the App designer will be able to set the inputs' values. - -### Publishing App parameters for 1st Gen shells - -**To publish App creation and/or orchestration parameters in 1st Gen shells:** - -1. As system administrator, log into **Resource Manager Client**. -2. In the **Admin** ribbon, click **Resource Families**. - - The **Resource Families** explorer is displayed. - -3. Click the **Deployment Options** service family. - - The family's **Parameters** pane is displayed. - -4. Click the model of the required deployment type: - - - **AWS EC2 Instance** - - **Azure VM From Custom Image** - - **Azure VM From Marketplace** - - **vCenter Clone VM From VM** - - **vCenter Deploy VM From Linked Clone** - - **vCenter VM From Image** - - **vCenter VM From Template** - - The model's **Parameters** page is displayed. - -5. From the **Attributes** tab, select one of the following attributes and click **Edit Rules**. For parameter descriptions, see [App parameters](#app-parameters). - - The **Attribute Rules** dialog box is displayed. - -6. Select the **User Input** check box. -7. Click **OK**. -8. Repeat to publish additional attributes. -9. Save your changes. - -### Publishing App parameters for 2nd Gen shells - -**To publish App creation and/or orchestration parameters in 1st Gen shells:** - -1. Extend the shell, as explained in [Customizing a 2nd Gen Shell](../../devguide/reference/shellfoundry.md#customizing-a-2nd-gen-shell). -2. Extract the shell's project folder to your local computer. -3. Open the project folder in your preferred IDE. -4. From the shell's `deployments` folder, open the `deployment-path.yaml`. - - This file lists the attributes available for each deployment type. - - ![](/Images/Admin-Guide/DeploymentTypeAttributes.png) - -5. To publish an attribute, make sure the attribute has the **user_input** tag. - - For example: - - ![](/Images/Admin-Guide/DeploymentTypeAttributePublishing.png) - -6. Save the file and import/update the shell into CloudShell. - -## Modifying App parameter defaults - -This section explains how to modify the default settings of certain App creation and orchestration parameters that are used when creating Apps in the **Manage** dashboard. -:::note -These parameters are used by CloudShell's **Setup** and **Teardown** scripts. For additional information, see [Configure Blueprint Orchestration](../../portal/blueprints/creating-blueprints/configure-orchestration.md). -::: -### Modifying App parameter defaults for 1st Gen shells - -**To modify App parameter defaults (1st Gen):** - -1. As system administrator, log into Resource Manager Client. -2. In the **Admin** ribbon, click **Resource Families**. - - The **Resource Families** explorer is displayed. - -3. Click the **Deployment Options** service family. - - The family's **Parameters** pane is displayed. - -4. Click the model of the required deployment type: - - - **AWS EC2 Instance** - - **Azure VM From Custom Image** - - **Azure VM From Marketplace** - - **vCenter Clone VM From VM** - - **vCenter Deploy VM From Linked Clone** - - **vCenter VM From Image** - - **vCenter VM From Template** - - The model's **Parameters** page is displayed. - -5. From the **Attributes** tab, select one of the following attributes and click **Edit Rules**. For parameter descriptions, see [App parameters](#app-parameters). - - The **Attribute Rules** dialog box is displayed. - -6. Enter the **Default Value**. -7. Select the **User Input** check box. - - To prevent App designers from seeing this input, make sure the **User Input** check box is cleared. - -8. Click **OK**. -9. Repeat to edit additional attributes. -10. Save your changes. - -### Modifying App parameter defaults for 2nd Gen shells - -**To modify App parameter defaults (2nd Gen):** - -1. Extend the shell, as explained in [Customizing a 2nd Gen Shell](../../devguide/reference/shellfoundry.md#customizing-a-2nd-gen-shell). -2. Extract the shell's project folder to your local computer. -3. Open the project folder in your preferred IDE. -4. In the shell's `deployments` folder, open `deployment-path.yaml`. - - The deployment type attributes are displayed - -5. Set a **default** value for the desired attributes. - - For example: - - ![](/Images/Admin-Guide/DeploymentTypeAttributeDefaults.png) - -6. Save the file and import/update the shell in CloudShell. - -## App parameters - -### App creation parameters - -#### vCenter parameters: - -- **IP Regex**: Regular expressions that define which IP address ranges to allocate for the deployed VM's primary IP address. -- **Promiscuous Mode**: If enabled, the port groups on the virtual switch will be configured to allow all incoming traffic. -- **Refresh IP Timeout**: Timeout for waiting while obtaining IP address (in seconds) -- **VM Cluster** -- **VM Location** -- **VM Resource Pool** -- **VM Storage** - -#### AWS EC2 parameters: - -- **Root Volume Name**: The available device names for the volume. Depending on the block device driver of the selected AMI's kernel, the device may be attached with a different name than what you specify. If left empty, the default defined in the AMI is used. For example: "/dev/xvda". -- **Storage IOPS**: The default number of I/O operations per second that the root volume can support. For example "240". This parameter is used only for storage of type *io1*, in which you can provision up to 30 IOPS per GiB. If set to zero, the default defined in the image is used. -- **Storage Size**: The root volume size. For example "30". The value must be greater or equal to the size of the root snapshot used. If set to zero, the default defined in the image is used. -- **Storage Type**: The type of the storage volume. In AWS, there are several EBS Volume types that can be used: **gp2** and **io1** for SSD, **st1** and **sc1** for HDD or the standard type, which is the old generation EBS volume type. If **Auto** is selected, the storage type defined in the image is used. - -#### Azure parameters: - -- **Image Version**: The version of the VM image. For example: 16.04.201606270 -- **Extension Script Timeout**: Timeout, in minutes, for the execution of extension scripts during App deployment - -#### OpenStack parameters: - -- **Floating IP Subnet Id**: UUID of the external network to use for floating IPs - -### App orchestration parameters - -#### General parameters (used by all deployment types): - -- **Autoload**: Determines if the Autoload process runs for Apps deployed manually or during the setup of the sandbox. Default is **True**. -- **Wait For IP**: Determines if the App deployment process waits for the VM to get an IP. Default is **True**. - :::note - The default wait time is 10 minutes. On vCenter App deployment paths, this can be changed by specifying the number of seconds to wait in the **Refresh IP Timeout** attribute. - ::: - -#### vCenter parameters: - -- **Auto Power On**: Enables the automatic power on of an app, following its deployment during sandbox Setup. Default is **True**. -- **Auto Power Off**: Determines if the App's VM powers off automatically during the sandbox teardown. Default is **True**. -- **Auto Delete**: Determines if the App's VM is deleted automatically during the sandbox teardown. Default is **True**. - -#### AWS EC2 parameters: - -- **Wait for Credentials**: Enables the retrieval of credentials from a Windows machine. Note that if this parameter is enabled and the credentials are not retrieved within 15 minutes, the deployment will fail. Default is **True**. -- **Wait for Status Check**: If enabled, the App's deployment will end successfully only after the instance status check has passed. The status check includes network connectivity, physical host status, system status and more. Default is **False**. - -#### Azure parameters: - -- **Autogenerated Name**: **True** enables CloudShell to autogenerate the deployed App's name. Set to **False** to use the App's name instead. (Default is **True**) - -## Related Topics - -- [Add an AWS EC2 Cloud Provider Resource](./public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/add-an-aws-ec2-cloud-provider-resource.md) -- [Add an Azure Cloud Provider Resource](./public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/add-an-azure-cloud-provider-resource.md) -- [Add VMware vCenter Cloud Provider Resource](./private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/add-vmware-vcenter-cloud-provider-resource.md) -- [Developing Custom Cloud Provider Shells](../../devguide/develop-custom-cloud-provider-shells/) diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/index.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/index.md deleted file mode 100644 index 1c065d7c0e..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/index.md +++ /dev/null @@ -1,10 +0,0 @@ -# Supported Cloud Providers in CloudShell - -Note that we're adding cloud provider shells to [Quali Repositories](https://github.com/orgs/QualiSystems/discussions/categories/integrations) all the time. For additional information, see [Cloud Provider Shells - Features and Capabilities Per Release](./cloud-provider-2g-shells-features-and-capabilities.md). - -In addition, the **Custom Cloud Provider** Shell is provided to enable you to develop support for cloud providers that are not supported out of the box. For details, see [Developing Custom Cloud Provider Shells](../devguide/develop-custom-cloud-provider-shells/). - -## Related Topics - -- [Public Cloud Provider Support in CloudShell](../../admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/index.md) -- [Private Cloud Provider Support in CloudShell](../../admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/index.md) \ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/kubernetes-integration/_category_.json b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/kubernetes-integration/_category_.json deleted file mode 100644 index 433be91a59..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/kubernetes-integration/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Kubernetes Integration", - "position": 4 -} diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/kubernetes-integration/add-a-kubernetes-app-template.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/kubernetes-integration/add-a-kubernetes-app-template.md deleted file mode 100644 index b99c7f7084..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/kubernetes-integration/add-a-kubernetes-app-template.md +++ /dev/null @@ -1,332 +0,0 @@ ---- -sidebar_position: 4 ---- - -# Add a Kubernetes App Template - -The App template defines the settings and configurations of the VM to be deployed in the sandbox as well as the application(s) to be installed on that VM. -:::note -CloudShell does not manage Kubernetes App connectivity at this time. This can be done using the external and internal ports defined in the App. -::: -**To add a new Kubernetes App template:** - -1. Click **\+ Add**. - - The **Create New App** wizard is displayed. - - ![](/Images/Admin-Guide/KubernetesNewApp.png) - -2. From the **Select Deployment Type** pane, select **Kubernetes Service**. -3. Enter a **Name** for the App template. - :::note - The App template's name has a limit of 100 characters and can only contain alpha-numeric characters, spaces, and the following characters: | . - \_ \] \[ - ::: -4. Click **Create**. - - The App template is created and the **App** wizard's **General** page is displayed. - -5. In the **General** page, define the App template's display settings and category. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FieldRequiredDescription
NameRequiredApp name that is displayed in the catalog.
DescriptionOptionalDescription of the App.
IconOptionalAdd an image to the catalog definition. The recommended size for the image is 190x120 pixels (image size is limited to 400x400 pixels or 200 KB).
CategoriesOptional - Service categories are a method to classify Apps. The Apps are displayed in the **Add App / Service** side pane in the blueprint and sandbox diagram, arranged in categories. Only users who are permitted to view the category can access the App. Apps without a category are not displayed. - -By default, the **Applications** category is selected. - -Select a category from the dropdown list. You can select additional categories. Examples of categories are: applications, networking and VLAN. - -:::note Notes -- The category must be associated with the domain in which the required cloud provider resides. For information about domain categories, see [Managing domain categories](../../cloudshell-manage-dashboard/managing-categories.md#managing-domain-categories). -- It is recommended to use up to a 2-level hierarchy when organizing the Add App / Service catalog (i.e. root and sub-category). -- In the Add App / Service side pane, Apps are displayed in the root category only. This includes services associated to sub-categories. -::: -
- -1. In the left pane, click **Deployment Paths** and configure the App template's deployment path. - - A deployment path defines (1) the VM’s settings such as storage size, CPU and image file, and (2) the CloudShell cloud provider resource that enables CloudShell to access the cloud provider and deploy the VM on it. - - Note the deployment path's name (highlighted in the image below). The path's name is dynamic and consists of the selected **Cloud Provider** resource and **Deployment type**. You can change the name of the path by clicking the field. - - ![](/Images/Admin-Guide/KubernetesDeploymentType.png) - - 1. From the **Deployment** drop down list, select the deployment type. - - The selected deployment type's attributes are displayed. - - 2. Fill in the details. - - For **Kubernetes Service** attributes: - - | Attribute | Description | - | --- | --- | - | Cloud Provider | Name of the Kubernetes cloud provider resource to be used | - | Image Name | The name of the container image to use for creating the container. For example, "nginx".
Image must exist in the image repository used by the cluster. | - | Image Tag | (Optional) The container image tag (usually represents the image version). For example, "latest". | - | Internal Ports | (Optional) The ports required by the application for internal communications. For example, "27,332,13009" | - | External Ports | The ports required by the application for external communications (outside the cluster). | - | Replicas | The number of container instances that will be deployed. Default is "1".
CloudShell waits 120 seconds for all replicas to be in READY state. | - | Start Commands | (Optional) Replace the default start command for executing the container. | - | Environment Variables | (Optional) Comma separated list of 'key=value' environment variables that will be defined in the container. | - | CPU Request | (Optional) The requested CPU for each container. Fractional requests are also allowed. For example '0.5'. Optional unless any resource request or limit is specified. | - | RAM Request | (Optional) The requested RAM for each container. Memory is measured in bytes. Memory is expressed as a plain integer or as a fixed-point integer using one of these suffixes - E, P, T, G, M, K. You can also use the power-of-two equivalents - Ei, Pi, Ti, Gi, Mi, Ki. For example, '256M'. | - | CPU Limit | (Optional) The CPU limit for each container. Fractional limits are also allowed. For example '0.5'. | - | RAM Limit | (Optional) The RAM limit for each container. Memory is measured in bytes. Memory is expressed as a plain integer or as a fixed-point integer using one of these suffixes - E, P, T, G, M, K. You can also use the power-of-two equivalents - Ei, Pi, Ti, Gi, Mi, Ki. For example, '256M'. | - - -2. To add additional deployment paths to the App template, click the **Add New Deployment Path** link at the bottom of the wizard and fill in the required information. -3. In the left pane, click **Configuration Management** and configure the application to be installed on the VM. - - ![](/Images/CloudShell-Portal/Manage/ConfigurationManagement.png) - :::tip - To learn how to develop custom scripts and Ansible playbooks, including examples, and set up support for the desired configuration management tool, see [Developing Configuration Management Scripts for Apps](../../../devguide/develop-config-management-scripts-for-apps/index.md). - ::: - - :::note Notes - - To run configuration management on an Azure App, make sure the App's VM size is Basic\_A2 or larger. - - For configuration management operations, CloudShell uses an available Execution Server (for Ansible, it's a Linux Execution Server that has the **Supports Ansible** flag). - - If the cloud provider resource has an **Execution Server Selector** configured, it will use that selector. If the selector is empty, CloudShell will use the selector defined in the appropriate **Resource Manager Client \> Configuration Services** model (**Ansible Configuration** or **Custom Script Configuration**). - - - Execution Server selectors specified on the deployed App shell/resource are not used to execute configuration management operations. - ::: - -- Define the script or playbook to install. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AttributeDescription
Select Tool - Select the application's installation and configuration tool. - -- **None**: Do not use any Configuration Management option. Use this option if, for example, the image or template already contains the application to install. -- **Script**: Select the custom script to run (PowerShell, bash or sh). -- **Ansible**: (Intended for customers who are already using Ansible) Select the Ansible playbook to run. - :::note - The playbook runs once during the **Setup** phase for all of the sandbox's Apps that use that playbook, after CloudShell has finished deploying their VMs. This is done both to improve performance and support cross-server logic where multiple applications need to be installed and configured in a certain way. - ::: - Note that the playbook runs once for all of the sandbox's Apps that use that playbook, after CloudShell has finished deploying their VMs. - - -Depending on the selection, additional options may become available. -
Connection Method - The method to use to connect to the VM. - -Select: - -- **SSH** if the VM has a Linux OS -- **Windows Remote Management** if the VM has a Windows OS -:::note -To run configuration management on a Windows VM, the VM must have WinRM enabled. For details, see [Enable WinRM on Windows VMs to Support Configuration Management](../../../devguide/enable-winrm-on-win-vm-for-cfg-mng.md). -::: -
Playbook / Script Location - Details of the Ansible playbook or custom script. - -- **URL**: Raw URL of the Ansible playbook or ZIP file, or custom script on the online repository (GitHub, GitLab and BitBucket are supported). URL must be accessible to the Execution Servers. - :::tip - The URL can accept parameters defined on the App, enabling you to test new versions of scripts without affecting consumer-ready versions. For example, you can have an App everyone is using, but if you want to test a version you're developing, simply change the value of the URL parameter in the test blueprint. - - - To use parameters, specify the parameter name in curly brackets (for example: **\{branch\}**). - - If the App has this parameter, CloudShell will replace the **\{branch\}** with its value during execution. - - If the parameter is missing, CloudShell will replace **\{branch\}** with an empty string. - - If you are using a global input, customers would be well advised to set a default value on the global input - ::: - **For GitHub, specify the raw URL. For example:** - - ```javascript - https://raw.githubusercontent.com/.../site.yml - ``` - - **For GitLab, specify the API endpoint in the format:** - - ```javascript - https://gitlab.com/api/v4/projects/{Project ID}/repository/files/testsharding%2Eyml/raw?ref=master - ``` - - Where: - - - Each special character that the file contains has to be encoded. In the example above - "%2E” is an encoded point (".”) - - - The ref value is the branch name (master for this example) - - - **For BitBucket Data Center (on premise), use the following URL format:** - - ```javascript - http://{datacenter server IP}/rest/api/1.0/projects/{projectKey}/repos/{repository name}/raw/testsharding.yml - ``` - - **For BitBucket Cloud, use one of the following:** - - - For source code files, specify the API endpoint: - - ```javascript - https://api.bitbucket.org/2.0/repositories/{workspace}/{repository name}/src/{GUID- the Commit hash string}/testsharding.yml - ``` - - - For download files (files residing in the repository's "Downloads" folder), specify this endpoint: - - ```javascript - https://api.bitbucket.org/2.0/repositories/{workspace}/{repository name}/downloads/site.yml - ``` - - :::important - If the URL is private (HTTPS), the VM will need to have a valid SSL certificate. To disable the certificate check, open Resource **Manager Client>Resource Families>Configuration Services** (**Ansible Configuration** or **Custom Script Configuration**) and set the **Verify Certificate** attribute to **False**. - ::: -- **User/Password**: (For private repositories) Access credentials or token to the script/playbook's online repository. - -- **Token**: (For private repositories) Access token to the script/playbook's online repository. - - For GitHub and GitLab, specify the API token. For BitBucket Cloud, set the repo's "App Password" in the App template's **Password** field. For BitBucket Data Center, specify the personal access token. - - -:::note Notes -- **For Custom Script configurations**: In SSH mode, only bash and sh scripts are allowed. In WinRM mode, only PowerShell scripts are allowed. WinRM over HTTPS only applies to custom scripts at this time. If WinRM is configured to run over HTTPS, the execution server will first try to run the custom script over HTTPS and then fall back to HTTP if HTTPS is unsuccessful. To prevent the fallback, set the **winrm_transport** parameter to **ssl**. -- **For Ansible configurations**: The Ansible playbook must be a YML or YAML file. To specify multiple playbooks or a hierarchy of an Ansible project, you can specify multiple Ansible playbooks or a ZIP package. For example: `https://raw.githubusercontent.com/QualiSystemsLab/private-repo-zip-download/master/README.zip` -- If a ZIP containing 2 or more playbooks is specified, CloudShell will use the playbook file titled `site.yml` or `site.yaml`. If the file is missing, the App's deployment will fail. -::: -
Inventory Groups - (For Ansible) Specify the host groups for the application to be installed, separated by semicolons (;). The newly deployed VM will be associated to these groups, thus allowing plays that target these groups to run on the VM. - -For example: `Servers/AppServers;Servers/DBServers` -
Parameters - Parameters to be passed to the Ansible playbook or custom script. Specify the parameters and their default values. - -In the blueprint or sandbox diagram, privileged users can also set the parameter to receive the value that is specified for a global input when reserving a sandbox containing the App. This is done by selecting the global input when editing the App in the blueprint or sandbox diagram. For example, a global input that specifies the build number of a product to be tested or which components of a product to install. -:::important -(For Ansible) To customize the port to be used to communicate with the VM, add the `Ansible_port` parameter. Default: `SSH` / `Port: 22` / `WinRM: 5985`. -::: -
Additional Arguments - (For Ansible) Define arguments to be passed to the execution of the playbook (`Ansible-playbook` command). For example, `-v` will set verbose mode on while `-f` will set the maximum number of VMs to be handled in parallel. Multiple arguments can be given, separated by spaces. For additional information on possible arguments, see the official Ansible documentation. - -The arguments must be specified in **Resource Manager Client > Configuration Services** family > **Ansible Configuration** model > **Ansible Additional Arguments** attribute. -:::note -The arguments are defined globally for all Apps using Ansible. -::: -:::important -To configure Ansible to connect to certified hosts only (Linux VMs with a valid 'known_hosts' key), include the following additional arguments: `--ssh-extra-args='-o StrictHostKeyChecking=yes'` -::: -
- -- To enable the end-user to rerun the App's configuration management on the deployed App in the sandbox, select **Allow rerunning configuration management for resources deployed from the App**. Once the App's deployment completes, a **Rerun Configuration Management** command is included in the deployed App's **Application Commands** pane. For details, see [Run App Commands](../../../portal/sandboxes/sandbox-workspace/apps/run-app-commands.md). This is useful for rolling back the App's VM to its original state. - -- To enable blueprint and sandbox owners to modify the App's Configuration Management details, select **Allow blueprint/sandbox owners to modify the App's Configuration Management**. The following details can be modified: playbook/script, authentication details, inventory groups, and parameters. Note that the modifications only apply to the blueprint or sandbox of the instance. - -- Optionally click the **Add New Script/Playbook** link at the bottom right to add additional custom scripts/Ansible playbooks to the App. The scripts will run in their display order, from top to bottom. You can drag scripts up or down to rearrange. - -- To change the script's alias, click the script's name and change as appropriate. - - ![](/Images/CloudShell-Portal/Manage/RenameConfigManageScript.png) - - -1. In the left pane, click **App Resource** to optionally set the VM's operating system user credentials (for example, to connect to the VM via RDP or SSH). You can also change the deployed App's Shell. - - ![](/Images/CloudShell-Portal/Manage/AppResource.png) - :::important - To help sandbox end-users connect to the VM, it is recommended to include the User and Password in the blueprint's instructions. For additional information, see [Add Instructions](../../../portal/blueprints/creating-blueprints/add-instructions.md). - ::: - - - - - - - - - - - - - - - - - - - - -
AttributeDescription
Shell - The Shell on which the App's VMs are based. When an App is deployed in a sandbox, it changes into a "deployed App resource", which is based on the selected Shell. By default, the "Generic App Model" Shell is used. - -Deployed Apps include a default set of commands such as Power On and Refresh IP, and the VM's **User** and **Password** attributes, as explained below. -:::note -Changing the Shell might cause additional fields to become visible and you may need to enter further information. -::: -
User - User defined in the App's image. The **User/Password** credentials are used by QualiX to create in-browser connections to the VM from within the sandbox. - -:::note Notes -- For AWS instances,make sure to set the **User** of a user that already exists on the Amazon machine image. For custom images, the image owner should know the credentials, while community/marketplace images have the image's credentials listed in their documentation. -- Azure VM username and password restrictions apply. For details, see [Frequently asked question about Windows Virtual Machines](https://docs.microsoft.com/en-us/azure/virtual-machines/windows/faq). -- For Azure Marketplace images, CloudShell will create a user on the VM based on the **User/Password** credentials you specify. -- For Azure Marketplace VMs, if the user is not set, CloudShell will set **adminuser** as the default user name. -::: -
Password - VM user's password. - -:::note Notes -- For AWS Marketplace images, leave the **Password** empty. The AWS shell generates a new key-pair for each sandbox, which QualiX will use to establish the in-browser connection. -- For Azure Marketplace images: - - If the password is not set, only the user name will be required. For Linux VMs, CloudShell will create an SSH key-pair to enable a secure connection. - - If the password is set, it will be displayed as asterisks (\*\*\*\*\*\*) in the blueprint or sandbox. -::: -
- -1. Click **Done**. - - The new App template is displayed in the **Apps** page. diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/kubernetes-integration/add-a-kubernetes-cloud-provider-resource.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/kubernetes-integration/add-a-kubernetes-cloud-provider-resource.md deleted file mode 100644 index 37a7465c6a..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/kubernetes-integration/add-a-kubernetes-cloud-provider-resource.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -sidebar_position: 3 ---- - -# Add a Kubernetes Cloud Provider Resource - -The Kubernetes Cloud Provider 2nd Gen shell enables the deployment of Kubernetes instances on a Kubernetes cluster. - -**To add a Kubernetes resource:** - -1. Log in to CloudShell Portal as administrator. -2. Import the Kubernetes shell into CloudShell. For details, see [Importing Shells](../../cloudshell-manage-dashboard/managing-shells.md#importing-shells). - - ![](/Images/Admin-Guide/KubernetesDownloadShell.png) - -3. In the **Inventory** dashboard, in the **Resources** tab, click the folder in which you want to create the resource. -4. Click **\+ Add New**. -5. In the **Create New Resource** dialog box, select the **Kubernetes Cloud Provider Shell 2G** cloud provider template. -6. Enter a **Name** for the Kubernetes resource.   - :::note - The resource's name has a limit of 100 characters and can only contain alpha-numeric characters, spaces, and the following characters: | . - \_ \] \[ - ::: -7. Click **Create**. - - The **Resource** dialog box is displayed. - - ![](/Images/Admin-Guide/KubernetesResourceDiscovery.png) - -8. Enter the required information. - - - - - - - - - - - - - - - - - - - - - - - - -
AttributeDescription
Config File Path - Full path to a standalone kubernetes `config` file containing all the relevant information for authentication. The file must reside on the Execution Server machine. To generate a portable config file, as Kubernetes administrator, run this command from your Kubernetes client: - -```python - kubectl config view --flatten -``` -
AWS CP Resource Name(Optional - EKS only) The CloudShell resource name for the AWS Cloud Provider Resource
External Service TypeThe service type the shell will create for external services. LoadBalancer type should be used when the Kubernetes cluster is hosted on a supported public cloud provider like AWS and Azure. Use NodePort when the cluster is self-hosted.
Execution Server Selector - (Optional) This attribute points to a pre-defined group of execution servers (grouped by a common **Execution Server Selector** value). To make the association, enter the same value you specified on the execution server. -:::tip -The Execution Server Selector attribute does not come with the shell out-of-the-box. If you want to use it, add it to the shell in the **Manage>Shells** page and make sure the attribute has the **Execution Server Selector** rule, in Resource Manager Client's **Attributes** tab. -::: -
- -9. Click **Start Discovery**. - - When the discovery process completes, a confirmation message is displayed. The cloud provider resource is displayed in the Inventory dashboard in CloudShell Portal and in Resource Manager Client. - - To customize the App deployment types and publish App orchestration parameters, see [Customizing App Deployment Types](../customizing-app-deployment-types.md). - -10. Next, [Add a Kubernetes App Template](../kubernetes-integration/add-a-kubernetes-app-template.md). diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/kubernetes-integration/index.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/kubernetes-integration/index.md deleted file mode 100644 index 495bb53265..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/kubernetes-integration/index.md +++ /dev/null @@ -1,43 +0,0 @@ -# Kubernetes Integration - -The Kubernetes deployment type integrates CloudShell with Kubernetes. This integration enables the deployment of CloudShell Apps in self-hosted and cloud-managed Kubernetes containers. CloudShell supports deploying Kubernetes pods from images residing in the cluster's image registry. - -The following diagram illustrates an Kubernetes integration (with a local CloudShell installation) hosting two live sandboxes: - -![](/Images/Admin-Guide/KubernetesIntegrationArchitecture.png) - -CloudShell communicates with the Kubernetes cluster over the Kubernetes API to deploy and manage container instances as part of CloudShell sandboxes. - -When deploying a sandbox, CloudShell creates a Kubernetes deployment in a dedicated namespace for the sandbox. The deployment spins up 1 or more pods for each Kubernetes App (number of pods are defined in the App’s settings) as well as services for exposing the internal and external ports defined in the App. A dedicated service is created for each port. For each internal port, a ClusterIP service is created, and for each external port, a LoadBalancer or NodePort service is created. - -:::note Notes -- CloudShell does not manage Kubernetes App connectivity at this time. This can be done using the external and internal ports defined in the App. -- When the sandbox ends, the sandbox's namespace along with all its components are automatically deleted from the cluster. -- The App's external IP is displayed in the VM Details pane. For details, see [View an App's VM Details](../../../portal/sandboxes/sandbox-workspace/apps/view-vm-details.md). -::: -## Kubernetes installation workflow - -To integrate Kubernetes with CloudShell, perform the following steps: - - - - - - - -
-
    -
  1. - [Add a Kubernetes Cloud Provider Resource](./add-a-kubernetes-cloud-provider-resource.md) -
  2. -
  3. - [Add a Kubernetes App Template](./add-a-kubernetes-app-template.md) -
  4. -
-
- - -## Related Topics - -- [Kubernetes Prerequisites](./kubernetes-prerequisites.md) -- [Supported Cloud Providers for Kubernetes Integration](./supported-cloud-providers-for-kubernetes-integration.md) \ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/kubernetes-integration/kubernetes-prerequisites.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/kubernetes-integration/kubernetes-prerequisites.md deleted file mode 100644 index 8842ce6fed..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/kubernetes-integration/kubernetes-prerequisites.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Kubernetes Prerequisites - -Before you set up your Kubernetes integration with CloudShell, make sure you have the following: - -- Kubernetes cluster. For details, see the official Kubernetes installation docs. - - Kubernetes `config` file with cluster administrator permissions. To generate a portable config file, run this command from your Kubernetes client machine: - - ```python - kubectl config view --flatten - ``` - - - Configured LoadBalancer and/or NodePort for external ports -- Amazon EKS: - - Existing AWS 2G shell resource - - AWS region must have EKS already installed. diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/kubernetes-integration/supported-cloud-providers-for-kubernetes-integration.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/kubernetes-integration/supported-cloud-providers-for-kubernetes-integration.md deleted file mode 100644 index 1edecc02e6..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/kubernetes-integration/supported-cloud-providers-for-kubernetes-integration.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Supported Cloud Providers for Kubernetes Integration - -CloudShell communicates directly with the Kubernetes cluster. As such, CloudShell's Kubernetes integration is cloud-agnostic and should work with any on-prem or public cloud that hosts a Kubernetes cluster. diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/_category_.json b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/_category_.json deleted file mode 100644 index 36ea7612cb..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Private Cloud Provider Support in CloudShell", - "position": 3 -} diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/index.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/index.md deleted file mode 100644 index a0a7530daf..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/index.md +++ /dev/null @@ -1,10 +0,0 @@ -# Private Cloud Provider Support in CloudShell - -In order to allow CloudShell Apps to deploy and manage virtual machines in a private cloud provider such as VMware vCenter, the system administrator needs to create a cloud provider resource in the Inventory dashboard. This resource provides the cloud provider's network, storage and access settings to the CloudShell Apps. - -In addition, CloudShell App deployments can be associated to specific domains to improve performance in geographically dispersed CloudShell deployments. - -## Related Topics - -- [Add VMware vCenter Cloud Provider Resource](../private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/add-vmware-vcenter-cloud-provider-resource.md) -- [Managing Private Cloud Apps in Domains](../private-cloud-provider-support-in-cloudshell/managing-private-cloud-apps-in-domains.md) \ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/managing-private-cloud-apps-in-domains.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/managing-private-cloud-apps-in-domains.md deleted file mode 100644 index 05952a5b5d..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/managing-private-cloud-apps-in-domains.md +++ /dev/null @@ -1,112 +0,0 @@ ---- -sidebar_position: 3 ---- - -# Managing Private Cloud Apps in Domains - -*The procedures in this article apply to Apps hosted on a private cloud provider, like vCenter or OpenStack. For public cloud Apps like AWS EC2 or Azure, see [Managing Public Cloud Apps in Domains](../public-cloud-provider-support-in-cloudshell/managing-public-cloud-apps-in-domains.md).* - -In order to improve performance and stability in CloudShell deployments that include multiple geographically distributed sites, administrators need to configure the deployment process of the App to be carried out in the domain of the cloud provider (i.e. configure the App to be deployed using the execution server closest to the lab in which the cloud provider resides). - -This is done by associating the App and cloud provider to the domain, to make sure domain users use the Apps and cloud providers allocated to their domain, and setting the **Execution Server Selector** attribute on the execution server, cloud provider resource and App, and giving it the same value on these elements to ensure the actual drivers will run physically near the cloud provider. - -This is a five-step process: - -1. [Create a cloud provider resource set to the domain](../private-cloud-provider-support-in-cloudshell/managing-private-cloud-apps-in-domains.md#create-a-cloud-provider-resource-set-to-the-domain) -2. [Configure the Execution Server to support Ansible operations](../private-cloud-provider-support-in-cloudshell/managing-private-cloud-apps-in-domains.md#configure-the-execution-server-to-support-ansible-operations) -3. [Associate the Execution Server Selector attribute to the deployed App's family](../private-cloud-provider-support-in-cloudshell/managing-private-cloud-apps-in-domains.md#associate-the-execution-server-selector-attribute-to-the-deployed-apps-family) -4. [Associate the execution servers to the domain](../private-cloud-provider-support-in-cloudshell/managing-private-cloud-apps-in-domains.md#associate-the-execution-servers-to-the-domain) -5. [Associate the App's deployment to the domain](../private-cloud-provider-support-in-cloudshell/managing-private-cloud-apps-in-domains.md#associate-the-apps-deployment-to-the-domain) - -## Create a cloud provider resource set to the domain - -When creating the cloud provider resource, you need to specify the required domain in the **Execution Server Selector** attribute. -:::note -A cloud provider resource should be set to one domain only. For multiple domains, create additional cloud provider resources. -::: -**To set the cloud provider resource to the domain:** - -1. As administrator in the required CloudShell domain, create the cloud provider resource. - -2. In the **Resource Discovery Information** page, in the **Execution Server Selector** attribute, specify the name of the domain. For example, "London". - - ![](/Images/CloudShell-Portal/Manage/ExecutionServerSelectorNewResource.png) - -3. Complete the resource creation process. - -## Configure the Execution Server to support Ansible operations -:::note -This section is only required for Ansible configuration management. -::: -To use Ansible to install and configure applications on Apps, the system administrator needs to perform several configurations on the Linux-based Execution Server that will be used to run the Ansible operations on the App's deployed VMs. For additional information, see [Ansible Playbook Development for Apps](../../../devguide/develop-config-management-scripts-for-apps/ansible-playbook-dev-for-apps/). - -## Associate the Execution Server Selector attribute to the deployed App's family - -**To associate the Execution Server Selector attribute to the deployed App's family:** - -1. Associate the **Execution Server Selector** attribute to the deployed App's family. For example, **Generic App Family**. -2. After you associate the attribute to the deployed App's family, make sure the **Attributes** list of the family displays the **Execution Server Selector** attribute. For example: - - ![](/Images/CloudShell-Portal/Manage/DeployedAppParameters.png) - - -## Associate the execution servers to the domain - -This procedure explains how to associate, to the domain, the execution servers to be used to deploy Apps on the cloud provider to the domain (usually the execution servers that are physically closest to location of the cloud provider.) The **Execution Server Selector** attribute must have the **Execution Server Selector** rule enabled. - -**To associate an execution server to the domain:** - -1. In CloudShell Portal, click **Manage**. - - The **Manage** dashboard is displayed. - -2. In the left sidebar, click **Execution Servers**. - -3. In the left pane, under **Execution Servers**, click **Servers**. - - The execution server list is displayed. - -4. Click the name of a server. - - The **Attributes** dialog box is displayed. - -5. Select the **Execution Server Selector** check box and enter the name of the domain. For example, London: - - ![](/Images/CloudShell-Portal/Manage/AddAttribute.png) - -6. Click **Done**. -7. Repeat these steps to associate additional execution servers to the domain. - -## Associate the App's deployment to the domain - -To configure the App to be deployed in a specific domain, you need to associate the App's family to the domain, as well as the domain category to make it available to members of that domain. This domain both includes the App's cloud provider and is closest to the execution servers that will deploy the App. - -**To associate an App's deployment to a domain:** - -1. In the **Manage** dashboard, in the left sidebar, click **Apps**. - - The **Apps** page is displayed. - -2. Create a new App or edit an existing one, as explained in [Managing App Templates](../../cloudshell-manage-dashboard/manage-app-templates/index.md). - - The App's configuration wizard is displayed. - -3. To make the App available to members of this domain, from the **Categories** dropdown list, select the categories associated to the domain. For details about creating domain categories, see [Managing domain categories](../../cloudshell-manage-dashboard/managing-categories.md#managing-domain-categories). - - For example, "London": - - ![](/Images/CloudShell-Portal/Manage/ExecutionServerAppTemplate5.png) - -4. If this is a new App, in the **Deployment Paths** page, create a deployment path for the cloud provider. Make sure to select the cloud provider resource you created in the required CloudShell domain. - -5. In the **App Resource** page, in the **Execution Server Selector** attribute, specify the value you specified in the **Execution Server Selector** attribute of the cloud provider resource. For example, "London": - - ![](/Images/CloudShell-Portal/Manage/ExecutionServerAppTemplate4.png) - -6. Click **Done**. - -## Related Topics - -- [Manage Dashboard Overview](../../cloudshell-manage-dashboard/manage-dashboard-overview.md) -- [Managing App Templates](../../cloudshell-manage-dashboard/manage-app-templates/index.md) -- [Apps Overview](../../../intro/features/apps-overview.md) diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/openstack-integration-and-configuration/_category_.json b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/openstack-integration-and-configuration/_category_.json deleted file mode 100644 index 78fe527651..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/openstack-integration-and-configuration/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "OpenStack Integration and Configuration", - "position": 1 -} diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/openstack-integration-and-configuration/add-an-openstack-app-template.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/openstack-integration-and-configuration/add-an-openstack-app-template.md deleted file mode 100644 index d0c44c9129..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/openstack-integration-and-configuration/add-an-openstack-app-template.md +++ /dev/null @@ -1,380 +0,0 @@ ---- -sidebar_position: 3 ---- - -# Add an OpenStack App Template - -The App template defines the settings and configurations of the VM to be deployed in the sandbox as well as the application(s) to be installed on that VM. - -**To add a new OpenStack App template:** - -1. Click **\+ Add**. - - The **Create New App** wizard is displayed. - - ![](/Images/CloudShell-Portal/Manage/CreateNewApp.png) - -2. From the **Select Deployment Type** pane, select **OpenStack Deploy From Glance Image**. -3. Enter a **Name** for the App template. - :::note - The App template's name has a limit of 100 characters and can only contain alpha-numeric characters, spaces, and the following characters: | . - \_ \] \[ - ::: -4. Click **Create**. - - The App template is created and the **App** wizard's **General** page is displayed. - - ![](/Images/CloudShell-Portal/Manage/AppGeneralPage.png) - -5. In the **General** page, define the App template's display settings and category. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FieldRequiredDescription
NameRequiredApp name that is displayed in the catalog.
DescriptionOptionalDescription of the App.
IconOptionalAdd an image to the catalog definition. The recommended size for the image is 190x120 pixels (image size is limited to 400x400 pixels or 200 KB).
CategoriesOptional - Service categories are a method to classify Apps. The Apps are displayed in the **Add App / Service** side pane in the blueprint and sandbox diagram, arranged in categories. Only users who are permitted to view the category can access the App. Apps without a category are not displayed. - - By default, the **Applications** category is selected. - - Select a category from the dropdown list. You can select additional categories. Examples of categories are: applications, networking and VLAN. - - :::note Notes - - The category must be associated with the domain in which the required cloud provider resides. For information about domain categories, see [Managing domain categories](../../../cloudshell-manage-dashboard/managing-categories.md#managing-domain-categories). - - It is recommended to use up to a 2-level hierarchy when organizing the **Add App / Service** catalog (i.e. root and sub-category). - - In the **Add App / Service** side pane, Apps are displayed in the root category only. This includes services associated to sub-categories. - ::: -
- -6. In the left pane, click **Deployment Paths** and configure the App template's deployment path. - - A deployment path define(1) the OpenStack Glance image, (the method to be used to deploy the VM), (2) the VM’s settings such as storage size, CPU and image file, and (3) the CloudShell cloud provider resource that enables CloudShell to access the cloud provider and deploy the VM on it. - - Note the deployment path's name (highlighted in the image below). The path's name is dynamic and consists of the selected **Cloud Provider** resource and **Deployment type**. You can change the name of the path by clicking the field. - - ![](/Images/Admin-Guide/Inventory-Operations/OpenstackDeploymentPathName.png) - - 1. From the Deployment drop down list, select the deployment type. - - The selected deployment type's attributes are displayed. - - 2. Fill in the details. - - For **OpenStack Deploy Glance Image 2G** attributes, - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AttributeDescription
Cloud ProviderName of the OpenStack cloud provider resource to be used
Image IDUUID of the image to be used to create the App's Openstack instance. Can be found on Portal in **Compute**>**Images**>select the image>**ID** value.
Instance Flavor - (Optional) OpenStack instance Flavor. The instance flavor determines the CPU, memory and networking capacity of the instance. For example: "m1.tiny" or "m1.xlarge". - - Can be found on Portal in **Compute**>**Flavors**>select the flavor>**Flavor Name**. -
Add Floating IP - Set to **True** to use a static (public) IP address to communicate with the instance from outside the virtual network. Default value is **False**. - - In most cases the floating IP address is associated with the instance until the instance is stopped or terminated, after which the floating IP is no longer available. You can reserve a floating IP in OpenStack to ensure that the IP is available to your subscription at any time. -
Affinity Group ID - (Optional) UUID of the affinity group ("nova server-group") to which the instance will be associated. Affinity groups determine on which compute nodes to place instances. - :::note - To support the deployment of 'all' OpenStack instances using the same hypervisor, affinity groups with the 'affinity' policy are used. - ::: -
Availability Zone(Optional) Name of the availability zone to which the instance will be associated. Availability zones are used to group network nodes to enhance the availability of network resources.
Floating IP Subnet IDUUID of the subnet to use for Floating IPs.
Auto UDEVEnable Linux udev rules to allow new interfaces to be recognized by the OS automatically. When using Windows machines, this attribute should be set to **False**.
User Data - Custom user data to pass to the deployed App instance. For example, some metadata or post-installation script. For details, see this official OpenStack documentation page: [https://docs.openstack.org/nova/rocky/user/user-data.html](https://docs.openstack.org/nova/rocky/user/user-data.html). -
Inbound Ports - Semi-colon separated list of CIDRs, ports and protocols on which to open inbound traffic from outside of the sandbox. - The syntax is `[cidr:][protocol:]port-or-port-range`. For example: `0.0.0.0/0:tcp:80;443;udp:200-220`. - Default CIDR is "0.0.0.0/0". Default protocol is "tcp". -
Private IPThe IP will be set for the management interface. The IP should be inside the management network ranges. OpenStack doesn't allow to use the same IP address for different instances.
- -7. To add additional deployment paths to the App template, click the **Add New Deployment Path** link at the bottom of the wizard and fill in the required information. -8. In the left pane, click **Configuration Management** and configure the application to be installed on the VM. - - ![](/Images/CloudShell-Portal/Manage/ConfigurationManagement.png) - :::tip - To learn how to develop custom scripts and Ansible playbooks, including examples, and set up support for the desired configuration management tool, see [Developing Configuration Management Scripts for Apps](../../../../devguide/develop-config-management-scripts-for-apps/index.md). - ::: - :::note Notes - - To run configuration management on an Azure App, make sure the App's VM size is Basic_A2 or larger. - - For configuration management operations, CloudShell uses an available Execution Server (for Ansible, it's a Linux Execution Server that has the **Supports Ansible** flag). - - If the cloud provider resource has an **Execution Server Selector** configured, it will use that selector. If the selector is empty, CloudShell will use the selector defined in the appropriate **Resource Manager Client>Configuration Services** model (**Ansible Configuration** or **Custom Script Configuration**). - - Execution Server selectors specified on the deployed App shell/resource are not used to execute configuration management operations. - ::: - - - Define the script or playbook to install. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AttributeDescription
Select Tool - Select the application's installation and configuration tool. - -- **None**: Do not use any Configuration Management option. Use this option if, for example, the image or template already contains the application to install. -- **Script**: Select the custom script to run (PowerShell, bash or sh). -- **Ansible**: (Intended for customers who are already using Ansible) Select the Ansible playbook to run. - :::note - The playbook runs once during the **Setup** phase for all of the sandbox's Apps that use that playbook, after CloudShell has finished deploying their VMs. This is done both to improve performance and support cross-server logic where multiple applications need to be installed and configured in a certain way. - ::: - Note that the playbook runs once for all of the sandbox's Apps that use that playbook, after CloudShell has finished deploying their VMs. - - -Depending on the selection, additional options may become available. -
Connection Method - The method to use to connect to the VM. - -Select: - -- **SSH** if the VM has a Linux OS -- **Windows Remote Management** if the VM has a Windows OS -:::note -To run configuration management on a Windows VM, the VM must have WinRM enabled. For details, see [Enable WinRM on Windows VMs to Support Configuration Management](../../../../devguide/enable-winrm-on-win-vm-for-cfg-mng.md). -::: -
Playbook / Script Location - Details of the Ansible playbook or custom script. - -- **URL**: Raw URL of the Ansible playbook or ZIP file, or custom script on the online repository (GitHub, GitLab and BitBucket are supported). URL must be accessible to the Execution Servers. -:::tip -The URL can accept parameters defined on the App, enabling you to test new versions of scripts without affecting consumer-ready versions. For example, you can have an App everyone is using, but if you want to test a version you're developing, simply change the value of the URL parameter in the test blueprint. - -- To use parameters, specify the parameter name in curly brackets (for example: **\{branch\}**). -- If the App has this parameter, CloudShell will replace the **\{branch\}** with its value during execution. -- If the parameter is missing, CloudShell will replace **\{branch\}** with an empty string. -- If you are using a global input, customers would be well advised to set a default value on the global input -::: - **For GitHub, specify the raw URL. For example:** - - ```javascript - https://raw.githubusercontent.com/.../site.yml - ``` - - **For GitLab, specify the API endpoint in the format:** - - ```javascript - https://gitlab.com/api/v4/projects/{Project ID}/repository/files/testsharding%2Eyml/raw?ref=master - ``` - - Where: - - - Each special character that the file contains has to be encoded. In the example above - "%2E” is an encoded point (".”) - - - The ref value is the branch name (master for this example) - - - **For BitBucket Data Center (on premise), use the following URL format:** - - ```javascript - http://{datacenter server IP}/rest/api/1.0/projects/{projectKey}/repos/{repository name}/raw/testsharding.yml - ``` - - **For BitBucket Cloud, use one of the following:** - - - For source code files, specify the API endpoint: - - ```javascript - https://api.bitbucket.org/2.0/repositories/{workspace}/{repository name}/src/{GUID- the Commit hash string}/testsharding.yml - ``` - - - For download files (files residing in the repository's "Downloads" folder), specify this endpoint: - - ```javascript - https://api.bitbucket.org/2.0/repositories/{workspace}/{repository name}/downloads/site.yml - ``` - -:::important -If the URL is private (HTTPS), the VM will need to have a valid SSL certificate. To disable the certificate check, open **Resource Manager Client>Resource Families>Configuration Services** (**Ansible Configuration** or **Custom Script Configuration**) and set the **Verify Certificate** attribute to **False**. -::: -- **User/Password**: (For private repositories) Access credentials or token to the script/playbook's online repository. - -- **Token**: (For private repositories) Access token to the script/playbook's online repository. - - For GitHub and GitLab, specify the API token. For BitBucket Cloud, set the repo's "App Password" in the App template's **Password** field. For BitBucket Data Center, specify the personal access token. - -:::note Notes -- **For Custom Script configurations**: In SSH mode, only bash and sh scripts are allowed. In WinRM mode, only PowerShell scripts are allowed. WinRM over HTTPS only applies to custom scripts at this time. If WinRM is configured to run over HTTPS, the execution server will first try to run the custom script over HTTPS and then fall back to HTTP if HTTPS is unsuccessful. To prevent the fallback, set the **winrm_transport** parameter to **ssl**. -- **For Ansible configurations**: The Ansible playbook must be a YML or YAML file. To specify multiple playbooks or a hierarchy of an Ansible project, you can specify multiple Ansible playbooks or a ZIP package. For example: `https://raw.githubusercontent.com/QualiSystemsLab/private-repo-zip-download/master/README.zip` -- If a ZIP containing 2 or more playbooks is specified, CloudShell will use the playbook file titled `site.yml` or `site.yaml`. If the file is missing, the App's deployment will fail. -::: -
Inventory Groups - (For Ansible) Specify the host groups for the application to be installed, separated by semicolons (;). The newly deployed VM will be associated to these groups, thus allowing plays that target these groups to run on the VM. - -For example: `Servers/AppServers;Servers/DBServers` -
Parameters - Parameters to be passed to the Ansible playbook or custom script. Specify the parameters and their default values. - -In the blueprint or sandbox diagram, privileged users can also set the parameter to receive the value that is specified for a global input when reserving a sandbox containing the App. This is done by selecting the global input when editing the App in the blueprint or sandbox diagram. For example, a global input that specifies the build number of a product to be tested or which components of a product to install. -:::important -(For Ansible) To customize the port to be used to communicate with the VM, add the `Ansible_port` parameter. Default: `SSH` / `Port: 22` / `WinRM: 5985`. -::: -
Additional Arguments - (For Ansible) Define arguments to be passed to the execution of the playbook (`Ansible-playbook` command). For example, `-v` will set verbose mode on while `-f` will set the maximum number of VMs to be handled in parallel. Multiple arguments can be given, separated by spaces. For additional information on possible arguments, see the official Ansible documentation. - -The arguments must be specified in **Resource Manager Client \> Configuration Services** family \> **Ansible Configuration** model \> **Ansible Additional Arguments** attribute. -:::note -The arguments are defined globally for all Apps using Ansible. -::: -:::important -To configure Ansible to connect to certified hosts only (Linux VMs with a valid 'known_hosts' key), include the following additional arguments: `--ssh-extra-args='-o StrictHostKeyChecking=yes'` -::: -
- - - To enable the end-user to rerun the App's configuration management on the deployed App in the sandbox, select **Allow rerunning configuration management for resources deployed from the App**. Once the App's deployment completes, a Rerun Configuration Management command is included in the deployed App's Application Commands pane. For details, see [Run App Commands](../../../../portal/sandboxes/sandbox-workspace/apps/run-app-commands.md). This is useful for rolling back the App's VM to its original state. - - To enable blueprint and sandbox owners to modify the App's Configuration Management details, select Allow blueprint/sandbox owners to modify the App's Configuration Management. The following details can be modified: playbook/script, authentication details, inventory groups, and parameters. Note that the modifications only apply to the blueprint or sandbox of the instance. - - Optionally click the Add New Script/Playbook link at the bottom right to add additional custom scripts/Ansible playbooks to the App. The scripts will run in their display order, from top to bottom. You can drag scripts up or down to rearrange. - - To change the script's alias, click the script's name and change as appropriate. - -![](/Images/CloudShell-Portal/Manage/RenameConfigManageScript.png) - - -1. In the left pane, click **App Resource** to optionally set the VM's operating system user credentials (for example, to connect to the VM via RDP or SSH). You can also change the deployed App's Shell. - - ![](/Images/CloudShell-Portal/Manage/AppResource.png) - :::important - To help sandbox end-users connect to the VM, it is recommended to include the **User** and **Password** in the blueprint's instructions. For additional information, see [Add Instructions](../../../../portal/blueprints/creating-blueprints/add-instructions.md). - ::: - - - - - - - - - - - - - - - - - - - -
AttributeDescription
Shell - The Shell on which the App's VMs are based. When an App is deployed in a sandbox, it changes into a "deployed App resource", which is based on the selected Shell. By default, the "Generic App Model" Shell is used. - -Deployed Apps include a default set of commands such as Power On and Refresh IP, and the VM's User and Password attributes, as explained below. -:::note -Changing the Shell might cause additional fields to become visible and you may need to enter further information. -::: -
User - User defined in the App's image. The **User/Password** credentials are used by QualiX to create in-browser connections to the VM from within the sandbox. - -:::note Notes -- For AWS instances,make sure to set the **User** of a user that already exists on the Amazon machine image. For custom images, the image owner should know the credentials, while community/marketplace images have the image's credentials listed in their documentation. -- Azure VM username and password restrictions apply. For details, see [Frequently asked question about Windows Virtual Machines](https://docs.microsoft.com/en-us/azure/virtual-machines/windows/faq). -- For Azure Marketplace images, CloudShell will create a user on the VM based on the **User/Password** credentials you specify. -- For Azure Marketplace VMs, if the user is not set, CloudShell will set **adminuser** as the default user name. -::: -
Password - VM user's password. - -:::note Notes -- For AWS Marketplace images, leave the **Password** empty. The AWS shell generates a new key-pair for each sandbox, which QualiX will use to establish the in-browser connection. -- For Azure Marketplace images: - - If the password is not set, only the user name will be required. For Linux VMs, CloudShell will create an SSH key-pair to enable a secure connection. - - If the password is set, it will be displayed as asterisks (\*\*\*\*\*\*) in the blueprint or sandbox. -::: -
- -1. Click **Done**. - - The new App template is displayed in the **Apps** page. \ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/openstack-integration-and-configuration/add-openstack-cloud-provider-resource.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/openstack-integration-and-configuration/add-openstack-cloud-provider-resource.md deleted file mode 100644 index b8768253de..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/openstack-integration-and-configuration/add-openstack-cloud-provider-resource.md +++ /dev/null @@ -1,148 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Add OpenStack Cloud Provider Resource - -The OpenStack 2nd Gen cloud provider enables the deployment of OpenStack instances from images. CloudShell supports OpenStack releases Ocata, Pike, Queens, Rocky, Stein, Train, Ussuri, Victoria and Wallaby. - -:::note Notes -- The OpenStack 2nd Gen shell is available for download from [Quali Repositories](https://github.com/orgs/QualiSystems/discussions/categories/integrations). -- OpenStack elements created by the CloudShell management network should not be altered as this may cause unexpected behavior. -::: -**To add an OpenStack cloud provider resource:** - -1. Log in to CloudShell Portal as administrator. -2. Import the OpenStack 2G shell into CloudShell. For details, see [Importing Shells](../../../cloudshell-manage-dashboard/managing-shells.md#importing-shells). - - ![](/Images/Admin-Guide/KubernetesDownloadShell.png) - -3. In the **Inventory** dashboard, in the **Resources** tab, click the folder in which you want to create the resource. -4. Click **\+ Add New**. -5. In the **Create New Resource** dialog box, select the **OpenStack Cloud Provider Shell 2G** cloud provider template. -6. Enter a **Name** for the OpenStack resource. - :::note - The resource's name has a limit of 100 characters and can only contain alpha-numeric characters, spaces, and the following characters: | . - \_ \] \[ - ::: -7. Enter the **IP Address** of the OpenStack server that will be used to deploy the virtual machines. -8. Click **Create**. - - The **Resource** dialog box is displayed. - - ![](/Images/Admin-Guide/Inventory-Operations/OpenstackResource.png) - -9. Enter the required information. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AttributeDescription
Controller URL - OpenStack Keystone Controller URL endpoint address. For example: http://controller:5000/v3. - - Displayed in OpenStack portal>**API Access** page>**Identity** value). -
OpenStack Domain NameOpenStack domain to use.
OpenStack Project NameOpenStack project in which CloudShell will create the instances.
OpenStack Management Network ID - UUID of the manually created CloudShell management network (for assistance identifying your management network, contact your OpenStack admin). This network will be used to configure the communication between the Sandbox instances and the CloudShell components. For example: "c14241d2-376c-4fb3-8d1e-61f5c1408448" - - The UUID can be found in the Horizon user interface or in OpenStack portal>**Network**\>**Networks** page>click the network and copy the **ID**. -
PasswordOpenStack user's password
UserOpenStack user on the OpenStack server
OpenStack Reserved Networks - Comma separated list (,) of reserved networks. vNICs configured to these networks will not be used for instance connectivity. - :::note - Ideally, one of the following three ranges should be free: 10.0.0.0/8, 172.16.0.0/16, 192.168.0.0/16 - ::: -
VLAN Type(**VLAN** / **VXLAN**) The VLAN technology to use for connectivity to/from this cloud provider.
Floating IP Subnet ID - UUID of the external network subnet that will allocate floating IDs to the OpenStack instances, to allow external connectivity into those instances. For additional details, see [OpenStack Configuration Requirements](./openstack-configuration-requirements.md). - - Displayed in OpenStack portal>**Network**\>**Networks** page>**Subnets** tab>select the subnet>**ID** value. For assistance identifying your Floating IP network, contact your OpenStack admin. -
OpenStack Physical Interface Name - (Not required if you set the **VLAN Type** attribute to **VXLAN**) The physical interface mapping name to use when configuring OpenStack connectivity. - - The physical interface can be found under the connectivity provider configuration in your OpenStack plugin's agent file. For example: - - - For Linux Bridge plugin: `/etc/neutron/plugins/ml2/linuxbridge_agent.ini` file > `[linux_bridge]` configuration section > `physical_interface_mappings` attribute. - - For example: `physical_interface_mappings = public:em1,office:p1p2,quali:em2`. - - - For Open vSwitch plugin: `/etc/neutron/plugins/ml2/openvswitch_agent.ini` file > `[ovs]` configuration section > `bridge_mappings` attribute. - - For example: `bridge_mappings = public:br-vlan`. -
Behavior During Save (Optional) - (Applies to the **Save and Restore** paid add-on) The VM's state while the sandbox is being saved. Options are **Remain Powered On** and **Power Off**. - - - **Inherit**: (Default) Uses the setting defined on the vCenter cloud provider resource - - **Remain Powered On**: The VM will remain powered on during the saving state. - - **Power Off**: If the VM was powered on before the sandbox entered the saving state, the VM will shut down (power off) for the duration of the save. - :::note - After save has ended, the VM returns to its state prior to saving, regardless of the behavior during the save. - ::: - If this field is left empty, the default value is **Remain Powered On**. -
Execution Server Selector - (Optional) This attribute points to a pre-defined group of execution servers (grouped by a common **Execution Server Selector** value). To make the association, enter the same value you specified on the execution server. - - This attribute is typically used for different sites or domains. For additional information on managing App deployments per domains, see [Managing Private Cloud Apps in Domains](../managing-private-cloud-apps-in-domains.md). -
- -10. Click **Start Discovery** to validate the OpenStack settings. - - When the discovery process completes, a confirmation message is displayed. The resource is displayed in the **Inventory** dashboard in CloudShell Portal and in Resource Manager. - - Apps can now be added using the OpenStack resource. For additional information, see [Adding App templates](../../../cloudshell-manage-dashboard/manage-app-templates/index.md). - - To customize the App deployment types and publish App orchestration parameters, see [Customizing App Deployment Types](../../customizing-app-deployment-types.md) - - -## Related Topics - -- [Adding Inventory Resources](../../../../portal/inventory/managing-resources/adding-inventory-resources/index.md) -- [Managing Private Cloud Apps in Domains](../managing-private-cloud-apps-in-domains.md) diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/openstack-integration-and-configuration/index.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/openstack-integration-and-configuration/index.md deleted file mode 100644 index 11ed8ec738..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/openstack-integration-and-configuration/index.md +++ /dev/null @@ -1,16 +0,0 @@ -# OpenStack Integration and Configuration - -The OpenStack 2nd Gen cloud provider enables the deployment of OpenStack instances from images. CloudShell supports OpenStack releases Ocata, Pike, Queens, Rocky, Stein, Train, Ussuri, Victoria and Wallaby. - -:::note Notes -- The OpenStack 2nd Gen shell is available for download from [Quali Repositories](https://github.com/orgs/QualiSystems/discussions/categories/integrations). -- OpenStack elements created by the CloudShell management network should not be altered as this may cause unexpected behavior. -::: - -# Related Topics - -- [OpenStack Configuration Requirements](./openstack-configuration-requirements.md) -- [Add OpenStack Cloud Provider Resource](./add-openstack-cloud-provider-resource.md) -- [Add an OpenStack App Template](./add-an-openstack-app-template.md) -- [OpenStack Known Limitations](./openstack-known-limitations.md) -- [Managing Private Cloud Apps in Domains](../managing-private-cloud-apps-in-domains.md) \ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/openstack-integration-and-configuration/openstack-configuration-requirements.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/openstack-integration-and-configuration/openstack-configuration-requirements.md deleted file mode 100644 index 9aefb9731a..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/openstack-integration-and-configuration/openstack-configuration-requirements.md +++ /dev/null @@ -1,121 +0,0 @@ ---- -sidebar_position: 1 ---- - -# OpenStack Configuration Requirements - -To enable CloudShell to deploy and manage the lifecycle of OpenStack instances, the following configurations and settings are required: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
RequirementDescription
OpenStack user - Permissions required from the user specified in the OpenStack cloud provider resource: - -- User should be admin on the project to enable the use of provider networks -- Create instances -- Create a network -- Create a subnet -- Access to images used for deployment -
Quotas - The following quotas should be provided: - -- Number of Cores and Number of Instances: Important to set the same value for these quotas. - -- Neutron number of networks and ports: It is recommended to specify the maximum number of quotas. - - Typically, about 3-4 ports are required per instance and hence the port quota should be sufficient. Also, note that for each instance, a port on the CloudShell Management network utilizes ports from this quota. - -- To use Server groups, you may need to increase the "server group members" quota. Note that a very high value for this quota along with an "anti-affinity" policy would mean so many different hosts should be available. -
Project Management Network - A network needs to be created to store instances deployed by CloudShell Apps: - -- Assign a subnet to the network. -- Make sure the network is not **external**. Every instance will have a network port on the management network. -- Set the network's **shared** flag to **True**. The network will be shared by instances (that are deployed across different sandboxes and potentially different tenants/projects. -- Make sure QualiX Server has a floating IP and is part of this network so that it can be accessed from external networks. -
Floating IP subnet network - - The subnet network must be **external**. -- The network should be "flat” – no need for segmentation. -- The network must be connected to a router. -- The floating IP is saved on the deployed app in the Public IP attribute -
Supported releases - CloudShell supports the following OpenStack releases: - -- Ocata -- Pike -- Queens -- Rocky -- Stein -- Train -- Ussuri -- Victoria -- Wallaby -
Supported API versions - - Nova API - Version 2 (tested and used features of base v2.0 - additional features supported by sub-releases 2.X are not used) -- Neutron API - Version 2 -- Keystone API - Version 3 -
Provider networksOpenStack provider networks are shared across all projects in your OpenStack installation. Therefore, to avoid ID collisions, make sure the VLAN services that will be used for OpenStack VM connectivity do not have overlapping allocation ranges for the same pool name. For information about setting up VLAN services, see [VLAN Connectivity](../../../setting-up-cloudshell/inventory-operations/connectivity-control/vlan-connectivity/index.md).
Project Security Group - To enable remote connections to OpenStack instances from CloudShell Portal (via QualiX), the following ports should be open on the project's Default Security Group: - -- ICMP Open - (Required unless a policy prevents ICMP) -- TCP Port 22 for SSH -- TCP port 80/443 if running a web-server (Required if running web services that require external access) -- TCP Port 3389 for RDP On Windows - -In addition, the QualiX Server VM must be assigned to the Project Security Group. -:::important -It is recommended to explicitly set the `Remote` property of the rules created in the Project Security Group. If CIDR is set, use the CloudShell management network's CIDR, for example: 172.16.1.0/24. If a security group is set, use the CloudShell management security group. -::: -:::note -The Project Security Group will be used for all OpenStack instances created by CloudShell. -::: -
Default Security Group - To enable OpenStack instances to receive a floating IP, a default security group must be defined in the OpenStack project to be used by the cloud provider resource. - -The default security group will be associated to all OpenStack instances that are deployed by Apps that use this cloud provider and have the **Add Floating IP** attribute set to **True**. -
VLAN Trunking(Applies to OpenStack Cloud Provider Shell version 1.2.0 and up) To allow CloudShell to create a new interface on the deployed App's VM for every VLAN service, make sure VLAN Trunking is enabled. For details, see this official OpenStack documentation page: [https://docs.openstack.org/neutron/pike/admin/config-trunking.html](https://docs.openstack.org/neutron/pike/admin/config-trunking.html).
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/openstack-integration-and-configuration/openstack-known-limitations.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/openstack-integration-and-configuration/openstack-known-limitations.md deleted file mode 100644 index 55f17c5481..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/openstack-integration-and-configuration/openstack-known-limitations.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -sidebar_position: 4 ---- - -# OpenStack Known Limitations - -Take the following under consideration when setting up OpenStack App deployment in CloudShell. - -- **OpenStack networking model**: OpenStack networking is not a Pure L2 model where ports are attached to switches and VLANs. This is more of an L2/L3 hybrid where each L2 network (broadcast domain) is also associated with an L3 Subnet. In CloudShell, this model is implemented using segmentation ID as VLAN or VxLAN. -- **Access/Trunk VLANs**: Currently, only **Access** mode is supported. In other words, end hosts are not VLAN-aware. VLAN trunking support is not present right now. -- **Attaching VLAN to vNIC**: Support for selecting a VLAN to attach to a vNIC does not exist right now due to limitations with the hybrid L2/L3 model. -- **VM access using keypairs**: Currently, username/password access to OpenStack instances is supported. Keypairs are currently not supported. -- **Hotplug interfaces**: CloudShell uses udev rules for auto detecting interfaces on the deployed OpenStack instances. Therefore, make sure the instance image has udev support and 'cloud-init' installed and enabled. Note that most of the standard cloud images have built-in udev support. - - To use ubuntu images, the 'GNOME NetworkManager' service must be disabled. - -- **App network CIDRs**: In CloudShell's implementation, support for /24 CIDRs is provided. This might limit the number of supported hosts on a subnet to 255. diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/_category_.json b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/_category_.json deleted file mode 100644 index 84bb4b3f77..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "VMware vCenter Integration and Configuration", - "position": 2 -} diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/add-a-vcenter-app-template.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/add-a-vcenter-app-template.md deleted file mode 100644 index f74cec4d12..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/add-a-vcenter-app-template.md +++ /dev/null @@ -1,729 +0,0 @@ ---- -sidebar_position: 4 ---- - -# Add a vCenter App Template - -The App template defines the settings and configurations of the VM to be deployed in the sandbox as well as the application(s) to be installed on that VM. - -**To add a new vCenter App template:** - -1. Click **\+ Add**. - - The **Create New App** wizard is displayed. - - ![](/Images/CloudShell-Portal/Manage/CreateNewApp.png) - -2. From the **Select Deployment Type** pane, select the desired vCenter deployment type. -3. Enter a **Name** for the App template. - :::note - The App template's name has a limit of 100 characters and can only contain alpha-numeric characters, spaces, and the following characters: | . - \_ \] \[ - ::: -4. Click **Create**. - - The App template is created and the **App** wizard's **General** page is displayed. - - ![](/Images/CloudShell-Portal/Manage/AppGeneralPage.png) - -5. In the **General** page, define the App template's display settings and category. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FieldRequiredDescription
NameRequiredApp name that is displayed in the catalog.
DescriptionOptionalDescription of the App.
IconOptionalAdd an image to the catalog definition. The recommended size for the image is 190x120 pixels (image size is limited to 400x400 pixels or 200 KB).
CategoriesOptional - Service categories are a method to classify Apps. The Apps are displayed in the **Add App / Service** side pane in the blueprint and sandbox diagram, arranged in categories. Only users who are permitted to view the category can access the App. Apps without a category are not displayed. - - By default, the **Applications** category is selected. - - Select a category from the dropdown list. You can select additional categories. Examples of categories are: applications, networking and VLAN. - - :::note Notes - - The category must be associated with the domain in which the required cloud provider resides. For information about domain categories, see [Managing domain categories](../../../cloudshell-manage-dashboard/managing-categories.md#managing-domain-categories). - - It is recommended to use up to a 2-level hierarchy when organizing the **Add App / Service** catalog (i.e. root and sub-category). - - In the **Add App / Service** side pane, Apps are displayed in the root category only. This includes services associated to sub-categories. - ::: -
- -6. In the left pane, click **Deployment Paths** and configure the App template's deployment path. - - A deployment path consists of (1) the selected deployment type (the method to be used to deploy the VM), (2) the VM’s settings such as storage size, CPU and image file, and (3) the CloudShell cloud provider resource that enables CloudShell to access the cloud provider and deploy the VM on it. - - Note the deployment path's name (highlighted in the image below). The path's name is dynamic and consists of the selected **Cloud Provider** resource and **Deployment type**. You can change the name of the path by clicking the field. - - ![](/Images/Admin-Guide/Inventory-Operations/vCenterDeploymentPathName.png) - - 1. From the **Deployment** drop down list, select the deployment type. - - The selected deployment type's attributes are displayed. - :::important - Deployment types related to the vCenter 2nd Gen cloud provider shell include "2G" in the title (for example: "vCenter VM From Template 2G"). - ::: - 2. Fill in the details. - -
- For **vCenter Clone VM From VM** attributes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AttributevCenter shell versionDescription
Cloud ProviderAllName of the vCenter cloud provider resource to be used
vCenter VMAllFull path to the VM that will be used to clone a new VM, relative to the datacenter. For example: `My-Folder/My-VM`
Behavior During Save (optional)All - (Applies to the **Save and Restore** paid add-on) The VM's state while the sandbox is being saved. Options are **Remain Powered On** and **Power Off**. - - - **Inherit**: (Default) Uses the setting defined on the vCenter cloud provider resource - - **Remain Powered On**: The VM will remain powered on during the saving state. - - **Power Off**: If the VM was powered on before the sandbox entered the saving state, the VM will shut down (power off) for the duration of the save. - - - :::note Notes - - The value configured here overrides the configuration in the vCenter cloud provider resource, see [Add VMware vCenter Cloud Provider Resource](./add-vmware-vcenter-cloud-provider-resource.md). - - After save has ended, the VM returns to its state prior to saving, regardless of the behavior during the save. - ::: -
Saved Sandbox StorageAll - (Applies to the **Save and Restore** paid add-on) During the saving process, CloudShell creates a clone of the sandbox's App VMs in this vCenter storage, which CloudShell will later use to restore the VM when the user restores the saved sandbox. See [Save a Sandbox](../../../../portal/sandboxes/sandbox-workspace/save-sandbox.md) for more information. - - For storage purposes, these VM clones can be stored in a different data storage than the one configured in the **VM Storage** attribute defined on the vCenter cloud provider resource. The storage can be either a datastore or a datastore cluster. For example: datastore1 or clustername/datastore1. - - - **Note**: The value configured here overrides the configuration in the vCenter cloud provider resource, see [Add VMware vCenter Cloud Provider Resource](./add-vmware-vcenter-cloud-provider-resource.md). -
Customization Spec2nd Gen onlyName of the vSphere VM Customization Specification to apply to the App's VM.
Hostname2nd Gen only - (Only applies to Windows and Linux VMs) The hostname to set on the VM. - :::note Notes - If **Customization Spec** is specified, the value specified in the **Hostname** attribute will be used. **If Customization Spec** is not specified, a new one will be created for the VM. For Windows VMs, make sure to specify a password in the App resource page. - ::: -
Private IP2nd Gen only - (Only applies to Windows and Linux VMs) The private static IP to set on the first vNIC of the VM. If there's a default gateway, specify it after the private IP. For example: "192.168.4.124:80.114.1.87" where 80.114.1.87 is the default gateway - - :::note Notes - - If there is no gateway, the .1 IP of the same subnet will be used as the gateway. So, for private IP "192.168.4.124", gateway "192.168.4.1" will be used. - - It is also possible to provide a subnet mask here. For example: "192.168.4.124/24:80.114.1.87" - - If **Customization Spec** is specified, the value specified in the **Private IP** attribute will be used. - - If **Customization Spec** is not specified, a new one will be created for the VM. For Windows VMs, make sure to specify a **Password** in the **App resource** page. - - If **Customization Spec** is specified, the value specified in the **Private IP** attribute will be used. If **Customization Spec** is not specified, a new one will be created for the VM. For Windows VMs, make sure to specify a **Password** in the **App resource** page. - ::: -
CPU2nd Gen onlyNumber of CPU core s to configure on the VM.
RAM2nd Gen onlyAmount of RAM (GB) to configure on the VM.
HDD2nd Gen onlyAllows to add/edit hard disk size to the VM. The syntax is semi-colon separated disk pairs 'Hard Disk Label: Disk Size (GB)'. For example: 'Hard Disk 1:100;Hard Disk 2:200'. Short-hand format is also valid: '1:100;2:200'.
-
- -
- For **VCenter Deploy VM From Linked Clone** attributes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AttributevCenter shell versionDescription
Cloud ProviderAllName of the vCenter cloud provider resource to be used
vCenter VMAllFull path to the VM containing the snapshot that will be used to clone a new VM, relative to the datacenter.
vCenter VM SnapshotAll - Full path to the virtual machine snapshot that will be used to clone a new VM. For example Snapshot1/Snapshot2 - - This snapshot should be associated with the VM defined in the **vCenter VM** input. -
Behavior During SaveAll - (Applies to the **Save and Restore** paid add-on) The VM's state while the sandbox is being saved. Options are **Remain Powered On** and **Power Off**. - - - **Inherit**: (Default) Uses the setting defined on the vCenter cloud provider resource - - **Remain Powered On**: The VM will remain powered on during the saving state. - - **Power Off**: If the VM was powered on before the sandbox entered the saving state, the VM will shut down (power off) for the duration of the save. - - - :::note Notes - - The value configured here overrides the configuration in the vCenter cloud provider resource, see [Add VMware vCenter Cloud Provider Resource](./add-vmware-vcenter-cloud-provider-resource.md). - - After save has ended, the VM returns to its state prior to saving, regardless of the behavior during the save. - ::: -
Saved Sandbox StorageAll - (Applies to the **Save and Restore** paid add-on) During the saving process, CloudShell creates a clone of the sandbox's App VMs in this vCenter storage, which CloudShell will later use to restore the VM when the user restores the saved sandbox. See [Save a Sandbox](../../../../portal/sandboxes/sandbox-workspace/save-sandbox.md) for more information. - - For storage purposes, these VM clones can be stored in a different data storage than the one configured in the **VM Storage** attribute defined on the vCenter cloud provider resource. The storage can be either a datastore or a datastore cluster. For example: datastore1 or clustername/datastore1. - :::note - The value configured here overrides the configuration in the vCenter cloud provider resource, see [Add VMware vCenter Cloud Provider Resource](./add-vmware-vcenter-cloud-provider-resource.md). - ::: -
Customization Spec2nd Gen onlyName of the vSphere VM Customization Specification to apply to the App's VM.
Hostname2nd Gen only - (Only applies to Windows and Linux VMs) The hostname to set on the VM. - :::note Notes - If **Customization Spec** is specified, the value specified in the **Hostname** attribute will be used. If **Customization Spec** is not specified, a new one will be created for the VM. For Windows VMs, make sure to specify a password in the App resource page - ::: -
Private IP2nd Gen only - (Only applies to Windows and Linux VMs) The private static IP to set on the first vNIC of the VM. If there's a default gateway, specify it after the private IP. For example: "192.168.4.124:80.114.1.87" where 80.114.1.87 is the default gateway - - :::note Notes - - If there is no gateway, the .1 IP of the same subnet will be used as the gateway. So, for private IP "192.168.4.124", gateway "192.168.4.1" will be used. - - It is also possible to provide a subnet mask here. For example: "192.168.4.124/24:80.114.1.87" - - If **Customization Spec** is specified, the value specified in the **Private IP** attribute will be used. - - If **Customization Spec** is not specified, a new one will be created for the VM. For Windows VMs, make sure to specify a **Password** in the **App resource** page. - - If **Customization Spec** is specified, the value specified in the **Private IP** attribute will be used. If **Customization Spec** is not specified, a new one will be created for the VM. For Windows VMs, make sure to specify a **Password** in the **App resource** page. - ::: -
CPU2nd Gen onlyNumber of CPU core s to configure on the VM.
RAM2nd Gen onlyAmount of RAM (GB) to configure on the VM.
HDD2nd Gen onlyAllows to add/edit hard disk size to the VM. The syntax is semi-colon separated disk pairs 'Hard Disk Label: Disk Size (GB)'. For example: 'Hard Disk 1:100;Hard Disk 2:200'. Short-hand format is also valid: '1:100;2:200'.
-
- -
- For **vCenter VM From Image** attributes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AttributevCenter shell versionDescription
Cloud ProviderAllName of the vCenter cloud provider resource to be used
vCenter ImageAll - Full path to the vCenter OVF image file, relative to the datacenter. For example: `My-OVF-Images/Image.ovf` - :::note - Path must be accessible to all execution servers. OVF tool must be installed on all execution servers. - ::: -
vCenter NameAllName of the vCenter resource to be used
vCenter Image ArgumentsAll - (Optional) vCenter-specific arguments to use when deploying the virtual machine. - - Example for OVF: - - `--allowExtraConfig --prop:Hostname=ASAvtest --prop:HARole=Standalone --prop:SSHEnable=True --prop:DHCP=True --net:Management0-0='Office LAN 41' --net:GigabitEthernet0-0='VLAN_access_101'` -
Behavior During SaveAll - (Applies to the **Save and Restore** paid add-on) The VM's state while the sandbox is being saved. Options are **Remain Powered On** and **Power Off**. - - - **Inherit**: (Default) Uses the setting defined on the vCenter cloud provider resource - - **Remain Powered On**: The VM will remain powered on during the saving state. - - **Power Off**: If the VM was powered on before the sandbox entered the saving state, the VM will shut down (power off) for the duration of the save. - - - :::note Notes - - The value configured here overrides the configuration in the vCenter cloud provider resource, see [Add VMware vCenter Cloud Provider Resource](./add-vmware-vcenter-cloud-provider-resource.md). - - After save has ended, the VM returns to its state prior to saving, regardless of the behavior during the save. - ::: -
Saved Sandbox StorageAll - (Applies to the **Save and Restore** paid add-on) During the saving process, CloudShell creates a clone of the sandbox's App VMs in this vCenter storage, which CloudShell will later use to restore the VM when the user restores the saved sandbox. See [Save a Sandbox](../../../../portal/sandboxes/sandbox-workspace/save-sandbox.md) for more information. - - For storage purposes, these VM clones can be stored in a different data storage than the one configured in the **VM Storage** attribute defined on the vCenter cloud provider resource. The storage can be either a datastore or a datastore cluster. For example: datastore1 or clustername/datastore1. - :::note - The value configured here overrides the configuration in the vCenter cloud provider resource, see [Add VMware vCenter Cloud Provider Resource](./add-vmware-vcenter-cloud-provider-resource.md). - ::: -
Customization Spec2nd Gen onlyName of the vSphere VM Customization Specification to apply to the App's VM.
Hostname2nd Gen only - (Only applies to Windows and Linux VMs) The hostname to set on the VM. - :::note Notes - If **Customization Spec** is specified, the value specified in the **Hostname** attribute will be used. If **Customization Spec** is not specified, a new one will be created for the VM. For Windows VMs, make sure to specify a password in the App resource page - ::: -
Private IP2nd Gen only - (Only applies to Windows and Linux VMs) The private static IP to set on the first vNIC of the VM. If there's a default gateway, specify it after the private IP. For example: "192.168.4.124:80.114.1.87" where 80.114.1.87 is the default gateway - - :::note Notes - - If there is no gateway, the .1 IP of the same subnet will be used as the gateway. So, for private IP "192.168.4.124", gateway "192.168.4.1" will be used. - - It is also possible to provide a subnet mask here. For example: "192.168.4.124/24:80.114.1.87" - - If **Customization Spec** is specified, the value specified in the **Private IP** attribute will be used. - - If **Customization Spec** is not specified, a new one will be created for the VM. For Windows VMs, make sure to specify a **Password** in the **App resource** page. - - If **Customization Spec** is specified, the value specified in the **Private IP** attribute will be used. If **Customization Spec** is not specified, a new one will be created for the VM. For Windows VMs, make sure to specify a **Password** in the **App resource** page. - ::: -
CPU2nd Gen onlyNumber of CPU core s to configure on the VM.
RAM2nd Gen onlyAmount of RAM (GB) to configure on the VM.
HDD2nd Gen onlyAllows to add/edit hard disk size to the VM. The syntax is semi-colon separated disk pairs 'Hard Disk Label: Disk Size (GB)'. For example: 'Hard Disk 1:100;Hard Disk 2:200'. Short-hand format is also valid: '1:100;2:200'.
-
- -
- For **vCenter VM From Template** attributes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AttributevCenter shell versionDescription
Cloud ProviderAllName of the vCenter cloud provider resource to be used
vCenter TemplateAll - Path to the vCenter template to use in the virtual machine's creation. Path is relative to the datacenter and must include the template name, for example: `My-Templates/Template1` -
Behavior During SaveAll - (Applies to the **Save and Restore** paid add-on) The VM's state while the sandbox is being saved. Options are **Remain Powered On** and **Power Off**. - - - **Inherit**: (Default) Uses the setting defined on the vCenter cloud provider resource - - **Remain Powered On**: The VM will remain powered on during the saving state. - - **Power Off**: If the VM was powered on before the sandbox entered the saving state, the VM will shut down (power off) for the duration of the save. - - - :::note Notes - - The value configured here overrides the configuration in the vCenter cloud provider resource, see [Add VMware vCenter Cloud Provider Resource](./add-vmware-vcenter-cloud-provider-resource.md). - - After save has ended, the VM returns to its state prior to saving, regardless of the behavior during the save. - ::: -
Saved Sandbox StorageAll - (Applies to the **Save and Restore** paid add-on) During the saving process, CloudShell creates a clone of the sandbox's App VMs in this vCenter storage, which CloudShell will later use to restore the VM when the user restores the saved sandbox. See [Save a Sandbox](../../../../portal/sandboxes/sandbox-workspace/save-sandbox.md) for more information. - - For storage purposes, these VM clones can be stored in a different data storage than the one configured in the **VM Storage** attribute defined on the vCenter cloud provider resource. The storage can be either a datastore or a datastore cluster. For example: datastore1 or clustername/datastore1. - :::note - The value configured here overrides the configuration in the vCenter cloud provider resource, see [Add VMware vCenter Cloud Provider Resource](./add-vmware-vcenter-cloud-provider-resource.md). - ::: -
Customization Spec2nd Gen onlyName of the vSphere VM Customization Specification to apply to the App's VM.
Hostname2nd Gen only - (Only applies to Windows and Linux VMs) The hostname to set on the VM. - :::note Notes - If **Customization Spec** is specified, the value specified in the **Hostname** attribute will be used. If **Customization Spec** is not specified, a new one will be created for the VM. For Windows VMs, make sure to specify a password in the App resource page - ::: -
Private IP2nd Gen only - (Only applies to Windows and Linux VMs) The private static IP to set on the first vNIC of the VM. If there's a default gateway, specify it after the private IP. For example: "192.168.4.124:80.114.1.87" where 80.114.1.87 is the default gateway - - :::note Notes - - If there is no gateway, the .1 IP of the same subnet will be used as the gateway. So, for private IP "192.168.4.124", gateway "192.168.4.1" will be used. - - It is also possible to provide a subnet mask here. For example: "192.168.4.124/24:80.114.1.87" - - If **Customization Spec** is specified, the value specified in the **Private IP** attribute will be used. - - If **Customization Spec** is not specified, a new one will be created for the VM. For Windows VMs, make sure to specify a **Password** in the **App resource** page. - - If **Customization Spec** is specified, the value specified in the **Private IP** attribute will be used. If **Customization Spec** is not specified, a new one will be created for the VM. For Windows VMs, make sure to specify a **Password** in the **App resource** page. - ::: -
CPU2nd Gen onlyNumber of CPU core s to configure on the VM.
RAM2nd Gen onlyAmount of RAM (GB) to configure on the VM.
HDD2nd Gen onlyAllows to add/edit hard disk size to the VM. The syntax is semi-colon separated disk pairs 'Hard Disk Label: Disk Size (GB)'. For example: 'Hard Disk 1:100;Hard Disk 2:200'. Short-hand format is also valid: '1:100;2:200'.
-
- -7. To add additional deployment paths to the App template, click the **Add New Deployment Path** link at the bottom of the wizard and fill in the required information. -8. In the left pane, click **Configuration Management** and configure the application to be installed on the VM. - - ![](/Images/CloudShell-Portal/Manage/ConfigurationManagement.png) - :::tip - To learn how to develop custom scripts and Ansible playbooks, including examples, and set up support for the desired configuration management tool, see [Developing Configuration Management Scripts for Apps](../../../../devguide/develop-config-management-scripts-for-apps/index.md). - ::: - :::note Notes - - To run configuration management on an Azure App, make sure the App's VM size is Basic\_A2 or larger. - - For configuration management operations, CloudShell uses an available Execution Server (for Ansible, it's a Linux Execution Server that has the **Supports Ansible** flag). - - If the cloud provider resource has an **Execution Server Selector** configured, it will use that selector. If the selector is empty, CloudShell will use the selector defined in the appropriate **Resource Manager Client \>Configuration Services** model (**Ansible Configuration** or **Custom Script Configuration**). - - - Execution Server selectors specified on the deployed App shell/resource are not used to execute configuration management operations. - ::: - - 1. Define the script or playbook to install. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AttributeDescription
Select Tool - Select the application's installation and configuration tool. - - - **None**: Do not use any Configuration Management option. Use this option if, for example, the image or template already contains the application to install. - - **Script**: Select the custom script to run (PowerShell, bash or sh). - - **Ansible**: (Intended for customers who are already using Ansible) Select the Ansible playbook to run. - :::note - The playbook runs once during the **Setup** phase for all of the sandbox's Apps that use that playbook, after CloudShell has finished deploying their VMs. This is done both to improve performance and support cross-server logic where multiple applications need to be installed and configured in a certain way. - ::: - Note that the playbook runs once for all of the sandbox's Apps that use that playbook, after CloudShell has finished deploying their VMs. - - - Depending on the selection, additional options may become available. -
Connection Method - The method to use to connect to the VM. - - Select: - - - **SSH** if the VM has a Linux OS - - **Windows Remote Management** if the VM has a Windows OS - :::note - To run configuration management on a Windows VM, the VM must have WinRM enabled. For details, see [Enable WinRM on Windows VMs to Support Configuration Management](../../../../devguide/enable-winrm-on-win-vm-for-cfg-mng.md). - ::: -
Playbook / Script Location - Details of the Ansible playbook or custom script. - - - **URL**: Raw URL of the Ansible playbook or ZIP file, or custom script on the online repository (GitHub, GitLab and BitBucket are supported). URL must be accessible to the Execution Servers. - :::tip - The URL can accept parameters defined on the App, enabling you to test new versions of scripts without affecting consumer-ready versions. For example, you can have an App everyone is using, but if you want to test a version you're developing, simply change the value of the URL parameter in the test blueprint. - - - To use parameters, specify the parameter name in curly brackets (for example: **\{branch\}**). - - If the App has this parameter, CloudShell will replace the **\{branch\}** with its value during execution. - - If the parameter is missing, CloudShell will replace **\{branch\}** with an empty string. - - If you are using a global input, customers would be well advised to set a default value on the global input - ::: - **For GitHub, specify the raw URL. For example:** - - ```javascript - https://raw.githubusercontent.com/.../site.yml - ``` - - **For GitLab, specify the API endpoint in the format:** - - ```javascript - https://gitlab.com/api/v4/projects/{Project ID}/repository/files/testsharding%2Eyml/raw?ref=master - ``` - - Where: - - - Each special character that the file contains has to be encoded. In the example above - "%2E” is an encoded point (".”) - - - The ref value is the branch name (master for this example) - - - **For BitBucket Data Center (on premise), use the following URL format:** - - ```javascript - http://{datacenter server IP}/rest/api/1.0/projects/{projectKey}/repos/{repository name}/raw/testsharding.yml - ``` - - **For BitBucket Cloud, use one of the following:** - - - For source code files, specify the API endpoint: - - ```javascript - https://api.bitbucket.org/2.0/repositories/{workspace}/{repository name}/src/{GUID- the Commit hash string}/testsharding.yml - ``` - - - For download files (files residing in the repository's "Downloads" folder), specify this endpoint: - - ```javascript - https://api.bitbucket.org/2.0/repositories/{workspace}/{repository name}/downloads/site.yml - ``` - - :::important - If the URL is private (HTTPS), the VM will need to have a valid SSL certificate. To disable the certificate check, open Resource Manager **Client>Resource Families>Configuration Services** (**Ansible Configuration** or **Custom Script Configuration**) and set the **Verify Certificate** attribute to **False**. - ::: - - **User/Password**: (For private repositories) Access credentials or token to the script/playbook's online repository. - - - **Token**: (For private repositories) Access token to the script/playbook's online repository. - - For GitHub and GitLab, specify the API token. For BitBucket Cloud, set the repo's "App Password" in the App template's Password field. For BitBucket Data Center, specify the personal access token. - - - :::note Notes - - For **Custom Script configurations**: In SSH mode, only bash and sh scripts are allowed. In WinRM mode, only PowerShell scripts are allowed. WinRM over HTTPS only applies to custom scripts at this time. If WinRM is configured to run over HTTPS, the execution server will first try to run the custom script over HTTPS and then fall back to HTTP if HTTPS is unsuccessful. To prevent the fallback, set the **winrm_transport** parameter to **ssl**. - - **For Ansible configurations**: The Ansible playbook must be a YML or YAML file. To specify multiple playbooks or a hierarchy of an Ansible project, you can specify multiple Ansible playbooks or a ZIP package. For example: `https://raw.githubusercontent.com/QualiSystemsLab/private-repo-zip-download/master/README.zip` - - If a ZIP containing 2 or more playbooks is specified, CloudShell will use the playbook file titled `site.yml` or `site.yaml`. If the file is missing, the App's deployment will fail. - ::: -
Inventory Groups - (For Ansible) Specify the host groups for the application to be installed, separated by semicolons (;). The newly deployed VM will be associated to these groups, thus allowing plays that target these groups to run on the VM. - - For example: `Servers/AppServers;Servers/DBServers` -
Parameters - Parameters to be passed to the Ansible playbook or custom script. Specify the parameters and their default values. - - In the blueprint or sandbox diagram, privileged users can also set the parameter to receive the value that is specified for a global input when reserving a sandbox containing the App. This is done by selecting the global input when editing the App in the blueprint or sandbox diagram. For example, a global input that specifies the build number of a product to be tested or which components of a product to install. - :::important - (For Ansible) To customize the port to be used to communicate with the VM, add the `Ansible_port` parameter. Default: `SSH` / `Port: 22` / `WinRM: 5985`. - ::: -
Additional Arguments - (For Ansible) Define arguments to be passed to the execution of the playbook (`Ansible-playbook` command). For example, `-v` will set verbose mode on while `-f` will set the maximum number of VMs to be handled in parallel. Multiple arguments can be given, separated by spaces. For additional information on possible arguments, see the official Ansible documentation. - - The arguments must be specified in **Resource Manager Client > Configuration Services** family > **Ansible Configuration** model > **Ansible Additional Arguments** attribute. - :::note - The arguments are defined globally for all Apps using Ansible. - ::: - :::important - To configure Ansible to connect to certified hosts only (Linux VMs with a valid 'known\_hosts' key), include the following additional arguments: `--ssh-extra-args='-o StrictHostKeyChecking=yes'` - ::: -
- - 1. To enable the end-user to rerun the App's configuration management on the deployed App in the sandbox, select **Allow rerunning configuration management for resources deployed from the App**. Once the App's deployment completes, a **Rerun Configuration Management** command is included in the deployed App's **Application Commands** pane. For details, see [Run App Commands](../../../../portal/sandboxes/sandbox-workspace/apps/run-app-commands.md). This is useful for rolling back the App's VM to its original state. - 2. To enable blueprint and sandbox owners to modify the App's Configuration Management details, select **Allow blueprint/sandbox owners to modify the App's Configuration Management**. The following details can be modified: playbook/script, authentication details, inventory groups, and parameters. Note that the modifications only apply to the blueprint or sandbox of the instance. - 3. Optionally click the **Add New Script/Playbook** link at the bottom right to add additional custom scripts/Ansible playbooks to the App. The scripts will run in their display order, from top to bottom. You can drag scripts up or down to rearrange. - 4. To change the script's alias, click the script's name and change as appropriate. - ![](/Images/CloudShell-Portal/Manage/RenameConfigManageScript.png) - -9. In the left pane, click **App Resource** to optionally set the VM's operating system user credentials (for example, to connect to the VM via RDP or SSH). You can also change the deployed App's Shell. - - ![](/Images/CloudShell-Portal/Manage/AppResource.png) - :::important - To help sandbox end-users connect to the VM, it is recommended to include the **User** and **Password** in the blueprint's instructions. For additional information, see [Add Instructions](../../../../portal/blueprints/creating-blueprints/add-instructions.md). - ::: - - - - - - - - - - - - - - - - - - - - -
AttributeDescription
Shell - The Shell on which the App's VMs are based. When an App is deployed in a sandbox, it changes into a "deployed App resource", which is based on the selected Shell. By default, the "Generic App Model" Shell is used. - - Deployed Apps include a default set of commands such as Power On and Refresh IP, and the VM's **User** and **Password** attributes, as explained below. - :::note - Changing the Shell might cause additional fields to become visible and you may need to enter further information. - ::: -
User - User defined in the App's image. The **User/Password** credentials are used by QualiX to create in-browser connections to the VM from within the sandbox. - - :::note Notes - - For AWS instances,make sure to set the **User** of a user that already exists on the Amazon machine image. For custom images, the image owner should know the credentials, while community/marketplace images have the image's credentials listed in their documentation. - - Azure VM username and password restrictions apply. For details, see [Frequently asked question about Windows Virtual Machines](https://docs.microsoft.com/en-us/azure/virtual-machines/windows/faq). - - For Azure Marketplace images, CloudShell will create a user on the VM based on the **User/Password** credentials you specify. - - For Azure Marketplace VMs, if the user is not set, CloudShell will set **adminuser** as the default user name. - ::: -
Password - VM user's password. - - :::note Notes - - For AWS Marketplace images, leave the **Password** empty. The AWS shell generates a new key-pair for each sandbox, which QualiX will use to establish the in-browser connection. - - For Azure Marketplace images: - - If the password is not set, only the user name will be required. For Linux VMs, CloudShell will create an SSH key-pair to enable a secure connection. - - If the password is set, it will be displayed as asterisks (\*\*\*\*\*\*) in the blueprint or sandbox. - ::: -
- -10. Click **Done**. - - The new App template is displayed in the **Apps** page. \ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/add-vmware-vcenter-cloud-provider-resource.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/add-vmware-vcenter-cloud-provider-resource.md deleted file mode 100644 index 5cf3dabd86..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/add-vmware-vcenter-cloud-provider-resource.md +++ /dev/null @@ -1,225 +0,0 @@ ---- -sidebar_position: 3 ---- - -# Add VMware vCenter Cloud Provider Resource - -This article explains how to configure a vCenter cloud provider resource. The **VMware vCenter** cloud provider enables the deployment of virtual machines from vCenter templates, images, clones (existing vCenter VMs) and linked clones (snapshots of existing vCenter VMs). Each deployment type includes the required settings, attributes, and commands. For a video tutorial on how to set up the resource, watch the video at the bottom of the article. -:::tip -We strongly recommend using the 2nd Gen version of the shell, which provides significant enhancements and capabilities, and is tamper-resistant from within CloudShell, ensuring your Azure cloud provider resources and Apps are in pristine condition. Useful articles: [Replacing the 1st Gen shell with a 2nd Gen version](../../../../devguide/reference/migrate-1st-gen-shell-to-2nd-gen-shell.md#replacing-the-1st-gen-shell-with-a-2nd-gen-version), [Cloud Provider Shells - Features and Capabilities Per Release](../../cloud-provider-2g-shells-features-and-capabilities.md). -::: -:::note Notes -- vCenter elements created by CloudShell should not be altered as this may cause unexpected behavior. -- The supported versions are vSphere 5.5 - 6.5, 6.7, 7. -::: -**To add a vCenter cloud provider resource:** - -1. Log in to the CloudShell domain in which this resource will reside. This will enable the Apps based on this cloud provider resource to be usable in this domain. -2. In the **Inventory** dashboard, in the **Resources** tab, click the folder in which you want to create the resource. -3. Click **\+ Add New**. -4. In the **Create New Resource** dialog box, select the **vCenter** cloud provider template. To use the vCenter 2nd Gen shell, select **VMware vCenter Cloud Provider 2G**. -5. Enter a **Name** for the vCenter resource. - :::note - The resource's name has a limit of 100 characters and can only contain alpha-numeric characters, spaces, and the following characters: | . - \_ \] \[ - ::: -6. Enter the **IP Address**s of the vCenter server that will be used to deploy the virtual machines. -7. Click **Create**. - - The Resource dialog box is displayed. - - ![](/Images/Admin-Guide/Inventory-Operations/AppsResourceDiscoveryInformation.png) - -8. Enter the required information. Unless specified differently, paths are relative to the datacenter so for example, to specify VM storage "datastore cluster" that is under datacenter "QualiSB", enter "datastore cluster" in the **VM Storage** field. For guidance on finding each element in your vCenter server, see [vCenter cheatsheet for versions 5.5-6.5](/attachments/VCenter_5.5_6.5_Cloud_Provider_Resource_Configuration_Cheetsheet.pdf) or [vCenter cheatsheet for version 6.7 and above](/attachments/VCenter_6.7_Cloud_Provider_Resource_Configuration_Cheetsheet.pdf). - :::note - All vCenter elements must be located under the same data center. - ::: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AttributeSupporting shell versionDescription
AddressAllIP address of the vCenter server
UserAll - User on the vCenter server. - - The user must be assigned to the root level of the vCenter server with the necessary permissions. For details, see [Required vCenter User Permissions per Deployment Type](./required-vcenter-user-permissions-per-deployment-type.md). -
PasswordAll - vCenter user's password - :::important - Password must not include a # character. - ::: -
Default DatacenterAllDatacenter within the vCenter that will be used for virtual machine deployment. All other settings of this vCenter resource should refer to entities associated with this datacenter.
VM StorageAll - vCenter storage in which the VMs will be created. The storage can be either a datastore or a datastore cluster. For example: datastore1 - :::note - To use a specific datastore that resides inside a cluster, specify the cluster name and the datastore name. For example: clustername/storage1 - ::: -
Holding NetworkAll - Default network to be used for the VM’s vNICs when disconnecting them from another network. A distributed port group can also be specified. - - Specify a network under the specified dvSwitch. Do not include the **dvSwitch** name in the path. - :::note - Only vNICs in this holding network will be used when connecting Apps based on this cloud provider resource in the sandbox. - ::: -
VM LocationAll - Folder in the vSphere datacenter (defined in the **VM Storage** attribute) in which the VM will be created. Default is **Qualisystems**. - - From CloudShell version 9.0, two folders are created within this folder, as needed: `Deployed Apps` and `Saved Sandboxes`. The `Deployed Apps` folder holds the deployed VM Apps and, if you have saved a sandbox as part of the **Save and Restore** paid add-on, the `Saved Sandboxes` folder is created to hold the VM artifacts created when a user saves a sandbox. -
Default dvSwitchAll - (Optional if connectivity is not required) Default vCenter dvSwitch to be used when configuring virtual machine connectivity. Using the vCenter 2nd Gen shell, vSwitch is also supported. - :::important - CloudShell needs to create port groups in the dvSwitch in order to use Apps. Therefore, make sure you have an appropriate VMWare license that provides this capability. - ::: -
VM ClusterAll - vCenter cluster or host to use when deploying a virtual machine. To specify a host instead of a cluster, use: Cluster Name/Host IP. - - :::note Notes - - If the cluster is in **Under Maintenance** mode, the deployment may fail. - - Discovery of the resource will fail if your vCenter server has a datastore cluster folder with the same name as the specified VM cluster. - ::: -
VM Resource PoolAllResource pool in which the virtual machine is created. Specify a resource pool under the specified **VM Cluster**. Do not include the **VM Cluster** name in the path. Leave this field empty if you specified a specific host name in the **VM Cluster** field or if you don't want to use a resource pool.
Shutdown MethodAll - Shutdown method to be used when powering off the VM. Options are **Hard** and **Soft**. - - - **Hard**: (Default - starting with vCenter shell 4.2.0) Shuts down the virtual machine without shutting down any running applications - - **Soft**: Shuts down all running applications on the virtual machine before shutting down the virtual machine. - :::note - **Soft** shutdowns require VMware Tools to be installed on the VM. - ::: -
Execution Server SelectorAll - (Optional) This attribute points to a pre-defined group of execution servers (grouped by a common **Execution Server Selector** value). To make the association, enter the same value you specified on the execution server. - - For additional information on managing App deployments per domains, see [Managing Private Cloud Apps in Domains](../managing-private-cloud-apps-in-domains.md). - :::note - App deployment requires a minimum number of slots to be available. See [Number of execution slots for VM deployments](../../../cloudshell-execution-server-configurations/setting-up-execution-servers-to-run-commands.md#number-of-execution-slots-for-vm-deployments). - ::: -
OVF Tool PathAll - (Relevant when deploying vCenter VM from an image) Path to the OVF tool installation. Use the same path for all execution servers. - :::note - This path must be accessible to all execution servers that will be used to deploy Apps. - ::: -
Reserved NetworksAll(Optional) Comma-separated list of reserved networks. vNICs configured to these networks will not be used for VM connectivity.
Behavior During Save (optional)All - (Applies to the **Save and Restore** paid add-on) The VM's state while the sandbox is being saved. Options are **Remain Powered On** and **Power Off**. - - - **Inherit**: (Default) Uses the setting defined on the vCenter cloud provider resource - - **Remain Powered On**: The VM will remain powered on during the saving state. - - **Power Off**: If the VM was powered on before the sandbox entered the saving state, the VM will shut down (power off) for the duration of the save. - :::note - After save has ended, the VM returns to its state prior to saving, regardless of the behavior during the save. - ::: - - If this field is left empty, the default value is **Remain Powered On**. -
Saved Sandbox StorageAll - (Applies to the **Save and Restore** paid add-on) During the saving process, CloudShell creates a clone of the sandbox's App VMs in this vCenter storage, which CloudShell will later use to restore the VM when the user restores the saved sandbox. See [Save a Sandbox](../../../../portal/sandboxes/sandbox-workspace/save-sandbox.md) for more information. - - For storage purposes, these VM clones can be stored in a different data storage than the one configured in the **VM Storage** attribute defined on the vCenter cloud provider resource. The storage can be either a datastore or a datastore cluster. For example: datastore1 or clustername/datastore1. - - If this field is left empty, the default is the value configured in **VM Storage**. -
Promiscuous ModeAll(Optional) Configures the port groups on the virtual switch to allow all incoming traffic. This setting is enabled by default.
Enable Tags2nd Gen(Applies to vCenter 6.5 and above) If enabled, vSphere tags will be added to new vSphere inventory objects created by the Shell - folders, networks, VMs, etc.
- -9. Click **Start Discovery** to validate the vCenter settings. - - When the discovery process completes, a confirmation message is displayed. The resource is displayed in the **Inventory** dashboard in CloudShell Portal and in Resource Manager. - - Apps can now be added using the vCenter resource. For additional information, see [Adding App templates](../../../cloudshell-manage-dashboard/manage-app-templates/index.md#adding-app-templates). - - To customize the App deployment types and publish App orchestration parameters, see [Customizing App Deployment Types](../../customizing-app-deployment-types.md). - - - - -## Related Topics - -- [Adding Inventory Resources](../../../../portal/inventory/managing-resources/adding-inventory-resources/index.md) -- [Managing Private Cloud Apps in Domains](../managing-private-cloud-apps-in-domains.md) diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/index.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/index.md deleted file mode 100644 index c47e730247..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/index.md +++ /dev/null @@ -1,52 +0,0 @@ -# VMware vCenter Integration and Configuration - -This article discusses the integration of CloudShell with vCenter to allow CloudShell to spin up and manage the lifecycle of VMs hosted on vCenter Server. vCenter integration is provided out of the box starting with CloudShell version 7.0 and includes the following: - -- VM lifecycle management (Deploy App, Power On, Refresh IP, Power Off and Delete) -- Connectivity with other VMs and physical resources, including static VMs. Connectivity is based on vCenter dvSwitch (standard vSwitch supported in [vCenter 2nd Gen cloud provider shell](https://github.com/orgs/QualiSystems/discussions/1691)). -- Snapshot management (Save Snapshot, Restore Snapshot, and Get Snapshots) - -CloudShell supports two integration modes with vCenter, where Quali Server is installed internally on a vCenter VM or externally. - -## CloudShell App deployment flow on vCenter - -During the deployment of vCenter Apps in a CloudShell sandbox, CloudShell accesses the vCenter Server defined in the cloud provider resource, and does the following: - -1. Creates the VM on the ESXi host or host cluster. -2. Creates connectivity. Allocates VLAN ID for each required VLAN network, according to VLAN allocation policy defined in the sandbox (VLAN services), and adds the VM's NIC(s) to the network(s). -3. Powers on the VM and refreshes the VM's IP. -4. Runs configuration management on the VM (if defined). - -## Basic Requirements - -The following VMware vSphere components are required for CloudShell integration with vCenter (supported version is listed in [vCenter Integration Architecture and Prerequisites](./vcenter-integration-architecture-and-prerequisites.md)): - -- vSphere® Standard™ / Enterprise Plus™/ with Operations Management™ / Platinum™ - :::note - CloudShell connectivity requires vSphere® Enterprise Plus™ and above. - ::: - - vSphere Client - - - vCenter server - - - ESXi server - - - dvSwitch that is capable of creating and configuring port groups (vCenter 2nd Gen shell supports standard vSwitch as well) - - -Note that for additional capabilities or to integrate with other VMware vSphere components such as vSphere Client, you will need to implement a custom cloud provider that supports these options. For details, see the Dev Guide's [Getting Started with Cloud Provider Development](../../../../devguide/develop-custom-cloud-provider-shells/getting-started-with-cp-dev.md). - -## vCenter integration workflow - -For each vCenter Server you want to integrate with CloudShell, perform the following steps: - -1. Prepare vCenter Server for integration with CloudShell. See [vCenter Integration Architecture and Prerequisites](./vcenter-integration-architecture-and-prerequisites.md). -2. Designate a vCenter user with the required permissions to be used by CloudShell to access and interact with vCenter Server. See [Required vCenter User Permissions per Deployment Type](./required-vcenter-user-permissions-per-deployment-type.md). -3. [Add VMware vCenter Cloud Provider Resource](./add-vmware-vcenter-cloud-provider-resource.md) based on the specifications of the designated vCenter datacenter. -4. Set up CloudShell App Templates to deploy and configure VMs on the datacenter. See [Add a vCenter App Template](./add-a-vcenter-app-template.md). - - To have CloudShell App deployments run on specific domains in CloudShell, follow the steps in [Managing Private Cloud Apps in Domains](../managing-private-cloud-apps-in-domains.md). -5. Configure QualiX for in-browser connections to App VMs hosted on vCenter Server from the sandbox. See [QualiX Installation and Configuration](../../../../install-configure/qualix/index.md). - :::note - The QualiX Server must be accessible to the vCenter Server and can be installed either externally or in a VM on the vCenter Server. - ::: \ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/required-vcenter-user-permissions-per-deployment-type.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/required-vcenter-user-permissions-per-deployment-type.md deleted file mode 100644 index 1919d8e851..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/required-vcenter-user-permissions-per-deployment-type.md +++ /dev/null @@ -1,143 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Required vCenter User Permissions per Deployment Type - -To configure vCenter cloud providers, you must use a vCenter user that has a role with the required permissions for the specified deployment type on the root and child objects. Root-level permissions are required because in order to correctly identify each vCenter object (datacenter, templates, dvswitches, etc.) on your cloud provider resource, CloudShell needs to be able to access the vCenter object tree, starting with the root, which is the datacenter. - -**To set up the vCenter user(s) for CloudShell:** - -1. In the vSphere Client's **Administration** area, in the **Roles** section, add or edit a role. - - ![](/Images/Admin-Guide/Inventory-Operations/vCenterEditRoleDialog.png) - -2. Grant the permissions for the desired deployment type(s): - - **Permissions for App deployments:** - - Deploy Clone VM from VM / Deploy VM from Linked Clone: - - - Datastore > Allocate space - - Folder > Create folder - - Folder > Delete Folder - - Host > Local operations > Create virtual machine - - Host > Local operations > Delete virtual machine - - Host > Local operations > Reconfigure virtual machine - - Resource > Assign vApp to resource pool - - Resource > Assign virtual machine to resource pool - - Virtual machine > Configuration > CPU count - - Virtual machine > Configuration > Memory - - Virtual machine > Extend virtual disk - - Virtual machine > Interaction > Device connection - - Virtual machine > Interaction > Power Off - - Virtual machine > Interaction > Power On - - Virtual machine > Inventory > Create from existing - - Virtual machine > Inventory > Remove - - Virtual machine > Provisioning > Clone template - - Virtual machine > Provisioning > Clone virtual machine - - Virtual machine > Provisioning > Customize - - Virtual machine > Provisioning > Modify customization specifications - - Virtual machine > Provisioning > Read customization specifications - - Virtual machine > Snapshot management > Create snapshot - - Virtual machine > Snapshot management > Remove snapshot - - Virtual machine > Snapshot management > Revert to snapshot - - vSphere Tagging > Assign or Unassign Tag - - vSphere Tagging > Create vSphere Tag - - vSphere Tagging > Create vSphere Tag Category - - vSphere Tagging > Delete vSphere Tag - - vSphere Tagging > Delete vSphere Tag Category - - vSphere Tagging > Edit vSphere Tag - - vSphere Tagging > Edit vSphere Tag Category - - Deploy VM from OVF image: - - - Datastore > Allocate space - - Folder > Create folder - - Folder > Delete Folder - - Network > Assign network - - vApp > Import - - Virtual machine > Configuration > Add new disk - - Virtual machine > Configuration > Advanced - - Virtual machine > Configuration > CPU count - - Virtual machine > Configuration > Memory - - Virtual machine > Extend virtual disk - - Virtual machine > Interaction > Device connection - - Virtual machine > Inventory > Remove - - Virtual machine > Provisioning > Customize - - Virtual machine > Provisioning > Modify customization specifications - - Virtual machine > Provisioning > Read customization specifications - - vSphere Tagging > Assign or Unassign Tag - - vSphere Tagging > Create vSphere Tag - - vSphere Tagging > Create vSphere Tag Category - - vSphere Tagging > Delete vSphere Tag - - vSphere Tagging > Delete vSphere Tag Category - - vSphere Tagging > Edit vSphere Tag - - vSphere Tagging > Edit vSphere Tag Category - - Deploy VM from Template: - - - Datastore > Allocate space - - Folder > Create folder - - Folder > Delete Folder - - Host > Local operations > Create virtual machine - - Host > Local operations > Delete virtual machine - - Host > Local operations > Reconfigure virtual machine - - Resource > Assign vApp to resource pool - - Resource > Assign virtual machine to resource pool - - Virtual machine > Configuration > CPU count - - Virtual machine > Configuration > Memory - - Virtual machine > Extend virtual disk - - Virtual machine > Interaction > Device connection - - Virtual machine > Interaction > Power Off - - Virtual machine > Interaction > Power On - - Virtual machine > Inventory > Create from existing - - Virtual machine > Inventory > Remove - - Virtual machine > Provisioning > Customize - - Virtual machine > Provisioning > Deploy template - - Virtual machine > Provisioning > Modify customization specifications - - Virtual machine > Provisioning > Read customization specifications - - vSphere Tagging > Assign or Unassign Tag - - vSphere Tagging > Create vSphere Tag - - vSphere Tagging > Create vSphere Tag Category - - vSphere Tagging > Delete vSphere Tag - - vSphere Tagging > Delete vSphere Tag Category - - vSphere Tagging > Edit vSphere Tag - - vSphere Tagging > Edit vSphere Tag Category - - Connectivity: - - - Network > Assign network - - Virtual machine > Configuration > Modify device settings - - Virtual machine > Configuration > Settings - - dvPort group > Create - - dvPort group > Delete - - **Permissions for Sandbox Save and Restore:** - - Snapshot Save and Restore operations: - - - Virtual machine > Snapshot management > Create snapshot - - Virtual machine > Snapshot management > Remove snapshot - - Virtual machine > Snapshot management > Revert to snapshot - -3. Click **Next**. -4. Set the **Role name**, as appropriate. -5. Click **Finish**. -6. After creating the role, add a permission to the root level of the vCenter Server. - - For example, "vcenter1.qualisystems.local": - - ![](/Images/Admin-Guide/Inventory-Operations/vCenterRootLevel.png) - -7. Add the **User** that will be used by vCenter cloud provider resources to deploy App VMs on the vCenter Server. -8. Assign the new/updated **Role**. -9. Make sure the **Propagate to children** check box is selected. -10. Click **OK**. - - If you cannot **Propagate to children**, make sure the vCenter account has at least **Read-only** permission on the datacenter. - - 1. Click the datacenter and select **Permissions**. - 2. Make sure the account has the **Read-only** role or higher. - - ![](/Images/Admin-Guide/Inventory-Operations/vcenterReadOnlyRoleOnDatacenter.png) diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/vcenter-integration-architecture-and-prerequisites.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/vcenter-integration-architecture-and-prerequisites.md deleted file mode 100644 index 17f36b11a2..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/vmware-vcenter-integration-and-configuration/vcenter-integration-architecture-and-prerequisites.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -sidebar_position: 1 ---- - -# vCenter Integration Architecture and Prerequisites - -## vCenter Integration Architecture - -When deploying a vCenter App in a sandbox, the CloudShell Execution Server connects to the vCenter server and creates the VM according to the settings (parent VM/image, datacenter, ESXi host or host cluster, storage, dvSwitch, etc.) defined on the App and the App's vCenter cloud provider resource. Specifically, CloudShell accesses the datacenter, finds the parent VM, snapshot, template or image defined on the App template\*, and creates the VM from that parent object. If the App has a connectivity requirement defined in the sandbox, CloudShell will create a port group on the dvSwitch, add the VM's vNIC and configure the VLAN on this vNIC and on all other connected vNICs. - -\*\* When restoring a saved sandbox with deployed vCenter Apps, CloudShell creates the App VMs from the VM clones CloudShell created during the sandbox saving process. For additional information, see [Save a Sandbox](../../../../portal/sandboxes/sandbox-workspace/save-sandbox.md).* -:::note Important -vCenter elements created by CloudShell should not be altered as this may cause unexpected behavior. -::: -The following diagram illustrates a vCenter integration (with a local CloudShell installation) hosting a live sandbox that has 6 deployed VMs connected to a VLAN network: - -![](/Images/Admin-Guide/Inventory-Operations/vCenter-Architecture_620x333.png) - -## CloudShell access to vCenter - -- Ensure your CloudShell Execution Server communicates to the vCenter Management IP over HTTPS/port 443. Make sure to allow HTTPS/port 443 through the appropriate firewalls. - -## vCenter Prerequisites - -For CloudShell integration with vCenter Server, the following preparations need to be made on the vCenter Server. -:::warning Important -Please consult your resident vSphere expert before performing these configurations. -::: -### vCenter machine's operating system - -- Windows / Linux - -### Licensing - -- vSphere version: 5.5 - 6.5, 6.7, 7 (vSphere® Standard™ / Enterprise Plus™/ with Operations Management™ / Platinum™) - :::note - CloudShell connectivity requires vSphere® Enterprise Plus™ and above. - ::: - - vSphere Client - - - vCenter server - - - ESXi server - - - dvSwitch that is capable of creating and configuring port groups - - -### Networking - -- Physical backbone – a single switch with management interface and VLAN assignment capability, physically connected to NICs on the ESXis -- dvSwitch: During App deployment, CloudShell creates connectivity between vCenter App VMs as well as physical resources by creating VLAN networks in the sandbox. First, CloudShell allocates a VLAN for each peer-to-peer or many-to-many network in the sandbox and adds the connected endpoints to the relevant network. - - CloudShell manages VM networking via the dvSwitch, so if you require networking, you will need a dvSwitch that is capable of creating and configuring port groups. - :::note - vSwitch connectivity is supported in the vCenter 2nd Gen cloud provider shell and requires the same vSwitch name to be set on all relevant VM cluster hosts. The **VMware vCenter Cloud Provider Shell 2G** shell can be downloaded [here](https://github.com/orgs/QualiSystems/discussions/1691). - ::: - - Connected to the same physical NICs as the physical backbone switch - - Capable of creating and configuring port groups -- For connectivity between different datacenters, the dvSwitches and other switches or lab components must be fully trunked. -- The physical switch must be configured to route the individual VLAN traffic to a DHCP server. -- DHCP server can be either: - - Managed as a service on board the switch - - A dedicated DHCP server created in VMware (Windows/Linux) on a management network, reaching all segments for IP assignment -- DHCP should be able to manage all required segments according to architecture design. -- Physical network should not be configured with gateways, in order to prevent cross-VLAN communication by default. -- VMs must have network adapter(s). Starting with vCenter 2G version 3.4.0, CloudShell will create VMXNET3 adapters on the VMs if required by the sandbox. For example, if the VM has 2 network adapters of type e1000, but the App has 3 connector lines, CloudShell will create a 3rd network adapter of the same type as the last one (e1000). - -### VMware - -- Datacenter: Since CloudShell does not provide out-of-the-box support for connectivity between VMs on multiple datacenters, it is recommended to designate a single datacenter to be used for CloudShell App deployments. The datacenter doesn't have to be dedicated only to CloudShell activity. - - - Host cluster – including all ESXi hosts (1 or more) to be managed by CloudShell - - Datastore or datastore (DS) cluster that includes all data stores (1 or more) to be managed by CloudShell: - - - Using VMware vSAN license/external SAN - - (For datastore clusters) Using NFS cluster, containing all external datastores - - :::note Notes about storage: - - VMs are stored on the datastore or datastore cluster defined on the cloud provider resource. - - CloudShell does not support cross-storage communication. Therefore, if you’re using multiple cloud provider resources in the same sandbox and want to share the storage among the VMs, make sure all cloud provider resources use the same storage. - ::: - -### Best Practices: VMware folders and templates - -To help you organize your CloudShell activity on vSphere, we've come up with these best practices: - -- "Management" folder - should contain all management VMs: - - Quali server (Quali Server can be installed on a dedicated VM on the vCenter or in an external location with networking to the vCenter Server) - - QualiX: In order to use QualiX for in-browser connections to App VMs, make sure the QualiX machine is accessible to the sandbox application network. See [QualiX Installation and Configuration](../../../../install-configure/qualix/index.md) - - DHCP (if used with a dedicated server) - other applications and services that manage Cloudshell-deployed VM capabilities -- "Infrastructure" folder – for infrastructure static VMs: - - Static always-on VMs (Firewalls, DBs, etc.) -- "Base Templates" folder – for all App templates to be deployed on CloudShell sandboxes: - - Must have VMware tools installed (needs to be included with image or VM template with which CloudShell creates the App VM) - - DHCP IP settings - - A snapshot called "clean” – after VM is powered off diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/_category_.json b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/_category_.json deleted file mode 100644 index 2efcbe15ed..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Public Cloud Provider Support in CloudShell", - "position": 2 -} diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/_category_.json b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/_category_.json deleted file mode 100644 index df53ed3035..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "AWS Integration and Configuration", - "position": 1 -} diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/_category_.json b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/_category_.json deleted file mode 100644 index adfb6c8f83..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "AWS Integration", - "position": 1 -} diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/add-an-aws-ec2-app-template.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/add-an-aws-ec2-app-template.md deleted file mode 100644 index 1d5b959619..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/add-an-aws-ec2-app-template.md +++ /dev/null @@ -1,507 +0,0 @@ ---- -sidebar_position: 8 ---- - -# Add an AWS EC2 App Template - -The App template defines the settings and configurations of the VM to be deployed in the sandbox as well as the application(s) to be installed on that VM. - -:::note Notes: -- By default, all public cloud Apps of the same type in the same sandbox are deployed within the same subnet and therefore are connected to each other and isolated from other sandboxes. However, using the **Subnet** service, blueprint designers can set up multiple subnet networks in the sandbox, instead of having one default subnet for all the Apps of the same cloud provider. For details, see [Subnet Connectivity](../../../../setting-up-cloudshell/inventory-operations/connectivity-control/subnet-connectivity/index.md). -- Public cloud App deployment requires the management network and subnet(s) to be prepared in advance as part of the sandbox **Setup** process; CloudShell's out-of-the-box **Setup** process does this. However, the blueprint must include at least one public cloud App to initiate the **Setup** script's connectivity preparation process for deployment in that public cloud. -::: -**To add a new AWS EC2 App template:** - -1. Click **\+ Add**. - - The **Create New App** wizard is displayed. - - ![](/Images/CloudShell-Portal/Manage/CreateNewApp.png) - -2. From the **Select Deployment Type** pane, select **AWS EC2 instance**. -3. Enter a **Name** for the App template. - :::note - The App template's name has a limit of 100 characters and can only contain alpha-numeric characters, spaces, and the following characters: | . - \_ \] \[ - ::: -4. Click **Create**. - - The App template is created and the **App** wizard's **General** page is displayed. - - ![](/Images/CloudShell-Portal/Manage/AppGeneralPage.png) - -5. In the **General** page, define the App template's display settings and category. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FieldRequiredDescription
NameRequiredApp name that is displayed in the catalog.
DescriptionOptionalDescription of the App.
IconOptionalAdd an image to the catalog definition. The recommended size for the image is 190x120 pixels (image size is limited to 400x400 pixels or 200 KB).
CategoriesOptional - Service categories are a method to classify Apps. The Apps are displayed in the **Add App / Service** side pane in the blueprint and sandbox diagram, arranged in categories. Only users who are permitted to view the category can access the App. Apps without a category are not displayed. - - By default, the **Applications** category is selected. - - Select a category from the dropdown list. You can select additional categories. Examples of categories are: applications, networking and VLAN. - - :::note Notes: - - The category must be associated with the domain in which the required cloud provider resides. For information about domain categories, see [Managing domain categories](../../../../cloudshell-manage-dashboard/managing-categories.md#managing-domain-categories). - - It is recommended to use up to a 2-level hierarchy when organizing the **Add App / Service** catalog (i.e. root and sub-category). - - In the **Add App / Service** side pane, Apps are displayed in the root category only. This includes services associated to sub-categories. - ::: -
- -6. In the left pane, click **Deployment Paths** and configure the App template's deployment path. - - A deployment path defines (1) the AWS AMI image, (2) the VM’s settings such as storage size, CPU and image file, and (3) the CloudShell cloud provider resource that enables CloudShell to access the cloud provider and deploy the VM on it. - - Note the deployment path's name (highlighted in the image below). The path's name is dynamic and consists of the selected **Cloud Provider** resource and **Deployment type**. You can change the name of the path by clicking the field. - - ![](/Images/CloudShell-Portal/Manage/AppDeploymentPathsPage.png) - - 1. From the **Deployment** drop down list, select the deployment type. - - The selected deployment type's attributes are displayed. - :::important - The deployment type related to the AWS 2nd Gen cloud provider shell is named "Amazon AWS EC2 Instance 2G". - ::: - 2. Fill in the details. - - For **AWS EC2 Instance** attributes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AttributeAWS EC2 shell versionDescription
Cloud ProviderAllName of the AWS EC2 cloud provider resource to be used
AWS AMI IDAll - AWS AMI ID to launch the instance from. For example, "ami-6869aa05". - :::note - The AMI must be accessible in the selected cloud provider's AWS region. - ::: -
Allow All Sandbox TrafficAll - Determines if the App allows inbound traffic from all other AWS EC2 Apps in the sandbox. If set to **False**, the instance will be isolated. Access from specific Apps or subnets can be defined using the **Inbound Ports** attribute or API. - :::note - By default, this attribute is **True**. This means that all access is allowed to all ports from all Apps in the sandbox and all ports are open for traffic within the sandbox. - ::: -
Instance TypeAll - AWS EC2 instance type. The instance type determines the CPU, memory, storage and networking capacity of the instance. For example, "t2.large". - - Leave empty to use the default instance type specified in the AWS EC2 cloud provider resource. - - For built-in or Marketplace images, make sure the instance type is supported by the image you defined in the App. -
IAM Role NameAll - (Optional) Name of the IAM role to associate to the App's AWS EC2 instance. The instance will use this role to access AWS. - - :::note Notes: - - The role must have the AWS permissions required for the actions the instance is expected to perform. - - If the role does not exist, or there are other issues with launching the instance with the role, App deployment will fail. - ::: -
Inbound PortsAll - Semi-colon separated list of ports and protocols to open for inbound traffic. Note that by default all ports are open for traffic between AWS EC2 App instances within the sandbox, but this can be changed using the **Allow All Sandbox Traffic** attribute. - - In addition, all outbound traffic is allowed. - - The syntax is: - - `port[single/range]:protocol[tcp(default)/udp]` - - For example: "80;443:tcp;200-220:udp". - :::note - If not specified, the protocol defaults to TCP. - ::: - :::tip Tips: - - To allow QualiX in-browser connections to the VM from the sandbox, include port "22". - - To set more specific security groups, it is recommended to use the TestShell API's [SetAppsSecurityGroup](pathname:///api-docs/2023.3/TestShell-API/TestShell%20XML%20RPC%20API.html#SetAppSecurityGroups) method instead. Unlike the **Inbound Ports** attribute, it enables you to define different port settings per subnet and allow inbound access to specific source CIDRs. For additional information, see [SetAppSecurityGroups Code Example](../../setappsecuritygroups-code-example.md). - ::: -
Public IP OptionsAll - Enables access to the instance from the internet. Options are: - - - **No Public IP** - default option - - **Public IP (single subnet)** - (for Apps connected to a single subnet \[private or public\]) allocates a public IP - - **Elastic IPs** - (for Apps connected to multiple subnets) allocates an elastic IP for the App in each of the public subnets that it is connected to - :::note - In AWS EC2 Apps, this setting is mandatory if the App is connected to more than one network (private or public). - ::: -
Storage Size2nd Gen onlyThe root volume size. The value must be greater or equal to the size of the root snapshot used. If set to **0**, the default defined in the image will be used. For example: 30.
Storage IOPS2nd Gen onlyThe default number of I/O operations per second that the root volume can support. This parameter is used only for storage of type *io1*, in which you can provision up to 30 IOPS per GiB. If set to **0**, the default in the image is used. For example: 240.
Storage Type2nd Gen onlyThe type of storage volume. In AWS, there are several EBS Volume types that can be used, *gp2* and *io1* for SSD, *st1* and *sc1* for HDD or the standard type which is the old generation EBS volume type. If **auto** is selected, the storage type defined in the image is used.
Root Volume Name2nd Gen onlyThe device names available for the volume. Depending on the block device driver of the selected AMI's kernel, the device may be attached with a different name than what you specify. If left empty, the default defined in the AMI is used. For example: /dev/xvda
Autoload2nd Gen onlyEnables the automatic execution of the Autoload command during reservation Setup.
Wait for IP2nd Gen onlyIf set to **False**, the deployment will not wait for the VM to get an IP.
Wait for Status Check2nd Gen onlyIf set to **True**, the App's deployment will end successfully only after instance status checks have passed. The status checks include network connectivity, physical host status, system status and more.
Wait for Credentials2nd Gen onlyEnable in order to retrieve credentials from a Windows machine. Note that if this parameter is enabled and the credentials are not retrieved within 15 minutes, the deployment will fail.
Custom TagsAll - Custom tags to be set on CloudShell-deployed AWS EC2 instances for billing, like the details of the project or team that deployed the instance. - - For multiple tags, specify a comma-separated list of the key-value pairs. For example: - - `tag_name1:ec2_instance,tag_name2:ec2_instance2` -
User Data URLAll(Optional) URL to the raw version of the script to execute (PowerShell, bash, sh, etc.).
User Data ParametersAll - (Optional) Parameters to pass to the user data script. For example, specifying `param1 param2` will result in the command running as follows: - - `./file.sh param1 param2` -
Private IPAll - When the VPC is in static mode (defined on the AWS EC2 cloud provider resource's **VPC Mode** attribute), this attribute is used to set a static private IP for the deployed App. - - To set a static private IPs in multi-subnet mode, specify a json string that maps the subnet request CIDR to the requested static private IP. For example: \{"10.0.0.0/28": "10.0.0.6"\} -
Enable Source Dest Check2nd Gen only - Set to **True** to enable source/destination checks. Source/destination checks allow users to create custom routing inside the VPC. It is applied to all vNICs of a certain instance. If enabled, you can reconfigure routing to go through that instance. This value must be **False** for Virtual Appliance instances like virtual firewalls/routers. - :::note Important: - This value must be **False** for Virtual Appliance instances like virtual firewalls/routers. The reason for this is that some virtual appliances may take a while to fully deploy and AWS will show them as impaired from 20 minutes until they fully deploy. Setting **Enable Source Dest Check** to **False** ensures the instances are not stopped when they become impaired. - ::: -
Status Check Timeout2nd Gen only - Timeout, in seconds, for AWS status checks to pass. Some virtual appliances may take a while to fully deploy and AWS will show them as impaired from 20 minutes until they fully deploy. Therefore, to ensure virtual appliance instances are not stopped when they become impaired, use this attribute to provide a long enough timeout for the instance to complete its status check. - :::note - The default timeout is 600 seconds (10 minutes). However, instance deployment will fail once the instance status becomes "impaired". Specifying a status check timeout period will configure CloudShell to ignore the "impaired" status and instead wait for the instance deployment to complete or the timeout period to pass. - ::: -
- -7. To add additional deployment paths to the App template, click the **Add New Deployment Path** link at the bottom of the wizard and fill in the required information. -8. In the left pane, click **Configuration Management** and configure the application to be installed on the VM. - - ![](/Images/CloudShell-Portal/Manage/ConfigurationManagement.png) - :::tip - To learn how to develop custom scripts and Ansible playbooks, including examples, and set up support for the desired configuration management tool, see [Developing Configuration Management Scripts for Apps](../../../../../devguide/develop-config-management-scripts-for-apps/index.md). - ::: - :::note Notes: - - To run configuration management on an Azure App, make sure the App's VM size is Basic_A2 or larger. - - For configuration management operations, CloudShell uses an available Execution Server (for Ansible, it's a Linux Execution Server that has the **Supports Ansible** flag). - - If the cloud provider resource has an **Execution Server Selector** configured, it will use that selector. If the selector is empty, CloudShell will use the selector defined in the appropriate **Resource Manager Client >Configuration Services** model (**Ansible Configuration** or **Custom Script Configuration**). - - - Execution Server selectors specified on the deployed App shell/resource are not used to execute configuration management operations. - ::: - - 1. Define the script or playbook to install. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AttributeDescription
Select Tool - Select the application's installation and configuration tool. - - - **None**: Do not use any Configuration Management option. Use this option if, for example, the image or template already contains the application to install. - - **Script**: Select the custom script to run (PowerShell, bash or sh). - - **Ansible**: (Intended for customers who are already using Ansible) Select the Ansible playbook to run. - :::note - The playbook runs once during the **Setup** phase for all of the sandbox's Apps that use that playbook, after CloudShell has finished deploying their VMs. This is done both to improve performance and support cross-server logic where multiple applications need to be installed and configured in a certain way. - ::: - Note that the playbook runs once for all of the sandbox's Apps that use that playbook, after CloudShell has finished deploying their VMs. - - - Depending on the selection, additional options may become available. -
Connection Method - The method to use to connect to the VM. - - Select: - - - SSH if the VM has a Linux OS - - Windows Remote Management if the VM has a Windows OS - :::note - To run configuration management on a Windows VM, the VM must have WinRM enabled. For details, see [Enable WinRM on Windows VMs to Support Configuration Management](../../../../../devguide/enable-winrm-on-win-vm-for-cfg-mng.md). - ::: -
Playbook / Script Location - Details of the Ansible playbook or custom script. - - - **URL**: Raw URL of the Ansible playbook or ZIP file, or custom script on the online repository (GitHub, GitLab and BitBucket are supported). URL must be accessible to the Execution Servers. - :::tip - The URL can accept parameters defined on the App, enabling you to test new versions of scripts without affecting consumer-ready versions. For example, you can have an App everyone is using, but if you want to test a version you're developing, simply change the value of the URL parameter in the test blueprint. - - - To use parameters, specify the parameter name in curly brackets (for example: \{branch\}). - - If the App has this parameter, CloudShell will replace the \{branch\} with its value during execution. - - If the parameter is missing, CloudShell will replace \{branch\} with an empty string. - - If you are using a global input, customers would be well advised to set a default value on the global input - ::: - **For GitHub, specify the raw URL. For example:** - - ```javascript - https://raw.githubusercontent.com/.../site.yml - ``` - - **For GitLab, specify the API endpoint in the format:** - - ```javascript - https://gitlab.com/api/v4/projects/{Project ID}/repository/files/testsharding%2Eyml/raw?ref=master - ``` - - Where: - - - Each special character that the file contains has to be encoded. In the example above - "%2E” is an encoded point (".”) - - - The ref value is the branch name (master for this example) - - - **For BitBucket Data Center (on premise), use the following URL format:** - - ```javascript - http://{datacenter server IP}/rest/api/1.0/projects/{projectKey}/repos/{repository name}/raw/testsharding.yml - ``` - - **For BitBucket Cloud, use one of the following:** - - - For source code files, specify the API endpoint: - - ```javascript - https://api.bitbucket.org/2.0/repositories/{workspace}/{repository name}/src/{GUID- the Commit hash string}/testsharding.yml - ``` - - - For download files (files residing in the repository's "Downloads" folder), specify this endpoint: - - ```javascript - https://api.bitbucket.org/2.0/repositories/{workspace}/{repository name}/downloads/site.yml - ``` - - :::important - If the URL is private (HTTPS), the VM will need to have a valid SSL certificate. To disable the certificate check, open **Resource Manager Client>Resource Families>Configuration Services** (**Ansible Configuration** or **Custom Script Configuration**) and set the **Verify Certificate** attribute to **False**. - ::: - - **User/Password**: (For private repositories) Access credentials or token to the script/playbook's online repository. - - - **Token**: (For private repositories) Access token to the script/playbook's online repository. - - For GitHub and GitLab, specify the API token. For BitBucket Cloud, set the repo's "App Password" in the App template's **Password** field. For BitBucket Data Center, specify the personal access token. - - - :::note Notes: - - **For Custom Script configurations**: In SSH mode, only bash and sh scripts are allowed. In WinRM mode, only PowerShell scripts are allowed. WinRM over HTTPS only applies to custom scripts at this time. If WinRM is configured to run over HTTPS, the execution server will first try to run the custom script over HTTPS and then fall back to HTTP if HTTPS is unsuccessful. To prevent the fallback, set the **winrm_transport** parameter to **ssl**. - - **For Ansible configurations**: The Ansible playbook must be a YML or YAML file. To specify multiple playbooks or a hierarchy of an Ansible project, you can specify multiple Ansible playbooks or a ZIP package. For example: `https://raw.githubusercontent.com/QualiSystemsLab/private-repo-zip-download/master/README.zip` - - If a ZIP containing 2 or more playbooks is specified, CloudShell will use the playbook file titled `site.yml` or `site.yaml`. If the file is missing, the App's deployment will fail. - ::: -
Inventory Groups - (For Ansible) Specify the host groups for the application to be installed, separated by semicolons (;). The newly deployed VM will be associated to these groups, thus allowing plays that target these groups to run on the VM. - - For example: `Servers/AppServers;Servers/DBServers` -
Parameters - Parameters to be passed to the Ansible playbook or custom script. Specify the parameters and their default values. - - In the blueprint or sandbox diagram, privileged users can also set the parameter to receive the value that is specified for a global input when reserving a sandbox containing the App. This is done by selecting the global input when editing the App in the blueprint or sandbox diagram. For example, a global input that specifies the build number of a product to be tested or which components of a product to install. - :::important - (For Ansible) To customize the port to be used to communicate with the VM, add the `Ansible_port` parameter. Default: `SSH` / `Port: 22` / `WinRM: 5985`. - ::: -
Additional Arguments - (For Ansible) Define arguments to be passed to the execution of the playbook (`Ansible-playbook` command). For example, `-v` will set verbose mode on while `-f` will set the maximum number of VMs to be handled in parallel. Multiple arguments can be given, separated by spaces. For additional information on possible arguments, see the official Ansible documentation. - - The arguments must be specified in **Resource Manager Client** > **Configuration Services** family > **Ansible Configuration** model > **Ansible Additional Arguments** attribute. - :::note - The arguments are defined globally for all Apps using Ansible. - ::: - :::important - To configure Ansible to connect to certified hosts only (Linux VMs with a valid 'known\_hosts' key), include the following additional arguments: `--ssh-extra-args='-o StrictHostKeyChecking=yes'` - ::: -
- - 1. To enable the end-user to rerun the App's configuration management on the deployed App in the sandbox, select **Allow rerunning configuration management for resources deployed from the App**. Once the App's deployment completes, a **Rerun Configuration Management** command is included in the deployed App's **Application Commands** pane. For details, see [Run App Commands](../../../../../portal/sandboxes/sandbox-workspace/apps/run-app-commands.md). This is useful for rolling back the App's VM to its original state. - - 2. To enable blueprint and sandbox owners to modify the App's Configuration Management details, select **Allow blueprint/sandbox owners to modify the App's Configuration Management**. The following details can be modified: playbook/script, authentication details, inventory groups, and parameters. Note that the modifications only apply to the blueprint or sandbox of the instance. - 3. Optionally click the **Add New Script/Playbook** link at the bottom right to add additional custom scripts/Ansible playbooks to the App. The scripts will run in their display order, from top to bottom. You can drag scripts up or down to rearrange. - - 4. To change the script's alias, click the script's name and change as appropriate. - -9. In the left pane, click **App Resource** to optionally set the VM's operating system user credentials (for example, to connect to the VM via RDP or SSH). You can also change the deployed App's Shell. - - ![](/Images/CloudShell-Portal/Manage/AppResource.png) - :::important - To help sandbox end-users connect to the VM, it is recommended to include the User and Password in the blueprint's instructions. For additional information, see [Add Instructions](../../../../../portal/blueprints/creating-blueprints/add-instructions.md). - ::: - - - - - - - - - - - - - - - - - - - - -
AttributeDescription
Shell - The Shell on which the App's VMs are based. When an App is deployed in a sandbox, it changes into a "deployed App resource", which is based on the selected Shell. By default, the "Generic App Model" Shell is used. - - Deployed Apps include a default set of commands such as Power On and Refresh IP, and the VM's **User** and **Password** attributes, as explained below. - :::note - Changing the Shell might cause additional fields to become visible and you may need to enter further information. - ::: -
User - User defined in the App's image. The **User/Password** credentials are used by QualiX to create in-browser connections to the VM from within the sandbox. - - :::note Notes: - - For AWS instances,make sure to set the **User** of a user that already exists on the Amazon machine image. For custom images, the image owner should know the credentials, while community/marketplace images have the image's credentials listed in their documentation. - - Azure VM username and password restrictions apply. For details, see [Frequently asked question about Windows Virtual Machines](https://docs.microsoft.com/en-us/azure/virtual-machines/windows/faq). - - For Azure Marketplace images, CloudShell will create a user on the VM based on the **User/Password** credentials you specify. - - For Azure Marketplace VMs, if the user is not set, CloudShell will set **adminuser** as the default user name. - ::: -
Password - VM user's password. - - :::note Notes: - - For AWS Marketplace images, leave the **Password** empty. The AWS shell generates a new key-pair for each sandbox, which QualiX will use to establish the in-browser connection. - - For Azure Marketplace images: - - If the password is not set, only the user name will be required. For Linux VMs, CloudShell will create an SSH key-pair to enable a secure connection. - - If the password is set, it will be displayed as asterisks (\*\*\*\*\*\*) in the blueprint or sandbox. - ::: -
- -10. Click **Done**. - - The new App template is displayed in the **Apps** page. - -11. Next, [Configure the Qualix Server for AWS EC2](./configure-the-qualix-server-for-aws-ec2.md). \ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/add-an-aws-ec2-cloud-provider-resource.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/add-an-aws-ec2-cloud-provider-resource.md deleted file mode 100644 index 42cc488f44..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/add-an-aws-ec2-cloud-provider-resource.md +++ /dev/null @@ -1,195 +0,0 @@ ---- -sidebar_position: 7 ---- - -# Add an AWS EC2 Cloud Provider Resource - -The **AWS EC2** cloud provider enables the deployment of AWS instances from an Amazon Machine Image (AMI). -:::tip -We strongly recommend using the 2nd Gen version of the shell, which provides significant enhancements and capabilities, and is tamper-resistant from within CloudShell, ensuring your Azure cloud provider resources and Apps are in pristine condition. Useful articles: [Replacing the 1st Gen shell with a 2nd Gen version](../../../../../devguide/reference/migrate-1st-gen-shell-to-2nd-gen-shell.md#replacing-the-1st-gen-shell-with-a-2nd-gen-version), [Cloud Provider Shells - Features and Capabilities Per Release](../../../cloud-provider-2g-shells-features-and-capabilities.md). -::: -**To add an AWS EC2 cloud provider resource:** - -1. Log in to CloudShell as administrator and access the required domain. This will enable the Apps based on this cloud provider resource to be usable in this domain. For additional information, see [Managing Public Cloud Apps in Domains](../../managing-public-cloud-apps-in-domains.md). - -2. In the **Inventory** dashboard, in the **Resources** tab, click the folder in which you want to create the resource. -3. Click **\+ Add New**. -4. In the **Create New Resource** dialog box, select the **AWS EC2** cloud provider template. To use the AWS 2nd Gen shell, select **Amazon AWS Cloud Provider Shell 2G**. -5. Enter a **Name** for the AWS EC2 resource. - :::note - The resource's name has a limit of 100 characters and can only contain alpha-numeric characters, spaces, and the following characters: | . - \_ \] \[ - ::: - Access to the AWS account is provided using the IAM role configured in the **Management VPC**. - -6. Click **Create**. - - The **Resource** dialog box is displayed. - - ![](/Images/Admin-Guide/Inventory-Operations/AWSResourceDiscoveryInformation.png) - -7. Enter the required information. - :::note - All AWS elements must belong to the specified region. - ::: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AttributeSupporting shell versionDescription
Execution Server SelectorAll - (Optional) This attribute points to a pre-defined group of execution servers (grouped by a common **Execution Server Selector** value). To make the association, enter the same value you specified on the execution server. - :::note - To use the out-of-the-box **Execution Server Selector** attribute, make sure it has the "Execution Server Selector" rule. For details on how to add the rule to the attribute, see [Defining attribute rules](../../../../setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/attributes.md#defining-attribute-rules). - ::: - For additional information on managing App deployments per domains, see [Managing Public Cloud Apps in Domains](../../managing-public-cloud-apps-in-domains.md). -
RegionAll - The code of the AWS region to be used by this cloud provider resource. For example, "us-east-1". - :::note - The AWS region must have **Management VPC** configured. For the list of supported regions, see [AWS Regions Supported by CloudShell](./aws-regions-supported-by-cloudshell.md). - ::: -
VPC CIDRAWS 1st Gen shell onlyCIDR to be used for sandbox VPC if **VPC Mode** is set to **Static**.
AWS Mgmt SG IDAll - The Management VPC's security group (use the **SG1id** output when configuring the Management VPC for the region). For example, "sg-71240198". - - This value is used by the **Setup** process to configure the communication between the Management VPC's instances and the Sandbox instances. -
AWS Mgmt VPC IDAll - ID of the Management VPC. Used by the **Setup** process to set up the VPC and subnet for the sandbox (use the **ManagementVPCID** output when configuring the Management VPC for the region). For example "vpc-633fb904". - - This value is created when configuring the Management VPC for the region. -
Keypairs LocationAll - S3 bucket containing sandbox PEM files (use the **S3Name** output when configuring the Management VPC for the region). - - Each active Sandbox creates a PEM file under a designated folder. For example, "sandbox-management". -
Max Storage SizeAll - (Optional) The maximum number of GiB in the root volume. The value of this parameter will be the storage size limit for all apps deployed on this Cloud Provider. For example, "8". - - The value must be greater than or equal to the size of the root snapshot used. If set to "0", the default size of the snapshot will be used. -
Max Storage IOPSAll - (Optional) The maximum number of I/O operations per second to be supported by the volume. The value of this parameter is the storage IOPS limit for all Apps deployed on this Cloud Provider. For example, "240". - - This parameter is used only for storage of type **io1**, in which you can provision up to 30 IOPS per GiB. If set to zero, the default in the image is used. -
Networks In UseAll - Reserved networks that will be excluded when allocating sandbox networks, and therefore must include the Management VPC CIDR (which was provided as an input to the CloudFormation deployment process) as well as any other private networks that have access to the Management VPC. - - The syntax is comma separated CIDR. For example, "10.0.0.0/32,172.31.0.0/24". -
Instance TypeAll - (Optional) The default AWS EC2 instance type for the deployed instance. The instance type determines the CPU, memory and networking capacity of the instance to be deployed. For example “t2.large”. - :::note - The instance type can be changed when creating the App in the **Manage** dashboard. - ::: -
VPC ModeAll - Every sandbox with AWS Apps deploys a VPC to AWS, while in Shared VPC mode, CloudShell deploys the sandbox to an existing VPC. This setting determines how the sandbox VPC selects a CIDR block. - - Options are: - - - **Dynamic**: The CIDR block is selected by Cloudshell Server. In other words, CloudShell deploys a new VPC with a dedicated CIDR for every sandbox. - - **Static**: The CIDR block for all sandboxes allocated is taken from the **VPC CIDR** attribute. To configure CloudShell to support this mode, see the [Typical Workflows](https://github.com/QualiSystems/Amazon-AWS-Cloud-Provider-Shell-2G#typical-workflows) of the AWS EC2 2G shell's README file. - - **Shared**: Indicates that the cloud provider resource will deploy to the shared VPC defined in **Shared VPC ID** and use the CIDR block defined in the **VPC CIDR** attribute. - - **Single**: The sandbox infrastructure will be deployed within the Management VPC and use the VPC CIDR block. -
Static VPC CIDRAWS 2nd Gen shell onlyCIDR to be used for sandbox VPC if **VPC Mode** is set to **Static**.
Shared VPC IDAWS 2nd Gen shell only(Mandatory for Shared VPC mode) Shared VPC's ID (can be found in the output of the shared VPC CloudFormation stack, in the **SharedVPCId** key). For example: `vpc-0bf24b1ebrd855e30`.
Shared VPC Role ARNAWS 2nd Gen shell only(Mandatory for Shared VPC mode) Role created by the CloudFormation process with read/write permissions in the AWS account (can be found in the output of the shared VPC CloudFormation stack, in the **SharedRoleARN** key). This role is used by CloudShell to operate in the shared VPC.
Transit Gateway IDAWS 2nd Gen shell only(Mandatory for Shared VPC mode) ID of the transit gateway (can be found in the output of the main CloudFormation stack, in the **TGWid** key).
Additional Management NetworksAWS 2nd Gen shell only - Networks to be allowed to interact with all sandboxes. This is used for allowing connectivity to AWS resources outside the Management VPC. - - The syntax is comma separated CIDRs. For example, "10.0.0.0/24,10.1.0.0/16,172.31.0.0/24". -
VPN Gateway IDAWS 2nd Gen shell only(Applies to Shared VPC mode only) ID of the gateway to use. Required to connect the shared VPC's sandbox subnets to the VPN gateway. CloudShell does this by creating a route between the specified VPN gateway and the connected subnet within the VPC CIDR. Can be found in the output of the shared VPC CloudFormation stack, in the **VPNGWid** key.
VPN CIDRsAWS 2nd Gen shell only(Mandatory for Shared VPC mode if VPN Gateway ID is defined) Comma-separated list of CIDRs in the local network to be used to VPN to the shared VPC. Example, 10.1.0.0/24,10.3.0.0/16
- -8. Click Start **Discovery**. - - When the discovery process completes, a confirmation message is displayed. The cloud provider resource is displayed in the **Inventory** dashboard in CloudShell Portal and in Resource Manager Client. - - To customize the App deployment types and publish App orchestration parameters, see [Customizing App Deployment Types](../../../customizing-app-deployment-types.md) - - -9. Next, [Add an AWS EC2 App Template](./add-an-aws-ec2-app-template.md). \ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/aws-regions-supported-by-cloudshell.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/aws-regions-supported-by-cloudshell.md deleted file mode 100644 index 6289ddc9ae..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/aws-regions-supported-by-cloudshell.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -sidebar_position: 1 ---- - -# AWS Regions Supported by CloudShell - -The following AWS regions are currently supported: - -| Region | Code | -| --- | --- | -| US East (N. Virginia) | `us-east-1` | -| US East (Ohio) | `us-east-2` | -| US West (N. California) | `us-west-1` | -| US West (Oregon) | `us-west-2` | -| South America (São Paulo) | `sa-east-1` | -| EU (Frankfurt) | `eu-central-1` | -| EU (Ireland) | `eu-west-1` | -| Asia Pacific (Mumbai) | `ap-south-1` | -| Asia Pacific (Singapore) | `ap-southeast-1` | -| Asia Pacific (Sydney) | `ap-southeast-2` | -| Asia Pacific (Tokyo) | `ap-northeast-1` | -| Asia Pacific (Seoul) | `ap-northeast-2` | diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/configure-an-execution-server-selector-for-aws-ec2.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/configure-an-execution-server-selector-for-aws-ec2.md deleted file mode 100644 index afde0d0142..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/configure-an-execution-server-selector-for-aws-ec2.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -sidebar_position: 6 ---- - -# Configure an Execution Server Selector for AWS EC2 - -*This article explains how to associate an Execution Server to AWS EC2 App deployments and command executions. To learn how to associate an Execution Server to resources, Apps and blueprints, see [Setting Up Execution Servers to Run Commands](../../../../cloudshell-execution-server-configurations/setting-up-execution-servers-to-run-commands.md).* - -The management VPC contains two Execution Servers: the **es-shells** Execution Server has a configured IAM role, which enables it to communicate with AWS and create the necessary elements, such as instances, networking etc. (as well as run any configuration management operations defined on the App), and the **es-commands** Execution Server is used to run custom code on the instances and has an empty IAM role, which restricts it from altering configurations on AWS services. The reason we have two Execution Servers is to ensure that custom code is launched in a safe and isolated manner, preventing misuse of the AWS account. As these are Linux Execution Servers, they do not support Suite executions. - -The **es-shells** Execution Server in CloudShell needs to be associated with the AWS EC2 cloud provider resource while the **es-commands** Execution Server needs to be associated with the deployed App's shell, allowing it to launch the shell's commands inside the sandbox VPC. This link is achieved by using an attributes that has the **Execution Server Selector** rule. - -For information about managing, troubleshooting and upgrading Execution Servers on AWS, see [Managing AWS EC2 Execution Servers](../managing-aws-ec2-execution-servers.md). -:::note -The below procedure assumes you're using the out-of-the-box **Execution Server Selector** attribute. However, in order to use this attribute, you will need to assign it the **Execution Server Selector** rule in Resource Manager Client's **Attributes** tab. For details, see [Defining attribute rules](../../../../setting-up-cloudshell/inventory-operations/resource-data-modeling-for-1st-gen-shells/attributes.md#defining-attribute-rules). -::: -**To configure the Execution Server Selector attribute:** - -1. In **CloudShell Portal**, configure the Execution Server: - - 1. Open the **Manage>Execution Servers>Servers** page. - 2. Click the **es-shells** Execution Server. - 3. Select the **Execution Server Selector** check box and enter a unique value, such as "us-east-1-es1”. - - ![](/Images/Admin-Guide/AWS-deployment-type/AWS-deployment-type-Installation_1_428x153.png) - -2. Click **Done**. -3. If you are using a deployed App shell that has a custom driver, repeat the above process to configure the **es-commands** Execution Server with a different **Execution Server Selector** value. - - To complete the link, in the App's **App Resource** page, specify the same value on the **Execution Server Selector** attribute. - :::important - If you are setting up AWS integration in High Availability mode, repeat this process for the backup Execution Servers (**es-shells-b** and **es-commands-b**). - ::: -4. Next, [Add an AWS EC2 Cloud Provider Resource](./add-an-aws-ec2-cloud-provider-resource.md). diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/configure-the-qualix-server-for-aws-ec2.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/configure-the-qualix-server-for-aws-ec2.md deleted file mode 100644 index 3ad7c8648f..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/configure-the-qualix-server-for-aws-ec2.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -sidebar_position: 9 ---- - -# Configure the Qualix Server for AWS EC2 - -Follow these guidelines when setting up QualiX in-browser connections in your AWS integration. -:::note -To connect to App instances without QualiX, you will need to access the keypair location defined in the AWS EC2 cloud provider resource and download the key-pair `.pem` file from the bucket bearing the reservation ID. -::: -- If the only QualiX server in your CloudShell deployment is the one in the Management VPC in AWS, refer to the [QualiX Installation and Configuration](../../../../../install-configure/qualix/index.md) on how to configure it, and for the server address, use the **QualixInstanceEIP** output from the **CloudFormation** process - see [Create a Management VPC and Networks using CloudFormation](./create-a-management-vpc/index.md). -- If there are more QualiX servers in your CloudShell deployments, do the following for each relevant server: - 1. Install QualiX version 2.3 or above. - 2. Use an attribute to hold the QualiX Server address, and customize the `ServerUniversalSettings.xml` file on the Quali Server machine to have Quali Server take the QualiX Server address from this attribute. - 3. Add this attribute to the **Generic App Model** and set its value in all AWS templates defined in the App catalog for this region. Each App must have in this attribute the address of the QualiX Server in the Management VPC of its region. - -- If you selected an internal deployment of the Management VPC, the QualiX Server does not have a Public IP and is accessible only by the network that is connected via VPN to the Management VPC, which is the network you defined in the **On Premise CIDR** input parameter when you created the Management VPC. If you need more networks to access the QualiX Server, which enables end users to access the AWS EC2 Apps in the sandboxes, configure the **Management VPC Routing Table** via the AWS Console and add those networks. - - -## Related Topics - -- [Connect Remotely to Devices with QualiX (RDP, SSH, Telnet)](../../../../../portal/sandboxes/sandbox-workspace/resources/connect-remotely-with-qualix.md) diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/connect-the-management-vpc-to-quali-server.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/connect-the-management-vpc-to-quali-server.md deleted file mode 100644 index 7dbdf8e5b2..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/connect-the-management-vpc-to-quali-server.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -sidebar_position: 5 ---- - -# Connect the Management VPC to Quali Server - -**To connect the Management VPC to Quali Server:** - -1. To prepare Quali Server, configure the connection between the Management VPC and Quali Server via VPN, and register the Execution Servers on Quali Server. -2. To complete the configuration, perform the following steps: - 1. Open the AWS console and identify the Management VPC listed in the **VPN Connections** summary. - 2. Open the Management VPC's VPN connection created in [Create a Management VPC and Networks using CloudFormation](./create-a-management-vpc/index.md). - 3. Select the **Management VPC** and click **Download Configuration** according to the type of gateway you have on the Quali Server network side. - - ![](/Images/Admin-Guide/AWS-deployment-type/AWSDeploymentTypeInstallation.png) - - 4. Use the configuration information to configure VPN on the Quali Server network side. -3. Make sure you have an active VPN. -4. To register the Execution Server instances on the Quali Server: - - 1. Log in to your AWS console. - - 2. In the **EC2 Dashboard**, identify the two Execution Server instances associated with the Management VPC created when the Management VPC was created. - - 3. Reboot the Execution Server instances (**es-shells** and **es-commands**): right click the instance and select **Instance State>Reboot**. - - ![](/Images/Admin-Guide/AWS-deployment-type/CloudFormationRebootExecutionServers.png) - -5. Next, [Configure an Execution Server Selector for AWS EC2](./configure-an-execution-server-selector-for-aws-ec2.md). diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/create-a-management-vpc/_category_.json b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/create-a-management-vpc/_category_.json deleted file mode 100644 index 4f189b88e2..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/create-a-management-vpc/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Create a Management VPC and Networks using CloudFormation", - "position": 3 -} diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/create-a-management-vpc/index.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/create-a-management-vpc/index.md deleted file mode 100644 index aacc90bff9..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/create-a-management-vpc/index.md +++ /dev/null @@ -1,145 +0,0 @@ -# Create a Management VPC and Networks using CloudFormation - -The **CloudFormation** service creates the Management VPC, subnet within the Management VPC, and then launches three AWS EC2 instances, two with an execution server and one with QualiX. The execution servers then need to be configured to access the on-prem Quali Server. To set up a deployment where Quali Server is also installed on AWS, see [Integrating AWS with Cloud-based CloudShell Installation](./integrating-aws-with-cloud-based-cloudshell.md). -:::note Important: -We strongly recommend using the new and improved [AWS 2nd Gen shell](https://github.com/orgs/QualiSystems/discussions/1695). If you're using the 1st Gen version of the shell that comes out of the box with CloudShell, see [this version](https://help-archive.quali.com/Online%20Help/2021.1/Portal/Content/Admn/VPC-Crt-Mng-VPC-Ntwrks.htm) of the online help. -::: -**To create a Management VPC and the required networks:** - -1. Make sure you have the information required for this process, as listed in [Required Permissions for AWS Deployment](../required-permissions-for-aws-deployment.md). -2. As an admin, open your AWS management account, search for "cloudformation" and click the **CloudFormation** service. - - ![](/Images/Admin-Guide/AWS-deployment-type/CloudFormationSection.png) - -3. Click the **Create Stack** drop-down list and select **With new resources (standard)**. -4. In the **Create stack** page, specify the appropriate Quali template. There are two template URLs for AWS integration and they are provided in [CloudShell Download Center](https://support.quali.com/hc/en-us/articles/231613247-Quali-s-Download-Center) for each CloudShell release version: - - - **0_Main.yaml**: Deploys the cloud infrastructure that is needed for the deployment type of your choice - internal or external deployments. This includes the management VPC and a peering to your local network's gateway for external deployments where Quali Server is installed locally. In this mode, a sandbox VPC is created for each sandbox. - - - In an internal deployment, the QualiX instance has only a Private IP associated with it. The Private IP is accessible from the networks that are connected to the Management VPC (such as the network in which the Quali Server resides). - - In an external deployment, the QualiX instance has a Public IP associated with it. - - - **3_Shared_VPC.yaml**: Is optionally deployed after the **0_Main.yaml** and enables you to define an existing VPC that will host the cloud infrastructure (instead of creating a new sandbox VPC for each sandbox). Defines the shared VPC's account, IP ranges and transit gateway. For details, see [Create a Shared VPC using CloudFormation](../create-a-shared-vpc-using-cloudformation.md). -5. Click **Next**. -6. In the **Specify Details** page, enter a **Stack name** and fill in the installation parameters. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterDescription
Network - Determines how the network infrastructure is deployed. Options are: - - - **NAT**: Used for internal deployment, where the QualiX instance has only a Private IP associated with it. This option doesn’t expose a public IP to the internet. This option deploys QualiX and the Execution Servers on AWS while CloudShell is installed on prem and communicates with the AWS stack via VPN. It is also possible to have CloudShell installed on AWS. For details, see [Integrating AWS with Cloud-based CloudShell Installation](./integrating-aws-with-cloud-based-cloudshell.md). - - **Local**: Used for deployments where internet access is provided via the on prem VPN. - - **Public (Elastic IP)**: Used for external deployment, where the QualiX instance has a Public IP associated with it. -
VPN Attachment - Determines if to create a VPN connection to the on-prem network and how it will be attached to the management VPC. Options are: - - - **Transit gateway**: Connects the VPC to the on-prem network via a central hub. - - **VPC gateway**: Connects the management VPC directly to the on-prem network. - - **No VPN**: Does not create a VPN connection. Use this option if you plan on having CloudShell installed on AWS and don’t need on-prem access. This option does the following: - - Does not create a VPN connection. - - Deploys an empty Windows Server 2019 Full Base instance on AWS on which you will need to manually install CloudShell Server in this instance, as explained in [Integrating AWS with Cloud-based CloudShell Installation](./integrating-aws-with-cloud-based-cloudshell.md). -
Management VPC CIDR - The IP range (in CIDR notation) to be used for the Management VPC. Select a class C CIDR (/24). - :::note - The Management VPC will be later connected via VPN with your on-premise network so select an IP range that does not conflict with your other networks. - ::: -
Key PairThe KeyPair to use for all instances that will be created in the Management VPC.
Instance TypeThe instance type to be used for the execution server and QualiX instances. The minimum recommended instance type is c4.large.
High Availability Mode - Use this option if you wish to set up AWS integration in High Availability mode. In this mode, the integration will create two additional execution servers, **es-shells-b** and **es-commands-b** that will be used for failover scenarios. - :::note - Before enabling High Availability mode, please take into account that the failover instances will incur additional costs. - ::: -
VPN Address - The public IP address of the router on the network in which Quali Server resides. - - Leave empty if you set **VPN Attachment** to **No VPN**. -
On-premise CIDRThe IP range (in CIDR notation) of the private network in which the Quali Server resides (outside of the management VPC).
Enhanced S3 Bucket SecuritySelect True to enable this option to encrypt and block public access from the S3 bucket.
- Configure the execution servers (created by the CloudFormation process) to work with the Quali Server: - - Leave the below parameters empty if you set **VPN Attachment** to **No VPN** and **Network** to **Public (Elastic IP)**. -
CloudShell Server IPThe IP Address of the Quali Server
CloudShell UsernameThe CloudShell admin user
CloudShell PasswordThe CloudShell admin password
- - For example: - - ![](/Images/Admin-Guide/AWS-deployment-type/CloudFormationInstallParams.png) - -7. Click **Next**. -8. In the **Options** page, click **Next**. - -9. In the **Review** page, at the bottom, select the **I acknowledge that AWS CloudFormation might create IAM resources** check box. -10. Click **Create**. - - The stack is created. - - If stack creation fails with the below subscription error, make sure to subscribe to the CentOS 7 [Marketplace image](https://aws.amazon.com/marketplace/pp/B00O7WM7QW) and try again. - - ![](/Images/Admin-Guide/AWS-deployment-type/AWSSubscriptionError.png) - -11. Note the **Outputs** tab at the bottom of the page. You will need this information when you [Add an AWS EC2 Cloud Provider Resource](../add-an-aws-ec2-cloud-provider-resource.md). - - ![](/Images/Admin-Guide/AWS-deployment-type/CloudFormationStack.png) - -12. In the **VPC Dashboard**, open **VPN Connections** to see the VPN connection settings: - - ![](/Images/Admin-Guide/AWS-deployment-type/CloudFormationVPNConnections.png) - -13. Next, do one of the following: - - If you want to set up a shared VPC integration in which AWS EC2 Apps are deployed to an existing VPC on AWS: [Create a Shared VPC using CloudFormation](../create-a-shared-vpc-using-cloudformation.md). - - If Quali Server is installed in your on-prem network: [Connect the Management VPC to Quali Server](../connect-the-management-vpc-to-quali-server.md). - - If Quali Server is also on AWS: [Configure an Execution Server Selector for AWS EC2](../configure-an-execution-server-selector-for-aws-ec2.md). \ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/create-a-management-vpc/integrating-aws-with-cloud-based-cloudshell.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/create-a-management-vpc/integrating-aws-with-cloud-based-cloudshell.md deleted file mode 100644 index 532f12269a..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/create-a-management-vpc/integrating-aws-with-cloud-based-cloudshell.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Integrating AWS with Cloud-based CloudShell Installation - -It is possible to set up an AWS integration where CloudShell is Server is also installed on AWS. - -The process is as follows - -1. Deploy the **Main.yaml** CloudFormation template. For details, see [Create a Management VPC and Networks using CloudFormation](../create-a-management-vpc/index.md). - - :::note Important: - - Make sure the **Network** parameter is set to either **NAT** or **Public**. - - If you're deploying a public network, make sure **VPN Attachment** is not set to **No VPN**. - ::: -2. From AWS Marketplace, deploy a **Windows Server 2019 English Full Base** instance called **cloudshell-server** that is connected to the Execution Servers subnet. -3. In the instance's security group, set a rule to allow inbound RDP connections over IPv4 - see this [article](http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/authorizing-access-to-an-instance.html) for official instructions. -4. Log in to the Windows Server 2019 instance using Remote Desktop. To get the password, in the **EC2 Dashboard**, right-click the instance and select **Connect**, click **Get Windows Password**, browse to the keypair file you used in CloudFormation and select **Decrypt**. -5. On the instance, install the CloudShell suite that matches the CloudFormation template you are using. Make sure you install an execution server on this machine and configure it to run all sandbox orchestration scripts. For details, see [Controlling execution server selection for blueprint commands](../../../../../cloudshell-execution-server-configurations/setting-up-execution-servers-to-run-commands.md#controlling-execution-server-selection-for-blueprint-commands). -6. Stop and start the **es-shells** and **es-commands** instances to allow the execution servers to register Quali Server. -7. If for whatever reason they didn't register, manually connect each execution server to the CloudShell Server, as explained in [Connecting the Execution Server to Quali Server](../../managing-aws-ec2-execution-servers.md#connecting-the-execution-server-to-quali-server). -8. In CloudShell Portal, in the **Manage** dashboard, open the **Execution Servers>Servers** page and make sure the two execution servers registered successfully and are online. diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/create-a-shared-vpc-using-cloudformation.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/create-a-shared-vpc-using-cloudformation.md deleted file mode 100644 index 41c13db5ad..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/create-a-shared-vpc-using-cloudformation.md +++ /dev/null @@ -1,118 +0,0 @@ ---- -sidebar_position: 4 ---- - -# Create a Shared VPC using CloudFormation - -The Shared VPC option is supported in the AWS 2G shell and enables you to deploy sandboxes to an existing VPC. - -**Prerequisites:** - -- Successfully deployed **0_Main.yaml** stack - -**To create a Shared VPC:** - -1. Add a principal for the **TGW Share** resource share. - - 1. As an admin, open your AWS management account. - 2. Open the **Resource Access Manager** dashboard. - 3. Click the **TGW Share** resource share. - - ![](/Images/Admin-Guide/AWS-deployment-type/ResourceAccessManager1.png) - - 4. Click **Modify**. - - ![](/Images/Admin-Guide/AWS-deployment-type/ResourceAccessManager2.png) - - 5. Click **Next**. - 6. Add the AWS account ID of the shared account and click **Next**. - - ![](/Images/Admin-Guide/AWS-deployment-type/ResourceAccessManager3.png) - - 7. Update the resource share. -2. Create the CloudFormation stack. - 1. Click **Management Tools>CloudFormation**. - - ![](/Images/Admin-Guide/AWS-deployment-type/CloudFormationSection.png) - - 2. As an admin, open the AWS account that will contain the shared VPC. - 3. Click the **Create Stack** button. - 4. In the **Select Template** page, select the **Specify an Amazon S3 template URL** option and enter the **3_Shared_VPC.yaml** template's URL. The template URLs are provided in [CloudShell Download Center](https://support.quali.com/hc/en-us/articles/231613247-Quali-s-Download-Center) for each CloudShell release version. - 5. Click **Next**. - 6. In the **Specify Details** page, enter a **Stack name** and fill in the installation parameters. - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterDescription
Shared VPC CIDR - VPC CIDR for the shared VPC. Default is 10.1.0.0/16. - :::note Important: - We strongly recommend to use a "/16" CIDR range. A smaller range will force you to specify subnet ranges for every new sandbox and may dramatically decrease the number of sandboxes you can have running at the same time. - ::: -
Default Subnet CIDR - Default CIDR to be used by CloudShell. This CIDR range must be included in the defined VPC CIDR. Default is 10.1.254.0/24. - :::note - CloudShell cannot differentiate between this CIDR and the VPC CIDR, which can cause overlap. To avoid this from happening, we recommend specifying a limited default subnet CIDR. For example, "10.1.254.0/24” or "10.1.253.0/24”. - ::: -
VPN AddressThe public IP address of the router on the network in which Quali Server resides.
Transit Gateway IDCreated by the deployment of the management VPC. To find the transit gateway ID, open the main CloudFormation stack , click the **Outputs** tab and copy the **TGWid** value.
Execution Server Role ARNCreated by the deployment of the management VPC. To find the role ARN, open the main CloudFormation stack , click the **Outputs** tab and copy the **ESRoleArn** value.
- - For example: - - ![](/Images/Admin-Guide/AWS-deployment-type/SharedVPCInstallationParams.png) - - 1. Click **Next**. - 2. In the **Options** page, click **Next**. - 3. In the **Review** page, at the bottom, select the **I acknowledge that AWS CloudFormation might create IAM resources** check box. - 4. Click **Create**. - - The stack is created. - -1. Modify the Execution Server role ARN. - 1. As an admin, open your AWS management account. - 2. In the **CloudFormation** dashboard, click the main stack (bearing the stack name followed by "-VPCNAT. For example, my-stack-VPCNAT-2JDLSJ32D4LC). - 3. Click the **Resources** tab and click the **ESRole**'s physical ID. - 4. Click **CloudShell_EC2Access**. - 5. Click **Edit Policy**. - 6. Switch to the JSON tab and add the following statement for each shared VPC you deployed: - - ```javascript - { - "Effect": "Allow", - "Action": "sts:AssumeRole", - "Resource": "" - }, - ``` - - For example: JSON defining two shared VPCs: - - ![](/Images/Admin-Guide/AWS-deployment-type/SharedVPCJson.png) - - 7. Replace "\" with the shared role ARN. To find the shared VPC role ARN, open your AWS account in a new browser tab, open the shared VPC CloudFormation stack , click the **Outputs** tab and copy the **SharedVpcRoleArn** value. - 8. Click **Review policy** and then **Save changes**. -2. Next, do one of the following: - - If Quali Server is installed in your on-prem network: [Connect the Management VPC to Quali Server](./connect-the-management-vpc-to-quali-server.md). - - If Quali Server is also on AWS: [Configure an Execution Server Selector for AWS EC2](./configure-an-execution-server-selector-for-aws-ec2.md). diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/index.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/index.md deleted file mode 100644 index 63f53ede71..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/index.md +++ /dev/null @@ -1,80 +0,0 @@ -# AWS Integration - -The AWS deployment type integrates CloudShell with the AWS public cloud. This integration enables the deployment of CloudShell Apps in AWS. CloudShell supports deploying AWS instances from AMI (Amazon Machine Image) images. - -CloudShell supports three infrastructure deployment modes: - -- **Dedicated VPC** mode: (Default) CloudShell deploys a new VPC and subnet(s) for each sandbox and deletes that VPC and related cloud resources when the sandbox ends. This mode is provided with CloudShell via the out-of-the box AWS shell. For details, - - The following diagram illustrates an AWS integration (with a local CloudShell installation) hosting two live sandboxes: - - ![](/Images/Admin-Guide/AWS-deployment-type/AWS-architecture.png) - - -- **Shared VPC** mode: CloudShell deploys the sandbox to an existing VPC. When the sandbox ends, the sandbox-deployed cloud resources such as subnets, instances and security groups are deleted from the cloud while the VPC remains. For details, - - :::note Notes about Shared VPC: - - This mode is supported by the AWS EC2 2G shell, which needs to be downloaded separately from [Quali Repositories](https://github.com/orgs/QualiSystems/discussions/categories/integrations). - - Applies to sandboxes based on AWS cloud provider resources that are configured to use Shared VPC mode. - - - New subnet(s) are created in the shared VPC for each sandbox and deleted when the sandbox ends. - - - CloudShell creates 2 dedicated security groups per sandbox, which are used to isolate AWS instances from instances of other sandboxes. - - - Shared VPCs can reside in different AWS accounts and different regions. - ::: - The following diagram illustrates an AWS integration with two different accounts, where each account has a shared VPC with live sandboxes: - - ![](/Images/Admin-Guide/AWS-deployment-type/AWS-Architecture---Shared-mode.png) - -- **Single** (Management VPC): CloudShell deploys the sandbox in the Management VPC, which was deployed as part of CloudShell's CloudFormation stack. - -The deployment architecture in AWS requires a **Management VPC** to be created for each relevant AWS region. The Management VPC has 4 instances, which are always on: - -- QualiX: QualiX Server used to enable in-browser RDP, Telnet and SSH access to Apps in the sandbox. -- Execution Servers: Two Execution Servers named **es-shells** and **es-commands** are deployed in the region and for High Availability Mode, an additional two fallback execution servers are deployed named **es-shells-b** and **es-commands-b**. - - **es-shells**: Execution server to be used for the deployment and management of the AWS instances. This execution server has access to AWS API and is associated with an AWS IAM role. - - **es-commands**: Execution server to be used for running scripts and commands on the AWS instances. This execution server is associated with an empty AWS IAM role. -- **NAT**: (Created in integrations where Quali Server IS NOT installed on AWS) Network address translation instance that enables internally deployed AWS instances to initiate outbound traffic to the Internet or other AWS services, while preventing the AWS instances from receiving inbound traffic from the Internet. Do not touch this instance. -- **cloudshell-server**: Created when deploying a public Main CloudFormation template without VPN. It's the user's responsibility to install Quali Server on this instance. For details, see [Integrating AWS with Cloud-based CloudShell Installation](../../aws-integration-and-configuration/aws-integration/create-a-management-vpc/integrating-aws-with-cloud-based-cloudshell.md). -:::note -Keeping these instances running at all times entails a fixed monthly rate. -::: -Both the **es-shells** and **es-commands** execution servers in the Management VPC need to access the Quali Server, which is located outside of the Management VPC (on-premise, another AWS VPC or another public cloud). To allow this access, you need to configure a VPN between the Management VPC and the network in which the Quali Server resides. - -When a new CloudShell sandbox with AWS EC2 Apps is starting, the out-of-the-box setup process creates a new VPC with a subnet in it (in shared mode, the sandbox subnet is created in an existing VPC defined in the AWS cloud provider resource). All AWS EC2 Apps within the same sandbox are deployed in this sandbox subnet (within the Sandbox VPC). This architecture allows both QualiX Server and the execution servers to access the Apps in the sandbox while keeping the Apps within one sandbox isolated from Apps in other sandboxes. Note that up to 255 AWS EC2 Apps may be deployed in a single sandbox. - -In dedicated VPC mode, the sandbox VPC is connected to the Management VPC using a VPC Peering connection. In shared VPC mode, there is no peering between the management VPC and shared VPC, and communication is done via a static transit gateway, which acts like a router between the different VPCs. - -:::note Notes: -- AWS EC2 Apps in the same sandbox are actually on the same subnet and VPC, and can interact with each other. -- CloudShell allows sandboxes to have multiple subnets. See [Subnet Connectivity](../../../../setting-up-cloudshell/inventory-operations/connectivity-control/subnet-connectivity/index.md). -- When the sandbox ends, the Sandbox VPC along with all its components (the subnets, the App instances and the VPC Peering) are automatically deleted by CloudShell. In Shared VPC mode, the sandbox subnets and instances are deleted but the VPC infrastructure remains. -- In dedicated mode, when the sandbox ends, the Sandbox VPC along with all its components (subnets, App instances and the VPC peering) are automatically deleted by CloudShell. In shared mode, the subnets and App instances are deleted but the shared VPC remains. -- Amazon API enables you to retrieve a sandbox's VPC name using the **ReservationId** tag with the sandbox's ID. This can be used, for example, in real-time automation processes. -::: -## AWS installation workflow - -For each AWS region you want to integrate with CloudShell, perform the following steps: - -1. [Create a Management VPC and Networks using CloudFormation](./create-a-management-vpc/index.md) - - In order to deploy a shared VPC integration where CloudShell sandboxes are deployed to an existing VPC, you need to also create a Shared VPC stack to define the AWS account and shared VPC to use, as explained in [Create a Shared VPC using CloudFormation](./create-a-shared-vpc-using-cloudformation.md). - -2. [Connect the Management VPC to Quali Server](./connect-the-management-vpc-to-quali-server.md) -3. [Configure an Execution Server Selector for AWS EC2](./configure-an-execution-server-selector-for-aws-ec2.md) -4. [Add an AWS EC2 Cloud Provider Resource](./add-an-aws-ec2-cloud-provider-resource.md) - - For shared VPC mode, make sure to also configure the shared VPC parameters on the cloud provider resource. - -5. [Add an AWS EC2 App Template](./add-an-aws-ec2-app-template.md) -6. [Configure the Qualix Server for AWS EC2](./configure-the-qualix-server-for-aws-ec2.md) - -## Related Topics - -- [AWS Regions Supported by CloudShell](./aws-regions-supported-by-cloudshell.md) -- [Required Permissions for AWS Deployment](./required-permissions-for-aws-deployment.md) -- [Managing Public Cloud Apps in Domains](../../managing-public-cloud-apps-in-domains.md) -- [Cost Management of AWS EC2 Instances](../cost-management-of-aws-ec2-instances.md) -- [Managing AWS EC2 Execution Servers](../managing-aws-ec2-execution-servers.md) \ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/required-permissions-for-aws-deployment.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/required-permissions-for-aws-deployment.md deleted file mode 100644 index 7eaa801ce1..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/aws-integration/required-permissions-for-aws-deployment.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Required Permissions for AWS Deployment - -Before creating the management VPC and networks, make sure you have the following: - -- Admin user with permissions to the following services: - - - EC2 - - VPC - - CloudFormation - - S3 - - IAM - - AWSLambda_FullAccess - -- When creating the stack for the first time, the AWS account must be subscribed to the CentOS 7 [Marketplace image](https://aws.amazon.com/marketplace/pp/B00O7WM7QW). -- VPN address: Public IP address to your router -- Keypair on AWS: New or existing keypair to be used during the CloudFormation process -- On Premise CIDR: IP address range of a network behind the router -- VPC CIDR: Range of available IP addresses to be allocated to AWS EC2 VMs deployed by CloudShell \ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/cost-management-of-aws-ec2-instances.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/cost-management-of-aws-ec2-instances.md deleted file mode 100644 index d4d91a388f..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/cost-management-of-aws-ec2-instances.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Cost Management of AWS EC2 Instances - -To assist with your AWS EC2 cost management activities, AWS EC2 resources that are created by CloudShell Apps include the following tags: **Blueprint**, **CreatedBy**, **Domain**, **Name**, **Owner**, and **ReservationId**. -:::note Important -These tags should not be altered as this may cause unexpected behavior and inaccurate AWS budget reports. -::: -For example: - -![](/Images/Admin-Guide/AWS-deployment-type/AWSTags.png) - -## Creating budgets - -Budgets are your way to manage your CloudShell AWS costs. Here are a few examples of how to use CloudShell tags in your budget: - -- For a general budget, select the **CreatedBy** tag with the **CloudShell** value, and specify an amount. -- To limit specific users, select the **Owner** tag and specify the owner for whom to create a budget. -- To limit the number of times a blueprint can be reserved, select the **Blueprint** tag and select a specific blueprint. -- To limit the number of AWS instances that can be created per domain, select the **Domain** tag and select a certain domain. - -For additional information on creating a budget, see [CloudShell AWS Cost Management](https://github.com/orgs/QualiSystems/discussions/289) on our Community forum. diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/index.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/index.md deleted file mode 100644 index e9e9fed565..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/index.md +++ /dev/null @@ -1,13 +0,0 @@ -# AWS Integration and Configuration - -To enable CloudShell Apps to deploy virtual machines in AWS, the system administrator needs to integrate AWS with CloudShell, and associate each App template with the domain of the CloudShell cloud provider resource the admin created during the integration process. To manage AWS costs, the system administrator can set up budgeting limits for CloudShell-created AWS resources such as instances. - -:::note Important -AWS elements created by CloudShell should not be altered as this may cause unexpected behavior. -::: - -## Related Topics - -- [AWS Integration](./aws-integration/index.md) -- [Managing Public Cloud Apps in Domains](../managing-public-cloud-apps-in-domains.md) -- [Cost Management of AWS EC2 Instances](../aws-integration-and-configuration/cost-management-of-aws-ec2-instances.md) \ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/managing-aws-ec2-execution-servers.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/managing-aws-ec2-execution-servers.md deleted file mode 100644 index 239cbbb00b..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/aws-integration-and-configuration/managing-aws-ec2-execution-servers.md +++ /dev/null @@ -1,160 +0,0 @@ ---- -sidebar_position: 3 ---- - -# Managing AWS EC2 Execution Servers - -The CloudShell CloudFormation process installs two Execution Servers on the AWS EC2 region - **es-shells** and **es-commands**. - -## Support - -- The Execution Servers are installed on Centos 7 instances (CentOS 7.2 and up). -- The Execution Servers come with Python 2.7 and 3 installed and configured out of the box. - -## Accessing the Execution Server instances - -- Use username "centos” and the key used during the CloudFormation deployment. - -## Connecting the Execution Server to Quali Server - -This procedure is required if Quali Server is also installed on AWS. - -- Log in to the Execution Server machine and follow the instructions in [Configure the Linux Execution Server](../../../../install-configure/linux-virtual-appliance/post-installation/configure/index.md). - -## Execution Server logs - -Execution Server logs reside at: - -- `/opt/ExecutionServer/logs` -- `/var/log/qualisystems/` - -## Performing maintenance operations on an Execution Server - -Do the following if you need to perform any maintenance operations on the Execution Server, such as updating the Execution Server version of setting `customer.config` keys: - -1. Stop the Execution Server service by running the following command: - - ```python - sudo systemctl stop es - ``` - -2. Perform the maintenance operations. -3. Start the Execution Server service by running the following command: - - ```python - sudo systemctl start es - ``` - - -## Installing a new Execution Server - -Follow this procedure to install a new Execution Server from scratch. To upgrade an existing Execution server, scroll down to the next section. - -1. From [Quali’s Download Center](https://support.quali.com/hc/en-us/articles/231613247-Quali-s-Download-Center?flash_digest=3f2ece71dadb98bf640f295d5812eb5e8aedb9a7), download the **Linux Execution Server** installation script to your local machine. - -2. In the **EC2 Dashboard**, launch an instance, select the latest **CentOS 7** instance type. - - The **Choose an Instance Type** page is displayed. - -3. At the bottom of the page, click **Next: Configure Instance Details**. -4. In the **Advanced Details** area, select **As text** and paste the **Linux Execution Server** installation script's contents. - - For example: - - ```python - curl [InstallScript] --output cloudshell_es_install_script.sh --retry 20 -s –S - chmod +rwx ./cloudshell_es_install_script.sh - sed -i -e 's/\r$//' ./cloudshell_es_install_script.sh - ./cloudshell_es_install_script.sh [CloudShellServerIP] [CloudShellServerAdmin] [CloudShellServerAdminPassword] [ExecutionServerName] - ``` - -5. Update the CloudShell Server and administrator credentials. - - For example (script for CloudShell 9.0): - - ```python - curl https://s3.amazonaws.com/quali-prod-binaries/9.0.0-180/ES/cloudshell_es_install_script.sh --output cloudshell_es_install_script.sh --retry 20 -s –S - chmod +rwx ./cloudshell_es_install_script.sh - sed -i -e 's/\r$//' ./cloudshell_es_install_script.sh - ./cloudshell_es_install_script.sh 192.168.42.132 admin admin es-shells - ``` - - :::note Notes - - If the Execution Server VM does not have an internet connection, make sure the OfflinePackageRepository zip file is extracted to the local PyPi Server repository. For details, see [Add the out-of-the-box dependencies package to the local PyPi Server repository](../../../cloudshell-execution-server-configurations/setting-up-python-virtual-environments/configuring-cloudshell-to-execute-python-commands-in-offline-mode.md#add-the-out-of-the-box-dependencies-package-to-the-local-pypi-server-repository). - - Quali Server must be running when configuring the Execution Server. - - Depending on your flavor of Linux, you may need to escape parameter values containing special characters with single or double quotes. For example: `"admin1234!"` - ::: - -6. Launch the instance. - -## Upgrading an existing Execution Server - -There are two ways to upgrade an AWS Execution Server: - -- Upgrade to a GA version (by spinning up a new instance and installing the Linux Execution Server installation script installation script that installs the updated Execution Server) -- Upgrade to a non-GA patch version (by replacing configuration DLLs) - -**To upgrade to a GA version:** - -1. SSH to the VM. -2. Stop the Execution Server service by running the following command: - - ```python - sudo systemctl stop es - ``` - -3. Run the following script (set the appropriate values): - - ```python - curl [InstallScript] --output cloudshell_es_install_script.sh --retry 20 -s -S - chmod +rwx ./cloudshell_es_install_script.sh - sed -i -e 's/\r$//' ./cloudshell_es_install_script.sh - ./cloudshell_es_install_script.sh [CloudShellServerIP] [CloudShellServerAdmin] [CloudShellServerAdminPassword] [ExecutionServerName] - ``` - - For example: - - ```python - curl https://s3.amazonaws.com/quali-prod-binaries/8.3-168734/ES/cloudshell_es_install_script.sh --output cloudshell_es_install_script.sh --retry 20 -s -S - chmod +rwx ./cloudshell_es_install_script.sh - sed -i -e 's/\r$//' ./cloudshell_es_install_script.sh - ./cloudshell_es_install_script.sh 192.168.42.132 admin admin es-shells - ``` - - :::note Notes - - If the Execution Server VM does not have an internet connection, make sure the OfflinePackageRepository zip file is extracted to the local PyPi Server repository. For details, see [Add the out-of-the-box dependencies package to the local PyPi Server repository](../../../cloudshell-execution-server-configurations/setting-up-python-virtual-environments/configuring-cloudshell-to-execute-python-commands-in-offline-mode.md#add-the-out-of-the-box-dependencies-package-to-the-local-pypi-server-repository). - - Quali Server must be running when configuring the Execution Server. - - Depending on your flavor of Linux, you may need to escape parameter values containing special characters with single or double quotes. For example: `"admin1234!"` - ::: - -4. Start the Execution Server service by running the following command: - - ```python - sudo systemctl start es - ``` - :::tip - The Execution Server service name was changed from **qa_execution_server** to **es** in version 8.3. - ::: - -**To upgrade to a patch version:** - -1. Open the CloudShell patch package. -2. Go to the `~\CloudShell \Data\ExecutionServer\Qualisystems\TestShell\ExecutionServer` folder. For example: - - ![](/Images/Admin-Guide/CloudShellPackageForCloudProviders.png) - -3. Select all contents in the folder and create a tar archive. -4. Copy the tar file to the `/temp` folder in the **Execution Server** instance. -5. SSH to the instance. -6. Stop the Execution Server service by running the following command: - - ```python - sudo systemctl stop es - ``` - -7. Extract the tar file to `/opt/ExecutionServer`, overriding any existing files. -8. Start the Execution Server service by running the following command: - - ```python - sudo systemctl start es - ``` diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/index.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/index.md deleted file mode 100644 index 36dee5ac92..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/index.md +++ /dev/null @@ -1,10 +0,0 @@ -# Public Cloud Provider Support in CloudShell - -In order to allow CloudShell Apps to deploy and manage virtual machines in a public cloud provider such as AWS or Azure in CloudShell, the system administrator needs to perform several configurations. These include setting up a CloudShell management network on the cloud provider, a VPN connection to enable communication between CloudShell and the cloud provider, and a CloudShell "cloud provider resource", which provides the cloud provider's network, storage and access settings to the CloudShell Apps. - -In addition, CloudShell tags are attached to all CloudShell-created elements in the cloud provider. You can use these tags to analyze, filter and manage costs associated with your CloudShell activities. - -## Related Topics - -- [AWS Integration](./aws-integration-and-configuration/aws-integration/index.md) -- [Microsoft Azure Integration](./microsoft-azure-integration-and-configuration/microsoft-azure-integration/index.md) \ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/managing-public-cloud-apps-in-domains.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/managing-public-cloud-apps-in-domains.md deleted file mode 100644 index 5c95c386ed..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/managing-public-cloud-apps-in-domains.md +++ /dev/null @@ -1,111 +0,0 @@ ---- -sidebar_position: 3 ---- - -# Managing Public Cloud Apps in Domains - -*The procedures in this article apply to Apps hosted on a public cloud provider, like AWS EC2 or Azure. For private cloud Apps like vCenter, see [Managing Private Cloud Apps in Domains](./managing-public-cloud-apps-in-domains.md).* - -CloudShell does not support the deployment of public cloud Apps on different cloud regions in the same sandbox. It is therefore required to include (in a blueprint or sandbox) only Apps with an active deployment path that is associated to a single cloud provider resource. A warning is displayed if this design guideline is not kept. - -In this process, you will configure the App's deployments to be carried out by the execution server(s) installed on the public cloud provider's region. This is done by associating the cloud provider and App to the domain, and associating the appropriate execution server to the cloud provider resource and to the shell that defines the deployed App. Technically, this requires specifying a value in the execution server's **Execution Server Selector** attribute, and setting that value in the cloud provider resource and deployed App shell. *Note that resource association to a domain makes sure that users use cloud providers allocated to their domains, while assigning the Execution Server Selector ensures that the actual drivers will run next to the cloud provider to reduce latency and improve performance.* - -CloudShell supports two public cloud providers out-of-the-box, AWS EC2 and Azure. In AWS EC2, we use two execution servers: **es-shells** deploys the instances on AWS and therefore needs to be associated to the cloud provider resource, and **es-commands** runs scripts and commands on the AWS instances and needs to be associated to the shell of the deployed Apps. In Azure, since the authentication mechanism works a bit differently, we use one execution server called **Execution-Server-VM** that needs to be associated to both the cloud provider resource and deployed App shell. - -For illustration purposes, we will configure an AWS App in this article. - -This is a five step process: - -1. Decide which CloudShell domain to associate to the public cloud region -2. [Set the execution server's selector attribute](./managing-public-cloud-apps-in-domains.md#set-the-execution-servers-selector-attribute) -3. [Create a cloud provider resource in the required domain](./managing-public-cloud-apps-in-domains.md#create-a-cloud-provider-resource-in-the-required-domain) -4. [Configure the Execution Server to support Ansible operations](./managing-public-cloud-apps-in-domains.md#configure-the-execution-server-to-support-ansible-operations) -5. [Associate the public cloud App to the domain](./managing-public-cloud-apps-in-domains.md#associate-the-public-cloud-app-to-the-domain) -:::important -Before you begin, make sure CloudShell has been configured on the required public cloud region. See [AWS Integration](./aws-integration-and-configuration/aws-integration/index.md) or [Microsoft Azure Integration](./microsoft-azure-integration-and-configuration/microsoft-azure-integration/index.md). -::: -## Set the execution server's selector attribute - -This procedure explains how to prepare the execution server to deploy the Apps. The **Execution Server Selector** attribute must have the **Execution Server Selector** rule enabled. - -**To associate an execution server to the domain:** - -1. In CloudShell Portal, click **Manage**. - - The **Manage** dashboard is displayed. - -2. In the left sidebar, click **Execution Servers**. - -3. In the left pane, under **Execution Servers**, click **Servers**. - - The execution server list is displayed. - -4. Click the name of the appropriate execution server. Note that this execution server is installed on the cloud provider itself. - - The **Attributes** dialog box is displayed. - -5. Select the **Execution Server Selector** check box and specify a value. For example, ES1: - - ![](/Images/CloudShell-Portal/Manage/AddAttributeOnES.png) - - For AWS EC2 Apps, perform these steps twice, once for the **es-shells** execution server and again for the **es-commands** execution. Specify a different value on each execution server. For illustration purposes, we'll set "ES1" as the value on **es-shells** and "ES2" as the value on **es-commands**. - -6. Click **Done**. -7. Repeat these steps to associate additional execution servers to the domain. - -## Create a cloud provider resource in the required domain - -**To set the cloud provider resource to the domain:** - -1. As system administrator, log in to CloudShell and select the required domain. -2. Create the cloud provider resource, as explained in [Adding AWS EC2 Cloud Provider Resource](../../../portal/inventory/managing-resources/adding-inventory-resources/adding-aws-cp.md) and [Adding Microsoft Azure Cloud Provider Resource](../../../portal/inventory/managing-resources/adding-inventory-resources/adding-azure-cp.md). - -3. In the **Region** attribute, enter the public cloud's region that is relevant for the current domain. - - For example, AWS EC2 resource with a **Region** selected: - - ![](/Images/CloudShell-Portal/Manage/ExecutionServerAppTemplate3.png) - -4. In the **Execution Server Selector** attribute, specify the value you set in the Execution Server Selector attribute on the appropriate execution server (**es-shells** for AWS ES2 - "ES1" in our case). -5. Complete the resource creation process. - -## Configure the Execution Server to support Ansible operations -:::note -This section is only required for Ansible configuration management. -::: -To use Ansible to install and configure applications on Apps, the system administrator needs to perform several configurations on the Linux-based Execution Server that will be used to run the Ansible operations on the App's deployed VMs. For additional information, see [Ansible Playbook Development for Apps](../../../devguide/develop-config-management-scripts-for-apps/ansible-playbook-dev-for-apps/). - -## Associate the public cloud App to the domain - -To make the App available to members of specific domains, in the App template, select the cloud provider resource with the required region and associate the domain categories to the App. - -**To associate an App to a domain:** - -1. In the **Manage** dashboard, in the left sidebar, click **Apps**. - - The **Apps** page is displayed. - -2. Create a new App or edit an existing one, as explained in [Managing App Templates](../../cloudshell-manage-dashboard/manage-app-templates/index.md). - - The App's configuration wizard is displayed. - -3. To make the App available to members of this domain, from the **Categories** dropdown list, select the categories associated to the domain. For details about creating domain categories, see [Managing domain categories](../../cloudshell-manage-dashboard/managing-categories.md#managing-domain-categories). - - For example, Testing NY: - - ![](/Images/CloudShell-Portal/Manage/ExecutionServerAppTemplate1.png) - -4. If this is a new App, in the **Deployment Paths** page, create a deployment path for the cloud provider. Make sure to select the cloud provider resource you created in the required CloudShell domain. -5. In the **App Resource** page, in the **Execution Server Selector** attribute, specify the value you set in the **Execution Server Selector** attribute on the appropriate Execution Server. For AWS EC2 Apps that have a custom shell driver, specify the value on the **es-commands** Execution Server ("ES2" in our case). - :::note - If the **Execution Server Selector** attribute is missing, ask the system administrator to associate it with the deployed App's resource model in **Resource Manager Client**. By default, the **Generic App Model** model is used. - ::: - ![](/Images/CloudShell-Portal/Manage/ExecutionServerSelectorAWSAppTemplate.png) - -6. Click **Done**. - -## Related Topics - -- [Manage Dashboard Overview](../../cloudshell-manage-dashboard/manage-dashboard-overview.md) -- [Managing App Templates](../../cloudshell-manage-dashboard/manage-app-templates/index.md) -- [Apps Overview](../../../intro/features/apps-overview.md) diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/_category_.json b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/_category_.json deleted file mode 100644 index 641625c0f5..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Microsoft Azure Integration and Configuration", - "position": 2 -} diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/azure-known-limitations.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/azure-known-limitations.md deleted file mode 100644 index 0285b8339a..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/azure-known-limitations.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -sidebar_position: 4 ---- - -# Azure Known Limitations - -For up to date Azure limitations, see the official [Microsoft Azure doc](https://docs.microsoft.com/en-us/azure/azure-subscription-service-limits). - -- **Limit for Network Security Groups (NSG)**: 5000. CloudShell uses 2 NSGs for the QualiX and Execution Server VMs. -- **Concurrent public IP addresses (dynamic)**: 1000 for Basic. Contact Azure support to increase the limit. -- **Concurrent public IP addresses (static)**: 1000 for Basic / 200 for Standard. Contact Azure support to increase the limit. -- **NSG rules per NSG**: 1000. An average of 2 rules are used per App. -- **Core quota**: Default is 30 per region / maximum is 10K. Contact support to increase the quota. -- **Number of storage accounts per subscription**: 250. Maximum number of sandboxes is 249 (one storage account is always used for management activity). -- **Concurrent sandboxes**: 249 -- **Extension scripts**: Extension scripts must be uploaded to a public location by the App designer, while in **Azure Portal** the user only needs to browse for the file and Azure will save it somewhere accessible to the VM. diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/cost-management-of-microsoft-azure-resources.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/cost-management-of-microsoft-azure-resources.md deleted file mode 100644 index 45546a6196..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/cost-management-of-microsoft-azure-resources.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Cost Management of Microsoft Azure Resources - -To assist with your Microsoft Azure cost management activities, Microsoft Azure resources, such as subnets, virtual machines and VNets, which are created by CloudShell Apps include the following tags: **Blueprint**, **CreatedBy**, **Domain**, **Name**, **Owner**, and **SandboxId**. -:::note Important: -These tags should not be altered as this may result in inaccurate usage data reports. -::: -## Download usage data from the Azure billing center - -This procedure explains how to download an Azure subscription’s usage data from the Azure billing center. The data is provided in a CSV file. - -**To download Microsoft Azure usage data:** - -1. Sign in to the [Microsoft Azure Account Center](https://account.windowsazure.com/subscriptions?correlationId=00000000-0000-0000-0000-000000000000) using your Microsoft account or Organizational ID. -2. Click the required subscription. -3. Specify the desired period. -4. From the **Download Usage** drop down list, select **Version 2 - Preview**. The Version 2 CSV file contains the updated terminology and user tags required to properly filter Azure resources. - - ![](/Images/Admin-Guide/Azure-deployment-type/BillingCurrentPeriod.jpg) - - A CSV file detailing the subscription’s usage data is downloaded. - - -## Filter usage data - -In the CSV file, the subscription’s usage data is arranged in 3 tables: - -- **Provisioning Status** – General information regarding subscriptions -- **Statement** – Summary and payments amounts -- **Daily Usage** - Detailed information regarding resource usage - -The **Daily Usage** table displays CloudShell custom tags attached to CloudShell elements created in Azure. Here are a few examples of how to use CloudShell tags in your budget: - -- For a general budget, filter by the **CreatedBy** tag with the **CloudShell** value, and specify an amount. -- For information regarding specific users, filter by the **Owner** tag and specify the owner for whom to create a budget. - :::note - The report includes sandbox owners only. Permitted users who modified existing sandboxes are not included. - ::: -- For information regarding the number of times a blueprint can be reserved, select the **Blueprint** tag and select a specific blueprint. -- For information regarding the number of Azure virtual machines that can be created per domain, select the **Domain** tag and select a certain domain. - - -For example: - -![](/Images/Admin-Guide/Azure-deployment-type/BillingTags.png) - -For additional information on Azure billing and setting up billing alerts, see [Understand your bill for Microsoft Azure](https://docs.microsoft.com/en-us/azure/billing/billing-understand-your-bill) and Set up billing alerts for your [Microsoft Azure subscriptions on the official Microsoft Documentation](https://docs.microsoft.com/en-us/azure/billing-set-up-alerts). - -Advanced billing options are available using the Microsoft Azure API and other 3rd party tools. diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/custom-routing-for-azure-in-sandboxes.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/custom-routing-for-azure-in-sandboxes.md deleted file mode 100644 index 4c6eb6ef28..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/custom-routing-for-azure-in-sandboxes.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -sidebar_position: 5 ---- - -# Custom Routing for Azure in Sandboxes - -CloudShell supports the creation of custom routes in Azure sandboxes, allowing you to force communication from any subnet(s) to go through any specific IP(s). For example, you can have traffic go through a firewall or VPN connection. - -To do this, you need to add to your blueprint a blueprint or custom setup script that will tell the Azure cloud provider resource to define the custom routing. - -For instructions and implementation examples, see [Custom Routing for Azure Apps](./custom-routing-for-azure-in-sandboxes.md) in the CloudShell Dev Guide chapter. diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/index.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/index.md deleted file mode 100644 index e53e8a5654..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/index.md +++ /dev/null @@ -1,17 +0,0 @@ -# Microsoft Azure Integration and Configuration - -To enable CloudShell Apps to deploy virtual machines in Microsoft Azure, the system administrator needs to integrate Azure with CloudShell, associate each App template with the domain of the CloudShell cloud provider resource the admin created during the integration process. You can also track the cost of your CloudShell activity on Azure using CloudShell tags that are attached to all Azure resources created by CloudShell, such as virtual machines and VNets. - -:::note Important -Azure elements created by CloudShell should not be altered as this may cause unexpected behavior. -::: - -## Related Topics - -- [Microsoft Azure Integration](./microsoft-azure-integration/index.md) -- [Managing Public Cloud Apps in Domains](../managing-public-cloud-apps-in-domains.md) -- [Cost Management of Microsoft Azure Resources](./cost-management-of-microsoft-azure-resources.md) -- [Azure Known Limitations](./azure-known-limitations.md) -- [Custom Routing for Azure in Sandboxes](./custom-routing-for-azure-in-sandboxes.md) -- [Integrating Azure with Cloud-based CloudShell Installation](./integrating-azure-with-cloud-based-cloudshell-installation.md) -- [Using Multiple Azure Regions in CloudShell](./using-multiple-azure-regions-in-cloudshell.md) \ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/integrating-azure-with-cloud-based-cloudshell-installation.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/integrating-azure-with-cloud-based-cloudshell-installation.md deleted file mode 100644 index 7696d3b92d..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/integrating-azure-with-cloud-based-cloudshell-installation.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -sidebar_position: 6 ---- - -# Integrating Azure with Cloud-based CloudShell Installation - -This article explains the process for setting up an Azure integration where Quali Server is installed on the Azure region. - -The process is as follows: - -1. Choose an Azure region for the integration. -2. Create a resource group in this region. -3. In the resource group, create an Azure VM and install CloudShell on it. - - - You can install all the required CloudShell components on this VM or use a combination of VMs in the same VNet. - - Make sure the VNet has an address space that will not overlap with the CloudShell Sandbox VNet, which is "10.0.0.0/8". Something like "192.168.25.0/24". -4. [Configure Azure API to work with CloudShell](./microsoft-azure-integration/configure-azure-api-to-work-with-cloudshell.md). -5. Deploy the Azure template to create the management resource group and VNets, as explained in [Create a Management Resource Group and VNets](./microsoft-azure-integration/create-a-management-resource-group-and-vnets.md). - - - You can choose to create a new management resource group or select the CloudShell VM's resource group. However, if you deploy the Azure template in a different resource group, you will also need to create a peering between the CloudShell VM's VNet and the CloudShell management VNet. - - In the template, make sure to select the **Internal** deployment mode. -6. Connect the Execution Server to the CloudShell Server. For details, see [Connecting the Execution Server to Quali Server](./managing-the-azure-execution-server.md#connecting-the-execution-server-to-quali-server). - -7. Create the Azure cloud provider resource and an App template. - - :::important Networking considerations: - - To allow all inbound traffic from other Apps in the sandbox, in the App's **Deployment Paths** page, enable the **Allow All Sandbox Traffic** attribute. - - - To allow end users to remotely connect to the App VMs, in the App's **Deployment Paths** page, make sure to open inbound connections to the VMs using the **Inbound Ports** attribute or set up QualiX for in-browser connections via the sandbox itself. For example, specifying "3389" allows RDP connections, while "22" enables QualiX to run in-browser connections. And set the user/password credentials in the App's **App Resource** page. - ::: -8. To verify the integration, do the following: - - 1. Log into CloudShell Portal, set up and reserve a blueprint that deploys an Azure App on the region. - 2. Make sure you can log in to the VMs using the credentials on the App template. - 3. For networking, reserve a blueprint that has two Azure Apps and make sure a subnet is created in Azure for the App VMs. - -### Related Topics - -- [Microsoft Azure Integration and Configuration](./microsoft-azure-integration/index.md) -- [Add an Azure Cloud Provider Resource](./microsoft-azure-integration/add-an-azure-cloud-provider-resource.md) -- [Managing App Templates](../../../cloudshell-manage-dashboard/manage-app-templates/index.md) -- [Subnet Connectivity](../../../setting-up-cloudshell/inventory-operations/connectivity-control/subnet-connectivity/index.md) diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/managing-the-azure-execution-server.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/managing-the-azure-execution-server.md deleted file mode 100644 index 7b2acaadd2..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/managing-the-azure-execution-server.md +++ /dev/null @@ -1,165 +0,0 @@ ---- -sidebar_position: 3 ---- - -# Managing the Azure Execution Server - -The deployment process of the CloudShell Template deploys a VM on the Azure region called **ExecutionServer-VM** and in it installs an Execution Server called "`Azure-`" (for example, "Azure-East US"). - -## Support - -- The Execution Server is installed on a Centos 7 VM (CentOS 7.2 and up). -- The Execution Server comes with Python 2.7 and 3 installed and configured out of the box. - -## Accessing the Execution Server VM - -- Use the **Admin Username** and **Admin Password** defined in the CloudShell Template that was deployed on the Azure region. - -## Connecting the Execution Server to Quali Server - -This procedure is required if Quali Server is also installed on Azure. - -- Log in to the Execution Server machine and follow the instructions in [Configure the Linux Execution Server](../../../../install-configure/linux-virtual-appliance/post-installation/configure/index.md). - -## Execution Server logs - -Execution Server logs reside at: - -- `/opt/ExecutionServer/logs` -- `/var/log/qualisystems/` - -## Performing maintenance operations on an Execution Server - -Do the following if you need to perform any maintenance operations on the Execution Server, such as updating the Execution Server version of setting `customer.config` keys: - -1. Stop the Execution Server service by running the following command: - - ```bash - sudo systemctl stop es - ``` - -2. Perform the maintenance operations. -3. Start the Execution Server service by running the following command: - - ```bash - sudo systemctl start es - ``` - - -## Installing a new Execution Server - -Follow this procedure to install a new Execution Server from scratch. To upgrade an existing Execution server, scroll down to the next section. - -1. From [Quali’s Download Center](https://support.quali.com/hc/en-us/articles/231613247-Quali-s-Download-Center?flash_digest=3f2ece71dadb98bf640f295d5812eb5e8aedb9a7), download the **Linux Execution Server** installation script to your local machine. - -2. In Azure Marketplace, create a **CentOS** VM (CentOS 7.2 and up). - -3. In the **Advanced** tab, click **Select an extension to install**. - - ![](/Images/Admin-Guide/Azure-deployment-type/AzureSelectExtension.png) - -4. In the **Install an Extension** page, search for and click **Custom Script For Linux**. - - ![](/Images/Admin-Guide/Azure-deployment-type/AzureVMExtensionScript.png) - -5. Click **Next**. -6. In the **Configure Custom Script For Linux Extension** page, set the params: - - - **Script files**: Browse to the **Linux Execution Server** installation script file you downloaded. Follow the instructions to create a storage account and upload the script as a blob to the storage account. Then, repeat the above step and select the storage account > container > script. - - ![](/Images/Admin-Guide/Azure-deployment-type/AzureStorageAccount.png) - - - **Command**: Paste the below line, and set the CloudShell Server and admin credentials. - - ```bash - sudo sh cloudshell_es_install_script.sh [CloudShellServerIP] [CloudShellServerAdmin] [CloudShellServerAdminPassword] [ExecutionServerName] - ``` - - For example: - - ```bash - sudo sh cloudshell_es_install_script.sh 192.168.52.47 admin admin es-EastUS - ``` - - :::note Notes - - If the Execution Server VM does not have an internet connection, make sure the OfflinePackageRepository zip file is extracted to the local PyPi Server repository. For details, see [Add the out-of-the-box dependencies package to the local PyPi Server repository](../../../cloudshell-execution-server-configurations/setting-up-python-virtual-environments/configuring-cloudshell-to-execute-python-commands-in-offline-mode.md#add-the-out-of-the-box-dependencies-package-to-the-local-pypi-server-repository). - - Quali Server must be running when configuring the Execution Server. - - - Depending on your flavor of Linux, you may need to escape parameter values containing special characters with single or double quotes. For example: `"admin1234!"` - ::: - - -7. Click **Create**. - - ![](/Images/Admin-Guide/Azure-deployment-type/AzureConfigureCustomScript.png) - -8. Finish creating the VM. - -## Upgrading an existing Execution Server - -There are two ways to upgrade the Azure Execution Server: - -- Upgrade to a GA version (by running a custom script on the Execution Server VM) -- Upgrade to a non-GA patch version (by replacing configuration DLLs) - -**To upgrade to a GA version:** - -1. SSH to the VM. -2. Stop the Execution Server service by running the following command: - - `sudo systemctl stop es` - -3. Run the following script (set the appropriate values): - - ```bash - curl [InstallScript] --output cloudshell_es_install_script.sh --retry 20 -s -S - chmod +rwx ./cloudshell_es_install_script.sh - sed -i -e 's/\r$//' ./cloudshell_es_install_script.sh - ./cloudshell_es_install_script.sh [CloudShellServerIP] [CloudShellServerAdmin] [CloudShellServerAdminPassword] [ExecutionServerName] - ``` - - For example: - - ```bash - curl https://s3.amazonaws.com/quali-prod-binaries/8.3-168734/ES/cloudshell_es_install_script.sh --output cloudshell_es_install_script.sh --retry 20 -s -S - chmod +rwx ./cloudshell_es_install_script.sh - sed -i -e 's/\r$//' ./cloudshell_es_install_script.sh - ./cloudshell_es_install_script.sh 192.168.42.132 admin admin es-shells - ``` - - :::note Notes - - If the Execution Server VM does not have an internet connection, make sure the OfflinePackageRepository zip file is extracted to the local PyPi Server repository. For details, see [Add the out-of-the-box dependencies package to the local PyPi Server repository](../../../cloudshell-execution-server-configurations/setting-up-python-virtual-environments/configuring-cloudshell-to-execute-python-commands-in-offline-mode.md#add-the-out-of-the-box-dependencies-package-to-the-local-pypi-server-repository). - - Quali Server must be running when configuring the Execution Server. - - - Depending on your flavor of Linux, you may need to escape parameter values containing special characters with single or double quotes. For example: `"admin1234!"` - ::: - -4. Start the Execution Server service by running the following command: - - ```bash - sudo systemctl start es - ``` - - Tip: The Execution Server service name was changed from qa\_execution\_server to es in version 8.3. - - -**To upgrade to a patch version:** - -1. Open the CloudShell patch package. -2. Go to the `~\CloudShell \Data\ExecutionServer\Qualisystems\TestShell\ExecutionServer` folder. For example: ![](/Images/Admin-Guide/CloudShellPackageForCloudProviders.png) - -3. Select all contents in the folder and create a tar archive. -4. Copy the tar file to the `/temp` folder in the **ExecutionServer-VM** VM. -5. SSH to the VM. -6. Stop the Execution Server service by running the following command: - - ```bash - sudo systemctl stop es - ``` - -7. Extract the tar file to `/opt/ExecutionServer`, overriding any existing files. -8. Start the Execution Server service by running the following command: - - ```bash - sudo systemctl start es - ``` diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/_category_.json b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/_category_.json deleted file mode 100644 index 85fd19b036..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Microsoft Azure Integration", - "position": 1 -} diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/add-an-azure-app-template.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/add-an-azure-app-template.md deleted file mode 100644 index 02e2b123e5..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/add-an-azure-app-template.md +++ /dev/null @@ -1,1018 +0,0 @@ ---- -sidebar_position: 5 ---- - -# Add an Azure App Template - -The App template defines the settings and configurations of the VM to be deployed in the sandbox as well as the application(s) to be installed on that VM. - -:::note Notes: -- By default, all public cloud Apps of the same type in the same sandbox are deployed within the same subnet and therefore are connected to each other and isolated from other sandboxes. However, using the **Subnet** service, blueprint designers can set up multiple subnet networks in the sandbox, instead of having one default subnet for all the Apps of the same cloud provider. For details, see [Subnet Connectivity](../../../../setting-up-cloudshell/inventory-operations/connectivity-control/subnet-connectivity/index.md). -- Public cloud App deployment requires the management network and subnet(s) to be prepared in advance as part of the sandbox **Setup** process. CloudShell's out-of-the-box **Setup** process does this. However, the blueprint must include at least one public cloud App to initiate the **Setup** script's connectivity preparation process for deployment in that public cloud. -::: -**To add a new Azure App template:** - -1. Click **\+ Add**. - - The **Create New App** wizard is displayed. - - ![](/Images/CloudShell-Portal/Manage/CreateNewApp.png) - -2. From the **Select Deployment Type** pane, select the Azure deployment type. -3. Enter a **Name** for the App template. - :::note - The App template's name has a limit of 100 characters and can only contain alpha-numeric characters, spaces, and the following characters: | . - \_ \] \[ - ::: -4. Click **Create**. - - The App template is created and the **App** wizard's **General** page is displayed. - - ![](/Images/CloudShell-Portal/Manage/AppGeneralPage.png) - -5. In the General page, define the App template's display settings and category. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FieldRequiredDescription
NameRequiredApp name that is displayed in the catalog.
DescriptionOptionalDescription of the App.
IconOptionalAdd an image to the catalog definition. The recommended size for the image is 190x120 pixels (image size is limited to 400x400 pixels or 200 KB).
CategoriesOptional - Service categories are a method to classify Apps. The Apps are displayed in the Add App / Service side pane in the blueprint and sandbox diagram, arranged in categories. Only users who are permitted to view the category can access the App. Apps without a category are not displayed. - - By default, the Applications category is selected. - - Select a category from the dropdown list. You can select additional categories. Examples of categories are: applications, networking and VLAN. - - :::note Notes: - - The category must be associated with the domain in which the required cloud provider resides. For information about domain categories, see [Managing domain categories](../../../../cloudshell-manage-dashboard/managing-categories.md#managing-domain-categories). - - It is recommended to use up to a 2-level hierarchy when organizing the **Add App / Service** catalog (i.e. root and sub-category). - - In the **Add App / Service** side pane, Apps are displayed in the root category only. This includes services associated to sub-categories. - ::: -
- -6. In the left pane, click **Deployment Paths** and configure the App template's deployment path. - - A deployment path consists of (1) the selected deployment type (the method to be used to deploy the VM), (2) the VM’s settings such as storage size, CPU and image file, and (3) the CloudShell cloud provider resource that enables CloudShell to access the cloud provider and deploy the VM on it. - - Note the deployment path's name (highlighted in the image below). The path's name is dynamic and consists of the selected **Cloud Provide**r resource and **Deployment type**. You can change the name of the path by clicking the field. - - ![](/Images/Admin-Guide/Azure-deployment-type/AzureDeploymentPathName.png) - - 1. From the **Deployment** drop down list, select the deployment type. - - The selected deployment type's attributes are displayed. - :::important - Deployment types related to the Azure 2nd Gen cloud provider shell include "2nd Gen" in the title (for example: "Azure VM from Marketplace 2nd Gen"). - ::: - 2. Fill in the details. - - - For **Azure VM From Custom Image** attributes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AttributeAzure shell versionDescription
Cloud ProviderAllName of the Azure cloud provider resource to be used
Azure ImageAllName of the custom image. The image name is listed in the Images blade of the Azure portal.
Azure Resource GroupAllName of the resource group in which the custom image resides.
VM SizeAll - (Optional) Size of the Microsoft Azure computing resources, including CPU, memory and networking capacity of the VM. Leave it empty to use the default VM Size that was set in the cloud provider resource. For example: "Standard_A1_v2”. - - Make sure the VM size you specify is supported by the image you defined in the App. - :::important - For Azure Apps that will run configuration management operations, specify a VM size of Standard_A2_v2 or larger. - ::: - For additional information, see the Azure help page [Sizes for virtual machines in Azure](https://docs.microsoft.com/en-us/azure/virtual-machines/sizes) or use Azure CLI to get a list of your region's supported sizes. -
Disk TypeAll - Type of disk to use for the VM's operating system. Possible options depend on the shell version: - - Azure 1G shell: - - - **HDD** (default) - - **SSD** - - Azure 2G shell: - - - **Standard HDD** - - **Standard SSD** - - **Premium SSD** - - **Standard SSD (zone-redundant storage)** - - **Premium SSD (zone-redundant storage)** -
Disk SizeAll - (Optional) Disk size (in GB) of the VM's operating system. For example, "17” or "35”. - - If you leave it empty, CloudShell will determine the disk size according to the App's **VM Size**. -
Data Disks2G - Semicolon-separated list of data disks that will be added to the VM. - - The syntax is: `disk_name:disk_size,disk_type` - - For example: - - `disk1:10;disk2:20,Premium SSD;disk3:20,Standard SSD (zone-redundant storage)` - - Supported disk types are: - - - **Standard HDD** (default) - - **Standard SSD** - - **Premium SSD** - - **Ultra SSD** - - **Standard SSD (zone-redundant storage)** - - **Premium SSD (zone-redundant storage)** -
License Type2G - Optionally apply an OS license you own to the VM. - - Options are: - - - **No License**: None - - **Windows OS**: Windows_Client - - **Windows Server OS**: Windows_Server - - **Red Hat Enterprise Linux (RHEL)**: RJE:_BYOS - - **SUSE Linux Enterprise Server (SLES)**: SLES_BYOS -
Enable Boot Diagnostics2GEnable Boot diagnostics for the VM. For additional information, see Microsoft Docs' [Azure boot diagnostics](https://docs.microsoft.com/en-us/azure/virtual-machines/boot-diagnostics) article.
Boot Diagnostics Storage Account2GThe name of a storage account where boot diagnostic artifacts will be stored. Enter "Sandbox Storage" to use the storage account created by the sandbox. By default: the managed storage account is used if **Enable Boot Diagnostics** is enabled.
Resource Group Name2G(Optional) The name of the predefined resource group where the VM will be deployed. This resource group will contain all cloud resources created for the VM (such as network interfaces, security groups, disks and the VM itself). When the VM tears down, its cloud resources will be deleted from the resource group but the resource group will remain.
Add Public IPAll - Set to **True** to use a public IP address to communicate with the VM from outside the virtual network. - - In most cases the public IP address is associated with the VM until the VM is stopped or terminated, after which the IP is no longer available. To ensure that the IP is available to your subscription at any time, reserve it by setting the **Public IPType** attribute to **Static**. -
Wait for IPAllDetermines if the App deployment process waits for the VM to get an IP. Default is **False**.
Extension Script File / ConfigurationAll - (Optional) Custom extension script (PowerShell, Python, batch, etc.) to execute on the deployed VM. - - - **Extension Script File**: Raw URL of the script file - - **Extension Script Configuration**: Space-separated value containing the tool to be used to execute the script, such as Python or PowerShell, the script's file name and extension, and any inputs that need to be passed to the script. For example: `python my_script.py input1` `input2` - - :::note Notes: - - For non-PowerShell scripts, the tool to be used to execute the script must be installed on the VM. - - For Linux VMs, you must specify the tool to be used. For Windows VMs, PowerShell is used by default, unless a different tool is specified. - - Extension scripts are not supported on Kali Linux images in Azure Marketplace. To fix this issue, you will need to use a modified version of the Marketplace image: - - 1. Deploy a VM based on the **Kali Linux** Marketplace image. - - 2. Run the following command: - - ```javascript - sudo nano /usr/lib/python3/dist-packages/azurelinuxagent/common/osutil/factory.py - ``` - - 3. Find the line: - - ```javascript - from .debian import DebianOSModernUtil - ``` - - 4. Replace with: - - ```javascript - from .debian import DebianOSModernUtil,DebianOSBaseUtil - ``` - - 5. Press **\[CTRL\]** + **\[O\]** and **\[Enter\]** keys. - 6. Press **\[CTRL\]** + **\[X\]** and **\[Enter\]** keys. - 7. Restart the **walinuxagent.service** service. - 8. Create a custom image out of the VM. - ::: - - :::note - To support the execution of extension scripts, custom images created outside of Azure Marketplace must include the **ProvisionGuestAgent** agent. For additional information, see [Virtual machine extensions and features for Windows](https://docs.microsoft.com/en-us/azure/virtual-machines/extensions/features-windows). - ::: -
Public IP TypeAllSet to **Static** to ensure that the VM always uses the same public IP. By default, public IPs are **Dynamic** and the address associated to them may change when the VM is powered off.
Inbound PortsAll - (Optional) Semi-colon separated list of ports and protocols to open for inbound traffic. Note that by default access from the management VPC is allowed and all ports are open for traffic between Azure App VMs within the sandbox, but this can be changed using the **Allow All Sandbox Traffic** attribute. - - In addition, all outbound traffic is allowed. - - The syntax is: - - `port[single/range]:protocol[tcp(default)/udp]` - - For example: "80;443:tcp;200-220:udp". - :::note - If not specified, the protocol defaults to TCP. - ::: - :::tip Tips: - - To allow QualiX in-browser connections to the VM from the sandbox, include port "22". - - To set more specific security groups, it is recommended to use the TestShell API's [SetAppsSecurityGroup](pathname:///api-docs/2023.3/TestShell-API/TestShell%20XML%20RPC%20API.html#SetAppSecurityGroups) method instead. Unlike the **Inbound Port**s attribute, it enables you to define different port settings per subnet and allow inbound access to specific source CIDRs. For additional information, see [SetAppSecurityGroups Code Example](../../setappsecuritygroups-code-example.md). - ::: -
Custom Tags2GSemi-colon separated list of up to 9 tags to be applied to all related Azure objects created during the App deployment, such as the sandbox's resource group, VNETs, subnets, NSGs and VMs. Attribute supports the following syntax: [TagName]=[TagValue]; [TagName]=[TagValue]. For example: "Tag1=Val1;Tag2=Val2”
Allow All Sandbox TrafficAll - Determines if the App allows inbound traffic from all other Azure Apps in the sandbox. If set to **False**, the App's VM will be isolated. Access from specific Apps or subnets can be defined using the **Inbound Ports** attribute or API. - :::note - By default, this attribute is **True**, and access is allowed to all ports from all Apps in the sandbox. By default, all ports are open for traffic within the sandbox. - ::: -
Enable IP Forwarding2GEnables IP forwarding on all network interfaces of the app in order to support virtual appliances like routers and firewalls that are connected to multiple subnets.
Autoload2GEnables the automatic execution of the Autoload command during reservation Setup.
Availability Zones2GSpecify the Availability Zone (1, 2, or 3) in which the App’s VM, managed disk and public IP (if available) will be deployed. Leave empty to inherit the Availability Zones defined on the cloud provider resource. For details and supported regions, see [Regions and availability zones](https://learn.microsoft.com/en-us/azure/availability-zones/az-overview).
- - - For **Azure VM From Marketplace** attributes - :::note - Every VM deployed from a Marketplace image is created with a managed disk, which is deleted when the sandbox ends. - ::: - - :::important - If you want to deploy a third party application from a Marketplace image, make sure Programmatic Deployment is enabled for the image in the subscription. To enable, log in to Azure and open the Marketplace, find the image and click it, select the Want to deploy programmatically? Get started link at the bottom of the blade that appears. Then, in the Configure Programmatic Deployment blade, scroll down to the bottom, select Enable for the appropriate subscription and click Save. For additional information, see the following Azure help page: [Working with Marketplace Images on Azure Resource Manager](https://azure.microsoft.com/en-us/blog/working-with-marketplace-images-on-azure-resource-manager/). - ::: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AttributeAzure shell versionDescription
Cloud ProviderAllName of the Azure cloud provider resource to be used
Image PublisherAll - Define the VM image's **Publisher**, **Offer** and **SKU**. - :::note - The Publisher, Offer and SKU must exist in the Azure region where the VM will be deployed. - ::: - For typical image properties, see the following Azure help pages: [Linux VM images](https://docs.microsoft.com/en-us/azure/virtual-machines/linux/cli-ps-findimage) and [Windows VM images](https://docs.microsoft.com/en-us/azure/virtual-machines/windows/cli-ps-findimage). -
Image OfferAllImage Offer
Image SKUAllImage SKU
VM SizeAll - (Optional) Size of the Microsoft Azure VM. This parameter determines the CPU, memory and networking capacity of the VM. Leave it empty to use the default VM Size that was set in the cloud provider resource. For example: "Standard_A1_v2”. - :::important - For Azure Apps that will run configuration management operations, specify a VM size of Standard_A2_v2 or larger. - ::: -
Disk TypeAll - Type of disk to use for the VM's operating system. Possible options depend on the shell version: - - Azure 1G shell: - - - **HDD** (default) - - **SSD** - - Azure 2G shell: - - - **Standard HDD** - - **Standard SSD** - - **Premium SSD** - - **Standard SSD (zone-redundant storage)** - - **Premium SSD (zone-redundant storage)** -
Disk SizeAll - (Optional) Disk size (in GB) of the VM's operating system. For example, "17” or "35”. - - If you leave it empty, CloudShell will determine the disk size according to the App's **VM Size**. -
Data Disks2G - Semicolon-separated list of data disks that will be added to the VM. - - The syntax is: `disk_name:disk_size,disk_type` - - For example: - - `disk1:10;disk2:20,Premium SSD;disk3:20,Standard SSD (zone-redundant storage)` - - Supported disk types are: - - - **Standard HDD** (default) - - **Standard SSD** - - **Premium SSD** - - **Ultra SSD** - - **Standard SSD (zone-redundant storage)** - - **Premium SSD (zone-redundant storage)** -
License Type2G - Optionally apply an OS license you own to the VM. - - Options are: - - - **No License**: None - - **Windows OS**: Windows_Client - - **Windows Server OS**: Windows_Server - - **Red Hat Enterprise Linux (RHEL)**: RJE:_BYOS - - **SUSE Linux Enterprise Server (SLES)**: SLES_BYOS -
Enable Boot Diagnostics2GEnable Boot diagnostics for the VM. For additional information, see Microsoft Docs' [Azure boot diagnostics](https://docs.microsoft.com/en-us/azure/virtual-machines/boot-diagnostics) article.
Boot Diagnostics Storage Account2GThe name of a storage account where boot diagnostic artifacts will be stored. Enter "Sandbox Storage" to use the storage account created by the sandbox. By default: the managed storage account is used if **Enable Boot Diagnostics** is enabled.
Resource Group Name2G(Optional) The name of the predefined resource group where the VM will be deployed. This resource group will contain all cloud resources created for the VM (such as network interfaces, security groups, disks and the VM itself). When the VM tears down, its cloud resources will be deleted from the resource group but the resource group will remain.
Add Public IPAll - Set to **True** to use a public IP address to communicate with the VM from outside the virtual network. - - In most cases the public IP address is associated with the VM until the VM is stopped or terminated, after which the IP is no longer available. To ensure that the IP is available to your subscription at any time, reserve it by setting the **Public IP Type** attribute to **Static**. -
Wait for IPAllDetermines if the App deployment process waits for the VM to get an IP. Default is **False**.
Extension Script File / ConfigurationAll - (Optional) Custom extension script (PowerShell, Python, batch, etc.) to execute on the deployed VM. - - - **Extension Script File**: Raw URL of the script file - - **Extension Script Configuration**: Space-separated value containing the tool to be used to execute the script, such as Python or PowerShell, the script's file name and extension, and any inputs that need to be passed to the script. For example: `python my_script.py input1` `input2` - - :::note Notes: - - For non-PowerShell scripts, the tool to be used to execute the script must be installed on the VM. - - For Linux VMs, you must specify the tool to be used. For Windows VMs, PowerShell is used by default, unless a different tool is specified. - - Extension scripts are not supported on Kali Linux images in Azure Marketplace. To fix this issue, you will need to use a modified version of the Marketplace image: - - 1. Deploy a VM based on the **Kali Linux** Marketplace image. - - 2. Run the following command: - - ```javascript - sudo nano /usr/lib/python3/dist-packages/azurelinuxagent/common/osutil/factory.py - ``` - - 3. Find the line: - - ```javascript - from .debian import DebianOSModernUtil - ``` - - 4. Replace with: - - ```javascript - from .debian import DebianOSModernUtil,DebianOSBaseUtil - ``` - - 5. Press **\[CTRL\]** + **\[O\]** and **\[Enter\]** keys. - 6. Press **\[CTRL\]** + **\[X\]** and **\[Enter\]** keys. - 7. Restart the **walinuxagent.service** service. - 8. Create a custom image out of the VM. - ::: -
Public IP TypeAllSet to **Static** to ensure that the VM always uses the same public IP. By default, public IPs are **Dynamic** and the address associated to them may change when the VM is powered off.
Inbound PortsAll - (Optional) Semi-colon separated list of ports and protocols to open for inbound traffic. Note that by default access from the management VPC is allowed and all ports are open for traffic between Azure App VMs within the sandbox, but this can be changed using the **Allow All Sandbox Traffic** attribute. - - In addition, all outbound traffic is allowed. - - The syntax is: - - `port[single/range]:protocol[tcp(default)/udp]` - - For example: "80;443:tcp;200-220:udp". - :::note - If not specified, the protocol defaults to TCP. - ::: - :::tip Tips: - - To allow QualiX in-browser connections to the VM from the sandbox, include port "22". - - To set more specific security groups, it is recommended to use the TestShell API's [SetAppsSecurityGroup](pathname:///api-docs/2023.3/TestShell-API/TestShell%20XML%20RPC%20API.html#SetAppSecurityGroups) method instead. Unlike the **Inbound Port**s attribute, it enables you to define different port settings per subnet and allow inbound access to specific source CIDRs. For additional information, see [SetAppSecurityGroups Code Example](../../setappsecuritygroups-code-example.md). - ::: -
Custom Tags2GSemi-colon separated list of up to 9 tags to be applied to all related Azure objects created during the App deployment, such as the sandbox's resource group, VNETs, subnets, NSGs and VMs. Attribute supports the following syntax: [TagName]=[TagValue]; [TagName]=[TagValue]. For example: "Tag1=Val1;Tag2=Val2”
Allow All Sandbox TrafficAll - Determines if the App allows inbound traffic from all other Azure Apps in the sandbox. If set to **False**, the App's VM will be isolated. Access from specific Apps or subnets can be defined using the **Inbound Ports** attribute or API. - :::note - By default, this attribute is **True**, and access is allowed to all ports from all Apps in the sandbox. By default, all ports are open for traffic within the sandbox. - ::: -
Enable IP Forwarding2GEnables IP forwarding on all network interfaces of the app in order to support virtual appliances like routers and firewalls that are connected to multiple subnets.
Autoload2GEnables the automatic execution of the Autoload command during reservation Setup.
Availability Zones2GSpecify the Availability Zone (1, 2, or 3) in which the App’s VM, managed disk and public IP (if available) will be deployed. Leave empty to inherit the Availability Zones defined on the cloud provider resource. For details and supported regions, see [Regions and availability zones](https://learn.microsoft.com/en-us/azure/availability-zones/az-overview).
- - - For **Azure VM From Gallery Image 2nd Gen** attributes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AttributeDescription
Cloud ProviderName of the Azure cloud provider resource to be used
Shared Image GalleryName of the shared image gallery to be used to create a VM. The image gallery is listed in the **Shared image galleries** blade of the Azure portal.
Image DefinitionThe image definition is listed in the **Image definitions** blade of the Azure portal.
Image VersionName of the image version to be used to create Azure VMs. Use "latest" if version is unavailable.
Shared Gallery Resource GroupResource group in which the shared image gallery resides.
Shared Gallery Image Subscription IDThe subscription ID of the shared image gallery. Use "current" if not set.
VM Size - (Optional) Size of the Microsoft Azure computing resources, including CPU, memory and networking capacity of the VM. Leave it empty to use the default VM Size that was set in the cloud provider resource. For example: "Standard_A1_v2”. - :::important - For Azure Apps that will run configuration management operations, specify a VM size of Standard_A2_v2 or larger. - ::: - For additional information, see the Azure help page [Sizes for virtual machines in Azure](https://docs.microsoft.com/en-us/azure/virtual-machines/sizes) or use Azure CLI to get a list of your region's supported sizes. -
Disk Type - Type of disk to use for the VM's operating system. - - - **Standard HDD** - - **Standard SSD** - - **Premium SSD** - - **Standard SSD (zone-redundant storage)** - - **Premium SSD (zone-redundant storage)** -
Disk Size - (Optional) Disk size (in GB) of the VM's operating system. For example, "17” or "35”. - - If you leave it empty, CloudShell will determine the disk size according to the App's **VM Size**. -
Data Disks - Semicolon-separated list of data disks that will be added to the VM. - - The syntax is: `disk_name:disk_size,disk_type` - - For example: - - `disk1:10;disk2:20,Premium SSD;disk3:20,Standard SSD (zone-redundant storage)` - - Supported disk types are: - - - **Standard HDD** (default) - - **Standard SSD** - - **Premium SSD** - - **Ultra SSD** - - **Standard SSD (zone-redundant storage)** - - **Premium SSD (zone-redundant storage)** -
License Type - Optionally apply an OS license you own to the VM. - - Options are: - - - **No License**: None - - **Windows OS**: Windows_Client - - **Windows Server OS**: Windows_Server - - **Red Hat Enterprise Linux (RHEL)**: RJE:_BYOS - - **SUSE Linux Enterprise Server (SLES)**: SLES_BYOS -
Enable Boot DiagnosticsEnable Boot diagnostics for the VM. For additional information, see Microsoft Docs' [Azure boot diagnostics](https://docs.microsoft.com/en-us/azure/virtual-machines/boot-diagnostics) article.
Boot Diagnostics Storage AccountThe name of a storage account where boot diagnostic artifacts will be stored. Enter "Sandbox Storage" to use the storage account created by the sandbox. By default: the managed storage account is used if **Enable Boot Diagnostic**s is enabled.
Resource Group Name(Optional) The name of the predefined resource group where the VM will be deployed. This resource group will contain all cloud resources created for the VM (such as network interfaces, security groups, disks and the VM itself). When the VM tears down, its cloud resources will be deleted from the resource group but the resource group will remain.
Add Public IP - Set to **True** to use a public IP address to communicate with the VM from outside the virtual network. - - In most cases the public IP address is associated with the VM until the VM is stopped or terminated, after which the IP is no longer available. To ensure that the IP is available to your subscription at any time, reserve it by setting the **Public IPType** attribute to **Static**. -
Wait for IPDetermines if the App deployment process waits for the VM to get an IP. Default is **False**.
Extension Script File / Configuration - (Optional) Custom extension script (PowerShell, Python, batch, etc.) to execute on the deployed VM. - - - **Extension Script File**: Raw URL of the script file - - **Extension Script Configuration**: Space-separated value containing the tool to be used to execute the script, such as Python or PowerShell, the script's file name and extension, and any inputs that need to be passed to the script. For example: `python my_script.py input1` `input2` - - :::note Notes: - - For non-PowerShell scripts, the tool to be used to execute the script must be installed on the VM. - - For Linux VMs, you must specify the tool to be used. For Windows VMs, PowerShell is used by default, unless a different tool is specified. - - Extension scripts are not supported on Kali Linux images in Azure Marketplace. To fix this issue, you will need to use a modified version of the Marketplace image: - - 1. Deploy a VM based on the **Kali Linux** Marketplace image. - - 2. Run the following command: - - ```javascript - sudo nano /usr/lib/python3/dist-packages/azurelinuxagent/common/osutil/factory.py - ``` - - 3. Find the line: - - ```javascript - from .debian import DebianOSModernUtil - ``` - - 4. Replace with: - - ```javascript - from .debian import DebianOSModernUtil,DebianOSBaseUtil - ``` - - 5. Press **\[CTRL\]** + **\[O\]** and **\[Enter\]** keys. - 6. Press **\[CTRL\]** + **\[X\]** and **\[Enter\]** keys. - 7. Restart the **walinuxagent.service** service. - 8. Create a custom image out of the VM. - ::: - :::note - To support the execution of extension scripts, custom images created outside of Azure Marketplace must include the ProvisionGuestAgent agent. For additional information, see [Virtual machine extensions and features for Windows](https://docs.microsoft.com/en-us/azure/virtual-machines/extensions/features-windows). - ::: -
Public IP TypeSet to **Static** to ensure that the VM always uses the same public IP. By default, public IPs are **Dynamic** and the address associated to them may change when the VM is powered off.
Inbound Ports - (Optional) Semi-colon separated list of ports and protocols to open for inbound traffic. Note that by default access from the management VPC is allowed and all ports are open for traffic between Azure App VMs within the sandbox, but this can be changed using the **Allow All Sandbox Traffic** attribute. - - In addition, all outbound traffic is allowed. - - The syntax is: - - `port[single/range]:protocol[tcp(default)/udp]` - - For example: "80;443:tcp;200-220:udp". - :::note - If not specified, the protocol defaults to TCP. - ::: - :::tip Tips: - - To allow QualiX in-browser connections to the VM from the sandbox, include port "22". - - To set more specific security groups, it is recommended to use the TestShell API's [SetAppsSecurityGroup](pathname:///api-docs/2023.3/TestShell-API/TestShell%20XML%20RPC%20API.html#SetAppSecurityGroups) method instead. Unlike the **Inbound Ports** attribute, it enables you to define different port settings per subnet and allow inbound access to specific source CIDRs. For additional information, see [SetAppSecurityGroups Code Example](../../setappsecuritygroups-code-example.md). - ::: -
Custom TagsSemi-colon separated list of up to 9 tags to be applied to all related Azure objects created during the App deployment, such as the sandbox's resource group, VNETs, subnets, NSGs and VMs. Attribute supports the following syntax: [TagName]=[TagValue]; [TagName]=[TagValue]. For example: "Tag1=Val1;Tag2=Val2”
Allow All Sandbox Traffic - Determines if the App allows inbound traffic from all other Azure Apps in the sandbox. If set to **False**, the App's VM will be isolated. Access from specific Apps or subnets can be defined using the **Inbound Ports** attribute or API. - :::note - By default, this attribute is **True**, and access is allowed to all ports from all Apps in the sandbox. By default, all ports are open for traffic within the sandbox. - ::: -
Enable IP ForwardingEnables IP forwarding on all network interfaces of the app in order to support virtual appliances like routers and firewalls that are connected to multiple subnets.
AutoloadEnables the automatic execution of the Autoload command during reservation Setup.
Availability ZonesSpecify the Availability Zone (1, 2, or 3) in which the App’s VM, managed disk and public IP (if available) will be deployed. Leave empty to inherit the Availability Zones defined on the cloud provider resource. For details and supported regions, see [Regions and availability zones](https://learn.microsoft.com/en-us/azure/availability-zones/az-overview).
- -7. To add additional deployment paths to the App template, click the **Add New Deployment Path** link at the bottom of the wizard and fill in the required information. -8. In the left pane, click Configuration Management and configure the application to be installed on the VM. - - ![](/Images/CloudShell-Portal/Manage/ConfigurationManagement.png) - :::tip - To learn how to develop custom scripts and Ansible playbooks, including examples, and set up support for the desired configuration management tool, see [Developing Configuration Management Scripts for Apps](../../.././../../devguide/develop-config-management-scripts-for-apps/index.md). - ::: - :::note Notes: - - To run configuration management on an Azure App, make sure the App's VM size is Basic_A2 or larger. - - For configuration management operations, CloudShell uses an available Execution Server (for Ansible, it's a Linux Execution Server that has the Supports Ansible flag). - - If the cloud provider resource has an Execution Server Selector configured, it will use that selector. If the selector is empty, CloudShell will use the selector defined in the appropriate Resource Manager Client >Configuration Services model (Ansible Configuration or Custom Script Configuration). - - - Execution Server selectors specified on the deployed App shell/resource are not used to execute configuration management operations. - ::: - - 1. Define the script or playbook to install. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AttributeDescription
Select Tool - Select the application's installation and configuration tool. - - - **None**: Do not use any Configuration Management option. Use this option if, for example, the image or template already contains the application to install. - - **Script**: Select the custom script to run (PowerShell, bash or sh). - - **Ansible**: (Intended for customers who are already using Ansible) Select the Ansible playbook to run. - :::note - The playbook runs once during the **Setup** phase for all of the sandbox's Apps that use that playbook, after CloudShell has finished deploying their VMs. This is done both to improve performance and support cross-server logic where multiple applications need to be installed and configured in a certain way. - ::: - Note that the playbook runs once for all of the sandbox's Apps that use that playbook, after CloudShell has finished deploying their VMs. - - - Depending on the selection, additional options may become available. -
Connection Method - The method to use to connect to the VM. - - Select: - - - **SSH** if the VM has a Linux OS - - **Windows Remote Management** if the VM has a Windows OS - :::note - To run configuration management on a Windows VM, the VM must have WinRM enabled. For details, see [Enable WinRM on Windows VMs to Support Configuration Management](../../../../../devguide/enable-winrm-on-win-vm-for-cfg-mng.md). - ::: -
Playbook / Script Location - Details of the Ansible playbook or custom script. - - - **URL**: Raw URL of the Ansible playbook or ZIP file, or custom script on the online repository (GitHub, GitLab and BitBucket are supported). URL must be accessible to the Execution Servers. - :::tip - The URL can accept parameters defined on the App, enabling you to test new versions of scripts without affecting consumer-ready versions. For example, you can have an App everyone is using, but if you want to test a version you're developing, simply change the value of the URL parameter in the test blueprint. - - - To use parameters, specify the parameter name in curly brackets (for example: **\{branch\}**). - - If the App has this parameter, CloudShell will replace the **\{branch\}** with its value during execution. - - If the parameter is missing, CloudShell will replace **\{branch\}** with an empty string. - - If you are using a global input, customers would be well advised to set a default value on the global input - ::: - **For GitHub, specify the raw URL. For example:** - - ```javascript - https://raw.githubusercontent.com/.../site.yml - ``` - - **For GitLab, specify the API endpoint in the format:** - - ```javascript - https://gitlab.com/api/v4/projects/{Project ID}/repository/files/testsharding%2Eyml/raw?ref=master - ``` - - Where: - - - Each special character that the file contains has to be encoded. In the example above - "%2E” is an encoded point (".”) - - - The ref value is the branch name (master for this example) - - - **For BitBucket Data Center (on premise), use the following URL format:** - - ```javascript - http://{datacenter server IP}/rest/api/1.0/projects/{projectKey}/repos/{repository name}/raw/testsharding.yml - ``` - - **For BitBucket Cloud, use one of the following:** - - - For source code files, specify the API endpoint: - - ```javascript - https://api.bitbucket.org/2.0/repositories/{workspace}/{repository name}/src/{GUID- the Commit hash string}/testsharding.yml - ``` - - - For download files (files residing in the repository's "Downloads" folder), specify this endpoint: - - ```javascript - https://api.bitbucket.org/2.0/repositories/{workspace}/{repository name}/downloads/site.yml - ``` - - :::important - If the URL is private (HTTPS), the VM will need to have a valid SSL certificate. To disable the certificate check, open **Resource Manager Client>Resource Families>Configuration Services** (**Ansible Configuration** or **Custom Script Configuration**n) and set the **Verify Certificate** attribute to **False**. - ::: - - **User/Password**: (For private repositories) Access credentials or token to the script/playbook's online repository. - - - **Token**: (For private repositories) Access token to the script/playbook's online repository. - - For GitHub and GitLab, specify the API token. For BitBucket Cloud, set the repo's "App Password" in the App template's **Password** field. For BitBucket Data Center, specify the personal access token. - - - :::note Notes: - - **For Custom Script configurations**: In SSH mode, only bash and sh scripts are allowed. In WinRM mode, only PowerShell scripts are allowed. WinRM over HTTPS only applies to custom scripts at this time. If WinRM is configured to run over HTTPS, the execution server will first try to run the custom script over HTTPS and then fall back to HTTP if HTTPS is unsuccessful. To prevent the fallback, set the **winrm_transport** parameter to **ssl**. - - **For Ansible configurations**: The Ansible playbook must be a YML or YAML file. To specify multiple playbooks or a hierarchy of an Ansible project, you can specify multiple Ansible playbooks or a ZIP package. For example: `https://raw.githubusercontent.com/QualiSystemsLab/private-repo-zip-download/master/README.zip` - - If a ZIP containing 2 or more playbooks is specified, CloudShell will use the playbook file titled `site.yml` or `site.yaml`. If the file is missing, the App's deployment will fail. - ::: -
Inventory Groups - (For Ansible) Specify the host groups for the application to be installed, separated by semicolons (;). The newly deployed VM will be associated to these groups, thus allowing plays that target these groups to run on the VM. - - For example: `Servers/AppServers;Servers/DBServers` -
Parameters - Parameters to be passed to the Ansible playbook or custom script. Specify the parameters and their default values. - - In the blueprint or sandbox diagram, privileged users can also set the parameter to receive the value that is specified for a global input when reserving a sandbox containing the App. This is done by selecting the global input when editing the App in the blueprint or sandbox diagram. For example, a global input that specifies the build number of a product to be tested or which components of a product to install. - :::important - (For Ansible) To customize the port to be used to communicate with the VM, add the `Ansible_port` parameter. Default: `SSH` / `Port: 22` / `WinRM: 5985`. - ::: -
Additional Arguments - (For Ansible) Define arguments to be passed to the execution of the playbook (`Ansible-playbook` command). For example, `-v` will set verbose mode on while `-f` will set the maximum number of VMs to be handled in parallel. Multiple arguments can be given, separated by spaces. For additional information on possible arguments, see the official Ansible documentation. - - The arguments must be specified in **Resource Manager Client > Configuration Services** family > **Ansible Configuration** model > **Ansible Additional Arguments** attribute. - :::note - The arguments are defined globally for all Apps using Ansible. - ::: - :::important - To configure Ansible to connect to certified hosts only (Linux VMs with a valid 'known\_hosts' key), include the following additional arguments: `--ssh-extra-args='-o StrictHostKeyChecking=yes'` - ::: -
- - 2. To enable the end-user to rerun the App's configuration management on the deployed App in the sandbox, select **Allow rerunning configuration management for resources deployed from the App**. Once the App's deployment completes, a **Rerun Configuration Management** command is included in the deployed App's **Application Commands** pane. For details, see [Run App Commands](../../../../../portal/sandboxes/sandbox-workspace/apps/run-app-commands.md). This is useful for rolling back the App's VM to its original state. - 3. To enable blueprint and sandbox owners to modify the App's Configuration Management details, select **Allow blueprint/sandbox owners to modify the App's Configuration Management**. The following details can be modified: playbook/script, authentication details, inventory groups, and parameters. Note that the modifications only apply to the blueprint or sandbox of the instance. - 4. Optionally click the **Add New Script/Playbook** link at the bottom right to add additional custom scripts/Ansible playbooks to the App. The scripts will run in their display order, from top to bottom. You can drag scripts up or down to rearrange. - 5. To change the script's alias, click the script's name and change as appropriate. - - ![](/Images/CloudShell-Portal/Manage/RenameConfigManageScript.png) - - -9. In the left pane, click **App Resource** to optionally set the VM's operating system user credentials (for example, to connect to the VM via RDP or SSH). You can also change the deployed App's Shell. - - ![](/Images/CloudShell-Portal/Manage/AppResource.png) - :::important - To help sandbox end-users connect to the VM, it is recommended to include the **User** and **Password** in the blueprint's instructions. For additional information, see [Add Instructions](../../../../../portal/blueprints/creating-blueprints/add-instructions.md). - ::: - - - - - - - - - - - - - - - - - - - - -
AttributeDescription
Shell - The Shell on which the App's VMs are based. When an App is deployed in a sandbox, it changes into a "deployed App resource", which is based on the selected Shell. By default, the "Generic App Model" Shell is used. - - Deployed Apps include a default set of commands such as Power On and Refresh IP, and the VM's **User** and **Password** attributes, as explained below. - :::note - Changing the Shell might cause additional fields to become visible and you may need to enter further information. - ::: -
User - User defined in the App's image. The **User/Password** credentials are used by QualiX to create in-browser connections to the VM from within the sandbox. - - :::note Notes: - - For AWS instances, make sure to set the **User** of a user that already exists on the Amazon machine image. For custom images, the image owner should know the credentials, while community/marketplace images have the image's credentials listed in their documentation. - - Azure VM username and password restrictions apply. For details, see [Frequently asked question about Windows Virtual Machines](https://docs.microsoft.com/en-us/azure/virtual-machines/windows/faq). - - For Azure Marketplace images, CloudShell will create a user on the VM based on the **User/Password** credentials you specify. - - For Azure Marketplace VMs, if the user is not set, CloudShell will set **adminuser** as the default user name. - ::: -
Password - VM user's password. - - :::note Notes: - - For AWS Marketplace images, leave the **Password** empty. The AWS shell generates a new key-pair for each sandbox, which QualiX will use to establish the in-browser connection. - - For Azure Marketplace images: - - If the password is not set, only the user name will be required. For Linux VMs, CloudShell will create an SSH key-pair to enable a secure connection. - - If the password is set, it will be displayed as asterisks (\*\*\*\*\*\*) in the blueprint or sandbox. - ::: -
- -10. Click **Done**. - - The new App template is displayed in the **Apps** page. \ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/add-an-azure-cloud-provider-resource.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/add-an-azure-cloud-provider-resource.md deleted file mode 100644 index e845402baa..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/add-an-azure-cloud-provider-resource.md +++ /dev/null @@ -1,195 +0,0 @@ ---- -sidebar_position: 4 ---- - -# Add an Azure Cloud Provider Resource - -The **Microsoft Azure** cloud provider enables the deployment of Azure virtual machines from an Azure image. -:::tip -We strongly recommend using the 2nd Gen version of the shell, which provides significant enhancements and capabilities, and is tamper-resistant from within CloudShell, ensuring your Azure cloud provider resources and Apps are in pristine condition. Useful articles: [Replacing the 1st Gen shell with a 2nd Gen version](../../../../../devguide/reference/migrate-1st-gen-shell-to-2nd-gen-shell.md#replacing-the-1st-gen-shell-with-a-2nd-gen-version), [Cloud Provider Shells - Features and Capabilities Per Release](../../../cloud-provider-2g-shells-features-and-capabilities.md). -::: -**To add an Azure cloud provider resource:** - -1. Log in to the CloudShell domain in which this resource will reside. This will enable the Apps based on this cloud provider resource to be usable in this domain. -2. In the **Inventory** dashboard, in the **Resources** tab, click the folder in which you want to create the resource. -3. Click **\+ Add New**. -4. In the **Create New Resource** dialog box, select the **Microsoft Azure** cloud provider template. To use the Azure 2nd Gen shell, select **Microsoft Azure Cloud Provider 2G**. -5. Enter a **Name** for the Azure resource. - :::note - The resource's name has a limit of 100 characters and can only contain alpha-numeric characters, spaces, and the following characters: | . - \_ \] \[ - ::: -6. Click **Create**. - - The **Resource** dialog box is displayed. - - ![](/Images/Admin-Guide/Inventory-Operations/AzureResourceDiscoveryInformation.png) - -7. Enter the required information. - :::note - All Azure resources must belong to the specified region. - ::: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AttributeSupporting shell versionDescription
RegionAll - The Azure region to be used by this cloud provider resource. For example, "East US". - :::note - The Azure region must have the **CloudShell Management resource group** configured. All Azure regions are supported by CloudShell. - ::: -
VM SizeAll - The size of the Microsoft Azure VM. The VM size determines the CPU, memory and networking capacity of the VM. By default: “Standard\_A3”. - - For additional information, see the Azure help page [Sizes for virtual machines in Azure](https://docs.microsoft.com/en-us/azure/virtual-machines/sizes) or use Azure CLI to get a list of your region's supported sizes. - :::note - The VM size can be changed when creating the App in the **Manage** dashboard. - ::: -
Networks in UseAll - Comma-separated list of CIDRs to be excluded when allocating sandbox networks. The value must include at least the CloudShell Management VNet. - - For example, `10.0.0.0/24,10.1.0.0/16,172.31.0.0/24` -
Azure Subscription IDAllThe **Subscription ID** of the Azure user.
Azure Tenant IDAll - The ID of the Azure tenant that is associated with your Azure Active Directory (AAD) instance - called **Directory (tenant) ID** in Azure. For example: "ccd13026-98e3-4e90-01f4-28e2afdf3213". - - The tenant ID can be retrieved when creating the Azure API web application or from Azure CLI. For more information, see [Configure Azure API to work with CloudShell](./configure-azure-api-to-work-with-cloudshell.md). -
Azure Application IDAll - The Azure API web application's **Application (client) ID**. - - The application ID allows CloudShell to access the Azure API and is generated as part of the web application’s configuration process. For more information, see [Configure Azure API to work with CloudShell](./configure-azure-api-to-work-with-cloudshell.md). -
Azure Application KeyAll - The Azure API web application's **client secret**. - - The application key allows CloudShell to access the Azure API and is generated as part of the Azure API web application’s configuration process. For more information, see [Configure Azure API to work with CloudShell](./configure-azure-api-to-work-with-cloudshell.md). -
Management Group NameAllThe name of the Management Resource Group.
Sandbox Virtual Network NameAzure 2nd Gen shell only - The name of the Sandbox VNet under the Management Resource Group. - - :::note Notes: - - In dedicated mode, the sandbox subnet will be created in this VNet. - - In predefined mode, you must make sure the subnet to be used is located within this VNet. - ::: -
Management Virtual Network NameAzure 2nd Gen shell only(Optional) The name of the Management VNet under the Management Resource Group. Used to store management network security rules.
Additional Mgmt NetworksAll - Networks to be allowed to interact with all sandboxes. This is used for allowing connectivity to Azure resources outside the Management VNet. - - The syntax is comma separated CIDRs. For example, "10.0.0.0/24,10.1.0.0/16,172.31.0.0/24". -
Custom Tags2G - Semi-colon separated list of up to 9 tags to be applied to all related Azure objects created during the App deployment, such as the sandbox's resource group, VNETs, subnets, NSGs and VMs. - - Attribute supports the following syntax: \[TagName\]=\[TagValue\]; \[TagName\]=\[TagValue\]. For example: “Tag1=Val1;Tag2=Val2” -
Private IP Allocation MethodAll - Method to be used to assign private IP addresses to VMs. Options are: - - - **Azure Allocation**: (Default. Recommended option) Azure assigns private IPs when creating the network interface. - - **CloudShell Allocation**: In this method, the Azure cloud provider resource assigns the private IPs for the network interface from the region's subnet CIDR. When the VM is deleted, the assigned IPs are released. - - :::note - When using this option, you can use the **GetAvailablePrivateIP** command (on the Azure cloud provider resource) to get an IP that will not be used by CloudShell when allocating any future private IPs. You can use this IP when creating Azure VMs independently from CloudShell. - ::: -
Availability Zones2G - Specify the Availability Zone (1, 2, or 3) in which the App’s VM, managed disk and public IP (if available) will be deployed. Leave empty to deploy directly to the region. - - For details and supported regions, see [Regions and availability zones](https://learn.microsoft.com/en-us/azure/availability-zones/az-overview). -
Key Vault2G - (Mandatory for QualiX connections to Azure machines) Name of the key vault to be used to securely store private ssh keys used for in-browser connections via QualiX. CloudShell will automatically delete the keys when the sandbox ends. - - To use private SSH keys for QualiX connections, grant the **Key Vault Secrets Officer** role to your Azure integration's web application to allow CloudShell to dynamically store and delete the secrets from the key vault. For details, see this official Microsoft docs article on [Key Vault keys and secrets](https://learn.microsoft.com/en-us/azure/key-vault/general/rbac-guide?tabs=azure-cli). - - Key Vault name must be a 3-24 character string, containing only 0-9, a-z, A-Z, and -. -
Execution Server SelectorAll - (This attribute needs to be added to the shell via the **Manage > Shells > Details / Edit** dialog box) This attribute points to a pre-defined group of execution servers (grouped by a common **Execution Server Selector** value). To make the association, enter the same value you specified on the execution server. - - For additional information on managing App deployments per domains, see [Managing Public Cloud Apps in Domains](../../managing-public-cloud-apps-in-domains.md). -
- -8. Click **Start Discovery**. - - When the discovery process completes, a confirmation message is displayed. The cloud provider resource is displayed in the **Inventory** dashboard in CloudShell Portal and in Resource Manager Client. - - To customize the App deployment types and publish App orchestration parameters, see [Customizing App Deployment Types](../../../customizing-app-deployment-types.md) - - -9. Next, [Configure an Execution Server Selector for Azure](./configure-an-execution-server-selector-for-azure.md). diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/configure-an-execution-server-selector-for-azure.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/configure-an-execution-server-selector-for-azure.md deleted file mode 100644 index 5899492eae..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/configure-an-execution-server-selector-for-azure.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -sidebar_position: 6 ---- - -# Configure an Execution Server Selector for Azure - -*This article explains how to associate an Execution Server to Azure Apps. To learn how to associate an Execution Server to resources, other Apps and blueprints, see [Setting Up Execution Servers to Run Commands](../../../../cloudshell-execution-server-configurations/setting-up-execution-servers-to-run-commands.md).* - -The CloudShell Management VNet contains an Execution Server called "**Azure-\**" (for example, "Azure\-East US"), which resides in a dedicated VM called **ExecutionServer\-VM**. This Execution Server is responsible for running the App's deployment and automation, as well as configuration management operations defined on the App. As this is a Linux Execution Server, it does not support Suite executions. - -In CloudShell, this Execution Server needs to be associated with the Azure cloud provider resource via the **Execution Server Selector** attribute. This is achieved by setting the same value for this attribute in the Azure cloud provider resource and in the deployed App shell in the App template's **App Resource** page. Note that this Execution Server will also run any configuration management operations defined in the App. For information about managing, troubleshooting and upgrading Execution Servers on Azure, see [Managing the Azure Execution Server](../managing-the-azure-execution-server.md). -:::important -If CloudShell Server is installed on Azure, rerun the Execution Server's configuration, as explained in [Upgrading an existing Execution Server](../managing-the-azure-execution-server.md#upgrading-an-existing-execution-server),and specify the CloudShell Server's private IP. Then, perform the below steps. -::: -**To add and configure the Execution Server Selector attribute:** - -1. In **CloudShell Portal**, configure the Execution Server: - - 1. Open the **Manage>Execution Servers>Servers** page. - 2. Find the Execution Server called "Azure-\", open its action menu and click **Attributes**. - 3. Select the **Execution Server Selector** check box and enter the value you entered for the Azure cloud provider in the previous step. - - ![](/Images/Admin-Guide/Azure-deployment-type/SelectAzureExecutionServer.png) - -2. Click **Done**. -3. When creating the App template, specify the same value on the **Execution Server Selector** attribute in the relevant App's **App Resource** page. -4. Click **Done**. - -5. Next, [Configure the Qualix Server for Azure](./configure-the-qualix-server-for-azure.md) diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/configure-azure-api-to-work-with-cloudshell.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/configure-azure-api-to-work-with-cloudshell.md deleted file mode 100644 index dfa064ae90..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/configure-azure-api-to-work-with-cloudshell.md +++ /dev/null @@ -1,154 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Configure Azure API to work with CloudShell - -CloudShell Apps communicate with Azure using the Azure API. To enable the two platforms to work with each other, you need to add a web application that has permission to use the Azure API. - -:::note Notes: -- You will need an Azure Global Administrator, Application Administrator or Cloud Application Administrator role to perform this procedure. -- During the app registration process, you will need to save the subscription ID, client ID, tenant ID, and client secret key for later use in your CloudShell "cloud provider resource". -::: -This configuration is a three-step process: - -1. [Add an Azure web application](./configure-azure-api-to-work-with-cloudshell.md#add-an-azure-web-application) -2. [Delegate Azure API permissions to the web application](./configure-azure-api-to-work-with-cloudshell.md#delegate-azure-api-permissions-to-the-web-application) -3. [Configure the web application as Contributor](./configure-azure-api-to-work-with-cloudshell.md#configure-the-web-application-as-contributor) - -## Add an Azure web application - -**To add an Azure web application:** - -1. Log in to [https://portal.azure.com](https://portal.azure.com/#). -2. Open the **Subscriptions** page and make sure you have an active subscription. - - ![](/Images/Admin-Guide/Azure-deployment-type/ActiveSubscription.png) - -3. Make sure your subscription has the appropriate permissions. - - 1. From the user menu, click the **More links** button and select **My permissions**. - - ![](/Images/Admin-Guide/Azure-deployment-type/ShowUserPermissions.png) - - 2. In the **My permissions** blade, click **Resource Provider Status**. - 3. In the **Resource Provider Status** blade, make sure the following permissions are registered (register any missing ones): - - - - - - - - -
-
    -
  • Microsoft.Compute
  • -
  • microsoft.support
  • -
  • Microsoft.Resources
  • -
  • Microsoft.Features
  • -
  • - Microsoft.Network -
  • -
-
-
    -
  • Microsoft.Authorization
  • -
  • Microsoft.Storage
  • -
  • Microsoft.OperationalInsights
  • -
-
- -4. Return to the **Subscriptions** page and copy and store the **Subscription ID** somewhere you'll remember. - - ![](/Images/Admin-Guide/Azure-deployment-type/subscription2.png) - -5. From the left pane, select **Azure Active Directory**. -6. In the active directory's blade, click **App registrations**. -7. In the **App registrations** blade, click the **New registration** button. -8. Enter the new web application's settings: - - | Parameter | Description | - | --- | --- | - | Name | Name of the web application. For example, "CloudShell App". | - | Supported account types | Select **Accounts in this organizational directory only (\ only - Single tenant)**. | - | Redirect URL | Select **Web** and enter a URL. For example, "https://quali.com". This is required for creating the web application but does not affect it. | - -9. Click **Register** at the bottom of the blade. - - The new web application is displayed. - - ![](/Images/Admin-Guide/Azure-deployment-type/NewWebApp.png) - -10. Copy and store the **Application (client) ID** and **Directory (tenant) ID**. You will need these values when creating the cloud provider resource in CloudShell. - -11. Proceed to the next section to delegate Azure API permissions to the web application. - -## Delegate Azure API permissions to the web application - -**To delegate Azure API permissions to the web application:** - -1. Return to the **App registrations** blade of the subscription's active directory. -2. Click the web application you created in the previous section. If you don't see the web application, select **All applications**. -3. In the web application's page, click **API permissions** and do the following: - - 1. Delegate **Azure Service Management** permission: Click **Add a permission**. In the **Request API permissions** blade, in the **Microsoft APIs** tab, click the **Azure Service Management** tile, make sure the **Delegated permissions** tile is selected and select the **Access Azure Service Management as organization users** checkbox. Click **Add permissions** at the bottom of the blade. - - 2. Make sure the **Sign in and read user profile** permission was delegated for **Microsoft Graph**. If not, click **Add a permission**. In the **Request API permissions** blade, in the **Microsoft APIs** tab, scroll down and click the **Microsoft Graph** tile. Select **Delegated permissions**, expand **User** and select **User.Read (Sign in and read user profile)**. Click **Add permissions** at the bottom of the blade. - - The API permissions blade should look like this: - - ![](/Images/Admin-Guide/Azure-deployment-type/RequiredPermissions.png) - - 3. Make sure the **Grant admin consent for \** link is checked next to the **Add a permission** button. - -4. Next, create a **client secret** (Azure application) key to be used by the CloudShell App for authentication with Azure. - 1. In the web application's page, click **Certificates & secrets**. - 2. Click **New client secret** and set it to expire **In 2 years**. - 3. Click **Add**. - - The client secret key is displayed. - - ![](/Images/Admin-Guide/Azure-deployment-type/SecretKey.png) - - 4. Copy and store the key value somewhere you'll remember. This is the **Azure Application Key** you will need to specify in the Azure cloud provider resource in CloudShell. - :::note - The client secret key is displayed only once and will disappear when you leave this blade. - ::: -5. Proceed to the next section to configure the web application as **Contributor**. - -## Configure the web application as Contributor - -The **Contributor** role enables CloudShell to create and manage virtual machines and other Azure services. - -**To configure the Azure web application as Contributor:** - -1. Return to the **Subscriptions** page and click the subscription's name. - - For example, **VS Account**: - - ![](/Images/Admin-Guide/Azure-deployment-type/subscription.png) - -2. In the blade that appears, click **Access control (IAM)**. - - The **Access Control** blade is displayed. - :::note - If you don't see this blade, clear your browser's cache and refresh the page. - ::: -3. Click **Add** and select **Add Role assignment**. -4. In the **Add role assignment** blade, in the **Role** tab, select the **Contributor** role. -5. Click **Next**. -6. Click **Select members**, and search for the web application you created. - - For example: - - ![](/Images/Admin-Guide/Azure-deployment-type/AddUsersSelectApp.png) - -7. Select the app and click **Select** at the bottom of the blade. - -8. Click **Review + assign**. -9. To verify that the web application was created correctly, in the **Access control (IAM)** blade, click the **Role assignments** tab and make sure it is displayed as a **Contributor**. - - ![](/Images/Admin-Guide/Azure-deployment-type/NewContributorWebApp.png) - -10. Next, [Create a Management Resource Group and VNets](./create-a-management-resource-group-and-vnets.md). diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/configure-the-qualix-server-for-azure.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/configure-the-qualix-server-for-azure.md deleted file mode 100644 index 9b6016d2cc..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/configure-the-qualix-server-for-azure.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -sidebar_position: 7 ---- - -# Configure the Qualix Server for Azure - -- If the only QualiX server in your CloudShell deployment is the one in the CloudShell Management VNet in Azure, refer to the [QualiX Installation and Configuration](../../../../../install-configure/qualix/index.md) on how to configure it, and for the server address, use the **QualiXPublicIp** output from the Management Resource Group deployment process - see [Create a Management Resource Group and VNets](./create-a-management-resource-group-and-vnets.md). -- If there are more QualiX servers in your CloudShell deployments, do the following for each relevant server: - 1. Install QualiX version 2.3 or above. - 2. Use an attribute to hold the QualiX Server address, and customize the `UniversalSettings.xml` file on the Quali Server machine to have Quali Server take the QualiX Server address from this attribute. - 3. Add this attribute to the **Generic App Model** and set its value in all Azure templates defined in the App catalog for this region. Each App must have in this attribute the address of the QualiX Server in the CloudShell Management VNet of its region. - -- If you selected an internal deployment of the CloudShell Management VNet, the QualiX Server does not have a Public IP and is accessible only by the network that is connected via VPN to the CloudShell Management VNet, which is the network you defined in the **On Premise CIDR** input parameter when you created the CloudShell Management VNet. In this case, use the QualiX VM's private IP as the server address in the `ServerUniversalSettings.xml`. - -- If CloudShell Portal is installed on Azure, in the `ServerUniversalSettings.xml`, specify the CloudShell Portal's private IP. - -## Related Topics - -- [Connect Remotely to Devices with QualiX (RDP, SSH, Telnet)](../../../../../portal/sandboxes/sandbox-workspace/resources/connect-remotely-with-qualix.md) diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/connect-the-cloudshell-management-vnet-to-quali-server.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/connect-the-cloudshell-management-vnet-to-quali-server.md deleted file mode 100644 index 4eaa2acec4..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/connect-the-cloudshell-management-vnet-to-quali-server.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -sidebar_position: 3 ---- - -# Connect the CloudShell Management VNet to Quali Server - -*Note that this procedure only applies to scenarios where Quali Server is not installed in Azure. If Quali Server is installed on Azure, see [Integrating Azure with Cloud-based CloudShell Installation](../integrating-azure-with-cloud-based-cloudshell-installation.md).* - -This article guides you on how to set up the VPN connection between Quali Server and Azure. -:::note -This can be done in various ways and is subject to your organization’s IT policy. For illustration purposes, this article shows how to set up a site-to-site VPN connection. -::: -A VPN connection is needed to allow the execution server installed on Azure to work with CloudShell, and to allow resources deployed on Azure to connect back to CloudShell resources that are on your private network, like on prem devices and vCenter VMs. - -For this procedure, you will need the IP address of your Quali Server VPN endpoint (provided by your IT administrator) and the **VPN Public IP**, which is created by the Azure Template deployment and can be found in the management resource group’s VPN deployment output. - -**To connect the CloudShell Management VNet to Quali Server:** - -1. Log in to [https://portal.azure.com/](https://portal.azure.com/). -2. Open the **Local network gateways** page. -3. Click the name of the local network gateway residing in the management resource group created by the Azure Template deployment. - -4. In the blade that appears, click **Configuration**. - - The **Configuration** blade is displayed. - -5. The configuration parameters should already be filled out using the values you specified in the Azure template. - - | Parameter | Description | - | --- | --- | - | IP address | The IP address defined in the Azure template's **VPN Address** parameter. of the Quali Server's VPN endpoint specified in the Azure Template. | - | Address space | The IP range (in CIDR notation) defined in the Azure template's **On Premise CIDR** parameter. This range will be used by the CloudShell Management VNet and by the virtual machines that will be created by CloudShell. | - -6. Click **Save**. -7. Click **Connections**. - - The **Connections** blade is displayed. - -8. In the blade that appears, click **Add**. - - The **Add connection** blade is displayed. - - ![](/Images/Admin-Guide/Azure-deployment-type/AzureAddConnectionBlade.png) - -9. Fill in the connection's parameters. - - | Parameter | Description | - | --- | --- | - | Name | Name for the connection. | - | Connection type | Type of connection to be made. By design, **Site-to-site** is selected for security and encryption reasons. | - | Virtual network gateway | Azure virtual network to be used by this connection.
Select the virtual network in the management resource group created by the Azure Template deployment | - | Local network gateway | Local network gateway for which a connection will be added. | - | Shared key (PSK) | Encryption key to be used to encrypt the connection.
The same shared key must be used in both the virtual network and local network gateways. If your gateway device doesn't provide one, you can make one up here and provide it to your device. | - | Subscription | The subscription can't be changed when adding a connection to an existing peer. | - | Resource group | The resource group can't be changed when adding a connection to an existing peer. | - | Location | The location can't be changed when adding a connection to an existing peer. | - -10. Click **OK**. - - The connection is created. For more information about the connection, open the gateway's **Connections** blade or click the **Create connection** notification - - ![](/Images/Admin-Guide/Azure-deployment-type/CreateConnectionNotification.png) - -11. Next, [Add an Azure Cloud Provider Resource](./add-an-azure-cloud-provider-resource.md). diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/create-a-management-resource-group-and-vnets.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/create-a-management-resource-group-and-vnets.md deleted file mode 100644 index 3d52810aa3..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/create-a-management-resource-group-and-vnets.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Create a Management Resource Group and VNets - -The **Azure Resource Template** deployment process creates the CloudShell management resource group, the CloudShell Management VNet and CloudShell Sandbox VNet within the resource group and a peering between these networks, which are detailed in [Microsoft Azure Integration](./index.md). You will then need to configure the Execution Server and QualiX Server created in the CloudShell Management VNet to access the Quali Server. - -:::note Notes: -- We strongly recommend using the new and improved [Azure 2nd Gen shell](https://github.com/orgs/QualiSystems/discussions/1687). If you're using the 1st Gen version of the shell that comes out of the box with CloudShell, see [this version](https://help-archive.quali.com/Online%20Help/2021.1/Portal/Content/Admn/Azure-Crt-Mng-RSc-Grp.htm) of the online help. -- The below procedure assumes you already have CloudShell Server installed locally. However, if you plan on installing CloudShell Server on the Azure region, see [Integrating Azure with Cloud-based CloudShell Installation](../integrating-azure-with-cloud-based-cloudshell-installation.md). -::: -**To create a CloudShell management resource group and the required networks:** - -1. Import the Azure template file from [CloudShell Download Center](https://support.quali.com/hc/en-us/articles/231613247-Quali-s-Download-Center). The template file is provided as a JSON file for each CloudShell release version. -2. Log in to [https://portal.azure.com](https://portal.azure.com/#) and open the **Template specs** page. -3. Click **Import template** and import the Azure template file. - - ![](/Images/Admin-Guide/Azure-deployment-type/TemplateSpecImport.png) - -4. In the **Basics** tab, fill in the template spec's mandatory details (Name, Subscription, Resource Group, Location, Version), and click **Next** until the template spec is created. - - ![](/Images/Admin-Guide/Azure-deployment-type/TemplateSpecCreation.png) - -5. Click the name of the new template spec. - - ![](/Images/Admin-Guide/Azure-deployment-type/ClickAzureTemplate.png) - -6. In the blade that appears, click **Deploy**. - - The **Custom deployment** page is displayed. - - ![](/Images/Admin-Guide/Azure-deployment-type/TemplateSettingsBlade.png) - - 1. Specify the **Subscription**, **Resource group**. - 2. In the **Instance details** area, fill in the deployment parameters. - - | Parameter | Required? | Description | - | --- | --- | --- | - | CloudShell Admin | Required | The CloudShell admin user | - | CloudShell Admin Password | Required | The CloudShell admin’s password | - | CloudShell Server IP | Required | The IP address of the Quali Server | - | CloudShell SSH User Name | Required | Create a user name and password to be used to connect to the QualiX and Execution Server that will be created in Azure.
Make sure you save these credentials for future use. | - | CloudShell SSH Password | Required | Create a password to be used with the **CloudShell SSH User Name**.
Password must contain 12-72 characters and include 1 lower case character, 1 upper case character and 1 special character. | - | Management Vnet CIDR | Required | The IP range (in CIDR notation) to be used for the CloudShell Management VNet. Specify a class C CIDR (/24).
For example: "192.168.120.0/24". | - | Management Vnet VPN Subnet CIDR | Required | (Relevant if **Create VPN Endpoint** is set to **True**) The IP range (in CIDR notation) of the subnet in which the VPN connection is set. This range must be included in the CloudShell Management VNet's range.
For example: "192.168.120.0/28". | - | Management Vnet Subnet CIDR | Required | The IP range (in CIDR notation) of the subnet to be used by the CloudShell Management VNet.
This range must be included in the CloudShell Management VNet's range. This subnet is used by CloudShell components such as QualiX Server and Execution Server.
For example: "192.168.120.16/28". | - | Deployment Mode | Required | Use external deployment to create a QualiX VM with a public IP, or internal deployment to create the QualiX VM with a private IP. Possible values are **External** and **Internal**.
The private IP is accessible from the networks that are connected to the CloudShell Management VNet (such as the network in which the Quali Server resides). | - | Create VPN Endpoint | Required | Set to **True** to create a VPN endpoint to the CloudShell Management VNet to support a hybrid scenario. | - | On Premise CIDR | Optional | The IP range (in CIDR notation) of the private network in which the Quali Server resides (outside of the CloudShell Management VNet). | - | VPN Address | Optional | The public IP address of the router on the network in which Quali Server resides. | - | Sandbox Vnet CIDR | Optional | The IP range (in CIDR notation) to be used for the Sandbox VNet. | - | Sandbox Vnet Subnet CIDR | Optional | The IP range (in CIDR notation) of the default subnet that will be created for the Sandbox VNet. This range must be included in the Sandbox VNet's range. Note that after the template is deployed you can delete this redundant subnet manually. | - -7. Click **Review + create**, and then **Create**. - - The Template is being deployed. - - If an error message is displayed, click the message to learn more about the error. - ![](/Images/Admin-Guide/Azure-deployment-type/TemplateCreationError.png) - - To track the deployment's progress, click the **Notifications** button. - - ![](/Images/Admin-Guide/Azure-deployment-type/TemplateDeploymentNotification.png) - -8. The Azure Template deployment's output includes the QualiX Public IP and, if required, the VPN Public IP. You will need this information to connect to the Azure subnets and App VMs from CloudShell. - - 1. Click **Go to resource group** and then click the name of the resource group. - - ![](/Images/Admin-Guide/Azure-deployment-type/ClickResourceGroup.png) - - 2. In the blade that appears, click **Deployments**. - - ![](/Images/Admin-Guide/Azure-deployment-type/AzureDeployments.png) - - 3. For the **QualiX Public IP**, click the QualiX deployment and expand **Deployment Details**. - 4. (If VPN was configured in the Azure Template) For the **VPN Public IP**, click the CloudShell VPN deployment. -9. Next, if your installation requires a VPN connection, [Connect the CloudShell Management VNet to Quali Server](./connect-the-cloudshell-management-vnet-to-quali-server.md). If not, [Add an Azure Cloud Provider Resource](./add-an-azure-cloud-provider-resource.md). diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/index.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/index.md deleted file mode 100644 index 09161039ce..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/microsoft-azure-integration/index.md +++ /dev/null @@ -1,69 +0,0 @@ -# Microsoft Azure Integration - -The Azure deployment types integrate CloudShell with the Microsoft Azure public cloud. This integration enables the deployment of CloudShell Apps in Microsoft Azure. CloudShell supports deploying Azure virtual machines from Azure Marketplace images and Azure custom images as well as Azure Shared Gallery images using the Azure 2nd Gen shell. - -CloudShell supports two integration methods with Azure - "on prem" and "cloud". In "on prem", CloudShell Server is already installed locally and requires a VPN connection to Azure, while in "cloud", CloudShell needs to be installed on the Azure region along with the CloudShell integration resources. For details about the "cloud" method, see [Integrating Azure with Cloud-based CloudShell Installation](../integrating-azure-with-cloud-based-cloudshell-installation.md). - -The following diagram illustrates an Azure integration (with a local CloudShell installation) hosting two live sandboxes: - -![](/Images/Admin-Guide/Azure-deployment-type/Azure-architecture.png) - -The deployment architecture in Azure requires a management resource group to be created for each relevant Azure region (all Azure regions are supported by CloudShell). This resource group has two virtual networks (VNets): - -- **CloudShell-Management-VNet**: (Optional when using a cloud provider resource based on the Azure 2nd Gen shell) VNet containing two Azure virtual machines, which are always on: - - **Execution-Server-VM**: Execution Server to be used to deploy and manage the Azure virtual machines, and run scripts and commands on them. - - The Execution Server in the CloudShell Management VNet needs to access the Quali Server, which is located outside of the CloudShell Management VNet (on-premise, another Azure VNet or another public cloud). To allow this access, you need to configure a VPN between the CloudShell Management VNet and the network in which the Quali Server resides. - - - **QualiX-VM**: QualiX Server used to enable in-browser connections, such as RDP, Telnet and SSH access to Apps in the sandbox - -- **CloudShell-Sandbox-VNet**: VNet containing a subnet for each CloudShell sandbox, which hosts all Azure App virtual machines created within the sandbox and allows them to communicate with each other. The CloudShell Management VNet's QualiX Server and Execution Server have access both to this VNet and each virtual machine's operating system to run commands and installations on the sandboxes. -:::note -Keeping Azure resources, like the CloudShell Management VNet's virtual machines, running at all times entails a fixed monthly rate. -::: -When a new CloudShell sandbox with Azure Apps is starting, the out-of-the-box setup process creates a new subnet for the sandbox within the **CloudShell Sandbox VNet**. This VNet is connected to the CloudShell Management VNet using a VNet Peering connection. All Azure Apps within the same sandbox are deployed in this sandbox subnet (within the CloudShell Sandbox VNet), and a dedicated Azure resource group is created for each sandbox to hold all Azure resources related to that sandbox. This architecture allows both QualiX Server and the Execution Server to access the Apps in the sandbox while keeping the Apps within one sandbox isolated from Apps in other sandboxes. - -:::note Notes: -- Azure virtual machines in the same sandbox live in the same subnet and can interact with each other. -- CloudShell allows sandboxes to have multiple subnets. If multiple subnets are defined (in the blueprint), the setup process will create the defined subnet networks instead of the default subnet. For additional information, see [Subnet Connectivity](../../../../setting-up-cloudshell/inventory-operations/connectivity-control/subnet-connectivity/index.md). -- When the sandbox ends, all related Azure resources, including the sandbox subnet, resource group and virtual machines are automatically deleted by CloudShell. -::: -:::tip -We strongly recommend using the 2nd Gen version of the shell, which provides significant enhancements and capabilities, and is tamper-resistant from within CloudShell, ensuring your Azure cloud provider resources and Apps are in pristine condition. Useful articles: [Replacing the 1st Gen shell with a 2nd Gen version](../../../../../devguide/reference/migrate-1st-gen-shell-to-2nd-gen-shell.md#replacing-the-1st-gen-shell-with-a-2nd-gen-version), [Cloud Provider Shells - Features and Capabilities Per Release](../../../cloud-provider-2g-shells-features-and-capabilities.md). -::: -## Azure installation workflow - -For each Azure region you want to integrate with CloudShell, perform the following steps: - - - - - - - -
- -1. [Configure Azure API to work with CloudShell](./configure-azure-api-to-work-with-cloudshell.md) -2. [Create a Management Resource Group and VNets](./create-a-management-resource-group-and-vnets.md) -3. [Connect the CloudShell Management VNet to Quali Server](./connect-the-cloudshell-management-vnet-to-quali-server.md) -4. [Add an Azure Cloud Provider Resource](./add-an-azure-cloud-provider-resource.md) -5. [Add an Azure App Template](./add-an-azure-app-template.md) -6. [Configure an Execution Server Selector for Azure](./configure-an-execution-server-selector-for-azure.md) -7. [Configure the Qualix Server for Azure](./configure-the-qualix-server-for-azure.md) -
- - -## Related Topics - -- [Managing Public Cloud Apps in Domains](../../managing-public-cloud-apps-in-domains.md) -- [Cost Management of Microsoft Azure Resources](../cost-management-of-microsoft-azure-resources.md) -- [Managing the Azure Execution Server](../managing-the-azure-execution-server.md) -- [Custom Routing for Azure in Sandboxes](../custom-routing-for-azure-in-sandboxes.md) -- [Azure Known Limitations](../azure-known-limitations.md) -- [Connecting Azure Apps to predefined subnets](../../../../../portal/sandboxes/sandbox-workspace/connect-resources-and-apps.md#connecting-azure-apps-to-predefined-subnets) \ No newline at end of file diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/using-multiple-azure-regions-in-cloudshell.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/using-multiple-azure-regions-in-cloudshell.md deleted file mode 100644 index fd8e06ae26..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/microsoft-azure-integration-and-configuration/using-multiple-azure-regions-in-cloudshell.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -sidebar_position: 7 ---- - -# Using Multiple Azure Regions in CloudShell - -This article provides guidelines on how to configure your Azure cloud provider resources in CloudShell, in case of multiple interconnected regions in Azure. - -In each region that has a CloudShell integration, a VNET is created for hosting the content of the sandboxes that will be created in that region. This VNET is always created with the CIDR 10.0.0.0/8. In scenarios where CloudShell is integrated with two or more Azure regions that are connected to each other by VPN, this behavior may cause an allocation conflict when creating a sandbox in one of the regions. - -For illustration purposes, consider this scenario of a sandbox deploying subnets in two different regions, each with its own VMs: - -![](/Images/Admin-Guide/Azure-deployment-type/Multi-Azure-Deployment.png) - -**To successfully implement such a scenario:** - -- Make sure CloudShell is integrated with the Azure regions. -- Make sure to set up a VPN tunnel between the regions to allow networking between sandbox VNETs located on the different regions. -- In the same CloudShell domain, create different Azure cloud provider resources, one for each Azure region. -- Make sure the IP range available to each cloud provider resource does not conflict with the ranges of the other cloud provider resources. This is done by specifying the IPs or IP ranges to ignore in the cloud providers' **Networks in Use** attribute. So for example, to use the default CIDR 10.0.0.0/8 (which provides a range of 16,777,216 IPs) in two Azure regions: - - - Set region A's cloud provider resource to ignore the first half of the range (1 - 8,388,608) - - - Set region B's cloud provider resource to ignore the second half of the range (8,388,609 - 16,777,216) -- To set up network connectivity between each cloud provider's Apps, see [Subnet Connectivity - Points to Consider](../../../setting-up-cloudshell/inventory-operations/connectivity-control/subnet-connectivity/subnet-connectivity--points-to-consider.md). diff --git a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/setappsecuritygroups-code-example.md b/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/setappsecuritygroups-code-example.md deleted file mode 100644 index 997862adf1..0000000000 --- a/versioned_docs/version-2023.3/admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/setappsecuritygroups-code-example.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -sidebar_position: 4 -hide_table_of_contents: true ---- - -# SetAppSecurityGroups Code Example - -The following code sample uses the `SetAppSecurityGroups` CloudShell Automation API method to open port 22 on two deployed Apps, which belong to a subnet called `management`, from another deployed App in the sandbox. - -```python -controllerApp = next(x for x in sandbox.components.apps.values() if x.deployed_app.Name.startswith('Controller')) - -VirtualRouterApp_1 = next(x for x in sandbox.components.apps.values() if x.deployed_app.Name.startswith('Virtual Router_1')) - -VirtualRouterApp_2 = next(x for x in sandbox.components.apps.values() if x.deployed_app.Name.startswith('Virtual Router_2')) - -# Find IP of the controller App and append /32 to be in CIDR format: - -controllerAddress = controllerApp.FullAddress + '/32' - -# Find the ID of the 'management' subnet. We need this because we always open a port in a deployed App in the context of its network interface: - -mngtSubnet = next(x for x in sandbox.components.services.values() if x.Alias.startswith('Management')) - -mngtSubnetId = next(att.Value for att in mngtSubnet.Attributes if att.Name == 'Subnet Id') - -sandbox.automation_api.WriteMessageToReservationOutput(reservationId=sandbox.id, message='Management subnet id is {0}'.format(str(mngtSubnetId))) - -# Define a rule on the 'management' network interface that enables access to port 22, from the controller App's IP address: - -rule = SecurityGroupRule(FromPort='22', ToPort='22', Protocol='TCP', Source=str(controllerAddress)) - -conf = SecurityGroupsConfiguration(SubnetId=str(mngtSubnetId), Rules=[rule]) - -# Apply the rule to both Apps: - -sg1 = SecurityGroup(Name=VirtualRouterApp_1.deployed_app.Name, SecurityGroupsConfigurations=[conf]) - -sg2 = SecurityGroup(Name=VirtualRouterApp_2.deployed_app.Name, SecurityGroupsConfigurations=[conf]) - -#API call: - -sandbox.automation_api.SetAppSecurityGroups( - reservationId=sandbox.id, - securityGroups=[sg1, sg2] -) -``` \ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/_category_.json b/versioned_docs/version-2023.3/api-guide/_category_.json deleted file mode 100644 index 6e227099bd..0000000000 --- a/versioned_docs/version-2023.3/api-guide/_category_.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "label": "CloudShell API Guide", - "position": 5, - "link": { - "slug": "api-guide", - "type": "generated-index", - "description": "CloudShell provides several APIs for setting up and executing your lab and test activities." - } -} diff --git a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/_category_.json b/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/_category_.json deleted file mode 100644 index d7ff917ef3..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "CloudShell Administration REST API", - "position": 2 -} diff --git a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/add-blueprints-to-domain.md b/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/add-blueprints-to-domain.md deleted file mode 100644 index e09454f9e6..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/add-blueprints-to-domain.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -sidebar_position: 9 ---- - -# Add blueprints to domain - -### Description - -Adds one or more blueprints from different domains to the desired domain. - -### URL - -`http://{Admin API IP}:{port#}/api/v1/domains/{id}/blueprints` - -| Parameter | Description/Comments | -| --- | --- | -| ID | (string) Domain's ID. Can be retrieved via [Get all domains](./get-all-domains.md).| - -### HTTP method - -`POST` - -### Request - -
-Headers - - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -
-Request body - -| Parameter | Description/Comments | -| --- | --- | -| Id | (string) Blueprint's id. | -| ValidateResourceAvailability | (string) Set to **true** to check that the blueprint's resources are available in the new domain. | -
- -
-Request example -```javascript -{ - "Blueprints": [ - { - "Id": "ca60106f-761b-4463-976f-8cc846bc10ff" - }, - { - "Id": "a68214a1-3c5d-4534-886d-a1d281e58f21" - } - ], - "ValidateResourceAvailability": true -} -``` -
- -### Response - -
-Response example -```javascript -{ - "Errors": [] -} -``` -
- -
-Response code - -```javascript -200 OK -``` -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/add-domains-to-group.md b/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/add-domains-to-group.md deleted file mode 100644 index b04dd7dcb3..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/add-domains-to-group.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -sidebar_position: 23 ---- - - -# Add domains to group - -### Description - -Adds one or more domains to a given group. - -### URL - -`http://{Admin API IP}:{port#}/api/v1/groups/{id}/domain` - -| Parameter | Description/Comments | -| --- | --- | -| ID | (string) Group's ID. Can be retrieved via [Get all groups](./get-all-groups.md). | - -### HTTP method - -`POST` - -### Request - - -
-Headers - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -
-Request body - -| Parameter | Description/Comments | -| --- | --- | -| Id | (string) Domain ids. Can be retrieved via [Get all domains](./get-all-domains.md). | -| ViewOnly | (bool) Specify true to add the group with "view only" permissions. | -
- -
-Request example - -```javascript -{ - "Domains": [ - { - "Id": "domain1 id" - }, - { - "Id": "domain2 id" - } - ], - "ViewOnly": true -} -``` -
- -### Response - -
-Response example - -```javascript -{ - "Errors": [] -} -``` -
- -
-Response code - -```javascript -201 Created -``` -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/add-groups-to-domain.md b/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/add-groups-to-domain.md deleted file mode 100644 index 9f58eda096..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/add-groups-to-domain.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -sidebar_position: 12 ---- - - -# Add groups to domain - -### Description - -Adds one or more groups to a given domain. - -### URL - -`http://{Admin API IP}:{port#}/api/v1/domains/{id}/groups` - -| Parameter | Description/Comments | -| --- | --- | -| ID | (string) Domain's ID. Can be retrieved via [Get all domains](./get-all-domains.md).| - -### HTTP method - -`POST` - -### Request - - -
-Headers - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -
-Request body - -| Parameter | Description/Comments | -| --- | --- | -| Id | (string) Group id. Can be retrieved via [Get all groups](./get-all-groups.md). | -| ViewOnly | (bool) Specify true to add the group with "view only" permissions. | -
- -
-Request example - -```javascript -{ - "Groups": [ - { - "Id": 1, - "ViewOnly": false - } - ] -} -``` -
- -### Response - -
-Response example - -```javascript -{ - "Errors": [] -} -``` -
- -
-Response code - -```javascript -200 OK -``` -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/add-resource-to-domain.md b/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/add-resource-to-domain.md deleted file mode 100644 index 6dbcdd6eac..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/add-resource-to-domain.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -sidebar_position: 15 ---- - -# Add resources to domain - -### Description - -Add resources from other domains to a give domain. - -### URL - -`http://{Admin API IP}:{port#}/api/v1/domains/{id}/resources` - -| Parameter | Description/Comments | -| --- | --- | -| ID | (string) Domain's id. Can be retrieved via [Get all domains](./get-all-domains.md). | - -### HTTP method - -`POST` - -### Request - -
-Headers - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -
-Request body - -| Parameter | Description/Comments | -| --- | --- | -| id | (string) Resource id. Can be retrieved via [Get domain's resources](./get-domain-resources.md). | -| IncludeDescendants | (bool) (Optional) Include sub-resources in the domain. Default is **true**. | - -
- -
-Request example - -```javascript -{ - - "Resources": [ - { - "Id": "6deda6fb-8f56-4c12-ac29-00b3fb7756db", - "IncludeDescendants": true - } - ] -} -``` -
- -### Response - -
-Response example - -```javascript -{ - "Errors": [] -} -``` -
- -
-Response code - -```javascript -201 Created -``` -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/add-users-to-group.md b/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/add-users-to-group.md deleted file mode 100644 index d01e939bb3..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/add-users-to-group.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -sidebar_position: 26 ---- - -# Add users to group - -### Description - -Adds one or more users to a given group. - -### URL - -`http://{Admin API IP}:{port#}/api/v1/groups/{id}/Users` - -| Parameter | Description/Comments | -| --- | --- | -| ID | (string) Group's ID. Can be retrieved via [Get all groups](./get-all-groups.md). | - -### HTTP method - -`POST` - -### Request - - -
-Headers - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -
-Request body - -| Parameter | Description/Comments | -| --- | --- | -| Id | (string) User's id. Can be retrieved via [Get all users](./get-all-users.md). | -
- -
-Request example - -```javascript -{ - "Users": [ - { - "Id": 0 - } - ] -} -``` -
- -### Response - -
-Response example - -```javascript -{ - "Errors": [] -} -``` -
- -
-Response code - -```javascript -200 OK -``` -
diff --git a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/create-domain.md b/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/create-domain.md deleted file mode 100644 index d3675a2849..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/create-domain.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -sidebar_position: 4 ---- - -# Create domain - -### Description - -Creates a new domain in CloudShell. - -### URL - -`http://{Admin API IP}:{port#}/api/v1/domains` - -### HTTP method - -`POST` - -### Request - -
-Headers - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -
-Request body - -| Parameter | Description/Comments | -| --- | --- | -| Name | (string) License pool name. | -| Description | (string) License pool's description. | -| Archived | (bool) (Optional) Specify "true" to create an archived domain. | -| EndTime (Optional) | (string) (Optional) Domain's expiration time. When this time is reached, the domain will still be accessible but no longer in use. | -| LicensePoolId | (string) (Optional) Name of the license pool to use for the domain. | -| Description | (string) (Optional) Domain's name. | - -
- -
-Request example - -```javascript -{ - "Archived": true, - "EndTime": "string", - "LicensePoolId": "string", - "EndTime": "05/20/2023 4:37:00 PM" - "Description": "string", - "Name": "string" -} -``` -
- -### Response - -
-Response example - -```javascript -{ - "Id": "e7d4289c-4355-435e-bc8f-aea0591af53c" -} -``` -
- -
-Response code - -```javascript -201 Created -``` -
- diff --git a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/create-group.md b/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/create-group.md deleted file mode 100644 index 2786ad8ac4..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/create-group.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -sidebar_position: 18 ---- - -# Create group - -### Description - -Creates one or more new CloudShell groups. - -### URL - -`http://{Admin API IP}:{port#}/api/v1/groups` - -### HTTP method - -`POST` - -### Request - -
-Headers - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -
-Request body - -| Parameter | Description/Comments | -| --- | --- | -| Name | (string) Group name. | -| Description | (string) Group description. | -| GroupRole | Group's role. Possible values are: External, Regular, DomainAdmin | - -
- -
-Request example - -```javascript -{ - "Groups": [ - { - "Name": "my group", - "Description": "my test group", - "groupRole": "Regular" - } - ] -} -``` -
- -### Response - -
-Response example - -```javascript -{ - "Groups": [ - { - "Name": "mygroup", - "Description": "my test group", - "ViewOnly": false, - "groupType": "UserDefined", - "groupRole": "Regular", - "Id": 7 - } - ], - "Errors": [] -} -``` -
- -
-Response code - -```javascript -201 Created -``` -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/create-license-pool.md b/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/create-license-pool.md deleted file mode 100644 index de88e55845..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/create-license-pool.md +++ /dev/null @@ -1,81 +0,0 @@ ---- -sidebar_position: 38 ---- - -# Create license pool - -### Description - -Creates a new license pool in CloudShell. - -### URL - -`http://{Admin API IP}:{port#}/api/v1/licensepools` - -### HTTP method - -`POST` - -### Request - -
-Headers - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` -
- -
-Request body - -| Parameter | Description/Comments | -| --- | --- | -| Name | (bool) License pool name. | -| Description | (string) License pool's password | -| MaxConcurrentReservation | (int) Maximum number of licenses (sandbox reservations) allowed by the license pool. | -| Domains | (string) List of domain ids to add the license pool to. | -
- -
-Request example - -```javascript -{ - "Name": "NY license pool", - "Description": "License pool for New York team", - "MaxConcurrentReservation": 10, - "Domains": ["2702ce9e-2db8-4b1d-94d6-1c4bf1b40267", "be342a7f-e2b8-45c6-9b32-0869b505029c"] -} -``` -
- -### Response - -
-Response example - -```javascript -{ - "Name": "New York license pool", - "Description": "License pool for New York team", - "MaxConcurrentReservation": 10, - "Domains": [ - "dbaf480c-09f7-46d3-a2e2-e35d3e374a16", - "dcd91805-4e1c-48a8-88c7-d9805e876783" - ], - "CreateDate": "0001-01-01T00:00:00", - "Id": "18967cc7-f239-496c-a900-b04300a5dafc" -} -``` -
- -
-Response code - -```javascript -201 Created -``` -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/create-user.md b/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/create-user.md deleted file mode 100644 index 74fecfdf60..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/create-user.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -sidebar_position: 30 ---- - -# Create user - -### Description - -Creates a new user in CloudShell. - -### URL - -`http://{Admin API IP}:{port#}/api/v1/users` - -### HTTP method - -`POST` - -### Request - -
-Headers - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` -
- -
-Request body - -| Parameter | Description/Comments | -| --- | --- | -| Username | (bool) Username. | -| Password | (string) User's password | -| Email | (string) User's email address. | -| IsActive | (bool) **true** creates an active user. | -| IsAdmin | (bool) **true** creates a system administrator. | -| GroupIds | (string) Comma-separated list of group ids to add the user to. | -| TimeZoneInfold | (string) User's time zone. | -| MaxReservationDuration | (int) (Optional) Maximum allowed sandbox duration for the user (in minutes). Specify "-1" to use the default. | -| MaxConcurrentReservations | (int) (Optional) Maximum number of sandboxes the user can own at any time. Specify "-1" to use the default. | -| MaxScheduledSandboxes | (int) (Optional) Maximum number of scheduled (planned/future) sandboxes the user can have at any time. Specify "-1" to use the default. | -| MaxOwnedBlueprints | (int) (Optional) Maximum number of blueprints the user can own at any given time. Specify "-1" to use the default (unlimited) _This setting applies to admins, domain admins and regular users only._ | -| MaxSavedSandboxes | (int) (Optional) Maximum number of saved sandboxes the user can have at any time. Unlimited by default. _Applies to customers using the Save and Restore add-on._ Specify "-1" to use the default. | -
- -
-Request example - -```javascript -{ - "Username": "john m", - "Password": "1234", - "Email": "john@example.com", - "IsActive": true, - "IsAdmin": true, - "GroupIds": [ - 1 - ], - "TimeZoneInfoId": "Israel Standard Time", - "MaxReservationDuration": 1, - "MaxConcurrentReservations": 2, - "MaxScheduledSandboxes": 2, - "MaxOwnedBlueprints": 2, - "MaxSavedSandboxes": 0 -} -``` -
- -### Response - -
-Response example - -```javascript -{ - "Id": 14 -} -``` -
- -
-Response code - -```javascript -201 Created -``` -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/cs-admin-rest-api-response-code.md b/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/cs-admin-rest-api-response-code.md deleted file mode 100644 index 515b303d14..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/cs-admin-rest-api-response-code.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -sidebar_position: 1 -title: API Response Codes ---- - -# CloudShell Administration REST API Response Codes - -| Code | Description | Result | -| --- | --- | --- | -| 200 OK | Success | API call was successfully executed. | -| 201 Created | Success | API call was successfully executed | -| 202 | Accepted | Accept partial success only, as part of the request was completed. For example, if you requested to delete / add batch of groups to domain. | -| 400 | Bad Request | Missing or Invalid Value in request | -| 403 | Forbidden | Invalid permissions or username | -| 404 | Not Found | Matching Entity was not found by request values | -| 409 | Conflict | Already exists | \ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/cs-admin-rest-api-usage.md b/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/cs-admin-rest-api-usage.md deleted file mode 100644 index e68ca3e721..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/cs-admin-rest-api-usage.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -sidebar_position: 0 -title: How to use ---- - -# CloudShell Administration REST API Usage - -1. To use the API's methods, you must pass an authentication token. To obtain the token, execute the login method with a CloudShell system admin's credentials: - - PUT `http://:/Api/Auth/Login` - - ```javascript - { - "Username": "admin", - "Password": "admin", - "Token": null, - "Domain": "Global" - } - ``` - - For example: - - ![](/Images/API/RM-API-login.png) - -2. And feed the token you got in the response into the API requests as a Bearer Token: - - ![](/Images/API/RM-API-bearer-token.png) \ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/delete-domain.md b/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/delete-domain.md deleted file mode 100644 index 081ed25811..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/delete-domain.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -sidebar_position: 7 ---- - -# Delete domain - -### Description - -Delete a specific domain from CloudShell. - -### URL - -`http://{Admin API IP}:{port#}/api/v1/domains/{id}` - -| Parameter | Description/Comments | -| --- | --- | -| ID | (string) Domain's id. Can be retrieved via [Get all domains](./get-all-domains.md).| - -### HTTP method - -`DELETE` - -### Request - -
-Headers - - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -### Response - -
-Response code - -```javascript -200 OK -``` -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/delete-group.md b/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/delete-group.md deleted file mode 100644 index b28895abc2..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/delete-group.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -sidebar_position: 21 ---- - -# Delete group - -### Description - -Deletes a group by ID from CloudShell. - -### URL - -`http://{Admin API IP}:{port#}/api/v1/group/{id}` - -| Parameter | Description/Comments | -| --- | --- | -| ID | (string) Group's id. Can be retrieved via [Get all groups](./get-all-groups.md). | - -### HTTP method - -`DELETE` - -### Request - -
-Headers - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -### Response - -
-Response code - -```javascript -200 OK -``` -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/delete-license-pool.md b/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/delete-license-pool.md deleted file mode 100644 index 37b08967f2..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/delete-license-pool.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -sidebar_position: 40 ---- - -# Delete license pool - -### Description - -Delete a specific license pool from CloudShell. - -### URL - -`http://{Admin API IP}:{port#}/api/v1/licensepools/{id}` - -| Parameter | Description/Comments | -| --- | --- | -| id | (string) License pool's id. Can be retrieved via [Get all license pools](./get-all-license-pools.md). | - -### HTTP method - -`DELETE` - -### Request - -
-Headers - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -### Response - -
-Response code - -```javascript -200 OK -``` -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/delete-user.md b/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/delete-user.md deleted file mode 100644 index 12bf9dddbd..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/delete-user.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -sidebar_position: 32 ---- - -# Delete user - -### Description - -Delete a specific user from CloudShell. - -### URL - -`http://{Admin API IP}:{port#}/api/v1/users/{id}` - -| Parameter | Description/Comments | -| --- | --- | -| id | (string) User's id. Can be retrieved via [Get all users](./get-all-users.md) or [Get group's users](./get-group-users.md). | - -### HTTP method - -`DELETE` - -### Request - -
-Headers - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` -
- -### Response - -
-Response code - -```javascript -200 OK -``` -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/edit-domain.md b/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/edit-domain.md deleted file mode 100644 index f53d90df52..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/edit-domain.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -sidebar_position: 6 ---- - -# Edit domain - -### Description - -Gets a list of all domains in CloudShell - -### URL - -`http://{Admin API IP}:{port#}/api/v1/domains/{id}` - -| Parameter | Description/Comments | -| --- | --- | -| ID | (string) Domain's id. Can be retrieved via [Get all domains](./get-all-domains.md). | - -### HTTP method - -`PUT` - -### Request - - -
- -Headers - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -
-Request body -| Parameter | Description/Comments | -| --- | --- | -| Name | (string) Domain name. | -| Description | (string) Domain description. | -| EndTime | (string) End time of domain's validity. When the end time is reached, the domain will be accessible but no longer in use. | -| Archived | (bool) **true** to archive the domain. | -| LicensePoolId | (string) Id of the license pool. Can be retrieved via [Get all license pools](./get-all-license-pools.md). | - -
- -
-Request example - -```javascript -{ - "Name": "MyFirstDomain", - "Description": "Updated domain", - "EndTime": "05/20/2023 4:37:00 PM", - "Archived": true, - "LicensePoolId": "7932E56D-057E-47FE-8E37-B00600A97C7F" - -} -``` - -```javascript -{ - "Description": "domain's new description", - "Name": "domain's new name" -} -``` -
- -### Response - -
-Response code - -```javascript -200 Ok -``` -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/edit-group.md b/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/edit-group.md deleted file mode 100644 index 4462ed0e23..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/edit-group.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -sidebar_position: 20 ---- - -# Edit group - -### Description - -Edit a group's details. - -### URL - -`http://{Admin API IP}:{port#}/api/v1/groups/{id}` - -| Parameter | Description/Comments | -| --- | --- | -| ID | (string) Group's id. Can be retrieved via [Get all groups](./get-all-groups.md). | - -### HTTP method - -`PUT` - -### Request - - -
- -Headers - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -
-Request body -| Parameter | Description/Comments | -| --- | --- | -| Name | (string) Group name. | -| Description | (string) Group description. | -| GroupRole | Group's role. Possible values are: External, Regular, DomainAdmin | - -
- -
-Request example - -```javascript -{ - "Name": "my updated group name", - "Description": "Updated description", - "GroupRole": "Regular" -} -``` -
- -### Response - -
-Response code - -```javascript -200 Ok -``` -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/edit-license-pool.md b/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/edit-license-pool.md deleted file mode 100644 index 50caf4e347..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/edit-license-pool.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -sidebar_position: 39 ---- - -# Edit license pool - -### Description - -Edit a license pool's details.. - -### URL - -`http://{Admin API IP}:{port#}/api/v1/licensepools/{id}` - -| Parameter | Description/Comments | -| --- | --- | -| id | (string) License pool's id. Can be retrieved via [Get all license pools](./get-all-license-pools.md). | - -### HTTP method - -`PUT` - -### Request - -
-Headers - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -
-Request body - -| Parameter | Description/Comments | -| --- | --- | -| Name | (bool) License pool name. | -| Description | (string) License pool's password | -| MaxConcurrentReservation | (int) Maximum number of licenses (sandbox reservations) allowed by the license pool. | -| Domains | (string) List of domain ids to add the license pool to. | -
- -
-Request example - -```javascript -{ - "Name": "Test license pool", - "Description": "license pool for testing", - "MaxConcurrentReservation": 3, - "Domains": ["985c3306-fad7-4e85-a4e3-c44876149657"] -} -``` -
- -### Response - -
-Response code - -```javascript -200 OK -``` -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/edit-user.md b/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/edit-user.md deleted file mode 100644 index acfa35492e..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/edit-user.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -sidebar_position: 31 ---- - -# Edit user - -### Description - -Edit a user's details.. - -### URL - -`http://{Admin API IP}:{port#}/api/v1/users/{id}` - -| Parameter | Description/Comments | -| --- | --- | -| id | (string) User's id. Can be retrieved via [Get all users](./get-all-users.md). | - -### HTTP method - -`PUT` - -### Request - -
-Headers - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` -
- -
-Request body - -| Parameter | Description/Comments | -| --- | --- | -| Username | (bool) Username. _Username cannot be modified._ | -| Password | (string) User's password | -| Email | (string) User's email address. | -| IsActive | (bool) **true** creates an active user. | -| IsAdmin | (bool) **true** creates a system administrator. | -| GroupIds | (string) Comma-separated list of group ids to add the user to. | -| TimeZoneInfold | (string) User's time zone. | -| MaxReservationDuration | (int) Maximum allowed sandbox duration for the user (in days). | -| MaxConcurrentReservations | (int) Maximum number of sandboxes the user can own at any time.. | -| MaxScheduledSandboxes | (int) Maximum number of scheduled (planned/future) sandboxes the user can have at any time. | -| MaxOwnedBlueprints | (int) Set the maximum of blueprints the user can own at any given time. Unlimited by default. _This setting applies to admins, domain admins and regular users only._ | -| MaxSavedSandboxes | (int) Maximum number of saved sandboxes the user can have at any time. Unlimited by default. _Applies to customers using the Save and Restore add-on._ | -
- -
-Request example - -```javascript -{ - "Username": "john m", - "Password": "a", - "Email": "user99@example.com", - "IsActive": true, - "IsAdmin": true, - "GroupIds": [-1], - "TimeZoneInfoId": "Israel Standard Time", - "MaxReservationDuration": -1, - "MaxConcurrentReservations": -1, - "MaxScheduledSandboxes": -1, - "MaxOwnedBlueprints": -1, - "MaxSavedSandboxes": -1 -} -``` -
- -### Response - -
-Response code - -```javascript -200 OK -``` -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-admin-api-token.md b/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-admin-api-token.md deleted file mode 100644 index 7d50a2199c..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-admin-api-token.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Get Administration API token - -### Description - -Gets an authentication token for Administration API. - -### URL - -`http://{Admin API IP}:{port#}/Api/Auth/Login` - -### HTTP method - -`PUT` - -### Request - -
-Headers - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` -
- -
-Request body - -Example header format: - -| Parameter | Description/Comments | -| --- | --- | -| Username | (string) CloudShell username. | -| Password | (string) CloudShell user password. | -| Domain | (string) CloudShell domain. | -
- -
-Request example - -```javascript -{ - "Username":"admin", - "Password":"admin", - "Domain":"Global" -} -``` -
- -### Response - -
-Response example - -```javascript -"UJvRg9mn6EywpLYMpRPiQg2" -``` -
- -
-Response code - -```javascript -200 -``` - -
- diff --git a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-all-domains.md b/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-all-domains.md deleted file mode 100644 index 8a862d83b4..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-all-domains.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -sidebar_position: 3 ---- - -# Get all domains - -### Description - -Gets a list of all domains in CloudShell - -### URL - -`http://{Admin API IP}:{port#}/api/v1/domains` - -### HTTP method - -`GET` - -### Request - -
-Headers - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` -
- -
-Query parameters - -| Parameter | Description/Comments | -| --- | --- | -| paginationProperties.limit | (integer) Number of results to return per page. Can retrieve up to 250 results per page. Default if unspecified: 50. Optional.
Default value : 50| -| paginationProperties.sort-by | (string) Field to use to sort the results.
| -| paginationProperties.sort-order | (integer) 1 for ascending, -1 for descending. Defaults to ascending. Optional.
Default value : 1 | -| paginationProperties.cursor | (string) When paging, the response will include a cursor field. Use the cursor to get next set of results. Optional. | -| paginationProperties.filter | (string) String to use to filter for domains containing this string. For example: "lab" would return lab1, testlab, olabo. Optional. | -
- -### Response - -
-Response example - -```javascript -{ - "Domains": [ - { - "Id": "5c966733-c496-486d-8b1a-963c13e9a103", - "Archived": false, - "EndTime": null, - "LicensePoolId": null, - "Description": "New York team's domain", - "Name": "New York" - }, - { - "Id": "8cd12c8d-6d40-4dfd-89da-a8d8dde00575", - "Archived": false, - "EndTime": null, - "LicensePoolId": null, - "Description": "San Francisco team's domain", - "Name": "San Fran" - }, - { - "Id": "dbaf480c-09f7-46d3-a2e2-e35d3e374a16", - "Archived": false, - "EndTime": null, - "LicensePoolId": null, - "Description": "Global domain", - "Name": "Global" - } - ], - "Cursor": null -} -``` -
- -
-Response example - -```javascript -200 OK -``` -
diff --git a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-all-external-groups.md b/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-all-external-groups.md deleted file mode 100644 index 87ffb7736b..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-all-external-groups.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -sidebar_position: 33 ---- - -# Get all external groups - -### Description - -Get all external groups from your active directory/LDAP. - -### URL - -`http://{Admin API IP}:{port#}/api/v1/integrations/IdentityManagement/groups` - -### HTTP method - -`GET` - -### Request - -
-Headers - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` -
- -
-Query parameters - -| Parameter | Description/Comments | -| --- | --- | -| paginationProperties.limit | (integer) Number of results to return per page. Can retrieve up to 250 results per page. Default if unspecified: 50. Optional.
Default value : 50 | -| paginationProperties.sort-by | (string) Field to use to sort the results.
Default value : Name | -| paginationProperties.sort-order | (integer) 1 for ascending, -1 for descending. Defaults to ascending. Optional.
Default value : 1 | -| paginationProperties.cursor | (string) When paging, the response will include a cursor field. Use the cursor to get next set of results. Optional. | -| paginationProperties.filter | (string) String to use to filter for domains containing this string. For example: "lab" would return lab1, testlab, olabo. Optional. | -
- -### Response - -
-Response example - -```javascript -{ - "Groups": [ - { - "Name": "Administrators", - "DistinguishedName": "CN=Administrators,CN=Builtin,DC=qualisystems,DC=local" - }, - { - "Name": "ADSyncAdmins", - "DistinguishedName": "CN=ADSyncAdmins,CN=Users,DC=qualisystems,DC=local" - }, - { - "Name": "Azure_DevOps_Cloud_Admins", - "DistinguishedName": "CN=Azure_DevOps_Cloud_Admins,OU=00.00.Quali.Azure.Security.Groups,OU=00.00.Microsoft-Azure,OU=00.00.Cloud.Services,OU=00.QUALI.WW.DATA.CENTERS,DC=qualisystems,DC=local" - } - ], - "Cursor": "QXp1cmVfRGV2T3BzX0Nsb3VkX0FkbWlucw==" -} -``` -
- -
-Response code - -```javascript -200 OK -``` -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-all-groups.md b/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-all-groups.md deleted file mode 100644 index afc14eb728..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-all-groups.md +++ /dev/null @@ -1,105 +0,0 @@ ---- -sidebar_position: 17 ---- - -# Get all groups - -### Description - -Gets a list of all groups in CloudShell. - -### URL - -`http://{Admin API IP}:{port#}/api/v1/groups` - -### HTTP method - -`GET` - -### Request - - -
-Headers - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` -
- -
-Query parameters - -| Parameter | Description/Comments | -| --- | --- | -| paginationProperties.limit | (integer) Number of results to return per page. Can retrieve up to 250 results per page. Default if unspecified: 50. Optional.
Default value : 50 | -| paginationProperties.sort-by | (string) Field to use to sort the results.
Default value : Name | -| paginationProperties.sort-order | (integer) 1 for ascending, -1 for descending. Defaults to ascending. Optional.
Default value : 1 | -| paginationProperties.cursor | (string) When paging, the response will include a cursor field. Use the cursor to get next set of results. Optional. | -| paginationProperties.filter | (string) String to use to filter for domains containing this string. For example: "lab" would return lab1, testlab, olabo. Optional. | - -
- -### Response - -
-Response example - -```javascript -{ - "Groups": [ - { - "ParentIds": null, - "Sid": "fa414b79-174f-4906-9c95-976caf363864", - "Name": "System Administrators", - "Description": "Built in group, all members have administrative rights.", - "ViewOnly": false, - "groupType": "System", - "groupRole": "SystemAdmin", - "Id": -1 - }, - { - "ParentIds": null, - "Sid": "88fc9928-a1f3-45c3-99cd-45a46d256592", - "Name": "Everyone", - "Description": null, - "ViewOnly": false, - "groupType": "System", - "groupRole": "Regular", - "Id": 1 - }, - { - "ParentIds": null, - "Sid": "1c7a0c13-600e-43ae-ab2d-6f594e245912", - "Name": "domain admin", - "Description": null, - "ViewOnly": false, - "groupType": "UserDefined", - "groupRole": "DomainAdmin", - "Id": 2 - }, - { - "ParentIds": null, - "Sid": "a2bf342a-5883-4e1a-87a5-5bb6e13b421b", - "Name": "regular users", - "Description": null, - "ViewOnly": false, - "groupType": "UserDefined", - "groupRole": "Regular", - "Id": 3 - } - ], - "Cursor": null -} -``` -
- -
-Response code - -```javascript -200 OK -``` -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-all-license-pools.md b/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-all-license-pools.md deleted file mode 100644 index 90eebc23cc..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-all-license-pools.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -sidebar_position: 36 ---- - -# Get all license pools - -### Description - -Gets a list of all license pools in CloudShell. - -### URL - -`http://{Admin API IP}:{port#}/api/v1/licensepools` - -### HTTP method - -`GET` - -### Request - -
-Headers - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` -
- -
-Query parameters - -| Parameter | Description/Comments | -| --- | --- | -| paginationProperties.limit | (integer) Number of results to return per page. Can retrieve up to 250 results per page. Default if unspecified: 50. Optional.
Default value : 50 | -| paginationProperties.sort-by | (string) Field to use to sort the results.
Default value : Name | -| paginationProperties.sort-order | (integer) 1 for ascending, -1 for descending. Defaults to ascending. Optional.
Default value : 1 | -| paginationProperties.cursor | (string) When paging, the response will include a cursor field. Use the cursor to get next set of results. Optional. | -| paginationProperties.filter | (string) String to use to filter for domains containing this string. For example: "lab" would return lab1, testlab, olabo. Optional. | -
- -### Response - -
-Response example - -```javascript -{ - "LicensePools": [ - { - "Name": "SF license pool", - "Description": "License pool for San Francisco domain", - "MaxConcurrentReservation": 15, - "Domains": [ - "8cd12c8d-6d40-4dfd-89da-a8d8dde00575" - ], - "CreateDate": "2023-07-18T06:59:07", - "Id": "a4ba81df-ead7-487b-b684-b04300a48e69" - }, - { - "Name": "NY license pool", - "Description": "License pool for New York domain", - "MaxConcurrentReservation": 10, - "Domains": [ - "357ff49d-4ffd-4b3e-bc07-041dd4fd0f33" - ], - "CreateDate": "2023-07-18T06:55:55", - "Id": "a48d85a0-6332-445b-bf03-b04300a3ac9d" - } - ], - "Cursor": "TXkgbGljZW5zZSBwb29s" -} -``` -
- -
-Response code - -```javascript -200 OK -``` -
diff --git a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-all-users.md b/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-all-users.md deleted file mode 100644 index 2a60c88823..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-all-users.md +++ /dev/null @@ -1,148 +0,0 @@ ---- -sidebar_position: 28 ---- - -# Get all users - -### Description - -Gets a list of all users in CloudShell. - -### URL - -`http://{Admin API IP}:{port#}/api/v1/users` - -### HTTP method - -`GET` - -### Request - -
-Headers - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -
-Query parameters - -| Parameter | Description/Comments | -| --- | --- | -| paginationProperties.limit | (integer) Number of results to return per page. Can retrieve up to 250 results per page. Default if unspecified: 50. Optional.
Default value : 50 | -| paginationProperties.sort-by | (string) Field to use to sort the results.
Default value : Name | -| paginationProperties.sort-order | (integer) 1 for ascending, -1 for descending. Defaults to ascending. Optional.
Default value : 1 | -| paginationProperties.cursor | (string) When paging, the response will include a cursor field. Use the cursor to get next set of results. Optional. | -| paginationProperties.filter | (string) String to use to filter for domains containing this string. For example: "lab" would return lab1, testlab, olabo. Optional. | -
- -### Response - -
-Response example - -```javascript -{ - "Users": [ - { - "Id": 1, - "Sid": "71afdb5c-d479-43a4-993d-0e01d77d02ac", - "Username": "admin", - "Email": null, - "IsActive": true, - "IsAdmin": true, - "GroupIds": [ - -1, - 1 - ], - "TimeZoneInfoId": "Israel Standard Time", - "MaxReservationDuration": null, - "MaxConcurrentReservations": null, - "MaxScheduledSandboxes": null, - "MaxOwnedBlueprints": null, - "MaxSavedSandboxes": null, - "DomainRoles": [ - { - "DomainId": "dbaf480c-09f7-46d3-a2e2-e35d3e374a16", - "role": "SystemAdmin" - }, - { - "DomainId": "357ff49d-4ffd-4b3e-bc07-041dd4fd0f33", - "role": "SystemAdmin" - }, - { - "DomainId": "8cd12c8d-6d40-4dfd-89da-a8d8dde00575", - "role": "SystemAdmin" - }, - { - "DomainId": "134b19d4-6c56-491d-b765-b61191c37f78", - "role": "SystemAdmin" - }, - { - "DomainId": "dcd91805-4e1c-48a8-88c7-d9805e876783", - "role": "SystemAdmin" - }, - { - "DomainId": "985c3306-fad7-4e85-a4e3-c44876149657", - "role": "SystemAdmin" - } - ], - "DomainName": null, - "ImportedSid": null - }, - { - "Id": 4, - "Sid": "93f41a86-946b-4e96-b8f1-1af642e000f0", - "Username": "john", - "Email": "", - "IsActive": true, - "IsAdmin": false, - "GroupIds": [ - 1, - 3 - ], - "TimeZoneInfoId": "Israel Standard Time", - "MaxReservationDuration": null, - "MaxConcurrentReservations": 100, - "MaxScheduledSandboxes": 10000, - "MaxOwnedBlueprints": null, - "MaxSavedSandboxes": 20, - "DomainRoles": [ - { - "DomainId": "dbaf480c-09f7-46d3-a2e2-e35d3e374a16", - "role": "Regular" - }, - { - "DomainId": "357ff49d-4ffd-4b3e-bc07-041dd4fd0f33", - "role": "Regular" - }, - { - "DomainId": "dcd91805-4e1c-48a8-88c7-d9805e876783", - "role": "Regular" - }, - { - "DomainId": "8cd12c8d-6d40-4dfd-89da-a8d8dde00575", - "role": "Regular" - } - ], - "DomainName": null, - "ImportedSid": null - } - ], - "Cursor": null -} -``` -
- -
-Response code - -```javascript -200 OK -``` -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-domain-blueprints.md b/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-domain-blueprints.md deleted file mode 100644 index 3fd38b508e..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-domain-blueprints.md +++ /dev/null @@ -1,132 +0,0 @@ ---- -sidebar_position: 8 ---- - -# Get domain's blueprints - -### Description - -Gets a list of all blueprints in a given domain. - -### URL - -`http://{Admin API IP}:{port#}/api/v1/domains/{id}/blueprints` - -| Parameter | Description/Comments | -| --- | --- | -| ID | (string) Domain's ID. Can be retrieved via [Get all domains](./get-all-domains.md).| - -### HTTP method - -`GET` - -### Request - -
-Headers - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - - -
- -
-Query parameters - -| Parameter | Description/Comments | -| --- | --- | -| paginationProperties.limit | (integer) Number of results to return per page. Can retrieve up to 250 results per page. Default if unspecified: 50. Optional.
Default value : 50 | -| paginationProperties.sort-by | (string) Field to use to sort the results.
Default value : Name | -| paginationProperties.sort-order | (integer) 1 for ascending, -1 for descending. Defaults to ascending. Optional.
Default value : 1 | -| paginationProperties.cursor | (string) When paging, the response will include a cursor field. Use the cursor to get next set of results. Optional. | -| paginationProperties.filter | (string) String to use to filter for domains containing this string. For example: "lab" would return lab1, testlab, olabo. Optional. | -
- -### Response -
-Response example - -```javascript -{ - "Blueprints": [ - { - "Alias": "Azure test", - "CreatorName": "hezsys", - "EnableSandboxSave": true, - "topologyType": "Regular", - "topologyState": "Pending", - "BaseTopology": null, - "ParentId": "942e2ff1-23b6-4d22-852a-3068380b80f4", - "Name": "Azure test", - "Description": "Blueprint with preconfigured setup & teardown processes.Deploys Apps and resolves connections on Setup, and deletes App VMs on Teardown", - "Type": "Topology", - "ModificationDate": "2022-02-14T14:48:08", - "CreateDate": "2022-02-14T10:43:52", - "Version": 6, - "Id": "d3e496b5-1426-4607-a72e-3a696549f35c" - }, - { - "Alias": "New York", - "CreatorName": "hez", - "EnableSandboxSave": true, - "topologyType": "Regular", - "topologyState": "Pending", - "BaseTopology": null, - "ParentId": "942e2ff1-23b6-4d22-852a-3068380b80f4", - "Name": "New York", - "Description": "Blueprint with preconfigured setup & teardown processes.Deploys Apps and resolves connections on Setup, and deletes App VMs on Teardown", - "Type": "Topology", - "ModificationDate": "2023-07-17T04:34:04", - "CreateDate": "2022-02-13T13:08:25", - "Version": 25, - "Id": "6fc4e095-606c-4fcc-9bf3-725dd01b5aa8" - }, - { - "Alias": "AWS test", - "CreatorName": "hezsys", - "EnableSandboxSave": true, - "topologyType": "Regular", - "topologyState": "Pending", - "BaseTopology": null, - "ParentId": "942e2ff1-23b6-4d22-852a-3068380b80f4", - "Name": "AWS test", - "Description": "Blueprint with preconfigured setup & teardown processes.Deploys Apps and resolves connections on Setup, and deletes App VMs on Teardown", - "Type": "Topology", - "ModificationDate": "2022-02-14T10:43:33", - "CreateDate": "2022-02-14T10:38:41", - "Version": 5, - "Id": "54b0f107-14e5-46e8-8ce6-92bb50d55e06" - }, - { - "Alias": "vCenter Resource BP", - "CreatorName": "hez", - "EnableSandboxSave": true, - "topologyType": "Regular", - "topologyState": "Pending", - "BaseTopology": null, - "ParentId": "942e2ff1-23b6-4d22-852a-3068380b80f4", - "Name": "vCenter Resource BP", - "Description": "Blueprint with preconfigured setup & teardown processes.Deploys Apps and resolves connections on Setup, and deletes App VMs on Teardown", - "Type": "Topology", - "ModificationDate": "2022-02-13T13:20:14", - "CreateDate": "2022-02-13T13:16:30", - "Version": 6, - "Id": "ecc31ee9-0a49-4bd4-b36a-c9e6c09698f4" - } - ], - "Cursor": null -} -``` -
- -
-Response code - -```javascript -200 OK -``` -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-domain-by-id.md b/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-domain-by-id.md deleted file mode 100644 index 18e082df59..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-domain-by-id.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -sidebar_position: 5 ---- - -# Get domain by ID - -### Description - -Get a domain's details. - -### URL - -`http://{Admin API IP}:{port#}/api/v1/domains/{id}` - -| Parameter | Description/Comments | -| --- | --- | -| ID | (string) Domain's ID. Can be retrieved via [Get all domains](./get-all-domains.md). | - -### HTTP method - -`GET` - -### Request - -
-Headers - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - - -
- -### Response - -
-Response example - -```javascript -{ - "Id": "5c966733-c496-486d-8b1a-963c13e9a103", - "Archived": false, - "EndTime": null, - "LicensePoolId": null, - "Description": "New York team's domain", - "Name": "New York" -} -``` -
- -
-Response code - -```javascript -200 OK -``` -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-domain-groups.md b/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-domain-groups.md deleted file mode 100644 index bc1db88019..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-domain-groups.md +++ /dev/null @@ -1,97 +0,0 @@ ---- -sidebar_position: 11 ---- - -# Get domain's groups - -### Description - -Gets a list of all groups in a given domain. - -### URL - -`http://{Admin API IP}:{port#}/api/v1/domains/{id}/groups` - -| Parameter | Description/Comments | -| --- | --- | -| ID | (string) Domain's ID. Can be retrieved via [Get all domains](./get-all-domains.md).| - -### HTTP method - -`GET` - -### Request - -
-Headers - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -
-Query parameters - -| Parameter | Description/Comments | -| --- | --- | -| paginationProperties.limit | (integer) Number of results to return per page. Can retrieve up to 250 results per page. Default if unspecified: 50. Optional.
Default value : 50 | -| paginationProperties.sort-by | (string) Field to use to sort the results.
Default value : Name | -| paginationProperties.sort-order | (integer) 1 for ascending, -1 for descending. Defaults to ascending. Optional.
Default value : 1 | -| paginationProperties.cursor | (string) When paging, the response will include a cursor field. Use the cursor to get next set of results. Optional. | -| paginationProperties.filter | (string) String to use to filter for domains containing this string. For example: "lab" would return lab1, testlab, olabo. Optional. | -
- -### Response -
-Response example - -```javascript -{ - "Groups": [ - { - "ParentIds": null, - "Sid": "00000000-0000-0000-0000-000000000000", - "Name": "System Administrators", - "Description": "Built in group, all members have administrative rights.", - "ViewOnly": false, - "groupType": "System", - "groupRole": "SystemAdmin", - "Id": -1 - }, - { - "ParentIds": null, - "Sid": "00000000-0000-0000-0000-000000000000", - "Name": "domain admin", - "Description": null, - "ViewOnly": false, - "groupType": "UserDefined", - "groupRole": "DomainAdmin", - "Id": 2 - }, - { - "ParentIds": null, - "Sid": "00000000-0000-0000-0000-000000000000", - "Name": "view-only", - "Description": null, - "ViewOnly": true, - "groupType": "UserDefined", - "groupRole": "DomainAdmin", - "Id": 5 - } - ], - "Cursor": null -} -``` -
- -
-Response code - -```javascript -200 OK -``` -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-domain-resources.md b/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-domain-resources.md deleted file mode 100644 index 902f7a5f99..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-domain-resources.md +++ /dev/null @@ -1,123 +0,0 @@ ---- -sidebar_position: 14 ---- - -# Get domain's resources - -### Description - -Gets a list of all resources (and sub-resources) in a domain. - -### URL - -`http://{Admin API IP}:{port#}/api/v1/domains/{id}/resources` - -| Parameter | Description/Comments | -| --- | --- | -| ID | (string) Domain's ID. Can be retrieved via [Get all domains](./get-all-domains.md).| - -### HTTP method - -`GET` - -### Request - -
-Headers - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -
-Query parameters - -| Parameter | Description/Comments | -| --- | --- | -| paginationProperties.limit | (integer) Number of results to return per page. Can retrieve up to 250 results per page. Default if unspecified: 50. Optional.
Default value : 50 | -| paginationProperties.sort-by | (string) Field to use to sort the results.
Default value : Name | -| paginationProperties.sort-order | (integer) 1 for ascending, -1 for descending. Defaults to ascending. Optional.
Default value : 1 | -| paginationProperties.cursor | (string) When paging, the response will include a cursor field. Use the cursor to get next set of results. Optional. | -| paginationProperties.filter | (string) String to use to filter for domains containing this string. For example: "lab" would return lab1, testlab, olabo. Optional. | -
- -### Response -
-Response example - -```javascript -{ - "Resources": [ - { - "FullPath": "Bridge1", - "FullName": "Bridge1", - "IsExcluded": false, - "reservedStatus": "Available", - "ParentId": "0e951eff-0530-42aa-913e-cd27b3a2ebc7", - "Name": "CDS_OPS_Bridgit10", - "Description": "", - "Type": "LabResource", - "ModificationDate": "2021-01-31T12:10:52", - "CreateDate": "2021-01-31T12:10:52", - "Version": 4, - "Id": "3063656e-52ba-4760-962a-0609006f54f8" - }, - { - "FullPath": "Bridge1/Jack1", - "FullName": "Bridge1/Jack1", - "IsExcluded": false, - "reservedStatus": "Available", - "ParentId": "0e951eff-0530-42aa-913e-cd27b3a2ebc7", - "Name": "PPJackVLb14", - "Description": "", - "Type": "LabResource", - "ModificationDate": "2021-01-31T12:10:21", - "CreateDate": "2021-01-31T12:10:21", - "Version": 33, - "Id": "4bcb852a-f4bf-4ab2-97db-02b1fec07733" - }, - { - "FullPath": "Bridge1/Jack2", - "FullName": "Bridge1/Jack2", - "IsExcluded": false, - "reservedStatus": "Available", - "ParentId": "0e951eff-0530-42aa-913e-cd27b3a2ebc7", - "Name": "PPJackVLb14", - "Description": "", - "Type": "LabResource", - "ModificationDate": "2021-01-31T12:10:21", - "CreateDate": "2021-01-31T12:10:21", - "Version": 33, - "Id": "f3c8ed5e-d76f-4b5f-9548-7d37a2f387a4" - }, - { - "FullPath": "Bridge1/Jack3", - "FullName": "Bridge1/Jack3", - "IsExcluded": false, - "reservedStatus": "Available", - "ParentId": "0e951eff-0530-42aa-913e-cd27b3a2ebc7", - "Name": "PPJackVLb14", - "Description": "", - "Type": "LabResource", - "ModificationDate": "2021-01-31T12:10:21", - "CreateDate": "2021-01-31T12:10:21", - "Version": 33, - "Id": "ccf544fa-070a-4157-8a37-07b1ba12aaf8" - }, - ], - "Cursor": "100" -} -``` -
- -
-Response code - -```javascript -200 OK -``` -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-group-by-id.md b/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-group-by-id.md deleted file mode 100644 index 05cb9f74d9..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-group-by-id.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -sidebar_position: 19 ---- - -# Get group by ID - -### Description - -Gets a group's details using the group's id. - -### URL - -`http://{Admin API IP}:{port#}/api/v1/groups/{id}` - -| Parameter | Description/Comments | -| --- | --- | -| ID | (string) Group's ID. Can be retrieved via [Get all groups](./get-all-groups.md).| - -### HTTP method - -`GET` - -### Request - -
-Headers - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -### Response -
-Response example - -```javascript -{ - "ParentIds": null, - "Sid": "42038eb9-9a58-4298-8a38-0be6f4d3b87a", - "Name": "my group", - "Description": "my group's description", - "ViewOnly": false, - "groupType": "UserDefined", - "groupRole": "Regular", - "Id": 7 -} -``` -
- -
-Response code - -```javascript -200 OK -``` -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-group-domains.md b/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-group-domains.md deleted file mode 100644 index 7b200be5b0..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-group-domains.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -sidebar_position: 22 ---- - -# Get group's domains - -### Description - -Gets a list of all domains associated to a given group. - -### URL - -`http://{Admin API IP}:{port#}/api/v1/groups/{id}/domains` - -| Parameter | Description/Comments | -| --- | --- | -| ID | (string) Group's ID. Can be retrieved via [Get all groups](./get-all-groups.md).| - -### HTTP method - -`GET` - -### Request - -
-Headers - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -### Response -
-Response example - -```javascript -{ - "Domains": [ - { - "ViewOnly": false, - "Id": "5c966733-c496-486d-8b1a-963c13e9a103", - "Archived": false, - "EndTime": null, - "LicensePoolId": null, - "Description": "some description about this domain", - "Name": "new domain 02" - }, - { - "ViewOnly": false, - "Id": "8cd12c8d-6d40-4dfd-89da-a8d8dde00575", - "Archived": false, - "EndTime": null, - "LicensePoolId": null, - "Description": "", - "Name": "New York" - }, - { - "ViewOnly": false, - "Id": "134b19d4-6c56-491d-b765-b61191c37f78", - "Archived": false, - "EndTime": null, - "LicensePoolId": null, - "Description": "", - "Name": "San Francisco" - }, - { - "ViewOnly": false, - "Id": "dbaf480c-09f7-46d3-a2e2-e35d3e374a16", - "Archived": false, - "EndTime": null, - "LicensePoolId": null, - "Description": "A domain that includes all available resources", - "Name": "Global" - } - ], - "Cursor": null -} -``` -
- -
-Response code - -```javascript -200 OK -``` -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-group-users.md b/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-group-users.md deleted file mode 100644 index 7a5229a6e1..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-group-users.md +++ /dev/null @@ -1,153 +0,0 @@ ---- -sidebar_position: 25 ---- - -# Get group's users - -### Description - -Gets a list of all users in a given domain. - -### URL - -`http://{Admin API IP}:{port#}/api/v1/groups/{id}/Users` - -| Parameter | Description/Comments | -| --- | --- | -| ID | (string) Group's ID. Can be retrieved via [Get all groups](./get-all-groups.md). | - -### HTTP method - -`GET` - -### Request - -
-Headers - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -
-Query parameters - -| Parameter | Description/Comments | -| --- | --- | -| paginationProperties.limit | (integer) Number of results to return per page. Can retrieve up to 250 results per page. Default if unspecified: 50. Optional.
Default value : 50 | -| paginationProperties.sort-by | (string) Field to use to sort the results.
Default value : Name | -| paginationProperties.sort-order | (integer) 1 for ascending, -1 for descending. Defaults to ascending. Optional.
Default value : 1 | -| paginationProperties.cursor | (string) When paging, the response will include a cursor field. Use the cursor to get next set of results. Optional. | -| paginationProperties.filter | (string) String to use to filter for domains containing this string. For example: "lab" would return lab1, testlab, olabo. Optional. | - -
- -### Response - -
-Response example - -```javascript -{ - "Users": [ - { - "Id": 1, - "Sid": "71afdb5c-d479-43a4-993d-0e01d77d02ac", - "Username": "admin", - "Email": null, - "IsActive": true, - "IsAdmin": true, - "GroupIds": [ - -1, - 1 - ], - "TimeZoneInfoId": "Israel Standard Time", - "MaxReservationDuration": null, - "MaxConcurrentReservations": null, - "MaxScheduledSandboxes": null, - "MaxOwnedBlueprints": null, - "MaxSavedSandboxes": null, - "DomainRoles": [ - { - "DomainId": "dbaf480c-09f7-46d3-a2e2-e35d3e374a16", - "role": "SystemAdmin" - }, - { - "DomainId": "357ff49d-4ffd-4b3e-bc07-041dd4fd0f33", - "role": "SystemAdmin" - }, - { - "DomainId": "8cd12c8d-6d40-4dfd-89da-a8d8dde00575", - "role": "SystemAdmin" - }, - { - "DomainId": "134b19d4-6c56-491d-b765-b61191c37f78", - "role": "SystemAdmin" - }, - { - "DomainId": "dcd91805-4e1c-48a8-88c7-d9805e876783", - "role": "SystemAdmin" - }, - { - "DomainId": "985c3306-fad7-4e85-a4e3-c44876149657", - "role": "SystemAdmin" - } - ], - "DomainName": null, - "ImportedSid": null - }, - { - "Id": 4, - "Sid": "93f41a86-946b-4e96-b8f1-1af642e000f0", - "Username": "john", - "Email": "", - "IsActive": true, - "IsAdmin": false, - "GroupIds": [ - 1, - 3 - ], - "TimeZoneInfoId": "Israel Standard Time", - "MaxReservationDuration": null, - "MaxConcurrentReservations": 100, - "MaxScheduledSandboxes": 10000, - "MaxOwnedBlueprints": null, - "MaxSavedSandboxes": 20, - "DomainRoles": [ - { - "DomainId": "dbaf480c-09f7-46d3-a2e2-e35d3e374a16", - "role": "Regular" - }, - { - "DomainId": "357ff49d-4ffd-4b3e-bc07-041dd4fd0f33", - "role": "Regular" - }, - { - "DomainId": "dcd91805-4e1c-48a8-88c7-d9805e876783", - "role": "Regular" - }, - { - "DomainId": "8cd12c8d-6d40-4dfd-89da-a8d8dde00575", - "role": "Regular" - } - ], - "DomainName": null, - "ImportedSid": null - } - ], - "Cursor": null -} -``` -
- -
-Response code - -```javascript -200 OK -``` -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-license-pool-by-id.md b/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-license-pool-by-id.md deleted file mode 100644 index 1c22360d6c..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-license-pool-by-id.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -sidebar_position: 37 ---- - -# Get license pool by ID - -### Description - -Gets a license pool's details using the group's id. - -### URL - -`http://{Admin API IP}:{port#}/api/v1/licensepools/{id}` - -| Parameter | Description/Comments | -| --- | --- | -| Id | (string) License pool's id. Can be retrieved via [Get all license pools](./get-all-license-pools.md). | - -### HTTP method - -`GET` - -### Request - -
-Headers - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -### Response - -
-Response example - -```javascript -{ - "Name": "SF license pool 2", - "Description": "License pool for San Francisco domain", - "MaxConcurrentReservation": 15, - "Domains": [ - "8cd12c8d-6d40-4dfd-89da-a8d8dde00575" - ], - "CreateDate": "2023-07-18T06:59:07", - "Id": "a4ba81df-ead7-487b-b684-b04300a48e69" -} -``` -
- -
-Response code - -```javascript -200 OK -``` -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-user-by-id.md b/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-user-by-id.md deleted file mode 100644 index b41dc42a99..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-user-by-id.md +++ /dev/null @@ -1,98 +0,0 @@ ---- -sidebar_position: 29 ---- - -# Get user by ID - -### Description - -Get a user's details. - -### URL - -`http://{Admin API IP}:{port#}/api/v1/users/{id}` - -| Parameter | Description/Comments | -| --- | --- | -| ID | (string) User's ID. Can be retrieved via [Get all users](./get-all-users.md) or [Get group's users](./get-group-users.md). | - -### HTTP method - -`GET` - -### Request - - -
-Headers - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -### Response - -
-Response example - -```javascript -{ - "Id": 14, - "Sid": "02358185-f2a7-465f-8d05-6052590896e2", - "Username": "john m", - "Email": "john@example.com", - "IsActive": true, - "IsAdmin": true, - "GroupIds": [ - -1, - 1 - ], - "TimeZoneInfoId": "Israel Standard Time", - "MaxReservationDuration": 1, - "MaxConcurrentReservations": 2, - "MaxScheduledSandboxes": 2, - "MaxOwnedBlueprints": 2, - "MaxSavedSandboxes": 0, - "DomainRoles": [ - { - "DomainId": "dbaf480c-09f7-46d3-a2e2-e35d3e374a16", - "role": "SystemAdmin" - }, - { - "DomainId": "357ff49d-4ffd-4b3e-bc07-041dd4fd0f33", - "role": "SystemAdmin" - }, - { - "DomainId": "8cd12c8d-6d40-4dfd-89da-a8d8dde00575", - "role": "SystemAdmin" - }, - { - "DomainId": "134b19d4-6c56-491d-b765-b61191c37f78", - "role": "SystemAdmin" - }, - { - "DomainId": "dcd91805-4e1c-48a8-88c7-d9805e876783", - "role": "SystemAdmin" - }, - { - "DomainId": "985c3306-fad7-4e85-a4e3-c44876149657", - "role": "SystemAdmin" - } - ], - "DomainName": null, - "ImportedSid": null -} -``` -
- -
-Response code - -```javascript -200 OK -``` -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-users-from-an-external-group.md b/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-users-from-an-external-group.md deleted file mode 100644 index 24e167ffe3..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/get-users-from-an-external-group.md +++ /dev/null @@ -1,97 +0,0 @@ ---- -sidebar_position: 34 ---- - -# Get users from an external group - -### Description - -Get users from a group in your active directory/LDAP. - -### URL - -`http://{Admin API IP}:{port#}/api/v1/integrations/IdentityManagement/groups/{groupName}/users` - -| Parameter | Description/Comments | -| --- | --- | -| groupName | Name of the group (e.g. "Azure\_DevOps\_Cloud\_Admins”). Can be retrieved via [Get all external groups](./get-all-external-groups.md). | - -### HTTP method - -`GET` - -### Request - -
-Headers - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -
-Query parameters - -| Parameter | Description/Comments | -| --- | --- | -| paginationProperties.limit | (integer) Number of results to return per page. Can retrieve up to 250 results per page. Default if unspecified: 50. Optional.
Default value : 50 | -| paginationProperties.sort-by | (string) Field to use to sort the results. Default value : Name | -| paginationProperties.sort-order | (integer) 1 for ascending, -1 for descending. Defaults to ascending. Optional.
Default value : 1 | -| paginationProperties.cursor | (string) When paging, the response will include a cursor field. Use the cursor to get next set of results. Optional. | -| paginationProperties.filter | (string) String to use to filter for domains containing this string. For example: "lab" would return lab1, testlab, olabo. Optional. | - -
- -### Response - - -
-Response example - -```javascript -{ - "Users": [ - { - "Id": "S-1-5-21-1487810946-2753822684-3978873285-7489", - "Username": "user1.s", - "DisplayName": "user1", - "DistinguishedName": "CN=user1 Vlasenko,OU=00.05.Quali-IL-Ops.And.IT,OU=00.00.Quali-IL-Departments,OU=00.00.Petah-Tikva,OU=00.00.Quali-IL,OU=03.QUALI.WW.CORPORATE.ORGANIZATION,DC=qualisystems,DC=local", - "Email": "user1@quali.com", - "DomainName": "QUALISYSTEMS" - }, - { - "Id": "S-1-5-21-1487810946-2753822684-3978873285-11090", - "Username": "user2.j", - "DisplayName": "user2", - "DistinguishedName": "CN=user2 Castro,OU=00.08.Quali-US.Texas-Ops.And.IT,OU=00.00.Quali-US.Texas-Departments,OU=00.00.Quali-US.Texas,OU=00.01.Quali-US,OU=03.QUALI.WW.CORPORATE.ORGANIZATION,DC=qualisystems,DC=local", - "Email": "user2@quali.com", - "DomainName": "QUALISYSTEMS" - }, - { - "Id": "S-1-5-21-1487810946-2753822684-3978873285-22202", - "Username": "user3.h", - "DisplayName": "user 3", - "DistinguishedName": "CN=user3 Poldian,OU=00.05.Quali-IL-Ops.And.IT,OU=00.00.Quali-IL-Departments,OU=00.00.Petah-Tikva,OU=00.00.Quali-IL,OU=03.QUALI.WW.CORPORATE.ORGANIZATION,DC=qualisystems,DC=local", - "Email": "user3.p@quali.com", - "DomainName": "QUALISYSTEMS" - } - ], - "Cursor": null -} - - -``` -
- - -
-Response code - -```javascript -200 OK -``` -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/import-external-users.md b/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/import-external-users.md deleted file mode 100644 index a4a107812b..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/import-external-users.md +++ /dev/null @@ -1,100 +0,0 @@ ---- -sidebar_position: 35 ---- - -# Import external users - -### Description - -Import users from your active directory/LDAP into CloudShell. - -### URL - -`http://{Admin API IP}:{port#}/api/v1/integrations/IdentityManagement/users` - -### HTTP method - -`POST` - -### Request - -
-Headers - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -
-Request body - -| Parameter | Description/Comments | -| --- | --- | -| UserName | External user name. Can be retrieved via [Get users from an external group](./get-users-from-an-external-group.md) | -| GroupName | External group name. Can be retrieved via [Get all external groups](./get-all-external-groups.md).
TIP: You should import by group name for larger organizations containing hundreds of users as importing all users may fail due to active directory/LDAP limitations. | - -
- -
-Request example - -```javascript -{ - "UserName": "James Porter", -} -``` - -By group name: - -```javascript -{ - "GroupName": "Azure_DevOps_Cloud_Admins" -} -``` -
- -### Response - -
-Response example - -```javascript -{ - "Users": [ - { - "Id": 11, - "Sid": "750ad20a-ccf7-4185-a1d9-9202bd108f71", - "Username": "automationuser", - "Email": null, - "IsActive": true, - "IsAdmin": false, - "GroupIds": [ - 1 - ], - "TimeZoneInfoId": null, - "MaxReservationDuration": 1440, - "MaxConcurrentReservations": 10, - "MaxScheduledSandboxes": 10, - "MaxOwnedBlueprints": 10, - "MaxSavedSandboxes": null, - "DomainRoles": [], - "DomainName": "QUALISYSTEMS", - "ImportedSid": "S-1-5-21-1487810946-2753822684-3978873285-7293" - } - ], - "Errors": [] -} -``` -
- -
-Response code - -```javascript -200 OK -``` -
diff --git a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/index.md b/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/index.md deleted file mode 100644 index 95a2310e13..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/index.md +++ /dev/null @@ -1,97 +0,0 @@ -# CloudShell Administration REST API - -This API enables developers to perform CloudShell administration tasks. This includes managing CloudShell users, groups, domains, license pools, associating resources and blueprints to other domains, and more. - -The following Administration APIs are available: - -**Login:** - -- [Get Administration API token](./get-admin-api-token.md) - -**Domains:** - -Manage CloudShell domains. - -- [Get all domains](./get-all-domains.md) -- [Create domain](./create-domain.md) -- [Get domain by ID](./get-domain-by-id.md) -- [Edit domain](./edit-domain.md) -- [Delete domain](./delete-domain.md) - -**DomainBlueprints:** - -Manage a domain's blueprints. - -- [Get domain's blueprints](./get-domain-blueprints.md) -- [Add blueprints to domain](./add-blueprints-to-domain.md) -- [Remove blueprints from domain](./remove-blueprint-from-domain.md) - -**DomainGroups:** - -Manage a domain's group associations. - -- [Get domain's groups](./get-domain-groups.md) -- [Add groups to domain](./add-groups-to-domain.md) -- [Remove groups from domain](./remove-groups-from-domain.md) - -**DomainResources:** - -Manage a domain's resources. - -- [Get domain's resources](./get-domain-resources.md) -- [Add resources to domain](./add-resource-to-domain.md) -- [Remove resources from domain](./remove-resource-from-domain.md) - -**Groups:** - -Manage CloudShell groups. - -- [Get all groups](./get-all-groups.md) -- [Create group](./create-group.md) -- [Get group by ID](./get-group-by-id.md) -- [Edit group](./edit-group.md) -- [Delete group](./delete-group.md) - -**GroupDomains:** - -Manage a group's domain associations. - -- [Get group's domains](./get-group-domains.md) -- [Add domains to group](./add-domains-to-group.md) -- [Remove domains from group](./remove-domains-from-group.md) - -**GroupUsers:** - -Manage a group's users. - -- [Get group's users](./get-group-users.md) -- [Add users to group](./add-users-to-group.md) -- [Remove users from group](./remove-users-from-group.md) - -**Users:** - -Manage CloudShell users. - -- [Get all users](./get-all-users.md) -- [Get user by ID](./get-user-by-id.md) -- [Create user](./create-user.md) -- [Edit user](./edit-user.md) -- [Delete user](./delete-user.md) - -**IdentityManagement:** - -Get and import users from your active directory or LDAP. - -- [Get all external groups](./get-all-external-groups.md) -- [Get users from an external group](./get-users-from-an-external-group.md) -- [Import external users](./import-external-users.md) - -**LicensePools:** - -Manage CloudShell license pools. - -- [Get all license pools](./get-all-license-pools.md) -- [Get license pool by ID](./get-license-pool-by-id.md) -- [Create license pool](./create-license-pool.md) -- [Edit license pool](./edit-license-pool.md) -- [Delete license pool](./delete-license-pool.md) \ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/remove-blueprint-from-domain.md b/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/remove-blueprint-from-domain.md deleted file mode 100644 index 8b57cf88c0..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/remove-blueprint-from-domain.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -sidebar_position: 10 ---- - -# Remove blueprints from domain - -### Description - -Removes one or more blueprints from a domain. - -### URL - -`http://{Admin API IP}:{port#}/api/v1/domains/{id}/blueprint` - -| Parameter | Description/Comments | -| --- | --- | -| ID | (string) Domain's ID. Can be retrieved via [Get all domains](./get-all-domains.md).| - -### HTTP method - -`DELETE` - -### Request - -
-Headers - - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -
-Request body - -| Parameter | Description/Comments | -| --- | --- | -| Id | (string) Blueprint's id. Can be retrieved via [Get domain's blueprints](./get-domain-blueprints.md). | - -
- -
-Request example -```javascript -{ - "Blueprints": [ - { - "Id": "369960ab-68ff-4fdc-bf02-054a96879812" - }, - { - "Id": "a0cd0b72-8ed6-41a8-a460-0ab6253aa6af" - } - ] -} -``` -
- -### Response - -
-Response example -```javascript -{ - "Errors": [] -} -``` -
- -
-Response code - -```javascript -200 OK -``` -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/remove-domains-from-group.md b/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/remove-domains-from-group.md deleted file mode 100644 index efff459ceb..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/remove-domains-from-group.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -sidebar_position: 24 ---- - -# Remove domains from group - -### Description - -Removes one or more domains from a given group. - -### URL - -`http://{Admin API IP}:{port#}/api/v1/groups/{id}/domains` - -| Parameter | Description/Comments | -| --- | --- | -| ID | (string) Group's ID. Can be retrieved via [Get all groups](./get-all-groups.md). | - -### HTTP method - -`DELETE` - -### Request - - -
-Headers - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -
-Request body - -| Parameter | Description/Comments | -| --- | --- | -| Id | (string) Domain's id. Can be retrieved via [Get group's domains](./get-group-domains.md). | -
- -
-Request example - -```javascript -{ - "Domains": [ - { - "Id": "5c966733-c496-486d-8b1a-963c13e9a103" - }, - { - "Id": "8cd12c8d-6d40-4dfd-89da-a8d8dde00575" - }, - ] -} -``` -
- -### Response - -
-Response example - -```javascript -{ - "Errors": [] -} -``` -
- -
-Response code - -```javascript -200 OK -``` -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/remove-groups-from-domain.md b/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/remove-groups-from-domain.md deleted file mode 100644 index 2b98b4a9c8..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/remove-groups-from-domain.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -sidebar_position: 13 ---- - -# Remove groups from domain - -### Description - -Removes one or more blueprints from a domain. - -### URL - -`http://{Admin API IP}:{port#}/api/v1/domains/{id}/groups` - -| Parameter | Description/Comments | -| --- | --- | -| ID | (string) Domain's ID. Can be retrieved via [Get all domains](./get-all-domains.md).| - -### HTTP method - -`DELETE` - -### Request - -
-Headers - - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -
-Request body - -| Parameter | Description/Comments | -| --- | --- | -| Id | (string) Group's id. Can be retrieved via [Get all groups](./get-all-groups.md). | - -
- -
-Request example - -```javascript -{ - "Groups": [ - { - "Id": 1 - } - ] -} -``` -
- -### Response - -
-Response example - -```javascript -{ - "Errors": [] -} -``` -
- -
-Response code - -```javascript -200 OK -``` -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/remove-resource-from-domain.md b/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/remove-resource-from-domain.md deleted file mode 100644 index de203d483a..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/remove-resource-from-domain.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -sidebar_position: 16 ---- - -# Remove resources from domain - -### Description - -Removes resources/sub-resources from domain by id. - -### URL - -`http://{Admin API IP}:{port#}/api/v1/domains/{id}/resources` - -| Parameter | Description/Comments | -| --- | --- | -| ID | (string) Domain's ID. Can be retrieved via [Get all domains](./get-all-domains.md).| - -### HTTP method - -`DELETE` - -### Request - -
-Headers - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -
-Request body - -| Parameter | Description/Comments | -| --- | --- | -| Id | (string) Resource id (not ParentId). Can be retrieved via [Get domain's resources](./get-domain-resources.md). | -| RemoveAssocations | (bool) Unbooks the resource in the domain. Default is **true**. | -
- -
-Request example - -```javascript -{ - - "Resources": [ - { - "Id": "", - "RemoveAssociations": false - }, - { - "Id": "", - "RemoveAssociations": false - } - ] -} -``` -
- - -### Response - -
-Request example - -```javascript -{ - "Errors": [] -} -``` -
- -
-Response code - -200 OK - -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/remove-users-from-group.md b/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/remove-users-from-group.md deleted file mode 100644 index 8ede718de6..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-admin-rest-api/remove-users-from-group.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -sidebar_position: 27 ---- - -# Remove users from group - -### Description - -Removes one or more users from a group. - -### URL - -`http://{Admin API IP}:{port#}/api/v1/groups/{id}/Users` - -| Parameter | Description/Comments | -| --- | --- | -| id | (string) Group's id. Can be retrieved via [Get all groups](./get-all-groups.md). | - -### HTTP method - -`DELETE` - -### Request - -
-Headers - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -
-Request body - -| Parameter | Description/Comments | -| --- | --- | -| Id | (string) User's id. Can be retrieved via [Get group's users](./get-group-users.md). | -
- -
-Request example - -```javascript -{ - "Users": [ - { - "Id": 0 - } - ] -} -``` -
- -### Response - -
-Response example - -```javascript -{ - "Errors": [] -} -``` -
- -
-Response code - -```javascript -200 OK -``` -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-api-overview.md b/versioned_docs/version-2023.3/api-guide/cs-api-overview.md deleted file mode 100644 index c897e29a64..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-api-overview.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -sidebar_position: 1 ---- - -# CloudShell API Overview - -Quali's CloudShell APIs allow you to interact with and automate CloudShell for enhanced, customizable platform management, functionality, and usability. - -CloudShell applications have multiple APIs, which enable you to get services from the Quali Server and to utilize CloudShell's capabilities for Shell automation, blueprint orchestration, sandbox deployment and test automation. Using Quali's CloudShell APIs, you can integrate between CloudShell and third-party applications in the DevOps ecosystem, such as a continuous integration solution like Jenkins (or any web application). - -CloudShell APIs can be classified as outbound and inbound APIs. In other words, APIs that are used to serve CloudShell in a wider context (Sandbox API), like CI/CD processes, and APIs used to extend CloudShell automation and orchestration. - -- **CloudShell Administration API**: Used for managing domains, identities and license pools -- **Sandbox API**: Used for consuming and interacting with public blueprints and sandboxes -- **Automation API**: Used for sandbox orchestration and administrative operations in CloudShell -- **Quali API**: Used for managing automation suites and sandbox attachments, and importing and exporting blueprint packages -- **Packaging API**: Used for modifying blueprint packages -- **New Job Scheduling API**: Used for managing New Job Scheduling servers and suite executions - -For additional details about each API, see below. - -## CloudShell Administration REST API - -A RESTful API that allows your admins to perform CloudShell administration tasks remotely, without having to open Resource Manager Client. As such, this API allows you to perform all the tasks provided by Resource Manager Client. This includes managing domains, groups, users, license pools, and also share blueprints/resources among different domains. For details, see [CloudShell Administration REST API](./cs-admin-rest-api/index.md). - -## Sandbox API - -A RESTful API designed to facilitate the consumption of public blueprints for CI and DevOps activities. It enables you to automate the deployment of CloudShell sandboxes and interact with sandbox components, and integrates with CI platforms such as Jenkins or Jetbrains TeamCity. CloudShell Sandbox API comes with an API gateway, which enables to interact with CloudShell without direct access to the server. For details, see [CloudShell Sandbox API](./cs-sandbox-api/index.md). - -## Automation API - -This API is an official Python package utilizing XMLRPC protocol to communicate with CloudShell. It's designed to automate CloudShell from Python scripts and drivers. The CloudShell Automation API is based on the XML RPC API. For details, see the [CloudShell Automation API](./shell-dev-blueprint-design-api/cs-automation-api.md) article, or check out our API guides. The Python package [API guide](pathname:///api-docs/2023.3/Python-API/) includes additional information like return objects and is intended for experienced Python developers, while for beginners, we recommend to use the [TestShell API Python Reference Guide](pathname:///api-docs/2023.3/TestShell-API/TestShell%20Python%20API.html), which features an easy to understand format and code examples. - -To learn how to implement this API in .NET or XML RPC, see [TestShell API](./shell-dev-blueprint-design-api/testshell-api.md). - -## Quali API - -A RESTful API designed to control the scheduling and queuing of test automation suites. Quali API can be used in several protocols (C#, TCL). This API is also used for importing and exporting packages and Shells, getting sandbox attachments, and execution server details. For details, see [Quali API](./quali-api.md), or check out the appropriate Quali API reference guide: - -- [Quali API Library Reference Guide](pathname:///api-docs/2023.3/Quali-API/Quali%20API%20Library.html): is available by default in the TestShell Studio tools and can be added as a DLL asset to a project in CloudShell Authoring. -- [Quali API C# Reference Guide](pathname:///api-docs/2023.3/Quali-API/Quali%20cSharp%20API.html "Quali API C# Reference Guide"): for .NET -- [Quali API REST Reference Guide](pathname:///api-docs/2023.3/Quali-API/Quali%20REST%20API.html "Quali API REST Reference Guide"): for APIs using the REST client - -The default port for Quali API in the Quali Server is 9000. - -## Packaging API - -Designed to automate the creation and configuration of CloudShell blueprint packages. For details, see [Packaging API](./packaging-api/index.md). - -## New Job Scheduling API - -A RESTful API dedicated to CloudShell's New Job Scheduling tool. This API is used to automate the execution of test suites. For details, see [New Job Scheduling REST API](./new-jss-rest-api/index.md). - -## Implementation Examples - -Code examples are available in the Dev Guide's [Available CloudShell APIs](../devguide/available-cs-api/index.md) diff --git a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/_category_.json b/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/_category_.json deleted file mode 100644 index 4e1ef10b8e..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "CloudShell Sandbox API", - "position": 3 -} \ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/_category_.json b/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/_category_.json deleted file mode 100644 index 1ce5ceab93..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Cloudshell Sandbox API Version 1 Reference Guide", - "position": 2 -} \ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/blueprint-identifier.md b/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/blueprint-identifier.md deleted file mode 100644 index cf2063b9f0..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/blueprint-identifier.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -sidebar_position: 3 ---- - -# Blueprint Identifier - -### Description - -Gets details and available actions for a particular public blueprint associated with the user's domain. - -### URL - -`http://{CloudShell Sandbox API Gateway IP address}:{port#}/api/v1/blueprints/{blueprint_identifier}` - -| Parameter | Description/Comments | -| --- | --- | -| `blueprint_identifier` | The name or id of the blueprint (`string`). Can be retrieved via [blueprints](./blueprints.md). | - -### HTTP method - -`GET` - -### Request - -
-Headers - -Example header format for the `blueprint identifier` method: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -### Response - -
-Response example - -The example response of the `blueprint identifier` method is similar to that of the [blueprints](./blueprints.md) method. However, in this case the output properties are displayed for a particular blueprint (as opposed to multiple ones), and includes any published blueprint and resource input parameters. The API can call a blueprint by name or ID. -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/blueprint-start.md b/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/blueprint-start.md deleted file mode 100644 index 109b9cc178..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/blueprint-start.md +++ /dev/null @@ -1,183 +0,0 @@ ---- -sidebar_position: 4 ---- - -# Blueprint Start - -### Description - -Creates a new sandbox from a specific public blueprint associated with the user's domain. Returns details about the sandbox such as ID and the actions that can be performed on the sandbox. (After the sandbox is created, you can view it in the Sandboxes dashboard in CloudShell Portal.) - -:::note Notes - -- You cannot reserve blueprints if there are conflicts with the reservation timeslot. For additional information see [Creating Sandboxes](../../../portal/sandboxes/creating-sandboxes.md). -- This method does not support persistent sandboxes. As such, starting a persistent sandbox will deploy a regular sandbox. - -::: - -### URL - -`http://{CloudShell Sandbox API Gateway IP address}:{port#}/api/v1/blueprints/{blueprint_identifier}/start` - -| Parameter | Description/Comments | -| --- | --- | -| `blueprint_identifier` | The name or id of the blueprint (`string`). Can be retrieved via [blueprints](./blueprints.md). | - -### HTTP method - -`POST` - -### Request - -
-Headers - -Example header format for the `blueprint start` method: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -
-Request body - -The scheduling and input parameters of the sandbox in JSON format. The elements of the `blueprint start` method include: - -| Parameter | Description/Comments | -| --- | --- | -| `name` | The name of the sandbox. `(string)`
If you do not specify a name, you will get the following error message: "Reservation name and duration must be specified in request body". | -| `duration` | The duration for this sandbox. Time must be specified in ISO 8601 format (for example PT23H). `(string)`
If you do not specify the duration, you will get the following error message: "Duration format must be a valid 'ISO 8601' (e.g 'PT23H' or 'PT4H2M')". | -| `params` | Any published input parameters defined for the blueprint and its abstract resources. Input parameters that have no default must be included in the request. Abstract resource input parameters must be associated to global inputs (specify the global inputs in the request). `(Array)`
If you do not specify the input parameters, you will get the following error message: "Blueprint has invalid inputs". | -| `permitted_users` | Users permitted to use the sandbox. Permitted users must have access to the logged-in domain. | - -
- -
-Request example - -```javascript -{ - "name":"testbp-sndbx", - "duration":"PT2H5M", - "params":[ - { - "name":"global1", - "value":"value1" - }, - { - "name":"abstract resource 1.attribute4", - "value":"some value" - }, - { - "name":"abstract resource 1/sub resource.attribute4", - "value":"some value" - } - ], - "permitted_users":[ - "john.s", - "emily.b", - "lucas.w" - ] -} -``` -
- -### Response - -
-Response example - -The `blueprint start` method returns details about the new sandbox. The output includes details about the sandbox ID and the actions that can be performed on the sandbox: - -```javascript -{ - "name":"Test Blprnt2", - "id":"994bd534-740a-45f5-851f-ff452f2a17a2", - "state":"Ready", - "type":"Sandbox", - "components":[ - { - "name":"MySwitch", - "type":"Resource", - "component_type":"Generic Switch Model", - "description":"", - "attributes":[ - { - "type":"string", - "name":"vendor", - "value":"" - } - ], - "connection_interfaces":[ - { - "name":"Telnet", - "url":"" - } - ], - } - ], - "apps":[ - { - "name":"MyApp", - "type":"Application", - "description":"" - } - ], - "_links":{ - "self":{ - "href":"/sandboxes/994bd534-740a-45f5-851f-ff452f2a17a2", - "method":"GET", - "name":"get a sandbox' details", - "templated":true - }, - "stop":{ - "href":"/sandboxes/994bd534-740a-45f5-851f-ff452f2a17a2/stop", - "method":"POST", - "name":"stop a sandbox", - "templated":true - }, - "all":{ - "href":"/sandboxes", - "method":"GET", - "name":"get all sandboxes" - } - } -} -``` -
- -
-Response summary - -The response output properties of the `blueprint start` method are described in the following table. - -| Property | Sub Property | Description/Comments | -| --- | --- | --- | -| `name` |   | The name of the sandbox. `(string)` | -| `id` |   | The ID of the sandbox. `(string)` | -| `state` |   | The current state of the sandbox. Possible values: Pending, Setup, Ready, Teardown, Error, Ended. `(string)` | -| `type` |   | The sandbox type ("Sandbox"). `(string)` | -| `components` |   | The resource model of the sandbox. `(array)` | -|   | `name` | The name of the component. `(string)` | -|   | `type` | The component ("resource", "application", or "service"). `(string)` | -|   | `component_type` | The resource model. `(string)` | -|   | `description` | A short description of the resource. | -|   | `attributes` | The attributes of the resource model. `(array)` | -|   | `type` | The attribute type. `(string)` | -|   | `name` | The attribute name. `(string)` | -|   | `value` | The attribute value. `(string)` | -|   | `connection_interfaces` | The connection interfaces of the resource. `(array)` | -|   | `name` | The name of the connection interface. `(string)` | -|   | `url` | The URL of the connection interface of the resource. `(string)` | -| `apps` |   | The Apps of the sandbox. `(string)` | -|   | `type` | The App type ("Application"). `(string)` | -|   | `name` | The name of the App (for example, App1). `(string)` | -|   | `description` | A short description of the App. `(string)` | -| `_links` |   | The actions that can be performed on the sandbox in the user's domain: | -|   | `self` | Provides a link to get the details for the sandbox via a `GET` request. | -|   | `stop` | Provides a link to get stop the sandbox via a `POST` request. | -|   | `all` | Provides a link to get all available sandboxes according to the user's domain via a `GET` request. | - -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/blueprints.md b/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/blueprints.md deleted file mode 100644 index 5d6b0a7af0..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/blueprints.md +++ /dev/null @@ -1,95 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Blueprints - -### Description - -Gets a list of all the public blueprints associated with the user's domain. Returns blueprint details related to the user's domain and permissions, such as the blueprint GUID and the actions that can be performed on each blueprint. - -:::note -In CloudShell Portal, make sure to set the blueprints to "Public" as the API does not work with private blueprints. -::: - -### URL - -`http://{CloudShell Sandbox API Gateway IP address}:{port#}/api/v1/blueprints` - -### HTTP method - -`GET` - -### Request - -
-Headers - -Example header format for the `blueprints` method: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -### Response - -
-Response example - -The `blueprints` method returns a list of all the blueprints associated with the user's domain and permissions and the actions that can be performed on the individual blueprints: - -```javascript - { - "name":"WebApi", - "id":"c6abccb6-71eb-423b-b754-477c11d6bc2a", - "description":null, - "availability":"Not Available", - "categories":[ - - ], - "estimated_setup_duration":"PT25M", - "_links":{ - "self":{ - "href":"/blueprints/c6abccb6-71eb-423b-b754-477c11d6bc2a", - "method":"GET", - "name":"get a blueprint's details", - "templated":true - }, - "all":{ - "href":"/blueprints", - "method":"GET", - "name":"get available blueprints according to the user domain" - }, - "create_sandbox":{ - "href":"/blueprints/c6abccb6-71eb-423b-b754-477c11d6bc2a/start", - "method":"POST", - "name":"create a sandbox from the blueprint", - "templated":true - } - } - } - -``` -
- -
-Response summary - -The response output properties of the `blueprints` method are described in the following table. - -| Property | Sub Property | Description/Comments | -| --- | --- | --- | -| `name` |   | The name of the blueprint. `(string)` | -| `id` |   | The ID of the blueprint. `(string)` | -| `description` |   | A short description about the blueprint. `(string)` | -| `availability` |   | The availability of the blueprint.
Possible values: Available Now, Not Available. `(string)` | -| `categories` |   | The categories assigned to the blueprint. `(string)` | -| `estimated_setup_duration` |   | The estimated setup duration of the sandbox. The estimated duration's value is specified in ISO 8601 format. | -| `_links` |   | The actions that can be performed on the blueprints in the user's domain: | -|   | `self` | Provides a link to get the blueprint's details via a `GET` request. | -|   | `all` | Provides a link to get all available blueprints according to the user's domain via a `GET` request. | -|   | `create_sandbox` | Provides a link to create a sandbox from the blueprint via a `POST` request. | - -
diff --git a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/index.md b/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/index.md deleted file mode 100644 index e55192aef9..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/index.md +++ /dev/null @@ -1,9 +0,0 @@ -# CloudShell Sandbox API Version 1 Reference Guide - - -To use the live documentation pages, log in to the **Authentication API** page using your user credentials and the name of the appropriate CloudShell domain. Then, access the Sandbox API page to execute its methods on the public blueprints and sandboxes in the domain. - -:::note - Sandbox API can be configured to run in secure mode. See [Configuring Sandbox API to Work in HTTPS Mode](../../../install-configure/cloudshell-suite/secure-communication/config-secured-sandbox-api.md). -::: - diff --git a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/login.md b/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/login.md deleted file mode 100644 index 0a986e30ce..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/login.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -sidebar_position: 1 ---- - - -# Login - -### Description - -Logs the user in to CloudShell, authenticates the user’s credentials and domain, and returns an authorization token to be used with all subsequent requests. Requests that contain this token return information relevant for the specified domain, per the user's permissions. - -### URL - -`http://{CloudShell Sandbox API Gateway IP address}:{port#}/api/login` - -### HTTP method - -`PUT` - -### Request - -
-Headers - -Example header format for the `login` method: - -`Content-Type: application/json` - -
- -
-Request body - -The user credentials (in JSON format). The parameters of the `login` method include: - -| Parameter | Description | -| --- | --- | -| `username` | The user's name. `(string)` | -| `password` | The user's password. `(string)` | -| `domain` | The user's domain. `(string)` | - -
- -
-Request example - -Example request input for the `login` method in JSON format: - -```javascript -{ - "username":"admin", - "password":"admin", - "domain":"Global" -} -``` -
- -### Response - -
-Response example - -The following is a sample authorization token returned by the `login` method: - -`"a0IAmINiGUmVsoJS9IeG1A=="` - -
- -
-Response summary - -The `login` method returns an authorization token that must be added to the header of each API method. - -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/sandbox-identifier.md b/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/sandbox-identifier.md deleted file mode 100644 index 959cbcadaf..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/sandbox-identifier.md +++ /dev/null @@ -1,149 +0,0 @@ ---- -sidebar_position: 5 ---- - -# Sandbox Identifier - -### Description - -Gets details and available actions for a particular sandbox. - -### URL - -`http://{CloudShell Sandbox API Gateway IP address}:{port#}/api/v1/sandboxes/{sandbox_identifier}` - -| Parameter | Description/Comments | -| --- | --- | -| `sandbox_identifier` | The id of the sandbox (`string`). Can be retrieved via [sandboxes](./sandboxes.md), [blueprint start](./blueprint-start.md) and from the sandbox ID segment in the CloudShell Portal URL. | - -### HTTP method - -`GET` - -### Request - - -
-Headers - -Example header format for the `sandbox identifier` method: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -### Response - -
-Response example - -The `sandbox identifier` method returns details about a particular sandbox (as opposed to multiple ones). The output includes details about the sandbox ID and the actions that can be performed on the sandbox: - -```javascript -{ - "name":"Test Blprnt 2", - "id":"994bd534-740a-45f5-851f-ff452f2a17a2", - "state":"Ready", - "setup_stage":"Provisioning", - "type":"Sandbox", - "components":[ - { - "name":"MySwitch", - "type":"Resource", - "component_type":"Generic Switch Model", - "description":"", - "attributes":[ - { - "type":"string", - "name":"vendor", - "value":"" - } - ], - "connection_interfaces":[ - { - "name":"Telnet", - "url":"" - } - ], - } - ], - "apps":[ - { - "name":"MyApp", - "type":"Application", - "description":"" - } - ], - "permitted_users":[ - { - "john.s", - "emily.b", - "lucas.w" - } - ], - "_links":{ - "self":{ - "href":"/sandboxes/994bd534-740a-45f5-851f-ff452f2a17a2", - "method":"GET", - "name":"get a sandbox' details", - "templated":true - }, - "stop":{ - "href":"/sandboxes/994bd534-740a-45f5-851f-ff452f2a17a2/stop", - "method":"POST", - "name":"stop a sandbox", - "templated":true - }, - "all":{ - "href":"/sandboxes", - "method":"GET", - "name":"get all sandboxes" - } - } -} -``` - -
- -
-Response summary - -The response output properties of the `sandbox identifier` method are described in the following table. - -| Property | Sub Property | Description/Comments | -| --- | --- | --- | -| `name` |   | The name of the sandbox. `(string)` | -| `id` |   | The ID of the sandbox. `(string)` | -| `blueprint_id` |   | The ID of the blueprint on which the sandbox is based. | -| `description` |   | A description of the sandbox `(string)` | -| `start_time` |   | The time when the sandbox started `(string)` | -| `end_time` |   | the time when the sandbox ended or is expected to end `(string)` | -| `state` |   | The current state of the sandbox. Possible values: Pending, Setup, Ready, Teardown, Error, Ended. `(string)` | -| `setup_stage` |   | (If the sandbox includes orchestration scripts) The current setup stage of the sandbox. Possible values: Provisioning, Connectivity, Configuration, Ended, None. `(string)` | -| `type` |   | The sandbox type ("Sandbox"). `(string)` | -| `components` |   | The resource model of the sandbox. `(array)` | -|   | `name` | The name of the component. `(string)` | -|   | `type` | The component ("resource", "application", or "service"). `(string)` | -|   | `component_type` | The resource model. `(string)` | -|   | `description` | A short description of the resource. | -|   | `attributes` | The attributes of the resource model. `(array)` | -|   | `type` | The attribute type. `(string)` | -|   | `name` | The attribute name. `(string)` | -|   | `value` | The attribute value. `(string)` | -|   | `connection_interfaces` | The connection interfaces of the resource. `(array)` | -|   | `name` | The name of the connection interface. `(string)` | -|   | `url` | The URL of the connection interface of the resource. `(string)` | -| `apps` |   | The Apps of the sandbox. `(string)` | -|   | `type` | The App type ("Application"). `(string)` | -|   | `name` | The name of the App (for example, App1). `(string)` | -|   | `description` | A short description of the App. `(string)` | -| `permitted_users` |   | Sandbox's permitted users list. Specify as a comma-separated list of the CloudShell user names. | -| `_links` |   | The actions that can be performed on the sandbox in the user's domain: | -|   | `self` | Provides a link to get the details for the sandbox via a `GET` request. | -|   | `stop` | Provides a link to stop the sandbox via a `POST` request. | -|   | `all` | Provides a link to get all available sandboxes according to the user's domain, via a `GET` request. | -|   | `blueprint` | Provides a link to get the details of the sandbox's blueprint via a `GET` request. | - -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/sandbox-stop.md b/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/sandbox-stop.md deleted file mode 100644 index 85caedfee2..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/sandbox-stop.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -sidebar_position: 7 ---- - -# Sandbox Stop - -### Description - -Ends a sandbox per specified sandbox ID. Returns a successful response when the sandbox is stopped. - -### URL - -`http://{CloudShell Sandbox API Gateway IP address}:{port#}/api/v1/sandboxes/{sandbox_identifier}/stop` - -| Parameter | Description/Comments | -| --- | --- | -| `sandbox_identifier` | The id of the sandbox (`string`). Can be retrieved via [sandboxes](./sandboxes.md), [blueprint start](./blueprint-start.md) and from the sandbox ID segment in the CloudShell Portal URL. | - -### HTTP method - -`POST` - -### Request - -
-Headers - -Example header format for the `sandbox stop` method: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -### Response - -
-Response example - -A successful response is displayed when the `sandbox stop` method ends the sandbox: - -```javascript -{ - "result":"success", - "_links":{ - "all":{ - "href":"/sandboxes", - "method":"GET" - } - } -} -``` -
- diff --git a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/sandboxes.md b/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/sandboxes.md deleted file mode 100644 index eb8b11a368..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/sandboxes.md +++ /dev/null @@ -1,100 +0,0 @@ ---- -sidebar_position: 6 ---- - -# Sandboxes - -### Description - -Gets a list of all the running and pending sandboxes (regular and persistent sandboxes) associated with the user's domain, as well as each sandbox's details, including the sandbox ID and the available actions that can be performed on it. It can also show completed sandboxes related to the user's domain. - -### URL - -`http://{CloudShell Sandbox API Gateway IP address}:{port#}/api/v1/sandboxes` - -### HTTP method - -`GET` - -### Request - -Headers - -Example header format for the `sandboxes` method: - -`Authorization: Basic ` - -`Content-Type: application/json` - -:::note -To also include completed sandboxes in the response, add the parameter `show_historic` to the request URL: -The default value for this parameter is `false`. -::: - -### Response - -
-Response example - -The `sandboxes` method returns a list of all the sandboxes and the actions that can be performed on each sandbox. - -```javascript -[ - { - "name":"Test Blprnt2", - "id":"11491c80-6f79-4e9c-b592-78242c6dc698", - "description":"This is a list of sandboxes in this user domain", - "state":"Ready", - "blueprint":{ - "name":"Test Blprnt2", - "id":"2f4c972b-5c64-4b08-bae4-73408d7b171d" - }, - "_links":{ - "self":{ - "href":"/sandboxes/11491c80-6f79-4e9c-b592-78242c6dc698", - "method":"GET", - "name":"get a sandbox' details", - "templated":true - }, - "components":{ - "href":"/sandboxes/11491c80-6f79-4e9c-b592-78242c6dc698/components", - "method":"GET" - }, - "stop":{ - "href":"/sandboxes/11491c80-6f79-4e9c-b592-78242c6dc698/stop", - "method":"POST", - "name":"stop a sandbox", - "templated":true - }, - "all":{ - "href":"/sandboxes", - "method":"GET", - "name":"get all sandboxes" - } - } - } -] -``` - -
- -
-Response summary - -The response output properties of the `sandboxes` method are described in the following table. - -| Property | Sub Property | Description/Comments | -| --- | --- | --- | -| `name` |   | The name of the sandbox. `(string)` | -| `id` |   | The ID of the sandbox. `(string)` | -| `description` |   | A text description of the sandbox. `(string)` | -| `state` |   | The current state of the sandbox. Possible values: Pending, Setup, Ready, Teardown, Error, Ended. `(string)` | -| `blueprint` |   | The details of the sandbox's blueprint `(Array)` | -|   | `name` | The name of the blueprint `(string)` | -|   | `id` | The id of the blueprint `(string)` | -| `_links` |   | The actions that can be performed on a sandbox in the user's domain: | -|   | `self` | Provides a link to get a specific sandbox's details per specified sandbox ID via a `GET` request. | -|   | `stop` | Provides a link to end an active sandbox per specified sandbox ID via a `POST` request. | -|   | `all` | Provides a link to get all available sandboxes according to the user's domain via a `GET` request. | - -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/_category_.json b/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/_category_.json deleted file mode 100644 index fe81e3e79a..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Cloudshell Sandbox API Version 2 Reference Guide", - "position": 3 -} \ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/blueprint-identifier.md b/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/blueprint-identifier.md deleted file mode 100644 index f7dc53ca5f..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/blueprint-identifier.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -sidebar_position: 3 ---- - -# Blueprint Identifier - -### Description - -Gets details and available actions for a particular public blueprint associated with the user's domain. - -### URL - -`http://{CloudShell Sandbox API Gateway IP address}:{port#}/api/v2/blueprints/{blueprint_identifier}` - -| Parameter | Description/Comments | -| --- | --- | -| `blueprint_identifier` | The name or id of the blueprint (`string`). Can be retrieved via [blueprints](./blueprints.md). | - -### HTTP method - -`GET` - -### Request - -
-Headers - -Example header format for the `blueprint identifier` method: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -### Response - -
-Response example - -The example response of the `blueprint identifier` method is similar to that of the [blueprints](./blueprints.md) method. However, in this case the output properties are displayed for a particular blueprint (as opposed to multiple ones), and includes any published blueprint and resource input parameters. The API can call a blueprint by name or ID. - -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/blueprint-start-persistent.md b/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/blueprint-start-persistent.md deleted file mode 100644 index b0290dff6e..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/blueprint-start-persistent.md +++ /dev/null @@ -1,186 +0,0 @@ ---- -sidebar_position: 5 ---- - -# Blueprint Start Persistent - -### Description - -Creates a new persistent sandbox from a specific public persistent blueprint associated with the user's domain. Returns details about the persistent sandbox such as ID and the actions that can be performed on the sandbox. (After the sandbox is created, you can view it in the Sandboxes dashboard in CloudShell Portal.) - -:::note -- You cannot reserve blueprints if there are conflicts with the reservation timeslot. For additional information see [Creating Sandboxes](../../../portal/sandboxes/creating-sandboxes.md). -- This method does not support regular sandboxes. As such, attempting to start a regular blueprint will end in error. -::: - -### URL - -`http://{CloudShell Sandbox API Gateway IP address}:{port#}/api/v2/blueprints/{blueprint_identifier}/start-persistent` - -| Parameter | Description/Comments | -| --- | --- | -| `blueprint_identifier` | The name or id of the blueprint (`string`). Can be retrieved via [blueprints](./blueprints.md). | - -### HTTP method - -`POST` - -### Request - -
-Headers - -Example header format for the `blueprint start` method: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -
-Request body - -The scheduling and input parameters of the sandbox in JSON format. The elements of the `blueprint start` method include: - -| Parameter | Description/Comments | -| --- | --- | -| `name` | The name of the sandbox. `(string)`
If you do not specify a name, you will get the following error message: "Reservation name must be specified in request body". | -| `params` | Any published input parameters defined for the blueprint and its abstract resources. Input parameters that have no default must be included in the request. Abstract resource input parameters must be associated to global inputs (specify the global inputs in the request). `(Array)`
If you do not specify the input parameters, you will get the following error message: "Blueprint has invalid inputs". | -| `permitted_users` | Users permitted to use the sandbox. Permitted users must have access to the logged-in domain. | - -
- -
-Request example - -```javascript -{ - "name": "Persistent sandbox name", - "params": [ - ], - "permitted_users": [ - "steven", - "julia" - ] -} -``` -
- -### Response - -
-Response example - -The `blueprint start` method returns details about the new sandbox. The output includes details about the sandbox ID and the actions that can be performed on the sandbox: - -```javascript -{ - "name": "Persistent sandbox name", - "id": "8d653d03-9e12-47ce-9d30-19cae1a239c3", - "blueprint_id": "b4852f4b-d2bd-4dbc-b03a-f943941a9053", - "description": "Blueprint with preconfigured setup & teardown processes.Deploys Apps and resolves connections on Setup, and deletes App VMs on Teardown", - "start_time": "2021-08-02T09:22:00Z", - "end_time": null, - "state": "BeforeSetup", - "type": "Sandbox", - "components": [ - { - "id": "6644dc07-1cc1-4b28-9879-0c704f106c2b", - "name": "cloudshell-latest", - "type": "Application", - "component_type": "Generic App Model", - "app_lifecycle": "Undeployed", - "_links": { - "self": { - "href": "/sandboxes/8d653d03-9e12-47ce-9d30-19cae1a239c3/components/6644dc07-1cc1-4b28-9879-0c704f106c2b", - "method": "GET" - } - } - }, - { - "id": "92259d2a-3928-46ec-9da8-65eccc19b7f8", - "name": "dbs-latest-cloudshell", - "type": "Application", - "component_type": "Generic App Model", - "app_lifecycle": "Undeployed", - "_links": { - "self": { - "href": "/sandboxes/8d653d03-9e12-47ce-9d30-19cae1a239c3/components/92259d2a-3928-46ec-9da8-65eccc19b7f8", - "method": "GET" - } - } - } - ], - "parameters": [], - "setup_stage": "None", - "permitted_users": [ - "admin", - "julia", - "steven" - ], - "_links": { - "self": { - "href": "/sandboxes/8d653d03-9e12-47ce-9d30-19cae1a239c3", - "method": "GET" - }, - "components": { - "href": "/sandboxes/8d653d03-9e12-47ce-9d30-19cae1a239c3/components", - "method": "GET" - }, - "output": { - "href": "/sandboxes/8d653d03-9e12-47ce-9d30-19cae1a239c3/output", - "method": "GET" - }, - "stop": { - "href": "/sandboxes/8d653d03-9e12-47ce-9d30-19cae1a239c3/stop", - "method": "POST" - }, - "all": { - "href": "/sandboxes", - "method": "GET" - }, - "blueprint": { - "href": "/blueprints/b4852f4b-d2bd-4dbc-b03a-f943941a9053", - "method": "GET" - } - } -} -``` -
- -
-Response summary - -The response output properties of the `blueprint start` method are described in the following table. - -| Property | Sub Property | Description/Comments | -| --- | --- | --- | -| `name` |   | The name of the sandbox. `(string)` | -| `id` |   | The ID of the sandbox. `(string)` | -| `state` |   | The current state of the sandbox. Possible values: Pending, BeforeSetup, Setup, Ready, Teardown, Error, Ended. `(string)` | -| `type` |   | The sandbox type ("Sandbox"). `(string)` | -| `components` |   | The resource model of the sandbox. `(array)` | -|   | `id` | Component's unique ID. `(string)` | -|   | `name` | The name of the component. `(string)` | -|   | `description` | A short description of the resource. | -|   | `type` | The component ("resource", "application", or "service"). `(string)` | -|   | `component_type` | The resource model. `(string)` | -|   | `attributes` | The attributes of the resource model. `(array)` | -|   | `type` | The attribute type. `(string)` | -|   | `name` | The attribute name. `(string)` | -|   | `value` | The attribute value. `(string)` | -|   | `connection_ interfaces` | The connection interfaces of the resource. `(array)` | -|   | `name` | The name of the connection interface. `(string)` | -|   | `url` | The URL of the connection interface of the resource. `(string)` | -|   | `app_lifecycle` | (Available for App components) The current state of the App ("undeployed"/"deployed"). `(string)` | -|   | `_links` | The actions that can be performed on the sandbox component (Get component details). | -| `_links` |   | The actions that can be performed on the sandbox in the user's domain: | -|   | `self` | Provides a link to get the details for the sandbox via a `GET` request. | -|   | `components` | Provides a link to get all components in the sandbox via a `GET` request. | -|   | `stop` | Provides a link to get stop the sandbox via a `POST` request. | -|   | `all` | Provides a link to get all available sandboxes according to the user's domain via a `GET` request. | -| `parameters` |   | Published inputs and additional info. | -| `permitted_users` |   | Users permitted to use the sandbox, including the owner. | - -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/blueprint-start.md b/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/blueprint-start.md deleted file mode 100644 index e027a1cded..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/blueprint-start.md +++ /dev/null @@ -1,158 +0,0 @@ ---- -sidebar_position: 4 ---- - - -# Blueprint Start - -### Description - -Creates a new sandbox from a specific public blueprint associated with the user's domain. Returns details about the sandbox such as ID and the actions that can be performed on the sandbox. (After the sandbox is created, you can view it in the Sandboxes dashboard in CloudShell Portal.) - -:::note -- You cannot reserve blueprints if there are conflicts with the reservation timeslot. For additional information see [Creating Sandboxes](../../../portal/sandboxes/creating-sandboxes.md). -- This method does not support persistent sandboxes. As such, starting a persistent sandbox will deploy a regular sandbox. -::: - -### URL - -`http://{CloudShell Sandbox API Gateway IP address}:{port#}/api/v2/blueprints/{blueprint_identifier}/start` - -| Parameter | Description/Comments | -| --- | --- | -| `blueprint_identifier` | The name or id of the blueprint (`string`). Can be retrieved via [blueprints](./blueprints.md). | - -### HTTP method - -`POST` - -### Request - -
-Headers - -Example header format for the `blueprint start` method: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -
-Request body - -The scheduling and input parameters of the sandbox in JSON format. The elements of the `blueprint start` method include: - -| Parameter | Description/Comments | -| --- | --- | -| `name` | The name of the sandbox. `(string)`
If you do not specify a name, you will get the following error message: "Reservation name and duration must be specified in request body". | -| `duration` | The duration for this sandbox. Time must be specified in ISO 8601 format (for example PT23H). `(string)`
If you do not specify the duration, you will get the following error message: "Duration format must be a valid 'ISO 8601' (e.g 'PT23H' or 'PT4H2M')". | -| `params` | Any published input parameters defined for the blueprint and its abstract resources. Input parameters that have no default must be included in the request. Abstract resource input parameters must be associated to global inputs (specify the global inputs in the request). `(Array)`
If you do not specify the input parameters, you will get the following error message: "Blueprint has invalid inputs". | -| `permitted_users` | Users permitted to use the sandbox. Permitted users must have access to the logged-in domain. | - -
- -
-Request example - -```javascript -{ - "name":"testbp-sndbx", - "duration":"PT2H5M", - "params":[ - { - "name":"global1", - "value":"value1" - }, - { - "name":"abstract resource 1.attribute4", - "value":"some value" - }, - { - "name":"abstract resource 1/sub resource.attribute4", - "value":"some value" - } - ], - "permitted_users":[ - "john.s", - "emily.b", - "lucas.w" - ] -} -``` -
- -### Response - -
-Response example - -The `blueprint start` method returns details about the new sandbox. The output includes details about the sandbox ID and the actions that can be performed on the sandbox: - -```javascript -{ - "name":"Test Blprnt2", - "id":"994bd534-740a-45f5-851f-ff452f2a17a2", - "state":"Ready", - "type":"Sandbox", - "components":[ - { - "id":"82159835-2d95-46a9-95ec-9251963d203d", - "name":"MyApp", - "type":"Application", - "component_type":"Generic App Model", - "app_lifecycle":"undeployed", - "_links":{ - "self":{ - "href":"/sandboxes/994bd534-740a-45f5-851f-ff452f2a17a2/components/82159835-2d95-46a9-95ec-9251963d203d", - "method":"GET" - } - } - } - ], - "_links":{ - "self":{ - "href":"/sandboxes/994bd534-740a-45f5-851f-ff452f2a17a2", - "method":"GET", - }, - "components":{ - "href":"/sandboxes/994bd534-740a-45f5-851f-ff452f2a17a2/components", - "method":"GET" - }, - "stop":{ - "href":"/sandboxes/994bd534-740a-45f5-851f-ff452f2a17a2/stop", - "method":"POST", - }, - "all":{ - "href":"/sandboxes", - "method":"GET", - } - } -``` -
- -
-Response summary - -The response output properties of the `blueprint start` method are described in the following table. - -| Property | Sub Property | Description/Comments | -| --- | --- | --- | -| `name` |   | The name of the sandbox. `(string)` | -| `id` |   | The ID of the sandbox. `(string)` | -| `state` |   | The current state of the sandbox. Possible values: Pending, Setup, Ready, Teardown, Error, Ended. `(string)` | -| `type` |   | The sandbox type ("Sandbox"). `(string)` | -| `components` |   | The resource model of the sandbox. `(array)` | -|   | `name` | The name of the component. `(string)` | -|   | `type` | The component ("resource", "application", or "service"). `(string)` | -|   | `component_type` | The resource model. `(string)` | -|   | `app_lifecycle` | (Available for App components) The current state of the App ("undeployed"/"deployed"). `(string)` | -|   | `_links` | The actions that can be performed on the sandbox component (Get component details). | -| `_links` |   | The actions that can be performed on the sandbox in the user's domain: | -|   | `self` | Provides a link to get the details for the sandbox via a `GET` request. | -|   | `components` | Provides a link to get all components in the sandbox via a `GET` request. | -|   | `stop` | Provides a link to get stop the sandbox via a `POST` request. | -|   | `all` | Provides a link to get all available sandboxes according to the user's domain via a `GET` request. | - -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/blueprints.md b/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/blueprints.md deleted file mode 100644 index d602328360..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/blueprints.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Blueprints - -### Description - -Gets a list of all the public blueprints associated with the user's domain. Returns blueprint details related to the user's domain and permissions, such as the blueprint GUID and the actions that can be performed on each blueprint. - -:::note -In CloudShell Portal, make sure to set the blueprints to "Public" as the API does not work with private blueprints. -::: - -### URL - -`http://{CloudShell Sandbox API Gateway IP address}:{port#}/api/v2/blueprints` - -### HTTP method - -`GET` - -### Request - -
-Headers - -Example header format for the `blueprints` method: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -### Response - -
-Response example - -The `blueprints` method returns a list of all the blueprints associated with the user's domain and permissions and the actions that can be performed on the individual blueprints: - -```javascript -[ - { - "name":"WebApi", - "id":"c6abccb6-71eb-423b-b754-477c11d6bc2a", - "description":null, - "availability":"Not Available", - "categories":[ - - ], - "estimated_setup_duration":"PT25M", - "_links":{ - "self":{ - "href":"/blueprints/c6abccb6-71eb-423b-b754-477c11d6bc2a", - "method":"GET", - "name":"get a blueprint's details", - "templated":true - }, - "all":{ - "href":"/blueprints", - "method":"GET", - "name":"get available blueprints according to the user domain" - }, - "create_sandbox":{ - "href":"/blueprints/c6abccb6-71eb-423b-b754-477c11d6bc2a/start", - "method":"POST", - "name":"create a sandbox from the blueprint", - "templated":true - } - } - } -] -``` -
- -
-Response summary - -The response output properties of the `blueprints` method are described in the following table. - -| Property | Sub Property | Description/Comments | -| --- | --- | --- | -| `name` |   | The name of the blueprint. `(string)` | -| `id` |   | The ID of the blueprint. `(string)` | -| `description` |   | A short description about the blueprint. `(string)` | -| `availability` |   | The availability of the blueprint.
Possible values: Available Now, Not Available. `(string)` | -| `categories` |   | The categories assigned to the blueprint. `(string)` | -| `estimated_setup_duration` |   | The estimated setup duration of the sandbox. The estimated duration's value is specified in ISO 8601 format. | -| `_links` |   | The actions that can be performed on the blueprints in the user's domain: | -|   | `self` | Provides a link to get the blueprint's details via a `GET` request. | -|   | `all` | Provides a link to get all available blueprints according to the user's domain via a `GET` request. | -|   | `create_sandbox` | Provides a link to create a sandbox from the blueprint via a `POST` request. | -
- diff --git a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/component-command-name.md b/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/component-command-name.md deleted file mode 100644 index 6914caa60d..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/component-command-name.md +++ /dev/null @@ -1,123 +0,0 @@ ---- -sidebar_position: 11 ---- - - -# Component Command Name - -### Description - -Gets details about a particular command for a specific component (resource, service, or App) in a sandbox. - -### URL - -`http://{CloudShell Sandbox API Gateway IP address}:{port#}/api/v2/sandboxes/{sandbox_identifier}/components/{component_id}/commands/{command_name}` - -| Parameter | Description/Comments | -| --- | --- | -| `sandbox_identifier` | The id of the sandbox (`string`). Can be retrieved via [sandboxes](./sandboxes.md), [blueprint start](./blueprint-start.md) and from the sandbox ID segment in the CloudShell Portal URL. | -| `component_id` | The id of the component (`string`). Can be retrieved via [sandbox components](./sandbox-components.md) and [blueprint start](./blueprint-start.md). | -| `command_name` | The name of the command (`string`). Can be retrieved via [sandbox component commands](./sandbox-component-commands.md). | - -### HTTP method - -`GET` - -### Request - -
-Headers - -Example header format for the `component command name` method: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -### Response - -
-Response example - -The `component command name` method returns details about a specific component command in a particular sandbox and the actions that can be performed on the command. - -```javascript -{ - "name":"my_command", - "description":"", - "params":[ - { - "name":"param1", - "description":"", - "type":"numeric", - "possible values":[ - - ], - "default value":"", - "mandatory":false - } - ], - "executions":[ - { - "id":"0daead01-8e57-4064-81d4-84911effa911", - "status":"Pending", - "supports_cancellation":"false", - "_links":{ - "self":{ - "href":"/executions/0daead01-8e57-4064-81d4-84911effa911", - "method":"GET" - }, - "stop":{ - "href":"/executions/0daead01-8e57-4064-81d4-84911effa911", - "method":"DELETE" - } - } - } - ], - "_links":{ - "self":{ - "href":"/sandboxes/0daead01-8e57-4064-81d4-84911effa000/components/0daead01-8e57-4064-81d4-84911effa933/commands/my-command", - "method":"GET" - }, - "start":{ - "href":"/sandboxes/0daead01-8e57-4064-81d4-84911effa000/components/0daead01-8e57-4064-81d4-84911effa933/commands/my-command/start", - "method":"POST" - } - } -} -``` - -
- - -
-Response summary - -The response output properties of the `component command name` method are described in the following table. - -| Property | Sub Property | Description/Comments | -| --- | --- | --- | -| `name` |   | The name of the command. `(string)` | -| `description` |   | A short description of the command. `(string)` | -| `params` |   | The parameters needed for the command execution. `(array)` | -|   | `name` | The parameter name. `(string)` | -|   | `description` | The parameter description. `(string)` | -|   | `type` | The parameter type ("string", "numeric", or "lookup"). `(string)` | -|   | `possible values` | All the possible values for this parameter. `(array)` | -|   | `default value` | The default value of the parameter. `(string)` | -|   | `mandatory` | Whether or not the parameter is mandatory for the command execution. `(bool)` | -| `executions` |   | The execution history for this command. `(array)` | -|   | `id` | The ID of the execution. `(string)` | -|   | `status` | The current status of the command execution ("pending", "running", "stopping", "canceled", `(string)` | -|   | `supports_cancellation` | Whether or not stopping the execution before it is completed is supported. `(bool)` | -|   | `_links` | The actions that can be performed on the execution (Get execution details, Delete execution) | -| `_links` |   | The actions that can be performed on the sandbox's component command in the user's domain: | -|   | `self` | Provides a link to get the command's details via a `GET` request. | -|   | `start` | Provides a link to get start the command's execution via a `POST` request. | -| `command_tag` | string | (For connected commands only) Tag defined for the command. Options are "power" or "remote_(remote command name)" | - - - -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/component-command-start.md b/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/component-command-start.md deleted file mode 100644 index 02a30fdad9..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/component-command-start.md +++ /dev/null @@ -1,127 +0,0 @@ ---- -sidebar_position: 12 ---- - - -# Component Command Start - -### Description - -Executes a particular command or connected command for a specific component (resource, service, or App) in a sandbox. - -### URL - -`http://{CloudShell Sandbox API Gateway IP address}:{port#}/api/v2/sandboxes/{sandbox_identifier}/components/{component_id}/commands/{command_name}/start` - -| Parameter | Description/Comments | -| --- | --- | -| `sandbox_identifier` | The id of the sandbox (`string`). Can be retrieved via [sandboxes](./sandboxes.md), [blueprint start](./blueprint-start.md) and from the sandbox ID segment in the CloudShell Portal URL. | -| `component_id` | The id of the component (`string`). Can be retrieved via [sandbox components](./sandbox-components.md) and [blueprint start](./blueprint-start.md). | -| `command_name` | The name of the command (`string`). Can be retrieved via [sandbox component commands](./sandbox-component-commands.md). | - -### HTTP method - -`POST` - -### Request - -
-Headers - -Example header format for the `component command start` method: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -
-Request body - -The input parameters of the command in JSON format. The elements of the `component command start` method include. - -| Parameter | Description/Comments | -| --- | --- | -| `command_tag` | Tag defined for the connected command. Connected command tags are used to define categories of functionality.`(string)` -Possible values:
- power
- remote_\: For example, "remote_save_snapshot" for vCenter VM save snapshot. | -| params | Any input parameters required for running the command must be included in the request.(array)
If you do not specify the input parameters, you will get the following error message: "No values were provided for the following mandatory inputs: \{Parameter name}". | -| `connected_ports_full_path` | List of connected ports to use in this operation. (array)
Include the full path from the root resource to each port, separated by slashes. For example: Switch20/Blade5/PowerPort1. Leave blank to perform the connected operation on all of the specified resource’s connected ports. | -| `printOutput` | Whether or not the command output is displayed in the console or command line. `(bool)` | -
- -
-Request example for regular commands - -```javascript -{ - "params":[ - { - "name":"Version", - "value":"1.0.223.7" - } - ], - "printOutput":"true/false" -} -``` -
- -
-Request example for connected commands - -```javascript -{ - "command_tag": "power", - "params": [ - { - "name": "Version", - "value": "1.0.223.7" - } - ], - "connected_ports_full_path": [ - "Switch20/Blade5/PowerPort1" - ], - "printOutput": true -} -``` -
- -### Response - -
-Response example - -The `component command start` method returns details about a specific execution of the sandbox component command. The response includes the command's execution ID and the actions that can be performed on the execution. - -```javascript -{ - "executionId":"1DEB29BF-22B0-4CF6-B7BE-02173520EB81", - "supports_cancellation":true, - "_links":{ - "self":{ - "href":"/execution/1DEB29BF-22B0-4CF6-B7BE-02173520EB81", - "method":"GET" - }, - "stop":{ - "href":"/executions/1DEB29BF-22B0-4CF6-B7BE-02173520EB81", - "method":"DELETE" - } - } -} -``` -
- -
-Response summary - -The response output properties of the `component command start` method are described in the following table. - -| Property | Sub Property | Description/Comments | -| --- | --- | --- | -| `executionId` |   | The ID of the execution. `(string)` | -| `supports_cancellation` |   | Whether or not stopping the execution before it is completed is supported. `(bool)` | -| `_links` |   | The actions that can be performed on the execution: | -|   | `self` | Provides a link to get a the execution's details via a `GET` request. | -|   | `stop` | Provides a link to end the execution via a `DELETE` request. | - -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/execution-id.md b/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/execution-id.md deleted file mode 100644 index dace7cff72..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/execution-id.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -sidebar_position: 20 ---- - -# Execution Id - -### Description - -Gets details about a specific execution of a sandbox or component command, per specified execution ID. - -### URL - -`http://{CloudShell Sandbox API Gateway IP address}:{port#}/api/v2/executions/{execution_id}` - -| Parameter | Description/Comments | -| --- | --- | -| `execution_id` | The id of the command's execution (`string`). Can be retrieved via the [component command start](./component-command-start.md) and the [sandbox command start](./sandbox-command-start.md) methods. | - -### HTTP method - -`GET` - -### Request - -
-Headers - -Example header format for the `execution id` method: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -### Response - -
-Response example - -The `execution id` method returns details about a specific execution of a sandbox or component command and the actions that can be performed on the execution. - -```javascript -{ - "id":"1DEB29BF-22B0-4CF6-B7BE-02173520EB81", - "supports_cancellation":"true", - "started":"", - "ended":"", - "status":"", - "output":"", - "_links":{ - "self":{ - "href":"/executions/1DEB29BF-22B0-4CF6-B7BE-02173520EB81", - "method":"GET" - }, - "stop":{ - "href":"/executions/1DEB29BF-22B0-4CF6-B7BE-02173520EB81", - "method":"DELETE" - } - } -} -``` -
- -
-Response summary - -The response output properties of the `execution id` method are described in the following table. - -| Property | Sub Property | Description/Comments | -| --- | --- | --- | -| `id` |   | The ID of the execution. `(string)` | -| `supports_cancellation` |   | Whether or not stopping the execution before it is completed is supported. `(bool)` | -| `started` |   | The date and time at which the execution started. `(string)` | -| `ended` |   | The date and time at which the execution ended. `(string)` | -| `status` |   | The current status of the command execution - "pending", "running", "stopping", "canceled". `(string)` | -| `output` |   | (If the command returns an output message) The command's output. `(string)` | -| `_links` |   | The actions that can be performed on the execution: | -|   | `self` | Provides a link to get the execution's details via a `GET` request. | -|   | `stop` | (If the execution supports cancellation and is still running) Provides a link to end the execution via a `DELETE` request. | - -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/execution-stop.md b/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/execution-stop.md deleted file mode 100644 index 1dbe566043..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/execution-stop.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -sidebar_position: 21 ---- - - -# Execution Stop - -### Description - -Ends an execution of a component or sandbox command, per specified execution ID. Returns a successful response when the execution is stopped. - -### URL - -`http://{CloudShell Sandbox API Gateway IP address}:{port#}/api/v2/executions/{execution_id}` - -| Parameter | Description/Comments | -| --- | --- | -| `execution_id` | The id of the command's execution (`string`). Can be retrieved via the [component command start](./component-command-start.md) and the [sandbox command start](./sandbox-command-start.md) methods. | - -### HTTP method - -`DELETE` - -### Request - -
-Headers - -Example header format for the `execution stop` method: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -### Response - -
-Response example - -A successful response is displayed when the `execution stop` method ends the execution: - -```javascript -{ -"result": "success", -} -``` -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/index.md b/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/index.md deleted file mode 100644 index 900c107f09..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/index.md +++ /dev/null @@ -1,8 +0,0 @@ - -# CloudShell Sandbox API Version 2 Reference Guide - -To use the live documentation pages, log in to the **Authentication API** page using your user credentials and the name of the appropriate CloudShell domain. Then, access the **Sandbox API** page to execute its methods on the public blueprints and sandboxes in the domain. - -:::note -Sandbox API can be configured to run in secure mode. See [Configuring Sandbox API to Work in HTTPS Mode](../../../install-configure/cloudshell-suite/secure-communication/config-secured-sandbox-api.md). -::: \ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/login.md b/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/login.md deleted file mode 100644 index cc943104f4..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/login.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Login - -### Description - -Logs the user in to CloudShell, authenticates the user’s credentials and domain, and returns an authorization token to be used with all subsequent requests. Requests that contain this token return information relevant for the specified domain, per the user's permissions. - -### URL - -`http://{CloudShell Sandbox API Gateway IP address}:{port#}/api/login` - -### HTTP method - -`PUT` - -### Request - -
-Headers - -Example header format for the `login` method: - -`Content-Type: application/json` - -
- -
-Request body - -The user credentials (in JSON format). The parameters of the `login` method include: - -| Parameter | Description | -| --- | --- | -| `username` | The user's name. `(string)` | -| `password` | The user's password. `(string)` | -| `domain` | The user's domain. `(string)` | - -
- -
-Request example - -Example request input for the `login` method in JSON format: - -```javascript -{ - "username":"admin", - "password":"admin", - "domain":"Global" -} -``` -
- -### Response - -
-Response example - -The following is a sample authorization token returned by the `login` method: - -`"a0IAmINiGUmVsoJS9IeG1A=="` -
- -
-Response summary - -The `login` method returns an authorization token that must be added to the header of each API method. - -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-activity.md b/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-activity.md deleted file mode 100644 index 77832cf46a..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-activity.md +++ /dev/null @@ -1,102 +0,0 @@ ---- -sidebar_position: 13 ---- - - -# Sandbox Activity - -### Description - -Gets the content of CloudShell Portal's Activity Feed for a particular sandbox. This displays information about actions performed in the sandbox by the user and automation process. - -The maximum number of entries in the response is configured by the administrator. If this number of entries is exceeded, the response will include multiple pages. For more information, see [Setting the response page size for the Sandbox API live documentation pages](../../../admin/setting-up-cloudshell/cloudshell-configuration-options/advanced-cloudshell-customizations.md#setting-the-response-page-size-for-the-sandbox-api-live-documentation-pages). - -### URL - -`http://{CloudShell Sandbox API Gateway IP address}:{port#}/api/v2/sandboxes/{sandbox_identifier}/activity?tail=100&from_event_id` - -| URL Parameters | Description/Comments | -| --- | --- | -| `sandbox_identifier` | Can be retrieved via [sandboxes](./sandboxes.md), [blueprint start](./blueprint-start.md) and from the sandbox ID segment in the CloudShell Portal URL. | - -You may add the following optional parameters to the end of the method's URL to filter the number of events. For example - displaying the last 100 errors: - -| Query Parameters | Description/Comments | -| --- | --- | -| `error_only` | Returns only "error" type events. `(bool)` | -| `since` | Time from which to return all events. Time must be specified in ISO 8601 format (for example PT23H).`(string)` | -| `tail` | Last number of events to return. `(integer)` | -| `from_event_id` | ID of the first event in the response page to display, which is returned in the `next_event_id` property of the response. `(string)` | - -### HTTP method - -`GET` - -### Request - -
-Headers - -Example header format for the `sandbox activity` method: - -`Authorization: Basic ` - -`Content-Type: application/json` - -By default, the method's response includes all the events that occurred during the sandbox's lifecycle. - -
- -### Response - -
-Response example - -The `sandbox activity` method returns the events from the Activity Feed of a particular sandbox. The response includes : - -```javascript -{ - "num_returned_events":"20", - "more_pages":"false", - "next_event_id":"99434", - "events":[ - { - "id":"82159835-2d95-46a9-95ec-9251963d203d", - "event_type":"success", - "event_text":"Sandbox 'MyBlueprint' has started", - "output":"Null", - "time":"2017-01-15T09:51:17Z", - "execution_server": null - }, - { - "id":"79549eaf-7f1a-4180-a88b-e7da27e5075b", - "event_type":"success", - "event_text":"'Deploy' resource command on 'vCenter VM From...' started", - "output":"Null", - "time":"2017-01-15T09:51:17Z", - "execution_server": "WIN-ES-NY" - } - ] -} -``` -
- -
-Response summary - -The response output properties of the `sandbox activity` method are described in the following table. - -| Property | Sub Property | Description/Comments | -| --- | --- | --- | -| `number_of_returned_events` |   | The number of events in the Activity Feed that match the filter criteria in the request. `(integer)` | -| `more_pages` |   | (Relevant if the response includes multiple pages) `true` indicates that there are additional events that are not displayed in this response page `(bool)` | -| `next_event_id` |   | (Relevant if the response includes multiple pages) The ID of the first event on the next page of the response. `(integer)`
Note: To get the next page, run the method again with this value in the `from_event_id` input parameter. | -| `events` |   | The details of the Activity Feed events `(array)` | -|   | `id` | The ID of the event `(string)` | -|   | `event_type` | The type of event ("success"/"error") `(string)` | -|   | `event_text` | The text displayed in the Activity Feed for the event `(string)` | -|   | `output` | (Events related to command execution) Text displayed as output of the command `(string)` | -|   | `time` | The time in which the Activity Feed event was logged `(string)` | -| | `execution_server` | Name of the execution server that executed the command. `(string)` | - -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-command-name.md b/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-command-name.md deleted file mode 100644 index eb3a86a3ca..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-command-name.md +++ /dev/null @@ -1,115 +0,0 @@ ---- -sidebar_position: 18 ---- - -# Sandbox Command Name - -### Description - -Gets details about a particular blueprint command in a specific sandbox. - -### URL - -`http://{CloudShell Sandbox API Gateway IP address}:{port#}/api/v2/sandboxes/{sandbox_identifier}/commands/{command_name}` - -| Parameter | Description/Comments | -| --- | --- | -| `sandbox_identifier` | The id of the sandbox (`string`). Can be retrieved via [sandboxes](./sandboxes.md), [blueprint start](./blueprint-start.md) and from the sandbox ID segment in the CloudShell Portal URL. | -| `command_name` | The name of the sandbox command (`string`). Can be retrieved via [sandbox commands](./sandbox-commands.md) | - -### HTTP method - -`GET` - -### Request - -
-Headers - -Example header format for the `sandbox command name` method: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -### Response - -
-Response example - -The `sandbox command name` method returns details about a specific command for a particular sandbox and the actions that can be performed on the command. - -```javascript -{ - "name":"my_command", - "description":"", - "params":[ - { - "name":"param1", - "description":"", - "type":"numeric", - "possible values":[ - - ], - "default value":"", - "mandatory":false - } - ], - "executions":[ - { - "id":"0daead01-8e57-4064-81d4-84911effa911", - "status":"Pending", - "supports_cancellation":"false", - "_links":{ - "self":{ - "href":"/executions/0daead01-8e57-4064-81d4-84911effa911", - "method":"GET" - }"stop":{ - "href":"/executions/0daead01-8e57-4064-81d4-84911effa911", - "method":"DELETE" - } - } - } - ], - "_links":{ - "self":{ - "href":"/sandboxes/0daead01-8e57-4064-81d4-84911effa000/commands/my-command", - "method":"GET" - }, - "start":{ - "href":"/sandboxes/0daead01-8e57-4064-81d4-84911effa000/commands/my-command/start", - "method":"POST" - } - } -} -``` -
- -
-Response summary - -The response output properties of the `sandbox command name` method are described in the following table. - -| Property | Sub Property | Description/Comments | -| --- | --- | --- | -| `name` |   | The name of the command. `(string)` | -| `description` |   | A short description of the command. `(string)` | -| `params` |   | The parameters needed for the command execution. `(array)` | -|   | `name` | The parameter name. `(string)` | -|   | `description` | The parameter description. `(string)` | -|   | `type` | The parameter type ("string", "numeric", or "lookup"). `(string)` | -|   | `possible values` | All the possible values for this parameter. `(array)` | -|   | `default value` | The default value of the parameter. `(string)` | -|   | `mandatory` | Whether or not the parameter is mandatory for the command execution. `(bool)` | -| `executions` |   | The execution history for this command. `(array)` | -|   | `id` | The ID of the execution. `(string)` | -|   | `status` | The current status of the command execution ("pending", "running", "stopping", "canceled". `(string)` | -|   | `supports_cancellation` | Whether or not stopping the execution before it is completed is supported. `(bool)` | -|   | `_links` | The actions that can be performed on the execution (Get execution details, Delete execution) | -| `_links` |   | The actions that can be performed on the sandbox's blueprint command in the user's domain: | -|   | `self` | Provides a link to get the command's details via a `GET` request. | -|   | `start` | Provides a link to start the command's execution via a `POST` request. | - -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-command-start.md b/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-command-start.md deleted file mode 100644 index 386a0260c5..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-command-start.md +++ /dev/null @@ -1,101 +0,0 @@ ---- -sidebar_position: 19 ---- - -# Sandbox Command Start - -### Description - -Executes a particular command for a specific sandbox. - -### URL - -`http://{CloudShell Sandbox API Gateway IP address}:{port#}/api/v2/sandboxes/{sandbox_identifier}/commands/{command_name}/start` - -| Parameter | Description/Comments | -| --- | --- | -| `sandbox_identifier` | The id of the sandbox (`string`). Can be retrieved via [sandboxes](./sandboxes.md), [blueprint start](./blueprint-start.md) and from the sandbox ID segment in the CloudShell Portal URL. | -| `command_name` | The name of the command (`string`). Can be retrieved via [sandbox commands](./sandbox-commands.md). | - -### HTTP method - -`POST` - -### Request - -
-Headers - -Example header format for the `sandbox command start` method: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -
-Request body - -The input parameters of the command in JSON format. The elements of the `sandbox command start` method include. - -| Parameter | Description/Comments | -| --- | --- | -| `params` | Any input parameters required for running the command must be included in the request. If you do not specify the input parameters, you will get the following error message: "No values were provided for the following mandatory inputs: \{Parameter name}". `(Array)` | -| `printOutput` | Whether or not the command output is displayed in the console or command line. `(bool)` | -
- -
-Request example - -```javascript -{ - "params":[ - { - "name":"string", - "value":"string" - } - ] -} -``` -
- -### Response - -
-Response example - -The `sandbox command start` method returns details about a specific execution of the sandbox command. The response includes the command's execution ID and the actions that can be performed on the execution. - -```javascript -{ - "executionId":"1DEB29BF-22B0-4CF6-B7BE-02173520EB81", - "supports_cancellation":true, - "_links":{ - "self":{ - "href":"/execution/1DEB29BF-22B0-4CF6-B7BE-02173520EB81", - "method":"GET" - }, - "stop":{ - "href":"/executions/1DEB29BF-22B0-4CF6-B7BE-02173520EB81", - "method":"DELETE" - } - } -} -``` -
- -
-Response summary - -The response output properties of the `sandbox command start` method are described in the following table. - -| Property | Sub Property | Description/Comments | -| --- | --- | --- | -| `executionId` |   | The ID of the execution. `(string)` | -| `supports_cancellation` |   | Whether or not stopping the execution before it is completed is supported. `(bool)` | -| `_links` |   | The actions that can be performed on the execution: | -|   | `self` | Provides a link to get the execution's details via a `GET` request. | -|   | `stop` | Provides a link to end the execution via a `DELETE` request. | - -
diff --git a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-commands.md b/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-commands.md deleted file mode 100644 index a4139fc0c0..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-commands.md +++ /dev/null @@ -1,111 +0,0 @@ ---- -sidebar_position: 17 ---- - - -# Sandbox Commands - -### Description - -Gets details for all the blueprint commands in the sandbox. - -### URL - -`http://{CloudShell Sandbox API Gateway IP address}:{port#}/api/v2/sandboxes/{sandbox_identifier}/commands` - -| Parameter | Description/Comments | -| --- | --- | -| `sandbox_identifier` | The id of the sandbox (`string`). Can be retrieved via [sandboxes](./sandboxes.md), [blueprint start](./blueprint-start.md) and from the sandbox ID segment in the CloudShell Portal URL. | - -### HTTP method - -`GET` - -### Request - -
-Headers - -Example header format for the `sandbox commands` method: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -### Response - -
-Response example - -The `sandbox commands` method returns details about the blueprint commands in a particular sandbox and the actions that can be performed on each command. - -```javascript -[ - { - "name":"my_command", - "description":"", - "params":[ - { - "name":"param1", - "description":"", - "type":"numeric", - "possible values":[ - - ], - "default value":"", - "mandatory":false - } - ], - "executions":[ - { - "id":"0daead01-8e57-4064-81d4-84911effa911", - "status":"Pending", - "supports_cancellation":"false", - "_links":{ - - } - } - ], - "_links":{ - "self":{ - "href":"/sandboxes/0daead01-8e57-4064-81d4-84911effa000/commands/my-command", - "method":"GET" - }, - "start":{ - "href":"/sandboxes/0daead01-8e57-4064-81d4-84911effa000/commands/my-command/start", - "method":"POST" - } - } - } -] -``` -
- -
-Response summary - -The response output properties of the `sandbox commands` method are described in the following table. - -| Property | Sub Property | Description/Comments | -| --- | --- | --- | -| `name` |   | The name of the command. `(string)` | -| `description` |   | A short description of the command. `(string)` | -| `params` |   | The parameters needed for the command execution. `(array)` | -|   | `name` | The parameter name. `(string)` | -|   | `description` | The parameter description. `(string)` | -|   | `type` | The parameter type ("string", "numeric", or "lookup"). `(string)` | -|   | `possible values` | All the possible values for this parameter. `(array)` | -|   | `default value` | The default value of the parameter. `(string)` | -|   | `mandatory` | Whether or not the parameter is mandatory for the command execution. `(bool)` | -| `executions` |   | The execution history for this command. `(array)` | -|   | `id` | The ID of the execution. `(string)` | -|   | `status` | The current status of the command execution ("pending", "running", "stopping", "canceled", `(string)` | -|   | `supports_cancellation` | Whether or not stopping the execution before it is completed is supported. `(bool)` | -|   | `_links` | The actions that can be performed on the execution (Get execution details, Delete execution) | -| `_links` |   | The actions that can be performed on a sandbox's blueprint command in the user's domain: | -|   | `self` | Provides a link to get a command's details via a `GET` request. | -|   | `start` | Provides a link to get start a command's execution via a `POST` request. | - -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-component-commands.md b/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-component-commands.md deleted file mode 100644 index 5fc5f4bc77..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-component-commands.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -sidebar_position: 10 ---- - - -# Sandbox Component Commands - -### Description - -Gets details about all the commands and connected commands provided for a particular component (resource, service, or App) in a specific sandbox. - -### URL - -`http://{CloudShell Sandbox API Gateway IP address}:{port#}/api/v2/sandboxes/{sandbox_identifier}/components/{component_id}/commands` - -| Parameter | Description/Comments | -| --- | --- | -| `sandbox_identifier` | The id of the sandbox (`string`). Can be retrieved via [sandboxes](./sandboxes.md), [blueprint start](./blueprint-start.md) and from the sandbox ID segment in the CloudShell Portal URL. | -| `component_id` | The id of the component (`string`). Can be retrieved via [sandbox components](./sandbox-components.md) and [blueprint start](./blueprint-start.md). | - -### HTTP method - -`GET` - -### Request - -
-Headers - -Example header format for the `sandbox component commands` method: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -### Response - -
-Response example - -The `sandbox component commands` method returns details about all the commands provided for a specific component of a particular sandbox and the actions that can be performed on each command. - -```javascript -[ - { - "name":"my_command", - "description":"", - "params":[ - { - "name":"param1", - "description":"", - "type":"numeric", - "possible values":[ - - ], - "default value":"", - "mandatory":false - } - ], - "executions":[ - { - "id":"0daead01-8e57-4064-81d4-84911effa911", - "status":"Pending", - "supports_cancellation":"false", - "_links":{ - - } - } - ], - "_links":{ - "self":{ - "href":"/sandboxes/0daead01-8e57-4064-81d4-84911effa000/components/0daead01-8e57-4064-81d4-84911effa933/my_command", - "method":"GET" - }, - "start":{ - "href":"/sandboxes/0daead01-8e57-4064-81d4-84911effa000/components/0daead01-8e57-4064-81d4-84911effa933/commands/my_command/start", - "method":"POST" - } - } - } -] -``` -
- -
-Response summary - -The response output properties of the `sandbox component commands` method are described in the following table. - -| Property | Sub Property | Description/Comments | -| --- | --- | --- | -| `name` |   | The name of the command. `(string)` | -| `description` |   | A short description of the command. `(string)` | -| `params` |   | The parameters needed for the command execution. `(array)` | -|   | `name` | The parameter name. `(string)` | -|   | `description` | The parameter description. `(string)` | -|   | `type` | The parameter type ("string", "numeric", or "lookup"). `(string)` | -|   | `possible values` | All the possible values for this parameter. `(array)` | -|   | `default value` | The default value of the parameter. `(string)` | -|   | `mandatory` | Whether or not the parameter is mandatory for the command execution. `(bool)` | -| `executions` |   | The execution history for this command. `(array)` | -|   | `id` | The ID of the execution. `(string)` | -|   | `status` | The current status of the command execution ("pending", "running", "stopping", "canceled"). `(string)` | -|   | `supports_cancellation` | Whether or not stopping the execution before it is completed is supported. `(bool)` | -|   | `_links` | The actions that can be performed on the execution (Get execution details, Delete execution) | -| `_links` |   | The actions that can be performed on a sandbox's component command in the user's domain: | -|   | `self` | Provides a link to get a command's details via a `GET` request. | -|   | `start` | Provides a link to start a command's execution via a `POST` request. | -| command_tag | string | (For connected commands only) Tag defined for the command. Options are "power" or "remote_\" | - -
diff --git a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-component-id.md b/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-component-id.md deleted file mode 100644 index c08b7c4050..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-component-id.md +++ /dev/null @@ -1,109 +0,0 @@ ---- -sidebar_position: 9 ---- - - -# Sandbox Component Id - -### Description - -Gets details and available actions for a particular component (resource, service, or App) in a specific sandbox. - -### URL - -`http://{CloudShell Sandbox API Gateway IP address}:{port#}/api/v2/sandboxes/{sandbox_identifier}/components/{component_id}` - -| Parameter | Description/Comments | -| --- | --- | -| `sandbox_identifier` | The id of the sandbox (`string`). Can be retrieved via [sandboxes](./sandboxes.md), [blueprint start](./blueprint-start.md) and from the sandbox ID segment in the CloudShell Portal URL. | -| `component_id` | The id of the component (`string`). Can be retrieved via [sandbox components](./sandbox-components.md) and [blueprint start](./blueprint-start.md). | - -### HTTP method - -`GET` - -### Request - -
-Headers - -Example header format for the `sandbox component id` method: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -### Response - -
-Response example - -The `sandbox component id` method returns details about a specific component of a particular sandbox, and the actions that can be performed on the component. - -```javascript -{ - "id":"0daead01-8e57-4064-81d4-84911effa933", - "name":"MyApp", - "type":"Application", - "component_type":"Generic App Model", - "description":"", - "active_deployment_name":"", - "template_name":"", - "app_lifecycle":"undeployed", - "attributes":[ - { - "type":"string", - "name":"user", - "value":"" - } - ], - "connection_interfaces":[ - { - "name":"RDP", - "url":"" - } - ], - "_links":{ - "self":{ - "href":"/sandboxes/0daead01-8e57-4064-81d4-84911effa000/components/0daead01-8e57-4064-81d4-84911effa933", - "method":"GET" - }, - "commands":{ - "href":"/sandboxes/0daead01-8e57-4064-81d4-84911effa000/components/0daead01-8e57-4064-81d4-84911effa933/commands", - "method":"GET" - } - } -} -``` -
- -
-Response summary - -The response output properties of the `sandbox component id` method are described in the following table. - -| Property | Sub Property | Description/Comments | -| --- | --- | --- | -| `id` |   | The ID of the component. `(string)` | -| `name` |   | The name of the component. `(string)` | -| `type` |   | The component ("resource", "application", or "service"). `(string)` | -| `component_type` |   | The resource model. `(string)` | -| `description` |   | A short description of the component. `(string)` | -| `active_deployment_name` |   | (Available for App components) The name of the deployment path for the App. `(string)` | -| `template_name` |   | (Available for App components) The name of the App template. `(string)` | -| `app_lifecycle` |   | (Available for App components) The current state of the App ("undeployed"/"deployed"). `(string)` | -| `attributes` |   | The attributes of the resource model. `(array)` | -|   | `type` | The attribute type. `(string)` | -|   | `name` | The attribute name. `(string)` | -|   | `value` | The attribute value. `(string)` | -| `connection_ interfaces` |   | The connection interfaces of the resource. `(array)` | -|   | `name` | The name of the connection interface. `(string)` | -|   | `url` | The URL of the connection interface of the component. `(string)` | -| `_links` |   | The actions that can be performed on the component of a sandbox in the user's domain: | -|   | `self` | Provides a link to get the component's details via a `GET` request. | -|   | `commands` | Provides a link to get all the resource commands for the component via a `GET` request. | - -
- diff --git a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-components.md b/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-components.md deleted file mode 100644 index dfd77ed31d..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-components.md +++ /dev/null @@ -1,130 +0,0 @@ ---- -sidebar_position: 8 ---- - - -# Sandbox Components - -### Description - -Gets details about the components (resources, services, and Apps) of a particular sandbox. - -### URL - -`http://{CloudShell Sandbox API Gateway IP address}:{port#}/api/v2/sandboxes/{sandbox_identifier}/components` - -| Parameter | Description/Comments | -| --- | --- | -| `sandbox_identifier` | The id of the sandbox (`string`). Can be retrieved via [sandboxes](./sandboxes.md), [blueprint start](./blueprint-start.md) and from the sandbox ID segment in the CloudShell Portal URL. | - -### HTTP method - -`GET` - -### Request - -
-Headers - -Example header format for the `sandbox components` method: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -### Response - -
-Response example - -The `sandbox components` method returns details about all the components of a particular sandbox and the actions that can be performed on each component. - -```javascript -[ - { - "id":"0daead01-8e57-4064-81d4-84911effa933", - "name":"MyApp", - "type":"Application", - "component_type":"Generic App Model", - "description":"", - "active_deployment_name":"", - "template_name":"", - "app_lifecycle":"undeployed", - "attributes":[ - { - "type":"string", - "name":"user", - "value":"" - } - ], - "connection_interfaces":[ - { - "name":"SSH", - "url":"" - } - ], - "_links":{ - "self":{ - "href":"/sandboxes/0daead01-8e57-4064-81d4-84911effa000/components/0daead01-8e57-4064-81d4-84911effa933", - "method":"GET" - } - } - }, - { - "id":"0daead01-8e57-4064-81d4-84911effa911", - "name":"MySwitch", - "type":"Resource", - "component_type":"Generic Switch Model", - "description":"", - "attributes":[ - { - "type":"string", - "name":"vendor", - "value":"" - } - ], - "connection_interfaces":[ - { - "name":"Telnet", - "url":"" - } - ], - "_links":{ - "self":{ - "href":"/sandboxes/0daead01-8e57-4064-81d4-84911effa000/components/0daead01-8e57-4064-81d4-84911effa911", - "method":"GET" - } - } - } -] -``` -
- -
-Response summary - -The response output properties of the `sandbox components` method are described in the following table. - -| Property | Sub Property | Description/Comments | -| --- | --- | --- | -| `id` |   | The ID of the component. `(string)` | -| `name` |   | The name of the component. `(string)` | -| `type` |   | The component ("resource", "application", or "service"). `(string)` | -| `component_type` |   | The resource model. `(string)` | -| `description` |   | A short description of the component. `(string)` | -| `active_deployment_name` |   | (Available for App components) The name of the deployment path for the App. `(string)` | -| `template_name` |   | (Available for App components) The name of the App template. `(string)` | -| `app_lifecycle` |   | (Available for App components) The current state of the App ("undeployed"/"deployed"). `(string)` | -| `attributes` |   | The attributes of the resource model. `(array)` | -|   | `type` | The attribute type. `(string)` | -|   | `name` | The attribute name. `(string)` | -|   | `value` | The attribute value. `(string)` | -| `connection_interfaces` |   | The connection interfaces of the resource. `(array)` | -|   | `name` | The name of the connection interface. `(string)` | -|   | `url` | The URL of the connection interface. `(string)` | -| `_links` |   | The actions that can be performed on the component of a sandbox in the user's domain: | -|   | `self` | Provides a link to get the component's details via a `GET` request. | - -
diff --git a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-extend.md b/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-extend.md deleted file mode 100644 index 67bd5d33c0..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-extend.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -sidebar_position: 15 ---- - - -# Sandbox Extend - -### Description - -Extends the duration of a particular sandbox by a specified timeframe. - -### URL - -`http://{CloudShell Sandbox API Gateway IP address}:{port#}/api/v2/sandboxes/{sandbox_identifier}/extend` - -| Parameter | Description/Comments | -| --- | --- | -| `sandbox_identifier` | The id of the sandbox (`string`). Can be retrieved via [sandboxes](./sandboxes.md), [blueprint start](./blueprint-start.md) and from the sandbox ID segment in the CloudShell Portal URL. | - -### HTTP method - -`POST` - -### Request - -
-Headers - -Example header format for the `sandbox extend` method: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -
-Request body - -The scheduling parameter of the sandbox in JSON format. The elements of the `sandbox extend` method include: - -| Parameter | Description/Comments | -| --- | --- | -| `extended_time` | The additional duration required for the sandbox. Time must be specified in ISO 8601 format (for example PT23H). `(string)`
If you do not specify a value, the following error message will be displayed: "Parameter is not a valid extended time". | - -
- -
-Request example - -```javascript -{ - "extended_time":"PT2H5M" -} -``` -
- -### Response - -
-Response example - -The `sandbox extend` method returns details about the extended sandbox. The output includes details about the sandbox ID and the new time of the sandbox's duration: - -```javascript -{ - "id":"994bd534-740a-45f5-851f-ff452f2a17a2", - "name":"Test Blprnt2", - "start_time":"2017-01-01T10:30:00Z", - "end_time":"2017-01-01T12:35:00Z", - "remaining_time":"PT24H30M" -} -``` -
- -
-Response summary - -The response output properties of the `sandbox extend` method are described in the following table. - -| Property | Sub Property | Description/Comments | -| --- | --- | --- | -| `id` |   | The ID of the sandbox. `(string)` | -| `name` |   | The name of the sandbox. `(string)` | -| `start_time` |   | The time when the sandbox started `(string)` | -| `end_time` |   | The time when the extended sandbox ends. `(string)` | -| `remaining_time` |   | The time left for the sandbox `(string)` | - -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-identifier.md b/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-identifier.md deleted file mode 100644 index 268a2c2a4a..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-identifier.md +++ /dev/null @@ -1,150 +0,0 @@ ---- -sidebar_position: 7 ---- - -# Sandbox Identifier - -### Description - -Gets details and available actions for a particular sandbox. - -### URL - -`http://{CloudShell Sandbox API Gateway IP address}:{port#}/api/v2/sandboxes/{sandbox_identifier}` - -| Parameter | Description/Comments | -| --- | --- | -| `sandbox_identifier` | The id of the sandbox (`string`). Can be retrieved via [sandboxes](./sandboxes.md), [blueprint start](./blueprint-start.md) and from the sandbox ID segment in the CloudShell Portal URL. | - -### HTTP method - -`GET` - -### Request - -
-Headers - -Example header format for the `sandbox identifier` method: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -### Response - -
-Response example - -The `sandbox identifier` method returns details about a particular sandbox (as opposed to multiple ones). The output includes details about the sandbox ID and the actions that can be performed on the sandbox: - -```javascript -{ - "name":"Test Blprnt 2", - "id":"994bd534-740a-45f5-851f-ff452f2a17a2", - "blueprint id":"44ec66d1-4ac8-4e4b-a3e8-c733482ea176", - "description":"", - "start_time":"2017-01-01T10:30:00Z", - "end_time":"2017-01-01T12:00:00Z", - "state":"Ready", - "setup_stage":"Provisioning", - "type":"Sandbox", - "components":[ - { - "id":"82159835-2d95-46a9-95ec-9251963d203d", - "name":"MyApp", - "type":"Application", - "component_type":"Generic App Model", - "app_lifecycle":"undeployed", - "_links":{ - "self":{ - "href":"/sandboxes/994bd534-740a-45f5-851f-ff452f2a17a2/components/82159835-2d95-46a9-95ec-9251963d203d", - "method":"GET" - } - } - } - ], - "parameters":[ - { - "name":"Param1", - "value":"" - }, - { - "name":"Param2", - "value":"" - } - ], - "permitted_users":[ - { - "john.s", - "emily.b", - "lucas.w" - } - ], - "_links":{ - "self":{ - "href":"/sandboxes/994bd534-740a-45f5-851f-ff452f2a17a2", - "method":"GET", - }, - "components":{ - "href":"/sandboxes/994bd534-740a-45f5-851f-ff452f2a17a2/components", - "method":"GET" - }, - "output":{ - "href":"/sandboxes/994bd534-740a-45f5-851f-ff452f2a17a2/output", - "method":"GET" - }, - "stop":{ - "href":"/sandboxes/994bd534-740a-45f5-851f-ff452f2a17a2/stop", - "method":"POST", - }, - "all":{ - "href":"/sandboxes", - "method":"GET", - }, - "blueprint":{ - "href":"/blueprints/44ec66d1-4ac8-4e4b-a3e8-c733482ea176", - "method":"GET" - } - } -} -``` -
- -
-Response summary - -The response output properties of the `sandbox identifier` method are described in the following table. - -| Property | Sub Property | Description/Comments | -| --- | --- | --- | -| `name` |   | The name of the sandbox. `(string)` | -| `id` |   | The ID of the sandbox. `(string)` | -| `blueprint_id` |   | The ID of the blueprint on which the sandbox is based. | -| `description` |   | A description of the sandbox `(string)` | -| `start_time` |   | The time when the sandbox started `(string)` | -| `end_time` |   | the time when the sandbox ended or is expected to end `(string)` | -| `state` |   | The current state of the sandbox. Possible values: Pending, Setup, Ready, Teardown, Error, Ended. `(string)` | -| `setup_stage` |   | (If the sandbox includes orchestration scripts) The current setup stage of the sandbox. Possible values: Provisioning, Connectivity, Configuration, Ended, None. `(string)` | -| `type` |   | The sandbox type ("Sandbox"). `(string)` | -| `components` |   | The resource model of the sandbox. `(array)` | -|   | `name` | The name of the component. `(string)` | -|   | `type` | The component ("resource", "application", or "service"). `(string)` | -|   | `component_type` | The resource model. `(string)` | -|   | `app_lifecycle` | (Available for App components) The current state of the App ("undeployed"/"deployed"). `(string)` | -|   | `_links` | The actions that can be performed on the sandbox component (Get component details). | -| `parameters` |   | Any published input parameters defined for the sandbox's blueprint and the blueprint's resources. | -|   | `name` | The parameter name `(string)` | -|   | `value` | The parameter value `(string)` | -| `permitted_users` |   | Sandbox's permitted users list. Specify as a comma-separated list of the CloudShell user names. | -| `_links` |   | The actions that can be performed on the sandbox in the user's domain: | -|   | `self` | Provides a link to get the details for the sandbox via a `GET` request. | -|   | `components` | Provides a link to get all components in the sandbox via a `GET` request. | -|   | `output` | Provides a link to get all messages printed to the Output console via a `GET` request. | -|   | `stop` | Provides a link to stop the sandbox via a `POST` request. | -|   | `all` | Provides a link to get all available sandboxes according to the user's domain, via a `GET` request. | -|   | `blueprint` | Provides a link to get the details of the sandbox's blueprint via a `GET` request. | - -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-output.md b/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-output.md deleted file mode 100644 index 49cff5ddb0..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-output.md +++ /dev/null @@ -1,98 +0,0 @@ ---- -sidebar_position: 14 ---- - -# Sandbox Output - -### Description - -Gets the content of CloudShell Portal's Output console for a particular ACTIVE sandbox. This displays execution information related to running blueprint and resource commands. - -The maximum number of entries in the response is configured by the administrator. If this number of entries is exceeded, the response will include multiple pages. For more information, see [Setting the response page size for the Sandbox API live documentation pages](../../../admin/setting-up-cloudshell/cloudshell-configuration-options/advanced-cloudshell-customizations.md#setting-the-response-page-size-for-the-sandbox-api-live-documentation-pages). - -### URL - -`http://{CloudShell Sandbox API Gateway IP address}:{port#}/api/v2/sandboxes/{sandbox_identifier}/output` - -| Parameter | Description/Comments | -| --- | --- | -| `sandbox_identifier` | The id of the sandbox (`string`). Can be retrieved via [sandboxes](./sandboxes.md), [blueprint start](./blueprint-start.md) and from the sandbox ID segment in the CloudShell Portal URL. | - -You may add the following optional parameters to the end of the method's URL to filter the number of events. For example - displaying the last 100 events: -| Query parameters | Description/Comments | -| --- | --- | -| `tail` | Last number of entries to return. `(integer)` | -| `from_entry_id` | ID of the first entry in the response page to display, which is returned in the `next_entry_id` property of the response `(string)` | -| `since` | Time from which to return all entries. Time must be specified in ISO 8601 format (for example PT23H).`(string)` | - -### HTTP method - -`GET` - -### Request - -
-Headers - -Example header format for the `sandbox output` method: - -`Authorization: Basic ` - -`Content-Type: application/json` - -By default, the method returns all the output messages that were displayed during the sandbox's lifecycle. - -
- -### Response - -
-Response example - -The `sandbox output` method returns the entries from the Output console of a particular sandbox. The response includes : - -```javascript -{ - "number_of_returned_entries":"2", - "next_entry_id":"99434", - "more_pages":"false", - "entries":[ - { - "id":"82159835-2d95-46a9-95ec-9251963d203d", - "time":"2017-01-15T09:51:17Z", - "text":"Beginning sandbox setup" - }, - { - "id":"79549eaf-7f1a-4180-a88b-e7da27e5075b", - "time":"2017-01-15T09:51:20Z", - "text":"Resource: \"\" is now: Online" - } - ], - "_links":{ - "self":{ - "href":"/sandboxes/994bd534-740a-45f5-851f-ff452f2a17a2/output", - "method":"GET" - } - } -} -``` -
- -
-Response summary - -The response properties of the `sandbox output` method are described in the following table. - -| Property | Sub Property | Description/Comments | -| --- | --- | --- | -| `number_of_returned_entries` |   | The number of entries in the Output console that match the filter criteria in the request. `(integer)` | -| `next_entry_id` |   | (Relevant if the response includes multiple pages) The ID of the first entry on the next page of the response `(integer)`
Note: To get the next page, run the method again with this value in the `from_entry_id` input parameter. | -| `more_pages` |   | (Relevant if the response includes multiple pages) `true` indicates that there are additional entries that are not displayed in this response page `(bool)` | -| `entries` |   | The details of the output console entry `(array)` | -|   | `id` | The ID of the entry `(string)` | -|   | `time` | The time in which the Output entry was logged `(string)` | -|   | `text` | The text displayed in the Output console for this entry `(string)` | -| `_links` |   | The actions that can be performed on the Output console entries of a sandbox in the user's domain: | -|   | `self` | Provides a link to get the Output console entries for the sandbox via a `GET` request. | - -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-owner-identifier.md b/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-owner-identifier.md deleted file mode 100644 index b34b46f2ef..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-owner-identifier.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -sidebar_position: 22 ---- - -# Owner Sandboxes - -### Description - -Returns list of sandboxes for a specific owner name - -### URL - -`http://{CloudShell Sandbox API Gateway IP address}:{port#}/api/v2/sandboxes/owners/{owner_identifier}` - -| Parameter | Description/Comments | -| --- | --- | -| `owner_identifier` | The name of the user (`string`). | - -### HTTP method - -`GET` - -### Request - -
-Headers - -Example header format for the `sandboxes` method: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -### Response - -
-Response example - -This method returns a list of all the active sandboxes a specific owner has. - -```javascript -[ - { - "name": "Sanity Testing on Latest Build", - "id": "fa4a313a-061d-4a40-9815-9730dd7c916f", - "description": "Blueprint with preconfigured sanity tests to be run on the latest build.", - "state": "Ready", - "blueprint": { - "name": "Sanity Testing Blueprint", - "id": "506f1880-5ba0-48ad-9385-d259edcf885b" - } - }, - { - "name": "System Diagnostics Test", - "id": "0b0747f3-b3bb-4de1-b0f0-9c15b7327bb9", - "description": "Blueprint that automates system diagnostics checks on the local network.", - "state": "Ready", - "blueprint": { - "name": "System Diagnostics Blueprint", - "id": "07e70b79-3cba-4f1a-a957-fb4b0552fb33" - } - } -] -``` -
- -
-Response summary - -The response output properties of the `sandboxes` method are described in the following table. - -| Property | Sub Property | Description/Comments | -| --- | --- | --- | -| `name` |   | The name of the sandbox. `(string)` | -| `id` |   | The ID of the sandbox. `(string)` | -| `description` |   | A text description of the sandbox. `(string)` | -| `state` |   | The current state of the sandbox. Possible values: Pending, Setup, Ready, Teardown, Error, Ended. `(string)` | -| `blueprint` |   | The details of the sandbox's blueprint `(Array)` | -|   | `name` | The name of the blueprint `(string)` | -|   | `id` | The id of the blueprint `(string)` | - -
diff --git a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-stop.md b/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-stop.md deleted file mode 100644 index 4c065e1447..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandbox-stop.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -sidebar_position: 16 ---- - -# Sandbox Stop - -### Description - -Ends a sandbox per specified sandbox ID. Returns a successful response when the sandbox is stopped. - -### URL - -`http://{CloudShell Sandbox API Gateway IP address}:{port#}/api/v2/sandboxes/{sandbox_identifier}/stop` - -| Parameter | Description/Comments | -| --- | --- | -| `sandbox_identifier` | The id of the sandbox (`string`). Can be retrieved via [sandboxes](./sandboxes.md), [blueprint start](./blueprint-start.md) and from the sandbox ID segment in the CloudShell Portal URL. | - -### HTTP method - -`POST` - -### Request - -
-Headers - -Example header format for the `sandbox stop` method: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -### Response - -
-Response example - -A successful response is displayed when the `sandbox stop` method ends the sandbox: - -```javascript -{ - "result":"success", - "_links":{ - "all":{ - "href":"/sandboxes", - "method":"GET" - } - } -} -``` - -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandboxes.md b/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandboxes.md deleted file mode 100644 index 456fae1e5b..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/sandboxes.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -sidebar_position: 6 ---- - -# Sandboxes - -### Description - -Gets a list of all the running and pending sandboxes (regular and persistent sandboxes) associated with the user's domain, as well as each sandbox's details, including the sandbox ID and the available actions that can be performed on it. It can also show completed sandboxes related to the user's domain. - -### URL - -`http://{CloudShell Sandbox API Gateway IP address}:{port#}/api/v2/sandboxes` - -### HTTP method - -`GET` - -### Request - -
-Headers - -Example header format for the `sandboxes` method: - -`Authorization: Basic ` - -`Content-Type: application/json` - -:::note -To also include completed sandboxes in the response, add the parameter `show_historic` to the request URL: -`http://{CloudShell Sandbox API Gateway IP address}:{port#}/api/v2/sandboxes?show_historic=true` -The default value for this parameter is `false`. -::: - -
- -### Response - -
-Response example - -The `sandboxes` method returns a list of all the sandboxes and the actions that can be performed on each sandbox. - -```javascript -[ - { - "name":"Test Blprnt2", - "id":"11491c80-6f79-4e9c-b592-78242c6dc698", - "description":"This is a list of sandboxes in this user domain", - "state":"Ready", - "blueprint":{ - "name":"Test Blprnt2", - "id":"2f4c972b-5c64-4b08-bae4-73408d7b171d" - }, - "_links":{ - "self":{ - "href":"/sandboxes/11491c80-6f79-4e9c-b592-78242c6dc698", - "method":"GET", - "name":"get a sandbox' details", - "templated":true - }, - "components":{ - "href":"/sandboxes/11491c80-6f79-4e9c-b592-78242c6dc698/components", - "method":"GET" - }, - "stop":{ - "href":"/sandboxes/11491c80-6f79-4e9c-b592-78242c6dc698/stop", - "method":"POST", - "name":"stop a sandbox", - "templated":true - }, - "all":{ - "href":"/sandboxes", - "method":"GET", - "name":"get all sandboxes" - } - } - } -] -``` -
- -
-Response summary - -The response output properties of the `sandboxes` method are described in the following table. - -| Property | Sub Property | Description/Comments | -| --- | --- | --- | -| `name` |   | The name of the sandbox. `(string)` | -| `id` |   | The ID of the sandbox. `(string)` | -| `description` |   | A text description of the sandbox. `(string)` | -| `state` |   | The current state of the sandbox. Possible values: Pending, Setup, Ready, Teardown, Error, Ended. `(string)` | -| `blueprint` |   | The details of the sandbox's blueprint `(Array)` | -|   | `name` | The name of the blueprint `(string)` | -|   | `id` | The id of the blueprint `(string)` | -| `_links` |   | The actions that can be performed on a sandbox in the user's domain: | -|   | `self` | Provides a link to get a specific sandbox's details per specified sandbox ID via a `GET` request. | -|   | `components` | Provides a link to get all components in a sandbox per specified sandbox ID, via a `GET` request. | -|   | `stop` | Provides a link to end an active sandbox per specified sandbox ID via a `POST` request. | -|   | `all` | Provides a link to get all available sandboxes according to the user's domain via a `GET` request. | - -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/get-started-with-cs-sandbox-api.md b/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/get-started-with-cs-sandbox-api.md deleted file mode 100644 index 0fbda18672..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/get-started-with-cs-sandbox-api.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Getting Started with CloudShell Sandbox API - -The following article explain the steps required for using CloudShell Sandbox API with CloudShell. - -## CloudShell Sandbox API workflow - -1. Install the CloudShell Sandbox API service (via the CloudShell Sandbox API installer available during the CloudShell Suite/Quali Server installation). For details, see the CloudShell Installation Guide. - - :::note - The default port for the CloudShell Sandbox API in the Quali Server is 82. You can customize this port number in the CloudShell Configuration wizard - CloudShell Sandbox API configuration page. - ::: - - Upon installation of the Quali Server, the CloudShell Server Proxy and CloudShell Sandbox API services will automatically start running. These services transmit requests and responses to and from the Quali Server database via the CloudShell Sandbox API, as follows: - - 1. Developers use the CloudShell Sandbox API to send a request to the CloudShell Server Proxy service. - 2. The CloudShell Server Proxy service transmits the request to the Quali Server database. - 3. The Quali Server database returns a response to the CloudShell Server Proxy and CloudShell Sandbox API services, and finally to the developer code. -2. Install an API testing tool, such as the [Postman Chrome App](https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?hl=en), or [Swagger UI](http://swagger.io/swagger-ui/). This is recommended so that you can test the API before integrating it into your code. -3. Run the login method: - - - [login](../cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/login.md) method for version 1 - - [login](../cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/login.md) method for version 2 - -Once you have the authorization token (per the specified user and domain), you must include it in the method request header for any of the CloudShell Sandbox API methods on the public blueprints and sandboxes in the desired domain. For a complete list of the available methods access the relevant version: - -For version 1, see [CloudShell Sandbox API Version 1 Reference Guide](../cs-sandbox-api/cs-sandbox-api-version-1-reference-guide/index.md). - -For version 2, see [CloudShell Sandbox API Version 2 Reference Guide](../cs-sandbox-api/cs-sandbox-api-version-2-reference-guide/index.md). - -### Common response codes - -When running the methods, you may get some of the following response codes: - -| Status Code | Message example | Description | -| --- | --- | --- | -| 200 | "Successful response" | Process completed successfully | -| 202 | "Accepted" (Note: This is not yet implemented in the live documentation) | The request has been accepted, but was not yet processed. | -| 400 | "Parameter is not a valid", "The request didn't contain authentication" | Invalid request - the request didn't contain one or more of the required elements. | -| 401 | "Login failed for user" | Authentication problems - User credentials are not in order. | -| 403 | "User is not allowed to view this entity" | The user does not have permission to access the information. | -| 404 | "Entity could not be found" | The element for which you request information was not found.
Tip: CloudShell Sandbox API only works with public blueprints and sandboxes that are based on public blueprints. | - -:::note - For additional information about HTTP status codes, see [https://developer.mozilla.org/en-US/docs/Web/HTTP/Status](http://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml). -::: - -To use the live documentation pages, log in to the **Authentication API** page using your user credentials and the name of the appropriate CloudShell domain. Then, access the **Sandbox API** page to execute its methods on the public blueprints and sandboxes in the domain. - -:::note - Sandbox API can be configured to run in secure mode. See [Configuring Sandbox API to Work in HTTPS Mode](../../install-configure/cloudshell-suite/secure-communication/config-secured-sandbox-api.md). -::: -## Related Topics - -- [CloudShell Sandbox API](./index.md) \ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/index.md b/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/index.md deleted file mode 100644 index 6e34018bcc..0000000000 --- a/versioned_docs/version-2023.3/api-guide/cs-sandbox-api/index.md +++ /dev/null @@ -1,35 +0,0 @@ -# CloudShell Sandbox API - -CloudShell Sandbox API allows developers to use CloudShell via software interfaces. The CloudShell Sandbox API is a RESTful API that can be used to provide sandboxes as a service for a Continuous Integration/DevOps process, or for integration of Quali's software with external software and processes. - -CloudShell Sandbox API allows developers to quickly connect to Quali Server and get details about blueprints and sandboxes related to particular domains, and their contents. - -Developers can use the CloudShell Sandbox API to retrieve information and automate the deployment of CloudShell sandboxes and their components for testing and development purposes. Thus, developers can quickly analyze the required data in order to optimize development of sandboxes as services and continuous integration processes, and run, test, and validate their code as required. Continuous integration can be done automatically using Jenkins or via command line. - -:::note -CloudShell Sandbox API only works with public blueprints. -::: - -For more information, see [Automating CloudShell Sandboxes for DevOps](../../devguide/available-cs-api/automate-cs-sandboxes-for-devops.md). - -## CloudShell Sandbox API live documentation page - -The CloudShell Sandbox RESTful API live documentation page allows you to test and experiment with the APIs, providing information on its different methods and parameters. - -The CloudShell RESTful API live documentation has two page versions. Version 1 (CloudShell version 7.0 and up) includes methods to get basic information about blueprints and sandboxes, create a sandbox from a specific blueprint, and to tear it down. Version 2 (CloudShell version 8.0 and up) also includes information about sandbox components, and blueprint and resource commands. - -The API live documentation pages for both API versions are installed with CloudShell. To access them, browse to the relevant default addresses: - -- Login method (for both versions): **http://\[CloudShellPortalAddress\]:82/api/explore/.** -- Blueprint and sandbox methods: **http://\[CloudShellPortalAddress\]:82/api/v1/explore/** (for version 1)
and **http://\[CloudShellPortalAddress\]:82/api/v2/explore/ (for version 2).** - -If you are accessing the links from the machine on which CloudShell Portal is installed, or from the CloudShell SDK edition machine, you can use "localhost” or "127.0.0.1”. - -:::note -The default port for the CloudShell Sandbox API on the CloudShell Portal machine is 82. You can customize this port number, as required, in the CloudShell Configuration wizard - CloudShell Sandbox API configuration page. -The default port for the Quali Proxy is 8033 and is not configurable (this port provides access to the proxy via HTTP protocol and is used by CloudShell Portal). -::: - -To use the live documentation page, log in to the page with your credentials and the relevant domain name. - -![](/Images/API/SWAGGER-login2.png) \ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/_category_.json b/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/_category_.json deleted file mode 100644 index 1f33276e6f..0000000000 --- a/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "New Job Scheduling REST API", - "position": 7 -} diff --git a/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/api-support-for-jss-and-js.md b/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/api-support-for-jss-and-js.md deleted file mode 100644 index 471750663c..0000000000 --- a/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/api-support-for-jss-and-js.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -sidebar_position: 20 ---- - -# API Support for New Job Scheduling and Job Scheduling (1st Gen) - -The section compares the APIs for the different Job Scheduling features. The New Job Scheduling has a dedicated RESTful API while the original Job Scheduling uses the [Quali API](pathname:///api-docs/2023.3/Quali-API/Quali%20API%20Library.html). - -:::note -For brevity, the term "Job Scheduling (1st Gen)" denotes the original Job Scheduling which is accessed via CloudShell Portal. -::: - -### API support - -|   | New Job Scheduling | 1st Gen Job Scheduling | -| --- | --- | --- | -| **Authentication operations:** | | | -| Login | Available
**Syntax:**
`POST /api/Account/login` | Available via `(/API/Auth/Login)` API | -| Refresh | Available
**Syntax:**
`GET /api/Token/refresh/{refresh_token}` |   | -| Revoke | Available
**Syntax:**
`POST /api/Token/revoke API` |   | -| **Execution Server management operations:** | -| Get execution servers | **Syntax:**
`GET /api/ExecutionServer` API | Available via Get Execution Servers API | -| Get execution server details | Available
**Syntax:**
`GET /api/ExecutionServer` API |   | -| Delete execution server | Available
**Syntax:**
`DELETE /api/ExecutionServer/{id}` |   | -| **Suite management operations:** | -| Get available suite templates |   | Available via Get Available Suite Templates API | -| Get suite template details | Available
**Syntax:**
`GET http:///api/spaces//SuiteTemplate/` | Available via Get Suite Template Details API
**Syntax:**
`GET http://:9000/API/Scheduling/SuiteTemplates/suiteTemplateName` | -| Delete suite template | Available
**Syntax:**
`DELETE /api/spaces/{space_name}/SuiteTemplate/{id}` |   | -| Change suite owner | Available
**Syntax:**
`PUT ​/api​/spaces​/{space_name}​/SuiteTemplate​/{id}​/changeowner` |   | -| Get suite details | Available
**Syntax:**
`GET "http:///api/spaces//SuiteExecution/` | Available via Get Suite Details API
**Syntax:**
`GET http://:9000/API/Scheduling/Suites/suiteId` | -| Get suite status | Available
**Syntax:**
`GET /api/spaces/{space_name}/SuiteTemplate/{id}` | Available via Get Suite Status API
**Syntax:**
`GET http://:9000/API/Scheduling/Suites/Status/suiteId` | -| Get test folder child elements |   | Available for TestShell Studio tests only | -| Get test information |   | Available for TestShell Studio tests only | -| **Suite execution operations:** | -| Get suite executions for specific template | Available
**Syntax:**
`GET ​/api​/spaces​/{space_name}​/SuiteExecution​/{id} GET API` |   | -| Stop suite execution | Available
**Syntax:**`POST /api/spaces/{space_name}/SuiteExecution/{id}/stop` | Available via Stop Suite Execution API
**Syntax:**
`DELETE http://:9000/API/Scheduling/Suites/SuiteId` | -| Enqueue custom suite | Available via `/api/spaces/{space_name}/SuiteExecution/{id}` GET API
**Syntax:**`POST http:///api/spaces/{space_name}/SuiteTemplate/{id}/start` |Available via Enqueue Custom Suite API
**Syntax:**
`POST http://:9000/API/Scheduling/Suites` | -| Enqueue custom job |   | Available via Enqueue Custom Job API | -| Get job details | Available
**Syntax:**
`GET /api/spaces/{space_name}/SuiteExecution/{id}` | Available via Get Job Details API | -| Stop job execution | Not supported for specific job executions. Supported for suite executions via `/api/spaces/{space_name}/SuiteExecution/{id}/stop` API | Available via Stop Job Execution API | -| Get jobs in queue |   | Available via Get Queued Jobs API | -| Get running jobs |   | Available via Get Running Jobs API | -| Deploy dedicated reservation per job | Available | Available | -| Generate suite execution report | Available
**Syntax:**
`GET/api/spaces/{space_name}/TestExecution/{id}/Report` |   | -| **Reservation operations:**
The following APIs are available for both Job Scheduling features via Quali API. | -| Get reservation attachment |   |   | -| Get reservation attachment details |   |   | -| Delete file from reservation |   |   | -| **Configuration operations:**
The following APIs are available for both Job Scheduling features via Quali API. | -| Import package |   |   | -| Export package |   |   | - -## Related Topics - -- [REST API Page](../../jss/jss-portal/jss-rest-api.md) \ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/change-suite-owner.md b/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/change-suite-owner.md deleted file mode 100644 index f4e51e8e1a..0000000000 --- a/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/change-suite-owner.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -sidebar_position: 12 ---- - -# Change suite owner - -### Description - -Changes a suite template's owner. - -### URL - -`http://{Job Scheduling API IP}:{port#}/api/spaces/{space_name}/SuiteTemplate/{id}/changeowner` - -| Parameter | Description/Comments | -| --- | --- | -| space_name | CloudShell domain in which the suite was executed. (string) | -| id | Suite template's id - included in suite's URL. For example:
http://192.168.74.11/Test%20Lab/suite/b25d72e0-4f44-4b62-949c-02596196b157/ | - -### HTTP method - -`PUT` - -### Request - -
-Headers - -Example header format: - -`Content-Type: application/json` -
- -
-Request body - -| Parameter | Description/Comments | -| --- | --- | -| ownerUsername | CloudShell username to set as the new owner. (string) | -
- -
-Request example -```javascript -{ - "ownerUsername": "user1" -} -``` -
- diff --git a/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/delete-suite-template.md b/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/delete-suite-template.md deleted file mode 100644 index d7d395b2c6..0000000000 --- a/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/delete-suite-template.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -sidebar_position: 9 ---- - -# Delete suite template - -### Description - -Deletes a specific suite template. - -### URL - -`http://{Job Scheduling API IP}:{port#}/api/spaces/{space_name}/SuiteTemplate/{id}` - -| Parameter | Description/Comments | -| --- | --- | -| space_name | CloudShell domain in which the suite was executed. (string) | -| id | Suite execution's ID - included in the suite's URL. (string)
For example:
http://192.168.74.11/Test%20Lab/execution/1ab91be7-6136-4fd5-b22d-72c462947459/ | - -### HTTP method - -`DELETE` - -### Request - -
-Headers - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -### Response - -```javascript -200 OK -``` \ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/delete-test-discovery-service.md b/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/delete-test-discovery-service.md deleted file mode 100644 index 5e4b193450..0000000000 --- a/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/delete-test-discovery-service.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -sidebar_position: 15 ---- - -# Delete Test Discovery Service - -### Description - -Deletes a Test Discovery Service. - -:::warning Important -Before you delete a test repository, please note that this action will remove from CloudShell all tests that were discovered by the repository's discovery server. Any suites that use these tests will be rendered unusable. -::: - -### URL - -`http://{Job Scheduling API IP}:{port#}/{space_name}/DiscoveryServer/{id}` - -| Parameter | Description/Comments | -| --- | --- | -| id | Test Discovery Service's id, which can be retrieved via [Get Test Discovery Services](./get-test-discovery-services) method. | - -### HTTP method - -`DELETE` - -### Request - -
-Headers - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -### Response - -```javascript -200 OK -``` \ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/delete-test-execution-service.md b/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/delete-test-execution-service.md deleted file mode 100644 index b904ed7672..0000000000 --- a/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/delete-test-execution-service.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -sidebar_position: 17 ---- - -# Delete Test Execution Service - -### Description - -Deletes a Test Execution Service. - -:::info Notes -When deleting a Test Execution Service, it is marked as deleted and the following takes place: - -- The Test Execution Service will not get new execution tasks. -- Test that are pending/running on the Test Execution Service will be terminated. -- The status of jobs assigned to the Test Execution Service will be set to terminated with the reason being that the Test Execution Service was deleted. -::: - -### URL - -`http://{Job Scheduling API IP}:{port#}/{space_name}/ExecutionServer/{id}` - -| Parameter | Description/Comments | -| --- | --- | -| id | Test Execution Service's id, which can be retrieved via [Get Test Execution Services](./get-test-execution-services) method. | - -### HTTP method - -`DELETE` - -### Request - -
-Headers - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -### Response - -```javascript -200 OK -``` \ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/get-suite-execution.md b/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/get-suite-execution.md deleted file mode 100644 index 79518b95a2..0000000000 --- a/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/get-suite-execution.md +++ /dev/null @@ -1,214 +0,0 @@ ---- -sidebar_position: 5 ---- - -# Get suite execution - -### Description - -Get a suite execution's details. - -### URL - -`http://{Job Scheduling API IP}:{port#}/api/spaces/{space_name}/SuiteExecution/{id}` - -| Parameter | Description/Comments | -| --- | --- | -| space_name | CloudShell domain in which the suite was executed. (string) | -| id | Suite execution's ID- included in the suite's URL. (string)
For example:
http://192.168.74.11/Test%20Lab/execution/1ab91be7-6136-4fd5-b22d-72c462947459/ | - -### HTTP method - -`GET` - -### Request - -
-Headers - - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -### Response - -```javascript -200 OK -``` - -
-Response example -```javascript -{ - "id": "1ab91be7-6136-4fd5-b22d-72c462947459", - "counter": 1, - "suiteTemplateDescription": "", - "createdDate": "2020-10-28T10:30:22.035Z", - "executedByName": "admin", - "executedByUsername": "admin", - "suiteTemplateName": "Hardware Network Test", - "suiteTemplateId": "b25d72e0-4f44-4b62-949c-02596196b157", - "startedDate": "2020-10-28T10:30:31.14Z", - "endedDate": "2020-10-28T10:31:01.43Z", - "status": 2, - "statusDescription": "Succeeded", - "jobs": [ - { - "id": "205aac56-5826-4b5e-a96a-5887b0940b40", - "name": "job 1", - "description": null, - "startedDate": "2020-10-28T10:30:31.14Z", - "endedDate": "2020-10-28T10:31:01.43Z", - "status": 2, - "statusDescription": "Succeeded", - "testExecutionServerName": "My TES2", - "blueprint": { - "id": "0e1e151f-a581-4e6d-b9e2-7473b1d2297e", - "name": "CloudShell Sandbox Template", - "url": "http://192.168.30.6/RM/Diagram/Index/0e1e151f-a581-4e6d-b9e2-7473b1d2297e?diagramType=Topology" - }, - "tests": [ - { - "id": "672df5e3-e103-46ad-b324-88ca9b520c97", - "testId": "17936298/demo_tests1/new_test (1).robot", - "name": "new_test (1).robot", - "path": "demo_tests1", - "repositoryName": "ROBOT Tests", - "result": 1, - "resultDescription": "Passed", - "startedDate": "2020-10-28T10:30:31.14Z", - "endedDate": "2020-10-28T10:31:01.43Z", - "inputs": [ - { - "name": "additional_parameters", - "value": "" - } - ], - "errorCode": 0, - "errorMessage": "", - "hasReport": true - } - ], - "sandbox": { - "id": "46dccae6-88ff-47cf-9d67-f1f058a125a0", - "name": "job 1 #1", - "url": "http://192.168.30.6/RM/Diagram/Index/46dccae6-88ff-47cf-9d67-f1f058a125a0", - "inputs": null - }, - "errorCode": null, - "errorMessage": null - } - ] -} -``` -
- -
-Response summary - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterDescription/Comments
idSuite execution id. (guid)
counterSuite execution number. (numeric)
suiteTemplateDescriptionSuite execution description. (string)
createdDateSuite execution creation time. (ISO 8601 Date/Time format)
executedByNameFirst and Last name of the CloudShell user who executed the suite. (ISO 8601 Date/Time format)
executedByUserNameCloudShell username who executed the suite. (string)
suiteTemplateNameSuite template name. (string)
suiteTemplateIdSuite template id - included in the suite's URL. (guid)
startedDateSuite execution start time. (ISO 8601 Date/Time format)
endedDateSuite execution completion time. (ISO 8601 Date/Time format)
statusSuite execution status code. (numeric)
- For details, see [Statuses and results](./jss-rest-api-response-codes).
statusDescriptionSuite execution status description. (string)
- For details, see [Statuses and results](./jss-rest-api-response-codes).
jobs - Job details:
- - **id**: Job ID. (guid) - - **name**: Job name. (string) - - **description**: Job description, if defined. (string) - - **startedDate**: Job execution start time. (ISO 8601 Date/Time format) - - **endedDate**: Job execution completion time. (ISO 8601 Date/Time format) - - **status**: Job status code. (numeric) For details, see [Statuses and results](./jss-rest-api-response-codes). - - **statusDescription**: Job status description. (string) For details, see [Statuses and results](./jss-rest-api-response-codes). - - **testExecutionServerName**: Test Execution Service that handled the suite's execution. (string) - - **blueprint**: Details of the job's blueprint. - - **id**: Blueprint ID - included in the blueprint's URL. (guid) -
- For example: -
- http://192.168.30.6/RM/Diagram/Index/0e1e151f-a581-4e6d-b9e2-7473b1d2297e?diagramType=Topology - - **Name**: Blueprint name. (string) - - **URL**: Blueprint URL. (string) - - **tests**: Details of the job's tests. - - **id**: Unique id of the test’s execution. (guid) - - **testID**: Test path on the online test repository. (string) - - **name**: Test name. (string) - - **path**: Test's folder path on the online test repository. (string) - - **repositoryName**: Name of online repository containing the test. (string) - - **result**: Test result code. (numeric) For details, see [Statuses and results](./jss-rest-api-response-codes). - - **resultDescription**: Test result description. (string) For details, see [Statuses and results](./jss-rest-api-response-codes). - - **startedDate**: Test execution start time. (ISO 8601 Date/Time format) - - **EndedDate**: Test execution completion time. (ISO 8601 Date/Time format) - - **Inputs**: Details about the test's inputs: - - **name**: Input name. (string) - - **Value**: Input value, if defined. (string) - - **errorCode**: Test error code. (numeric) For details, see [Statuses and results](./jss-rest-api-response-codes). - - **errorMessage**: Test error message. (string) For details, see [Statuses and results](./jss-rest-api-response-codes). - - **hasReport**: Test report, if generated. (bool) - - **sandbox**: Details about the sandbox spun up for the job's execution. - - **id**: Sandbox ID - included in the sandbox URL. (guid) - - **name**: Sandbox name, composed of job name, dash and job execution number. (string) For example: "job 1 #1" - - **url**: Sandbox URL. (string) - - **inputs**: Sandbox inputs, if defined. (string) - - **errorCode**: Job error code. (numeric) For details, see [Statuses and results](./jss-rest-api-response-codes). - - **errorMessage**: Job error message. (string) For details, see [Statuses and results](./jss-rest-api-response-codes). -
-
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/get-suite-template-details.md b/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/get-suite-template-details.md deleted file mode 100644 index 5f06a738d8..0000000000 --- a/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/get-suite-template-details.md +++ /dev/null @@ -1,219 +0,0 @@ ---- -sidebar_position: 9 ---- - -# Get suite template details - -### Description - -Gets a detailed summary of a suite template in a domain. - -### URL - -`http://{Job Scheduling API IP}:{port#}/api/spaces/{space_name}/SuiteTemplate/{id}` - -| Parameter | Description/Comments | -| --- | --- | -| space_name | CloudShell domain in which the suite was executed. (string) | -| id | Suite execution's ID- included in the suite's URL. (string)
For example:
http://192.168.74.11/Test%20Lab/execution/1ab91be7-6136-4fd5-b22d-72c462947459/ | - -### HTTP method - -`GET` - -### Request - -
-Headers - - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -### Response - -
-Response example -```javascript -{ - "id": "b25d72e0-4f44-4b62-949c-02596196b157", - "createdDate": "2020-10-28T10:30:19.122Z", - "ownerUsername": "admin", - "ownerName": "admin", - "modifiedDate": "2020-10-28T11:10:07.78Z", - "modifiedByUsername": "admin", - "modifiedByName": "admin", - "testTypeName": "Robot", - "testTypeId": "59aabbe8-dc0b-48c4-81af-d76f915b47b1", - "spaceId": "35f2d31b-7ce2-45b1-b7aa-7e5002a9031c", - "spaceName": "Test Lab", - "name": "Hardware Network Test", - "description": "", - "cronTrigger": null, - "shouldStartAutomatically": false, - "jobs": [ - { - "name": "job 1", - "description": "", - "durationBufferInMinutes": 0, - "blueprint": { - "id": "0e1e151f-a581-4e6d-b9e2-7473b1d2297e", - "name": "CloudShell Sandbox Template", - "inputs": [] - }, - "tests": [ - { - "id": "17936298/demo_tests1/new_test (1).robot", - "name": "new_test (1).robot", - "path": "demo_tests1", - "durationInMinutes": 1, - "inputs": [ - { - "name": "additional_parameters", - "value": "" - } - ], - "repositoryName": "ROBOT Tests" - }, - { - "id": "17936298/140_tests_tsivya2/b (101).robot", - "name": "b (101).robot", - "path": "140_tests_tsivya2", - "durationInMinutes": 1, - "inputs": [ - { - "name": "additional_parameters", - "value": "fghfgh" - } - ], - "repositoryName": "ROBOT Tests" - }, - { - "id": "17936298/140_tests_tsivya2/b (102).robot", - "name": "b (102).robot", - "path": "140_tests_tsivya2", - "durationInMinutes": 3, - "inputs": [ - { - "name": "additional_parameters", - "value": "dfgsd" - } - ], - "repositoryName": "ROBOT Tests" - }, - { - "id": "17936298/140_tests_tsivya2/b (103).robot", - "name": "b (103).robot", - "path": "140_tests_tsivya2", - "durationInMinutes": 4, - "inputs": [ - { - "name": "additional_parameters", - "value": "dfg" - } - ], - "repositoryName": "ROBOT Tests" - } - ] - } - ] -} -``` -
- -
-Response summary - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterDescription/Comments
idSuite execution id. (guid)
createdDateSuite template creation time. (ISO 8601 Date/Time format)
ownerUserNameCloudShell username who owns the suite template. (string)
ownerNameFirst and Last name of the CloudShell user who owns the suite template. (string)
modifiedDateLast modification time of suite template. (string)
modifiedByUserNameCloudShell user who last modified the template. (string)
testTypeNameTesting framework of suite's tests. (string)
testTypeIdID of the test type. (guid)
spaceIdID of domain in which the suite template resides. (guid)
spaceNameDomain in which the suite template resides. (string)
nameSuite template name. (string)
descriptionSuite template description. (string)
cronTriggerConfigured recurring executions of this suite, in cron. (cron expression)
shouldStartAutomaticallySpecifies if suite execution is set to start automatically (true). (bool)
jobs - Job details:
- - **name**: Job name. (string) - - **description**: Job description, if defined. (string) - - **durationBufferInMinutes**: Buffer period, in minutes. (numeric) - - **blueprint**: Details of the job's blueprint. - - **id**: Blueprint ID - included in the blueprint's URL. (guid) -
- For example: -
- http://192.168.30.6/RM/Diagram/Index/0e1e151f-a581-4e6d-b9e2-7473b1d2297e?diagramType=Topology - - **name**: Blueprint name. (string) - - **inputs**: Inputs defined on the job's blueprint. (string) (string) - - **tests**: Details of the job's tests. - - **id**: Test ID. (guid) - - **name**: Test name. (string) - - **path**: Test path from the root. (string) - - **durationInMinutes**: Test's duration, in minutes. (numeric) - - **inputs**: Details about the test's inputs: - - **name**: Input name. (string) - - **Value**: Input value, if defined. (string) - - **repositoryName**: Name of online repository containing the test. (string) -
-
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/get-suite-template-executions.md b/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/get-suite-template-executions.md deleted file mode 100644 index 046d52fae1..0000000000 --- a/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/get-suite-template-executions.md +++ /dev/null @@ -1,278 +0,0 @@ ---- -sidebar_position: 10 ---- - -# Get suite template executions - -### Description - -Gets the executions of a specific suite template, including job and test details. - -### URL - -`http://{Job Scheduling API IP}:[port#]/api/spaces/{space_name}/SuiteTemplate/{id}/executions?createdBy={createdBy}$count={count}` - -| Parameter | Description/Comments | -| --- | --- | -| space_name | CloudShell domain in which the suite was executed. (string) | -| id | Suite execution's ID- included in the suite's URL. (string)
For example:
http://192.168.74.11/Test%20Lab/execution/1ab91be7-6136-4fd5-b22d-72c462947459/ | -| createdBy | CloudShell user who started the execution. You can provide a specific CloudShell username or enter 'anyone' to return all results. (string) | -| count | Number of executions to get, starting with the last. For example, if the template has 5 executions, a count of "3" will return executions 5, 4, and 3. (number) | - -### HTTP method - -`GET` - -### Request - -
-Headers - - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -### Response - -```javascript -200 OK -``` - -
-Response example -```javascript -[ - { - "id": "fde35ef4-eb00-4d49-a24c-107f55e2192e", - "counter": 9, - "suiteTemplateDescription": "", - "createdDate": "2020-10-28T12:47:44.64Z", - "executedByName": "admin", - "executedByUsername": "admin", - "suiteTemplateName": "Hardware Network Test", - "suiteTemplateId": "b25d72e0-4f44-4b62-949c-02596196b157", - "startedDate": "2020-10-28T12:47:50.66Z", - "endedDate": "2020-10-28T12:49:51.887Z", - "status": 2, - "statusDescription": "Succeeded", - "jobs": [ - { - "id": "7a1b3d9c-ff65-461e-a7e6-fff538af3159", - "name": "job 1", - "description": null, - "startedDate": "2020-10-28T12:47:50.66Z", - "endedDate": "2020-10-28T12:49:51.887Z", - "status": 2, - "statusDescription": "Succeeded", - "testExecutionServerName": "My TES2", - "blueprint": { - "id": "0e1e151f-a581-4e6d-b9e2-7473b1d2297e", - "name": "CloudShell Sandbox Template", - "url": null - }, - "tests": [ - { - "id": "89c85ae0-2563-45ad-b810-8a0581a0f526", - "testId": "17936298/demo_tests1/new_test (1).robot", - "name": "new_test (1).robot", - "path": "demo_tests1", - "repositoryName": "ROBOT Tests", - "result": 1, - "resultDescription": "Passed", - "startedDate": "2020-10-28T12:47:50.66Z", - "endedDate": "2020-10-28T12:48:20.962Z", - "inputs": [ - { - "name": "additional_parameters", - "value": "" - } - ], - "errorCode": 0, - "errorMessage": "", - "hasReport": false - }, - { - "id": "9b3fbf41-a006-426d-8d09-b5463895106b", - "testId": "17936298/140_tests_tsivya2/b (101).robot", - "name": "b (101).robot", - "path": "140_tests_tsivya2", - "repositoryName": "ROBOT Tests", - "result": 1, - "resultDescription": "Passed", - "startedDate": "2020-10-28T12:48:20.967Z", - "endedDate": "2020-10-28T12:48:51.312Z", - "inputs": [ - { - "name": "additional_parameters", - "value": "fghfgh" - } - ], - "errorCode": 0, - "errorMessage": "", - "hasReport": false - }, - { - "id": "17cc6edf-0899-4e29-b69f-a7c6899fddac", - "testId": "17936298/140_tests_tsivya2/b (102).robot", - "name": "b (102).robot", - "path": "140_tests_tsivya2", - "repositoryName": "ROBOT Tests", - "result": 1, - "resultDescription": "Passed", - "startedDate": "2020-10-28T12:48:51.32Z", - "endedDate": "2020-10-28T12:49:21.584Z", - "inputs": [ - { - "name": "additional_parameters", - "value": "dfgsd" - } - ], - "errorCode": 0, - "errorMessage": "", - "hasReport": false - }, - { - "id": "3c63a8ce-348e-4b5d-acb2-41d3d9f9ecaf", - "testId": "17936298/140_tests_tsivya2/b (103).robot", - "name": "b (103).robot", - "path": "140_tests_tsivya2", - "repositoryName": "ROBOT Tests", - "result": 1, - "resultDescription": "Passed", - "startedDate": "2020-10-28T12:49:21.589Z", - "endedDate": "2020-10-28T12:49:51.887Z", - "inputs": [ - { - "name": "additional_parameters", - "value": "dfg" - } - ], - "errorCode": 0, - "errorMessage": "", - "hasReport": false - } - ], - "sandbox": { - "id": "b1824a49-d204-40fc-ae51-fed6e7396960", - "name": "job 1 #9", - "url": null, - "inputs": null - }, - "errorCode": null, - "errorMessage": null - } - ] - }, -] -``` -
- -
-Response summary - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterDescription/Comments
idSuite execution id. (guid)
counterSuite execution number. (numeric)
suiteTemplateDescriptionSuite execution description. (string)
createdDateSuite execution creation time. (ISO 8601 Date/Time format)
executedByNameFirst and Last name of the CloudShell user who executed the suite. (ISO 8601 Date/Time format)
executedByUserNameCloudShell username who executed the suite. (string)
suiteTemplateNameSuite template name. (string)
suiteTemplateIdSuite template id - included in the suite's URL. (guid)
startedDateSuite execution start time. (ISO 8601 Date/Time format)
endedDateSuite execution completion time. (ISO 8601 Date/Time format)
statusSuite execution status code. (numeric)
- For details, see [Statuses and results](./jss-rest-api-response-codes).
statusDescriptionSuite execution status description. (string)
- For details, see [Statuses and results](./jss-rest-api-response-codes).
jobs - Job details:
- - **id**: Job ID. (guid) - - **name**: Job name. (string) - - **description**: Job description, if defined. (string) - - **startedDate**: Job execution start time. (ISO 8601 Date/Time format) - - **endedDate**: Job execution completion time. (ISO 8601 Date/Time format) - - **status**: Job status code. (numeric) For details, see [Statuses and results](./jss-rest-api-response-codes). - - **statusDescription**: Job status description. (string) For details, see [Statuses and results](./jss-rest-api-response-codes). - - **testExecutionServerName**: Test Execution Service that handled the suite's execution. (string) - - **blueprint**: Details of the job's blueprint. - - **id**: Blueprint ID - included in the blueprint's URL. (guid) -
- For example: -
- http://192.168.30.6/RM/Diagram/Index/0e1e151f-a581-4e6d-b9e2-7473b1d2297e?diagramType=Topology - - **Name**: Blueprint name. (string) - - **URL**: Blueprint URL. (string) - - **tests**: Details of the job's tests. - - **id**: Unique id of the test’s execution. (guid) - - **testID**: Test path on the online test repository. (string) - - **name**: Test name. (string) - - **path**: Test's folder path on the online test repository. (string) - - **repositoryName**: Name of online repository containing the test. (string) - - **result**: Test result code. (numeric) For details, see [Statuses and results](./jss-rest-api-response-codes). - - **resultDescription**: Test result description. (string) For details, see [Statuses and results](./jss-rest-api-response-codes). - - **startedDate**: Test execution start time. (ISO 8601 Date/Time format) - - **EndedDate**: Test execution completion time. (ISO 8601 Date/Time format) - - **Inputs**: Details about the test's inputs: - - **name**: Input name. (string) - - **Value**: Input value, if defined. (string) - - **errorCode**: Test error code. (numeric) For details, see [Statuses and results](./jss-rest-api-response-codes). - - **errorMessage**: Test error message. (string) For details, see [Statuses and results](./jss-rest-api-response-codes). - - **hasReport**: Test report, if generated. (bool) - - **sandbox**: Details about the sandbox spun up for the job's execution. - - **id**: Sandbox ID - included in the sandbox URL. (guid) - - **name**: Sandbox name, composed of job name, dash and job execution number. (string) For example: "job 1 #1" - - **url**: Sandbox URL. (string) - - **inputs**: Sandbox inputs, if defined. (string) - - **errorCode**: Job error code. (numeric) For details, see [Statuses and results](./jss-rest-api-response-codes). - - **errorMessage**: Job error message. (string) For details, see [Statuses and results](./jss-rest-api-response-codes). -
-
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/get-suite-templates.md b/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/get-suite-templates.md deleted file mode 100644 index 4a3cf1f6d8..0000000000 --- a/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/get-suite-templates.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -sidebar_position: 8 ---- - -# Get suite templates - -### Description - -Gets a basic summary of all suite templates in a specific domain. - -### URL - -`http://{Job Scheduling API IP}:{port#}/api/spaces/{space_name}/SuiteTemplate/Summary` - -| Parameter | Description/Comments | -| --- | --- | -| space_name | CloudShell domain in which the suite was executed. (string) | - -### HTTP method - -`GET` - -### Request - -
-Headers - - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -### Response - -
-Response example -```javascript -[ - { - "id": "b25d72e0-4f44-4b62-949c-02596196b157", - "name": "Hardware Network Test", - "description": "", - "ownerName": "admin", - "ownerUsername": "admin", - "createdDate": "2020-10-28T10:30:19.122Z", - "modifiedDate": "2020-10-28T11:10:07.78Z" - } -] -``` -
- -
-Response summary - -| Parameter | Description/Comments | -| --- | --- | -| id | Suite template id. (guid) | -| name | Suite template name. (string) | -| description | Suite template description, if defined. (string) | -| ownerName | First and last name of the CloudShell user who owns the suite. (string) | -| ownerUserName | CloudShell username who owns the suite. (string) | -| createdDate | Suite template creation time. (ISO 8601 Date/Time format) | -| modifiedDate | Last modification time of suite template. (ISO 8601 Date/Time format) | -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/get-test-discovery-services.md b/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/get-test-discovery-services.md deleted file mode 100644 index 376650a0e7..0000000000 --- a/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/get-test-discovery-services.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -sidebar_position: 16 ---- - -# Get Test Discovery Services - -### Description - -Gets all registered Test Discovery Services, including each server's details (server id, address, name, etc.). - -### URL - -`http://{Job Scheduling API IP}:{port#}/api/DiscoveryServer` - -### HTTP method - -`GET` - -### Request - -
-Headers - - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -### Response - -
-Response example -```javascript -[ - { - "id": "df80242a-0372-46f7-b2cb-6766cd343c4b", - "address": "test-discovery-service-svc", - "name": "Robot Discovery Service", - "description": "Robot Discovery Service", - "testTypeName": "robot", - "isOnline": true, - "repository": { - "url": "", - "displayName": "ROBOT Tests" - } - } -] -``` -
- -
-Response summary - -| Parameter | Description/Comments | -| --- | --- | -| id | Test Discovery Service id. (guid) | -| address | Test Discovery Service address. (string) | -| name | Test Discovery Service name. (string) | -| description | Test Discovery Service description, if defined. (string) | -| testTypeName | Test Discovery Service's supported test type. (string)
For example, Robot. | -| isOnline | Whether the Test Discovery Service is currently online. (bool) | -| repository | Details of the online test repository associated to this Test Discovery Server.
  • **url**: Online test repository URL. (string)
  • **displayName**: Name of the online test repository. (string)
| -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/get-test-execution-report.md b/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/get-test-execution-report.md deleted file mode 100644 index ec0b385cea..0000000000 --- a/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/get-test-execution-report.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -sidebar_position: 19 ---- - -# Get test execution report - -### Description - -Gets a specific test execution's report. - -### URL - -`http://{Job Scheduling API IP}:[port#]/api/spaces/{space_name}/TestExecution/{id}/Report` - -| Parameter | Description/Comments | -| --- | --- | -| space_name | CloudShell domain in which the suite was executed. (string) | -| id | Suite execution's ID- included in the suite's URL. (string)
For example:
http://192.168.74.11/Test%20Lab/execution/1ab91be7-6136-4fd5-b22d-72c462947459/ - included in [Get suite execution](./get-suite-execution) | - - -### HTTP method - -`GET` - -### Request - -
-Headers - - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -### Response - -
-Response example -```javascript -{ - "testResult": 1, - "name": "new_test (1).robot", - "path": "demo_tests1", - "startTime": "2020-10-28T20:05:07.472Z", - "endTime": "2020-10-28T20:05:37.653Z", - "testExecutionServerName": "My TES2", - "executedBy": "steven.g", - "report": "Test request data: {\"domainName\": \"Test Lab\", \"test\": \"demo_tests1/new_test (1).robot\", \"reportsFullPath\": \"/home/jrobot/app/nfs/quali/archive/e1a812cd-192d-4617-8046-be5c5861d46c_steven.g\", \"reservationID\": \"e1a812cd192d46178046be5c5861d46c\", \"executionID\": \"9dc164b376004515ac94da4b933d1d7c\", \"testInactivityTimeoutInMinutes\": 2, \"username\": \"steven.g\", \"job\": null, \"parameters\": \"\", \"suite\": null, \"robot\": null, \"inputs\": null}", - "errorCode": 0, - "errorMessage": "" -} -``` -
- -
-Response summary - -| Parameter | Description/Comments | -| --- | --- | -| testResult | Test result code. (numeric)
For details, see [Statuses and results](../../jss/statuses-and-results.md). | -| name | Test name. (string) | -| path | Test's folder path on the online test repository. (string) | -| startTime | Test execution's start time. (ISO 8601 Date/Time format) | -| endTime | Test execution's completion time. (ISO 8601 Date/Time format) | -| testExecutionServerName | Test Execution Service used to execute the test. (string) | -| executedBy | CloudShell user who executed the test. (string) | -| report | Test execution report. (json) | -| errorCode | Test execution's error code. (numeric)
For details, see [Statuses and results](../../jss/statuses-and-results.md). | -| errorMessage | Test execution's error message. (string)
For details, see [Statuses and results](../../jss/statuses-and-results.md). | -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/get-test-execution-services.md b/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/get-test-execution-services.md deleted file mode 100644 index d801eae7e8..0000000000 --- a/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/get-test-execution-services.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -sidebar_position: 18 ---- - -# Get Test Execution Services - -### Description - -Gets all registered Test Execution Services, including each server's details (server id, address, test type, capacity, etc.). - -### URL - -`http://{Job Scheduling API IP}:{port#}/api/ExecutionServer` - -### HTTP method - -`GET` - -### Request - -
-Headers - - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -### Response - -
-Response example -```javascript -[ - { - "id": "94f4ab95-5c58-46b1-adce-fab88f9196e4", - "name": "My TES1", - "testTypeId": "59aabbe8-dc0b-48c4-81af-d76f915b47b1", - "testTypeName": "Robot", - "address": "http://test-exec-srv.test-exec-srv-2.default.svc.cluster.local:8250", - "capacity": 200, - "description": "Cloudshell Execution Service for running Robot tests", - "runningJobsCount": 0, - "leasedJobsCount": 0, - "isOnline": true, - "isIncluded": true, - "excludedByUsername": null, - "excludedByName": null, - "excludeReason": null, - "spaces": [] - }, -] -``` -
- -
-Response summary - -| Parameter | Description/Comments | -| --- | --- | -| id | Test Execution Service id. (guid) | -| name | Test Execution Service name. (string) | -| testTypeId | Id of the test type. (guid) | -| testTypeName | Test Execution Service supported test type. (string)
For example, Robot. | -| address | Test Execution Service address. (string) | -| capacity | Maximum supported number of concurrent job executions. (numeric) | -| description | Test Execution Service description, if defined. (string) | -| runningJobsCount | Number of jobs currently running on the Test Execution Service.
Note that the sum total of the leasedJobsCount and runningJobsCount cannot exceed the defined capacity. (numeric) | -| leasedJobsCount | Job slots allocated to a suite execution while the job’s sandbox is being created. (numeric)
Note that the sum total of the leasedJobsCount and runningJobsCount cannot exceed the defined capacity. | -| isOnline | Whether the Test Execution Service is currently online. (bool) | -| isIncluded | Whether the Test Execution Service is currently included. (bool) | -| excludedByUsername | (Applies only if the Test Execution Service is currently excluded) CloudShell username who excluded the Test Execution Service. (string) | -| excludedByName | (Applies only if the Test Execution Service is currently excluded) First and last name of the CloudShell user who excluded the Test Execution Service. (string) | -| excludeReason | (Applies only if the Test Execution Service is currently excluded) Reason provided for excluding the Test Execution Service. (string) | -| spaces | Domains in which this Test Execution Service is used. (string) | -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/index.md b/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/index.md deleted file mode 100644 index 9f941d3bd1..0000000000 --- a/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/index.md +++ /dev/null @@ -1,54 +0,0 @@ -# New Job Scheduling REST API - -The New Job Scheduling REST API enables developers to perform certain administrative actions, including managing your Test Execution and Discovery services and integrating Job Scheduling operations as part of a CI/CD process. - -## Live documentation page - -The New Job Scheduling live documentation page allows you to test and experiment with the API. It is accessed directly from the Job Scheduling Portal, by clicking the REST API tab on the left. For details, see [REST API Page](./jss-api-login.md). - -To use the API's methods, you must pass an authentication token. To obtain the token, execute the [New Job Scheduling API Login](./jss-api-login.md) method. There's also a [Refresh login](./refresh-login.md) method for situations where your token's validity period has expired and you need to renew it. - -The following New Job Scheduling REST API methods are available: - -**Account:** - -- [New Job Scheduling API Login](./jss-api-login.md) -- [Revoke login](./revoke-login.md) -- [Refresh login](./refresh-login.md) - -**Suite Executions:** - -- [Get suite execution](./get-suite-execution.md) -- [Stop suite execution](./stop-suite-execution.md) - -**AdHoc Suites:** - -- [Start adhoc suite execution](./start-adhoc-suite-execution.md) - -**Suite Templates:** - -- [Get suite templates](./get-suite-templates.md) -- [Get suite template details](./get-suite-template-details.md) -- [Delete suite template](./delete-suite-template.md) -- [Get suite template executions](./get-suite-template-executions.md) -- [Change suite owner](./change-suite-owner.md) -- [Start suite execution](./start-suite-execution.md) - -**Test Discovery Servers:** - -- [Delete Test Discovery Service](./delete-test-discovery-service.md) -- [Get Test Discovery Services](./get-test-discovery-services.md) - -**Test Execution Servers:** - -- [Delete Test Execution Service](./delete-test-execution-service.md) -- [Get Test Execution Services](./get-test-execution-services.md) - -**Test Executions:** - -- [Get test execution report](./get-test-execution-report.md) - -## Related Topics - -- [API Support for New Job Scheduling and Job Scheduling (1st Gen)](./api-support-for-jss-and-js.md) -- [New Job Scheduling REST API Response Codes](./jss-rest-api-response-codes.md) \ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/jss-api-login.md b/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/jss-api-login.md deleted file mode 100644 index 42dc8a99b4..0000000000 --- a/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/jss-api-login.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -sidebar_position: 2 ---- - -# New Job Scheduling API Login - -### Description - -Both the new CloudShell Job Scheduling Portal and the API use token-based authentication. When a user logs in, an access token is generated for the user's session together with a refresh-token that can be used to create new access tokens in case the access token expires, providing you with maximum control over access to the system by 3rd party applications and users. - -:::note -The New Job Scheduling does not include the Global domain. This means two things: - -- There is no central location for reviewing activity from all domains in the Job Scheduling Portal. -- Users associated only with the Global domain cannot access the Job Scheduling Portal or API. -::: - -### URL - -`http://{Job Scheduling API IP}:{port#}/api/Account/login` - -### HTTP method - -`POST` - -### Request - -
-Headers - -Example header format: - -`Content-Type: application/json` -
- -
-Request body - -| Parameter | Description/Comments | -| --- | --- | -| username | CloudShell admin username. (string) | -| password | CloudShell admin password. (string) | -
- -
-Request example -```javascript -{ - "username": "string", - "password": "string" -} -``` -
- -### Response - -
-Response example -```javascript -{ - "accessToken": "oHk5r-5R-lYlB7ekIjdk6FVKHs7GXwIdZxU6s7M9Rdo", - "refreshToken": "rXd4YhgsW0GdoYuim6k-TeZPugPAOr5uN-kWjGMPNzo", - "tokenType": "Bearer", - "expiresIn": 18000 -} -``` -
- -
-Response summary - -| Parameter | Description/Comments | -| --- | --- | -| accessToken | Token for authorizing REST API calls. (guid) | -| refreshtoken | Token for refreshing expires accessToken. (guid) | -| tokenType | Token type. (string) | -| expiresIn | Validity period in seconds. (Numeric) | -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/jss-rest-api-response-codes.md b/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/jss-rest-api-response-codes.md deleted file mode 100644 index 1e27d7d0c4..0000000000 --- a/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/jss-rest-api-response-codes.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -sidebar_position: 1 ---- - -# New Job Scheduling REST API Response Codes - -Each API call you make returns a server response. For example: - -![](/Images/JSS/JssRestApiServerResponse_520x271.png) - -Possible response codes are: - -| Code | Description | Result | -| --- | --- | --- | -| 200 | Success | API call was successfully executed. | -| 400 | Error: Bad request | API call is not applicable. For example, attempting to stop an already completed suite execution. | -| 401 | Error: Unauthorized | Authorization issue. `accessToken` may have expired. | \ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/refresh-login.md b/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/refresh-login.md deleted file mode 100644 index 02a9d15e64..0000000000 --- a/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/refresh-login.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -sidebar_position: 4 ---- - -# Refresh login - -### Description - -Refreshes an expired access token. - -### URL - -`http://{Job Scheduling API IP}:{port#}/api/Token/refresh/{refresh_Token}` - -| Parameter | Description/Comments | -| --- | --- | -| refresh_token | refreshToken to use. (string) | - -### HTTP method - -`GET` - -### Request - -
-Headers - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -### Response - -
-Response example -```javascript -{ - "accessToken": "oHk5r-5R-lYlB7ekIjdk6FVKHs7GXwIdZxU6s7M9Rdo", - "refreshToken": "rXd4YhgsW0GdoYuim6k-TeZPugPAOr5uN-kWjGMPNzo", - "tokenType": "Bearer", - "expiresIn": 18000 -} -``` -
- -
-Response summary - -| Parameter | Description/Comments | -| --- | --- | -| accessToken | Token for authorizing REST API calls. (guid) | -| refreshtoken | Token for refreshing expires accessToken. (guid) | -| tokenType | Token type. (string) | -| expiresIn | Validity period in seconds. (Numeric) | -
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/revoke-login.md b/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/revoke-login.md deleted file mode 100644 index b7dad5af85..0000000000 --- a/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/revoke-login.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -sidebar_position: 3 ---- - -# Revoke login - -### Description - -Deactivates accessToken. - -### URL - -`http://{Job Scheduling API IP}:{port#}/api/Token/revoke` - - -### HTTP method - -`POST` - -### Request - -:::note -You must log in with the token you created. -::: - -### Response - -```javascript -200 OK -``` diff --git a/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/start-adhoc-suite-execution.md b/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/start-adhoc-suite-execution.md deleted file mode 100644 index ca94b45c5c..0000000000 --- a/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/start-adhoc-suite-execution.md +++ /dev/null @@ -1,178 +0,0 @@ ---- -sidebar_position: 14 ---- - -# Start adhoc suite execution - -### Description - -Runs an adhoc suite execution. Adhoc suites are created on-the-fly for the execution and cannot be edited, deleted nor rerun. - -### URL - -`http://{Job Scheduling API IP}:{port#}/{space_name}/SuiteExecution/start` - -| Parameter | Description/Comments | -| --- | --- | -| space_name | CloudShell domain in which the suite was executed. (string) | - -### HTTP method - -`POST` - -### Request - -
-Headers - - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -
-Request body - -Suite details. The parameters of the adhoc suite execution method include: - - - - - - - - - - - - - - - - - - - - -
ParameterDescription/Comments
nameName of the suite execution. (string)
descriptionOptional description for the suite execution. (string)
testTypeNameType of tests to run. (string)
Currently, the value to use is "Robot".
jobs - Job details:
- - **name**: Job name. (string) - - **description**: Job description, if defined. (string) - - **durationBufferInMinutes**: Job's execution buffer, in minutes. (Numeric) - - **blueprint**: Details of the job's blueprint. - - **name**: Blueprint name. (string) - - **inputs**: Published global inputs defined in the job's blueprint. - - **name**: global input's name. (string) - - **value**: global input's value. (string) - - **abstractRequirements**: Published requirements in the blueprint's abstract resources. - - **type**: Type of abstract requirement. (string) - There are two options: - - "**Quantity**" when specifying the number of abstract resources to select. - - "**Attribute**" for any other attribute requirement. - - **resource**: Name of the abstract resource. (string) - - **name**: Name of the abstract requirement. Specify "Quantity" to indicate the number of abstract resources to select. - - **value**: Requirement's value. (string, numeric for Quantity) - - **additionalInputs**: Published additional inputs in the blueprint's abstract resources. - - **resource**: Name of the abstract resource. (string) - - **name**: Name of the additional info. (string) - - **value**: Additional info's value. (string) - - **serviceInputs**: Published inputs belonging to services in the blueprint. - - **resource**: Name of the service. (string) - - **name**: Name of the service input. (string) - - **value**: Service input's value. (string) - - **tests**: Details of the job's tests. - - **name**: Name of the test. (string) - - **path**: Path to the test's containing folder. (string) - - **durationInMinutes**: Test's duration in minutes. (Numeric) - - **inputs**: Test's inputs. - - **name**: Input name. (string) - - **Value**: Input value. (string) - - **repositoryName**: Name of online repository containing the test. (string) -
-
- -
-Request example -```javascript -{ - "name": "my ad-hoc robot execution", - "description": "string", - "testTypeName": "Robot", - "jobs": [ - { - "name": "job 1", - "description": "string", - "durationBufferInMinutes": 3, - "blueprint": { - "name": "my blueprint", - "inputs": [ - { - "name": "Sandbox number", - "value": "4" - }], - "abstractRequirements": [ - { - "type": "Quantity", - "resource": "DUT resource", - "name": "Quantity", - "value": "1" - }], - "additionalInputs": [{ - "resource": "DUT resource", - "name": "Firmware version", - "value": "1.00.2" - }], - "serviceInputs": [{ - "resource": "Controller service", - "name": "Service.Address", - "value": "192.168.45.112" - }] - }, - "tests": [ - { - "name": "run-traffic.robot", - "path": "Traffic tests", - "durationInMinutes": 1, - "inputs": [ - { - "name": "Additional CMD Parameters", - "value": "" - } - ], - "repositoryName": "GitHub" - } - ] - } -] -} -``` -
- -### Response - -
-Response example -```javascript -{ - "id": "a7f13fe5-ddee-4ec8-971f-a0e6784c8387" -} -``` -
- -
-Response summary - - - - - - - - - -
ParameterDescription/Comments
idSuite execution id. (guid)
-
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/start-suite-execution.md b/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/start-suite-execution.md deleted file mode 100644 index 4589df1bd1..0000000000 --- a/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/start-suite-execution.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -sidebar_position: 13 ---- - -# Start suite execution - -### Description - -Runs a suite template (starts execution). - -### URL - -`http://{Job Scheduling API IP}:{port#}/{space_name}/SuiteTemplate/{id}/start` - -| Parameter | Description/Comments | -| --- | --- | -| space_name | CloudShell domain in which the suite was executed. (string) | -| id | Suite execution's ID- included in the suite's URL. (string)
For example:
http://192.168.74.11/Test%20Lab/execution/1ab91be7-6136-4fd5-b22d-72c462947459/ | - -### HTTP method - -`POST` - -### Request - -
-Headers - - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -### Response - -
-Response example -```javascript -{ - "id": "a7f13fe5-ddee-4ec8-971f-a0e6784c8387" -} -``` -
- -
-Response summary - - - - - - - - - -
ParameterDescription/Comments
idSuite execution id. (guid)
-
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/stop-job-execution.md b/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/stop-job-execution.md deleted file mode 100644 index fbc6e72e0b..0000000000 --- a/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/stop-job-execution.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -sidebar_position: 7 ---- - -# Stop job execution - -### Description - -Stops a specific job's execution. - -### URL - -`http://{Job Scheduling API IP}:{port#}/{space_name}/SuiteExecution/{id}/JobExecution/{job_execution_id}/stop` - -| Parameter | Description/Comments | -| --- | --- | -| space_name | CloudShell domain in which the suite was executed. (string) | -| id | Suite execution's ID- included in the suite's URL. (string)
For example:
http://192.168.74.11/Test%20Lab/execution/1ab91be7-6136-4fd5-b22d-72c462947459/ | -| job_execution_id | Job's id - included in the **jobs** section of the [Get suite execution](./get-suite-execution)'s response. For example:
`..."jobs": [{"id": "205aac56-5826-4b5e-a96a-5887b0940b40",...` | - -### HTTP method - -`POST` - -### Request - -
-Headers - - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - -
- -### Response - -
-Response example -```javascript -{ - "errors": [ - { - "message": "'843b572e-e768-47d7-8333-48b2c6f23d8b': Execution already completed", - "name": "ExecutionCompleted", - "code": 1007 - } - ] -} -``` -
- -
-Response summary - - - - - - - - - -
ParameterDescription/Comments
nameExecutionCompleted (string)
-
\ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/stop-suite-execution.md b/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/stop-suite-execution.md deleted file mode 100644 index cf143c3fe1..0000000000 --- a/versioned_docs/version-2023.3/api-guide/new-jss-rest-api/stop-suite-execution.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -sidebar_position: 6 ---- - -# Stop suite execution - -### Description - -Stop an active suite execution. - -### URL - -`http://{Job Scheduling API IP}:{port#}/api/spaces/{space_name}/SuiteExecution/{id}/stop` - -### HTTP method - -`POST` - -### Request - -
-Headers - -Example header format: - -`Authorization: Basic ` - -`Content-Type: application/json` - -| Parameter | Description/Comments | -| --- | --- | -| space_name | CloudShell domain in which the suite was executed. (string) | -| id | Suite execution's ID - included in the suite's URL. (string)
For example:
http://192.168.74.11/Test%20Lab/execution/1ab91be7-6136-4fd5-b22d-72c462947459/ | -
- -### Response - -```javascript -200 OK -``` \ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/packaging-api/_category_.json b/versioned_docs/version-2023.3/api-guide/packaging-api/_category_.json deleted file mode 100644 index 8dc34e4e81..0000000000 --- a/versioned_docs/version-2023.3/api-guide/packaging-api/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Packaging API", - "position": 6 -} diff --git a/versioned_docs/version-2023.3/api-guide/packaging-api/creat-and-load-blueprint-pkg/_category_.json b/versioned_docs/version-2023.3/api-guide/packaging-api/creat-and-load-blueprint-pkg/_category_.json deleted file mode 100644 index 3a0ec8b9f6..0000000000 --- a/versioned_docs/version-2023.3/api-guide/packaging-api/creat-and-load-blueprint-pkg/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Creating and Loading a Blueprint Package", - "position": 2 -} diff --git a/versioned_docs/version-2023.3/api-guide/packaging-api/creat-and-load-blueprint-pkg/index.md b/versioned_docs/version-2023.3/api-guide/packaging-api/creat-and-load-blueprint-pkg/index.md deleted file mode 100644 index 4cdb7b6ae6..0000000000 --- a/versioned_docs/version-2023.3/api-guide/packaging-api/creat-and-load-blueprint-pkg/index.md +++ /dev/null @@ -1,5 +0,0 @@ -# Creating and Loading a Blueprint Package - -The following functions describe the initial steps to creating and loading blueprints to CloudShell.  - -![](/Images/API/Packaging-API/Creating-Loading-Package.png) \ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/packaging-api/creat-and-load-blueprint-pkg/packaging-functions/_category_.json b/versioned_docs/version-2023.3/api-guide/packaging-api/creat-and-load-blueprint-pkg/packaging-functions/_category_.json deleted file mode 100644 index 99e85ab6f0..0000000000 --- a/versioned_docs/version-2023.3/api-guide/packaging-api/creat-and-load-blueprint-pkg/packaging-functions/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Packaging Functions", - "position": 2 -} diff --git a/versioned_docs/version-2023.3/api-guide/packaging-api/creat-and-load-blueprint-pkg/packaging-functions/create.md b/versioned_docs/version-2023.3/api-guide/packaging-api/creat-and-load-blueprint-pkg/packaging-functions/create.md deleted file mode 100644 index af1bd3135a..0000000000 --- a/versioned_docs/version-2023.3/api-guide/packaging-api/creat-and-load-blueprint-pkg/packaging-functions/create.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Create (an Empty Blueprint Package) - -**Description:** Create a new empty package in the specified path. - -**Signature:** `create(path)` - -**Parameters:** - -| Name | Direction | Required | Description | -| --- | --- | --- | --- | -| path | In | Yes | The folder path and file name where the package zip file should be stored | - - - -**Sample:** -```javascript -`packageEditor.create('c:\\temp\\TestPackage.zip')` -``` \ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/packaging-api/creat-and-load-blueprint-pkg/packaging-functions/get-blueprint-details-as-xml.md b/versioned_docs/version-2023.3/api-guide/packaging-api/creat-and-load-blueprint-pkg/packaging-functions/get-blueprint-details-as-xml.md deleted file mode 100644 index baaa4e5d2f..0000000000 --- a/versioned_docs/version-2023.3/api-guide/packaging-api/creat-and-load-blueprint-pkg/packaging-functions/get-blueprint-details-as-xml.md +++ /dev/null @@ -1,110 +0,0 @@ ---- -sidebar_position: 3 ---- - -# Get Blueprint Details as XML - -**Description:** Retrieve the blueprint details of the specified blueprint as an xml. - -**Signature:** `get_topology_xml(topology_name)` - -**Parameters** - -| Name | Direction | Required | Description | -| --- | --- | --- | --- | -| `topology_name` | In | Yes | The name of the blueprint that you want to retrieve. | -| | Out | | XML representation of all the blueprint details. | - -**Sample:** - -```javascript -packageEditor.get_topology_xml('environment1') -output: ' - - \n -
- \n - These are my instructions. - \n - - \n - - \n -
- \n - - \n - - \n - - \n - - \n - - \n - - \n - - \n - - \n - - \n - - \n - - \n - - \n - - \n - - \n - - \n - - \n - - \n - - \n - - \n - - \n - - \n - - \n - - \n - - \n - - \n - - \n - - \n - - \n - - \n - - \n - - \n - - \n - - \n - - \n - - \n - - \n - - \n -
-``` diff --git a/versioned_docs/version-2023.3/api-guide/packaging-api/creat-and-load-blueprint-pkg/packaging-functions/get-topology-names.md b/versioned_docs/version-2023.3/api-guide/packaging-api/creat-and-load-blueprint-pkg/packaging-functions/get-topology-names.md deleted file mode 100644 index b9e5c9d190..0000000000 --- a/versioned_docs/version-2023.3/api-guide/packaging-api/creat-and-load-blueprint-pkg/packaging-functions/get-topology-names.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -sidebar_position: 4 ---- - -# Get Topology Names - -**Description:** Retrieve the list of blueprint names in the loaded package. The returned names are used in other functions as the blueprint identifiers. - -**Signature:** `get_topology_names()` - -**Parameters:** - -| Name | Direction | Required | Description | -| --- | --- | --- | --- | -| | Out | | The list of blueprints that exist in the loaded package. | - -**Sample:** - -```javascript -`packageEditor.get_topology_names()` -``` - -```javascript -`output: ['TestEnvironment1']` -``` diff --git a/versioned_docs/version-2023.3/api-guide/packaging-api/creat-and-load-blueprint-pkg/packaging-functions/index.md b/versioned_docs/version-2023.3/api-guide/packaging-api/creat-and-load-blueprint-pkg/packaging-functions/index.md deleted file mode 100644 index 3dd39f817c..0000000000 --- a/versioned_docs/version-2023.3/api-guide/packaging-api/creat-and-load-blueprint-pkg/packaging-functions/index.md +++ /dev/null @@ -1,8 +0,0 @@ -# Packaging Functions - -The following packaging functions are available: - -- [Create (an Empty Blueprint Package)](./create.md) -- [Load (a Blueprint Package for Modification)](./load.md) -- [Get Topology Names](./get-topology-names.md) -- [Get Blueprint Details as XML](./get-blueprint-details-as-xml.md) \ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/packaging-api/creat-and-load-blueprint-pkg/packaging-functions/load.md b/versioned_docs/version-2023.3/api-guide/packaging-api/creat-and-load-blueprint-pkg/packaging-functions/load.md deleted file mode 100644 index 192296044b..0000000000 --- a/versioned_docs/version-2023.3/api-guide/packaging-api/creat-and-load-blueprint-pkg/packaging-functions/load.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -sidebar_position: 2 ---- -# Load (a Blueprint Package for Modification) - -**Description:** Load a package from the specified path and prepare it for edit. This function must be called before any other function that modifies the package. - -**Signature:** `load(path)` - -**Parameters:** - -| Name | Direction | Required | Description | -| --- | --- | --- | --- | -| path | In | Yes | The folder path where the package zip file is stored | - - -**Sample:** - -```javascript -`packageEditor.load('c:\\temp\\TestPackage.zip')` -``` \ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/packaging-api/get-start-with-pkg-api.md b/versioned_docs/version-2023.3/api-guide/packaging-api/get-start-with-pkg-api.md deleted file mode 100644 index e26a7c2c09..0000000000 --- a/versioned_docs/version-2023.3/api-guide/packaging-api/get-start-with-pkg-api.md +++ /dev/null @@ -1,161 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Getting Started with Packaging API - -## Prerequisites - -- Python 3 (version 3.6 and above) -- [.NET Framework 4.7](https://dotnet.microsoft.com/en-us/download/dotnet-framework) -- [.NET 5 Runtime](https://dotnet.microsoft.com/en-us/download/dotnet/5.0) (on Windows Execution Servers that will be used for packaging API operations) -- quali\_utils.3.3.0.tar.gz: Version 3.3.0 is cross-platform (supported on Windows/Linux) and requires both .NET Framework 4.7 and .NET 5 Runtime to work (Alternatively, you can use version 3.2, which is not cross-platform, and does require .NET 5 Runtime. - - ```javascript - pip install - ``` - - Note: quali\_utils.3.3.0 is supported by CloudShell 2022.1 and above. For previous versions, see [earlier versions](https://help-archive.quali.com/help%20versions/All%20Versions%20Help/Content/Versions.htm) of CloudShell Help. - - -## Installation - -1. Make sure you have a compatible Python version installed on your machine. -2. To download the Python Package Editor that applies to your installed CloudShell version, visit the [Python Package Editor Download Page](https://support.quali.com/hc/en-us/articles/360038314833). -3. Do one of the following: - -
-Windows installation: - - - Run the pip tool to install the package. - -
- -
-Linux installation: - - You can install Packaging API on Linux environments that have .NET 5 Runtime. - - **Installation instructions for various Linux environments:** - - - Ubuntu: [Microsoft-us/dotnet/core/install/linux-ubuntu](https://docs.microsoft.com/en-us/dotnet/core/install/linux-ubuntu) - - Alpine: [https://docs.microsoft.com/en-us/dotnet/core/install/linux-alpine](https://docs.microsoft.com/en-us/dotnet/core/install/linux-alpine) - - Centos: [https://docs.microsoft.com/en-us/dotnet/core/install/linux-centos](https://docs.microsoft.com/en-us/dotnet/core/install/linux-centos) - - Debian: [https://docs.microsoft.com/en-us/dotnet/core/install/linux-debian](https://docs.microsoft.com/en-us/dotnet/core/install/linux-debian) - - Fedora: [https://docs.microsoft.com/en-us/dotnet/core/install/linux-fedora](https://docs.microsoft.com/en-us/dotnet/core/install/linux-fedora) - - OpenSUSE: [https://docs.microsoft.com/en-us/dotnet/core/install/linux-opensuse](https://docs.microsoft.com/en-us/dotnet/core/install/linux-opensuse) - - Red Hat Enterprise Linux: [https://docs.microsoft.com/en-us/dotnet/core/install/linux-rhel](https://docs.microsoft.com/en-us/dotnet/core/install/linux-rhel) - - SLES: [https://docs.microsoft.com/en-us/dotnet/core/install/linux-sles](https://docs.microsoft.com/en-us/dotnet/core/install/linux-sles) - - Please note that the required version in "dotnet-runtime-5.0” is not as listed in the documentation - "dotnet-runtime-6.0” - - **Example: Installing Packaging API on Ubuntu 18.04:** - - 1. Set up Python 3, pip 3: - - ```javascript - sudo apt update - sudo apt install python3 - sudo apt-get -y install python3-pip - pip3 install --upgrade pip - ``` - - 2. Set up .NET 5 support: - - ```javascript - wget https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb - sudo dpkg -i packages-microsoft-prod.deb - - rm packages-microsoft-prod.deb - sudo apt-get update - sudo apt-get install -y apt-transport-https - sudo apt-get update - sudo apt-get install -y dotnet-runtime-5.0 - ``` - - 3. Install quali\_utils 3.3.0: - - 1. Copy file quali\_utils-3.3.0.tar.gz to /tmp folder. - - 1. Run command: - - ```javascript - pip3 install /tmp/quali_utils-3.3.0.tar.gz - ``` - - 4. Validate the installation: - - 1. Copy files package\_editor\_linux.py and TestPackage.zip to /tmp - - 1. Run python command: - - ```javascript - python3 package_editor_linux.py - ``` - - Output: - - ![](../../Images/API/Packaging API/LinuxInstallOutput.png) - - 2. Run the `dir` command and see if CreatedPackage2.zip was created. - 3. Make sure the package TestPackage.zip now includes 2 new global inputs in topology. - -
- -## Code Sample - -The following code sample provides an example of how to create new blueprints using the API. This example demonstrates how to perform the following flow: - -![](/Images/API/Packaging-API/code-sample.png) - -This example uses the "requests” python module. - -```python -from quali_utils.quali_packaging import PackageEditor -``` - -```python -import requests - -#Create a new package in the local file system - -p = PackageEditor() - -p.create("c:\\myfolder\\mypack.zip") - - - - -#Load the package and prepare for edit - -p.load("c:\\myfolder\\mypack.zip") - -#Edit the package: f.e add new family - -p.add_family("Ball", "", ["Game", "3D Shape", "MoreStuff"], False, False, False, False, True) - - -#Import the package into CloudShell - -# 1 – authenticate - -r = requests.put('http://localhost:9000/Api/Auth/Login', {"username": "admin", "password": "admin", "domain": "Global"}) - -authcode = "Basic " + response._content[1:-1] - - -#2 – Open the package before import - -fileobj = open("c:\\p.zip", 'rb') - -#3 – Send to CloudShell by calling Import Package REST API - -r = requests.post('http://localhost:9000/API/Package/ImportPackage', - - headers={"Authorization": authcode}, - - files={"file": fileobj}) -print r._content - -print r.ok -``` \ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/packaging-api/index.md b/versioned_docs/version-2023.3/api-guide/packaging-api/index.md deleted file mode 100644 index 84b65454ab..0000000000 --- a/versioned_docs/version-2023.3/api-guide/packaging-api/index.md +++ /dev/null @@ -1,7 +0,0 @@ -# Packaging API - -The packaging API automates the creation and configuration of CloudShell blueprint packages. Using packages, blueprints can be shared between CloudShell deployments and exported locally for backup purposes. With the packaging API, you can also create new blueprints and modify the settings and data model (families, models, attributes, drivers, etc.) of new or existing blueprints before packaging. For details, see [Getting Started with Packaging API](./get-start-with-pkg-api.md). - -A package is a zip file that includes a set of folders and files that can be imported into a CloudShell database by using the web portal or by calling the Quali REST API. - -To learn more about the contents of the blueprint package, see [Exporting a Blueprint Package](../../portal/blueprints/creating-blueprints/export-blueprints/export-a-package.md). \ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/_category_.json b/versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/_category_.json deleted file mode 100644 index 2cc6458fb3..0000000000 --- a/versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Updating the Data Model", - "position": 3 -} diff --git a/versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/add-attribute-to-family.md b/versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/add-attribute-to-family.md deleted file mode 100644 index 01cc07b6e6..0000000000 --- a/versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/add-attribute-to-family.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Add an Attribute to a Family - -**Description**: Attach an existing attribute to a family. - -**Signature**: `attach_attribute_to_family(family_name, attribute_name, user_input, allowed_values)` - -**Parameters**: - -| Name | Direction | Required | Description | -| --- | --- | --- | --- | -| `family_name` | In | Yes | The name of the family | -| `attribute_name` | In | Yes | The name of the attribute | -| `user_input` | In | Yes | In case of service family, specify if this attribute should be presented to the user who using the service | -| `allowed_values` | In | No | Specify the list of allowed values for this attribute (comma separated) | - - -**Sample**: - -```javascript -`packageEditor.attach_attribute_to_family('Generic Chassis','attribute1',False,'')` -``` \ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/add-attribute-to-model.md b/versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/add-attribute-to-model.md deleted file mode 100644 index a08b6c254c..0000000000 --- a/versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/add-attribute-to-model.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -sidebar_position: 4 ---- - -# Add an Attribute to a Model - -Description: Attach an existing attribute to a specific model. - -**Signature**: `attach_attribute_to_model(model_name, attribute_name, user_input, allowed_values)` - -**Parameters**: - -| Name | Direction | Required | Description | -| --- | --- | --- | --- | -| `model_name` | In | Yes | The name of the model | -| `attribute_name` | In | Yes | The name of the attribute | -| `user_input` | In | Yes | In case of service family, specify if this attribute should be presented to the user who using the service | -| `allowed_values` | In | No | Specify the list of allowed values for this attribute | - -**Sample**: - -```javascript -`packageEditor.attach_attribute_to_model('Generic Chassis Model','attribute1',False,'')` -``` \ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/add-family.md b/versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/add-family.md deleted file mode 100644 index 96179d26fa..0000000000 --- a/versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/add-family.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Add a Family - -**Description**: Add a new family to the package. - -When importing the package into CloudShell, if the family doesn’t exist, it will be created. Otherwise it will be modified. - -**Signature**: `add_family(family_name, description, categories, connectable, admin_only, shared_by_default, service_family, searchable)` - -**Parameters**: - -| Name | Direction | Required | Description | -| --- | --- | --- | --- | -| `family_name` | In | Yes | The name of the family that you want to create or modify | -| `description` | In | No | A short description of the family | -| `categories` | In | No | In case this family represents a family of services, specify the category for the family to be | -| `connectable` | In | Yes | Specify if the resources / services from this family can be connected to other resources / services | -| `admin_only` | In | Yes | Specify if the resources / services from this family can only be viewed by admins | -| `shared_by_default` | In | Yes | Specify if the resources / services from this family are shared with other users by default | -| `service_family` | In | Yes | Specify if this family represents a family of services | -| `searchable` | In | Yes | Specify if resources from this family appear in search results | - - -**Sample**: -```javascript -`packageEditor.add_family("Family1",'This is a test',[],True,True,False,False,False)` - -`packageEditor.add_family("ServiceFamily1",'This is a test',[‘Cat1’,’Cat2/Sub1’], False, False,False,True,False)` -``` \ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/add-model-to-family.md b/versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/add-model-to-family.md deleted file mode 100644 index 2372769482..0000000000 --- a/versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/add-model-to-family.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -sidebar_position: 3 ---- - -# Add a Model to a Family - -**Description**: Create a new model under a specific family. - -When importing the package into CloudShell, if the model doesn’t exist it will be created. Otherwise it will be modified. - -**Signature**: `add_model_to_family(family_name, model_name, description)` - -**Parameters**: - -| Name | Direction | Required | Description | -| --- | --- | --- | --- | -| `family_name` | In | Yes | The name of the family | -| `model_name` | In | No | The name of the model | -| `description` | In | No | A short description of the model | - -**Sample**: - -```javascript -`packageEditor.add_model_to_family('Generic Chassis', 'Special Chassis','This is a special Chassis model')` -``` \ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/add-or-update-attributes.md b/versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/add-or-update-attributes.md deleted file mode 100644 index 348fdb1369..0000000000 --- a/versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/add-or-update-attributes.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -sidebar_position: 11 ---- - - -# Add or Update Attributes - -**Description**: Add a new attribute to the data model, or modify an existing attribute. - -**Signature**: `add_or_update_attribute(attribute_name, default_value, description, attribute_type, lookup_values, rules)` - -**Parameters**: - -| Name | Direction | Required | Description | -| --- | --- | --- | --- | -| `attribute_name` | In | Yes | The name of the attribute that you want to add or modify | -| `default_value` | In | No | The default value that you want to assign to the attribute in case it is left empty when used | -| `description` | In | No | A short description for the attribute | -| `attribute_type` | In | Yes | One of the following values: DateTime, Numeric, String, Boolean, Lookup, Password | -| `lookup_values` | In | No | If the attribute type is Lookup, specify the list of allowed values | -| `rules` | In | No | Specify 0 or more capabilities for the attribute, available values:
  • Editable After Run (System Administrators)
  • Editable After Run (Everyone)
  • Configuration
  • Setting
  • Display In Diagram
  • Link Configurations
  • Variable Capability
  • Constant Capability
  • Displayed In Route Creation
  • Available For Abstract Resources
  • Displayed In Search Filters
  • Execution Server Selector
  • Monitor Modifications
  • Admin Only
  • | - - -**Sample**: - -```javascript -`packageEditor.add_or_update_attribute('AttString','','String Attribute','String','','')` - -`packageEditor.add_or_update_attribute('AttLookup','A','Lookup Attribute','Lookup',['A','B','C'],'')` - -`packageEditor.add_or_update_attribute('AttString','AAA','String Attribute1','String','',['Editable After Run (System Administrators)','Editable After Run (Everyone)','Configuration','Setting','Displayed In Diagram','Link Configurations','Variable Capability','Constant Capability','Displayed In Route Creation','Available For Abstract Resources','Displayed In Search Filters','Execution Server Selector','Monitor Modifications','Admin Only','Editable After Run'])` -``` \ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/add-rsrc-driver-to-model.md b/versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/add-rsrc-driver-to-model.md deleted file mode 100644 index c5c30483d4..0000000000 --- a/versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/add-rsrc-driver-to-model.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -sidebar_position: 9 ---- - -# Add a Resource Driver to a Model - -**Description**: Add a driver to a specific model. - -**Signature**: `add_driver_to_model(model_name, driver_name, driver_file_path)` - -**Parameters**: - -| Name | Direction | Required | Description | -| --- | --- | --- | --- | -| `model_name` | In | Yes | Specify the model name you want the driver to be connected to | -| `driver_name` | In | Yes | Specify the name of the resource driver to be removed | -| `driver_file_path` | In | Yes | Specify the full path to the driver file (including file name). py and dll files are supported. | - - -**Sample**: -```javascript -`packageEditor.add_driver_to_model('Generic Chassis Model','ResDriver' ,'C:\\Work\\Drivers\\Resource-Service\\ResourceDriver.Compilation\\ResourceDriver.dll')` -``` \ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/add-rsrc-script-to-model.md b/versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/add-rsrc-script-to-model.md deleted file mode 100644 index e184e2b75d..0000000000 --- a/versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/add-rsrc-script-to-model.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -sidebar_position: 7 ---- - -# Add a Resource Script to a Model - -**Description**: Add a resource script to a specific model. - -**Signature**: `add_script_to_model(model_name, script_name, script_file_path, version, script_alias, parameters, category)` - -**Parameters**: - -| Name | Direction | Required | Description | -| --- | --- | --- | --- | -| `model_name` | In | Yes | Specify the model name you want the driver to be connected to | -| `script_name` | In | Yes | Specify the name of the resource script you want to add | -| `script_file_path` | In | Yes | To replace the current script file with another one, specify the full path to the script file (including file name). py files and zip packages are supported. | -| `version` | In | No | Set a version number for the script | -| `script_alias` | In | No | Specify an alias for the service | -| `parameters` | In | No | Specify a list of inputs required by the script. For example: \["key1, value1”, "key2, value2”\] | -| `category` | In | No | Script's category. The script will be arranged under this category in the resource/App/service's Commands pane | - -**Sample**: - -```javascript -`add_script_to_model('Generic Chassis Model','Debugging script' ,'C:\\Work\\Scripts\\Resource-Service\\resource_debugging_script_v1.4.zip', '', 'Generic Resources', [], 'Infra')` -``` \ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/create-model-hierarchy.md b/versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/create-model-hierarchy.md deleted file mode 100644 index e5df12fdec..0000000000 --- a/versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/create-model-hierarchy.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -sidebar_position: 5 ---- - - -# Create a Model Hierarchy - -**Description**: Create the model hierarchy, link the specified model under the list of parent models. - -**Signature**: `add_parent_model(model_name, parent_models)` - -**Parameters**: - -| Name | Direction | Required | Description | -| --- | --- | --- | --- | -| `model_name` | In | Yes | The name of the model to modify | -| `parent_models` | In | Yes | The list of models to be added to the list of parents for this model | - -**Sample**: -```javascript -`packageEditor.add_parent_model('Generic Ethernet Port',['Generic Chassis Model', 'Bridge Generic Model'])` -``` \ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/index.md b/versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/index.md deleted file mode 100644 index 7157795c64..0000000000 --- a/versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/index.md +++ /dev/null @@ -1,17 +0,0 @@ -# Updating the Data Model - -![](/Images/API/Packaging-API/UpdatingDataModel.png) - -This section explains how to: - -- [Add a Family](./add-family.md) -- [Add an Attribute to a Family](./add-attribute-to-family.md) -- [Add a Model to a Family](./add-model-to-family.md) -- [Add an Attribute to a Model](./add-attribute-to-model.md) -- [Create a Model Hierarchy](./create-model-hierarchy.md) -- [Remove a Parent Model](./remove-parent-model.md) -- [Add a Resource Script to a Model](./add-rsrc-script-to-model.md) -- [Remove a Resource Script from a Model](./remove-rsrc-script-from-model.md) -- [Add a Resource Driver to a Model](./add-rsrc-driver-to-model.md) -- [Remove a Resource Driver from a Model](./remove-rsrc-driver-from-model.md) -- [Add or Update Attributes](./add-or-update-attributes.md) diff --git a/versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/remove-parent-model.md b/versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/remove-parent-model.md deleted file mode 100644 index 69dc093eef..0000000000 --- a/versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/remove-parent-model.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -sidebar_position: 6 ---- - -# Remove a Parent Model - -**Description**: Modify the model hierarchy, remove the specified model from the list of parent models. - -**Signature**: `remove_parent_model(model_name, parent_models)` - -**Parameters**: - -| Name | Direction | Required | Description | -| --- | --- | --- | --- | -| `model_name` | In | Yes | The name of the model to modify | -| `parent_models` | In | Yes | The list of models to be removed from the list of parents for this model | - -**Sample**: - -```javascript -`packageEditor.remove_parent_model('Generic Ethernet Port',['Generic Chassis Model'])` -``` diff --git a/versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/remove-rsrc-driver-from-model.md b/versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/remove-rsrc-driver-from-model.md deleted file mode 100644 index 6ad9d998a7..0000000000 --- a/versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/remove-rsrc-driver-from-model.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -sidebar_position: 10 ---- - -# Remove a Resource Driver from a Model - -**Description**: Remove the py or dll driver from a specific model. - -**Signature**: `remove_driver_from_model(model_name, driver_name)` - -**Parameters**: -| Name | Direction | Required | Description | -| --- | --- | --- | --- | -| `model_name` | In | Yes | Specify the model name you want the driver to be removed from | -| `driver_name` | In | Yes | Specify the name of the driver you want to remove | - -**Sample**: - -```javascript -`packageEditor.remove_driver_from_model('Generic Chassis Model','ResDriver')` -``` \ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/remove-rsrc-script-from-model.md b/versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/remove-rsrc-script-from-model.md deleted file mode 100644 index ced5301e7c..0000000000 --- a/versioned_docs/version-2023.3/api-guide/packaging-api/update-the-data-model/remove-rsrc-script-from-model.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -sidebar_position: 8 ---- - -# Remove a Resource Script from a Model - -**Description**: Remove a Resource Script from a specific model. - -**Signature**: `remove_script_from_model(model_name, script_name)` - -**Parameters**: - -| Name | Direction | Required | Description | -| --- | --- | --- | --- | -| `model_name` | In | Yes | Specify the model name from which you want the driver to be removed | -| `script_name` | In | Yes | Specify the name of the resource script to be removed | - - -**Sample**: - -```javascript -`packageEditor.remove_script_from_model('Generic Chassis Model','Debugging script')` -``` \ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/quali-api.md b/versioned_docs/version-2023.3/api-guide/quali-api.md deleted file mode 100644 index 1e9e2b7b50..0000000000 --- a/versioned_docs/version-2023.3/api-guide/quali-api.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -sidebar_position: 5 ---- - -# Quali API - -The Quali API enables users and administrators to control the scheduling and queuing of the execution of TestShell suites and jobs, which may be using CloudShell to provide Sandboxes-as-a-Service. In addition, administrators can use this API to integrate CloudShell scheduling and queuing with external Continuous Integration (CI) systems. - -For additional information, see the following Quali API guides: - -- **Quali API Library**: is available by default in the TestShell Studio tools and can be added as a DLL asset to a project in CloudShell Authoring, the driver builder. - -For the complete list of Quali API Library functions, see [Quali API Library Reference Guide](pathname:///api-docs/2023.3/Quali-API/Quali%20API%20Library.html). - -- **Quali C# API**: for .NET - - For the complete list of Quali API C# functions, see [Quali API C# Reference Guide](pathname:///api-docs/2023.3/Quali-API/Quali%20cSharp%20API.html "Quali API C# Reference Guide"). - -- **Quali REST API**: for APIs using the REST client - - For the complete list of Quali API REST functions, see [Quali API REST Reference Guide](pathname:///api-docs/2023.3/Quali-API/Quali%20REST%20API.html "Quali API REST Reference Guide"). - - :::note Notes for Quali REST API: - - Input parameters must be in JSON format. - - The header must include the application/json content type. For example: - - `headers = {'Authorization': Basic auth_code, 'Content-Type': 'application/json` - ::: - - -The default port for Quali API in Quali Server is 9000. - -## Related Topics - -- [Configuring Quali API to Work in HTTPS Mode](../install-configure/cloudshell-suite/secure-communication/config-secured-quali-api.md). \ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/shell-dev-blueprint-design-api/_category_.json b/versioned_docs/version-2023.3/api-guide/shell-dev-blueprint-design-api/_category_.json deleted file mode 100644 index cdf50479de..0000000000 --- a/versioned_docs/version-2023.3/api-guide/shell-dev-blueprint-design-api/_category_.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "label": "Shell Development and Blueprint Design API", - "position": 4, - "link": { - "type": "generated-index", - "description": "To learn more about the APIs available for blueprint design and Shell development, check out the following articles:" - } -} diff --git a/versioned_docs/version-2023.3/api-guide/shell-dev-blueprint-design-api/cs-automation-api.md b/versioned_docs/version-2023.3/api-guide/shell-dev-blueprint-design-api/cs-automation-api.md deleted file mode 100644 index eb7b052658..0000000000 --- a/versioned_docs/version-2023.3/api-guide/shell-dev-blueprint-design-api/cs-automation-api.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -sidebar_position: 1 ---- - -# CloudShell Automation API - -The **CloudShell Automation API** package is the recommended way to automate CloudShell from Python scripts and drivers, for example, to get more information or perform more operations using CloudShell. - -The CloudShell Automation API package is installed in the Python environment installation directory upon pip installation, in the following file location in your local directory: `...\python\2.7.18\Lib\site-packages\cloudshell\`. - -The CloudShell Automation API package includes the following API modules for use with Python scripts and drivers: - -- **cloudshell\_api.py**: allows you to use the CloudShell API from Python. -- **common\_cloudshell\_api.py**: is a helper file required to run methods from **cloudshell\_api.py**. -- **cloudshell\_scripts\_helpers.py**: provides a convenient way to initialize the CloudShell API and get blueprint variables in your script. -- **cloudshell\_dev\_helpers.py**: allows developers to run and debug their code on their local machine as if their scripts are running in CloudShell. - -The CloudShell Automation API reference documentation comes in two versions: - -The Python package [API guide](pathname:///api-docs/2023.3/Python-API/) includes additional information like class structure and return objects and is intended for experienced Python developers, while the [TestShell API Python Reference Guide](pathname:///api-docs/2023.3/TestShell-API/TestShell%20Python%20API.html) is intended for developers who are newer to Python, as it features an easy to understand format and code examples. - -:::note -CloudShell Automation API uses UTC timezone by default, but you can change to a different timezone using the [CloudShellAPISession](pathname:///api-docs/2023.3/Python-API/cloudshell.api.html#cloudshell.api.cloudshell_api.CloudShellAPISession). -::: - -For information about installing Python and pip, and for further information about using Python scripts and drivers, see [The CloudShell DevGuide](../../devguide/index.md). \ No newline at end of file diff --git a/versioned_docs/version-2023.3/api-guide/shell-dev-blueprint-design-api/testshell-api.md b/versioned_docs/version-2023.3/api-guide/shell-dev-blueprint-design-api/testshell-api.md deleted file mode 100644 index 8349457f2c..0000000000 --- a/versioned_docs/version-2023.3/api-guide/shell-dev-blueprint-design-api/testshell-api.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -sidebar_position: 2 ---- - -# TestShell API - -TestShell API allows you to automate CloudShell (in a similar manner as in [CloudShell Automation API](./cs-automation-api.md)), and is especially useful for writing drivers or tests, and to get information about CloudShell resources and blueprints. Administrators can use this API to create scripts and automation that run administrative tasks, such as moving resources between domains or updating relationships between user groups. - -The TestShell API library is the main library of the lab management API. It supports most of the actions available in CloudShell Portal and in Resource Manager. The default port for TestShell API Library and TestShell C# API in the Quali Server is 8028. The default port for TestShell XML RPC API and TestShell TCL API in the Quali Server is 8029. - -The TestShell API provided implementations are available from the following links: - -- **TestShell API Library**: The TestShell API library is available by default in TestShell Authoring tools, and can be added as a DLL asset to a project in CloudShell Authoring, the driver builder. - -For the complete list of TestShell API Library functions, see [TestShell API Library Reference Guide](pathname:///api-docs/2023.3/TestShell-API/TestShell%20API%20Library.html). - -- **TestShell C# API**: It is possible to add the TestShell API library to a C# project and use its methods. - - For the complete list of TestShell API C# functions, see [TestShell API C# Reference Guide](pathname:///api-docs/2023.3/TestShell-API/TestShell%20cSharp%20API.html). - -- **TestShell TCL API**: Each CloudShell version comes with a TCL client that supports all the TestShell API methods using TCL syntax. The TCL client can be found in `%InstallationFolder%\Integration\TestShell API\TestShell TCL API`. - - For the complete list of TestShell API TCL functions, see [TestShell API TCL Reference Guide](pathname:///api-docs/2023.3/TestShell-API/TestShell%20TCL%20API.html "TestShell API TCL Reference Guide") - -- **TestShell XML RPC API**: Direct XML (Remote Procedure Call) RPC commands are also supported for TestShell API methods. When using XML RPC API, the data needs to be wrapped in a specific way and sent to the relevant port in the server. To test XML RPC API, Quali uses an internal tool that creates this wrap automatically, and so you only need to insert the parameters for the various methods. - - For the complete list of TestShell API XML RPC functions, see [TestShell API XML RPC Reference Guide](pathname:///api-docs/2023.3/TestShell-API/TestShell%20XML%20RPC%20API.html "TestShell API XML RPC Reference Guide"). - - -The TestShell API library is a DLL file that is loaded to the database. (You can view and edit the library file and version in the **Libraries** tab in the TestShell Studio while logged as an admin.) - -Since TestShell API is a lab management client, it requires login credentials, therefore the session should include user credentials and a domain. Following the login step, it is possible write an automated flow of actions. - -For example, you can create the following scenario: - -1. Create a resource. -2. Create sub-resources to the resource. -3. Set the values of the resource’s attributes. -4. Update the physical connection of the resource/sub-resources to other connectable resources. -5. Get resource details (as a data matrix or XML). -6. Reserve the resource. -7. Add a route request and connect it. -8. Get the route segments. -9. End the sandbox. - -Once the scenario is created, it can be run automatically. - -:::note General notes about TestShell API: - -- Some actions that are possible in Resource Manager and in CloudShell Portal are not supported in TestShell API. For example, you cannot create and edit a blueprint using TestShell API. There are other solutions for that, such as creating and editing a sandbox and then saving it as a blueprint or importing a Quali package. -- Many operations have two versions, a "single” version and a "bulk” version. For example, it is possible to create a single resource using the "CreateResource" method or to create many resources at once using the "CreateResources” operation. This is not always the fastest way performance-wise, but it is sometime easier to write and edit. The bulk operation usually gets a matrix as an input, and sometimes has special rules (such as the fact you cannot have the sub-resource creation line before the resource line). -- Any function that requires a resource full path can also get the resource name without the folders it is located in. -::: \ No newline at end of file diff --git a/versioned_docs/version-2023.3/devguide/_category_.json b/versioned_docs/version-2023.3/devguide/_category_.json deleted file mode 100644 index 8387a73741..0000000000 --- a/versioned_docs/version-2023.3/devguide/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "The CloudShell DevGuide", - "position": 11 -} diff --git a/versioned_docs/version-2023.3/devguide/available-cs-api/_category_.json b/versioned_docs/version-2023.3/devguide/available-cs-api/_category_.json deleted file mode 100644 index 9d821ba12b..0000000000 --- a/versioned_docs/version-2023.3/devguide/available-cs-api/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Available CloudShell APIs", - "position": 7 -} diff --git a/versioned_docs/version-2023.3/devguide/available-cs-api/automate-cs-sandboxes-for-devops.md b/versioned_docs/version-2023.3/devguide/available-cs-api/automate-cs-sandboxes-for-devops.md deleted file mode 100644 index 835e75b223..0000000000 --- a/versioned_docs/version-2023.3/devguide/available-cs-api/automate-cs-sandboxes-for-devops.md +++ /dev/null @@ -1,177 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Automating CloudShell Sandboxes for DevOps - -In this section, we’ll look at different recipes for creating and using CloudShell Sandboxes as a part of your CI/CD or other DevOps pipelines. In this context, we’ll concentrate on the use case of automating CloudShell externally from scripts or other platforms. - -## Available APIs - -CloudShell currently supports two different sets of APIs which can be used to automate and integrate Sandboxes with DevOps. - -- The CloudShell Automation API (cloudshell\-automation-api package) - This Python package contains a comprehensive set of APIs for anything from managing inventory and connections to administrating users and groups as well as managing sandboxes and blueprints. The package allows developers to use the TestShell API in shell drivers and Python scripts. -- The CloudShell Sandbox APIs - This RESTful API is intended for automating the consumption of sandboxes outside of CloudShell. As such, it provides a specific set of commands focused on the workflow of starting and ending sandboxes, and running automation. - -### Which API to choose? - -If the functionality you’re looking for is covered in the Sandbox APIs, it is recommended to use it over the CloudShell Automation API package. If not, you can consider using the Sandbox API for whatever subset of the required functionality it does offer and complement that with CloudShell Automation API calls. - -### Where are the APIs documented? - -#### CloudShell Sandbox API - -The Sandbox API live documentation page is installed with CloudShell. To access it, simply browse to the following default address: [http://\[CloudShellPortalAddress\]:82/api/v2/explore/]. If you’re accessing the link from the CloudShell Portal machine itself, or from the CloudShell SDK edition machine, you can simply use "localhost” or "127.0.0.1”. The API documentation page allows you to test and experiment with the APIs as well as provide information on the different operations and parameters. - -#### CloudShell Automation API - -The latest Automation API online help is available [here](pathname:///api-docs/2023.3/Python-API). - -When using the cloudshell\-automation-api package, make sure to install the version of the API which is compatible with your CloudShell version. To make the task of finding the right version easier, this package follows a versioning schema different from other CloudShell packages. The major and minor version of the cloudshell\-automation-api package will always match the CloudShell release its compatible with. Therefore, to install the latest compatible version you need to add these version requirements when installing from pip. - -For example, to install the latest cloudshell\-automation-api compatible with CloudShell 8.1, run: - -```python -python -m pip install "cloudshell-automation-api>;=8.1,<8.2" -``` - -To install the latest cloudshell\-automation-api compatible with CloudShell 8.0, run: - -```python -python -m pip install "cloudshell-automation-api>;=7.1,<8.0" -``` - -## Starting and stopping a sandbox - -The simplest and recommended way to start or stop a new sandbox instance from a blueprint is using the Sandbox API. The Sandbox API live documentation page contains the details of the response and request format. The basic URLs of these operations are **/blueprints/\{blueprint\_identifier\}/start** and **/sandboxes/\{sandbox\_id\}/stop**. - -### Using the Sandbox API from Python - -The following code sample demonstrates how to use the Sandbox APIs for a simple flow - creating a sandbox from a blueprint and then ensuring setup completes successfully after running some tests. - -https://github.com/QualiSystems/devguide_examples/blob/master/devops_integration/sandbox_api_python_2_and_3/sandbox_api_example.py - -[This Github Sample](https://github.com/QualiSystems/devguide_examples/blob/master/devops_integration/sandbox_api_python_2_and_3/sandbox_api_example.py) is by [QualiSystems](https://github.com/QualiSystems) - -devops\_integration/sandbox\_api\_python\_2\_and\_3/sandbox\_context\_example.py [view raw](https://raw.githubusercontent.com/QualiSystems/devguide_examples/master/devops_integration/sandbox_api_python_2_and_3/sandbox_api_example.py) - -```python -def main(): - """ - Example workflow of starting a sandbox, waiting for it to setup, then stopping it - :return: - """ - api_example = SandboxRESTAPI('localhost', '8032') - api_example.login("admin", "admin", "Global") - sandbox_id = api_example.start_sandbox('Simple blueprint', datetime.timedelta(hours=2), 'test_sandbox') - sandox_details = api_example.wait_for_sandbox_setup(sandbox_id) - run_some_tests_or_other_code(sandox_details) - api_example.stop_sandbox(sandbox_id) - api_example.wait_for_sandbox_teardown(sandbox_id) -``` - -This code uses a simple wrapper around the Sandbox API which uses the requests package. You can find the source code for that implementation [here](https://github.com/QualiSystems/devguide_examples/blob/master/devops_integration/sandbox_api_python_2_and_3/sandbox_api/sandbox_apis.py). - -Since sandboxes used this way are really a scope for testing. It can be beneficial to use Python’s with statement to ensure a sandbox is always set up and torn down properly with every usage. The following code wraps the Sandbox API as a context, ensuring proper cleanup and providing convenient access to the sandbox details. - -[This Github Sample](https://github.com/QualiSystems/devguide_examples/blob/master/devops_integration/sandbox_api_python_2_and_3/sandbox_context_example.py) is by [QualiSystems](https://github.com/QualiSystems) - -devops\_integration/sandbox\_api\_python\_2\_and\_3/sandbox\_context\_example.py [view](https://github.com/QualiSystems/devguide_examples/blob/master/devops_integration/sandbox_api_python_2_and_3/sandbox_context_example.py) [raw](https://raw.githubusercontent.com/QualiSystems/devguide_examples/master/devops_integration/sandbox_api_python_2_and_3/sandbox_context_example.py) - -```python -def main(): - """ - Example workflow of starting a sandbox, waiting for it to setup, then stopping it - :return: - """ - api_example = SandboxRESTAPI('localhost', '8032') - api_example.login("admin", "admin", "Global") - sandbox_id = api_example.start_sandbox('Simple blueprint', datetime.timedelta(hours=2), 'test_sandbox') - sandox_details = api_example.wait_for_sandbox_setup(sandbox_id) - run_some_tests_or_other_code(sandox_details) - api_example.stop_sandbox(sandbox_id) - api_example.wait_for_sandbox_teardown(sandbox_id) -``` - -**Both of the above examples are Python 2/3-compatible.** - -### Using the Automation API from Python - -The following code demonstrates implementing the same basic flow using the CloudShell Automation API package: - -[This Github Sample](https://github.com/QualiSystems/devguide_examples/blob/master/devops_integration/python_api/python_api_example.py) is by [QualiSystems](https://github.com/QualiSystems) - -devops\_integration/python\_api/python\_api\_example.py [view](https://github.com/QualiSystems/devguide_examples/blob/master/devops_integration/python_api/python_api_example.py) [raw](https://raw.githubusercontent.com/QualiSystems/devguide_examples/master/devops_integration/python_api/python_api_example.py) - -```python -def main(): - """ - Example workflow of starting a sandbox, waiting for it to setup, then stopping it - :return: - """ - - session = CloudShellAPISession('localhost', "admin", "admin", "Global") - # Create the sandbox - sandbox = session.CreateImmediateTopologyReservation('test sandbox', owner='admin', - durationInMinutes=120, - topologyFullPath='Simple Blueprint1', - globalInputs=[UpdateTopologyGlobalInputsRequest('Target Cloud', 'AWS')]).Reservation - - sandbox_details = SandboxHelpers().wait_for_sandbox_setup(sandbox.Id, session,10) - run_some_tests_or_other_code(session, sandbox_details) - session.EndReservation(sandbox.Id) -``` - -Similar to the Sandbox API example, we can wrap the setup and teardown of the sandbox in a context object and take advantage of the Python with operator to simplify the flow. - -[This Github Sample](https://github.com/QualiSystems/devguide_examples/blob/master/devops_integration/python_api/python_api_context_example.py) is by [QualiSystems](https://github.com/QualiSystems) - -devops\_integration/python\_api/python\_api\_context\_example.py [view](https://github.com/QualiSystems/devguide_examples/blob/master/devops_integration/python_api/python_api_context_example.py) [raw](https://raw.githubusercontent.com/QualiSystems/devguide_examples/master/devops_integration/python_api/python_api_context_example.py) - -```python -def main(): - """ - Example workflow of starting a sandbox, waiting for it to setup, then stopping it - :return: - """ - connectivity_params = QualiConnectivityParams(api_service_host='localhost', domain='Global', - password='admin', username='admin') - inputs = BlueprintInputs(global_inputs=[UpdateTopologyGlobalInputsRequest('Target Cloud', 'AWS')]) - - with SandboxContext(connectivity_params=connectivity_params, - blueprint_name='Simple Blueprint1', duration=120, - blueprint_inputs=inputs) as sandbox: - run_some_tests_or_other_code(sandbox) -``` - -## Sandbox API Missing and Upcoming Features - -Currently, the Sandbox API does not support the creation of future (pending) sandboxes. If your CloudShell environment requires this feature, you may need to fall back to the cloudshell\-automation-api package API for sandbox reservation (using the *CreateReservation* method). - -## Executing Orchestration Commands - -Executing orchestration commands from the Sandbox API is supported using the **/sandboxes/\{sandbox\_identifier\}/commands/\{command\_name\}/start** method. In addition, the Automation API package provides the necessary APIs to execute orchestration scripts in the sandbox: - -[This Github Sample](https://github.com/QualiSystems/devguide_examples/blob/master/devops_integration/python_api/python_api_example.py) is by [QualiSystems](https://github.com/QualiSystems) - -devops\_integration/python\_api/python\_api\_example.py [view](https://github.com/QualiSystems/devguide_examples/blob/master/devops_integration/python_api/python_api_example.py) [raw](https://raw.githubusercontent.com/QualiSystems/devguide_examples/master/devops_integration/python_api/python_api_example.py) - -```python -def run_some_tests_or_other_code(session, sandox_details): - session.ExecuteEnvironmentCommand(reservationId=sandox_details.Id, commandName='Update Version', - commandInputs=InputNameValue(Name='Version', Value='1.1')) - pp = pprint.PrettyPrinter(indent=4) - pp.pprint(jsonpickle.dumps(sandox_details)) - - time.sleep(10) -``` - -## Integrating with CI tools - -The same basic workflow demonstrated in the above examples can be used to implement a plugin for CI frameworks such as Jenkins, Travis or TeamCity. - -Several Quali community projects already provide readymade solutions for some CI tools. - -The [Sandbox-Jenkins-Plugin](https://github.com/jenkinsci/cloudshell-sandbox-plugin) provides build steps for creating and ending sandboxes for Jenkins, as well as integration with the new PipeLines feature for continuous delivery and DevOps automation. - -The [Sandbox-Teamcity-Plugin](https://github.com/QualiSystems/Sandbox-TeamCIty-Plugin) provides similar build steps and integration for TeamCity. diff --git a/versioned_docs/version-2023.3/devguide/available-cs-api/index.md b/versioned_docs/version-2023.3/devguide/available-cs-api/index.md deleted file mode 100644 index 2f23c437ed..0000000000 --- a/versioned_docs/version-2023.3/devguide/available-cs-api/index.md +++ /dev/null @@ -1,55 +0,0 @@ -# Available CloudShell APIs - -In this article, we’ll discuss the different CloudShell APIs. - -CloudShell applications have multiple APIs, which enable you to get services from the Quali Server and to utilize CloudShell’s capabilities for Shell automation, blueprint orchestration, sandbox deployment and test automation. CloudShell APIs can be classified as outbound and inbound APIs. In other words, APIs that are used to serve CloudShell in a wider context (our RESTful Sandbox API), like CI/CD processes, and APIs used to extend CloudShell automation and orchestration. For additional information, visit the [CloudShell API Guide](../../api-guide/cs-api-overview.md). - -## CloudShell Sandbox API - -**CloudShell Sandbox API** is a RESTful API that allows you to use CloudShell sandboxes as part of your CI/CD process. For example, you can start, extend and stop sandboxes, run sandbox orchestration and automation commands, and get information about your sandboxes and execution activity. For additional information, see [CloudShell Sandbox API](../../api-guide/cs-sandbox-api/index.md). - -### Examples - -For implementation examples, visit our [TeamCity](https://github.com/QualiSystems/Sandbox-TeamCIty-Plugin/blob/master/README.md) or [Jenkins](https://plugins.jenkins.io/cloudshell-sandbox) plugin documentation, which leverages CloudShell Sandbox API to automate the consumption of sandboxes as part of the devops cycle. - -## CloudShell Automation API - -CloudShell Automation API is a Python open source package you can use to develop CloudShell orchestration and automation capabilities. Using the CloudShell Automation API, you can design orchestration scripts that communicate and run operations on CloudShell, from administrative operations like adding users, to sandbox-level operations like provisioning resources, resolving connectivity and running health check on the sandbox’s elements. For additional information, see [CloudShell Automation API](../../api-guide/shell-dev-blueprint-design-api/cs-automation-api.md) and [CloudShell Automation API Reference Guide](pathname:///api-docs/2023.3/Python-API). - -Note that since CloudShell Automation API can perform sandbox and CloudShell\-level operations, it mostly applies to orchestration scripts and is not recommended to be used in shells. Having said that, there are two methods in the API that apply directly to shells: WriteMessageToReservationOutput allows the driver to print messages in real time to the output console, and SetResourceLiveStatus allows the driver to indicate the resource’s state with an icon. For example, online and offline. - -### Examples - -See [Useful CloudShell Automation API Code Examples](./available-cs-api/useful-cs-api-examples/). - -## TestShell API - -The **TestShell API** allows designing orchestration and automation using C#, TCL API and XML RPC. It is intended for performing a wide variety of operations within CloudShell; from administrative tasks, such as managing inventory or users, to sandbox operations, such as executing commands and controlling both resource and sandbox live statuses. It is especially useful for writing tests, and obtaining information about resources, blueprints and sandboxes. TestShell API and CloudShell Automation API provide the same capabilities and functionality. - -For additional information, see the appropriate TestShell API Reference Guide: - -- [TestShell API Library Reference Guide](pathname:///api-docs/2023.3/testshell-api/TestShell%20API%20Library.html) - -- [TestShell API C# Reference Guide](pathname:///api-docs/2023.3/testshell-api/TestShell%20cSharp%20API.html) - -- [TestShell API TCL Reference Guide](pathname:///api-docs/2023.3/testshell-api/TestShell%20TCL%20API.html) - -- [TestShell API XML RPC Reference Guide](pathname:///api-docs/2023.3/testshell-api/TestShell%20XML%20RPC%20API.html) - - -## Quali API - -Quali API allows you to automate the scheduling and queuing of test automation suites. It can be used in C# and TCL, and is also used for getting sandbox attachments and execution server details. - -For additional information, see the appropriate Quali API Reference Guide: - -- [Quali API Library Reference Guide](pathname:///api-docs/2023.3/quali-api/Quali%20API%20Library.html) - -- [Quali API C# Reference Guide](pathname:///api-docs/2023.3/quali-api/Quali%20cSharp%20API.html) - -- [Quali API REST Reference Guide](pathname:///api-docs/2023.3/quali-api/Quali%20REST%20API.html) - - -## Packaging API - -**CloudShell Packaging API** allows you to automate the creation configuration of CloudShell blueprint packages, which can be used for backup purposes and for sharing blueprints between different CloudShell deployments. For additional information and implementation examples, see the [Packaging API](../../api-guide/packaging-api/index.md). \ No newline at end of file diff --git a/versioned_docs/version-2023.3/devguide/available-cs-api/sso-login-to-cs-api.md b/versioned_docs/version-2023.3/devguide/available-cs-api/sso-login-to-cs-api.md deleted file mode 100644 index 05d633352f..0000000000 --- a/versioned_docs/version-2023.3/devguide/available-cs-api/sso-login-to-cs-api.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -sidebar_position: 3 ---- - -# SSO Login to CloudShell APIs - -This article explains how to use CloudShell APIs via SSO. This option provides user access to our APIs directly from your identity provider (IdP) using an authentication token. -:::note -SSO login is not supported for New Job Scheduling API. -::: - -## Prerequisites - -- **IDPUserInfoUrl** Server configuration key. -
    - More... - - **To set the IDPUserInfoUrl:** - - 1. Open the Server `customer.config` file (usually at `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config`) - 2. Add the following in a new line: - - ```javascript - - ``` - - For example: - - ```javascript - - -- IdP user profile that contains an email address ("email" claim and value). To register new users, see the [To define user groups for SAML SSO:](../../admin/cloudshell-identity-management/access-control-and-authentication/saml-authentication-configuration-sso-slo/configure-sso/index.md#to-define-user-groups-for-saml-sso) section. -- JWT token generated in your IdP. Note that the authorization token is valid for 5 hours by default, but the validity period can be extended using the `AuthToken.ExpirationSpanMinutes` configuration key. - -## API authentication token creation flow - -![](/Images/Devguide-reference/SsoApiFlow_817x252.png) - -1. User sends to Quali Server a login request containing the JWT token and CloudShell domain name. -2. Quali Server validates the JWT token against the user's IdP. -3. The IdP returns to Quali Server the user's details in a UserInfo object. - - For example: - - ![](/Images/Devguide-reference/ApiSsoFlow2.png) - - Quali Server uses the IdP user's email address to identify an existing CloudShell user or create a new one to be used in the authentication token. - -4. Quali Server sends the user a response containing the authentication token. - - If the API calls time out, consider extending the request timeout period for API POST requests over SSO using the `IDPRequestTimeout` configuration key. -
    - More... - - **To extend the timeout period for API POST requests over SSO:** - - 1. Open the Server `customer.config` file (usually at `C:\Program Files (x86)\QualiSystems\CloudShell\Server\customer.config`) - 2. Add the following in a new line and set the desired period, in seconds (default is 10): - - ```javascript - - ``` - - 3. Save the file. - - 4. Restart the **Quali Server** service. -
    - - -## Login request example - -![](/Images/Devguide-reference/ApiSsoFlow1.png) - -## API call using an API authentication token - -```python -from cloudshell.api.cloudshell_api import CloudShellAPISession - -api = CloudShellAPISession(host="localhost", token_id="eyJhbGciOiJSUzI....zHMyOeJYu-0xodJ_yghhbg", domain="Global") - -result = api.AddTopologiesToDomain(topologyNames=["CloudShell Sandbox Template"],domainName="Domain A") -print(f'{result}') -``` diff --git a/versioned_docs/version-2023.3/devguide/available-cs-api/useful-cs-api-examples/_category_.json b/versioned_docs/version-2023.3/devguide/available-cs-api/useful-cs-api-examples/_category_.json deleted file mode 100644 index 8900df82a9..0000000000 --- a/versioned_docs/version-2023.3/devguide/available-cs-api/useful-cs-api-examples/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Useful CloudShell Automation API Code Examples", - "position": 2 -} diff --git a/versioned_docs/version-2023.3/devguide/available-cs-api/useful-cs-api-examples/edit-app-in-sandbox.md b/versioned_docs/version-2023.3/devguide/available-cs-api/useful-cs-api-examples/edit-app-in-sandbox.md deleted file mode 100644 index bc0a6486fa..0000000000 --- a/versioned_docs/version-2023.3/devguide/available-cs-api/useful-cs-api-examples/edit-app-in-sandbox.md +++ /dev/null @@ -1,181 +0,0 @@ ---- -sidebar_position: 4 ---- - -# Editing Apps in a Sandbox - -The `EditAppsInReservation` API enables you to programmatically modify an App in a sandbox. Generally, the classic flow is to call this API using CloudShell Automation API during the **Preparation** phase of the setup script (before the **Provisioning** phase that deploys the Apps). - -:::note Notes for EditAppsInReservation: -- Applies to undeployed Apps in the sandbox. -- Supported in CloudShell Automation API and TestShell API. -- All attributes in the deployment path must be specified with the desired values. Attribute values that are omitted in the API command will have empty values. In other words, your automation needs to read the existing values, copy them into the API request and modify the desired attributes as appropriate (see the example below). -- This API method does not support Configuration Management modifications, but you can use the Automation API's `ConfigureApps` method to update parameter values. -::: -## How it works - -`EditAppsInReservation` accepts two parameters: reservation id and an "app details" object. - -"app details" defines the modified App. - -- In python, you define the App's details as part of your script, as shown in the next section. -- In TestShell API, you build the json in a text editor and copy it into a variable, which you define in the **TestShell API** step's `EditAppsInReservation` command. This json object mirrors the structure of the CloudShell Automation API object. - -## The app details json - -The json has several sections: - -- App's general details like name, new name and description -- **AppDetails** section containing the App Resource attributes (User, Password, etc.), deployed App shell (**ModelName** parameter), **Driver** parameter is used for Apps based on 1st Gen cloud provider shells -- **DefaultDeployment** section defines the App's deployment path to use as well as the deployment attributes. As mentioned in the notes, all deployment path attributes must be specified, even ones you do not want to change. - -```javascript -[ - { - "Name": "vcenter test", - "NewName": "new name test", - "Description": "my description", - "AppDetails": { - "Attributes": [ - { - "Name": "User", - "Value": "Testshell Test User" - } - ], - "Driver": null, - "ModelName": "Generic App Model" - }, - "DefaultDeployment": { - "Name": "vcenter 110 - 2G - VMware vCenter Cloud Provider 2G.vCenter VM From Linked Clone 2G", - "Deployment": { - "Attributes": [ - { - "Name": "VMware vCenter Cloud Provider 2G.vCenter VM From Linked Clone 2G.CPU", - "Value": "6" - } - ] - } - } - } -] -``` - -## Custom setup script example - -Here's a [custom setup script](https://github.com/QualiSystemsLab/cloudshell-api-script-samples/tree/master/generic-orchestration-samples/setup/setup_edit_app_sample) from our community that demonstrates how to use this API. - -This script has 3 files: - -- `edit_apps.py` has two functions: - - **edit\_target\_app\_in\_sandbox** modifies specific deployment attributes in a specific App in the sandbox. - - **edit\_apps\_in\_sandbox** is a wrapper for the setup orchestration. - -- `__main__.py` is the entry point to the setup script. -- `requirements.txt` - -**edit\_apps.py:** - -```python -from cloudshell.workflow.orchestration.sandbox import Sandbox -from cloudshell.api.cloudshell_api import CloudShellAPISession, ApiEditAppRequest, AppDetails, DefaultDeployment, Deployment, \ - NameValuePair - - -def edit_target_app_in_sandbox(app_name, new_app_name, api, sb_id, target_deployment_attrs): - """ - Function to replace specific deployment attributes on a specific app - the target deployment attrs ignores namespacing and case sensitivity. - This will work for the hdd and cpu attrs - [("hdd", "3"), ("cpu", "5")] - :param str app_name: - :param str new_app_name: - :param CloudShellAPISession api: - :param str sb_id: - :param list target_deployment_attrs: example [("hdd", "3"), ("cpu", "5")] - :return: - """ - - # guard clause - if not target_deployment_attrs: - return - - # find target app to modify - apps = api.GetReservationDetails(sb_id, disableCache=True).ReservationDescription.Apps - if not apps: - return - target_app_search = [app for app in apps if app.Name == app_name] - if not target_app_search: - return - target_app = target_app_search[0] - - # copy over logical resource attributes - new_resource_attrs = [] - for curr_attr in target_app.LogicalResource.Attributes: - new_resource_attrs.append(NameValuePair(curr_attr.Name, curr_attr.Value)) - - default_deployment = [x for x in target_app.DeploymentPaths if x.IsDefault][0] - - # copy over all deployment attributes, modify target attributes - new_deployment_attrs_map = {} - for curr_attr in default_deployment.DeploymentService.Attributes: - for update_attr_name, update_attr_value in target_deployment_attrs: - if curr_attr.Name.lower().endswith(update_attr_name.lower()): - new_deployment_attrs_map[curr_attr.Name] = update_attr_value - break - - if curr_attr.Name not in new_deployment_attrs_map: - new_deployment_attrs_map[curr_attr.Name] = curr_attr.Value - - # build out app edit request - new_deployment_attrs_list = [NameValuePair(x[0], x[1]) for x in new_deployment_attrs_map.items()] - new_deployment = Deployment(new_deployment_attrs_list) - app_details = AppDetails(ModelName=target_app.LogicalResource.Model, - Attributes=new_resource_attrs, - Driver=target_app.LogicalResource.Driver) - new_default_deployment = DefaultDeployment(Name=default_deployment.Name, Deployment=new_deployment) - app_edit_requests = [ApiEditAppRequest(Name=app_name, - NewName=new_app_name, - Description="", - AppDetails=app_details, - DefaultDeployment=new_default_deployment)] - api.EditAppsInReservation(reservationId=sb_id, editAppsRequests=app_edit_requests) - - -def edit_apps_in_sandbox(sandbox, components): - """ - :param Sandbox sandbox: - :param components: - :return: - """ - api = sandbox.automation_api - sb_id = sandbox.id - APP_NAME = "TEST" - NEW_NAME = "NATTI" - target_deployment_attrs = [("hdd", "3"), ("cpu", "5")] - - edit_target_app_in_sandbox(app_name=APP_NAME, - new_app_name=NEW_NAME, - api=api, - sb_id=sb_id, - target_deployment_attrs=target_deployment_attrs) -``` - -**\_\_main\_\_.py:** - -```python -from cloudshell.workflow.orchestration.sandbox import Sandbox -from cloudshell.workflow.orchestration.setup.default_setup_orchestrator import DefaultSetupWorkflow -from edit_apps import edit_apps_in_sandbox - -sandbox = Sandbox() - -DefaultSetupWorkflow().register(sandbox) -sandbox.workflow.add_to_preparation(edit_apps_in_sandbox) - -sandbox.execute_setup() -``` - -**requirements.txt:** - -```javascript -cloudshell-orch-core>=3.4.0.0,<3.5.0.0 -``` diff --git a/versioned_docs/version-2023.3/devguide/available-cs-api/useful-cs-api-examples/find-blueprints-with-rsrc-serv-or-app.md b/versioned_docs/version-2023.3/devguide/available-cs-api/useful-cs-api-examples/find-blueprints-with-rsrc-serv-or-app.md deleted file mode 100644 index 3e443bd697..0000000000 --- a/versioned_docs/version-2023.3/devguide/available-cs-api/useful-cs-api-examples/find-blueprints-with-rsrc-serv-or-app.md +++ /dev/null @@ -1,174 +0,0 @@ ---- -sidebar_position: 3 ---- - -# Finding Blueprints Containing a Specific Resource, Service or App - -The following Python scripts utilize the CloudShell Automation API to print a list of the blueprints that have a specific component and should be run from an IDE that can access the Quali Server. - -## Print blueprints that have a resource - -To use this script, replace `resource name` with the name of the resource and set the CloudShell details. - -```python -from cloudshell.api.cloudshell_api import CloudShellAPISession -from pprint import pprint - -# specify target resource name -TARGET_RESOURCE_NAME = "resource name" - -# specify api session details -user = "admin" -password = "admin" -server = "localhost" -domain = "Global" - -api = CloudShellAPISession(host=server, username=user, password=password, domain=domain) - - -def is_resource_list_in_blueprint(api, blueprint_name, target_resource_name): - """ - search current blueprint resources for presence of the Target Resource - :param CloudShellAPISession api: - :param str blueprint_name: - :param str target_resource_name: - :return: - """ - details = api.GetTopologyDetails(blueprint_name) - bp_resources = details.Resources - for curr_resource in bp_resources: - if curr_resource.Name == target_resource_name: - return True - return False - - -all_blueprints = api.GetTopologiesByCategory().Topologies -target_blueprints = [bp_name for bp_name in all_blueprints - if is_resource_list_in_blueprint(api, bp_name, TARGET_RESOURCE_NAME)] - -if not target_blueprints: - print("No blueprints in system with target resource") -else: - print("=== Target Blueprints containing '{}' ===".format(TARGET_RESOURCE_NAME)) - pprint(target_blueprints) - - # add to text file - with open('target_blueprints.txt', 'w') as f: - for bp in target_blueprints: - print >> f, bp -``` - -## Print blueprints that have a service - -To use this script, replace `service alias` with the alias of the service and set the CloudShell details. - -```python -from cloudshell.api.cloudshell_api import CloudShellAPISession - -# set list of service "Alias" -TARGET_SERVICES = ["service alias"] - -# api session details -user = "admin" -password = "admin" -server = "localhost" -domain = "Global" - -api = CloudShellAPISession(host=server, username=user, password=password, domain=domain) - - -def is_resource_list_in_blueprint(api, blueprint_name, target_service_names): - """ - search current blueprint resources for presence of the Target Resource - :param CloudShellAPISession api: - :param str blueprint_name: - :param [str] target_service_names: - :return: - """ - details = api.GetTopologyDetails(blueprint_name) - bp_services = details.Services - bp_service_names = [service.Alias for service in bp_services] - for service_name in target_service_names: - for bp_service_name in bp_service_names: - if service_name == bp_service_name: - return True - else: - continue - - -all_blueprints = api.GetTopologiesByCategory().Topologies -target_blueprints = [bp_name for bp_name in all_blueprints - if is_resource_list_in_blueprint(api, bp_name, TARGET_SERVICES)] - -if not target_blueprints: - print("No blueprints in system with target services") -else: - print("=== Target Blueprints containing '{}' resources ===".format(TARGET_SERVICES)) - print(target_blueprints) - - # add blueprints to text file - with open('target_blueprints.txt', 'w') as f: - for bp in target_blueprints: - print >> f, bp -``` - -## Print blueprints containing Apps with a deployment type based on a specific cloud provider resource - -This script looks for blueprints with Apps that contain a deployment path from a particular cloud provider resource. To use, replace `cloud provider resource name` with the name of the cloud provider resource and set the CloudShell details. - -```python -from cloudshell.api.cloudshell_api import CloudShellAPISession -from pprint import pprint -from timeit import default_timer - -# set list of target resources -TARGET_CLOUD_PROVIDER_RESOURCE = "cloud provider resource name" - -# api session details -user = "admin" -password = "admin" -server = "localhost" -domain = "Global" - -api = CloudShellAPISession(host=server, username=user, password=password, domain=domain) - - -def is_resource_list_in_blueprint(api, blueprint_name, target_cloud_provider): - """ - search current blueprint resources for presence of the Target Resource - :param CloudShellAPISession api: - :param str blueprint_name: - :param str target_cloud_provider: - :return: - """ - details = api.GetTopologyDetails(blueprint_name) - bp_apps = details.Apps - for curr_app in bp_apps: - deployment_paths = curr_app.DeploymentPaths - for dp in deployment_paths: - curr_cloud_provider = dp.DeploymentService.CloudProvider - if curr_cloud_provider == target_cloud_provider: - return True - return False - -start = default_timer() -all_blueprints = api.GetTopologiesByCategory().Topologies - -print("searching {} blueprints for results...".format(len(all_blueprints))) - -target_blueprints = [bp_name for bp_name in all_blueprints - if is_resource_list_in_blueprint(api, bp_name, TARGET_CLOUD_PROVIDER_RESOURCE)] - -if not target_blueprints: - print("No blueprints in system with target resource") -else: - print("=== Target Blueprints containing '{}' ===".format(TARGET_CLOUD_PROVIDER_RESOURCE)) - pprint(target_blueprints) - - # add to text file - with open('target_blueprints.txt', 'w') as f: - for bp in target_blueprints: - print >> f, bp - -print("Done after {} seconds.".format(default_timer() - start)) -``` diff --git a/versioned_docs/version-2023.3/devguide/available-cs-api/useful-cs-api-examples/index.mdx b/versioned_docs/version-2023.3/devguide/available-cs-api/useful-cs-api-examples/index.mdx deleted file mode 100644 index 5044b88c65..0000000000 --- a/versioned_docs/version-2023.3/devguide/available-cs-api/useful-cs-api-examples/index.mdx +++ /dev/null @@ -1,9 +0,0 @@ - -# Useful CloudShell Automation API Code Examples - -This section provides different code examples that can be used for reference. - -import DocCardList from '@theme/DocCardList'; -import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; - - \ No newline at end of file diff --git a/versioned_docs/version-2023.3/devguide/available-cs-api/useful-cs-api-examples/peform-actions-on-rsrc-in-sandbox.md b/versioned_docs/version-2023.3/devguide/available-cs-api/useful-cs-api-examples/peform-actions-on-rsrc-in-sandbox.md deleted file mode 100644 index cfad7f27a8..0000000000 --- a/versioned_docs/version-2023.3/devguide/available-cs-api/useful-cs-api-examples/peform-actions-on-rsrc-in-sandbox.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Performing Actions on Resources in the Sandbox - -## Adding resources, connecting L1 routes and setting live status - -This script adds resources to the sandbox, creates L1 resource connections and sets the ‘online’ live status icon on the resources. - -```python -import time - - -defexecute(): - from cloudshell.workflow.orchestration.sandbox import Sandbox - Sandbox = Sandbox() - Reservation_Id = Sandbox.reservationContextDetails.id - - Resource_List =['PUT Mock','PUT Mock/Port 1','Traffic Mock','Traffic Mock/Port 1'] - - time.sleep(3) - - # add resources - Sandbox.automation_api.AddResourcesToReservation(reservationId=Reservation_Id, resourcesFullPath=Resource_List) - time.sleep(1) - print"" - Sandbox.automation_api.WriteMessageToReservationOutput(Reservation_Id,"resources added to sandbox") - - time.sleep(3) - # set resource live status - Sandbox.automation_api.SetResourceLiveStatus('PUT Mock','Online',"Active") - Sandbox.automation_api.SetResourceLiveStatus('Traffic Mock','Online',"Active") - - time.sleep(1) - Sandbox.automation_api.WriteMessageToReservationOutput(Reservation_Id,"resources are online") - - time.sleep(3) - # connect L1 routes - Sandbox.automation_api.CreateRouteInReservation(reservationId=Reservation_Id, - sourceResourceFullPath='PUT Mock/Port 1', - targetResourceFullPath='Traffic Mock/Port 1', - mappingType='bi', routeAlias='API-created route') - - time.sleep(1) - Sandbox.automation_api.WriteMessageToReservationOutput(Reservation_Id,"resources connected") -``` - -## Connecting L2 routes - -While connecting L1 routes is done via the CreateRouteInReservation API (example above), L2 "Connector” routes are established using the SetConnectorRequest API. - -```python -import time - - -def execute_L2(): - from cloudshell.api.cloudshell_api import SetConnectorRequest - from cloudshell.workflow.orchestration.sandbox import Sandbox - Sandbox = Sandbox() - Reservation_Id = Sandbox.reservationContextDetails.id - - time.sleep(3) - connector_request = SetConnectorRequest('PUT Mock/Port 1', 'Traffic Mock/Port 1', 'bi', 'API-created route') - sandbox.automation_api.SetConnectorsInReservation(reservationId=reservation_id, connectors=[connector_request]) -``` diff --git a/versioned_docs/version-2023.3/devguide/available-cs-api/useful-cs-api-examples/start-api-outside-cs.md b/versioned_docs/version-2023.3/devguide/available-cs-api/useful-cs-api-examples/start-api-outside-cs.md deleted file mode 100644 index 28a591e328..0000000000 --- a/versioned_docs/version-2023.3/devguide/available-cs-api/useful-cs-api-examples/start-api-outside-cs.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Starting an API Session Outside of CloudShell - -This script starts an API session from your IDE. This is useful for performing admin tasks outside of the scope of the blueprint or sandbox. - -As this requires the use of the CloudShell Automation API package, make sure to first install the package. From command-line, run pip install cloudshell-automation-api. - -```python -from cloudshell.api.cloudshell_api import CloudShellAPISession - -# add credentials -user = "admin" -password = "admin" -server = "localhost" -domain = "Global" - -# start session -api = CloudShellAPISession(host=server, username=user, password=password, domain=domain) - -# find resources of target model -res_details = api.FindResources(resourceModel="Putshell") -``` diff --git a/versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/_category_.json b/versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/_category_.json deleted file mode 100644 index 54676e43d3..0000000000 --- a/versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Developing Configuration Management Scripts for Apps", - "position": 4 -} diff --git a/versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/ansible-playbook-dev-for-apps/_category_.json b/versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/ansible-playbook-dev-for-apps/_category_.json deleted file mode 100644 index 49596e1350..0000000000 --- a/versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/ansible-playbook-dev-for-apps/_category_.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "label": "Ansible Playbook Development for Apps", - "position": 3, - "link": { - "slug": "devguide/develop-config-management-scripts-for-apps/ansible-playbook-dev-for-apps", - "type": "generated-index", - "description": "This chapter will take you through the development process of an Ansible playbook for CloudShell App deployment." - } -} diff --git a/versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/ansible-playbook-dev-for-apps/add-playbook-to-app.md b/versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/ansible-playbook-dev-for-apps/add-playbook-to-app.md deleted file mode 100644 index 951a9d3b83..0000000000 --- a/versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/ansible-playbook-dev-for-apps/add-playbook-to-app.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -sidebar_position: 4 ---- - -# Add the Playbook to an App - -Now that we have tested and debugged our playbook, the next step is to add it to an App template. For details, see [Adding App templates](../../../admin/cloudshell-manage-dashboard/manage-app-templates/index.md#adding-app-templates). -:::note -The playbook runs once during the **Setup** phase for all of the sandbox's Apps that use that playbook, after CloudShell has finished deploying their VMs. This is done both to improve performance and support cross-server logic where multiple applications need to be installed and configured in a certain way. -::: -1. In CloudShell Portal, open the **Manage>Apps** page. - -2. Edit or create an App. - -3. Open the **Configuration Management** tab. - -4. From the **Select Tool** drop-down list, select **Ansible**. - -5. Select the **Connection** Method, depending on the VM’s operating system. Select **Windows Remote Management** for Windows machines, or **SSH** for Linux. - -6. Specify the URL to the playbook YAML or ZIP file. Make sure you specify the raw version of the URL (GitHub, GitLab and BitBucket are supported). For example: `https://raw.githubusercontent.com/QualiSystemsLab/private-repo-zip-download/master/README.zip` - - The playbook can be a yaml file for a single playbook or a zip file containing several playbooks. For simple tasks, a single yaml file should be enough, but for more complex configuration logic, and for using roles, a zip file may be required (for a sample zip file, click [here](https://github.com/QualiSystems/app-starter-pack/blob/dev/Playbooks/wordpress-rhel7.zip)). The zip file must contain a least one yaml (if there are several yaml files, the main one must be named site.yaml). In order to use roles, include in the zip a folder named roles, and add the roles to it. - :::important - If the URL is private (HTTPS), the VM will need to have a valid SSL certificate. To disable the certificate check, open **Resource Manager Client>Resource Families>Configuration Services (Ansible Configuration or Custom Script Configuration)** and set the **Verify Certificate** attribute to **False**. - ::: -7. If the URL is protected, specify the **Username** and **Password**, or **Token**. - -8. In the **Inventory Groups** field, specify the inventory groups, separated by semicolons ";”. For details, see the [Inventory Groups](./ansible-playbook-examples.md#inventory-groups) example. - -9. To add parameters to the playbook, click **Add Parameter**, and enter each parameter’s name and value. Repeat for additional parameters. - - -Note that the parameters are added to the App template. - -![Discovery Dialog](/Images/Devguide-configuration-management/Adding-the-Playbook-to-an_2_624x444.png) - -You can add parameters to the App template in the following ways: - -- Provide the value as part of the App template, making it the default value for every instance of this App template. -- Specify a static value in the App in the blueprint. -- Specify a dynamic value in the App in the blueprint, linking the parameter to one of the blueprint’s Global Inputs. To do so, just enter the global input’s name in curly brackets as the parameter value, or click the "plus” button to select an available Global Input. -- Pass a value using the API, as illustrated in this [Parameters](./ansible-playbook-examples.md#parameters). This will replace any value provided in the App template or in the blueprint. - -1. Open the **App Resource** tab, and enter the VM’s access credentials. - - ![Discovery Dialog](/Images/Devguide-configuration-management/Config-manage-Adding-Your_5_624x444.png) - -2. Click **Done**. \ No newline at end of file diff --git a/versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/ansible-playbook-dev-for-apps/ansible-playbook-examples.md b/versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/ansible-playbook-dev-for-apps/ansible-playbook-examples.md deleted file mode 100644 index 944ac8086f..0000000000 --- a/versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/ansible-playbook-dev-for-apps/ansible-playbook-examples.md +++ /dev/null @@ -1,119 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Ansible Playbook Examples - -## Examples - -We’ve put together some basic playbook examples to help you get started. If you are new to Ansible development, feel free to test them out. - -### Hello World - -A basic playbook that prints “Hello World”, just to make sure we’re communicating with the VM, and are able to run the playbook. When run as part of an App’s deployment in CloudShell, the message will be displayed in the sandbox diagram’s Output window. - -For example, the site.yml file may look something like this: - -```javascript ---- -- hosts: all - tasks: - - name: Print Hello World - debug: msg="Hello World" -``` - -### Parameters - -A playbook that prints the parameter defined in an App template or API call (see below). Such playbooks are useful for debugging and making sure parameter variables are set with the correct values. Note that the parameters are stored as environment variables on the App instance in the sandbox. - -The site.yml file will look something like this: - -```javascript ---- -- hosts: all - vars: - - msg: "{{P1|default('No Message')}}" - tasks: - - name: Print P1 - debug: var=msg -``` - -Parameter defined in the App template: - -![Discovery Dialog](/Images/Devguide-configuration-management/Custom-Scripts_2_624x164.png) - -Parameter defined in the `ConfigureApps` API method (Python file): - -```python -from cloudshell.api.cloudshell_api import * - -session = CloudShellAPISession('localhost', 'admin', 'admin', 'Global') -session.ConfigureApps( - reservationId='dfb2df41-334e-4630-8bc6-ec846eb072d6', - appConfigurations=[AppConfiguration('LinuxVmApp_9cb2-72d6', [ConfigParam('P1', 'Hello World From Here!')])], - printOutput=True -) -``` - -:::note -Since this script uses parameters defined on the App template, it will not work when run manually outside of CloudShell. For this to work, you will need to edit the Python code as follows: -::: - -- Update the CloudShell settings passed to the `session` variable, if needed. - -- Specify the ID of an active sandbox (in the `reservationId` field of the Python code). - -- Replace `LinuxVmApp_9cb2-72d6` with the App’s name. - - -### Inventory Groups - -In some cases, a playbook contains plays that target many different VMs that require configuration. In order to have the playbook run only the plays that are relevant to a specific VM, or to a group of hosts (VMs) that your VM belongs to, you can use the Inventory Groups field in the App template. In this field, specify the groups that your VM belongs to (more than one group can be provided). Use semicolons ";” to separate multiple groups. - -For example , specifying groups “servers/http” and servers/sql”: - -![Discovery Dialog](/Images/Devguide-configuration-management/Ansible-Playbook-Examples_4.png) - -This example shows how these groups entered in the App’s **Configuration Management** page should be written in the Ansible hosts file. - -```javascript -hosts -[servers:children] -http -sql - -[http] -192.168.1.2 - -[sql] -192.168.1.12 -``` - -### Privilege escalation - -Now let’s say you want Ansible to dynamically get the user and password from the App when running a task on a particular App’s VM. This is useful if the VM credentials on the App are not strong enough for the task you wish to run. To achieve this, you will need to add the following two parameters to your App’s Configuration Management tab: - -- **ansible\_become\_user** - the user with the stronger permissions (probably a root user) - -- **ansible\_become\_pass** - the password to that user - - -For example: - -![Discovery Dialog](/Images/Devguide-configuration-management/Ansible-Playbook-Examples_5.png) - -And modify the site.yml file to get the relevant VM’s user and password from these parameters for each task: - -```javascript ---- -- hosts: all - tasks: - - name: Get sudoers file content - become: yes - become_method: su - command: cat /etc/sudoers - register: cmd_var - - - name: Print output - debug: msg= "{{ cmd_var.stdout }}" -``` \ No newline at end of file diff --git a/versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/ansible-playbook-dev-for-apps/configure-es-for-ansible.md b/versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/ansible-playbook-dev-for-apps/configure-es-for-ansible.md deleted file mode 100644 index f44957b0bd..0000000000 --- a/versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/ansible-playbook-dev-for-apps/configure-es-for-ansible.md +++ /dev/null @@ -1,128 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Configure Execution Server for Ansible - -The first thing you need to do is set up an Execution Server that can execute Ansible configuration management. For this you will need a Linux Execution Server with the following utilities and configurations: - -- Execution Server installed on Linux machine, with the ansible attribute enabled. See [Linux Execution Server Installation and Configuration](../../../install-configure/linux-virtual-appliance/). -- Python 3.7 (Python 3.9.x is provided out of the box with the **Linux Execution Server** virtual appliance or script) -- Ansible 2.9.27 -- pywinrm 0.4.2 -- CentOS sshpass - -## Indicate Execution Servers that run Ansible - -This section explains how to indicate that the Execution Server installation has Ansible installed and therefore can support Ansible operations on Apps. - -:::note Notes -- If the Execution Server VM does not have an internet connection, make sure the OfflinePackageRepository zip file is extracted to the local PyPi Server repository. For details, see [Add the out-of-the-box dependencies package to the local PyPi Server repository](../../../admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/configuring-cloudshell-to-execute-python-commands-in-offline-mode.md#add-the-out-of-the-box-dependencies-package-to-the-local-pypi-server-repository). -- Quali Server must be running when configuring the Execution Server. -::: - -**To configure an Execution Server using CloudShell Portal:** - -1. In the Execution Server machine, log in to CloudShell Portal as administrator. -2. In the **Manage** dashboard, click **Execution Servers** and then select **Servers**. -3. In the **Servers** page, click the Execution Server's name. - - The **Attributes** window pops up. - - ![](/Images/Admin-Guide/Inventory-Operations/AnsibleAttributesPane.png) - -4. Select the **Supports Ansible** check box to use this Execution Server for Ansible configuration management. -5. If you have several Execution Servers that support Ansible but want to use this one, see the following section: - - This is recommended for geographically distributed deployments where you want a local Execution Server to perform operations on cloud providers that are physically nearest that Execution Server. For more information, see [Managing Public Cloud Apps in Domains](../../../admin/supported-cloud-providers-in-cloudshell/public-cloud-provider-support-in-cloudshell/managing-public-cloud-apps-in-domains.md) or [Managing Private Cloud Apps in Domains](../../../admin/supported-cloud-providers-in-cloudshell/private-cloud-provider-support-in-cloudshell/managing-private-cloud-apps-in-domains.md). - - **To set a specific Execution Server for Ansible configuration management:** - - 1. Select the attribute and specify a value. - 2. Specify the same value on the **Execution Server Selector** attribute in the cloud provider resource and/or in the **Resource Manager Client \> Configuration Services \> Ansible Configuration** service model. - - By default, CloudShell will use the Execution Server defined in the cloud provider resource. If it is not available, CloudShell will use the Execution Server defined in the **Ansible Configuration** model. Execution Servers specified on the deployed App shell/resource are not used for configuration management. - :::note - You can also configure the designated Ansible Execution Server to perform additional operations, such as running shells or commands. - ::: -6. Click **Done**. - -**To configure an Execution Server via command-line:** - -1. In the Execution Server machine, run command-line as administrator. -2. Navigate to the `/root/ExecutionServer` folder (or `opt/ExecutionServer` for Linux machines on Azure or AWS). -3. Run the following command with your details: - - ```python - mono QsExecutionServerConsoleConfig.exe /s:localhost /u:admin /p:admin /esn:my_es /ansible /a:"{'Execution Server Selector':'CloudShell domain'}" *** - ``` - - | Attribute | Description | - | --- | --- | - | /s | Quali Server IP address or hostname | - | /u | CloudShell admin to connect to CloudShell server | - | /p | CloudShell admin's password | - | /esn | Execution Server name to register with CloudShell | - | /ansible | Parameter indicating to Ansible configuration management that this Execution Server supports Ansible operations | - | /a | Additional attributes to set on the Execution Server. For example, passing to that option the value `{'attributeName1':'attributeValue1', 'attributeName2':'attribauteValue2'}` adds two attributes and their values.
    Note that the attributes must have the **Execution Server Selector** rule. | - - :::note Notes - - If the Execution Server VM does not have an internet connection, make sure the `OfflinePackageRepository` zip file is extracted to the local PyPi Server repository. For details, see [Add the out-of-the-box dependencies package to the local PyPi Server repository](../../../admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/configuring-cloudshell-to-execute-python-commands-in-offline-mode.md#add-the-out-of-the-box-dependencies-package-to-the-local-pypi-server-repository). - - Quali Server must be running when configuring the Execution Server. - - Depending on your flavor of Linux, you may need to escape parameter values containing special characters with single or double quotes. For example: `"admin1234!"` - ::: - - -## Perform additional configurations on the Execution Server machine - -To run Ansible configuration management on this Execution Server, several additional configurations are needed. - -**To configure the Execution Server to run Ansible:** - -1. Install Ansible as globally available command line utility. - - ```javascript - python3 -m pip install ansible - ``` - - :::note To install in an offline environment: - 1. Download the offline dependencies from [here](https://help-archive.quali.com/help%20versions/attachments/PY39-linux-ansible-reqs-2.14.0.zip). - 2. Place them in the Quali Server offline repository: - - `C:\Program Files (x86)\QualiSystems\CloudShell\Server\Config\Pypi Server Repository` - - 3. Run the following command: - - ```javascript - python3 -m pip install ansible --index-url=http://:8036/simple --trusted-host - ``` - - Replace \ with the IP of the machine containing the offline packages. - - **index-url** tells pip to download from local repo rather than public pypi, and **trusted-host** says you can trust this local server - ::: - -2. Verify install by running: - - ```javascript - ansible --version - ``` - - ![](../../Images/Linux2/ansible status.png) - -3. Install **pywinrm** into same python environment as global Ansible. This library is required by Ansible to connect to Windows Apps. - - ```javascript - python3 -m pip install pywinrm - ``` - -4. Install the **CentOS sshpass** module to allow password authentication to Apps. - - ```javascript - yum install sshpass - ``` - - -## Next... - -Make sure to [Enable WinRM on Windows VMs to Support Configuration Management](../../enable-winrm-on-win-vm-for-cfg-mng.md). diff --git a/versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/ansible-playbook-dev-for-apps/test-ansible-on-linux-es.md b/versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/ansible-playbook-dev-for-apps/test-ansible-on-linux-es.md deleted file mode 100644 index 87612ce537..0000000000 --- a/versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/ansible-playbook-dev-for-apps/test-ansible-on-linux-es.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Test Ansible Playbooks on the Linux Execution Server - -Before running the playbook in an App, it is recommended to test it manually. To do that, follow these steps: - -1. On a Linux Execution Server machine, access the `/etc/ansible/ansible.cfg` file and uncomment the line: - - `host_key_checking = False` - - :::note Notes - - At runtime, the Ansible driver creates a local `ansible.cfg` file and adds the above key. - - In addition, this local `ansible.cfg` takes priority over all other config files. See this [Ansible documentation page](https://docs.ansible.com/ansible/latest/reference_appendices/config.html#the-configuration-file) for details about Ansible config file hierarchies. - ::: -2. Create a folder that will be the root of your test. This folder will contain the Ansible playbook as well as any additional folders and files required by the playbook. - -3. Add an inventory file with hosts and their groups (optional) for testing. - - ![Discovery Dialog](/Images/Devguide-configuration-management/Ansible_10.png) - -4. Add one or more playbook files. - :::note - If you plan on using several playbook files in the App, make sure the main one is named *site.yml*. - ::: - ![Discovery Dialog](/Images/Devguide-configuration-management/Ansible_11_484x265.png) - -5. (Optional) Add a "roles” folder. - - ![Discovery Dialog](/Images/Devguide-configuration-management/Ansible_12_624x319.png) - -6. (Optional) Populate it with the desired roles. - - ![Discovery Dialog](/Images/Devguide-configuration-management/Ansible_13_624x319.png) - -7. Test the playbook by running `ansible-playbook –i `. For some sample playbooks, see [Ansible Playbook Examples](./ansible-playbook-examples.md). - - ![Discovery Dialog](/Images/Devguide-configuration-management/Ansible_14_624x813.png) - -8. Once you are done developing your playbook, zip the playbook files along with the roles folder, upload it to a repository, and set the URL in the App template, as explained in [Add the Playbook to an App](./add-playbook-to-app.md). \ No newline at end of file diff --git a/versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/ansible-playbook-dev-for-apps/tips-and-tricks-for-ansible-playbooks.md b/versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/ansible-playbook-dev-for-apps/tips-and-tricks-for-ansible-playbooks.md deleted file mode 100644 index 1aef6ba8f7..0000000000 --- a/versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/ansible-playbook-dev-for-apps/tips-and-tricks-for-ansible-playbooks.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -sidebar_position: 5 ---- - -# Tips and Tricks for Ansible Playbooks - -Please take the following under consideration when developing your playbook: - -- Make sure the Execution Server can access the script’s raw URL. -- When setting the VM user’s credentials in the App, make sure you provide the credentials of a user that has the necessary permissions to successfully execute all the playbook’s tasks. -- There's no need to include a hosts file in the playbook ZIP. At runtime, the Execution Server does the following: - - 1. Creates a dedicated hosts file, listing any groups specified in the App's **Inventory Groups** field along with the App's IP. - 2. Packages the playbook ZIP with the new hosts file. - 3. Sends the playbook package to the Ansible Server. -- If the App’s VM takes a long time to fully load, you may want to adjust the maximum time for the machine to respond, by setting the **Timeout Minutes** attribute on the **Custom Script Configuration** resource model (in Resource Manager Client’s **Resource Families** explorer). -- Use the **Ansible Additional Arguments** attribute to specify more parameters that should run along with the `ansible-playbook` command (e.g. `-vvv` for easier debugging). The attribute resides in Resource Manager Client>**Resource Families** explorer>**Configuration Services**. For details about supported arguments, see the official Ansible [documentation](https://docs.ansible.com/ansible/2.4/ansible-playbook.html). -- To use an Ansible playbook on a Windows VM, make sure WinRM is configured and loaded automatically to allow the playbook to communicate with that VM. A script for this is provided in [Enable WinRM on Windows VMs to Support Configuration Management](../../enable-winrm-on-win-vm-for-cfg-mng.md). -- Error "Failed to connect to the host via ssh: Warning: Permanently added '192.168.11.12' (RSA) to the list of known hosts.": - - When you first start using Ansible, by default, it has host verification enabled. This might result in warnings about ssh verification issue. You can disable it by setting a key (in the Ansible config file) or an environment variable: [https://docs.ansible.com/ansible/latest/inventory\_guide/connection\_details.html#managing-host-key-checking](https://docs.ansible.com/ansible/latest/inventory_guide/connection_details.html#managing-host-key-checking) \ No newline at end of file diff --git a/versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/custom-script-dev-for-apps/_category_.json b/versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/custom-script-dev-for-apps/_category_.json deleted file mode 100644 index 66e12fb6b0..0000000000 --- a/versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/custom-script-dev-for-apps/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Custom Script Development for Apps", - "position": 2 -} diff --git a/versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/custom-script-dev-for-apps/add-script-to-app.md b/versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/custom-script-dev-for-apps/add-script-to-app.md deleted file mode 100644 index d5f7c42040..0000000000 --- a/versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/custom-script-dev-for-apps/add-script-to-app.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Add Your Script to an App - -Now that we have tested and debugged our script, the next step is to add it to an App template. For details, see [Adding App templates](../../../admin/cloudshell-manage-dashboard/manage-app-templates/index.md#adding-app-templates). - -1. In CloudShell Portal, open the **Manage>Apps** page. - -2. Edit or create an App. - -3. Open the **Configuration Management** tab. - -4. From the **Select Tool** drop-down list, select **Script**. - -5. Select the appropriate **Connection Method**, depending on the VM’s operating system. Select **Windows Remote Management** for Windows machines, or **SSH** for Linux. - -6. Specify the script’s **URL**. Make sure you specify the raw version of the URL (GitHub, GitLab and BitBucket are supported). - - If the selected **Connection Method** is WinRM, the script file should have a .ps1 extension. Similarly, if **SSH** is selected, the script file extension can be either .sh or .bash. - - If the URL is protected by Basic Authentication, specify the **Username** and **Password**, or **Token**. - :::important - If the URL is private (HTTPS), the VM will need to have a valid SSL certificate. To disable the certificate check, open **Resource Manager Client>Resource Families>Configuration Services** (**Ansible Configuration** or **Custom Script Configuration**) and set the **Verify Certificate** attribute to **False**. - ::: -7. To pass parameters to the script (as environment variables), click **Add Parameter** and enter each parameter’s name and value. - - You can add parameters to the App template in the following ways: - - - Provide the value as part of the App template, making it the default value for every instance of this App template - - - Specify a static value in the App in the blueprint - - - Specify a dynamic value in the App in the blueprint, linking the parameter to one of the blueprint’s Global Inputs. To do so, just enter the global input’s name in curly brackets as the parameter value, or click the "plus” button to select an available Global Input. - - - Pass a value using the API, as illustrated in [Parameters](../custom-script-dev-for-apps/index.md#parameters). This will replace any value provided in the App template or in the blueprint - - ![Discovery Dialog](/Images/Devguide-configuration-management/Config-manage-Adding-Your_4_624x444.png) - - -8. Open the **App Resource** tab, and enter the VM’s access credentials. - - ![Discovery Dialog](/Images/Devguide-configuration-management/Config-manage-Adding-Your_5_624x444.png) - -9. Click **Done**. diff --git a/versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/custom-script-dev-for-apps/index.md b/versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/custom-script-dev-for-apps/index.md deleted file mode 100644 index f960c5b7b9..0000000000 --- a/versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/custom-script-dev-for-apps/index.md +++ /dev/null @@ -1,67 +0,0 @@ -# Custom Script Development for Apps - -This article will take you through the development process of a custom script for CloudShell App deployment. CloudShell supports PowerShell scripts for Windows VMs, and bash or sh scripts for Linux VMs. When developing your script, we recommend you first simulate/debug it by running it manually on a similar machine. - -## Examples - -Here are several examples of custom scripts to help you get started. If you are new to script development, feel free to test them out. - -### Hello World - -A basic script, just to make sure we’re communicating with the VM and are able to run a script. When run with an App, the output should be shown in the sandbox diagram’s **Output** window. - -```css -Windows / Linux -echo “Hello World“ -``` - -### Parameters - -A basic script that prints out the parameter defined in an App template or API call (see below). This is useful for debugging the script and making sure the parameter is received with the correct value. Note that the parameters are stored as environment variables on the App instance in the sandbox. - -```css -Windows -echo $env:P1 -Linux -echo $P1 -``` - -Specified in the App template: - -![Discovery Dialog](/Images/Devguide-configuration-management/Custom-Scripts_2_624x164.png) - -Specified in the ConfigureApps API method: - -```python -Python -from cloudshell.api.cloudshell_api import * - -session = CloudShellAPISession('localhost', 'admin', 'admin', 'Global') -session.ConfigureApps( - reservationId='dfb2df41-334e-4630-8bc6-ec846eb072d6', - appConfigurations=[AppConfiguration('LinuxVmApp_9cb2-72d6', [ConfigParam('P1', 'Hello World From Here!')])], - printOutput=True -) -``` - -:::note Notes -Since this script uses parameters defined on the App template, it will not work when run manually outside of CloudShell. For this to work, you will need to edit the Python code as follows: - -- Update the CloudShell settings passed to the `session` variable, if needed. -- Specify the ID of an active sandbox (in the `reservationId` field of the Python code). -- Replace `LinuxVmApp_9cb2-72d6` with the App’s name. -::: -### Linux privilege escalation - -If the deployed App resource is set with the credentials of a “regular” user, you may specify the root credentials in the parameters (see the Parameters example above), to use them in the script. - -```css -Linux -echo $pass | su $user –c ‘ls /root’ -or -Linux -su - $user <**Note:** The arguments are defined globally for all Apps using Ansible.
    **Important:** To configure Ansible to connect to certified hosts only (Linux VMs with a valid 'known\_hosts' key), include the following additional arguments: `--ssh-extra-args='-o StrictHostKeyChecking=yes'` | - | Execution Server Selector | Enables CloudShell administrators to indicate which Execution Server or group of Execution Servers will be used to perform configuration management operations on App VMs. This is recommended for CloudShell deployments that have different sites or domains. | - | Supports Ansible | (For Ansible) Indicates that an Execution Server has a compatible version of Ansible and can run the Ansible configuration management operations. Enabled by default. | - | Timeout Minutes | Maximum number of minutes allowed for connection to the target machine. App deployment will fail when the timeout period has passed. 20 minutes by default. | - -5. Click **Edit Rules**. - - The **Attribute Rules** dialog box is displayed. - -6. You can also specify a **Default Value** for this attribute. -7. Click **OK**. -8. Save your changes. diff --git a/versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/getting-started-with-cfg-mng-dev.md b/versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/getting-started-with-cfg-mng-dev.md deleted file mode 100644 index 5bd33a49ed..0000000000 --- a/versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/getting-started-with-cfg-mng-dev.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Getting Started with Configuration Management Development - -Configuration management allows you to run scripts that install applications on the virtual machines (VMs) deployed in the sandbox or run post-deployment configuration. This configuration can be executed as part of the sandbox setup, or later on in a live sandbox. Configuration management operations can be performed using custom scripts or Ansible playbooks. Custom scripts are typically used for simple operations, like installing a program on the VM or printing some messages, while Ansible is used for more complex tasks. - -## Developing configuration management - -The flow for developing configuration management is as follows, with minor differences depending on whether you’re using a script or playbook. - -1. Write the script or playbook. - -2. Manually simulate/debug the script or playbook. - -3. Add the script or playbook to an App and deploy the App. diff --git a/versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/index.md b/versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/index.md deleted file mode 100644 index 12dfd484c5..0000000000 --- a/versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/index.md +++ /dev/null @@ -1,15 +0,0 @@ -# Developing Configuration Management Scripts for Apps - -Configuration management extends CloudShell Apps by enabling the execution of custom scripts and Ansible playbooks on virtual machines (VMs) deployed in the sandbox. This configuration can be executed as part of the sandbox setup or later on in a live sandbox. - -:::note -These procedures require system administrator permissions. -::: - -## In this chapter - -- [Getting Started with Configuration Management Development](./getting-started-with-cfg-mng-dev.md) -- [Custom Script Development for Apps](./custom-script-dev-for-apps/index.md) -- [Ansible Playbook Development for Apps](../devguide/develop-config-management-scripts-for-apps/ansible-playbook-dev-for-apps) -- [Customizing Configuration Management Settings](./customize-cfg-mng-settings.md) -- [Passing Variables From the Setup Script to Configuration Management](./passing-variables-to-cfg-mng.md) \ No newline at end of file diff --git a/versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/passing-variables-to-cfg-mng.md b/versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/passing-variables-to-cfg-mng.md deleted file mode 100644 index 56bad4cc39..0000000000 --- a/versioned_docs/version-2023.3/devguide/develop-config-management-scripts-for-apps/passing-variables-to-cfg-mng.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -sidebar_position: 5 ---- - -# Passing Variables From the Setup Script to Configuration Management - -A common use case for configuration management scripts is to inject environment data during the sandbox's setup phase. This is done using a custom setup script that prepares the data and passes it to predefined or dynamically-created variables on the App's configuration management. - -For illustration purposes, the following [setup script](https://github.com/QualiSystemsLab/cloudshell-api-script-samples/tree/master/generic-orchestration-samples/setup/setup_set_user_mail_on_apps) gets the sandbox owner's email from their CloudShell user profile and passes it to a dynamically-created parameter called "USER\_MAIL" on target Apps that have an "Update Mail" attribute. - -The main files in the script are: - -- `__main__.py`: Entry point to the script. Note that the file includes an `enable_configuration=False` flag, which disables the default out-of-the-box **Configuration** step to allow our custom code to run instead. -- `configure_apps.py`: Custom orchestration function that replaces the out-of-the-box Configuration step in the sandbox's setup phase - -**To use the script:** - -1. In **Resource Manager Client > Resource Families** explorer, do the following: - 1. Create an Update Mail attribute (Boolean, default: **False**). - 2. Set the attribute on the **Generic App Family**. -2. Upload the script to CloudShell. -3. Create a blueprint and replace the out-of-the-box Setup script. -4. Add the suitable Apps to the blueprint. -5. Set the attribute to **True** in the blueprint Apps. - -## Related Topics - -- [Managing Assets](./../../admin/cloudshell-manage-dashboard/managing-automation/managing-assets.md) -- [Managing App Templates](../../admin/cloudshell-manage-dashboard/manage-app-templates/index.md) -- [Create a Blueprint](../../portal/blueprints/creating-blueprints/create-blueprint.md) -- [Configure Blueprint Orchestration](../../portal/blueprints/creating-blueprints/configure-orchestration.md) diff --git a/versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/_category_.json b/versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/_category_.json deleted file mode 100644 index 91cd7eea80..0000000000 --- a/versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/_category_.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "label": "Developing Custom Cloud Provider Shells", - "position": 6, - "link": { - "slug": "devguide/develop-custom-cloud-provider-shells", - "type": "generated-index", - "description": "The Custom Cloud Provider Shell enables sandbox end users to deploy virtual applications on any on prem or public cloud provider or Kubernetes cluster. Note that we're adding cloud provider shells to Quali Repositories all the time. However, to deploy VMs on other cloud providers, or create a modified version of an existing cloud provider shell, you will need to create a shell that allows this to happen." - } -} diff --git a/versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/app-deployment.md b/versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/app-deployment.md deleted file mode 100644 index 496897dc55..0000000000 --- a/versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/app-deployment.md +++ /dev/null @@ -1,658 +0,0 @@ ---- -sidebar_position: 10 ---- - -# App Deployment - -In this article, we’ll learn how to implement the App’s deployment. - -To deploy an App successfully, you need to implement the following 4 methods: - -- [Deploy method](#deploy-method) creates the App’s VM instance. -- [PowerOn method](#poweron-method) spins up the VM. -- [remote\_refresh\_ip](#remote_refresh_ip) updates the deployed App’s IP address. -- [GetVmDetails method](#getvmdetails-method) gets information about the VM itself, its operating system, specifications and networking information. - -These methods are executed in the above order during the deployment of an App in the sandbox (either automatically as part of the default sandbox setup script that runs when reserving a sandbox or manually by the user after adding an App to an active sandbox). Once the App is deployed, these methods can be run as individual commands from the deployed App’s commands pane, with the exception of the *Deploy* command which is no longer needed once the App is deployed. - -## Deploy method - -Creates the App’s VM instance. - -### Signature - -The *deploy* method accepts three inputs: *context*, *request*, and *cancellation\_context*. - -[This Github Sample](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/865f356f4aec14e170cd9e5f30b575c48f2dc865/src/driver.py) is by [QualiSystems](https://github.com/QualiSystems) - -src/driver.py [view](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/865f356f4aec14e170cd9e5f30b575c48f2dc865/src/driver.py) [raw](https://raw.githubusercontent.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/865f356f4aec14e170cd9e5f30b575c48f2dc865/src/driver.py) - -```python -def Deploy(self, context, request, cancellation_context=None): -``` - -### Inputs - -#### context - -**context:** *context* is a *ResourceCommandContext* object that contains: - -- reservation - current reservation details -- connectors – details of any visual connectors between the Cloud Provider App and other endpoints in the sandbox -- connectivity - CloudShell server connectivity data for authentication with CloudShell Automation API -- resource - resource configuration settings entered when creating the Cloud Provider resource in the **Inventory** dashboard - -[This Github Sample](https://github.com/QualiSystems/cloudshell-shell-core/blob/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) is by [QualiSystems](https://github.com/QualiSystems) - -cloudshell/shell/core/driver\_context.py [view](https://github.com/QualiSystems/cloudshell-shell-core/blob/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) [raw](https://raw.githubusercontent.com/QualiSystems/cloudshell-shell-core/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) - -```python -class ResourceCommandContext: - def __init__(self, connectivity, resource, reservation, connectors): - self.connectivity = connectivity # Connectivity details that can help connect to the APIs - """:type : ConnectivityContext""" - self.resource = resource # The details of the resource using the driver - """:type : ResourceContextDetails""" - self.reservation = reservation # The details of the reservation - """:type : ReservationContextDetails""" - self.connectors = connectors # The list of visual connectors and routes that are connected to the resource (the resource will be considered as the source end point) - """:type : list[Connector]""" -``` - -#### Request - -**request:** *request* is an *AppContext* object that contains: - -- Resource deployment path (in the App template’s **Deployment Paths** page) -- Deployed App configuration (in the App template’s **App Resource** page) -
    -Example: app\_request\_json for App "Ubuntu OCI 18.04" that is connected to a single subnet service... - -```javascript -{ - " ""driverRequest":" "{ - " ""actions":" "[ - " "{ - " ""actionParams":" "{ - " ""cidr":" ""10.0.1.32/28", - " ""subnetId":" ""ocid1.subnet.oc1.uk-london-1.aa...ovena", - " ""isPublic":" true", - " ""vnicName":" null", - " ""subnetServiceAttributes":" "[ - " " - ], - " ""type":" ""connectToSubnetParams"" " - }, - " ""actionId":" ""bw23c565-5aba-40wa-9fba-69287rf542cf", - " ""type":" ""connectSubnet"" " - }, - " "{ - " ""actionParams":" "{ - " ""appName":" ""Ubuntu OCI 18.04", - " ""deployment":" "{ - " - ""deploymentPath":" ""OCI Shell.OCI VM from Image", - " ""attributes":" "[ - " "{ - " ""attributeName":" ""OCI Shell.OCI VM from Image.Inbound Ports", - " ""attributeValue":" ""22", - " ""type":" ""attribute"" " - }, - " "{ - " ""attributeName":" ""OCI Shell.OCI VM from Image.Skip VNIC src or dst check", - " ""attributeValue":" ""False", - " ""type":" ""attribute"" " - }, - " "{ - " ""attributeName":" ""OCI Shell.OCI VM from Image.Autoload", - " ""attributeValue":" ""True", - " ""type":" ""attribute"" " - }, - " "{ - " ""attributeName":" ""OCI Shell.OCI VM from Image.Wait for IP", - " ""attributeValue":" ""True", - " ""type":" ""attribute"" " - }, - " "{ - " ""attributeName":" ""OCI Shell.OCI VM from Image.Image ID", - " ""attributeValue":" ""ocid1.image.oc1.uk-london-1.aausaaaagcmjzblg9wliwb2fxpr7t4nv7j4ertujgosyoctlkismlwi3cbq", - " ""type":" ""attribute"" " - }, - " "{ - " ""attributeName":" ""OCI Shell.OCI VM from Image.VM Shape", - " ""attributeValue":" ""VM.Standard2.4", - " ""type":" ""attribute"" " - }, - " "{ - " ""attributeName":" ""OCI Shell.OCI VM from Image.Add Public IP", - " ""attributeValue":" ""True", - " ""type":" ""attribute"" " - }, - " "{ - " ""attributeName":" ""OCI Shell.OCI VM from Image.Requested Private IP", - " ""attributeValue":" ""32.2.2.4;11.0.0.4;35.0.0.20", - " ""type":" ""attribute"" " - }" " - ], - " ""type":" ""deployAppDeploymentInfo"" " - }, - " ""appResource":" "{ - " ""attributes":" "[ - " "{ - " ""attributeName":" ""Password", - " ""attributeValue":" ""encrypted password here", - " ""type":" ""attribute"" " - }, - " "{ - " ""attributeName":" ""Public IP", - " ""attributeValue":" """, - " ""type":" ""attribute"" " - }, - " "{ - " ""attributeName":" ""User", - " ""attributeValue":" ""ubuntu", - " ""type":" ""attribute"" " - }" " - ], - " ""type":" ""appResourceInfo"" " - }, - " ""type":" ""deployAppParams"" " - }, - " ""actionId":" ""c1256ebf-01d9-4804-4oi9-63ad31s4s281", - " ""type":" ""deployApp"" " - }" " - ]" " - } -} -``` -
    - -#### cancellation\_context - -CloudShell supports the canceling of App command executions. - -[This Github Sample](https://github.com/QualiSystems/cloudshell-shell-core/blob/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) is by [QualiSystems](https://github.com/QualiSystems) - -cloudshell/shell/core/driver\_context.py [view](https://github.com/QualiSystems/cloudshell-shell-core/blob/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) [raw](https://raw.githubusercontent.com/QualiSystems/cloudshell-shell-core/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) - -```python -def __init__(self): - self.is_cancelled = False - """:type : bool""" -``` - -To allow the cancellation of a command on the Cloud Provider’s Apps, we need to: - -1. Check for cancellation before each operation. If cancelled, delete cloud objects created by operation. -2. Return the appropriate result. - -**Usage example:** - -[This Github Sample](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/865f356f4aec14e170cd9e5f30b575c48f2dc865/src/heavenly_cloud_service_wrapper.py) is by [QualiSystems](https://github.com/QualiSystems) - -src/heavenly\_cloud\_service\_wrapper.py [view](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/865f356f4aec14e170cd9e5f30b575c48f2dc865/src/heavenly_cloud_service_wrapper.py) [raw](https://raw.githubusercontent.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/865f356f4aec14e170cd9e5f30b575c48f2dc865/src/heavenly_cloud_service_wrapper.py) - -```python -if cancellation_context.is_cancelled: - # rollback what we created for current executing command then raise exception - # HeavenlyCloudService.rollback() - raise Exception('Operation cancelled') -``` - -### Output - -*DriverResponse* object that contains a list of action results. - -### Error handling - -If App deployment fails, return a "success false” action result. - -### Deploy method implementation - -The deploy method should perform the following steps: - -1. [Retrieve the cloud provider resource’s connection credentials](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/a9a14e87570fdc52d9994950e161b104c62401fb/src/driver.py#L91). - -2. [Retrieve the Deploy action](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/a9a14e87570fdc52d9994950e161b104c62401fb/src/driver.py#L92-L95). - -3. [Call the Deploy logic of the selected deployment type](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/a9a14e87570fdc52d9994950e161b104c62401fb/src/driver.py#L99-L106). - -4. *(Steps 4 - 8 are performed within the deploy logic)* [Generate a unique name for the App. For example, "My-App\_968e-a950”](https://github.com/QualiSystems/Custom-L3-Cloud-Provider-Shell-Example/blob/4aa0c863da205686952e414e16a0baea954b2bfa/src/heavenly_cloud_service_wrapper.py#L22). Deployed Apps are classified as resources in CloudShell and therefore must have a unique name. - -5. [Create a VM instance using the deployment path attributes](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/a9a14e87570fdc52d9994950e161b104c62401fb/src/heavenly_cloud_service_wrapper.py#L47-L48) (the HeavenlyCloud service represents your custom cloud SDK). - -6. If VM deployment is successful: - - - [Collect VM details](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/a9a14e87570fdc52d9994950e161b104c62401fb/src/heavenly_cloud_service_wrapper.py#L78-L79) (operating system, specifications, networking information). - - Optionally, [override App resource attribute values](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/a9a14e87570fdc52d9994950e161b104c62401fb/src/heavenly_cloud_service_wrapper.py#L59-L62). For [example](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/a9a14e87570fdc52d9994950e161b104c62401fb/src/heavenly_cloud_service_wrapper.py#L51-L58), if we generate a unique password for each VM instance, we will also want to update this password in the Password attribute on the Deployed App Resource for future use (to allow the sandbox end-user to connect to the VM). - - If needed, [add additional data to the action result](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/a9a14e87570fdc52d9994950e161b104c62401fb/src/heavenly_cloud_service_wrapper.py#L84-L88). This key-value data will be available from all API resource queries. It can be useful for implementing custom logic during the lifecycle of the sandbox. [Example](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/a9a14e87570fdc52d9994950e161b104c62401fb/src/heavenly_cloud_service_wrapper.py#L245-L249). - -7. If VM deployment fails, [return a "fail” result](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/a9a14e87570fdc52d9994950e161b104c62401fb/src/heavenly_cloud_service_wrapper.py#L74-L76). - -8. [*Return DeployAppResult*](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/a9a14e87570fdc52d9994950e161b104c62401fb/src/heavenly_cloud_service_wrapper.py#L92-L99). - -9. [*Return DriverResponse*](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/a9a14e87570fdc52d9994950e161b104c62401fb/src/driver.py#L112). - - -Note that the links in the above workflow pertain to a driver of an L2 implementation. However, the only difference between L2 and L3 driver implementations is that L2 implements *ApplyConnectivityChanges* while L3 uses the *PrepareSandboxInfra* and *CleanSandboxInfra* methods. - -### DeployAppResult JSON example -
    -Example... - -```javascript -{ - " ""actionId":"aac7cc0c-a215-4aee-8fc1-f72020.1.034423", - " ""deployedAppAdditionalData":{ - - }, - " ""deployedAppAddress":"192.168.0.5", - " ""deployedAppAttributes":[ - " "{ - " ""attributeName":"Password", - " ""attributeValue":"123456"" " - }, - " "{ - " ""attributeName":"User", - " ""attributeValue":"super user"" " - }" " - ], - " ""errorMessage":"", - " ""infoMessage":"", - " ""success":true, - " ""type":"DeployApp", - " ""vmDetailsData":{ - " ""appName":"", - " ""errorMessage":"", - " ""vmInstanceData":[ - " "{ - " ""hidden":false, - " ""key":"Cloud Name", - " ""value":"white"" " - }, - " "{ - " ""hidden":false, - " ""key":"Cloud Index", - " ""value":"0"" " - }, - " "{ - " ""hidden":false, - " ""key":"Cloud Size", - " ""value":"not so big"" " - }, - " "{ - " ""hidden":false, - " ""key":"Instance Name", - " ""value":"angel vm__ca11f5"" " - }, - " "{ - " ""hidden":true, - " ""key":"Hidden stuff", - " ""value":"something not for UI"" " - }" " - ], - " ""vmNetworkData":[ - " "{ - " ""interfaceId":0, - " ""isPredefined":false, - " ""isPrimary":true, - " ""networkData":[ - " "{ - " ""hidden":false, - " ""key":"MaxSpeed", - " ""value":"1KB"" " - }, - " "{ - " ""hidden":false, - " ""key":"Network Type", - " ""value":"Ethernet"" " - }" " - ], - " ""networkId":0, - " ""privateIpAddress":"10.0.0.0", - " ""publicIpAddress":"8.8.8.0"" " - }, - " "{ - " ""interfaceId":1, - " ""isPredefined":false, - " ""isPrimary":false, - " ""networkData":[ - " "{ - " ""hidden":false, - " ""key":"MaxSpeed", - " ""value":"1KB"" " - }, - " "{ - " ""hidden":false, - " ""key":"Network Type", - " ""value":"Ethernet"" " - }" " - ], - " ""networkId":1, - " ""privateIpAddress":"10.0.0.1", - " ""publicIpAddress":"8.8.8.1"" " - }" " - ]" " - }, - " ""vmName":"angel vm__ca11f5", - " ""vmUuid":"027ad770-9ecb-4936-a7df-aeaf526dfc34" -} -``` -
    - -### DeployAppResult properties - -| Name | Type | Description | -| --- | --- | --- | -| actionId | string | (Mandatory) The action GUID as received (deploy\_app\_action.actionId) result must include the action id it results for, so server can match result to action. | -| deployedAppAddress | string | (Mandatory) The primary ip address of the VM instance. This value will be set as the deployed App’s resource address in CloudShell. | -| errorMessage | string | (Optional) Error message to be displayed to the sandbox end-user if VM deployment fails. | -| infoMessage | string | (Optional) Info message to be displayed to the sandbox end-user if VM deployment succeeds. | -| success | bool | (Mandatory) | -| type | string | (Read only) *DeployApp* object type. It is automatically set in *DeployAppResult* object type (in cloudshell-cp-core). | -| vmName | string | Unique name of the resource in CloudShell. | -| vmUuid | string | Unique resource id. Populate *vmUuid* with the unique id of the resource in your custom cloud provider. Cloudshell does not use this id, but will keep it for other method calls. | -| deployedAppAdditionalData | dictionary | Container used to persist custom data in resource, similar to AWS Tags. Included in all resource API query results. For [example](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/ac94224fd2368aaa9b589bcdfd30e449a53c90ce/src/heavenly_cloud_service_wrapper.py#L209-L213), reading the custom data and returning it in the VM Details. | -| deployedAppAttributes | array | Contains data describing the deployed app attributes, and are displayed in the App’s Attributes pane in the sandbox. It should be used to change default attribute values on the deployed App resource. For example User & Password attributes exist as part of the default deployed App model. If your custom cloud provider generates a password in runtime for the VM, you should update the *deployedAppAttributes* property accordingly. | -| vmDetailsData | object | Contains vmNetworkData and vmInstanceData. Displayed in the App’s VM Details pane. For details about the return data, see the [GetVmDetails method](#getvmdetails-method)’s Return value section below. | - -## PowerOn method - -The *PowerOn* method spins up the VM. It is run automatically when reserving the sandbox, as part of CloudShell’s default sandbox setup script, and can also be run manually by the sandbox end-user from the deployed App’s commands pane. During *PowerOn*, the VM’s IP address and a green live status icon are displayed on the App in sandbox. - -You don’t have to implement this method if the *deploy* method has been configured to spin up the VM. If *PowerOn* does not fail, CloudShell will set resource state to "online” once the VM is up. - -### Signature - -```python -def PowerOn(self, context, ports) -``` - -### Inputs - -#### context - -**context:** *context* is a [ResourceRemoteCommandContext](https://github.com/QualiSystems/cloudshell-shell-core/blob/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py#L171-L180) object that contains: - -- connectivity - CloudShell server connectivity data for authentication with CloudShell Automation API -- resource - resource configuration settings entered by the user when creating the Cloud Provider resource in the **Inventory** dashboard -- remote\_reservation – reservation details -- remote\_endpoints- will contain a single [ResourceContextDetails](https://github.com/QualiSystems/cloudshell-shell-core/blob/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py#L38-L64) object which provides data for the operation. - -#### Ports - -Legacy argument. Obsolete for custom cloud providers. - -### PowerOn method implementation - -The *PowerOn* method should perform the following steps: - -1. Retrieve the cloud provider resource’s connection credentials. - -2. Convert the *deployed\_app\_json* context from string to object. - - The json contains information about the CloudShell server, the deployed App and reservation. - - For details, copy the json contents into your preferred JSON editor. For example: - - ![PowerOn JSON](/Images/Devguide-cloud-providers/App-Deployment.png) - -3. Power on the deployed App resource. - - -### PowerOn implementation example - -[This Github Sample](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/ea88bab874c42d69508ba5b2542e867c5b375d5f/src/driver.py) is by [QualiSystems](https://github.com/QualiSystems) - -src/driver.py [view](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/ea88bab874c42d69508ba5b2542e867c5b375d5f/src/driver.py) [raw](https://raw.githubusercontent.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/ea88bab874c42d69508ba5b2542e867c5b375d5f/src/driver.py) - -```python -def PowerOn(self, context, ports): - """ - Will power on the compute resource - :param ResourceRemoteCommandContext context: - :param ports: - """ - with LoggingSessionContext(context) as logger, ErrorHandlingContext(logger): - self._log(logger, 'power_on_context', context) - self._log(logger, 'power_on_ports', ports) - cloud_provider_resource = L2HeavenlyCloudShell.create_from_context(context) - resource_ep = context.remote_endpoints[0] - deployed_app_dict = json.loads(resource_ep.app_context.deployed_app_json) - vm_uid = deployed_app_dict['vmdetails']['uid'] - HeavenlyCloudServiceWrapper.power_on(cloud_provider_resource,vm_uid) -``` - -### Return value - -None - -### Error handling - -In case of an error, the command should raise an exception. - -## remote\_refresh\_ip - -The *remote\_refresh\_ip* method retrieves the VM’s updated IP address from the cloud provider and sets it on the deployed App resource. The IP of the main network interface also needs to be retrieved from the cloud provider. Both private and public IPs are retrieved, as appropriate. - -*remote\_refresh\_ip* is run automatically during the sandbox’s setup, after the VM is created and connected to networks, and can also be run manually by the sandbox end-user by running the **Refresh IP** command in the sandbox. - -**Note:** This method is mandatory. However, you can choose to disable the call to this method during setup using the **Wait for IP** attribute. For details, see [Controlling App Deployment Orchestration](./controlling-app-deployment-orch.md). - -### Signature - -```python -def remote_refresh_ip(self, context, ports, cancellation_context): -``` - -### Inputs - -#### context - -**context:** *context* is a [ResourceRemoteCommandContext](https://github.com/QualiSystems/cloudshell-shell-core/blob/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py#L171-L180) object that contains: - -- connectivity - CloudShell server connectivity data for authentication with CloudShell Automation API -- resource - resource configuration settings entered when creating the Cloud Provider resource in the *Inventory* dashboard -- remote\_reservation – reservation details -- remote\_endpoints - will contain a single [ResourceContextDetails](https://github.com/QualiSystems/cloudshell-shell-core/blob/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py#L38-L64) object which provides data for the operation. - -[This Github Sample](https://github.com/QualiSystems/cloudshell-shell-core/blob/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) is by [QualiSystems](https://github.com/QualiSystems) - -cloudshell/shell/core/driver\_context.py [view](https://github.com/QualiSystems/cloudshell-shell-core/blob/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) [raw](https://raw.githubusercontent.com/QualiSystems/cloudshell-shell-core/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) - -```python -def __init__(self, connectivity, resource, remote_reservation, remote_endpoints): - self.connectivity = connectivity # Connectivity details that can help connect to the APIs - """:type : ConnectivityContext""" - self.resource = resource # The details of the resource using the driver - """:type : ResourceContextDetails""" - self.remote_reservation = remote_reservation # The details of the remote reservation - """:type : ReservationContextDetails""" - self.remote_endpoints = remote_endpoints - """:type : list[ResourceContextDetails]""" -``` - -#### Ports - -Legacy argument. Obsolete for custom cloud providers. - -#### Cancellation context - -[This Github Sample](https://github.com/QualiSystems/cloudshell-shell-core/blob/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) is by [QualiSystems](https://github.com/QualiSystems) - -cloudshell/shell/core/driver\_context.py [view](https://github.com/QualiSystems/cloudshell-shell-core/blob/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) [raw](https://raw.githubusercontent.com/QualiSystems/cloudshell-shell-core/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) - -```python -def __init__(self): - self.is_cancelled = False - """:type : bool""" -``` - -### Return value - -None. - -Unlike other methods that update data using the result, *remote\_refresh\_ip* updates the deployed App resource with the IP by calling *cloudshell-automation-api*. However, if you implemented a return output, make sure to convert the *remote\_refresh\_ip* object to a string and pass the value to the "IP” attribute on the deployed App. - -### Error handling - -If the operation fails, the command should raise an exception. - -### remote\_refresh\_ip method implementation - -This method should perform the following steps: - -1. [Retrieve the Cloud Provider resource’s connection credentials](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/ede6f78b4d4a78ae61b628696f6903d684e2224b/src/driver.py#L200). - -2. [Convert the deployed\_app\_json context from string to object](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/ede6f78b4d4a78ae61b628696f6903d684e2224b/src/driver.py#L201). - -3. [Retrieve previously known private/public IPs (if there are any), VM instance id](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/ede6f78b4d4a78ae61b628696f6903d684e2224b/src/driver.py#L202-L212). - -4. [Verify that the deployed App’s private IP is the same as the ip in the cloud provider](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/ede6f78b4d4a78ae61b628696f6903d684e2224b/src/heavenly_cloud_service_wrapper.py#L294). If it’s different, update the deployed App ip with the IP on the cloud provider. - - - If the IPs are different, [update the deployed App IP with the IP on the cloud provider by calling *UpdateResourceAddress*](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/ede6f78b4d4a78ae61b628696f6903d684e2224b/src/heavenly_cloud_service_wrapper.py#L294-L295). - - - If the operation fails, display an error to the sandbox end-user. - - -5. If needed, verify that the deployed App’s public IP is the same as the ip in the cloud provider. - - - If the IPs are different, [update the deployed App ip with the ip on the cloud provider by calling *SetAttributeValue* and setting the Public IP attribute](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/ede6f78b4d4a78ae61b628696f6903d684e2224b/src/heavenly_cloud_service_wrapper.py#L297-L298). - - If the operation fails, display an error to the sandbox end-user. - -## GetVmDetails method - -The *GetVmDetails* method gets information about the App’s VM, operating system, specifications and networking information. It is called by the default setup script when reserving the sandbox, after the *RefreshIp* method is called, and can also be run manually by the sandbox end-user on deployed Apps from the App’s **VM Details** pane. - -**Note:** The implementation is expected to query the cloud provider for the details, but not return any cached or stored data. - -### Signature - -```python -def GetVmDetails(self, context, requests, cancellation_context): -``` - -### Inputs - -#### context - -**context:** *context* is a *ResourceCommandContext* object that contains: - -- connectivity - CloudShell server connectivity data for authentication with CloudShell Automation API - -- resource - resource configuration settings entered when creating the Cloud Provider resource in the **Inventory** dashboard - -- reservation – reservation details - -- connectors – details of any visual connectors between the Cloud Provider App and other endpoints in the sandbox - - -[This Github Sample](https://github.com/QualiSystems/cloudshell-shell-core/blob/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) is by [QualiSystems](https://github.com/QualiSystems) - -cloudshell/shell/core/driver\_context.py [view](https://github.com/QualiSystems/cloudshell-shell-core/blob/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) [raw](https://raw.githubusercontent.com/QualiSystems/cloudshell-shell-core/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) - -```python -class ResourceCommandContext: - def __init__(self, connectivity, resource, reservation, connectors): - self.connectivity = connectivity # Connectivity details that can help connect to the APIs - """:type : ConnectivityContext""" - self.resource = resource # The details of the resource using the driver - """:type : ResourceContextDetails""" - self.reservation = reservation # The details of the reservation - """:type : ReservationContextDetails""" - self.connectors = connectors # The list of visual connectors and routes that are connected to the resource (the resource will be considered as the source end point) - """:type : list[Connector]""" -``` - -#### Requests - -JSON string that contains a list of items containing App requests and deployed App data. This method can be called for a set of VMs. - -#### Cancellation request - -[This Github Sample](https://github.com/QualiSystems/cloudshell-shell-core/blob/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) is by [QualiSystems](https://github.com/QualiSystems) - -cloudshell/shell/core/driver\_context.py [view](https://github.com/QualiSystems/cloudshell-shell-core/blob/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) [raw](https://raw.githubusercontent.com/QualiSystems/cloudshell-shell-core/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) - -```python -def __init__(self): - self.is_cancelled = False - """:type : bool""" -``` - -### Return value - -*VmDetailsData* object in a serialized JSON. - -[This Github Sample](https://github.com/QualiSystems/cloudshell-cp-core/blob/d58c094d9600b5a6232da16dada1d3a408a88ac9/package/cloudshell/cp/core/models.py) is by [QualiSystems](https://github.com/QualiSystems) - -package/cloudshell/cp/core/models.py [view](https://github.com/QualiSystems/cloudshell-cp-core/blob/d58c094d9600b5a6232da16dada1d3a408a88ac9/package/cloudshell/cp/core/models.py) [raw](https://raw.githubusercontent.com/QualiSystems/cloudshell-cp-core/d58c094d9600b5a6232da16dada1d3a408a88ac9/package/cloudshell/cp/core/models.py) - -```python -def __init__(self, vmInstanceData=None, vmNetworkData=None,appName = '',errorMessage = ''): - """ - :param vmInstanceData: [VmDetailsProperty] - :param vmNetworkData: [VmDetailsNetworkInterface] - :param appName: str - :param errorMessage: str - """ - - self.vmInstanceData = vmInstanceData if vmInstanceData else [] # type: [VmDetailsProperty] - self.vmNetworkData = vmNetworkData if vmNetworkData else [] # type: [VmDetailsNetworkInterface] - self.appName = appName - self.errorMessage = errorMessage -``` - -### vmDetailsData properties - -*vmDetailsData* is used to describe the App’s VM. All properties are optional. - -| Name | Type | Description | -| --- | --- | --- | -| appName | String | The App’s name. No need to assign it in the deploy operation. Must be assigned in *getVmDetails* method. | -| errorMessage | string | Indication message to be displayed to the sandbox end-user when getting the vmDetails. | -| vmNetworkData | array | Array of cloudshell-cp-core VmDetailsNetworkInterface object. Create a *vmNetworkData* object for each VM NIC you wish to associate with resource. See the VmDetailsNetworkInterface table below. | -| vmInstanceData | array | Array of cloudshell-cp-core’s *VmDetailsProperty*. Contains data about the VM instance attributes. It should be used to change persist values of the VM resource. For example to persist Storage and operating system data. See the VmDetailsProperty table below. | - -### VmDetailsNetworkInterface - -| Name | Type | Description | -| --- | --- | --- | -| interfaceId | String | The network interface id with which the address is associated. | -| networkId | string | The unique id of the network associated with the network interface. | -| isPrimary | bool | Determines if NIC is primary. Primary affects the default selected network in VmDetailsTab in cloudshell | -| isPredefined | bool | Determines if NIC is predefined. Predefined means that the network existed before the sandbox reservation. for example, a Static Management network that is not modeled in the blueprint. | -| networkData | array | Array of cloudshell-cp-core VmDetailsProperty. Contains data describing the NIC. Examples of network properties include Device Index and MAC Address. | -| privateIpAddress | string | NIC address. | -| publicIpAddress | string | The public ip associated with the NIC’s private ip. | - -### VmDetailsProperty - -| Name | Type | Description | -| --- | --- | --- | -| key | string | | -| value | string | | -| hidden | bool | Determines if the property is displayed to the sandbox end-user. | - -### GetVmDetails method implementation - -This method should perform the following steps: - -1. [Retrieve cloud provider resource connection credentials](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/ede6f78b4d4a78ae61b628696f6903d684e2224b/src/driver.py#L177). - -2. [Convert the JSON string to object](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/ede6f78b4d4a78ae61b628696f6903d684e2224b/src/heavenly_cloud_service_wrapper.py#L228) - -3. For each request, do the following: - - - [Retrieve identifiers](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/d17640899a06fb69e61ac678d620301d76dfd3cb/src/heavenly_cloud_service_wrapper.py#L237-L239). - - - [Query the cloud provider for the VM’s configuration and networks](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/d17640899a06fb69e61ac678d620301d76dfd3cb/src/heavenly_cloud_service_wrapper.py#L241). - - - [Populate vmInstanceData with the data (key-value) you wish to persist on the VM resource](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/d17640899a06fb69e61ac678d620301d76dfd3cb/src/heavenly_cloud_service_wrapper.py#L242). For example to persist the VM’s Storage & operating system data. - - - [Create *vmNetworkData*](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/d17640899a06fb69e61ac678d620301d76dfd3cb/src/heavenly_cloud_service_wrapper.py#L243). [*vmNetworkData*](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/d17640899a06fb69e61ac678d620301d76dfd3cb/src/heavenly_cloud_service_wrapper.py#L194-L215) is a list of *VmDetailsNetworkInterface*, one for each VM NIC you wish to associate with the resource. - - - [Collect as VmDetailsData result](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/d17640899a06fb69e61ac678d620301d76dfd3cb/src/heavenly_cloud_service_wrapper.py#L251-L252). - - -4. [Convert to JSON and return the result](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/ede6f78b4d4a78ae61b628696f6903d684e2224b/src/driver.py#L178-L180). \ No newline at end of file diff --git a/versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/configure-the-deployment-paths.md b/versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/configure-the-deployment-paths.md deleted file mode 100644 index 9f4932e0ac..0000000000 --- a/versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/configure-the-deployment-paths.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -sidebar_position: 6 ---- - -# Configuring Deployment Paths - -In this article, we’ll learn how to set up the App’s deployment paths. - -The shell’s deployment paths are defined in the shell project’s **Deployments** folder. The folder includes a **deployment\-path.yaml** file, which represents a single deployment path. You can create multiple deployment paths for your shell by creating additional copies of the file and modifying their settings. - -Note that since Cloud Provider is a 2nd Gen shell, the deployment paths are not available in Resource Manager Client’s **Resource Families** explorer. - -## Setting up the deployment type and image - -Let’s start by configuring a new deployment path. - -1. In the **Deployments** folder, rename the **deployment\-path.yaml** to the name of the deployment option. For example, "my-deployment\-path.yaml”. - -2. Open the yaml and locate the following line: - - `vendor.resource.MyDeploymentPath:` - -3. Replace "MyDeploymentPath” with the new display name of the deployment path (spaces are supported). For example: "My Test Path”. - - `vendor.resource.My Test Path:` - -4. Install the shell on CloudShell and in the **Manage>Apps** page, create an App template. You should be able to see the new deployment option in the **Select Deployment Type** area: - - ![Resource information](/Images/Devguide-cloud-providers/Configuring-Deployment-Paths_624x380.png) - - -We can also change the icon of the deployment path by placing the new image file in the **Deployments** folder and replacing **shell-icon.png** in the yaml's `artifacts:` section with the new file name. - -For example, setting image file "my-icon.png”: - -```css -artifacts: - icon: - file: my-icon.png - type: tosca.artifacts.File -``` - -## Adding attributes - -Next, add the required attributes. - -:::note Notes -- You cannot modify an attribute's type and name, nor any attributes that are associated with the shell’s family as this will affect other shells that use this family. -- CloudShell allows upgrading shells with old/deprecated attributes. For details, see [Overriding Old/Deprecated Shell Attributes](../developing-shells/override-old-shell-attributes.md). -::: -Place the cursor at the end of the `derived_from:` line and press the **\[Enter\]** key. Type "properties:” and press **\[Enter\]** again. Press the **\[Tab\]** key and add the attribute. ***To make the attribute visible to the user in CloudShell, make sure to include the "tags: \[user\_input\]” line.*** For example, adding a string attribute called "My attribute”: - -```css -node_types: - - vendor.resource.My Test Path: - derived_from: cloudshell.nodes.CustomDeploymentOption - properties: - My attribute: - type: string - tags: [user_input] # supported types are: string, integer, float, boolean, cloudshell.datatypes.Password -``` - -The deployment path should look something like this: - -![Resource information](/Images/Devguide-cloud-providers/Configuring-Deployment-Paths_1_624x444.png) - -Same as with attributes in the **shell-definition.yaml**, you can also specify additional details, like default value, description and possible values (`constraints` property). For example: - -```css -My attribute: - type: string - default: value 1 - description: "This is my my attribute." - constraints: value 1, value 2, value 3 - tags: [user_input] -``` - -## Setting attributes as read only in the blueprint - -In some cases, you may want a specific deployment attribute to be unavailable for editing from the blueprint, possibly because it defines critical VM properties, like the image ID. If this is the case, you can set the attribute to only be editable by the admin in the App template. To do so, add the `editable_only_in_app_template` rule to the attribute. For example: - -```css -My attribute: - type: string - default: value 1 - description: "This is my attribute." - constraints: value 1, value 2, value 3 - tags: [user_input, editable_only_in_app_template] -``` - -Note that the `editable_only_in_app_template` rule only blocks admins from editing the attribute value in the blueprint but not in the sandbox, where the attribute is available for editing by design. Regular users cannot edit the attribute in blueprints and sandboxes. - -The attribute will be read only in the blueprint. \ No newline at end of file diff --git a/versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/controlling-app-deployment-orch.md b/versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/controlling-app-deployment-orch.md deleted file mode 100644 index 3221c7509a..0000000000 --- a/versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/controlling-app-deployment-orch.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -sidebar_position: 7 ---- - -# Controlling App Deployment Orchestration - -In this article, we’ll learn how to customize the App’s behavior during the sandbox’s out-of-the-box Setup process. This article does not apply to Teardown, which by design powers off and deletes the App VMs from the cloud provider. - -Customizing the App’s orchestration is done through the use of attributes, which are included with the App. - -- **Auto Power On** powers on the VM at setup. Note that this attributes will affect the live status icon, so setting "Auto Power On = False” will result in the App not being powered on in the sandbox, and the App will have an offline live status icon. - -- **Autoload** discovers the deployed App. This includes attribute values and the VM’s structure, if the VM represents a virtual device that has a resource structure like blades and ports. For example, vRouters and vSwitches. - -- **Wait for IP** determines if CloudShell will refresh the VM’s IP after it is powered on. The decision depends on the cloud provider’s deployment behavior. In other words, does the cloud provider refresh the IP after the VM is powered on (for example VMware vCenter), or is the IP immediately available once the VM is created (like on AWS EC2). \ No newline at end of file diff --git a/versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/create-cp-shell.md b/versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/create-cp-shell.md deleted file mode 100644 index aee2e08511..0000000000 --- a/versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/create-cp-shell.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Creating the Cloud Provider Shell - -Before you start, make sure to set up your machine for shell development and implementations, as explained in [Getting Started with Cloud Provider Development](./getting-started-with-cp-dev.md). - -## Creating the cloud provider shell - -The first step is to create the Cloud Provider shell. As with other shells, this is done using the shellfoundry command-line tool to create and install the shell on CloudShell. - -Since the Cloud Provider shell only works with CloudShell 9.0 and above, make sure to associate shellfoundry with a CloudShell 9.0 (or later) installation by running the `shellfoundry config` command in command-line. For example, associating shellfoundry to CloudShell Server 192.168.85.13: - -`shellfoundry config host 192.168.85.13` - -Navigate to the folder that will contain the Cloud Provider shell and create the shell. For example, creating a shell called CLPShell: - -`shellfoundry new clp-shell --template gen2/cloud-provider` - -The shell is created in the folder. - -Note that the shell project comprises the same files and folders as any other shell, with one exception, the Cloud Provider shell also includes a **Deployments** folder, which contains the deployment paths for the Cloud Provider’s App templates. More on this in [Configuring Deployment Paths](./configure-the-deployment-paths.md). For details about the shell project structure, see [The Shell Project Guide](../developing-shells/the-shell-project-guide.md). - -Let’s make sure the shell was imported into CloudShell. In command-line, navigate to the shell’s root folder and run: - -`shellfoundry install` - -In CloudShell Portal, open the **Manage>Shells** page to see the Cloud Provider shell. - -## Setting the shell’s metadata and image - -Now that we have created the Cloud Provider, we need to set its general details, including the Cloud Provider’s author, version and image. - -- **template\_name** is the Cloud Provider name that is displayed to the CloudShell administrator in CloudShell Portal’s Shells management page. - -- **template\_author** is the Cloud Provider developer’s name. By default, the template author is the author defined in the shellfoundry config command. - -- **template\_version** defines the version number of the Cloud Provider. When extending Cloud Providers, make sure you update the version number. It is also best practice to version any code/project you write according to semantic versioning, to avoid breaking changes. This also allows us to better support customers that will encounter issues with their Cloud Providers. - -- **template\_icon**: The Cloud Provider includes a default image. This image is displayed on the Cloud Provider’s resources in CloudShell Portal, and resides in the Cloud Provider shell’s root folder. To change the image, simply replace the image in the file. - - -Install the Cloud Provider shell again. This will replace the old version of the shell with the new one. \ No newline at end of file diff --git a/versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/extend-the-shell-data-model.md b/versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/extend-the-shell-data-model.md deleted file mode 100644 index 8c9a04dc90..0000000000 --- a/versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/extend-the-shell-data-model.md +++ /dev/null @@ -1,111 +0,0 @@ ---- -sidebar_position: 4 ---- - -# Extending the Shell's Data Model - -In this article, we will learn how to add attributes to our shell. For information about modifying or deleting attributes from the shell, scroll down to the bottom of this article. - -Attributes can be added to the cloud provider shell or to the deployment path on the App template. Attributes on the shell are for general authentication/authorization purposes and for setting general configurations for the cloud provider integration, while attributes on the deployment path are typically settings that apply to the App’s VM. For example, Region applies to the cloud provider shell and Image ID applies to the deployment path. We will cover deployment path attributes in the next article. - -CloudShell allows upgrading shells with old/deprecated attributes. For details, see [Overriding Old/Deprecated Shell Attributes](../developing-shells/override-old-shell-attributes.md). - -## Adding an attribute to the shell - -Adding attributes to the shell is done in the shell’s **shell-definition.yaml** file. - -Let’s start by adding the **VLAN Type** attribute from the standard. Attributes that are included on the shell’s standard, like this attribute, need to be added to the `capabilities` section, under `properties`: - -```css -node_types: - vendor.resource.ClpShell: - derived_from: cloudshell.nodes.CustomCloudProvider - capabilities: - concurrent_execution: - type: cloudshell.capabilities.SupportConcurrentCommands - auto_discovery_capability: - type: cloudshell.capabilities.AutoDiscovery - properties: - VLAN Type: - type: string # supported types are: string, integer, float, boolean, cloudshell.datatypes.Password -``` - -Let’s see how it looks on CloudShell. Install the shell: - -`shellfoundry install` - -Log in to CloudShell Portal, and open the required domain to enable the Apps based on this cloud provider resource to be usable in this domain. In the **Inventory** dashboard, create a resource from the shell. - -The attribute is displayed in the resource’s **Validation & Discovery** page: - -![Resource information](/Images/Devguide-cloud-providers/Extending-the-Shell-s-Data_624x427.png) - -Note that since the **VLAN Type** attribute is defined on the family, the attribute’s settings (possible values in this case) are inherited from the standard itself. The attribute’s name and type are required, but you can also set the attribute’s default value, description, and rules (`tags` property). For example: - -```css -properties: - VLAN Type: - type: string - default: VLAN - description: "Select the VLAN type to use - VLAN or VXLAN" - tags: [setting, configuration] # supported tags are: configuration, setting, search_filter, abstract_filter, include_in_insight, readonly_to_users, display_in_diagram, connection_attribute, read_only -``` - -However, if the attribute is not included in the shell’s family, you will need to set it both in the `properties:` section, and in the `capabilities:` section’s `properties`. We’ll add an attribute called "my discovery attribute”. - -First we’ll add it to the `capabilities` section: - -```css -node_types: - vendor.resource.ClpShell: - derived_from: cloudshell.nodes.CustomCloudProvider - capabilities: - concurrent_execution: - type: cloudshell.capabilities.SupportConcurrentCommands - auto_discovery_capability: - type: cloudshell.capabilities.AutoDiscovery - properties: - my discovery attribute: - type: string -``` - -And then we’ll add it to the `properties:` section as well (note that this section is missing, so you’ll need to add it directly under the `derived_from:` line: - -```css -node_types: - vendor.resource.MyCustomClp1: - derived_from: cloudshell.nodes.CustomCloudProvider - properties: - my discovery attribute: - type: string -``` - -Install the shell and return to CloudShell Portal, in the **Inventory** dashboard, click the resource’s more actions button and select **Discover**: - -![Resource information](/Images/Devguide-cloud-providers/Extending-the-Shell-s-Data_1_624x274.png) - -The resource’s **Validation & Discovery** page is displayed, showing the new discovery attribute we created. - -![Resource information](/Images/Devguide-cloud-providers/Extending-the-Shell-s-Data_2_624x427.png) - -You can also set additional settings. Since this attribute is not included in the family, you can also set possible values (`constraints` property). - -For example: - -```css -properties: - my discovery attribute: - type: string - default: value 3 - description: "This is my discovery attribute." - constraints: [value 1, value 2, value 3] - tags: [setting, configuration] -``` - -## Modifying an attribute on a shell - -You cannot modify an attribute's **type** and **name**, nor any attributes that are associated with the shell’s family as this will affect other shells that use this family. To find the attributes defined in the shell’s standard, see the [documentation page](https://github.com/QualiSystems/cloudshell-standards/tree/master/Documentation) of your shell’s standard. - -## Deleting an attribute from a shell - -Deleting any of the shell’s default attributes (those that come with the standard) is not supported. It is also not possible to customize a 2nd Gen shell’s data model (families and models) and its structure, which is as defined in the Cloud Provider Shell Standard. \ No newline at end of file diff --git a/versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/getting-started-with-cp-dev.md b/versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/getting-started-with-cp-dev.md deleted file mode 100644 index 0fc8a2a777..0000000000 --- a/versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/getting-started-with-cp-dev.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Getting Started with Cloud Provider Development - -In this chapter, we’ll learn how to create a Cloud Provider shell. The goal is to demonstrate the end-to-end cycle, from generating a new shell project to implementing the cloud provider interface and automation processes, as well as testing the shell in CloudShell. - -## What is a Cloud Provider shell? - -The Cloud Provider shell standard is a project used to define a new cloud provider in CloudShell. The Cloud Provider shell is used to extend the system, allowing deployment of applications to an additional L2 or L3 cloud. The Cloud Provider Standard may also be used to implement deployment of applications as part of deployment containers. - -A Cloud Provider shell may include more than one deployment type, allowing a variety of options to base the virtual instance on (for example, selecting the image from the marketplace or loading a custom one). - -## How is a Cloud Provider shell created? - -The basic creation and implementation process is as follows: - -1. Create a new Cloud Provider shell. - -2. Set up the Cloud Provider interface. In other words, implement the cloud provider driver that will be called by the server when interaction with the cloud provider is needed. - -3. If the shell requires the use of Python dependencies, which aren’t available in the public PyPi repository, add them to the local PyPi Server repository. See [PyPi Server - Managing Python Shell and Script Dependencies](../../admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/pypi-server-managing-python-shell-and-script-dependencies.md). - -4. Debug the shell. - -5. Install the shell on CloudShell. - -6. In CloudShell, create a resource based on the new shell and make sure it works. - - -Before developing your shell, please watch the following video to determine whether you need to create a new shell or customize an existing one: - - - -## Supported versions - CloudShell v9.0 and up - -As of version 9.0, CloudShell supports the ability to define custom cloud providers (using the `cloud_provider` shell template), as well as the out-of-the-box cloud providers VMware vCenter, AWS EC2 and Microsoft Azure. Note that the out-of-the-box cloud provider shells cannot be modified. - -## Prerequisites - -- [Get CloudShell](http://info.quali.com/cloudshell-developer-edition-download): Download the latest CloudShell SDK VM and deploy it. - -- [Python](https://www.python.org/downloads/): Make sure the appropriate Python version - 2.7.x and/or 3.x - (latest recommended) is installed on your machine. - Starting with CloudShell 9.3, CloudShell comes with out-of-the-box support for Python 3 for shells. - - Python 3 automation requires Microsoft Visual C++ Redistributable 2015 x86 and x64 to be installed on the Execution Server(s). - :::tip - CloudShell components such as Quali Server and the execution servers come with their own Python installation folders. Making changes to these folders may cause unexpected behavior in CloudShell. Therefore, if you plan on doing dev work on a machine that has CloudShell components installed, we recommend doing one of the following: - - - Configuring dedicated virtual environments for your projects out of these base installations. To do this in PyCharm, see [https://www.jetbrains.com/help/pycharm/creating-virtual-environment.html](https://www.jetbrains.com/help/pycharm/creating-virtual-environment.html). To do this via CLI, see [https://docs.python-guide.org/dev/virtualenvs/#lower-level-virtualenv](https://docs.python-guide.org/dev/virtualenvs/#lower-level-virtualenv). - - [Downloading separate installers](https://www.python.org/downloads/) for Python 2.7.18 and 3.9.9 and using these as global installations (by setting the installation folders in the machine’s PATH system variable) for any dev work being done. - ::: - -- **IDE/Text Editor**: Your preferred IDE editor. We recommend using PyCharm (which offers a free community edition) because of the tooling we’ve already created for that IDE, including a CloudShell developer plugin. - -- **Shellfoundry: Shellfoundry** is our CLI tool that allows you to quickly and easily generate and distribute Shells. Make sure to install it on your machine. See [Installing or Updating Shellfoundry](./../developing-shells/getting-started.md) for details. \ No newline at end of file diff --git a/versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/l2-network-connectivity.md b/versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/l2-network-connectivity.md deleted file mode 100644 index a3ac22eb0f..0000000000 --- a/versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/l2-network-connectivity.md +++ /dev/null @@ -1,123 +0,0 @@ ---- -sidebar_position: 12 ---- - -# L2 Network Connectivity - -Now that we’ve set up the cloud provider shell’s automation, let’s learn how to implement network connectivity. CloudShell supports two networking modes, L2 for VLAN-level management and L3 for subnet-level management. This article discusses layer 2 connectivity. If you’re developing an L3 cloud provider, skip to the next article. - -## ApplyConnectivityChanges method - -To add support for L2 VLAN connectivity in a custom cloud provider, we need to implement the *ApplyConnectivityChanges* method. This method is used to connect the VMs in the sandbox to the network elements. - -The VLAN IDs are allocated by Quali Server, according to the settings of the VLAN service. These IDs are sent to the command as parameters. The implementation of this method needs to be able to support Access mode, Trunk mode, VLAN and VXLAN ranges, if supported by your cloud provider. Additionally, the implementation needs to support a range of VLAN IDs. - -The *ApplyConnectivityChanges* method can receive a list of actions of type **setVlan** or **removeVlan**. The method receives an action for each connection that needs to be created or disconnected. In case of P2P connections, the method receives two requests, one for each App. - -Like other methods, this method needs to return an action result in the response per connection. If the method’s execution fails, CloudShell needs to indicate the failure in the returned action or raise an exception. - -### Called when - -It is run automatically when reserving the sandbox, as part of CloudShell’s default sandbox setup script, and is also called in an active sandbox when a deployed App is connected or disconnected from a VLAN service or from another deployed App in a P2P connection. - -### Error handling - -If *ApplyConnectivityChanges* fails, CloudShell needs to indicate the failure in the returned action or raise an exception. - -### Signature - -```python -def ApplyConnectivityChanges(self, context, request): -``` - -### Inputs - -**context**: *context* is a *ResourceCommandContext* object that contains: - -- connectivity - CloudShell server connectivity data for authentication with CloudShell Automation API - -- resource - resource configuration settings entered when creating the Cloud Provider resource in the **Inventory** dashboard - -- reservation - current reservation details - -- connectors – details of any visual connectors between the Cloud Provider App and other endpoints in the sandbox. - - -[This Github Sample](https://github.com/QualiSystems/cloudshell-shell-core/blob/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) is by [QualiSystems](https://github.com/QualiSystems) - -cloudshell/shell/core/driver\_context.py [view](https://github.com/QualiSystems/cloudshell-shell-core/blob/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) [raw](https://raw.githubusercontent.com/QualiSystems/cloudshell-shell-core/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) - -```python -class ResourceCommandContext: - def __init__(self, connectivity, resource, reservation, connectors): - self.connectivity = connectivity # Connectivity details that can help connect to the APIs - """:type : ConnectivityContext""" - self.resource = resource # The details of the resource using the driver - """:type : ResourceContextDetails""" - self.reservation = reservation # The details of the reservation - """:type : ReservationContextDetails""" - self.connectors = connectors # The list of visual connectors and routes that are connected to the resource (the resource will be considered as the source end point) - """:type : list[Connector]""" -``` - -#### Handle Request - -**setVlan action request:** - -- The requested VLAN mode is indicated in a property called mode under *connectionParams*. The VLAN id array can receive many VLAN id permutations. Please refer to the online help for all support permutations. - -- If the cloud provider supports VXLAN or both VLAN and VXLAN, it is required to expose a discoverable attribute on the cloud provider’s **VLAN Type** call. The default value is **VLAN** and cloudshell permits VLAN ids in the 2-4096 range. If the **VLAN Type** attribute is set to **VXLAN**, CloudShell will permit VLAN ids to be allocated in the 2-16,000,000 range. - -- *customAttributes* is a list of special attributes for a specific action. The *setVlan* action can get a custom attribute called **vNIC Name**. When this attribute exists, we can use it in custom logic that will allocate a specific VNIC to the App’s VM. For example, the **vNIC Name** value is 1 and the cloud provider shell needs to create the VLAN connection on eth1. [Code example](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/ac94224fd2368aaa9b589bcdfd30e449a53c90ce/src/heavenly_cloud_service_wrapper.py#L299). - - -**removeVlan action request:** - -- The *actionTarget* property is an object that indicates on which compute resource we need to apply the *removeVlan* action request. - -- The target resource might have more than one network interface so to determine on which interface to perform the *removeVlan* action, you need to find the *interface* attribute value. The *removeVlan* request contains an array of all connector attributes. The unique identifier of the network interface to disconnect is the value of the Interface attribute. - - -#### Method result - -**setVlan action result:** - -If the action is successful, you need to set *updatedInterface* property. The value of this property is set on an attribute on the relevant connector. Each connector in CloudShell has a source and a target component. Cloudshell automatically determines if the action result is for source or target of the connector and sets this value on the appropriate attribute - **Source Interface** or **Target Interface**. - -[Code example](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/e5a7fffbda4e661b58dc30f9e6355981dfc0bb86/src/heavenly_cloud_service_wrapper.py#L300-L302) - -**removeVlan action result:** - -You only need to indicate if the action is successful or not. - -[Code example](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/e5a7fffbda4e661b58dc30f9e6355981dfc0bb86/src/heavenly_cloud_service_wrapper.py#L340-L344) - -## ApplyConnectivityChanges method implementation - -The *ApplyConnectivityChanges* method should perform the following steps: - -1. [Retrieve cloud provider resource connection credentials](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/625d52ae7740cf3d77e529f6b0b0f8d05df472b2/src/driver.py#L229). - -2. [Retrieve actions from request](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/625d52ae7740cf3d77e529f6b0b0f8d05df472b2/src/driver.py#L230). - -3. [Handle Remove Vlan actions](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/625d52ae7740cf3d77e529f6b0b0f8d05df472b2/src/driver.py#L232-L234). - - 1. [Retrieve requested interface to disconnect](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/7bd55725d8e8dbd741270f5d082f05062c1d1fab/src/heavenly_cloud_service_wrapper.py#L371). - - 2. [Retrieve requested VM id to disconnect](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/7bd55725d8e8dbd741270f5d082f05062c1d1fab/src/heavenly_cloud_service_wrapper.py#L372). - - 3. [Disconnect](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/7bd55725d8e8dbd741270f5d082f05062c1d1fab/src/heavenly_cloud_service_wrapper.py#L373). - - 4. [Return the result](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/7bd55725d8e8dbd741270f5d082f05062c1d1fab/src/heavenly_cloud_service_wrapper.py#L375). - - -4. [Handle setVlan actions](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/7bd55725d8e8dbd741270f5d082f05062c1d1fab/src/driver.py#L236-L237). - - 1. [Retrieve VLAN parameters (VNIC name, VLAN mode, VLAN id)](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/7bd55725d8e8dbd741270f5d082f05062c1d1fab/src/heavenly_cloud_service_wrapper.py#L320-L324). - - 2. [Connect](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/e5a7fffbda4e661b58dc30f9e6355981dfc0bb86/src/heavenly_cloud_service_wrapper.py#L300). - - 3. [Add a new interface id to the result](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/7bd55725d8e8dbd741270f5d082f05062c1d1fab/src/heavenly_cloud_service_wrapper.py#L325). - - -5. [Return the appropriate result](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/625d52ae7740cf3d77e529f6b0b0f8d05df472b2/src/driver.py#L239). \ No newline at end of file diff --git a/versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/l3-network-connectivity.md b/versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/l3-network-connectivity.md deleted file mode 100644 index c82046d2b2..0000000000 --- a/versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/l3-network-connectivity.md +++ /dev/null @@ -1,229 +0,0 @@ ---- -sidebar_position: 13 ---- - -# L3 Network Connectivity - -In this article, we’ll learn how to implement L3 network connectivity. Cloudshell recognizes a cloud provider shell as an L3 networking cloud provider if the method *PrepareSandboxInfra* exists in the shell driver. If the method doesn’t exist, CloudShell considers the shell as an L2 networking shell. - -To add support for L3 subnet connectivity in a custom cloud provider, we’ll need to implement 3 methods: - -- *PrepareSandboxInfra* is used to prepare the infrastructure required for a sandbox operating with L3 connectivity. - -- *Deploy* should be extended to support *connectToSubnet* action requests. - -- *CleanupSandboxInfra* cleans any sandbox-level entities created in the cloud provider, usually entities created by the *PrepareSandboxInfra* command. This is the last command to be called in the orchestration flow. - - -## PrepareSandboxInfra method - -The *PrepareSandboxInfra* method is the 1st method to be called in the sandbox setup. It creates the required infrastructure for the sandbox. The network address space of the sandbox is allocated automatically by CloudShell and represented using CIDR notation and provided in the actions request. - -It must support these three action types: - -- **prepareCloudInfra** - - When handling this action, you need to create/allocate the requested CIDR to the sandbox in your cloud provider. This is also the place to create/allocate cloud resource that will be used by the entire sandbox. For example, an AWS shell might create an S3 bucket that will be used by the entire sandbox, and a shared Security Group, which will be attached to all AWS VM instances, to allow inbound traffic from specific QualiX and Execution Server VM instances for secure connectivity to the VMs and configuration management. - - Generally this is the 1st action you should handle before proceeding to other actions. There is always one instance of this type of action. - - -- **prepareSubnet** - - *prepareSubnet* gets one or more actions from this type. When handling this action, you need to create/allocate a subnet for each action according to the CIDR and **Subnet** service attributes in the blueprint. A subnet can be declared as public or private by the blueprint designer. A subnet is considered private if it is not accessible from outside the sandbox, and is considered public if it is possible to access the subnet from outside the sandbox. As a general best practice, it is recommended to allow outbound traffic from private subnets to elements outside of the sandbox. - - CloudShell sends a *prepareSubnet* action for each **Subnet** service in the blueprint. If there are no **Subnet** services in the blueprint, CloudShell will create a single subnet for the sandbox, by sending a *prepareSubnet* action with the default values. In a "single subnet” scenario, it is assumed that the sandbox components are all located in the same default subnet. Note that the driver still needs to create/allocate a subnet in "single subnet” mode. - - The result for this action must include a *subnetId* property. This must be an id that can be used to uniquely identify the subnet in the cloud provider. The "subnet id” will be passed as part of *connectToSubnet* actions in the *Deploy* method and should be used to identify the subnets that the App wants to connect to. - -- **createKey** - - There is always one instance of this type of action. This action type has no metadata. To handle this action, you return an ssh key that will be used by CloudShell to connect to Linux VMs in the sandbox. If you don’t want to use ssh keys, you can simply ignore this action without returning any *createKeys* action results. - - Cloudshell stores the ssh key securely and if the deployed App has an empty password attribute or no password attribute, it will try to authenticate with the VM using the value in the **Username** attribute and the ssh key when using QualiX to ssh to a deployed App. - - The *Deploy* method is responsible to create the VM with the sandbox ssh key that was generated in the *prepareSandboxInfra* method. Cloudshell does not pass the ssh key to the *Deploy* method and it’s the responsibility of the shell developer to store this ssh key in a secure place that is accessible during the *Deploy* method. An example for this implementation for an aws shell is to use an S3 bucket that is used only by the sandbox. - -:::note -*PrepareSandboxInfra* can be called multiple times in a sandbox. Setup can be called multiple times in the sandbox, and every time setup is called, the *PrepareSandboxInfra* method will be called again. So your implementation needs to support this use case and take under consideration that the cloud resource might already exist. It’s recommended to follow the "get or create” pattern when implementing this method. -::: -### Called when - -This command is called for L3 Networking type implementations in the beginning of the orchestration flow (preparation stage), even before Deploy is called. - -### Error handling - -If failure occurs, return a "success false” action result. - -### Signature - -```python -def PrepareSandboxInfra(self, context, request, cancellation_context) -``` - -### Inputs - -**context**: *context* is a *ResourceCommandContext* object that contains: - -- connectivity - CloudShell server connectivity data for authentication with CloudShell Automation API - -- resource - resource configuration settings entered when creating the Cloud Provider resource in the **Inventory** dashboard - -- reservation - current reservation details - -- connectors – details of any visual connectors between the Cloud Provider App and other endpoints in the sandbox. - - -[This Github Sample](https://github.com/QualiSystems/cloudshell-shell-core/blob/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) is by [QualiSystems](https://github.com/QualiSystems) - -cloudshell/shell/core/driver\_context.py [view](https://github.com/QualiSystems/cloudshell-shell-core/blob/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) [raw](https://raw.githubusercontent.com/QualiSystems/cloudshell-shell-core/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) - -```python -class ResourceCommandContext: - def __init__(self, connectivity, resource, reservation, connectors): - self.connectivity = connectivity # Connectivity details that can help connect to the APIs - """:type : ConnectivityContext""" - self.resource = resource # The details of the resource using the driver - """:type : ResourceContextDetails""" - self.reservation = reservation # The details of the reservation - """:type : ReservationContextDetails""" - self.connectors = connectors # The list of visual connectors and routes that are connected to the resource (the resource will be considered as the source end point) - """:type : list[Connector]""" -``` - -Here’s a code sample that extracts the cloud provider data from the context: - -`cloud_provider_resource = HeavenlyCloudsShell.create_from_context(context)` - -**Request** - -JSON string that contains the requested actions. - -**Cancelation context** - -[This Github Sample](https://github.com/QualiSystems/cloudshell-shell-core/blob/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) is by [QualiSystems](https://github.com/QualiSystems) - -cloudshell/shell/core/driver\_context.py [view](https://github.com/QualiSystems/cloudshell-shell-core/blob/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) [raw](https://raw.githubusercontent.com/QualiSystems/cloudshell-shell-core/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) - -```python -def __init__(self): - self.is_cancelled = False - """:type : bool""" -``` - -### PrepareSandboxInfra method implementation - -1. [Retrieve the cloud provider resource connection credentials](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/a9a14e87570fdc52d9994950e161b104c62401fb/src/driver.py#L91). - -2. [Retrieve requested actions (1 PrepareCloudInfra, 1 CreateKeys, >=1 PrepareSubnet)](https://github.com/QualiSystems/Custom-L3-Cloud-Provider-Shell-Example/blob/6f62a52ca2a66b8f37bf4d2364c92ec8dc89c383/src/driver.py#L248-L258). - - 1. [Handle PrepareCloudInfra](https://github.com/QualiSystems/Custom-L3-Cloud-Provider-Shell-Example/blob/6f62a52ca2a66b8f37bf4d2364c92ec8dc89c383/src/heavenly_cloud_service_wrapper.py#L429-L443). - - 2. [Optionally, handle CreateKeys](https://github.com/QualiSystems/Custom-L3-Cloud-Provider-Shell-Example/blob/6f62a52ca2a66b8f37bf4d2364c92ec8dc89c383/src/heavenly_cloud_service_wrapper.py#L447-L456). - - 3. [Handle the PrepareSubnet action(s)](https://github.com/QualiSystems/Custom-L3-Cloud-Provider-Shell-Example/blob/6f62a52ca2a66b8f37bf4d2364c92ec8dc89c383/src/heavenly_cloud_service_wrapper.py#L460-L471). - - 4. [Return the action results](https://github.com/QualiSystems/Custom-L3-Cloud-Provider-Shell-Example/blob/6f62a52ca2a66b8f37bf4d2364c92ec8dc89c383/src/heavenly_cloud_service_wrapper.py#L475). - - -3. [Return the driver’s response](https://github.com/QualiSystems/Custom-L3-Cloud-Provider-Shell-Example/blob/6f62a52ca2a66b8f37bf4d2364c92ec8dc89c383/src/driver.py#L260-L269). - - -## Deploy method with L3 connectivity - -When working with L3 connectivity, the subnets and shared sandbox resources are created in the *PrepareSandboxInfra* method. The *Deploy* method is executed only after *PrepareSandboxInfra* completes successfully. *Deploy* can receive 0 or more *connectToSubnet* actions in addition to the single *deployApp* action. The *connectToSubnet* actions tell the VM that we are creating the subnets that the VM should be connected to. The **subnetId** property in the *connectToSubnet* action should be used to uniquely identify the subnet in the cloud provider. - -The *connectToSubnet* action contains a special property called **vnicName**. When this property contains a value, it means that the blueprint designer specified a request from the cloud provider shell to create a connection on a specific network interface. For example, if the **vnicName** value is 1, we need to create the network interface for the relevant subnet from the action on eth1. - -**Note:** In case the shell supports ssh key authentications for linux vms it’s the responsibility of the deploy method implementation to get the ssh key created during prepareSandboxInfra. Cloudshell will not send the ssh key to the deploy method in the request. - -### L3 Deploy method implementation - -In L3, the *Deploy* method should perform the following steps: - -1. [Retrieve the cloud provider resource connection credentials](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/a9a14e87570fdc52d9994950e161b104c62401fb/src/driver.py#L91). - -2. [Retrieve the Deploy action](https://github.com/QualiSystems/Custom-L3-Cloud-Provider-Shell-Example/blob/f26b3b5d92da04ecfac1238aa8334ba86a89a301/src/driver.py#L92-L95). - -3. [Retrieve CononectToSubnetActions](https://github.com/QualiSystems/Custom-L3-Cloud-Provider-Shell-Example/blob/f26b3b5d92da04ecfac1238aa8334ba86a89a301/src/driver.py#L97-L98). - - 1. [Call the Deploy logic of the selected deployment type](https://github.com/QualiSystems/Custom-L3-Cloud-Provider-Shell-Example/blob/f26b3b5d92da04ecfac1238aa8334ba86a89a301/src/driver.py#L100-L117). - - 1. [(Steps 4-a to -4-e are performed by the Deploy logic) Generate a unique App name](https://github.com/QualiSystems/Custom-L3-Cloud-Provider-Shell-Example/blob/6f62a52ca2a66b8f37bf4d2364c92ec8dc89c383/src/heavenly_cloud_service_wrapper.py#L118). - - 2. [Create the network configuration plan to use when calling the cloud provider SDK VM instance deploy](https://github.com/QualiSystems/Custom-L3-Cloud-Provider-Shell-Example/blob/f26b3b5d92da04ecfac1238aa8334ba86a89a301/src/sdk/heavenly_cloud_service.py#L105-L123). - - 3. [Create the VM instance using the deployment path attributes and network plan](https://github.com/QualiSystems/Custom-L3-Cloud-Provider-Shell-Example/blob/47e55422d3ef155fc6d126ee75be5d85be909496/src/heavenly_cloud_service_wrapper.py#L136-L142). - - 4. If Deploy succeeds, do the following: - - 1. [Collect the VM’s details (operating system, specifications, networking information)](https://github.com/QualiSystems/Custom-L3-Cloud-Provider-Shell-Example/blob/47e55422d3ef155fc6d126ee75be5d85be909496/src/heavenly_cloud_service_wrapper.py#L146-L147). - - 2. [Create ConnectToSubnet results](https://github.com/QualiSystems/Custom-L3-Cloud-Provider-Shell-Example/blob/47e55422d3ef155fc6d126ee75be5d85be909496/src/heavenly_cloud_service_wrapper.py#L165-L169). - - 5. [Return results](https://github.com/QualiSystems/Custom-L3-Cloud-Provider-Shell-Example/blob/47e55422d3ef155fc6d126ee75be5d85be909496/src/heavenly_cloud_service_wrapper.py#L173). - -5. [Return the driver’s response](https://github.com/QualiSystems/Custom-L3-Cloud-Provider-Shell-Example/blob/47e55422d3ef155fc6d126ee75be5d85be909496/src/driver.py#L122). - - -## CleanupSandboxInfra - -This method is responsible for cleaning any sandbox-level entities created in the cloud provider, usually entities created in the *PrepareSandboxInfra* command. - -### Called When - -This method is the last method to be called during the sandbox’s teardown (before the sandbox is completed). - -### Error handling - -If a failure occurs, return a "success false” action result. - -### Signature - -```python -def CleanupSandboxInfra(self, context, request): -``` - -### Inputs - -**context**: *context* is a *ResourceCommandContext* object that contains: - -- connectivity - CloudShell server connectivity data for authentication with CloudShell Automation API - -- resource - resource configuration settings entered when creating the Cloud Provider resource in the **Inventory** dashboard - -- reservation - current reservation details - -- connectors – details of any visual connectors between the Cloud Provider App and other endpoints in the sandbox. - - -[This Github Sample](https://github.com/QualiSystems/cloudshell-shell-core/blob/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) is by [QualiSystems](https://github.com/QualiSystems) - -cloudshell/shell/core/driver\_context.py [view](https://github.com/QualiSystems/cloudshell-shell-core/blob/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) [raw](https://raw.githubusercontent.com/QualiSystems/cloudshell-shell-core/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) - -```python -class ResourceCommandContext: - def __init__(self, connectivity, resource, reservation, connectors): - self.connectivity = connectivity # Connectivity details that can help connect to the APIs - """:type : ConnectivityContext""" - self.resource = resource # The details of the resource using the driver - """:type : ResourceContextDetails""" - self.reservation = reservation # The details of the reservation - """:type : ReservationContextDetails""" - self.connectors = connectors # The list of visual connectors and routes that are connected to the resource (the resource will be considered as the source end point) - """:type : list[Connector]""" -``` - -**Request** - -JSON string contains single *CleanupSandboxInfra* action. - -### CleanupSandboxInfra method implementation - -1. [Retrieve the cloud provider resource connection credentials](https://github.com/QualiSystems/Custom-L3-Cloud-Provider-Shell-Example/blob/4666a14a0634e82a01692a60a3da1314cd4d863c/src/driver.py#L284). - -2. [Retrieve the CleanupSandboxInfra action](https://github.com/QualiSystems/Custom-L3-Cloud-Provider-Shell-Example/blob/4666a14a0634e82a01692a60a3da1314cd4d863c/src/driver.py#L286-L290). - - \* [Clean the sandbox-created infrastructure resources and return a success result](https://github.com/QualiSystems/Custom-L3-Cloud-Provider-Shell-Example/blob/4666a14a0634e82a01692a60a3da1314cd4d863c/src/heavenly_cloud_service_wrapper.py#L477-L479). - -3. [Return result](https://github.com/QualiSystems/Custom-L3-Cloud-Provider-Shell-Example/blob/4666a14a0634e82a01692a60a3da1314cd4d863c/src/driver.py#L296). \ No newline at end of file diff --git a/versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/power-off-and-delete-vm.md b/versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/power-off-and-delete-vm.md deleted file mode 100644 index 2a10eea6ae..0000000000 --- a/versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/power-off-and-delete-vm.md +++ /dev/null @@ -1,173 +0,0 @@ ---- -sidebar_position: 11 ---- - -# Power off and Delete VM - -In this article, we’ll learn how to implement the PowerOff and DeleteInstance commands, which shut down and delete the VM from the cloud provider, respectively. - -## PowerOff method - -The *PowerOff* method shuts down (or powers off) the VM instance. It is run automatically as part of the sandbox’s teardown, and can also be run manually by the sandbox end-user from the deployed App’s commands pane. When *PowerOff* completes, the green ‘online’ live status icon is replaced with a grey one on the App resource, indicating it is offline. - -**Note:** CloudShell sets the resource state to ‘offline’ if *PowerOff* completed successfully. - -### Signature - -```python -def PowerOff(self, context, ports) -``` - -### Inputs - -**context**: *context* is a [ResourceRemoteCommandContext](https://github.com/QualiSystems/cloudshell-shell-core/blob/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py#L171-L180) object that contains: - -- connectivity - CloudShell server connectivity data for authentication with CloudShell Automation API - -- resource - resource configuration settings entered by the user when creating the Cloud Provider resource in the **Inventory** dashboard - -- remote\_reservation – reservation details - -- remote\_endpoints - will contain a single [ResourceContextDetails](https://github.com/QualiSystems/cloudshell-shell-core/blob/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py#L38-L64) object which provides data for the operation. - - -[This Github Sample](https://github.com/QualiSystems/cloudshell-shell-core/blob/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) is by [QualiSystems](https://github.com/QualiSystems) - -cloudshell/shell/core/driver\_context.py [view](https://github.com/QualiSystems/cloudshell-shell-core/blob/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) [raw](https://raw.githubusercontent.com/QualiSystems/cloudshell-shell-core/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) - -```python -def __init__(self, connectivity, resource, remote_reservation, remote_endpoints): - self.connectivity = connectivity # Connectivity details that can help connect to the APIs - """:type : ConnectivityContext""" - self.resource = resource # The details of the resource using the driver - """:type : ResourceContextDetails""" - self.remote_reservation = remote_reservation # The details of the remote reservation - """:type : ReservationContextDetails""" - self.remote_endpoints = remote_endpoints - """:type : list[ResourceContextDetails]""" -``` - -#### Ports - -Legacy argument. Irrelevant for custom cloud providers. - -### Error handling - -If an error occurs during the *PowerOff* operation, the command should raise an exception. - -### PowerOff method implementation - -The *PowerOff* method should perform the following steps: - -1. Retrieve the cloud provider resource’s connection credentials - -2. Convert context deployed\_app\_json string to object - -3. Power off the deployed App resource - - -### PowerOff implementation example - -[This Github Sample](https://github.com/QualiSystems/cloudshell-shell-core/blob/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) is by [QualiSystems](https://github.com/QualiSystems) - -cloudshell/shell/core/driver\_context.py [view](https://github.com/QualiSystems/cloudshell-shell-core/blob/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) [raw](https://raw.githubusercontent.com/QualiSystems/cloudshell-shell-core/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) - -```python -def PowerOff(self, context, ports): - """ - Will power off the compute resource - :param ResourceRemoteCommandContext context: - :param ports: - """ - with LoggingSessionContext(context) as logger, ErrorHandlingContext(logger): - self._log(logger, 'power_off_context', context) - self._log(logger, 'power_off_ports', ports) - cloud_provider_resource = L2HeavenlyCloudShell.create_from_context(context) - resource_ep = context.remote_endpoints[0] - deployed_app_dict = json.loads(resource_ep.app_context.deployed_app_json) - vm_uid = deployed_app_dict['vmdetails']['uid'] - HeavenlyCloudServiceWrapper.power_off(cloud_provider_resource, vm_uid) -``` - -### Return value - -None - -## DeleteInstance method - -The *DeleteInstance* method powers off the VM, deletes the VM from the cloud provider and removes the App from the sandbox. It is run when removing the deployed App from the sandbox or during the sandbox’s teardown. - -### Signature - -def DeleteInstance(self, context, ports) - -### Inputs - -**context**: *context* is a [ResourceRemoteCommandContext](https://github.com/QualiSystems/cloudshell-shell-core/blob/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py#L171-L180) object that contains: - -- connectivity - CloudShell server connectivity data for authentication with CloudShell Automation API - -- resource - resource configuration settings entered by the user when creating the Cloud Provider resource in the **Inventory** dashboard - -- remote\_reservation – reservation details - -- remote\_endpoints- will contain a single [ResourceContextDetails](https://github.com/QualiSystems/cloudshell-shell-core/blob/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py#L171-L180) object which provides data for the operation. - - -[This Github Sample](https://github.com/QualiSystems/cloudshell-shell-core/blob/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) is by [QualiSystems](https://github.com/QualiSystems) - -cloudshell/shell/core/driver\_context.py [view](https://github.com/QualiSystems/cloudshell-shell-core/blob/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) [raw](https://raw.githubusercontent.com/QualiSystems/cloudshell-shell-core/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) - -```python -def __init__(self, connectivity, resource, remote_reservation, remote_endpoints): - self.connectivity = connectivity # Connectivity details that can help connect to the APIs - """:type : ConnectivityContext""" - self.resource = resource # The details of the resource using the driver - """:type : ResourceContextDetails""" - self.remote_reservation = remote_reservation # The details of the remote reservation - """:type : ReservationContextDetails""" - self.remote_endpoints = remote_endpoints - """:type : list[ResourceContextDetails]""" -``` - -#### Ports - -Legacy argument. Obsolete for custom cloud providers. - -### DeleteInstance method implementation - -The *DeleteInstance* method should perform the following steps: - -1. Retrieve the cloud provider resource’s connection credentials. - -2. Convert the *deployed\_app\_json* context string to object. - -3. Delete the VM instance from the cloud provider. - - -### DeleteInstance implementation example - -[This Github Sample](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/ea88bab874c42d69508ba5b2542e867c5b375d5f/src/driver.py) is by [QualiSystems](https://github.com/QualiSystems) - -src/driver.py [view](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/ea88bab874c42d69508ba5b2542e867c5b375d5f/src/driver.py) [raw](https://raw.githubusercontent.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/ea88bab874c42d69508ba5b2542e867c5b375d5f/src/driver.py) - -```python -def DeleteInstance(self, context, ports): - """ - Will delete the compute resource - :param ResourceRemoteCommandContext context: - :param ports: - """ - with LoggingSessionContext(context) as logger, ErrorHandlingContext(logger): - self._log(logger, 'DeleteInstance_context', context) - self._log(logger, 'DeleteInstance_ports', ports) - cloud_provider_resource = L2HeavenlyCloudShell.create_from_context(context) - resource_ep = context.remote_endpoints[0] - deployed_app_dict = json.loads(resource_ep.app_context.deployed_app_json) - vm_uid = deployed_app_dict['vmdetails']['uid'] - HeavenlyCloudServiceWrapper.delete_instance(cloud_provider_resource, vm_uid) -``` - -### Return value - -None \ No newline at end of file diff --git a/versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/remove-the-address-field.md b/versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/remove-the-address-field.md deleted file mode 100644 index d54f1a31c6..0000000000 --- a/versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/remove-the-address-field.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -sidebar_position: 5 ---- - -# Removing the Address Field - -For some cloud providers, like AWS EC2 and Azure, the **Address** field is irrelevant. If this is the case, you can easily remove the field from the shell by setting the **hide_address** property in the shell-definition.yaml. In the `capabilities` section, under `properties`, uncomment the property and set it to ***true***: - -```yaml -node_types: - vendor.resource.ClpShell: - derived_from: cloudshell.nodes.CustomCloudProvider - properties: - my discovery attribute: - type: string - capabilities: - concurrent_execution: - type: cloudshell.capabilities.SupportConcurrentCommands - auto_discovery_capability: - type: cloudshell.capabilities.AutoDiscovery - properties: - my discovery attribute: - type: string - VLAN Type: - type: string - enable_auto_discovery: - type: boolean - default: true - auto_discovery_description: - type: string - default: Describe the auto discovery - inventory_description: - type: string - default: Describe the resource shell template -# hide_address: -# type: string -# default: false -``` \ No newline at end of file diff --git a/versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/resource-discovery.md b/versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/resource-discovery.md deleted file mode 100644 index 5c10d5c790..0000000000 --- a/versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/resource-discovery.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -sidebar_position: 9 ---- - -# Resource Discovery - -The *get\_inventory* command "discovers” the resource in CloudShell, or in other words, validates the values of the cloud provider attributes that were entered by the user. It is executed when creating the resource in CloudShell, and can be manually run later on, for example, if you change some of the resource’s attribute values. - -For example, in a vCenter cloud provider, *get\_inventory* would check the value provided in the **Default DataCenter** attribute to validate that such a datacenter exists in the vCenter Server. - -In addition, this is the place to assign values to optional attributes that were not given a value by the CloudShell admin. - -## Signature - -```python -def get_inventory(self, context) -``` - -## Inputs - -**context**: *context* is an *AutoLoadCommandContext* object that contains: - -- connectivity - CloudShell server connectivity data for authentication with CloudShell Automation API - -- resource - resource configuration settings entered by the user when creating the new resource in the **Inventory** dashboard - - -[This Github Sample](https://github.com/QualiSystems/cloudshell-shell-core/blob/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) is by [QualiSystems](https://github.com/QualiSystems) - -cloudshell/shell/core/driver\_context.py [view](https://github.com/QualiSystems/cloudshell-shell-core/blob/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) [raw](https://raw.githubusercontent.com/QualiSystems/cloudshell-shell-core/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) - -```python -def __init__(self, connectivity, resource): - self.connectivity = connectivity # Connectivity details that can help connect to the APIs - """:type : ConnectivityContext""" - self.resource = resource # The details of the resource using the driver - """:type : ResourceContextDetails""" -``` -:::note -The convention for specifying *context.resource.attributes* keys in the driver files(s) is: `my_shell_name.attribute_name`. -::: -## Return value - -The *AutoLoadDetails* class that represents details discovered by the *get\_inventory* function. - -[This Github Sample](https://github.com/QualiSystems/cloudshell-shell-core/blob/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) is by [QualiSystems](https://github.com/QualiSystems) - -cloudshell/shell/core/driver\_context.py [view](https://github.com/QualiSystems/cloudshell-shell-core/blob/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) [raw](https://raw.githubusercontent.com/QualiSystems/cloudshell-shell-core/36009fdec45134ae38cb9273328b7686be66e553/cloudshell/shell/core/driver_context.py) - -```python -def __init__(self, resources, attributes): - self.resources = resources # the list of resources (root and sub) that were discovered - """:type : list[AutoLoadResource]""" - self.attributes = attributes # the list of attributes for the resources - """:type : list[AutoLoadAttribute]""" -``` - -## Error handling - -If one of the validations failed, an error indication will be displayed in CloudShell and the resource will be marked as excluded. - -## get\_inventory method implementation example - -[This Github Sample](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/865f356f4aec14e170cd9e5f30b575c48f2dc865/src/driver.py) is by [QualiSystems](https://github.com/QualiSystems) - -src/driver.py [view](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/blob/865f356f4aec14e170cd9e5f30b575c48f2dc865/src/driver.py) [raw](https://raw.githubusercontent.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example/865f356f4aec14e170cd9e5f30b575c48f2dc865/src/driver.py) - -```python -def get_inventory(self, context): - ## uncomment - if there is nothing to validate - # return AutoLoadDetails([], []) - # read from context - cloud_provider_resource = L2HeavenlyCloudShell.create_from_context(context) - with LoggingSessionContext(context) as logger, ErrorHandlingContext(logger): - self._log(logger, 'get_inventory_context_json', context) - # validating - if cloud_provider_resource.name == 'evil': - raise ValueError('evil cannot use heaven ') - if cloud_provider_resource.region == 'sun': - raise ValueError('invalid region, sorry cannot deploy instances on the sun') - # using your cloud provider sdk - if not HeavenlyCloudService.can_connect(cloud_provider_resource.user, cloud_provider_resource.password, - context.resource.address): # TODO add address to resource (gal shellfoundry team) - raise ValueError('could not connect using given credentials') - # discovering - using your prefered custom cloud service you can discover and then update values - if not cloud_provider_resource.heaven_cloud_color: - cloud_provider_resource.heaven_cloud_color = HeavenlyCloudService.get_prefered_cloud_color() - return cloud_provider_resource.create_autoload_details() -``` \ No newline at end of file diff --git a/versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/the-cloud-provider-interface.md b/versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/the-cloud-provider-interface.md deleted file mode 100644 index 78b8faa5db..0000000000 --- a/versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/the-cloud-provider-interface.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -sidebar_position: 8 ---- - -# The Cloud Provider Interface - -The rest of this chapter is dedicated to implementing the cloud provider driver that will be called by the server when interaction with the cloud provider is needed. This includes setting up communication between CloudShell and the cloud provider of choice, implementing the driver commands required from the resource, such as Deploy App, Power On and Refresh IP, and setting the resource’s live status icon (for example, "online” and "offline”). - -The articles are: - -- [Resource Discovery](./resource-discovery.md) -- [App Deployment](./app-deployment.md) -- [Power off and Delete VM](./power-off-and-delete-vm.md) -- [L2 Network Connectivity](./l2-network-connectivity.md) -- [L3 Network Connectivity](./l3-network-connectivity.md) - -For illustration purposes, we will use a mock shell called HeavenlyCloud, which demonstrates the use and implementation of a custom cloud provider. We’ve created two versions of the shell, **L2HeavenlyCloudShell** for L2 clouds [(download here)](https://github.com/QualiSystems/Custom-L2-Cloud-Provider-Shell-Example) and **L3HeavenlyCloudShell** for L3 clouds [(download here)](https://github.com/QualiSystems/Custom-L3-Cloud-Provider-Shell-Example). The difference between the two is in the networking connectivity implementation. - -To see how the HeavenlyCloud cloud provider works, let’s create a resource using the HeavenlyCloud shell in CloudShell Portal. First, download the appropriate mock shell .zip file from GitHub and extract it to your computer. - -![Shell Commands](/Images/Devguide-cloud-providers/The-Cloud-Provider-Interface_624x375.png) - -Install the shell on CloudShell by running this command-line from the extracted shell project folder: - -`shellfoundry install` - -In CloudShell Portal, open the **Inventory** dashboard and create a resource from the **HeavenlyCloud** shell. - -In the **Manage>Apps** page, create a new App template. Note that two new deployment types have been added, HeavenlyCloudAngelDeployment and HeavenlyCloudManDeployment. Select a deployment type and carry on setting the App template. - -![Shell Commands](/Images/Devguide-cloud-providers/The-Cloud-Provider-Interface_1_624x380.png) - -In the **Deployment Paths** page of the dialog box, make sure to select the new HeavenlyCloud cloud provider resource you created. - -Next, let’s implement the *get\_inventory* function, which discovers and validates the resource against the cloud provider of choice. \ No newline at end of file diff --git a/versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/the-cp-shell-mode.md b/versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/the-cp-shell-mode.md deleted file mode 100644 index 0e96c17506..0000000000 --- a/versioned_docs/version-2023.3/devguide/develop-custom-cloud-provider-shells/the-cp-shell-mode.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -sidebar_position: 3 ---- - -# The Cloud Provider Shell Model - -In this article, we’ll learn about the Cloud Provider shell’s model. - -The [Cloud Provider Standard](https://github.com/QualiSystems/cloudshell-standards/blob/master/Documentation/cloud_provider_standard.md) defines two elements: the Cloud Provider shell and the Deployment Type service. The Cloud Provider shell is responsible for accessing the cloud provider and executing the App’s automation commands (like deploy VM, power on, power off, refresh IP). And the deployment type service shell sets the deployment path on the App template, including the VM’s definition. The service contains the attributes of the deployment type, but has no driver since the automation commands are defined in the Cloud Provider shell’s driver. - -- The cloud provider model extension includes the attributes that control the behavior of the cloud provider as a whole. For example the region name and default values for elements created in the cloud. - -- The deployment type extension needs to include the attributes that are needed for every deployment method in this cloud. You can set these attributes to be visible in the **Deployment Paths** tab of the App template dialog box (we’ll learn how to do this later on this chapter). - - -The Cloud Provider shell is created using the gen2/cloud-provider shellfoundry template. The project folder includes a shell-definition.yaml file for the cloud provider model definition, and a skeleton of the cloud provider model. Inside the **Deployments** folder, there is a deployment-path.yaml file for the deployment type model. If more than one deployment type is needed, additional yaml files may be added to this folder. - -The association between the cloud provider and its relevant deployment types is implicit. \ No newline at end of file diff --git a/versioned_docs/version-2023.3/devguide/develop-orch-scripts/_category_.json b/versioned_docs/version-2023.3/devguide/develop-orch-scripts/_category_.json deleted file mode 100644 index 792cfa37dd..0000000000 --- a/versioned_docs/version-2023.3/devguide/develop-orch-scripts/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Developing Orchestration Scripts", - "position": 3 -} diff --git a/versioned_docs/version-2023.3/devguide/develop-orch-scripts/common-orch-script-recipes.md b/versioned_docs/version-2023.3/devguide/develop-orch-scripts/common-orch-script-recipes.md deleted file mode 100644 index 7c1d4bb89c..0000000000 --- a/versioned_docs/version-2023.3/devguide/develop-orch-scripts/common-orch-script-recipes.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -sidebar_position: 5 ---- - -# Common Orchestration Script Recipes - -In this section, we’ll provide a few handy examples of common script operations. The intention is to grow this into a good source to copy paste common code from. All of the examples are available in the [DevGuide Examples](https://github.com/QualiSystems/devguide_examples) repository under the `orchestration_scripts_examples` folder. - -## Executing commands on sandbox resources - -The following script attempts to execute a command only on resources that support it. If a resource does not support the command, the script will simply ignore it and move on to the next resource. - -[This Github Sample](https://github.com/QualiSystems/devguide_examples/blob/master/orchestration_scripts_examples/try_execute_commands/try_execute_commands.py) is by [QualiSystems](https://github.com/QualiSystems) - -orchestration\_scripts\_examples/try\_execute\_commands/try\_execute\_commands.py [view](https://github.com/QualiSystems/devguide_examples/blob/master/orchestration_scripts_examples/try_execute_commands/try_execute_commands.py) [raw](https://raw.githubusercontent.com/QualiSystems/devguide_examples/master/orchestration_scripts_examples/try_execute_commands/try_execute_commands.py) - -```python -def try_execute_command_on_resources(session, reservation_id, command_name, command_inputs=[]): - - """ - This function will try to execute a command on all app resources that support it - :param CloudShellAPISession session: CloudShell API Session - :param str reservation_id: The reservation Id to run the commands on - :param str command_name: The command to try and execute - :param list[InputNameValue] command_inputs: Inputs parameters for the command - :return: The aggregated results of the successful calls - :rtype: dict[str,str] - """ - - results = {} - - for resource in session.GetReservationDetails(reservation_id).ReservationDescription.Resources: - try: - result = session.ExecuteCommand(reservation_id, resource.Name, "Resource", command_name, command_inputs) - results[resource.Name] = result.Output - - except CloudShellAPIError as exc: - # Ignore the error if the command doesn't exist on the resource or its not assigned a driver - if exc.code not in (NO_DRIVER_ERR,DRIVER_FUNCTION_ERROR): - raise - - return results -``` - -## Configuring Apps in a Sandbox - -App configuration in a sandbox, initiated either by setup orchestration or a dedicated orchestration script, can be performed in parallel or ordered by custom logic using the **app\_configuration** methods. - -In the following example, we will configure all the ‘web servers’ Apps after configuring the ‘application server’ App. Also, to enable connection between the deployed Apps, we will pass the application server’s address to the web servers configuration: - -```python -from cloudshell.workflow.orchestration.sandbox import Sandbox - - -sandbox = Sandbox() - -## configure Application server -application_server = sandbox.components.get_apps_by_name_contains('application server')[0] - -sandbox.apps_configuration.apply_apps_configurations(application_server) - -application_server_address = sandbox.components.get_apps_by_name_contains('application server')[0].deployed_app.FullAddress - -for server in web_servers: - ## set application server as app param (application_server_address is pre-configured on the app) - sandbox.apps_configuration.set_config_param(server, 'script alias', 'application_server_address', application_server_address) - -## configure web servers -sandbox.apps_configuration.apply_apps_configurations(web_servers) -``` - -Make sure to add a `requirements.txt` file that will include the *cloudshell-orch-core* package to use this example. - -Note the code in the components helper’s method to get the correct Apps from the sandbox and the usage in the App object rather than the name of the App for other methods like **apps\_configuration.set\_config\_param**. - -Configuration of a sandbox’s Apps can be streamlined by using the OOB setup logic, as explained in [Extending the OOB Setup Orchestration Scripts](./cs-oob-orch/index.md#extending-the-oob-setup-orchestration-scripts). diff --git a/versioned_docs/version-2023.3/devguide/develop-orch-scripts/cs-oob-orch/_category_.json b/versioned_docs/version-2023.3/devguide/develop-orch-scripts/cs-oob-orch/_category_.json deleted file mode 100644 index f08eb642e2..0000000000 --- a/versioned_docs/version-2023.3/devguide/develop-orch-scripts/cs-oob-orch/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "CloudShell's OOB Orchestration", - "position": 6 -} diff --git a/versioned_docs/version-2023.3/devguide/develop-orch-scripts/cs-oob-orch/customize-guest-os-vcenter-command.md b/versioned_docs/version-2023.3/devguide/develop-orch-scripts/cs-oob-orch/customize-guest-os-vcenter-command.md deleted file mode 100644 index e54c817164..0000000000 --- a/versioned_docs/version-2023.3/devguide/develop-orch-scripts/cs-oob-orch/customize-guest-os-vcenter-command.md +++ /dev/null @@ -1,115 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Customize Guest OS vCenter Command Implementation - -The **Customize Guest OS** command is supported in vCenter 2G shell version 3.5.0 and above and enables you to run vCenter's "Customize Guest OS" command on a vCenter App's VM before it is powered on. - -![](/Images/Devguide-orchestration-scripts/Customize-Guest-OS.png) - -**Customize Guest OS** is a hidden command that can only be run via the CloudShell Automation API's **ExecuteCommand** method and is designed to be executed as part of the sandbox setup orchestration. - -Example scenarios include: - -- Running several customization specifications on the same VM by running this command for each customization specification, followed by a power cycle (Power Off and then Power On) each time -- Having a custom setup script that reserves the VM's MAC addresses from the IP management system (IPMS) and then runs the **Customize Guest OS** command to assign the reserved IP addresses to the VM's network interfaces - -## How "Customize Guest" OS works - -When executed, the command sends (to the App's VM) the customization specification defined either in the vCenter App or as an input of the command. If missing from both the App and command, a default customization specification is created and sent to the VM. *The customization specification is applied when the VM is powered on.* If the VM is online while running the **Customize Guest OS** command, the VM will need to be powered off and then powered on again. - -Customization specifications are applied in the following scenarios: - -1. Customization specification defined only in the App -2. Customization specification defined only in the command -3. Hostname and IP Address defined in the App (creates a customization specification that updates the VM's hostname and IP address as defined in the App) -4. Customization specification parameters defined in the command - -All combinations are allowed except for 1 and 2. In other words, customization specifications cannot be defined both in the App and in the **Customize Guest OS** command. - -When scenario 3 is combined with another scenario, the hostname and IP address are updated on the VM without creating another customization specification. - -## Prerequisites - -- **Auto Power On** global attribute must be set to **False** (Default is **True**) - -## Command inputs - -- **Customization Spec Name**: Name of the customization specification to execute. -- **Override Customization Spec**: Override any customization specification defined in the App. -- **Customization Spec Parameters**: Parameters to be used to create/update the customization specification. If a customization specification is not defined in the command, the Customization Spec Parameters will be applied to the customization specification defined in the App. - - The syntax is a concatenated JSON string where customization specification elements are written in lower case and underscores instead of spaces. For example, "Registration Info" is written as "registration\_info" in the JSON. - - The full strings are: - - - Linux Customization Spec JSON Schema: - - ```javascript - {'additionalProperties': false, '$schema': 'http://json-schema.org/draft-04/schema#', 'type': 'object', 'properties': 'dns_settings': {'additionalProperties': false, 'type': 'object', 'properties': {'secondary_dns_server': {'type': 'string'}, 'dns_search_paths': {'items': {'type': 'string'}, 'type': 'array'}, 'primary_dns_server': {'type': 'string'}, 'tertiary_dns_server': {'type': 'string'}}}, 'domain_name': {'type': 'string'}, 'computer_name': {'type': 'string'}, 'networks': {'items': {'additionalProperties': false, 'type': 'object', 'properties': {'ipv4_address': {'type': 'string'}, 'use_dhcp': {'type': 'boolean'}, 'default_gateway': {'type': 'string'}, 'alternate_gateway': {'type': 'string'}, 'subnet_mask': {'type': 'string'}}}, 'type': 'array'}}, 'title': 'Linux Customization Spec'} - ``` - - - - Windows Customization Spec JSON Schema: - - ```javascript - '{'additionalProperties': false, '$schema': 'http://json-schema.org/draft-04/schema#', 'type': 'object', 'properties': {'workgroup': {'type': 'string'}, 'license': {'additionalProperties': false, 'type': 'object', 'properties': {'include_server_license_info': {'type': 'boolean'}, 'server_license_mode': {'enum': ['perServer', 'perSeat'], 'type': 'string'}, 'product_key': {'type': 'string'}, 'max_connections': {'type': 'integer'}}}, 'registration_info': {'additionalProperties': false, 'type': 'object', 'properties': {'owner_name': {'type': 'string'}, 'owner_organization': {'type': 'string'}}}, 'auto_logon_count': {'type': 'integer'}, 'auto_logon': {'type': 'boolean'}, 'computer_name': {'type': 'string'}, 'password': {'type': 'string'}, 'commands_to_run_once': {'items': {'type': 'string'}, 'type': 'array'}, 'networks': {'items': {'additionalProperties': false, 'type': 'object', 'properties': {'ipv4_address': {'type': 'string'}, 'use_dhcp': {'type': 'boolean'}, 'default_gateway': {'type': 'string'}, 'alternate_gateway': {'type': 'string'}, 'subnet_mask': {'type': 'string'}}}, 'type': 'array'}, 'windows_server_domain': {'additionalProperties': false, 'type': 'object', 'properties': {'username': {'type': 'string'}, 'domain': {'type': 'string'}, 'password': {'type': 'string'}}}}, 'title': 'Windows Customization Spec'}' - ``` - - -## Examples - Command input JSONs - -**Windows:** - -```javascript -{ "registration_info": { - "owner_name": "Owner_Name", - "owner_organization": "Owner_Organization", - }, - "computer_name": "TestWindows", - "auto_logon": False, - "auto_logon_count": 2, - "license": { - "product_key": "Testing", - "include_server_license_info": True, - "server_license_mode": "perSeat", - "max_connections": 5, - }, - "password": "Administrator_Password", - "commands_to_run_once": ["test1", "test2"], - "workgroup": "TestWorkGroup", - "windows_server_domain": { - "domain": "DOMAIN", - "username": "Username", - "password": "Password", - } -} -``` - -**Linux:** - -```javascript -{ - "computer_name": "TestLinux", - "networks": [ - { - "use_dhcp": True, - }, - { - "use_dhcp": False, - "ipv4_address": "11.20.36.20", - "subnet_mask": "11.24.42.1", - "default_gateway": "20.8.34.1", - "alternate_gateway": "142.0.32.8", - } - ], - "domain_name": "internal2.com", - "dns_settings": { - "primary_dns_server": "", - "secondary_dns_server": "", - "tertiary_dns_server": "", - "dns_search_path": [], - }, -} -``` diff --git a/versioned_docs/version-2023.3/devguide/develop-orch-scripts/cs-oob-orch/index.md b/versioned_docs/version-2023.3/devguide/develop-orch-scripts/cs-oob-orch/index.md deleted file mode 100644 index 36c56482b5..0000000000 --- a/versioned_docs/version-2023.3/devguide/develop-orch-scripts/cs-oob-orch/index.md +++ /dev/null @@ -1,475 +0,0 @@ -# CloudShell's OOB Orchestration - -Every CloudShell installation includes out of the box workflows. These reflect some common workflows we see across many of our customers that we’ve decided to integrate as default behavior. The OOB setup and teardown processes handle App deployment and startup, connectivity, App discovery and installation. The OOB Save and Restore processes are used for saving the sandbox state and restoring it as a new sandbox. - -## Setup and Teardown Orchestration - -The following diagram describes the OOB setup and teardown flow: - -![Setup Workflow](/Images/Devguide-orchestration-scripts/CloudShell-s-OOB-Orchestration.png) - -These OOB setup and teardown scripts can be found in the **Scripts – Blueprint** management page. You can review their source code in the [cloudshell-orch-sandbox repository](https://github.com/QualiSystems/cloudshell-orch-sandbox/tree/v8.1/SandboxOrchestration/environment_scripts). - -The default setup and teardown logic is provided in a Python package called *cloudshell-orch-core*. The default blueprint template includes a reference to the *cloudshell-orch-core* package using the `requirements.txt` mechanism, which is supported for orchestration scripts. - -Here is the implementation of the OOB setup script: - -```python -from cloudshell.workflow.orchestration.sandbox import Sandbox -from cloudshell.workflow.orchestration.setup.default_setup_orchestrator import DefaultSetupWorkflow - - -sandbox = Sandbox() - -DefaultSetupWorkflow().register(sandbox) - -sandbox.execute_setup() -``` - -As you can see, to use the default orchestration logic, we instantiated the *DefaultSetupWorkflow* class and registered the sandbox to use the default behavior. Sandbox setup is divided into 4 stages: preparation, provisioning, connectivity and configuration. It’s possible to disable the default implementation of each stage (except for preparation, which is mandatory) by setting **enable\_stageName=False**, as illustrated in this example: - -```python -DefaultSetupWorkflow().register(Sandbox, enable_connectivity=False) -``` - -The OOB setup and teardown scripts can easily be customized or extended. Click [here](https://github.com/QualiSystems/cloudshell-orch-sandbox/blob/develop/Samples/Setup/ordered_configuration_example.py) for an example on how to customize the app configuration order in the setup stage, or see [other samples](https://github.com/QualiSystems/cloudshell-orch-sandbox/tree/develop/Samples) to learn how to extend the OOB orchestration scripts. - -### Extending the OOB Setup Orchestration Scripts - - - -Setup script logic is divided into 4 stages – Preparation, Provisioning, Connectivity and Configuration. Each Setup stage has a specific logic functionality. - -- **Preparation** is empty in the default Setup script. This is the place to enter any code that logically has to be executed before Setup logic is initiated. - -- **Provisioning** deploys and discovers all apps. - -- **Connectivity** connects all layer 1/layer 2/subnet connections, powers on and refreshes IPs on deployed apps. - -- **Configuration** applies any additional configuration on deployed apps - -Note that the OOB setup already includes some default logic in each of the stages as depicted in the diagram at the top of this page. However, the OOB setup can easily be extended using the following extension methods: - -- add\_to\_preparation - -- on\_preparation\_ended - -- add\_to\_provisioning - -- on\_provisioning\_ended - -- add\_to\_connectivity - -- on\_connectivity\_ended - -- add\_to\_configuration - -- on\_configuration\_ended - - -Each stage has an interim **on\_\_\[stage\]\_ended** step which allows the execution of any code that has to run between stages. Note that all the functions you add to a stage (using **add\_to\_configuration**, for example) run in parallel, while **on\_\_\[stage\]\_ended** functions run sequentially. - -You can extend the OOB setup and teardown scripts by adding additional steps, or controlling the order of execution. In this section we will focus on the setup script, for examples about how to extend the teardown, see [Extending the OOB Teardown Orchestration Scripts](#extending-the-oob-teardown-orchestration-scripts) below. An example for extending the OOB Setup script can be calling additional commands to validate Apps or resource states, launching additional orchestration, or controlling the order in which the sandbox is provisioned. - -1. Create a copy of the appropriate script, (see below for extension options), and upload the updated version separately into CloudShell Portal as a **Setup** script. DO NOT remove any step in the setup workflow. However, you can add your own steps or change the order of execution. - -2. Make sure to give your extended script a more specific name than simply 'setup'. The name ‘teardown’ is a reserved name, which may cause unexpected behavior during the setup operation. - - -You can extend the Setup script to implement the required logic in one of the setup stages: preparation, provisioning, connectivity and configuration or as a post stage for validation. Make sure to add a `requirements.txt` file that will include the *cloudshell-orch-core* package. For example, adding some logic to the configuration stage can be made in the following way: - -```python -from cloudshell.workflow.orchestration.sandbox import Sandbox -from cloudshell.workflow.orchestration.setup.default_setup_orchestrator import DefaultSetupWorkflow - - -Sandbox = Sandbox() - -DefaultSetupWorkflow().register(Sandbox) - -sandbox.workflow.add_to_configuration(my_custom_login, components) -``` - -Each of the following methods gets a custom function and list of components to use in the function. For example, executing some custom logic to validate resource configuration: - -```python -from cloudshell.workflow.orchestration.sandbox import Sandbox -from cloudshell.workflow.orchestration.setup.default_setup_orchestrator import DefaultSetupWorkflow - - -def custom_function(sandbox, components): - pass - -sandbox = Sandbox() - -DefaultSetupWorkflow().register(sandbox) - -resources = sandbox.components.get_resources_by_model('Generic Resource Model') - -sandbox.workflow.on_configuration_ended(custom_function, resources) -``` - -Note that all methods of the OOB setup logic in the same stage are executed in parallel. The custom function should get arrays of the sandbox and its components as inputs. It’s recommended to use this function template as a starting point: - -```python -from cloudshell.workflow.orchestration.sandbox import Sandbox - -def custom_func(sandbox, components): - """ - :param Sandbox sandbox: - :return: - """ - pass -``` - -Here is an implementation example of custom configuration logic for a 3 tier application where each type of App is configured consecutively while passing some global inputs and configuration parameters between the Apps: - -```python -from cloudshell.workflow.orchestration.sandbox import Sandbox -from cloudshell.workflow.orchestration.setup.default_setup_orchestrator import DefaultSetupWorkflow - -def main(): - sandbox = Sandbox() - sandbox.automation_api.WriteMessageToReservationOutput(reservationId=sandbox.id, - message='Starting to execute the cool stuff!') - DefaultSetupWorkflow().register(sandbox, enable_configuration=False) # Disable OOB configuration - sandbox.workflow.add_to_configuration(function=configure_apps, - components=sandbox.components.apps) - sandbox.execute_setup() - -def configure_apps(sandbox, components): - """ - :param Sandbox sandbox: - :return: - """ - sandbox.automation_api.WriteMessageToReservationOutput(reservationId=sandbox.id, - message='configure_apps started') - build_id = sandbox.global_inputs['build_id'] - - # Configure databases - databases = sandbox.components.get_apps_by_name_contains('Database') - sandbox.automation_api.WriteMessageToReservationOutput(reservationId=sandbox.id, - message='Configuring Databases') - for app in databases: - sandbox.apps_configuration.set_config_param(app=app, - alias='config alias', - key='build_id', - value=build_id) - sandbox.automation_api.WriteMessageToReservationOutput(reservationId=sandbox.id, - message='Database configured with build_id {0}'.format(str(build_id))) - sandbox.apps_configuration.apply_apps_configurations(databases) - sandbox.automation_api.WriteMessageToReservationOutput(reservationId=sandbox.id, - message='Finished to configure databases') - - # Configure Application Servers - app_servers = sandbox.components.get_apps_by_name_contains('Application') - - sandbox.automation_api.WriteMessageToReservationOutput(reservationId=sandbox.id, - message='Configuring Application Servers') - - database = sandbox.components.get_apps_by_name_contains('Database')[0].deployed_app.FullAddress - - for app_server in app_servers: - sandbox.apps_configuration.set_config_param(app=app_server, - alias='config alias', - key='build_id', - value=build_id) - sandbox.apps_configuration.set_config_param(app=app_server, - alias='config alias', - key='DB_address', - value=database) - sandbox.automation_api.WriteMessageToReservationOutput(reservationId=sandbox.id, - message='Application Server configured with build_id {0} , and DB address {1}' - .format(str(build_id), str(database))) - - sandbox.apps_configuration.apply_apps_configurations(app_servers) - sandbox.automation_api.WriteMessageToReservationOutput(reservationId=sandbox.id, - message='Finished to configure Application Servers') - - # Configure web servers - application_server_address = sandbox.components.get_apps_by_name_contains('Application')[0].deployed_app.FullAddress - - web_servers = sandbox.components.get_apps_by_name_contains('Web') - - for app in web_servers: - sandbox.apps_configuration.set_config_param(app=app, - alias='config alias', - key='Application Server', - value=application_server_address) - sandbox.apps_configuration.set_config_param(app=app, - alias='config alias', - key='build_id', - value=build_id) - sandbox.automation_api.WriteMessageToReservationOutput(reservationId=sandbox.id, - message='Web Server configured with build_id {0}, and Application Server address {1}' - .format(str(build_id), str(application_server_address))) - - - sandbox.apps_configuration.apply_apps_configurations(web_servers) - sandbox.automation_api.WriteMessageToReservationOutput(reservationId=sandbox.id, - message='Finished to configure Web Servers') - -main() -``` - -Here is another implementation that shows a scenario where some physical devices need to be loaded while few applications are deployed: - -```python -from cloudshell.workflow.orchestration.sandbox import Sandbox -from cloudshell.workflow.orchestration.setup.default_setup_orchestrator import DefaultSetupWorkflow - - -def load_firmware_sequential(sandbox, components): - """ - :param Sandbox sandbox: - :param components: - :return: - """ - for component in components: - sandbox.automation_api.ExecuteCommand(reservationId=sandbox.id, - targetName=component.Name, - targetType='Resource', - commandName='load_configuration') - - -sandbox = Sandbox() -DefaultSetupWorkflow().register(sandbox) - -chassis = sandbox.components.get_resources_by_model('Generic Chassis Model') -sandbox.workflow.add_to_provisioning(function=load_firmware_sequential, - components=chassis) - -sandbox.execute_setup() -``` - -### Extending the OOB Teardown Orchestration Scripts - -You can extend the OOB Teardown script to execute custom steps prior to the out-of-the-box teardown orchestration, or to execute custom steps in parallel to the OOB teardown. This is done using the following extension methods, which are included in the workflow property in the **Sandbox** class: - -- add\_to\_teardown - -- before\_teardown\_started - -Each of the above methods gets a custom function and list of components to use in the function. All steps configured using the **before\_teardown\_started** method will be executed in a sequential manner, and all steps configured using the **add\_to\_teardown** method will be executed in parallel. - -Here is an example of how to execute a command on a resource prior to the default teardown orchestration, note that a `requirements.txt` file containing cloudshell-orch-core should be attached to the script: - -```python -from cloudshell.workflow.orchestration.sandbox import Sandbox -from cloudshell.workflow.orchestration.teardown.default_teardown_orchestrator import DefaultTeardownWorkflow - - -def execute_resource_cleanup(sandbox, components): - """ - :param Sandbox sandbox: - :param components: - :return: - """ - for component in components: - sandbox.automation_api.ExecuteCommand(reservationId=sandbox.id, - targetName=component.Name, - targetType='Resource', - commandName='cleanup') - -sandbox = Sandbox() - -DefaultTeardownWorkflow().register(sandbox) - -chassis = sandbox.components.get_resources_by_model("Generic Chassis Model") -sandbox.workflow.before_teardown_started(execute_resource_cleanup, chassis) - -sandbox.execute_teardown() -``` - -Make sure to follow these steps when implementing a custom teardown orchestration: - -1. Create a copy of the appropriate script, (see below for extension options), and upload the updated version separately into CloudShell Portal as a **Teardown** script. DO NOT remove steps from the teardown workflow. However, you can add your own steps or change the order of execution. - -2. Make sure to give your extended script a more specific name than simply 'teardown'. The name ‘teardown’ is a reserved name, which may cause unexpected behavior during the teardown operation. - - -## Save and Restore Orchestration -:::note -*These orchestration scripts apply to customers who have purchased the **Save and Restore** paid add-on. Contact your account manager to obtain a license.* -::: -Save and Restore scripts are provided to support the capability to save and restore sandboxes. Save and Restore reside in a Python package called *cloudshell-orch-core*. The OOB default blueprint template includes these orchestration scripts and a reference to the *cloudshell-orch-core* package (required by these scripts) using the `requirements.txt` mechanism. Here is the implementation of the OOB Save script: - -```python -from cloudshell.workflow.orchestration.sandbox import Sandbox - - -sandbox = Sandbox() - -sandbox.execute_save() -``` - -By running the **execute\_save** method on a sandbox, the script will call a server logic that will create a saved sandbox. For details about the saving process, see [Sandbox Save and Restore Overview](../../../portal/sandboxes/sandbox-save-and-restore-overview.md). - -### Extending the OOB Save Orchestration Script - -*Out of the box, the Save orchestration script only creates the saved sandbox, returns concrete resources to abstract if required, creates a clone of deployed Apps and creates an App in that saved sandbox that points to this clone. For details, see [Sandbox save logic](../../../portal/sandboxes/sandbox-workspace/save-sandbox.md).* - -You can extend the OOB Save script to execute custom steps before or after the default sandbox save process takes place. - -To do this, simply add your custom code before or after the line that executes the Save operation. For example, a Save orchestration script that sends a simple notification email when the Save operation completes: - -```python -from cloudshell.workflow.orchestration.sandbox import Sandbox -import smtplib - - -sandbox = Sandbox() - -sandbox.execute_save() - -# code for sending email notification: -server = smtplib.SMTP('smtp.gmail.com', 587) - -server.ehlo() -server.starttls() -server.ehlo() - -#Next, log in to the server -server.login("", "") - -#Send the mail -msg = "Sandbox was saved successfully" -server.sendmail("", "", msg) -``` - -### Extending the OOB Restore Orchestration Script - -You can also extend the OOB Restore script to execute custom functionality at any point during the default sandbox restore process. The Restore script is a part of the sandbox setup process, and actually replaces the setup. Out of the box, the setup and restore logic are identical. However, if you customized the Setup script and you want the same customized script to be launched when restoring a sandbox, you should customize the Restore script as well, as the Restore script is the one that is being launched in a restored sandbox’s setup phase. It is also possible to customize the Restore script to have a different logic than the Setup script, to create a logic that is relevant only for restored sandboxes. For detailed explanations on how to extend the script’s stages and use its extension methods, see the [Setup and Teardown Orchestration](../cs-oob-orch/index.md#setup-and-teardown-orchestration) section above. For details about the OOB Restore script's operations, see [Restore a Saved Sandbox](../../../portal/sandboxes/saved-sandboxes/restore-saved-sandbox.md). -:::note -CloudShell does not support executing the Setup command directly via the Restore script using APIs, such as **ExecuteEnvironmentCommand** or **EnqueueEnvironmentCommand**. -::: -For example, a Restore script that writes a message to the **Output** console before the Restore workflow operation (to extend the workflow operation itself, use the extension methods in the [Extending the OOB Setup Orchestration Scripts](#extending-the-oob-setup-orchestration-scripts) section above): - -```python -from cloudshell.workflow.orchestration.sandbox import Sandbox -from cloudshell.workflow.orchestration.setup.default_setup_orchestrator import DefaultSetupWorkflow - - -sandbox = Sandbox() - -def func(sandbox, components): - sandbox.automation_api.WriteMessageToReservationOutput(sandbox.id, "my custom message") - -DefaultSetupWorkflow().register(sandbox) - -sandbox.workflow.add_to_configuration(func, None) - -sandbox.execute_restore() -``` - -As you can see, to use the default orchestration logic, we instantiated the *DefaultSetupWorkflow* class and registered the sandbox to use the default Setup orchestration behavior. Sandbox setup is divided into 4 stages: preparation, provisioning, connectivity and configuration. It’s possible to disable the default implementation of each stage by setting **enable\_stageName=False**, as illustrated in this example: - -```python -DefaultSetupWorkflow().register(sandbox, enable_connectivity=False) -``` - -### Save/Restore Physical Resource Configurations Examples - -In many cases, the sandbox's resources include configurations that apply to that sandbox specifically. Since physical resource configurations are not addressed in the out-of-the-box Save and Restore orchestration scripts, we will have to customize them as follows: - -- Save script that: - - 1. Creates a loop that runs `save` or `orchestration_save` on each physical resource in the sandbox. - 2. Gets each physical resource’s configurations (artifact names). - 3. Sets the "resource-artifact name” key pairs in the sandbox data. - -- Restore script that uses this sandbox data to restore each resource to its saved configuration. - -In the below examples, we used shell save/restore functions instead of `orchestration_save`/`orchestration_restore` for two reasons: - -- Visual effect: `orchestration_save`/`orchestration_restore` are hidden functions. While they are running, there is no indication that anything is happening on the screen, while with shell save/restore functions, the user can see all physical resources spinning in the sandbox diagram and knows the action is taking place. -- Easy testing/debugging: While `orchestration_save`/`orchestration_restore` encapsulates functionality and data very nicely, and the json data is helpful, it's easier to test with save/restore of a demo version shell which simply passes on restore and returns a valid string on save. -:::tip -For a more in-depth look, click [here](/attachments/save-restore-physical-resources.zip) to download the script packages. -::: -**Save script (bundled with and called by orchestration\_save):** - -```python -from cloudshell.api.cloudshell_api import InputNameValue -from cloudshell.api.cloudshell_api import SandboxDataKeyValue - - -def execute_save(self) - """ - :return: bool True for pass, False for fail - """ - inputs = list() - inputs.append(InputNameValue(Name='folder_path', Value=self.backup_path)) - inputs.append(InputNameValue(Name='configuration_type', Value=self.config_type)) - inputs.append(InputNameValue(Name='vrf_management_name', Value=self.vrf_management)) - - try: - response = self.api_session.ExecuteCommand(reservationId=self.sandbox_id, - targetName=self.resource_name, - targetType='Resource', - commandName='save', - commandInputs=inputs) - saved_artifact_info = response.Output - saved_file = self.backup_path + saved_artifact_info - # save the entire full path into sandbox data for restore to use, instead of relying on the - # Backup Location of the resource which may change between this save and later restore - d = SandboxDataKeyValue(Key=self.resource_name, Value=saved_file) - self.api_session.SetSandboxData(self.sandbox_id, [d]) - message = 'Successfully saved {} config to {}'.format(self.resource_name, saved_artifact_info) - message = '
    ' + message + '
    ' - self.api_session.WriteMessageToReservationOutput(self.sandbox_id, message) - - except Exception as ex: - message = '{}: {}'.format(type(ex).__name__, ex.message) - message = '
    ' + message + '
    ' - self.api_session.WriteMessageToReservationOutput(self.sandbox_id, message) - return False - - return True -``` - -**Restore script (bundled with and called by orchestration\_restore):** - -```python -from cloudshell.api.cloudshell_api import InputNameValue - - -def execute_restore(self): - """ - :return: bool True for pass, False for fail - """ - inputs = list() - inputs.append(InputNameValue(Name='path', Value=self.config_file_path)) - inputs.append(InputNameValue(Name='configuration_type', Value=self.config_type)) - inputs.append(InputNameValue(Name='restore_method', Value=self.restore_method)) - inputs.append(InputNameValue(Name='vrf_management_name', Value=self.vrf_management)) - - try: - self.api_session.ExecuteCommand(reservationId=self.sandbox_id, - targetName=self.resource_name, - targetType='Resource', - commandName='restore', - commandInputs=inputs) - - message = 'Successfully restored base config of {}'.format(self.resource_name) - message = '
    ' + message + '
    ' - self.api_session.WriteMessageToReservationOutput(self.sandbox_id, message) - - if self.action in ['setup', 'restore']: - self.api_session.SetResourceLiveStatus(self.resource_name, "Online", "Active") - - elif self.action == 'teardown': - self.api_session.SetResourceLiveStatus(self.resource_name, "Offline", "Restored to base config") - - except Exception as ex: - message = '{}: {}'.format(type(ex).__name__, ex.message) - message = '
    ' + message + '
    ' - self.api_session.WriteMessageToReservationOutput(self.sandbox_id, message) - - if self.action in ['setup', 'restore']: - self.api_session.SetResourceLiveStatus(self.resource_name, "Error", "Failed to restore to base config") - - return False - - return True -``` \ No newline at end of file diff --git a/versioned_docs/version-2023.3/devguide/develop-orch-scripts/getting-started-with-orch-scripts.md b/versioned_docs/version-2023.3/devguide/develop-orch-scripts/getting-started-with-orch-scripts.md deleted file mode 100644 index 19b3ddc5b7..0000000000 --- a/versioned_docs/version-2023.3/devguide/develop-orch-scripts/getting-started-with-orch-scripts.md +++ /dev/null @@ -1,155 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Getting Started with Orchestration Scripts - -Orchestration scripts can enable automating sandbox workflows. You can use orchestration scripts to create setup and teardown procedures as well as other custom workflows that can be made available in the sandbox. Examples include saving and restoring state, starting test traffic, running failover scenarios and more. *Please note that sandbox environment automation and enhanced orchestration is available with CloudShell Premium Tier.* - -***Before developing scripts, please familiarize yourself with CloudShell by taking [Quali U courses](http://courses.quali.com/). These courses also include installation instructions for the CloudShell SDK package that deploys a developer edition of CloudShell on which you can perform your training and development activities.*** - -## Prerequisites - -- [Get CloudShell](http://info.quali.com/cloudshell-developer-edition-download): Download the latest CloudShell SDK VM and deploy it. - -- [Python](https://www.python.org/downloads/): Make sure the appropriate Python version - 2.7.x and/or 3.x - (latest recommended) is installed on your machine. - Starting with CloudShell 9.2, CloudShell comes with out-of-the-box support for python 3 for orchestration scripts. - - Python 3 automation requires Microsoft Visual C++ Redistributable 2015 x86 and x64 to be installed on the Execution Server(s). - :::tip - CloudShell components such as Quali Server and the execution servers come with their own Python installation folders. Making changes to these folders may cause unexpected behavior in CloudShell. Therefore, if you plan on doing dev work on a machine that has CloudShell components installed, we recommend doing one of the following: - - - Configuring dedicated virtual environments for your projects out of these base installations. To do this in PyCharm, see [https://www.jetbrains.com/help/pycharm/creating-virtual-environment.html](https://www.jetbrains.com/help/pycharm/creating-virtual-environment.html). To do this via CLI, see [https://docs.python-guide.org/dev/virtualenvs/#lower-level-virtualenv](https://docs.python-guide.org/dev/virtualenvs/#lower-level-virtualenv). - - [Downloading separate installers](https://www.python.org/downloads/) for Python 2.7.18 and 3.9.9 and using these as global installations (by setting the installation folders in the machine’s PATH system variable) for any dev work being done. - ::: - -- **IDE/Text Editor:** Your preferred IDE editor. We recommend using PyCharm (which offers a free community edition) because of the tooling we’ve already created for that IDE, including a CloudShell developer plugin. - - -## Creating and using orchestration scripts in CloudShell - -This procedure shows the basic steps for creating and using orchestration scripts in CloudShell. - -1. Create a Python script. You can create a single python script, or a more complex orchestration that uses dependencies, as explained in [Script Deep Dive](./script-deep-dive.md) . - :::tip - It is highly recommended to extend CloudShell's out-of-the-box orchestration scripts as they already contain important orchestration capabilities you'd like to preserve. To do so, log in to CloudShell Portal as Global administrator, in the **Manage>Assets>Blueprint** page, download the desired script, make the necessary changes and save the script under a new name. - ::: -2. If the script requires the use of Python dependencies, which aren’t available in the public PyPi repository, add them to the local PyPi Server. See [Updating Python Dependencies for Shells, Drivers and Scripts](../../admin/cloudshell-execution-server-configurations/setting-up-python-virtual-environments/updating-python-dependencies-for-shells-drivers-and-scripts.md). - -3. Save the script (if it's a single file) or zip the package if it comprises multiple files. - :::important - Make sure the script's name is not the same as any of the out-of-the-box scripts. - ::: -4. Upload the script to CloudShell. When uploading the script, you can set it as a setup or teardown script, to have it run automatically in the sandbox, or leave it as a manually launched orchestration script. - -5. Attach the script to the blueprint. If it’s a setup or teardown script, remove the blueprint’s existing script first. - - -## Creating a simple blueprint script - -1. In your preferred IDE create a new Python file. - -2. For now we’ll want to keep its functionality very basic. So add some Python code to print ‘Hello CloudShell’. - - ```python - print 'hello CloudShell' - ``` - - - As a side note, in CloudShell the output of a script is displayed in the output widget in the sandbox workspace, so whatever you print in your script will find its way there. - -3. Save the file and give it any name, for example ‘hello.py’. - - -## Uploading the orchestration script to CloudShell - -1. In CloudShell Portal, open the **Manage** dashboard. - -2. In the left sidebar, click **Assets** and select the **Blueprint** option. The page should be similar to this: - - ![Scripts Management Page](/Images/Devguide-orchestration-scripts/Scripts-Getting-Started_624x376.png) - -3. Click the **Add Python Script** button and browse for the script. - -4. Once the script is uploaded, click **Edit**. - -5. For now, just provide a name for the script (the script’s file name is the default) and select the script’s Python version. - - ![Scripts Management Page](/Images/Devguide-orchestration-scripts/Scripts-Getting-Started_1_601x613.png) - -6. And click **Save** to seal the deal. - - Your script is now in CloudShell, all we need now is a blueprint where it can work its magic. - -## Attaching the script to a blueprint - -1. Open the **Blueprints** dashboard and click **Add New**. - - A new blueprint will be created and you’ll be taken to the blueprint’s workspace. - -2. Take a second to name your blueprint. You can do that by clicking the name next to the pencil icon. - -3. The last stop is the **Properties** page. This is where we’ll connect our new script. Click the **Blueprint** drop down menu and select **Properties**. - -4. Click the **Add Script** button to assign our new script to the blueprint and then click **Update** at the bottom of the page. - - That’s it! Our script is ready to be used. However, in order to run it, we’ll need to make our blueprint go live by creating a sandbox. - -5. Click the **Reserve** button to create a sandbox from the blueprint. Next, let’s run the script. - - -## Executing the script in the sandbox - -1. Click the **Commands** button on the toolbar to open the Blueprint Commands side-pane. - -2. Click the **Run** icon next to the command to launch it! - - If the command executed successfully you should see a check mark next to the command name and the **Output** pane will display the command output. - - ![Scripts Management Page](/Images/Devguide-orchestration-scripts/Scripts-Getting-Started_2_624x356.png) - - In the scope of this simple tutorial, we’ve seen how to link a trivial Python script with a CloudShell blueprint. We’ll look into more concrete examples and nuances in later sections of the guide. - - -## Best Practices for working with orchestration scripts - -When developing orchestration scripts, we recommend to download the latest default setup or teardown script from CloudShell Portal’s **Manage>Assets** page, make a copy and modify the contents. This will ensure you are using the right packages and structure. - -If you wish to develop an orchestration script from scratch or develop a script for a different CloudShell version, you will need to import the *cloudshell-orch-core* package, which provides the basic features and capabilities needed for CloudShell orchestration scripts. Use this table to decide which version to use: - -| CloudShell version | cloudshell-orch-core version | -| --- | --- | -| 8.3 GA | \>=1.7.5.0,\<1.7.6.0 | -| 9.0 GA | \>=2.0.0.0,\<2.1.0.0 | -| 9.1 GA | \>=2.1.0.0,\<2.2.0.0 | -| 9.2 GA | \>=3.0.0.0,\<3.1.0.0 | -| 9.3 GA | \>=3.2.0.0,\<3.3.0.0 | -| 2020.1 | \>=3.2.0.0,\<3.3.0.0 | -| 2020.2 | \>=3.4.0.0,\<3.5.0.0 | -| 2021.1 | \>=3.4.0.0,\<3.5.0.0 | -| 2021.2 | \>=3.4.0.0,\<3.5.0.0 | -| 2022.1 | \>=4.0.0.0,\<4.1.0.0 | -| 2022.2 | \>=4.2.0.0,\<4.3.0.0 | -| 2023.1 | \>=4.2.0.0,\<4.3.0.0 | -| 2023.2 | \>=4.3.0.0,\<4.4.0.0 | -| 2023.3 | \>=4.4.0.0,\<4.5.0.0 | - -To set a range for a package, add a line to the script's `requirements.txt` that states the minimum and maximum versions. For example: - -```css -cloudshell-orch-core>=3.2.0.0,<3.3.0.0 -``` - -To set a specific version of the package, use "==". For example: - -```css -cloudshell-orch-core==3.2.0.169 -``` - -For details about the `requirements.txt` file, see [Script Deep Dive](./script-deep-dive.md). - -## Setting the default Python version for new orchestration scripts - -Starting with CloudShell 9.2, the `DefaultPythonVersion` admin key allows you to control the Python version in which all new orchestration scripts are created. For details, see [Advanced CloudShell Customizations](../../admin/setting-up-cloudshell/cloudshell-configuration-options/advanced-cloudshell-customizations.md). - -Note that this key also applies to new shells. diff --git a/versioned_docs/version-2023.3/devguide/develop-orch-scripts/how-orch-script-get-info-from-cs.md b/versioned_docs/version-2023.3/devguide/develop-orch-scripts/how-orch-script-get-info-from-cs.md deleted file mode 100644 index 3205c00ec5..0000000000 --- a/versioned_docs/version-2023.3/devguide/develop-orch-scripts/how-orch-script-get-info-from-cs.md +++ /dev/null @@ -1,232 +0,0 @@ ---- -sidebar_position: 2 ---- - -# How Orchestration Scripts Get Information from CloudShell - -Information about the sandbox on which your script is running and its components is available in your script as an environment variable. The standard way to get the information is using the **Sandbox** object. - -**To use the *Sandbox* object:** - -- Import the *cloudshell\-orch-core* Python package and add it to your script, as illustrated in the example below. Note that the package is automatically imported when your sandbox starts. In this example, the following code gets an object that contains all of the sandbox’s information: - - -```python -from cloudshell.workflow.orchestration.sandbox import Sandbox - - -sandbox = Sandbox() - -reservation_context_details = sandbox.reservationContextDetails -``` - -Note that to execute this code, you will need to include a `requirements.txt` file in your script, see [Script Deep Dive](./script-deep-dive.md) for more details. - -To facilitate writing and debugging activities, it is recommended to use advanced IDEs such as PyCharm, which provide autocomplete functionality, as illustrated below. - -![Sandbox information](/Images/Devguide-orchestration-scripts/Scripts-Getting-Information_624x204.png) - -Note that if you plan on using methods in your script, and want the IDE to autocomplete the *sandbox* object’s class properties from within the method, you will need to include a docstring referencing the object. For details, see [Docstrings in orchestration scripts](../reference/intellisense-in-shells-and-scripts.md#docstrings-in-orchestration-scripts). - -## Accessing the sandbox components - -Use the **Sandbox** class to access and use the components of a sandbox in your orchestration scripts to implement custom logic. - -For example, let’s assume we want to get the names of the resources and Apps in a sandbox. To do so, we will use **sandbox.component**. The following code will iterate over the resources and Apps in the sandbox and print out their names: - -```python -from cloudshell.workflow.orchestration.sandbox import Sandbox - -sandbox = Sandbox() - -for resource_name, resource in sandbox.components.resources.iteritems(): - print 'Found resource: {0}, with address: {0}'.format(resource_name, resource.FullAddress) - -for app_name, app in sandbox.components.apps.iteritems(): - print app_name -``` - -The components in the sandbox are stored in a dictionary object, from which a specific resource can be retrieved using a simple syntax. For example: - -```python -sandbox = Sandbox() - -resource_details = sandbox.components.resources['my_resource'] -``` - -It’s also possible to get the sandbox components using helpers methods located under **sandbox.component** such as **get\_resources\_by\_model, get\_apps\_by\_name\_contains** and others. For example: - -```python -sandbox = Sandbox() - -services = sandbox.components.get_services_by_alias('my-service-alias') -for service in services: - print service.Alias -``` - -To refresh the components information at any time during the sandbox’s lifecycle, use the **sandbox.components.refresh\_components** method. - -## Accessing the sandbox’s user inputs - -User inputs provided by the user when they reserved the blueprint can be accessed by your script, as contextual information. This data is stored in several environment variables based on the input type: - -- **Global inputs** - These inputs are a part of the reservation form and can represent general data you wish to collect from the user for your automation. They can also be used to group together multiple other inputs as one data entry. You can access these using the GLOBALINPUTS environment variable. - -- **Resource requirements** - These are inputs related to abstract resources. An abstract resource in CloudShell allows you to declare a generic spec or criteria for a resource rather than explicitly using a specific one. When customizing such an abstract resource, you can choose to make some of its properties available for the user to select, so as to make it more flexible. For example, for a physical device, instead of specifying the model in the blueprint, you can set the model as a parameter with a dropdown list for the user to select from when reserving it. Resource requirements are accessed using the RESOURCEREQUIREMENTS environment variable. - -- **Resource additional info** - When customizing an abstract resource, you can also choose to add some parameters to the resource that are not requirements but rather instructions on what to do with it. An example would be specifying an OS version to install on it. In this case, this parameter is not used to select the resource but rather to operate on the selected resource in the active sandbox. Additional info parameters are accessed using the RESOURCEADDITIONALINFO environment variable. - - -As with sandboxes, we can use some helper modules to get the resource information in Python using the same object we used to get the reservation’s details: - -```python -sandbox = Sandbox() - -global_value = sandbox.global_inputs['input name'] -requirement_value = sandbox.requirement_inputs['resource1']['input_name'] -additiona_info_value = sandbox.additional_info_inputs['resource1']['input_name'] -``` - -## Getting script input parameters - -You can add input parameters to a script when adding or editing a script in CloudShell Portal's **Manage>Scripts** page. The input parameter values are also provided automatically to your script. CloudShell sets up an environment variable with the same name as the parameter. - -This means that if your script looks like this, with a parameter called ‘Param1’ defined: - -![Sandbox information](/Images/Devguide-orchestration-scripts/Scripts-Getting-Information_1_601x703.png) - -You’ll be able to access it using an environment variable by that name: - -```python -import os - -os.environ['PARAM1'] -``` - -You can also use the Sandbox class: - -```python -from cloudshell.workflow.orchestration.sandbox import Sandbox - -sandbox = Sandbox() - -sandbox.get_user_param('Param1') -``` - -Note that when using the *get\_user\_param* helper function, the input name is case insensitive since the function will uppercase it. - -## Using the API to get sandbox information - -A common use case for a script is to get a list of the different Apps and resources in the sandbox, to be able to call additional commands or API functions on them. To get that information, we can use the CloudShellAPI. - -**To start a CloudShell API session:** - -1. Obtain the Quali Server’s connectivity details. These details are also available as an environment variable in your script called ‘qualiConnectivityContext’. As with the sandbox information, you can use the Sandbox class to quickly get the connectivity information in a more convenient object form and initialize a CloudShellAPISession object by calling **sandbox.connectivityContextDetails**. - -2. Create a CloudShell API session object. Since initializing a CloudShell API session object is a very common operation, you can use the **Sandbox** class to directly create an object. The **Sandbox** class will handle the passing of all of the required connectivity information for you. The **Sandbox** class provides a shortcut which makes accessing the CloudShell API from your script much easier. Simply use the following code: - - ```python - from cloudshell.workflow.orchestration.sandbox import Sandbox - - session = sandbox.automation_api - ``` - - **sandbox.automation\_api** is a CloudShell API session object. You can use the IDE's autocomplete capabilities to explore the available functions: - - ![Sandbox information](/Images/Devguide-orchestration-scripts/Scripts-Getting-Information_2_624x129.png) - - -## Getting general sandbox information (ReservationDescription object) - -The **reservation\_description** object is one of the most important objects for getting information about the sandbox. It includes the sandbox's general details (name, description, owner, start/end times, etc.), conflicts, components (resources, services and Apps), connectors, blueprint information, reservation live status, etc. - -![](/Images/Devguide-orchestration-scripts/Scripts-Getting-Information_4.png) - -Note that **sandbox.reservation\_description** provides information from the sandbox's creation. As such, it does not include updates performed after the sandbox was created. Such updates can be retrieved using the **GetReservationDetails** API: - -```python -from cloudshell.workflow.orchestration.sandbox import Sandbox - - -sandbox = Sandbox() - -reservation_id = sandbox.id - -reservation_description = sandbox.automation_api.GetReservationDetails(reservation_id).reservation_description -``` - -## Getting the sandbox's current status - -It is possible to get the sandbox's current phase via API. This is especially useful if you want to create workflows that perform actions at certain points during the sandbox's lifecycle. - -This is done by calling the `GetReservationStatus` API and requires obtaining two details from the sandbox - **Status** and **ProvisioningStatus**: - -- **Status** provides the reservation status. Possible responses are (for details, see [Sandbox state](../../portal/sandboxes/sandbox-workspace/index.md#sandbox-state)): - - | Status | Description | - | --- | --- | - | Pending | Scheduled to start in the future | - | Started | Sandbox is currently running | - | In Use | Sandbox is running and has "in use" resources | - | Completed | Sandbox has ended | - | Overtime | Sandbox is in Overtime mode (i.e. sandbox has reached its scheduled end time but has "in use" resource) | - -- **ProvisioningStatus** provides the sandbox's current phase. Possible responses are: - - | ProvisioningStatus | Description | - | --- | --- | - | Not Run | Sandbox is scheduled to run in the future | - | Setup | Sandbox is running Setup | - | Ready | Sandbox is "Active" (without errors) | - | Teardown | Sandbox is in Teardown state | - | Error | Sandbox is "Active with Error" | - | BeforeSetup | Sandbox is running, but Setup hasn't started | - - -**Examples:** - -Querying for `Status=Error` and `ProvisioningStatus=Completed` returns "Completed (With Error)" sandboxes, while querying for `Status=Started` and `ProvisioningStatus=Completed` returns "Active (With Error)" sandboxes. - -Running a custom "health check" operation on the environment once the sandbox is active: - -```python -from cloudshell.workflow.orchestration.sandbox import Sandbox -import post_setup_configurations as configs - - -sandbox = Sandbox() - -reservation_id = sandbox.reservationContextDetails.id -api = sandbox.automation_api -result = api.GetReservationStatus(reservation_id) - -if result.ReservationSlimStatus.Status == 'Started' and result.ReservationSlimStatus.ProvisioningStatus == 'Ready': - configs.run_health_check -``` - -## Getting custom sandbox metadata - -It is possible to store and retrieve custom key-value data from the sandbox. For details, see [Custom Sandbox Metadata](../reference/custom-sandbox-metadata.md). - -## Getting saved sandbox information - -Starting with CloudShell 9.0, the *cloudshell\-orch-core* Python package includes a new class called *reservationLifecycleDetails*, which allows you to get the following details about your sandbox: saved sandbox name and description, and the current sandbox user name. - -![Sandbox information](/Images/Devguide-orchestration-scripts/Scripts-Getting-Information_3_624x111.png) - -Note that depending on the sandbox, the information may be partial. For example, if the sandbox is not a saved sandbox, the saved sandbox name and description will be missing. For details about our OOB saved sandbox orchestration scripts, see [CloudShell's OOB Orchestration](./cs-oob-orch/index.md). - -## Getting the user context - -CloudShell also allows you to get the CloudShell user who ran the blueprint/orchestration command in the **Sandbox** class. - -For example: - -```python -from cloudshell.workflow.orchestration.sandbox import Sandbox - - -sandbox = Sandbox() - -user = sandbox.reservationContextDetails.running_user -``` diff --git a/versioned_docs/version-2023.3/devguide/develop-orch-scripts/index.md b/versioned_docs/version-2023.3/devguide/develop-orch-scripts/index.md deleted file mode 100644 index c1b1e80a67..0000000000 --- a/versioned_docs/version-2023.3/devguide/develop-orch-scripts/index.md +++ /dev/null @@ -1,12 +0,0 @@ -# Developing Orchestration Scripts - -Orchestration scripts are a feature in CloudShell that enables the implementation of sandbox workflows. CloudShell has built-in flows for setup and teardown, which deploy and tear down Apps, resources and connections between components in the sandbox without having to add additional code. Users can extend or fork these scripts, as well as implement additional workflows for save/restore operations, scaling, or more use case-specific workflows for anything from performance testing to failover simulation or traffic generation. - -## In this chapter - -- [Getting Started with Orchestration Scripts](./getting-started-with-orch-scripts.md) -- [How Orchestration Scripts Get Information from CloudShell](./how-orch-script-get-info-from-cs.md) -- [Script Commands Visibility and Usability](./script-commands-visibility-and-usability.md) -- [Script Deep Dive](./script-deep-dive.md) -- [Common Orchestration Script Recipes](./common-orch-script-recipes.md) -- [CloudShell's OOB Orchestration](./cs-oob-orch/index.md) \ No newline at end of file diff --git a/versioned_docs/version-2023.3/devguide/develop-orch-scripts/script-commands-visibility-and-usability.md b/versioned_docs/version-2023.3/devguide/develop-orch-scripts/script-commands-visibility-and-usability.md deleted file mode 100644 index 20407d2dd2..0000000000 --- a/versioned_docs/version-2023.3/devguide/develop-orch-scripts/script-commands-visibility-and-usability.md +++ /dev/null @@ -1,102 +0,0 @@ ---- -sidebar_position: 3 ---- - -# Script Commands Visibility and Usability - -You can control many aspects of how the orchestration commands appear and behave in CloudShell by editing the script from the Scripts management page. - -To demonstrate these capabilities, we’ll create a simple script, which we’ll later customize. The script essentially prints out the parameters it receives and then sets the status of the sandbox to ‘Downloading’. - -1. Create a new Python file and name it `customization_test.py`. Add the following code: - - ```python - from cloudshell.workflow.orchestration.sandbox import Sandbox - import cloudshell.helpers.scripts.cloudshell_dev_helpers as dev_helpers - - - def print_parameters_values(sandbox): - """ - :param Sandbox sandbox: - :return: - """ - print sandbox.get_user_param('first_param') - print sandbox.get_user_param('second_param') - - def change_reservation_status_to_online(sandbox): - """ - :param Sandbox sandbox: - :return: - """ - sandbox.automation_api.SetReservationLiveStatus(sandbox.id, "Downloading") - - def main(): - dev_helpers.attach_to_cloudshell() - sandbox = Sandbox() - print_parameters_values(sandbox) - change_reservation_status_to_online(sandbox) - - if __name__ == "__main__": - main() - ``` - :::note - You can get the Sandbox id by using **sandbox.id**. The Sandbox name is also available via the **sandbox.name** property. - ::: - Since this script has imports, you’ll need a `requirements.txt` file and a *main.py* function. For details, see [Script Deep Dive](./script-deep-dive.md). - -2. In CloudShell Portal, open the **Manage** dashboard. - -3. Navigate to the *Scripts* sub section and select **Blueprint**. - - ![Scripts Management Page](/Images/Devguide-orchestration-scripts/Scripts-Getting-Started_624x376.png) - -4. Add the script into CloudShell by dragging the script into the **Scripts – Blueprint** page or add the `customization_test.py` script. - -5. To customize the script, click the **Edit** button. - - ![Scripts Management Page](/Images/Devguide-orchestration-scripts/Script-commands-Visibility_601x613.png) - - -## Setting display name, descriptions and category - -- You can set the script’s display name or alias by editing the **Alias** field in the edit form. Note that if you try to execute this script as a command from the API, you’ll still need to reference it by its name. - -- **Script Type** allows you to set the script as an orchestration script that CloudShell will run accordingly. - -- Use the **Type** field to select the python version of the script. When the script is executed, CloudShell will create a virtual environment using the selected Python version. - -- **Visibility** controls who can access this command in CloudShell. Options are **Everyone** or **Admin Only** - -- The **Description** is also easy to set via the edit form. Enter any text here, it will be displayed as a reference under the script name in the commands pane. This does not apply to orchestration scripts. - -- Categories help improve usability by grouping commands with a similar role or domain under a folder in the sandbox’s command pane. This grouping is for visual purposes only and does not affect API calls. For this example, let’s set the category name to ‘Customization’. - - -## Adding parameters - -Our script expects two parameters, but CloudShell has no way of knowing that. We need to add these parameters in this same form. - -1. Click the **Add Parameter** link at the bottom of the form. - -2. Set the **Name** as ‘first\_param’ and the **Default Value** as ‘None’. Note that if the command parameters don’t have default values, they will become mandatory and the user won’t be able to execute the command without filling in values for them. - -3. Then, enter a meaningful **Description**. - -4. Repeat the process, this time for the second param, which the script expects to be named "second\_param”. - - -## Test the new look and feel - -To test the script, we need to add it to a blueprint. - -1. In CloudShell Portal, click **Blueprints**. - -2. The **Blueprint Catalog** is displayed. - -3. Create a new blueprint or select an existing one. - -4. In the blueprint’s **Properties** page, associate the script with the blueprint. - -5. Reserve the blueprint and open the **Commands** pane in the sandbox. - - ![Scripts Management Page](/Images/Devguide-orchestration-scripts/Script-commands-Visibility_1_624x208.png) \ No newline at end of file diff --git a/versioned_docs/version-2023.3/devguide/develop-orch-scripts/script-deep-dive.md b/versioned_docs/version-2023.3/devguide/develop-orch-scripts/script-deep-dive.md deleted file mode 100644 index 1d2729aef1..0000000000 --- a/versioned_docs/version-2023.3/devguide/develop-orch-scripts/script-deep-dive.md +++ /dev/null @@ -1,184 +0,0 @@ ---- -sidebar_position: 4 ---- - -# Script Deep Dive - -In this section we’ll take a more in-depth view at scripts and learn how they can be used most effectively for CloudShell orchestration. - -## How CloudShell handles scripts - -CloudShell executes a Python script by creating a temporary virtual environment for the script’s execution, downloading all required packages from the script’s requirements.txt file and executing the script using the Execution Server python engine. - -To send information to the script, CloudShell sets environment variables in the scope of the script process. These environment variables include information about the sandbox reservation, as well as the script’s parameters. The script standard output is returned as the command result. If an exception is raised, or if a non-zero process result code is returned, the execution will be considered a failure. - -## Using requirements.txt with CloudShell orchestration scripts - -It’s now possible to attach a requirements.txt file to make sure your script will have all dependencies installed on the virtual environment before the script’s execution starts. For details about the *cloudshell-orch-core* package, see this [Getting Started with Orchestration Scripts](./getting-started-with-orch-scripts.md) section. - -**To use the requirements.txt:** - -- Archive this file with the orchestration script in one ZIP file. It will then be possible to upload this ZIP file to CloudShell using the CloudShell Portal. - - -## Using a main function and packaging multiple files - -As scripts become more complex, instead of structuring them as one big function, it is advisable to create a main function and separate the rest of the logic into different functions. Python requires some boilerplate code in addition to the main function to make this work. Here is an example code demonstrating how to use main functions with scripts: - -```python -from cloudshell.workflow.orchestration.sandbox import Sandbox -import os - - -def print_keys(): - for key in os.environ: - print key + " : " + os.environ[key] - -def print_app_names(sandbox): - """ - :param Sandbox sandbox: - :return: - """ - reservation_details = sandbox.automation_api.GetReservationDetails(sandbox.id).ReservationDescription - for app in reservation_details.Apps: - print app.Name - -def main(): - sandbox = Sandbox() - print_keys() - print_app_names(sandbox) - -if __name__ == "__main__": - main() -``` - -Depending on the complexity of the script, it may be wise to also separate the code into multiple files. To do that, we can take advantage of Python’s ability to support executing .zip archives containing multiple scripts. The only requirement is that one of the files is named `__main__.py`, which is how the entry point of the Python process is determined. - -## Setup and teardown scripts - -Setup and teardown are special types of orchestration scripts. There are two things that make them special: - -- They can’t have any inputs as they are launched automatically - -- New blueprints come with CloudShell's default Setup and Teardown scripts and default durations for each. - -**To set a script as a teardown or setup script:** - -1. In the **Scripts - Blueprint** management page, edit the script. - -2. From the script’s *Script Type* dropdown list, select *Setup* or *Teardown*, as appropriate. The script will take on that special behavior. Note that the script can only run as part of the sandbox Setup or Teardown process. In addition, you won’t be able to add any inputs to it. - - -## Getting the script’s Python version - -To get the script’s Python version (2.7.x/3.x), use the following: - -```python -import sys - -print ("You are using Python: " + str(sys.version_info[0])) -``` - -## Logging in orchestration scripts - -**To implement logging in your orchestration script:** - -- Use Sandbox.logger, which is based on the CloudShell standard logging format. The logger lists all the data that is needed for debugging the script, including the Sandbox id, function names, error level, time stamp and more. - - ```python - from cloudshell.workflow.orchestration.sandbox import Sandbox - - - Sandbox = Sandbox() - - resource_name = 'My_Resource' - - try: - Sandbox.automation_api.IncludeResource(resource_name) - - except: - Sandbox.logger.error('Failed to include resource {0}'.format(resource_name)) - ``` - - Orchestration script logs are saved on the execution server’s `%programdata%\QualiSystems\logs\` folder in a dedicated sub-folder with the reservation ID as the name. For example: - - ![Log Structure](/Images/Devguide-orchestration-scripts/Scripts-Deep-Dive_558x109.png) - - -## Debugging scripts - -CloudShell includes some helper functions to make it easier to debug a script by running it on real sandbox reservation data. The helper functions allow the script to be "attached” to a CloudShell sandbox, by filling in all of the script’s environment variables so that the same information is available to it as if it were launched by CloudShell. - -**To attach a script to a CloudShell sandbox:** - -1. Create a sandbox reservation. - -2. In the script’s project folder, create a Python script. We’ll use this script as our debugger. - -3. Paste the following code into the script: - - ```python - from cloudshell.helpers.scripts.cloudshell_dev_helpers import attach_to_cloudshell_as - - attach_to_cloudshell_as('CLOUDSHELL_USER', 'CLOUDSHELL_PWD', 'DOMAIN', 'RESERVATION_ID', 'SERVER_ADDRESS') - ``` - -4. To debug a specific function in your script, you will need to call the function from the debugger script. - - For example, calling the *connect\_layer1\_routes* function from a script called *Setup\_Script*: - - ```python - from cloudshell.helpers.scripts.cloudshell_dev_helpers import attach_to_cloudshell_as - - attach_to_cloudshell_as('admin', 'admin', 'Global', 'c425c01c-2cc6-4a3a-bb45-d357be6c294f', '192.168.42.125') - - from Setup_Script import connect_layer1_routes - - connect_layer1_routes() - ``` - -5. Set the relevant details and debug the new script. - - You can add additional functions to the script, from the same file or other ones in the project folder. - - As you write more complex orchestration scripts, you may want to separate the code to multiple files. To do that, we can take advantage of Python’s ability to support executing .zip archives containing multiple scripts. The only requirement, is that one of the files is named *`__main__.py`*, which is how the entry point of the Python process is determined. - - -## Referencing other packages - -1. Create a Sandbox reservation. - -2. Add the following code and fill in the required data for the function parameters. - - ```python - import cloudshell.helpers.scripts.cloudshell_dev_helpers as dev_helpers - - - dev_helpers.attach_to_cloudshell_as(user="CLOUDSHELL_USER", password="CLOUDSHELL_PWD", domain="DOMAIN", - reservation_id="RESERVATION_ID", server_address="ADDRESS", command_parameters={"NAME":"VALUE"}) - ``` - - -Note that if we include the above code in the example script we provided earlier, we’ll be able to run it locally as well as from the CloudShell Sandbox. The **attach\_to\_cloudshell\_as** function will populate all of the blueprint data as CloudShell would, so from the code’s perspective, it doesn’t make a different where it is being run from. Furthermore, the code will ignore the special **attach\_to\_cloudshell\_as** function if you run it from CloudShell so that there is no adverse effect to leaving the statement there. - -However, using this strategy will expose your CloudShell credentials in the code. To avoid this, we recommend you use a similar function which takes the same information from a file. Make sure to add that file to the .gitignore list so that it doesn’t get on source control. The following code will have the same effect as the lines above, but will look for the information in a JSON file named quali\_config.json, which should be in the project root. - -```python -import cloudshell.helpers.scripts.cloudshell_dev_helpers as dev_helpers - -dev_helpers.attach_to_cloudshell() -``` - -The `quali_config.json` should have the following structure: - -```javascript -{ - "user" : "USER", - "password" : "PASSWORD", - "domain" : "DOMAIN", - "server_address" : "SERVER_ADDRESS", - "cloudshell_api_port" :"CLOUDSHELL_API_PORT", - "reservation_id" : "reservation_id", - "command_parameters" : { "PARAM_NAME" : "PARAM_VALUE" } -} -``` diff --git a/versioned_docs/version-2023.3/devguide/developing-shells/_category_.json b/versioned_docs/version-2023.3/devguide/developing-shells/_category_.json deleted file mode 100644 index 052a2f174e..0000000000 --- a/versioned_docs/version-2023.3/devguide/developing-shells/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Developing Shells", - "position": 2 -} diff --git a/versioned_docs/version-2023.3/devguide/developing-shells/auto-discovery-for-inventory-shells.md b/versioned_docs/version-2023.3/devguide/developing-shells/auto-discovery-for-inventory-shells.md deleted file mode 100644 index f04e4d6a50..0000000000 --- a/versioned_docs/version-2023.3/devguide/developing-shells/auto-discovery-for-inventory-shells.md +++ /dev/null @@ -1,191 +0,0 @@ ---- -sidebar_position: 9 ---- - -# Auto-discovery for Inventory Shells - -Automated discovery makes it easy to import physical inventory devices into CloudShell by using automation to read their internal structure and attributes. - -## Inventory Shells in CloudShell - -Shells for physical devices are defined with a certain internal structure which can be found in their CloudShell Standard. For example, a basic physical resource can have Resource Port sub-resources, whereas a Switch can have blades and port channels according to the [Networking Shell Standard](https://github.com/QualiSystems/cloudshell-standards/blob/master/Documentation/networking_standard.md). - -## The Auto-discovery process - -Auto-discovery is triggered when creating resources for Shells that support it. When the administrator creates a resource in CloudShell Portal, CloudShell prompts the administrator to fill out mandatory attributes and then launches the Auto-discovery process, querying the physical device and describing its internal structure and attributes to CloudShell. - -**To implement the Auto-discovery process in a Shell:** - -1. Optionally update Auto-discovery attributes - -2. Implement the *get_inventory* function - -3. Add validations - -4. To test your code, create a resource with the template - - -### Update Auto-discovery in the shell-definition.yaml file - -The `shell-definition.yaml` file includes a basic Auto-discovery template. - -```css - capabilities: - auto_discovery_capability: - type: cloudshell.capabilities.AutoDiscovery - properties: - enable_auto_discovery: - type: boolean - default: true - auto_discovery_description: - type: string - default: - inventory_description: - type: string - default: -``` - -The Auto-discovery process is described as a TOSCA capability with the following properties. Feel free to optionally modify them. - -- **enable_auto_discovery** - This property defines whether the Auto-discovery process is automatically triggered when creating a new resource. - -- **auto_discovery_description** - This description is presented to the user before the Auto-discovery process begins. - -- **inventory_description** - This is the description of the Shell template. It is presented to the user when creating a new resource. - - -### Add mandatory attributes to the Auto-discovery process - -In many Auto-discovery implementations, we need to ask the administrator for information before communicating with the physical device, for example, to provide the administrator’s credentials. If we add custom attributes to the Auto-discovery definition of the Shell, CloudShell will prompt the administrator to fill out these attributes before running the discovery. This ensures that the information will be available for the discovery process to use. - -In the context of this example, we’ll add 3 properties to the Auto-discovery process: **User**, **Password** and **my_custom_attribute**. - -The **User** and **Password** attributes are defined in the standard, so we only need to add them to the *auto\_discovery\_capability* section. However, **my\_custom\_attribute** is a specific attribute that we want to add to this Shell, so we need to add the attribute to both the properties section and the *auto\_discovery\_capability* section. - -```css -vendor.ImplementingDiscovery: - derived_from: cloudshell.nodes.Switch - properties: - my_custom_attribute: - type: string # optional values: string, integer, float, boolean, cloudshell.datatypes.Password - capabilities: - auto_discovery_capability: - type: cloudshell.capabilities.AutoDiscovery - properties: - enable_auto_discovery: - type: boolean - default: true - auto_discovery_description: - type: string - default: Describe the auto discovery - inventory_description: - type: string - default: Describe the resource shell template - User: - type: string - Password: - type: cloudshell.datatypes.Password - my_custom_attribute: - type: string -``` - -For example: - -![](/Images/Devguide-shells/Auto-discovery-for-Inventory_624x471.png) - -### Implement the get\_inventory function - -The goal of the *get\_inventory* function in the Shell’s driver is to query the device and return a list of sub-resources and attribute values back to CloudShell. After querying the device, the function should return a specific result to CloudShell to allow creating the right resources. This process is called *discovery* in CloudShell Portal, and *autoload* in Resource Manager Client. - -**To implement the get\_inventory function:** - -1. Run the `shellfoundry generate` command to generate the Shell’s data model. For more information about the Shell’s data model, see [Managing the Shell’s Data Model](./managing-the-shell-data-mode.md). -2. Uncomment the following import in the shell's `driver.py` file: - - ```javascript - from data_model import * - ``` - - -This is an example of a *get\_inventory* implementation: - -[This Github Sample](https://github.com/QualiSystems/devguide_examples/blob/master/2nd%20gen%20shells%20-%20implementing_discovery/src/driver.py) is by [QualiSystems](https://github.com/QualiSystems) - -2nd%20gen%20shells%20-%20implementing\_discovery/src/driver.py [view](https://github.com/QualiSystems/devguide_examples/blob/master/2nd%20gen%20shells%20-%20implementing_discovery/src/driver.py) [raw](https://raw.githubusercontent.com/QualiSystems/devguide_examples/master/2nd%20gen%20shells%20-%20implementing_discovery/src/driver.py) - -```python -def get_inventory(self, context): - """ - Discovers the resource structure and attributes. - :param AutoLoadCommandContext context: the context the command runs on - :return Attribute and sub-resource information for the Shell resource you can return an AutoLoadDetails object - :rtype: AutoLoadDetails - """ - - resource = ImplementingDiscovery.create_from_context(context) - resource.vendor = 'specify the shell vendor' - resource.model = 'specify the shell model' - - chassis1 = GenericChassis('Chassis 1') - chassis1.model = 'WS-X4232-GB-RJ' - chassis1.serial_number = 'JAE053002JD' - resource.add_sub_resource('1', chassis1) - - module1 = GenericModule('Module 1') - module1.model = 'WS-X5561-GB-AB' - module1.serial_number = 'TGA053972JD' - chassis1.add_sub_resource('1', module1) - - port1 = GenericPort('Port 1') - port1.mac_address = 'fe80::e10c:f055:f7f1:bb7t16' - port1.ipv4_address = '192.168.10.7' - module1.add_sub_resource('1', port1) - - return resource.create_autoload_details() -``` - -This *get\_inventory* code creates an instance of the root resource by calling the *create\_from\_context* function. In this particular example, we’re autoloading the root’s sub-resources and their attributes, and populating the Vendor and Model attribute values on the root resource. - -Note that *get\_inventory* only creates the sub-resources and configures their attributes as the root resource already exists at this stage. Autoload can also update the attribute values on the root level. - -This sample creates *GenericChassis*, *GenericModule* and *GenericPort* resource models and uses the *add\_sub\_resource* function to build the resource hierarchy. - -**To create the port:** - -1. Create a new *GenericPort* instance. - -2. Provide a unique name for the port. - -3. Add it as a sub resource of a specific module: a. Call the *add\_sub\_resource* function on the module. b. Provide both the *relative\_address* of the port and the instance that represents the port. - - To return the information back to CloudShell, we need to use a specific data structure that represents the result of the discovery. The data structure is created automatically by calling the *create\_autoload\_details()* function. - - -### Add validations - -A common enhancement for discovery functions that greatly improves the usability of the Auto-discovery process is to validate the information provided by the administrator. For example, trying to log in with the address and credentials and reporting back any error, or checking the text for illegal characters. - -Any exceptions raised in the *get\_inventory* flow will display an error message to help the administrator correct their input and try again - -### Create a resource with the template - -To test the code, let’s create a resource based on the Shell template. - -**To create a resource with the template:** - -1. Import the Shell template using ShellFoundry. - -2. Open CloudShell Portal’s **Inventory** dashboard and click the **Add New** button. A dialog box is displayed, prompting you to select the template and enter a resource name. - -3. Select the **ImplementingDiscovery** template, enter a name for the resource, and click **Create**. - - The **Resource** dialog box is displayed. - - ![](/Images/Devguide-shells/Auto-discovery-for-Inventory_1_624x428.png) - -4. Enter the **Username** and **Password** and click **Start discovery**. The *get\_inventory* function creates the entire device structure and a system message pops up to indicate the discovery process completed successfully. - -5. To validate, enter the name of the new resource in the **Inventory** search field. You should see a list of sub-resources with the discovered attributes: - - ![](/Images/Devguide-shells/Auto-discovery-for-Inventory_2_624x195.png) - \ No newline at end of file diff --git a/versioned_docs/version-2023.3/devguide/developing-shells/commands-visibility-and-usability.md b/versioned_docs/version-2023.3/devguide/developing-shells/commands-visibility-and-usability.md deleted file mode 100644 index db098372ad..0000000000 --- a/versioned_docs/version-2023.3/devguide/developing-shells/commands-visibility-and-usability.md +++ /dev/null @@ -1,266 +0,0 @@ ---- -sidebar_position: 7 ---- - -# Commands Visibility and Usability - -The Shell driver commands are accessible to CloudShell users via the portal as well as to orchestration scripts running on the sandbox. In this section we’ll explore the different ways in which these commands can be customized in their appearance and behavior. The following customization options will be reviewed: - -- [Changing the shell’s Python version](#changing-the-shells-python-version) -- [Changing the function’s display name and description](#changing-the-functions-display-name-and-description) -- [Setting "admin only” functions](#setting-admin-only-functions) -- [Optional parameters and default values](#optional-parameters-and-default-values) -- [Restricting input to a specific set of possible values](#restricting-input-to-a-specific-set-of-possible-values) -- [Adding categories](#adding-categories) -- [Orchestration only commands (hidden commands)](#orchestration-only-commands-hidden-commands) - -If you haven’t done some already it is recommended to go through the [Getting Started with Shell Development](./getting-started.md) tutorial before continuing to get a better understanding of the overall process of creating and using a shell. We also assume you’ve gone through the steps described in the [Setting up the Development Environment](../setting-up-dev-env.md) section of this guide. - -## Setting up - -We’ll start by creating a new shell that we’ll use in this example. In the [Getting Started with Shell Development](./getting-started.md) tutorial we used the Shellfoundry CLI tool to generate a working shell to get started quickly. In this section we’ll also be using the Shellfoundry to create an example shell, only this time we’ll use a different project template. The *resource-clean* template is similar to the default template we’ve used previously only it doesn’t contain any example driver functions. This will make it easier for us to really go through the experience of starting from a clean slate. - -From the command line, navigate to a folder under which you’ll want the new shell to be created and type in the following: - -```python -shellfoundry new customization-example -cd customization_example -``` - -A new project with an empty driver is created. - -Let’s start by creating a function we can experiment on. Open the driver file. The file is named `driver.py` and is located in the `src` folder of the shell project. Add the following function to the shell driver class and save it: - -```python -def user_facing_function(self, context, some_parameter, some_other_parameter): - """ - :type context: cloudshell.shell.core.driver_context.ResourceCommandContext - :type some_parameter: str - :type some_other_parameter: str - """ - return "Thank you for calling this function." -``` - -We’ve now created a shell with a single command. Similar to the flow covered in the [Getting Started with Shell Development](./getting-started.md) tutorial, the next steps would be to create a resource instance of this shell in CloudShell and add it to a sandbox so we can experiment with it. You should refer to the [Getting Started with Shell Development](./getting-started.md) tutorial for any question on how to accomplish the three steps below: - -1. Install the shell by running the following from the shell directory: `shellfoundry install` - -2. Create a resource instance from the CloudShell inventory. - -3. Create a new sandbox and drag the resource instance into it. Open the **Commands** pane. - - -At this point the **Commands** pane should look something like this: - -![](/Images/Devguide-shells/Commands-Visibility-and-Usability_624x263.png) - -As you can see, we didn’t need to specify any additional details to get our Python functions to be visible as shell commands in the CloudShell sandbox, however the commands appear if a very ‘code’ like manner so our next step would be making them a bit more presentable. - -The information on how to display the driver functions in CloudShell is stored in the `drivermetadata.xml` file located in the driver's `/src` directory. - -## Changing the shell’s Python version - -To change the shell’s default Python version, open the `drivermetadata.xml` file and in the Driver line, add the `PythonVersion` property with the new version (2, 3). For example: - -```javascript - -``` -:::note -Shells without the `PythonVersion` property are considered Python 2. -::: -## Changing the function’s display name and description - -For the first round of customizations, we’ll work on the user facing function and improve the naming of the command and its parameters as they appear to the user in CloudShell. Open the `drivermetadata.xml` file and add the following text to it: - -```javascript - - - - - - -``` - -Each *Command* element in the xml above customizes a single Python function specified by the **Name** attribute. The **DisplayName** and **Description** attributes determines the name of the command as it appears to the user and the description appearing next to it, respectively. - -Reinstall the Shell in CloudShell by running the following command-line and check the **Resource Commands** panel again. - -```python -shellfoundry install -``` - -The shell commands should now look like this: - -![](/Images/Devguide-shells/Commands-Visibility-and-Usability_1_624x378.png) - -Please note that changing the display name of a function will affect only how its visually rendered in the UI. Code trying to execute this command using the CloudShell API will need to still refer to it by the command *name*. - -## Setting "admin only” functions - -It is also possible to set certain functions to only be accessible to admins. This is done using the **Visibility** attribute, which determines which user types can see the command in the blueprint or sandbox. Options are **AdminOnly** and **Everyone**. By default, all commands are accessible to everyone. - -In the `drivermetadata.xml` file, add the `Visibility="AdminOnly"` attribute to the command: - -```javascript - - - - - - -``` - -## Optional parameters and default values - -For each of the command parameters, we may want to specify whether that parameter is mandatory for the user to supply, and whether there should be a default value in case the user didn’t enter any value. - -In the following example, we will make the first parameter mandatory by setting the **Mandatory** attribute to **True**. Users will be required to enter a value for parameters before being able to run the command. The second parameter is optional but now has a default value which we will set using the **DefaultValue** attribute: - -```javascript - - - - - - - - - - - -``` - -Re-installing the shell will update the commands pane accordingly: - -![](/Images/Devguide-shells/Commands-Visibility-and-Usability_2_624x240.png) - -## Restricting input to a specific set of possible values - -For certain parameters, you might want the user to select between a pre-determined set of values, rather than leave the inputs as a free text entry. To set that up, you need to add that information to the parameter XML: - -```javascript - - - - - - - - - - - -``` - -In the xml above, we’ve specified that the second parameter must be selected out of a specific set of possible values. We did that by adding the **Type** attribute to the parameter element and setting it as *Lookup*. To define the possible values, we’ve added the **AllowedValues** attribute, which sets the possible values for this parameter, represented as a comma separated list. In this case, the possible values are **Yes** and **No**. We’ve also changed the default value to conform to the possible options. - -After re-installing the shell, the **Commands** pane now reflects the parameter new value restriction: - -![](/Images/Devguide-shells/Commands-Visibility-and-Usability_3_624x225.png) - -## Adding categories - -As you add more commands to the resource, it can be useful to visually group them into categories and improve the usability of the commands panel. These categories will appear as folders which the user can navigate. To demonstrate this capability, let’s first add additional commands to the shell. Open the `driver.py` file located in the `/src` directory and add the following two functions: - -```python -def backup(self, context): - """ - :type context: cloudshell.shell.core.driver_context.ResourceCommandContext - """ - return "Backing up..." - -def restore(self, context): - """ - :type context: cloudshell.shell.core.driver_context.ResourceCommandContext - """ - return "Restoring..." -``` - -Grouping together commands under a category is pretty strait forward: Simply add a *Category* element and nest the relevant commands under it. In this case, we’ve added a category called *Operate* for the previous operation we’ve implemented and a category named *Management* for the new save and restore functions: - -```javascript - - - - - - - - - - - - - - - - - - -``` - -After re-installing the shell we get the following command panel layout: - -![](/Images/Devguide-shells/Commands-Visibility-and-Usability_4_624x291.png) - -## Orchestration only commands (hidden commands) - -Sometimes, you may wish to create commands that are intended to be used as a part of an orchestration flow, for example to be called during setup, but want these commands to be inaccessible to users \[hidden\] from the UI. For example, a command that is called during a sandbox’s Setup process. To support this use case, CloudShell supports a special category, the *Hidden Commands* category, which allows you to omit commands from the web portal UI while allowing them to be invoked via the API. - -To demonstrate this capability, let’s first add a new function to our driver class in the `driver.py` file: - -```python -def api_only_function(self, context): - """ - :type context: cloudshell.shell.core.driver_context.ResourceCommandContext - """ - return "You didn't see this on the web interface..." -``` - -Next, let’s add the special category to the `drivermetadata.xml` file and nest that command under it: - -```javascript - - - - - - - - - - - - - - - - - - - - - -``` - -After re-installing the shell you’ll see the new function doesn’t appear in the **Commands** pane:  - -![](/Images/Devguide-shells/Commands-Visibility-and-Usability_5_624x436.png) - -Note that the **Visibility** attribute we discussed earlier in this article does not apply to commands in this category and will be ignored. - -However, if you query the list of commands on the shell via the API, you’ll be able to see it as well as invoke it: - -![](/Images/Devguide-shells/Commands-Visibility-and-Usability_6_624x160.png) - -## Summary - -In this section we reviewed different ways in which its possible to customize the appearance and behavior of commands and command parameters from the user’s perspective. If you have feedback or additional suggestions for features and improvements be sure to post them on our idea box. We’re always looking for new ideas! diff --git a/versioned_docs/version-2023.3/devguide/developing-shells/common-driver-recipes.md b/versioned_docs/version-2023.3/devguide/developing-shells/common-driver-recipes.md deleted file mode 100644 index 84a02d8ed4..0000000000 --- a/versioned_docs/version-2023.3/devguide/developing-shells/common-driver-recipes.md +++ /dev/null @@ -1,251 +0,0 @@ ---- -sidebar_position: 14 ---- - -# Common Driver Recipes - -In this section we’ll provide a few handy examples of common driver operations. - -The intention is to grow this into a good source to copy paste common code from. Most of the examples are available in the [DevGuide Examples](https://github.com/QualiSystems/devguide_examples) repository under the `common_driver_recipes` folder. - -## Decrypting a password attribute - -The password for logging into the device/app will be passed as an encrypted value to the driver as a part of the context object. In order to be able to use it to log in you’ll most likely need to decrypt it. To do that, you can use the CloudShellAPI function DecryptPassword. - -:::note -**DecryptPassword** is for decrypting password-type attributes, and can only be executed by CloudShell admins. -::: - -See the code below for an example: - -[This Github Sample](https://github.com/QualiSystems/devguide_examples/blob/driver_deep_dive/adding_examples/common_driver_recipes/src/driver.py) is by [QualiSystems](https://github.com/QualiSystems) - -`adding_examples/common_driver_recipes/src/driver.py` [view](https://github.com/QualiSystems/devguide_examples/blob/driver_deep_dive/adding_examples/common_driver_recipes/src/driver.py) [raw](https://raw.githubusercontent.com/QualiSystems/devguide_examples/driver_deep_dive/adding_examples/common_driver_recipes/src/driver.py) - -```python -def decrypt_password(self, context): - """ - A simple example function - :param ResourceCommandContext context: the context the command runs on - """ - session = CloudShellAPISession(host=context.connectivity.server_address, - token_id=context.connectivity.admin_auth_token, - domain=context.reservation.domain) - - password = session.DecryptPassword(context.resource.attributes['Password']).Value -``` - -Note that in Python 3 shells, you no longer need to decrypt passwords as this is done out of the box by the [cloudshell-shell-networking-standard](https://pypi.org/project/cloudshell-shell-networking-standard/) Python package. - -## Updating the resource live status - -The resource live status can be used to indicate the current state of the resource on the diagram. CloudShell comes with a pre-built collection of statuses you can use, and this collection of icons can also be extended if needed. - -The following code will update the resource live status from offline to online: - -[This Github Sample](https://github.com/QualiSystems/devguide_examples/blob/driver_deep_dive/adding_examples/common_driver_recipes/src/driver.py) is by [QualiSystems](https://github.com/QualiSystems) - -`adding_examples/common_driver_recipes/src/driver.py` [view](https://github.com/QualiSystems/devguide_examples/blob/driver_deep_dive/adding_examples/common_driver_recipes/src/driver.py) [raw](https://raw.githubusercontent.com/QualiSystems/devguide_examples/driver_deep_dive/adding_examples/common_driver_recipes/src/driver.py) - -```python -def update_resource_status(self, context): - """ - A simple example function - :param ResourceCommandContext context: the context the command runs on - """ - session = CloudShellAPISession(host=context.connectivity.server_address, - token_id=context.connectivity.admin_auth_token, - domain=context.reservation.domain) - - session.SetResourceLiveStatus(context.resource.name, "Offline" ) - for i in range(0,10): - session.SetResourceLiveStatus(context.resource.name, "Progress {status}".format(status=str(i*10))) - - session.SetResourceLiveStatus(context.resource.name, "Online" ) -``` - -The full list of statuses can be found in the ServerUniversalSettings.xml file which you can find on the Quali Server machine under the `%programdata%\QualiSystems\Settings\Global` directory: - -```xml - - C:\ProgramData\QualiSystems\Portal\Content\Images\online.png - C:\ProgramData\QualiSystems\Portal\Content\Images\online.png - C:\ProgramData\QualiSystems\Portal\Content\Images\offline.png - C:\ProgramData\QualiSystems\Portal\Content\Images\error.png - C:\ProgramData\QualiSystems\Portal\Content\Images\progress0.png - C:\ProgramData\QualiSystems\Portal\Content\Images\progress10.png - C:\ProgramData\QualiSystems\Portal\Content\Images\progress20.png - C:\ProgramData\QualiSystems\Portal\Content\Images\progress30.png - C:\ProgramData\QualiSystems\Portal\Content\Images\progress40.png - C:\ProgramData\QualiSystems\Portal\Content\Images\progress50.png - C:\ProgramData\QualiSystems\Portal\Content\Images\progress60.png - C:\ProgramData\QualiSystems\Portal\Content\Images\progress70.png - C:\ProgramData\QualiSystems\Portal\Content\Images\progress80.png - C:\ProgramData\QualiSystems\Portal\Content\Images\progress90.png - C:\ProgramData\QualiSystems\Portal\Content\Images\progress100.png - -``` - -## Sending a message to the sandbox console - -Another way to update the sandbox regarding an operation progress is to use the WriteMessageToReservationOutput function to display a message in the Sandbox console pane. We can easily modify the previous code to do that instead: - -[This Github Sample](https://github.com/QualiSystems/devguide_examples/blob/master/common_driver_recipes/src/driver.py) is by [QualiSystems](https://github.com/QualiSystems) - -`common_driver_recipes/src/driver.py` [view](https://github.com/QualiSystems/devguide_examples/blob/master/common_driver_recipes/src/driver.py) [raw](https://raw.githubusercontent.com/QualiSystems/devguide_examples/master/common_driver_recipes/src/driver.py) - -```python -def update_resource_status_to_console(self, context): - """ - A simple example function - :param ResourceCommandContext context: the context the command runs on - """ - session = CloudShellAPISession(host=context.connectivity.server_address, - token_id=context.connectivity.admin_auth_token, - domain=context.reservation.domain) - - session.WriteMessageToReservationOutput(context.reservation.reservation_id, "Starting operation") - for i in range(0, 10): - session.WriteMessageToReservationOutput(context.reservation.reservation_id, "Progress at {status}%".format(status=str(i * 10))) - - session.WriteMessageToReservationOutput(context.reservation.reservation_id, "Done - service online") -``` - -## Sending commands to a networking device - -When adding a new command that requires communication with a networking device, such as a switch or router, you need to open a session to the device. An easy way to do that is by leveraging Quali’s shell framework (cloudshell-cli package). The framework can provide a session from a session pool via Telnet, SSH or TCP, based on the configuration saved in the **CLI Connection Type** attribute on the root resource. - -See the code below for an example: - -[This Github Sample](https://github.com/QualiSystemsLab/Extended-Cisco-NXOS-Shell/blob/master/Ext_Cisco_NXOS_Shell_Package/Resource%20Drivers%20-%20Python/Generic%20Cisco%20NXOS%20Driver%20Version3%20Extended/cisco_nxos_resource_driver.py) is by [QualiSystemsLab](https://github.com/QualiSystemsLab) - -`cisco_nxos_resource_driver.py` [view](https://github.com/QualiSystemsLab/Extended-Cisco-NXOS-Shell/blob/master/Ext_Cisco_NXOS_Shell_Package/Resource%20Drivers%20-%20Python/Generic%20Cisco%20NXOS%20Driver%20Version3%20Extended/cisco_nxos_resource_driver.py) [raw](https://raw.githubusercontent.com/QualiSystemsLab/Extended-Cisco-NXOS-Shell/master/Ext_Cisco_NXOS_Shell_Package/Resource%20Drivers%20-%20Python/Generic%20Cisco%20NXOS%20Driver%20Version3%20Extended/cisco_nxos_resource_driver.py) - -```python -def some_command(self, context, command) - logger = get_logger_with_thread_id(context) - api = get_api(context) - resource_config = create_networking_resource_from_context(shell_name=self.SHELL_NAME, - supported_os=self.SUPPORTED_OS, - context=context) - cli_handler = CliHandler(self._cli, resource_config, logger, api) - with cli_handler.get_cli_service(cli_handler.enable_mode) as session: - session.send_command("some command") - with session.enter_mode(cli_handler.config_mode) as config_session: - config_session.send_command("some config command") -``` - -## Mapping connections using App sub-resources - -Developers can map connections between sub-resources residing on deployed Apps. This applies to scenarios where you want to map the port connections between virtual devices residing in App VMs. For example, to map the connection between port 1 residing on a virtual switch and port 2 residing on another virtual switch. For details, see [Mapping Connections using App Sub-resources](../reference/map-connections-using-app-sub-resources.md). - -## Defining a connected command (which runs on another resource) - -In some scenarios, a command that runs on a specific resource logically requires the use of a different resource. These types of commands are called connected commands. They are executed on a resource in CloudShell Portal but in reality run on the connected resource (for example, a power switch) that performs the action. - -There are two types of connected commands: - -- **Power commands**: Let’s say you have a target resource that is controlled by a power switch (PDU). When you run a **Power On** command on the target resource, the user may think the command is running on that resource but it actually runs on the PDU that is connected to the resource. - -- **Generic resource commands**: A remote command is similar to a power command but is not limited to power commands only. For example, you could have a command, which modifies a target resource’s settings, but is actually running on the server that performs the modifications. - - -To create a connected command, you need to use a shell based on a standard that supports connected commands, currently, only [PDU](https://github.com/QualiSystems/cloudshell-standards/blob/master/Documentation/pdu_standard.md) for power commands and the [Generic Resource with Connected Commands](https://github.com/QualiSystems/cloudshell-standards/blob/master/Documentation/Generic%20Resource%20with%20Connected%20Commands.md). These commands need to be defined in two places, in the drivermetadata.xml and in the driver.py file. - -In the driver’s drivermetadata.xml, you define which commands are connected, as follows: - -- For power commands, the command must include the Tags="power" flag and the driver must include all three power commands (Power On, Power Off and Power Cycle): - - ```xml - - - - - - - - - - - - - - - - - - ``` - -- For generic connected commands, you must use a shell that is based on a supporting standard and include the Tags="remote\_connectivity" flag on the command: - - ```xml - - - - - - - - - - - - - ``` - - -And finally, in the `driver.py` file, define the connected commands. In this case, PowerOn, PowerOff and PowerCycle: - -```python -def PowerOn(self, context, ports): - """ - :type context: cloudshell.shell.core.driver_context.ResourceRemoteCommandContext - """ - Pass -``` - -To enable intellisense, on the `driver.py`, include the ResourceRemoteCommandContext context in the command’s definition, as shown above. - -:::note Notes -- Connected command definitions must include a ports parameter. You don’t need to actually use it in your command. Just make sure it’s included as it allows the connected command to run on multiple resources at the same time. -- Power commands only apply to unshared resources while generic resource commands can run on both shared and unshared resources. -- In CloudShell, the resource containing the connected command and the target resource must be directly connected to each other. If you have a switch resource in between, the connected command will not show on the target resource. -- You can use the CloudShell Automation API’s ExecuteResourceConnectedCommand and "power management” commands to add connected commands to other shells. -::: - -### Example - power commands on a PDU shell: - -**SetPortState** should be a driver helper function that implements the specific logic of how to change the state of the power port state in a specific PDU. - -```python -import cloudshell.api.cloudshell_api as api - - -def PowerOn(self, context, ports): - """ - :type context: drivercontext.ResourceRemoteCommandContext - """ - api = self.__initApiSession__(context) - output = '' - for i in range(len(ports)): - self.SetPortState(context, ports[i].split('/')[-1], "Online") # Split the port number from its full address - api.SetResourceLiveStatus(context.remote_endpoints[i].fullname, "Online", "The Resource is powered on") - output += "Powered On {0}\n".format(context.remote_endpoints[i].fullname) - return output - -def PowerOff(self, context, ports): - api = self.__initApiSession__(context) - output = '' - for i in range(len(ports)): - self.SetPortState(context, ports[i].split('/')[-1], "Offline") # Split the port number from its full address - api.SetResourceLiveStatus(context.remote_endpoints[i].fullname, "Offline", "The Resource is powered off") - output += "Powered Off {0}\n".format(context.remote_endpoints[i].fullname) - return output - -def PowerCycle(self, context, ports, delay): - self.PowerOff(context, ports) - sleep(int(delay)) - self.PowerOn(context, ports) -``` - -For reference, see the [PDU shell template](https://github.com/QualiSystems/shellfoundry-tosca-pdu-template) or [Generic resource with connected commands shell template](https://github.com/QualiSystems/shellfoundry-tosca-resource_with_connected_commands-template). diff --git a/versioned_docs/version-2023.3/devguide/developing-shells/customize-shells.md b/versioned_docs/version-2023.3/devguide/developing-shells/customize-shells.md deleted file mode 100644 index 6a96e1ad46..0000000000 --- a/versioned_docs/version-2023.3/devguide/developing-shells/customize-shells.md +++ /dev/null @@ -1,447 +0,0 @@ ---- -sidebar_position: 12 ---- - -# Customizing Shells - -In this section, we’ll learn how to create and modify a shell’s commands and attributes. - -This article addresses two flows: - -- Modifying an existing shell - -- Creating a new shell with modifications to the standard - - -*At the end of this article, you can find an end-to-end example of how to extend an existing shell with attributes and commands.* - -Modifying an existing shell is done using the `shellfoundry extend` command. This command downloads the source code of the shell you wish to modify to your local machine and updates the shell’s Author. Note that extending official shells (shells that were released by Quali) will remove their official tag. Keep in mind that modifying a shell that is being used in CloudShell may affect any inventory resources that are based on a previous version of the shell. In the second flow, since we’re creating a new shell from the appropriate shell standard, we will use the `shellfoundry new` command and modify the shell’s settings. - -The common use cases for customizing a shell are: - -- Adding new commands - -- Modifying existing commands - -- Adding new attributes - -- Modifying existing attributes - -- Publishing attributes in a service shell - -- Associating categories to a service shell - - -*Please watch this video if you’re not sure whether to create a new shell or customize an existing one:* - - - -## Customizing a shell’s commands - -When customizing an official shell you can add new commands, and also modify or hide existing ones. - -**To add a new command:** - -- Add the command in the shell’s `driver.py` file, and expose the command in the shell’s `drivermetadata.xml` file. - - -The command’s logic should be placed either in the driver itself or in a separate Python package. - -Modifications to a command can include adding some logic either before or after the command or changing the command logic itself. In order to do that, **copy the command code** from the original Quali Python package to the shell driver or to the custom Python package you created (*the command logic resides either in the vendor package or vendor-os package - for example in "cloudshell-cisco” or "cloudshell-cisco-ios”*). - -When modifying an existing command, you can add optional input parameters. Just make sure that the implementation is backwards compatible. Note that adding mandatory inputs or removing one of the original inputs is not supported. In these cases, it is recommended to create an additional command with a different name, instead of modifying an existing one. - -For example, in this customized [Cisco NXOS shell](https://github.com/QualiSystemsLab/Extended-Cisco-NXOS-Shell), we modified the commands that configure VLANs on multiple ports and port channels. - -It is also possible to hide or remove a command. Hiding a command is done by placing it in a hidden or "admin” category in the `drivermetadata.xml` - see [Commands Visibility and Usability](./commands-visibility-and-usability.md). Note that removing a command might affect how the shell is used since CloudShell and/or some orchestration scripts might depend on the existing driver’s commands. - -When adding or modifying a command, you can leverage Quali’s shell framework to ease the development process. For details, see [Quali’s Shell Framework (Python 2)](../reference/quali-shell-framework-py2.md) and [Quali’s Shell Framework (Python 3)](../reference/quali-shell-framework-py3.md). - -See some common command extension examples in [Common Driver Recipes](./common-driver-recipes.md). - -Please check out the following instructional videos on how to develop basic driver commands: - - - - - - - -## Customizing a shell’s attributes - -You can add and modify attributes associated with the shell’s root model or with a specific sub-model within the shell. - -Modification applies to attributes that are defined in the shell’s standard. To find the attributes defined in the shell’s standard, see the [documentation page](https://github.com/QualiSystems/cloudshell-standards/tree/master/Documentation) of your shell’s standard. For such attributes, you can modify the description, default values, possible values and rules. -:::note -You cannot modify an attribute's **type** and **name**, nor any attributes that are associated with the shell’s family as this will affect other shells that use this family. -::: -### Deployment-specific vs. shell-specific attributes - -CloudShell provides two ways to customize attributes, which differ depending on the attribute’s usage: - -- **Customizing an existing shell**: Use this option when the attributes are related to a specific device but are not relevant to other shells. This is done by manually editing the shell’s *shell-definition.yaml* file. - -- **Associating custom attributes with a shell that is installed in CloudShell**: Use this option when the additional attributes are deployment-related and relevant to multiple resources of different shells. For example, the Execution Server Selector attribute. *Starting with CloudShell version 8.3, this option applies both to the root model of the shell and to the shell’s sub-resource models, such as blades and ports.* - - -The second option of associating custom attributes with an already installed shell is done either via CloudShell Portal or by calling the *SetCustomShellAttribute* API method. For additional information on this method, see [Deploying to Production](./deploy-to-prod.md). - -
    -Deleting a 2nd Gen shell’s default attributes (those that come with the standard) is not supported. It is also not possible to customize a 2nd Gen shell’s data model (families and models) and its structure, which is as defined in the shell standard the original shell is based on. -
    - -### Adding or modifying attributes in a shell’s root or sub-model - -This section explains how to add attributes to the shell’s root model and to specific models within the shell. To learn how to expose attributes that are required for the discovery of the resource (in the **Inventory** dashboard’s **Resource** discovery dialog box), see [Auto-discovery for Inventory Shells](./auto-discovery-for-inventory-shells.md). - -**To add/modify a shell’s attributes:** - -1. Open command-line. - -2. To customize a shell that resides on your local machine, make sure command-line is pointing to a different path from the original shell’s root folder. - -3. Run the appropriate command in command-line: - - **To modify a shell:** - - ```python - shellfoundry extend - ``` - - The path can be a URL to the source code of the shell’s desired release in [Quali Repositories](https://github.com/orgs/QualiSystems/discussions/categories/integrations) or the filesystem path (prefixed by local:) to the extracted source code folder (like "local:C:\\temp\\Cisco-NXOS-Switch-Shell-2G-2.0.1”). - - **To create a new shell based on a specific shell standard:** - - ```python - shellfoundry new --template