Files

What is a shell?

A Shell enables CloudShell users to interact with different sandbox elements, like physical devices and virtual appliances. A Shell models the sandbox element in CloudShell and provides commands that CloudShell users and automation processes can run on it, like Power On and Health Check. Each 2nd Gen Shell is modeled after a CloudShell standard, from which the shell inherits its default settings, attributes and driver.

On the Quali Community portal: https://community.quali.com/ , you can find both officially released shells and shells developed in the developer community. If you find a shell that fits your needs, you can use it as is, or, you can customize its settings and automatio. If you cant find the shell youre looking for, you can create a new one from scratch using one of the shell standard templates available and contribute it to the community for others to use it as well.

Historically, Quali has had two types of shells in CloudShell, 1st Generation shells and 2nd Generation shells. While 1st Gen shells are still used, all new shells are released only as 2nd Generation shells and this developer guide focuses on this type of shells.

Folder structure of a shell

The shell folder may comprise of some or all of the following in general:

  • The dist folder: Contains the Shell package that is created by running the shellfoundry install or shellfoundry pack commands.

  • The docs and tests folders: Placeholders to place Shell documentation and Shell tests. Some tests are already automatically generated in the tests folder.

  • The src folder: Contains the Shells Python driver source files:

  • driver.py: The main driver file. This file contains the functions that will be published as CloudShell commands. By default, the driver.py file contains a single Python class named Driver. Youll see that it already contains some functions.

  • drivermetadata.xml: Contains metadata related to the display and behavior of the driver functions as CloudShell commands.

  • requirements.txt: A pip requirements file used for setting up the drivers virtual environment . Any dependency of the Shell driver needs to be in this file.

  • TOSCA-Metadata folder: Contains a TOSCA standard file. Its content is filled out by Quali and requires no additional updates on your part.

  • .gitignore.txt file: Standard Git repository file that specifies files which are not managed by source control.

  • deployment.xml file: Contains the debugging specifications. For more information, see Debugging Shell Driver Commands.

  • shell-definition.yaml file: Contains the information needed for importing the Shells data model, which defines how the Shell resources are presented in CloudShell. This file is automatically generated by ShellFoundry according to the selected ShellFoundry template.

  • shell-icon.png file: Default icon that will appear for the Shell in CloudShell Portal.

  • test_requirements.txt file: Contains all Python requirements for running the Shells tests.