{"id":20237530,"url":"https://github.com/qualisystems/teravm-virtual-chassis-shell-2g","last_synced_at":"2026-05-12T09:38:03.366Z","repository":{"id":145182166,"uuid":"171480784","full_name":"QualiSystems/TeraVM-Virtual-Chassis-Shell-2G","owner":"QualiSystems","description":null,"archived":false,"fork":false,"pushed_at":"2020-10-28T10:50:42.000Z","size":546,"stargazers_count":0,"open_issues_count":0,"forks_count":2,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-01-14T01:11:40.258Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/QualiSystems.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-02-19T13:42:29.000Z","updated_at":"2020-10-14T08:42:00.000Z","dependencies_parsed_at":null,"dependency_job_id":"590ad276-fb31-4913-9164-457452d2f615","html_url":"https://github.com/QualiSystems/TeraVM-Virtual-Chassis-Shell-2G","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QualiSystems%2FTeraVM-Virtual-Chassis-Shell-2G","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QualiSystems%2FTeraVM-Virtual-Chassis-Shell-2G/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QualiSystems%2FTeraVM-Virtual-Chassis-Shell-2G/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/QualiSystems%2FTeraVM-Virtual-Chassis-Shell-2G/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/QualiSystems","download_url":"https://codeload.github.com/QualiSystems/TeraVM-Virtual-Chassis-Shell-2G/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241682011,"owners_count":20002426,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-14T08:27:21.514Z","updated_at":"2026-05-12T09:38:03.314Z","avatar_url":"https://github.com/QualiSystems.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![](https://github.com/QualiSystems/cloudshell-shells-documentaion-templates/blob/master/cloudshell_logo.png)\n\n# **TeraVM Virtual 2G Shells**  \n\nRelease date: March 2019\n\nShell version: 1.1.0\n\nDocument version: 1.0\n\n# In This Guide\n\n* [Overview](#overview)\n* [Downloading the Shell](#downloading-the-shell)\n* [Importing and Configuring the Shell](#importing-and-configuring-the-shell)\n* [Updating Python Dependencies for Shells](#updating-python-dependencies-for-shells)\n* [Typical Workflows](#typical-workflows)\n* [References](#references)\n* [Release Notes](#release-notes)\n\n\n# Overview\nA shell integrates a device model, application or other technology with CloudShell. A shell consists of a data model that defines how the device and its properties are modeled in CloudShell, along with automation that enables interaction with the device via CloudShell.\n\n### Traffic Generator Shells\nCloudShell's traffic generator shells enable you to conduct traffic test activities on Devices Under Test (DUT) or Systems Under Test (SUT) from a sandbox. In CloudShell, a traffic generator is typically modeled using a chassis resource, which represents the traffic generator device and ports, and a controller service that runs the chassis commands, such as Load Configuration File, Start Traffic and Get Statistics. Chassis and controllers are modeled by different shells, allowing you to accurately model your real-life architecture. For example, scenarios where the chassis and controller are located on different machines.\n\nFor additional information on traffic generator shell architecture, and setting up and using a traffic generator in CloudShell, see the [Traffic Generators Overiew](http://help.quali.com/Online%20Help/9.0/Portal/Content/CSP/LAB-MNG/Trffc-Gens.htm?Highlight=traffic%20generator%20overview) online help topic.\n\n### **TeraVM Virtual 2G Shells**\nTeraVM virtual devices are modeled using several shells in CloudShell, providing you with connectivity and management capabilities such as device structure discovery and power management. \n\nFor more information see the official **TeraVM** product documentation.\n\nTo model a TeraVM virtual device in CloudShell, use the following shells: \n\n▪ [TeraVM Virtual Chassis Shell 2G](https://community.quali.com/repos/3401/cloudshell-teravm-vchassis-shell-1), which provides connectivity and management capabilities, such as device structure discovery and power management for the TeraVM Virtual Chassis.\n\n▪ [TeraVM Controller Shell 2G (Service)](https://community.quali.com/repos/4365/teravm-controller-2-gen-shell), which provides automation commands to run on the Virtual Chassis, such as Load Test Configuration, Start Traffic, Get Statistics.\n\n▪ [TeraVM Virtual Blade Shell 2G](https://community.quali.com/repos/3403/cloudshell-teravm-vblade-shell), which provides connectivity and management capabilities such as device structure discovery and power management for the CloudShell TeraVM Virtual Blade.\n\n### Standard version\nThe TeraVM Virtual 2G shells are based on the Traffic Generator Chassis Standard 1.0.0.\n\nFor detailed information about the shell’s structure and attributes, see the [Traffic Shell standard](https://github.com/QualiSystems/shell-traffic-standard/blob/master/spec/traffic_standard.md) in GitHub.\n\n### Requirements\n\nRelease: **TeraVM Virtual 2G Shells**\n\n▪ TeraVM versions: 14.1 and above\n\n▪ CloudShell version: 8.0 Patch 8, 8.2 Patch 1, 8.3 and above\n\n### Data Model\n\nThe shell's data models include all shell metadata, families, and attributes.\n\n#### **TeraVM Virtual Chassis Families and Models**\n\nThe families and models of the vChassis are listed in the following table:\n\n|Family|Model|Description|\n|:---|:---|:---|\n|CS_VirtualTrafficGeneratorChassis|TeraVM Virtual Chassis|TeraVM Deployed Controller|\n|CS_VirtualTrafficGeneratorModule|TeraVM Virtual Blade|TeraVM Deployed Module|\n|CS_VirtualTrafficGeneratorPort|TeraVM Virtual Blade.VirtualTrafficGeneratorPort|Port on the Deployed TeraVM Module|\n\n#### **TeraVM Virtual Chassis Attributes**\n\nThe attributes of the Virtual Chassis are listed in the following table:\n\n|Attribute|Type|Description|\n|:---|:---|:---|\n|License Server|String|IP address or hostname of the License Server|\n|Executive Server|String|IP address or hostname of the Executive Server|\n|TVM Comms Network|String|TeraVM Comms Network name in vCenter|\n|TVM MGMT Network|String|TeraVM Management Network name in vCenter|\n|Password|Password|CLI password for the Deployed TeraVM Controller|\n|User|String|CLI username for the Deployed TeraVM Controller|\n|API Password|Password|API password for the Deployed TeraVM Controller|\n|API User|String|API username for the Deployed TeraVM Controller|\n\n#### **TeraVM Virtual Blade Attributes**\n\nThe attributes of the Virtual Blade are listed in the following table:\n\n|Attribute|Type|Description|\n|:---|:---|:---|\n|TVM Comms Network|String|TeraVM Comms Network name in vCenter|\n|TVM MGMT Network|String|TeraVM Management Network name in vCenter|\n\n#### **TeraVM Virtual Port Attributes**\n\nThe attributes of the ports are listed in the following table:\n\n|Attribute|Type|Description|\n|:---|:---|:---|\n|Logical Name|String|The port's logical name in the test configuration|\n|Requested vNIC|String|vNIC number from vCenter|\n|MAC Address|String|Port's MAC address|\n\n### Automation\nThis section describes the automation (drivers) associated with the data model. The shell’s driver is provided as part of the shell package. There are two types of automation processes, Autoload and Resource. Autoload is executed when creating the resource in the **Inventory** dashboard, while resource commands are run in the sandbox.\n\nFor Traffic Generator shells, commands are configured and executed from the controller service in the sandbox, with the exception of the Autoload command, which is executed when creating the resource.\n\n|Command|Description|\n|:-----|:-----|\n|Autoload|Creates the device structure, its hierarchy and attributes when deploying the App. The command can be rerun in the Inventory dashboard and not in the sandbox.|\n\n#### TeraVM Controller Shell\n\n|Command|Description|\n|:-----|:-----|\n|Load Configuration|Loads the configuration file and reserves necessary ports.\u003cbr\u003e* **TeraVM config file** (String) (Mandatory): The configuration file name. \u003cbr\u003ePath should include the protocol type, for example *tftp://10.10.10.10/asdf*.\u003cbr\u003e* **Use ports from reservation** (Enum): Possible values: **True** or **False**. \u003cbr\u003eUpdates the configuration file with ports from the current reservation based on their **Logical Name** attributes.\n|Start Test|Starts traffic test.|\n|Stop Test|Stops traffic test.|\n|Get Statistics|Gets the test result file and attaches it to the reservation.|\n\n# Downloading the Shell\nThe **TeraVM Virtual 2G** shells are available from the [Quali Community Integrations](https://community.quali.com/integrations) page. \n\nDownload the files into a temporary location on your local machine. \n\nThe shell comprises:\n\n|File name|Description|\n|:---|:---|\n|TeravmControllerShell2G.zip|TeraVM Controller 2G shell package|\n|TeraVM.Virtual.Chassis.zip|TeraVM Virtual Chassis 2G shell package|\n|TeraVM.Virtual.Blade.zip|TeraVM Virtual Blade 2G shell package|\n|teravm-offline-dependencies-1.0.0.zip|Shell Python dependencies (for offline deployments only)|\n|TeraVM.Sandbox.Setup.1.1.0.zip|CloudShell Reservation Setup script|\n\n# Importing and Configuring the Shell\nThis section describes how to import the TeraVM Virtual shells and configure and modify the shell’s devices. \n\n### Importing the shells into CloudShell\n\n**Note**: You will need to repeat these procedures, for the controller shell, the vChassis shell, and the vBlade shell.\n\n**To import the shell into CloudShell:**\n  1. Make sure you have the shell’s zip package. If not, download the shell from the [Quali Community's Integrations](https://community.quali.com/integrations) page.\n  \n  2. Backup your database.\n  \n  3. Log in to CloudShell Portal as administrator and access the relevant domain.\n  \n  4. In the user menu select **Import Package**.\n  \n     ![](https://github.com/QualiSystems/cloudshell-shells-documentaion-templates/blob/master/import_package.png)\n     \n  5. Browse to the location of the downloaded shell file, select the relevant *.zip* file and Click **Open**. Alternatively, drag the shell’s .zip file into CloudShell Portal.\n  \n  6. Import the rest of the shells by repeating steps 4 and 5.\u003cbr\u003e\u003cbr\u003eThe TeraVM Controller shell is displayed in the **App/Service\u003eApplications** section of your blueprint, and can be used to run custom code and automation processes in the sandbox. For more information, see [Services Overview](http://help.quali.com/Online%20Help/9.0/Portal/Content/CSP/LAB-MNG/Services.htm?Highlight=services).\u003cbr\u003e\u003cbr\u003eYou can now use the vBlade and vChassis shells to create Apps that, once deployed in a sandbox, will spin up VMs that model a TeraVM traffic generator. See [Configuring a new App](#configuring-a-new-app). For more information, see [Apps Overview](http://help.quali.com/Online%20Help/9.0/Portal/Content/CSP/LAB-MNG/Apps.htm?Highlight=applications). \n\n### Offline installation of a shell\n\n**Note:** Offline installation instructions are relevant only if CloudShell Execution Server has no access to PyPi. You can skip this section if your execution server has access to PyPi. For additional information, see the online help topic on offline dependencies.\n\nIn offline mode, import the shell into CloudShell and place any dependencies in the appropriate dependencies folder. The dependencies folder may differ, depending on the CloudShell version you are using:\n\n* For CloudShell version 8.3 and above, see [Adding Shell and script packages to the local PyPi Server repository](#adding-shell-and-script-packages-to-the-local-pypi-server-repository).\n\n* For CloudShell version 8.2, perform the appropriate procedure: [Adding Shell and script packages to the local PyPi Server repository](#adding-shell-and-script-packages-to-the-local-pypi-server-repository) or [Setting the python pythonOfflineRepositoryPath configuration key](#setting-the-python-pythonofflinerepositorypath-configuration-key).\n\n### Adding shell and script packages to the local PyPi Server repository\nIf your Quali Server and/or execution servers work offline, you will need to copy all required Python packages, including the out-of-the-box ones, to the PyPi Server's repository on the Quali Server computer (by default *C:\\Program Files (x86)\\QualiSystems\\CloudShell\\Server\\Config\\Pypi Server Repository*).\n\nFor more information, see [Configuring CloudShell to Execute Python Commands in Offline Mode](http://help.quali.com/Online%20Help/9.0/Portal/Content/Admn/Cnfgr-Pyth-Env-Wrk-Offln.htm?Highlight=Configuring%20CloudShell%20to%20Execute%20Python%20Commands%20in%20Offline%20Mode).\n\n**To add Python packages to the local PyPi Server repository:**\n  1. If you haven't created and configured the local PyPi Server repository to work with the execution server, perform the steps in [Add Python packages to the local PyPi Server repository (offlinemode)](http://help.quali.com/Online%20Help/9.0/Portal/Content/Admn/Cnfgr-Pyth-Env-Wrk-Offln.htm?Highlight=offline%20dependencies#Add). \n  \n  2. For each shell or script you add into CloudShell, do one of the following (from an online computer):\n      * Connect to the Internet and download each dependency specified in the *requirements.txt* file with the following command: \n`pip download -r requirements.txt`. \n     The shell or script's requirements are downloaded as zip files.\n\n      * In the [Quali Community's Integrations](https://community.quali.com/integrations) page, 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.\n\n3. Place these zip files in the local PyPi Server repository.\n \n### Setting the python PythonOfflineRepositoryPath configuration key\nBefore PyPi Server was introduced as CloudShell’s python package management mechanism, the `PythonOfflineRepositoryPath` key was used to set the default offline package repository on the Quali Server machine, and could be used on specific Execution Server machines to set a different folder. \n\n**To set the offline python repository:**\n1. Download the *teravm-offline-dependencies-1.0.0* file, see [Downloading the Shell](#downloading-the-shell).\n\n2. Unzip it to a local repository. Make sure the execution server has access to this folder. \n\n3.  On the Quali Server machine, in the *~\\CloudShell\\Server\\customer.config* file, add the following key to specify the path to the default python package folder (for all Execution Servers):  \n\t`\u003cadd key=\"PythonOfflineRepositoryPath\" value=\"repository \nfull path\"/\u003e`\n\n4. If you want to override the default folder for a specific Execution Server, on the Execution Server machine, in the *~TestShell\\Execution Server\\customer.config* file, add the following key:  \n\t`\u003cadd key=\"PythonOfflineRepositoryPath\" value=\"repository \nfull path\"/\u003e`\n\n5. Restart the Execution Server.\n\n### Configuring a new App\n\n#### Configuring a new App based on the TeraVM Virtual Blade shell\n\nThis section explains how to create an App template for the TeraVM Virtual Blade shell (Module).\n\n1. In CloudShell Portal, as Global administrator, open the **Manage – Apps** page.\n\n2. Click **Add**.\n\n3. Select **vCenter VM from Template**. \u003cbr\u003eNote that CloudShell only supports vCenter as a Cloud Provider, however, you may use any of the available deployment options.\n\n4. Enter the **Name** of the App and click **Create**.\n\n5. In the **Deployment Paths** tab, select the **Cloud Provider** and enter the **vCenter Template** to be used in VM creation. It should include the full path and template name, for example *QualiFolder/Template*. \n\n\t![](https://github.com/QualiSystems/TeraVM-Virtual-Blade-Shell-2G/blob/master/docs/images/teravm_module_app_deployment.png)\n\n6. In the **App Resource** tab, select the **TeraVM Virtual Blade** shell and specify all required configuration attributes for this shell, see [TeraVM Virtual Blade Attributes](#teravm-virtual-blade-attributes).\n\n\t![](https://github.com/QualiSystems/TeraVM-Virtual-Blade-Shell-2G/blob/master/docs/images/teravm_module_app_resource.png)\n\n7. Click **Done**.\n\n#### Configuring a new App based on the TeraVM Virtual Chassis shell\n\nThis section explains how to create an App template for the TeraVM Virtual Chassis shell.\n\n1. In CloudShell Portal, as Global administrator, open the **Manage – Apps** page.\n\n2. Click **Add**.\n\n3. Select **vCenter VM from Template**. \u003cbr\u003eNote that CloudShell only supports vCenter as a Cloud Provider, however, you may use any of the available deployment options.\n\n4. Enter the **Name** of the App and click **Create**.\n\n5. In the **Deployment Paths** tab, select the **Cloud Provider** and enter the **vCenter Template** to be used in VM creation. It should include the full path and template name, for example *QualiFolder/Template*. \n\n\t![](https://github.com/QualiSystems/TeraVM-Virtual-Chassis-Shell-2G/blob/master/docs/images/teravm_chassis_app_deployment.png)\n\n6. In the **App Resource** tab, select the **TeraVM Virtual Chassis** shell and specify all required configuration attributes for this shell, see [TeraVM Virtual Chassis Attributes](#teravm-virtual-chassis-attributes).\n\t\n\t![](https://github.com/QualiSystems/TeraVM-Virtual-Chassis-Shell-2G/blob/master/docs/images/teravm_chassis_app_resource.png)\n\t\n7. Click **Done**.\n\n### Configuring the TeraVM Controller\nThis section explains how to configure the **TeraVM Controller** service, which enables end users to conduct traffic tests using the TeraVM traffic generator.\n\n1. In your blueprint, add the **TeraVM Traffic Generator Controller** service. \n\t1. Click **App/Service**.\n\t2. Select the **Traffic Generator Controllers** category to view the list of controllers.\n\n2. Click the plus sign next to the **TeraVM Controller Shell 2G** to add the service into your diagram.\n\n3. In the **Add Service** dialog box, you are not required to configure any of the attributes, and can therefore be left blank.\n\n\t![](https://github.com/QualiSystems/TeraVM-Virtual-Blade-Shell-2G/blob/master/docs/images/teravm_controller_service.png)\n\n3. Click **Add**.\n\n### Configuring the setup script\nThis section explains how to add the setup script for the **TeraVM Virtual 2G** shells.\n\n**To add the setup script:**\n1. Log in to CloudShell Portal as administrator of the relevant domain.\n\n2. Go to the **Manage** dashboard and click **Scripts\u003eBlueprint**.\n\n3. Click **Add New Script**. \n\n4. From the list, select the downloaded setup script *TeraVM.Sandbox.Setup.1.1.0.zip*.\n\n5. Click **Edit** and change the **Script Type** to **Setup**.\n\n6. Click **Save**.\n\n\n# Updating Python Dependencies for Shells\nThis section explains how to update your Python dependencies folder. This is required when you upgrade a shell that uses new/updated dependencies. It applies to both online and offline dependencies.\n\n### Updating offline Python dependencies\n**To update offline Python dependencies:**\n1. Download the latest Python dependencies package zip file locally.\n\n2. Extract the zip file to the suitable offline package folder(s). \n\n3. Terminate the shell’s instance, as explained [here](http://help.quali.com/Online%20Help/9.0/Portal/Content/CSP/MNG/Mng-Exctn-Srv-Exct.htm#Terminat). \n\n### Updating online Python dependencies\nIn online mode, the execution server automatically downloads and extracts the appropriate dependencies file to the online Python dependencies repository every time a new instance of the driver or script is created.\n\n**To update online Python dependencies:**\n* Terminate the shell’s instance, as explained [here](http://help.quali.com/Online%20Help/9.0/Portal/Content/CSP/MNG/Mng-Exctn-Srv-Exct.htm#Terminat). If an instance does not exist, the execution server will download the Python dependencies the next time a command of the driver or script runs.\n\n# Typical Workflows \n\n**Workflow 1** - *Deploying the TeraVM Module and Controller* \n1. Create a new blueprint.\n   1. Log in to CloudShell Portal and create a new blueprint (**Blueprint Catalog\u003eCreate Blueprint**).\n   2. Give the blueprint a name.\n   \n2. Add Apps and Services to the blueprint. \n   1. Click **App/Services** from the toolbar.\n   2. Add the following to the diagram:\n   \t\t* **TeraVM Controller Shell 2G** service - see [Configuring the TeraVM Controller](#configuring-the-teravm-controller) for more information.\n\t\t* **TeraVM Virtual Chassis** App\n\t\t* **TeraVM Virtual Blade** App\n\t\n3. Update the blueprint setup script.\n   1. Open the blueprint's properties, **Blueprint\u003eProperties**. \n   2. In the **Scripts** section, remove the **Default Sandbox Setup 2.0** script by clicking the trash icon.\n   3. Click **Add Script** and select **TeraVM.Sandbox.Setup.1.1.0** from the list. \n   4. Click **Update** to save changes.\n   \n4. In the blueprint workspace, click the **Reserve** button to deploy the **TeraVM Controller** and **TeraVM Module**. \u003cbr\u003eYou can now run your testing activity using the TeraVM traffic generator you spun up, as explained in the following workflow.\n\n**Workflow 2** - *Running a test* \n1. Reserve a blueprint that is configured to run traffic tests, like the one configured in Workflow 1.\n\n2. From the **TeraVM Controller Shell 2G** service, run the **Load Configuration** command.\n   1. Hover over the **TeraVM Controller Shell 2G** service and click **Commands**.\n   2. In the **Resource Commands** pane, click the **Load Configuration** command.\n   3. Specify the **TeraVM config file** with the remote path of your test configuration file. Make sure the path is accessible to the execution server running the command.\n   4. Click **Run**, to load the test configuration to the **TeraVM Controller** and reserve necessary ports.\n   \n3. Run the **Start Traffic** command.\n\n4. Run the **Stop Traffic** command.\n\n5. Run the **Get Statistics** command.\n    \n   The test's result file is attached to the sandbox.\n\n\n# References\nTo download and share integrations, see [Quali Community's Integrations](https://community.quali.com/integrations). \n\nFor instructional training and documentation, see [Quali University](https://www.quali.com/university/).\n\nTo suggest an idea for the product, see [Quali's Idea box](https://community.quali.com/ideabox). \n\nTo connect with Quali users and experts from around the world, ask questions and discuss issues, see [Quali's Community forums](https://community.quali.com/forums). \n\n# Release Notes \n\n### What's New\n\nFor release updates, see the shell's GitHub release pages as follows:\n\n▪ [CloudShell TeraVM Virtual Chassis Shell 2G release page](https://github.com/QualiSystems/TeraVM-Virtual-Chassis-Shell-2G/releases)\n\n▪ [CloudShell TeraVM Controller Shell 2G (Service) release page](https://github.com/QualiSystems/TeraVM-Controller-Shell-2G/releases)\n\n▪ [CloudShell TeraVM Virtual Blade Shell 2G release page](https://github.com/QualiSystems/TeraVM-Virtual-Blade-Shell-2G/releases)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqualisystems%2Fteravm-virtual-chassis-shell-2g","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqualisystems%2Fteravm-virtual-chassis-shell-2g","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqualisystems%2Fteravm-virtual-chassis-shell-2g/lists"}