{"id":21601563,"url":"https://github.com/vmware-samples/sddc-import-export-for-vmware-cloud-on-aws","last_synced_at":"2025-10-31T07:44:51.909Z","repository":{"id":45874679,"uuid":"366077612","full_name":"vmware-samples/sddc-import-export-for-vmware-cloud-on-aws","owner":"vmware-samples","description":"The SDDC Import/Export for VMware Cloud on AWS tool enables you to save and restore your VMware Cloud on AWS (VMC) Software-Defined Data Center (SDDC) networking and security configuration.","archived":false,"fork":false,"pushed_at":"2024-01-31T13:25:55.000Z","size":213,"stargazers_count":20,"open_issues_count":32,"forks_count":16,"subscribers_count":6,"default_branch":"development","last_synced_at":"2025-04-11T02:13:16.355Z","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":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vmware-samples.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE-OF-CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2021-05-10T14:48:26.000Z","updated_at":"2024-09-19T13:58:01.000Z","dependencies_parsed_at":"2023-02-10T15:16:22.411Z","dependency_job_id":"90b23e4a-4480-471b-96c4-33ec82d72579","html_url":"https://github.com/vmware-samples/sddc-import-export-for-vmware-cloud-on-aws","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vmware-samples%2Fsddc-import-export-for-vmware-cloud-on-aws","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vmware-samples%2Fsddc-import-export-for-vmware-cloud-on-aws/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vmware-samples%2Fsddc-import-export-for-vmware-cloud-on-aws/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vmware-samples%2Fsddc-import-export-for-vmware-cloud-on-aws/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vmware-samples","download_url":"https://codeload.github.com/vmware-samples/sddc-import-export-for-vmware-cloud-on-aws/tar.gz/refs/heads/development","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248328163,"owners_count":21085261,"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-24T19:09:54.131Z","updated_at":"2025-10-31T07:44:51.805Z","avatar_url":"https://github.com/vmware-samples.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 1. SDDC Import/Export for VMware Cloud on AWS\n\n## 1.1. Table of Contents\n\u003c!-- TOC --\u003e\n\n- [1. SDDC Import/Export for VMware Cloud on AWS](#1-sddc-importexport-for-vmware-cloud-on-aws)\n    - [1.1. Table of Contents](#11-table-of-contents)\n    - [1.2. Overview](#12-overview)\n    - [1.3. Getting Started](#13-getting-started)\n        - [1.3.1. Install Python](#131-install-python)\n        - [1.3.2. Download code](#132-download-code)\n        - [1.3.3. Install Python modules and packages](#133-install-python-modules-and-packages)\n        - [1.3.4. Update vmc.ini](#134-update-vmcini)\n        - [1.3.5. Update config.ini](#135-update-configini)\n            - [1.3.5.1. Sync Mode](#1351-sync-mode)\n            - [1.3.5.2. Exclude List Filtering](#1352-exclude-list-filtering)\n                - [1.3.5.2.1. Filtering Examples](#13521-filtering-examples)\n        - [1.3.6. Update aws.ini (optional)](#136-update-awsini-optional)\n        - [1.3.7. Update vcenter.ini (optional)](#137-update-vcenterini-optional)\n    - [1.4. Running the script](#14-running-the-script)\n        - [1.4.1. Export](#141-export)\n            - [1.4.1.1. Exclusions](#1411-exclusions)\n        - [1.4.2. Import](#142-import)\n        - [1.4.3. Export-Import](#143-export-import)\n        - [1.4.4. Export NSX-T on-prem](#144-export-nsx-t-on-prem)\n        - [1.4.5. Import NSX-T on-prem](#145-import-nsx-t-on-prem)\n        - [1.4.6. Export vCenter](#146-export-vcenter)\n        - [1.4.7. Import vCenter](#147-import-vcenter)\n        - [1.4.8. Import from zip archive](#148-import-from-zip-archive)\n        - [1.4.9. Running S3 export as a Lambda function](#149-running-s3-export-as-a-lambda-function)\n        - [1.4.10. Cloud Services Platform Role Sync](#1410-cloud-services-platform-role-sync)\n        - [1.4.11. Testbed commands](#1411-testbed-commands)\n\n\u003c!-- /TOC --\u003e\n## 1.2. Overview\n\nThe SDDC Import/Export for VMware Cloud on AWS tool enable customers to save and restore their VMware Cloud  on AWS (VMC) Software-Defined Data Center (SDDC) configuration.\n\nThere are many situations when customers want to migrate from an existing SDDC to a different one. While HCX addresses the data migration challenge, this tool offers customers the ability to copy the configuration from a source to a destination SDDC.\n\nA few example migration scenarios are:\n- SDDC to SDDC migration from bare-metal (i3) to a different bare-metal type (i3en, i4i)\n- SDDC to SDDC migration from region (i.e. London) to a different region (i.e. Dublin).\n\nOther use cases are:\n- Backups - save the entire SDDC configuration\n- Lab purposes - customers or partners might want to deploy SDDCs with a pre-populated configuration.\n- DR purposes - deploy a pre-populated configuration in conjunction with VMware Site Recovery or VMware Cloud Disaster Recovery\n\n## 1.3. Getting Started\n### 1.3.1. Install Python\n\nThis tool is dependent on Python3, you can find installation instructions for your operating system in the Python [documentation](https://wiki.python.org/moin/BeginnersGuide/Download).\n\n\n### 1.3.2. Download code\n\nIf you know git, clone the repo with\n```bash\ngit clone https://github.com/vmware-samples/sddc-import-export-for-vmware-cloud-on-aws.git\n```\nIf you don't know git, you can download the code from the [Flings site](https://flings.vmware.com/sddc-import-export-for-vmware-cloud-on-aws)\n\n### 1.3.3. Install Python modules and packages\n\nWhen you navigate to the sddc_import_export folder, you will find a requirements.txt file that list all your Python packages. They can all be installed by running the following command on Linux/Mac:\n```bash\npip3 install -r requirements.txt\n```\nOn Windows, use\n```bash\npython -m pip install -r requirements.txt\n```\nIf you get pip installation errors complaining about being unable to install `git+https://github.com/vmware/vsphere-automation-sdk-python.git@v7.0.2.0`, and you don't need to use the vCenter folder export feature, you can do the following: \n- Remove line 10 in requirements.txt `git+https://github.com/vmware/vsphere-automation-sdk-python.git@v7.0.2.0`\n- Comment out line 54 in sddc_import_export.py `import vcenter`\n\nYou must uncomment these lines in order to use the vCenter folder export feature. Installing the required library requires you to have git installed on your local system.\n\n### 1.3.4. Update vmc.ini\n\nVersion 1.1 introduces the gov_cloud_urls flag in vmc.ini. The default value is False - change this value to True if you are using GovCloud.\n\nAccess to the VMware Cloud on AWS API is dependent on a refresh token. To generate a token for your account, see the [Generate API Tokens](https://docs.vmware.com/en/VMware-Cloud-services/services/Using-VMware-Cloud-Services/GUID-E2A3B1C1-E9AD-4B00-A6B6-88D31FCDDF7C.html) help article.\n\nThe Org ID and SDDC ID can be found on the Support tab of your SDDCs. \n\n```bash\n# Refresh tokens generated in the VMC console. Users have a separate token in each org\nsource_refresh_token    = XXXXXXXXXXXXXXX\ndest_refresh_token      = XXXXXXXXXXXXXXX\n\n# Organization and SDDC IDs are easily found in the support tab of any SDDC\nsource_org_id           = XXXXXXXXXXXXXXX\nsource_sddc_id          = XXXXXXXXXXXXXXX\ndest_org_id             = XXXXXXXXXXXXXXX\ndest_sddc_id            = XXXXXXXXXXXXXXX\n```\n\nThe vmc.ini configuration can also be passed via command line. Use sddc_import_export --help for syntax.\n\n### 1.3.5. Update config.ini\nConfig.ini contains configuration sections for import and export.\n\nThere are True/False flags that can be set for each configuration option. The default configuration enables all options.\n\nFor example, in this section of the configuration, the compute gateway networks would be exported, but the public IP and NAT associations would not be exported.\n```bash\n# Export the networks configured on the compute gateway?\nnetwork_export  = True\nnetwork_export_filename = cgw-networks.json\n\n# Export the list of public IP addresses?\npublic_export = False\npublic_export_filename = public.json\n\n# Export the NAT rules, including Public IP addresses?\nnat_export = False\nnat_export_filename = natrules.json\n```\n#### 1.3.5.1. Sync Mode\n\nAn experimental feature was introduced in version 1.2. The configuration flag is named sync_mode, and is found in the importConfig section of config.ini. *Note* - sync does not support public IP or NAT configurations. It also does not support syncing deletions. It only syncs new object creations or existing object updates.\n```python\n[importConfig]\n\n# Set this to True if you want to do continuous sync operations i.e. a periodic sync of\n# DFW rules from a source to a destination SDDC. The default method of import operations \n# is a PUT. Setting this flag to True changes the method to a PATCH\n# Not all settings are supported for sync - public IP and NAT mapping are unsupported\nsync_mode = False\n```\n\nThe default value is False. When set to true, existing objects in the destination SDDC will be overwritten with values from the exported data. This feature is handy if you have multiple SDDCs for identical purposes, such as desktop clusters, and want to push identical firweall rules to all SDDCs. Not all settings are supported for sync - public IP and NAT mapping are unsupported. \n\n#### 1.3.5.2. Exclude List Filtering\n\nVersion 1.3 introduced the ability to filter out objects during an import. The following objects can be filtered:\n- CGW firewall rule\n- CGW firewall group\n- CGW network segment\n- Flexible segment\n- MGW firewall rule\n- MGW firewall group\n\nThe exclude filter performs a [Python regex](https://docs.python.org/3/library/re.html) match on the display name of the object. The default is to have no filter. The CGW exclude list section of config.ini is shown below\n\n```python\n# Python regex match on CGW group display name, pipe-delimited. See README for examples.\ncgw_groups_import_exclude_list =\n# Python regex match on CGW rule display name, pipe-delimited. See README for examples.\ncgw_import_exclude_list =\n```\n\nYou must be careful not to filter out a group that a firewall rule is dependent on. The tool does not enforce group dependencies. If you filter out a group that a firewall rule uses, the firewall rule will fail to import.\n\n##### 1.3.5.2.1. Filtering Examples\n\nExclude all groups that begin with 'abcd' or 'efgh'\n```python\ncgw_groups_import_exclude_list = abcd*|efgh*\n```\n\nExclude all network segments that begin with L2E (HCX extended segements)\n```\nnetwork_import_exclude_list = L2E*\n```\n\nA [sample config file](config_ini/config.ini.vcdr.sample) for VCDR is included in this repository.\n\n### 1.3.6. Update aws.ini (optional)\nIf you want to use the optional feature to archive exported zipfiles to S3 storage, you must update aws.ini with a bucket name and credentials with write access to the bucket. You must also set the export_type value in config.ini to 's3'.\n```\n[awsConfig]\n\naws_s3_export_access_id = \"\"\naws_s3_export_access_secret = \"\"\naws_s3_export_bucket = \"\"\n```\n\nThe aws.ini also includes an option to include credentials for the customer-owned AWS account connected to the SDDC.  This allows for automatic acceptance of a resource share for the managed prefix list feature as well as configuration of multiple VPC route tables.  This is separate from the S3 configuration above and must be filled out for the configuration to work correctly.  \n```\naws_import_access_key_id = \naws_import_secret_access_key = \naws_import_session_token = \n```\n\nThe aws.ini configuration can also be passed via command line. Use sddc_import_export --help for syntax.\n\n### 1.3.7. Update vcenter.ini (optional)\nIf you want to use the optional feature to sync your on-prem vCenter folder structure to VMC, you must update vcenter.ini with the appropriate URLs, credentials, and Datacenter name. The tool can only export and import a single datacenter object. The required libraries are commented out by default in `requirements.txt`, and line 54 of `sddc_import_export.py` is also commented out `import vmc`. You must uncomment both lines and run the requirements.txt installation again for dependencies. This library is dependent on git being installed on your local system.\n\n```\n[vCenterConfig]\n\nsrcvCenterURL = on-prem-vcenter.domain.com\nsrcvCenterUsername = administrator@domain.com\nsrcvCenterPassword = x\nsrcvCenterDatacenter = Datacenter-Name\nsrcvCenterSSLVerify = False\n\ndestvCenterURL = vcenter.sddc-xx-xx-xx-xx.vmwarevmc.com\ndestvCenterUsername = cloudadmin@vmc.local\ndestvCenterPassword = x\ndestvCenterDatacenter = SDDC-Datacenter\ndestvCenterSSLVerify = True\n```\n## 1.4. Running the script\n\n### 1.4.1. Export\n\nExport will export your existing SDDC configuration from your source SDDC to a set of files that can be subsequently used for import.\n\nRun the following command to export:\n\n```bash\npython3 sddc_import_export.py -o export\n```\nIf all of the export options are enabled, this will export a set of files:\n-\tServices.json\n\n-\tcgw_groups.json\n-\tcgw-networks.json\n-\tcgw.json\n-   dfw_details.json\n-   dfw.json\n-   dhcp-static-bindings.json\n-   flex_seg_disc_prof.json\n-   flex_seg.json\n-   mcgw_fw.json\n-   mcgw_static_routes.json\n-   mcgw.json\n-\tmgw_groups.json\n-\tmgw.json\n-   mpl.json\n-\tnatrules.json\n-   nsx_adv_fw_policies.json\n-   nsx_adv_fw_profiles.json\n-   nsx_adv_fw_rules.json\n-   nsx_adv_fw_settings.json\n-   nsx_adv_fw_sigs.json    \n-   public_ip_old_new.json\n-\tpublic.json\n-   ral.json\n-   route_config.json\n-   s3-service_access.json\n-   sddc_info.json\n-   service_access.json\n-   services.json\n-   t1vpn.json\n-   t1vpn_service.json\n-   t1vpn_le.json\n-   vpn-bgp.json\n-   vpn-dpd.json\n-   vpn-ike.json\n-   vpn-l2.json\n-   vpn-l3.json\n-   vpn-local-bgp.json\n-   vpn-tunnel.json\n\nA config.ini flag named 'export_history' allows for the JSON files to be zipped for archival purposes. A related configuration option named 'max_export_history_files' lets you control how many zipped archive files are retained.\n\nExport is read-only and will not make any changes to your source SDDC.\n\n#### 1.4.1.1. Exclusions\n\nManual VM memberships in groups are not supported, they will be filtered out of the export.\n\n### 1.4.2. Import\n\nImport will import your saved SDDC configuration from a set of exported JSON files to a destination SDDC.\n\nRun the following command to import:\n```bash\npython3 sddc_import_export.py -o import\n```\n\nBefore making changes, the script will prompt you for confirmation\n```bash\nScript is running in live mode - changes will be made to your destination SDDC. Continue? (y/n): y\n```\nThere are two sections of the config.ini file that control whether the script will make changes to your destination SDDC.\nThe first is import_mode. If import_mode is set to live, changes will be made to the destination SDDC. There is one final flag - import_live_mode_warning. If this flag is set to true, you will be warned that the script is in live mode and given the option to switch back to test mode. If you want to run the script repeatedly and are absolutely sure of your configuration, you can set the import_mode_live_warning flag to False, this will enable the script to run in live mode without user intervention.\n```bash\n[importConfig]\n# Import mode\n# import_mode = test\n#  - No changes will be made to the destination SDDC\n#\n# import_mode = live\n#  - Changes will be made to the destination SDDC\nimport_mode = live\n\n# Script will warn, ask for a confirmation before continuing in live mode\n# Set this to false if you are absolutely sure you have your script configured correctly and want to run it automatically\nimport_mode_live_warning = True\n```\nExample of a successful import:\n```bash\nnvibert-a01:sddc_import_export nicolasvibert$ python3 sddc_import_export.py -o import\nImport mode: live\nImporting data into org VMC-SET-TEST (b7793958-b6b6-4916-a008-40c5c47ec24c), SDDC AVI-LONDON-SDDC (1eadc044-a195-4f43-8bbd-fa1089544e6d)\nScript is running in live mode - changes will be made to your destination SDDC. Continue? (y/n): y\nLive import will proceed\nBeginning CGW network import:\nAdded sddc-cgw-network-1\nImport results:\n+--------------------+---------+-------------+--------------------+\n|    Display Name    |  Result | Result Note |     Segment ID     |\n+--------------------+---------+-------------+--------------------+\n| sddc-cgw-network-1 | SUCCESS |             | sddc-cgw-network-1 |\n+--------------------+---------+-------------+--------------------+\nBeginning Services import\nService nico has been imported.\nService nico has been imported.\nService nico3 has been imported.\nBeginning CGW import...\nCGW Group Blue_VMs has been imported.\nCGW Group Red_VMs has been imported.\nCGW Group tf-group12 has been imported.\nCGW Group tf-group13 has been imported.\nCGW Group tf-group14 has been imported.\nFirewall Rule VMC to AWS has been imported.\nFirewall Rule AWS to VMC has been imported.\nFirewall Rule Internet out has been imported.\nFirewall Rule Default VTI Rule has been imported.\nBeginning MGW import...\nFirewall Rule ESXi Provisioning has been imported.\nFirewall Rule vCenter Inbound has been imported.\nFirewall Rule ESXi Outbound has been imported.\nFirewall Rule vCenter Outbound has been imported.\nBeginning Public IP export...\nPrevious IP 44.242.3.1 has been imported and remapped to 3.10.11.226.\nPrevious IP 34.215.71.251 has been imported and remapped to 3.11.245.46.\nPrevious IP 54.184.3.133 has been imported and remapped to 18.134.166.17.\nBeginning NAT import...\nNAT Rule test-nat-rule has been imported.\nNAT Rule test-nat-second-rule has been imported.\nNAT Rule test-nat-third-rule has been imported.\nImport has been concluded. Thank you for using SDDC Import/Export for VMware Cloud on AWS.\n```\n\n### 1.4.3. Export-Import\nSome customers want to run export from source, then immediately import into the destination. This option is useful if you want to set the script on a schedule to keep 2 SDDCs in sync.\n\nRun the following command to run an export-import:\n```bash\npython3 sddc_import_export.py -o export-import\n```\n\n### 1.4.4. Export NSX-T on-prem\n\nTo export your DFW configuration, first edit the nsxConfig section of vcenter.ini with your NSX-T manager URL and credentials.\n\n```\n[nsxConfig]\n\nsrcNSXmgrURL = \nsrcNSXmgrUsername = \nsrcNSXmgrPassword = \nsrcNSXmgrSSLVerify = False\n```\n\nThen, run the export-nsx command\n\n```\npython3 sddc_import_export.py -o export-nsx\n```\n\n### 1.4.5. Import NSX-T on-prem\n\nTo export your on-prem DFW configuration into VMC on AWS, first run the export-nsx function.\n\nAfter the export is complete, ensure that you have vmc.ini configured with a dest_refresh_token, dest_org_id, and dest_sddc_id. The import-nsx process uses the code as a standard import from an SDDC, including all of the options to enable and disable sections in config.ini\n\nFinally, run import-nsx command. \n\n```\npython3 sddc_import_export.py -o import-nsx\n```\n\n### 1.4.6. Export vCenter\n\nTo export your vCenter server folder structure, set the export_vcenter_folders flag in config.ini to True. Then run the export command:\n\n```\npython3 sddc_import_export.py -o export-vcenter\n```\n\n### 1.4.7. Import vCenter\n\nTo Import your vCenter server folder structure, set the import_vcenter_folders flag in config.ini to True. Then run the import command:\n\n```\npython3 sddc_import_export.py -o import-vcenter\n```\n\n### 1.4.8. Import from zip archive\nIf you enable the 'export_history' flag, a zipfile containing all of the exported JSON will be exported into the /json folder. You can pass the filename to the script as shown to use it as the import source.\n```bash\npython3 sddc_import_export.py -o import -i json/path-to_json-export.zip\n```\n\n### 1.4.9. Running S3 export as a Lambda function\nInstall all required packages to a folder\n```bash\nmkdir python_req\ncd python_req\npip3 install --target . -r ../requirements.txt\n```\nZip python_req and upload it to a Lambda layer\n\nChange export_folder in config.ini to /tmp, because /tmp is the only writable folder in Lambda\n\nEnsure you have configured aws.ini with your S3 bucket settings\n\nEnsure that you have granted the execution role write permissions to your S3 bucket\n\nAdd the following files individually to the function code, or zip them up and upload all at once:\n\n* config_ini/*\n* lambda_handler.py\n* sddc_import_export.py\n* VMCImportExport.py\n\nChange the Handler runtime settings to invoke_lambda.lambda_handler\n\nExecute your Lambda function. Although it is possible to configure values in the config_ini files that you upload to the function code, it might be preferable to pass the required values via command line argument. See [invoke_lambda.py](invoke_lambda.py) for an example.\n\n\n### 1.4.10. Cloud Services Platform Role Sync\n\nYou can sync user roles with the rolesync option.\n\u003e **Note:** the API tokens you use must have Org Owner permissions. You can sync across orgs by using a different source and destination OrgID. Alternatively, if your sync template and destinations are in the same org, you can configure the source and destination OrgIDs to be identical.\n\n\u003e **Known issue:** If the source user has roles assigned that do not exist in the destination, the sync will fail. The initial release of this feature does not have any logic in it to search for invalid roles. For example: a source user is assigned a role for both VMC on AWS and vRealize Automation Cloud. The destination org only has VMC on AWS activated - vRealize Automation is not activated in the destination org. The sync will fail. But the sync would succeed if the source user only had VMC on AWS roles assigned.\n\n\u003e **Feature Limits** In the initial release of this feature, the sync is an addition - any roles assigned to the source will be added to the destination. It does not delete any roles in the destination.\n\nFirst, configure a template account in the Cloud Services Platform, granting it all of the roles you want to synchronize.\n\nNext, configure the `role_sync_source_user_email` poperty in `config.ini` with the email address of your template account - for this example, we set it to template@vmware.com. \n\nThen, configure the `role_sync_dest_user_emails` property in `config.ini` with the email address(es) of your destination accounts. These accounts must already exist for the sync to work.\n\nYou can then run the sync:\n\n```bash\npython3 sddc_import_export.py -o rolesync\n```\n\nExample output:\n```bash\nLooking up template user template@vmware.com\nLooking up destination user destination@vmware.com\nRole sync success: template@vmware.com-\u003edestination@vmware.com\n```\n\nYou can also run the sync directly from the command line without configuring `config.ini`:\n\n```bash\npython3 sddc_import_export.py -o rolesync -rss template@vmware.com -rsd user1@vmware.com,user2@vmware.com\n```\n\nExample output:\n```bash\nloaded role sync source user email from command line\nLoaded role sync dest user emails from command line\nLooking up template user template@vmware.com\nLooking up destination user user1@vmware.com\nRole sync success: template@vmware.com-\u003euser1@vmware.com\nLooking up destination user user2@vmware.com\nRole sync success: template@vmware.com-\u003euser2@vmware.com\n```\n\n### 1.4.11. Testbed commands\n\nThe testbed command lets you create a number of test objects. This is useful when experimenting with API limits in VMC on AWS.\n\nThe testbed command always operates on the destination SDDC. It obeys the `import_mode` setting in `config.ini`.\n\nThis will create 1,500 test Compute Gateway groups, starting with `cgw-test-group-0000`. \n```bash\npython sddc_import_export.py -o testbed --test-name create-cgw-groups --num-objects 1500\n```\n\nThis will delete 1,500 test Compute Gateway groups, starting with `cgw-test-group-0000`\n```bash\npython sddc_import_export.py -o testbed --test-name delete-cgw-groups --num-objects 1500\n```\nYou can also pass the --start-num argument. The default is 0. \nThis will create 1,500 test Compute Gateway groups, starting with `cgw-test-group-0050`\n```bash\npython sddc_import_export.py -o testbed --test-name create-cgw-groups --num-objects 1500 --start-num 50\n```\n\nThis will delete 1,500 test Compute Gateway groups, starting with `cgw-test-group-0050`\n```bash\npython sddc_import_export.py -o testbed --test-name delete-cgw-groups --num-objects 1500 --start-num 50\n```\nThis will delete ALL CGW GROUPS. Use with extreme caution.\n```bash\npython sddc_import_export.py -o testbed --test-name delete-all-cgw-groups\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvmware-samples%2Fsddc-import-export-for-vmware-cloud-on-aws","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvmware-samples%2Fsddc-import-export-for-vmware-cloud-on-aws","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvmware-samples%2Fsddc-import-export-for-vmware-cloud-on-aws/lists"}