diff options
author | James Gu <james.gu@att.com> | 2020-10-12 14:37:31 -0700 |
---|---|---|
committer | James Gu <james.gu@att.com> | 2020-11-12 15:46:18 -0800 |
commit | 7ceb4a376a68e263a16d4305ac2dcb9d96fe90fa (patch) | |
tree | 8ef8561e5c5a05e5242d72c9d1ba44cb3e191810 | |
parent | 1b8eb8687d92408008f9716237034b7589d09253 (diff) |
functest healthcheck failures
- Overrides the default new user role value with "_member_"
- Updated treasuremap ref to include inflight upstream patches for
healthcheck Updated nova and neutron overrides due to pod 15 PCI
address changes for VFs
- Added site name input in test.sh so it can used to test for all
intel pod envs
- Added init_cloud in the deployment script to create test image,
flavor and provider network
- Updated the heat template for pod 15 and 17 public network creation
Signed-off-by: James Gu <james.gu@att.com>
Change-Id: I6738d80e98332a3523e541d5178d8a920e28def5
-rw-r--r-- | site/intel-pod15/networks/physical/networks.yaml | 6 | ||||
-rw-r--r-- | site/intel-pod15/site-definition.yaml | 2 | ||||
-rw-r--r-- | site/intel-pod15/software/charts/osh/openstack-compute-kit/neutron.yaml | 5 | ||||
-rw-r--r-- | site/intel-pod15/software/charts/osh/openstack-compute-kit/nova.yaml | 25 | ||||
-rw-r--r-- | site/intel-pod17/networks/physical/networks.yaml | 4 | ||||
-rw-r--r-- | site/intel-pod17/site-definition.yaml | 2 | ||||
-rwxr-xr-x | tools/deploy.sh | 33 | ||||
-rw-r--r-- | tools/files/heat-public-net-deployment-intel-pod15.yaml | 20 | ||||
-rw-r--r-- | tools/files/heat-public-net-deployment-intel-pod17.yaml | 17 | ||||
-rw-r--r-- | tools/files/tempest.conf | 193 | ||||
-rw-r--r-- | tools/files/tempest_conf.yaml | 103 | ||||
-rwxr-xr-x | tools/test.sh | 47 |
12 files changed, 388 insertions, 69 deletions
diff --git a/site/intel-pod15/networks/physical/networks.yaml b/site/intel-pod15/networks/physical/networks.yaml index b5d19aa..f93b9bf 100644 --- a/site/intel-pod15/networks/physical/networks.yaml +++ b/site/intel-pod15/networks/physical/networks.yaml @@ -252,10 +252,4 @@ data: # NEWSITE-CHANGEME: Update to the gateway address for this network gateway: 10.10.155.1 metric: 100 - labels: - # NEWSITE-CHANGEME: All cruisers should have this enabled, set to false if this - # is a special case in corridor 1 that doesn't support a floating IP pool. - # If set to false, IP Addresses and CIDR will still need to be specified - # above to satisfy the schema and substitution used by other documents. - enabled: true ... diff --git a/site/intel-pod15/site-definition.yaml b/site/intel-pod15/site-definition.yaml index 068cd36..37a8549 100644 --- a/site/intel-pod15/site-definition.yaml +++ b/site/intel-pod15/site-definition.yaml @@ -12,6 +12,6 @@ data: repositories: global: - revision: refs/changes/79/755079/5 + revision: refs/changes/47/757647/7 url: https://opendev.org/airship/treasuremap.git ... diff --git a/site/intel-pod15/software/charts/osh/openstack-compute-kit/neutron.yaml b/site/intel-pod15/software/charts/osh/openstack-compute-kit/neutron.yaml index fcbac5b..94f74f6 100644 --- a/site/intel-pod15/software/charts/osh/openstack-compute-kit/neutron.yaml +++ b/site/intel-pod15/software/charts/osh/openstack-compute-kit/neutron.yaml @@ -23,4 +23,9 @@ data: conf: sriov_init: - besteffort + plugins: + sriov_agent: + sriov_nic: + physical_device_mappings: sriovnet1:ens785f1 + exclude_devices: ens785f1:0000:05:10.1; 0000:05:10.3 ... diff --git a/site/intel-pod15/software/charts/osh/openstack-compute-kit/nova.yaml b/site/intel-pod15/software/charts/osh/openstack-compute-kit/nova.yaml new file mode 100644 index 0000000..0f5595f --- /dev/null +++ b/site/intel-pod15/software/charts/osh/openstack-compute-kit/nova.yaml @@ -0,0 +1,25 @@ +--- +schema: armada/Chart/v1 +metadata: + schema: metadata/Document/v1 + replacement: true + name: nova + layeringDefinition: + abstract: false + layer: site + parentSelector: + name: nova-cruiserlite + component: nova + actions: + - method: merge + path: . + storagePolicy: cleartext +data: + values: + conf: + nova: + pci: + ## NOTE: Exclude vf0 from each of the sriov nic + passthrough_whitelist: | + [{"address": {"domain":"0000","bus":"05","slot":"10","function":"[57]"}, "physical_network": "sriovnet1"},{"address": {"domain":"0000","bus":"05","slot":"1[1-7]","function":"[1357]"}, "physical_network": "sriovnet1"}] +... diff --git a/site/intel-pod17/networks/physical/networks.yaml b/site/intel-pod17/networks/physical/networks.yaml index 5c438f5..a0c5ca6 100644 --- a/site/intel-pod17/networks/physical/networks.yaml +++ b/site/intel-pod17/networks/physical/networks.yaml @@ -245,8 +245,8 @@ data: ranges: - type: reserved # NEWSITE-CHANGEME: Update to the start and end addresses to be used for the Floating IP pool - start: 10.10.175.31 - end: 10.10.175.128 + start: 10.10.175.1 + end: 10.10.175.19 routes: - subnet: 0.0.0.0/0 # NEWSITE-CHANGEME: Update to the gateway address for this network diff --git a/site/intel-pod17/site-definition.yaml b/site/intel-pod17/site-definition.yaml index 951ec63..051fe0c 100644 --- a/site/intel-pod17/site-definition.yaml +++ b/site/intel-pod17/site-definition.yaml @@ -12,6 +12,6 @@ data: repositories: global: - revision: refs/changes/79/755079/2 + revision: refs/changes/47/757647/7 url: https://opendev.org/airship/treasuremap.git ... diff --git a/tools/deploy.sh b/tools/deploy.sh index 37c276c..9bf1899 100755 --- a/tools/deploy.sh +++ b/tools/deploy.sh @@ -108,7 +108,6 @@ clone_repos() { TREASUREMAP_REF=$(read_yaml $SITE_DEF "$SITE_DEF_KEY") echo "TREASUREMAP_REF $TREASUREMAP_REF" git_checkout 'https://review.opendev.org/airship/treasuremap' $TREASUREMAP_REF - git fetch https://review.opendev.org/airship/treasuremap refs/changes/33/707733/4 && git cherry-pick FETCH_HEAD fi } @@ -119,11 +118,11 @@ pegleg_collect() { sudo rm -rf collect/${SITE_NAME} fi sudo mkdir -p collect/${SITE_NAME} - sudo -E ${AIRSHIP_CMD} pegleg site -r /target/airship collect -s collect/${SITE_NAME} $SITE_NAME + sudo -E ${AIRSHIP_CMD} pegleg site -e global=treasuremap -r /target/airship collect -s collect/${SITE_NAME} $SITE_NAME - sudo mkdir -p render/${SITE_NAME} - sudo -E ${AIRSHIP_CMD} pegleg site -r /target/airship render $SITE_NAME \ - -s /target/render/${SITE_NAME}/manifest.yaml + sudo mkdir -p render/${SITE_NAME} + sudo -E ${AIRSHIP_CMD} pegleg site -e global=treasuremap -r /target/airship render $SITE_NAME \ + -s /target/render/${SITE_NAME}/manifest.yaml } pre_genesis() { @@ -231,6 +230,19 @@ create_public_network() { public-network } + +create_dpdk_flavor() { + export OS_AUTH_URL=${OS_AUTH_URL_IDENTITY} + sudo -E treasuremap/tools/openstack flavor create --ram 1024 --disk 1 --vcpus 1 --public --property hw:mem_page_size=large dpdk.tiny +} + +create_cirros_image() { + export OS_AUTH_URL=${OS_AUTH_URL_IDENTITY} + wget http://download.cirros-cloud.net/0.5.1/cirros-0.5.1-x86_64-disk.img + sudo -E treasuremap/tools/openstack image create --disk-format qcow2 --container-format bare --public --file /target/cirros-0.5.1-x86_64-disk.img cirros + rm -rf cirros-0.5.1-x86_64-disk.img cirros +} + case "$2" in 'pre_genesis') pre_genesis @@ -250,7 +262,7 @@ case "$2" in pre_genesis genesis_deploy site_action $2 - create_public_network +# create_public_network ;; 'update_site') clone_repos @@ -262,6 +274,15 @@ case "$2" in pegleg_collect site_action $2 ;; +'init_cloud') +# wget http://download.cirros-cloud.net/0.5.1/cirros-0.5.1-x86_64-disk.img +# openstack image create --disk-format qcow2 --container-format bare --public --file /target/cirros-0.5.1-x86_64-disk.img cirros +# rm -rf cirros-0.5.1-x86_64-disk.img cirros +# openstack flavor create --ram 1024 --disk 1 --vcpus 1 --public --hw:mem_page_size=large dpdk.tiny + create_cirros_image + create_dpdk_flavor + create_public_network + ;; 'generate_certs') clone_repos generate_certs diff --git a/tools/files/heat-public-net-deployment-intel-pod15.yaml b/tools/files/heat-public-net-deployment-intel-pod15.yaml index 1a0d090..44a945b 100644 --- a/tools/files/heat-public-net-deployment-intel-pod15.yaml +++ b/tools/files/heat-public-net-deployment-intel-pod15.yaml @@ -7,11 +7,11 @@ parameters: physical_network_name: type: string - default: public + default: ovsnet - physical_network_interface: + vlan_id: type: string - default: external + default: 1153 subnet_name: type: string @@ -23,7 +23,7 @@ parameters: subnet_gateway: type: string - default: 10.10.155.20 + default: 10.10.155.1 subnet_pool_start: type: string @@ -40,11 +40,13 @@ resources: admin_state_up: true name: get_param: network_name - network_type: flat + network_type: vlan physical_network: - get_param: physical_network_interface + get_param: physical_network_name + segmentation_id: + get_param: vlan_id port_security_enabled: true - router_external: true + router_external: false shared: true private_subnet: @@ -65,6 +67,4 @@ resources: end: get_param: subnet_pool_end dns_nameservers: - - 8.8.8.8 - - 8.8.4.4 - + - 10.10.155.20 diff --git a/tools/files/heat-public-net-deployment-intel-pod17.yaml b/tools/files/heat-public-net-deployment-intel-pod17.yaml index 5ddfd90..8729d6e 100644 --- a/tools/files/heat-public-net-deployment-intel-pod17.yaml +++ b/tools/files/heat-public-net-deployment-intel-pod17.yaml @@ -7,11 +7,11 @@ parameters: physical_network_name: type: string - default: public + default: ovsnet - physical_network_interface: + vlan_id: type: string - default: external + default: 1173 subnet_name: type: string @@ -40,11 +40,13 @@ resources: admin_state_up: true name: get_param: network_name - network_type: flat + network_type: vlan physical_network: - get_param: physical_network_interface + get_param: physical_network_name + segmentation_id: + get_param: vlan_id port_security_enabled: true - router_external: true + router_external: false shared: true private_subnet: @@ -65,6 +67,5 @@ resources: end: get_param: subnet_pool_end dns_nameservers: - - 8.8.8.8 - - 8.8.4.4 + - 10.10.175.20 diff --git a/tools/files/tempest.conf b/tools/files/tempest.conf new file mode 100644 index 0000000..eff2f74 --- /dev/null +++ b/tools/files/tempest.conf @@ -0,0 +1,193 @@ +[DEFAULT] +debug = True +use_stderr = False +log_file = + +[auth] +use_dynamic_credentials = True +# admin_username = tempest_neutron-user_7013fc57-36b2-40ad-a2b9-20840ec44a3c +# admin_password = 0E3k=gRf@|ko7^mguXK]!4Vtq?TPaX +# admin_project_name = tempest_neutron-project_7013fc57-36b2-40ad-a2b9-20840ec44a3c +admin_domain_name = default +tempest_roles = _member_ + +[compute] +# image_ref = 1ff5944f-89b7-413e-981a-523d81c57754 +# image_ref_alt = 8189311a-76cf-4e40-9a2c-3ce32dba3be0 +# flavor_ref = 0b6b2be7-42d4-44ff-bcc2-ddb22576c714 +# flavor_ref_alt = b35737c8-9673-450e-a106-f6dd82c3485d +# fixed_network_name = tempest_neutron-net_7013fc57-36b2-40ad-a2b9-20840ec44a3c +volume_device_name = vdb +min_compute_nodes = 2 +endpoint_type = public +max_microversion = 2.72 + +[compute-feature-enabled] +# disabled since Airship 1.7 +live_migration = False +resize = True +# disabled since Airship 1.7 +vnc_console = False +attach_encrypted_volume = False +block_migration_for_live_migration = False +block_migrate_cinder_iscsi = False +change_password = False +cold_migration = True +config_drive = True +console_output = True +disk_config = True +enable_instance_password = True +interface_attach = True +live_migrate_back_and_forth = False +metadata_service = True +pause = True +personality = False +rdp_console = False +rescue = True +scheduler_available_filters = RetryFilter,AvailabilityZoneFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,SameHostFilter,DifferentHostFilter +serial_console = False +# disabled by airship +shelve = False +snapshot = True +spice_console = False +suspend = True +swap_volume = False +volume_backed_live_migration = False +volume_multiattach = False + +[data-processing] +endpoint_type = public + +[identity] +auth_version = v3 +v2_endpoint_type = public +v3_endpoint_type = public +disable_ssl_certificate_validation = False +ca_certificates_file = +admin_role = admin +default_domain_id = default +user_unique_last_password_count = 2 +user_lockout_duration = 10 +user_lockout_failure_attempts = 2 + +[identity-feature-enabled] +trust = True +api_v2 = False +api_v2_admin = False +security_compliance = True +federation = False +external_idp = False +project_tags = True +application_credentials = True + +[image-feature-enabled] +deactivate_image = True +api_v2 = True +api_v1 = False + +[input-scenario] +ssh_user_regex = [["^.*[Cc]irros.*$", "cirros"], ["^.*[Tt]est[VvMm].*$", "cirros"], ["^.*rally_verify.*$", "cirros"]] + +[network] +# public_network_id = 2f8e366e-50ca-4662-a854-104b770ad119 +floating_network_name = public +default_network = 192.168.120.0/24 +project_network_cidr = 192.168.120.0/24 +project_networks_reachable = False +endpoint_type = public + +[network-feature-enabled] +ipv6_subnet_attributes = True +ipv6 = True +api_extensions = address-scope,agent,agent-resources-synced,allowed-address-pairs,auto-allocated-topology,availability_zone,availability_zone_filter,default-subnetpools,dhcp_agent_scheduler,dvr,empty-string-filtering,external-net,extra_dhcp_opt,extraroute,filter-validation,fip-port-details,flavors,floatingip-pools,ip-substring-filtering,router,ext-gw-mode,l3-ha,l3-flavors,l3-port-ip-change-not-allowed,l3_agent_scheduler,multi-provider,net-mtu,net-mtu-writable,network_availability_zone,network-ip-availability,pagination,port-mac-address-regenerate,port-resource-request,binding,binding-extended,port-security,project-id,provider,qos,qos-bw-limit-direction,qos-bw-minimum-ingress,qos-default,qos-fip,qos-gateway-ip,qos-rule-type-details,qos-rules-alias,quotas,quota_details,rbac-policies,rbac-security-groups,revision-if-match,standard-attr-revisions,router_availability_zone,port-security-groups-filtering,security-group,service-type,sorting,standard-attr-description,subnet_onboard,subnet-service-types,subnet_allocation,standard-attr-tag,standard-attr-timestamp,trunk,trunk-details +port_admin_state_change = True +port_security = True +floating_ips = True + +[object-storage] +operator_role = member +reseller_admin_role = ResellerAdmin +endpoint_type = public + +[oslo_concurrency] +lock_path = + +[orchestration] +instance_type = +stack_owner_role = heat_stack_owner +stack_user_role = heat_stack_user +endpoint_type = public + +[scenario] +img_dir = /home/opnfv/functest/images +img_file = cirros-0.4.0-x86_64-disk.img +img_disk_format = qcow2 +img_properties = + +[service_available] +cinder = True +glance = True +heat = True +ironic = False +neutron = True +nova = True +sahara = False +swift = True + +[validation] +run_validation = True +image_ssh_user = cirros +connect_method = floating +ssh_timeout = 196 +ip_version_for_ssh = 4 +# network_for_ssh = tempest_neutron-net_7013fc57-36b2-40ad-a2b9-20840ec44a3c + +[volume-feature-enabled] +bootable = True +multi_backend = False +backup = True +snapshot = True +clone = True +manage_snapshot = True +manage_volume = True +extend_attached_volume = False +consistency_group = False +volume_revert = True + +[volume] +endpoint_type = public +max_microversion = 3.59 +storage_protocol = ceph +manage_volume_ref = source-name,volume-%s +manage_snapshot_ref = source-name,snapshot-%s + +[image] +endpoint_type = public + +[placement] +# max_microversion = 1.31 +max_microversion: 1.4 + + +[load_balancer] +test_with_ipv6 = False + +[neutron_plugin_options] +agent_availability_zone = nova +available_type_drivers = flat,geneve,vlan,gre,local,vxlan +provider_vlans = external + +[object-storage-feature-enabled] +discoverable_apis = account_quotas,formpost,bulk_upload,bulk_delete,tempurl,crossdomain,container_quotas,staticweb,account_quotas,slo +object_versioning = True +# disabled since Airship 1.7 +discoverability = False + +[heat_plugin] +skip_functional_test_list = EncryptionVolTypeTest +skip_scenario_test_list = AodhAlarmTest,SoftwareConfigIntegrationTest,VolumeBackupRestoreIntegrationTest,CfnInitIntegrationTest,LoadBalancerTest +auth_version = 3 + +[heat_features_enabled] +multi_cloud = False + diff --git a/tools/files/tempest_conf.yaml b/tools/files/tempest_conf.yaml new file mode 100644 index 0000000..048f59f --- /dev/null +++ b/tools/files/tempest_conf.yaml @@ -0,0 +1,103 @@ +--- +compute: + max_microversion: 2.72 +compute-feature-enabled: + attach_encrypted_volume: false + block_migration_for_live_migration: false + block_migrate_cinder_iscsi: false + change_password: false + # disabled since Airship 1.7 + cold_migration: false + config_drive: true + console_output: true + disk_config: true + enable_instance_password: true + interface_attach: true + live_migration: true + live_migrate_back_and_forth: false + metadata_service: true + pause: true + personality: false + rdp_console: false + rescue: true + resize: true + scheduler_available_filters: "RetryFilter,AvailabilityZoneFilter,\ + ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,\ + ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,SameHostFilter,\ + DifferentHostFilter" + serial_console: false + # disabled since Airship 1.7 + shelve: false + snapshot: true + spice_console: false + suspend: true + swap_volume: false + # disabled since Airship 1.7 + vnc_console: false + volume_backed_live_migration: false + volume_multiattach: false +identity: + auth_version: v3 + user_unique_last_password_count: 2 + user_lockout_duration: 10 + user_lockout_failure_attempts: 2 +identity-feature-enabled: + trust: true + api_v2: false + api_v2_admin: false + security_compliance: true + federation: false + external_idp: false + project_tags: true + application_credentials: true +image-feature-enabled: + api_v2: true + api_v1: false +network-feature-enabled: + port_admin_state_change: true + port_security: true + # not supported in Airship 1.8 due to DPDK + floating_ips: false +placement: + max_microversion: 1.31 +validation: + image_ssh_user: cirros + ssh_timeout: 196 + ip_version_for_ssh: 4 + run_validation: true + connect_method: floating +volume: + max_microversion: 3.59 + storage_protocol: ceph + manage_volume_ref: source-name,volume-%s + manage_snapshot_ref: source-name,snapshot-%s +volume-feature-enabled: + multi_backend: false + backup: true + snapshot: true + clone: true + manage_snapshot: true + manage_volume: true + extend_attached_volume: false + consistency_group: false + volume_revert: true +load_balancer: + test_with_ipv6: false +neutron_plugin_options: + agent_availability_zone: nova + available_type_drivers: flat,vlan,vxlan + provider_vlans: public +object-storage-feature-enabled: + discoverable_apis: "account_quotas,formpost,bulk_upload,bulk_delete,\ + tempurl,crossdomain,container_quotas,staticweb,account_quotas,slo" + object_versioning: true + # disabled since Airship 1.7 + discoverability: false +heat_plugin: + skip_functional_test_list: EncryptionVolTypeTest + skip_scenario_test_list: "AodhAlarmTest,SoftwareConfigIntegrationTest,\ + VolumeBackupRestoreIntegrationTest,CfnInitIntegrationTest,\ + LoadBalancerTest" + auth_version: 3 +heat_features_enabled: + multi_cloud: false diff --git a/tools/test.sh b/tools/test.sh index afac473..32f298a 100755 --- a/tools/test.sh +++ b/tools/test.sh @@ -6,7 +6,9 @@ set -e # https://wiki.opnfv.org/pages/viewpage.action?pageId=29098314 export FUNCTEST_CACHE=${FUNCTEST_CACHE:-"${HOME}/.opnfv/functest"} +export SITE=${2:-"intel-pod17"} +cp tools/files/tempest_conf.yaml ${FUNCTEST_CACHE} TMP_DIR=$(mktemp -d) cd $TMP_DIR @@ -18,48 +20,23 @@ EXTERNAL_NETWORK=public BLOCK_MIGRATION=False EOF -cat > tempest_conf.yaml << EOF ---- -compute: - max_microversion: 2.42 -compute-feature-enabled: - shelve: false - vnc_console: false - cold_migration: false - block_migration_for_live_migration: false -identity-feature-enabled: - api_v2: false - api_v2_admin: false -image-feature-enabled: - api_v2: true - api_v1: false -placement: - max_microversion: 1.4 -volume: - max_microversion: 3.27 - storage_protocol: ceph -volume-feature-enabled: - backup: true -object-storage-feature-enabled: - discoverability: false -EOF - -cat > openstack.creds << EOF -export OS_AUTH_URL=http://identity-nc.intel-pod17.opnfv.org/v3 +cat > env_file << EOF +export NEW_USER_ROLE=_member_ +export OS_AUTH_URL=http://identity-nc.$SITE.opnfv.org/v3 export OS_USER_DOMAIN_NAME=default export OS_PROJECT_DOMAIN_NAME=default export OS_USERNAME=admin export OS_PROJECT_NAME=admin -export OS_PASSWORD=password123 +export OS_PASSWORD=0bbaf9908f63abec8ffb export OS_IDENTITY_API_VERSION=3 export OS_INTERFACE=public -export OS_REGION_NAME=intel-pod17 +export OS_REGION_NAME=$SITE EOF # check/download images if [ ! -d $FUNCTEST_CACHE ]; then mkdir -p $FUNCTEST_CACHE/images && cd $FUNCTEST_CACHE - wget -q -O- https://git.opnfv.org/functest/plain/functest/ci/download_images.sh?h=stable/hunter | bash -s -- images + wget -q -O- https://git.opnfv.org/functest/plain/functest/ci/download_images.sh?h=stable/iruya | bash -s -- images cd $TMP_DIR fi @@ -73,12 +50,12 @@ run_tests() { sudo rm -rf ${FUNCTEST_CACHE}/results && mkdir ${FUNCTEST_CACHE}/results - sudo docker run --env-file env \ - -v $(pwd)/openstack.creds:/home/opnfv/functest/conf/env_file \ + sudo docker run -it --env-file env --network host \ + -v $(pwd)/env_file:/home/opnfv/functest/conf/env_file \ -v ${FUNCTEST_CACHE}/images:/home/opnfv/functest/images \ -v ${FUNCTEST_CACHE}/results:/home/opnfv/functest/results \ - -v $(pwd)/tempest_conf.yaml:/usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/tempest_conf.yaml \ - opnfv/functest-${1}:hunter + -v ${FUNCTEST_CACHE}/tempest_conf.yaml:/usr/lib/python3.6/site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/tempest_conf.yaml \ + opnfv/functest-${1}:iruya bash } case "$1" in |