diff options
-rw-r--r-- | dovetail/compliance/debug.yml | 1 | ||||
-rw-r--r-- | dovetail/conf/dovetail_config.yml | 16 | ||||
-rw-r--r-- | dovetail/container.py | 15 | ||||
-rw-r--r-- | dovetail/report.py | 5 | ||||
-rwxr-xr-x | dovetail/run.py | 4 | ||||
-rw-r--r-- | dovetail/test_runner.py | 5 | ||||
-rw-r--r-- | dovetail/testcase.py | 25 | ||||
-rw-r--r-- | dovetail/testcase/defcore.tc001.yml | 266 | ||||
-rwxr-xr-x | utils/launch_db.sh | 17 |
9 files changed, 338 insertions, 16 deletions
diff --git a/dovetail/compliance/debug.yml b/dovetail/compliance/debug.yml index 87003c47..847251bd 100644 --- a/dovetail/compliance/debug.yml +++ b/dovetail/compliance/debug.yml @@ -6,6 +6,7 @@ debug: name: debug testcases_list: - dovetail.example.tc002 + - dovetail.defcore.tc001 - dovetail.ipv6.tc008 - dovetail.ipv6.tc009 - dovetail.ipv6.tc018 diff --git a/dovetail/conf/dovetail_config.yml b/dovetail/conf/dovetail_config.yml index ea8ecedc..b8174bdb 100644 --- a/dovetail/conf/dovetail_config.yml +++ b/dovetail/conf/dovetail_config.yml @@ -20,24 +20,29 @@ testsuite_supported: - debug # testarea supported, should adjust accordingly testarea_supported: - - vimops - - nfvi - - ipv6 + - defcore - example + - ipv6 + - nfvi + - vimops functest_testsuite: + - refstack_defcore - tempest_smoke_serial - tempest_full_parallel - rally_sanity - promise functest_testcase: - - healthcheck + - connection_check + - api_check + - snaps_health_check - vping_ssh - vping_userdata - doctor - copper - cloudify_ims + - odl # used for testcase cmd template in jinja2 format # we have two variables available now @@ -61,9 +66,6 @@ validate_input: valid_docker_tag: - 'stable' - 'latest' - - 'colorado.1.0' - - 'colorado.2.0' - - 'colorado.3.0' - 'danube.1.0' - 'danube.2.0' - 'danube.3.0' diff --git a/dovetail/container.py b/dovetail/container.py index 71fa346f..583f2e0c 100644 --- a/dovetail/container.py +++ b/dovetail/container.py @@ -66,8 +66,7 @@ class Container(object): ins_type = " -e INSTALLER_TYPE=vendor-specific" scenario = " -e DEPLOY_SCENARIO=default" node = " -e NODE_NAME=master" - tag = " -e BUILD_TAG=daily-master-001" - envs = "%s %s %s %s" % (ins_type, scenario, node, tag) + envs = "%s %s %s" % (ins_type, scenario, node) dovetail_config = dt_cfg.dovetail_config if dovetail_config['report_dest'].startswith("http"): @@ -111,8 +110,10 @@ class Container(object): if not openrc: return None - # This is used for showing the debug logs of the upstream projects + # CI_DEBUG is used for showing the debug logs of the upstream projects + # BUILD_TAG is the unique id for this test envs = ' -e CI_DEBUG=true' + envs = envs + ' -e BUILD_TAG=%s' % dovetail_config['build_tag'] config = "" if type.lower() == "functest": @@ -214,3 +215,11 @@ class Container(object): return (1, 'sub_cmd is empty') cmd = 'sudo docker exec %s /bin/bash -c "%s"' % (container_id, sub_cmd) return dt_utils.exec_cmd(cmd, cls.logger, exit_on_error) + + @classmethod + def pre_copy(cls, container_id, src_path, dest_path, exit_on_error=False): + if src_path == "" or dest_path == "": + return (1, 'src_path or dest_path is empty') + cmd = 'sudo docker cp %s %s:%s' % (src_path, container_id, dest_path) + cls.logger.debug('execute cmd %s', cmd) + return dt_utils.exec_cmd(cmd, cls.logger, exit_on_error) diff --git a/dovetail/report.py b/dovetail/report.py index f2210cb7..deabbdd2 100644 --- a/dovetail/report.py +++ b/dovetail/report.py @@ -13,7 +13,6 @@ import urllib2 import re import os import datetime -import uuid from pbr import version @@ -47,7 +46,7 @@ class Report(object): report_obj['testsuite'] = testsuite_yaml['name'] # TO DO: once dashboard url settled, adjust accordingly report_obj['dashboard'] = None - report_obj['validation_ID'] = str(uuid.uuid4()) + report_obj['build_tag'] = dt_cfg.dovetail_config['build_tag'] report_obj['upload_date'] =\ datetime.datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S UTC") report_obj['duration'] = duration @@ -89,7 +88,7 @@ class Report(object): report_txt += 'Version: %s\n' % report_data['version'] report_txt += 'TestSuite: %s\n' % report_data['testsuite'] report_txt += 'Result Dashboard: %s\n' % report_data['dashboard'] - report_txt += 'Validation ID: %s\n' % report_data['validation_ID'] + report_txt += 'Build Tag: %s\n' % report_data['build_tag'] report_txt += 'Upload Date: %s\n' % report_data['upload_date'] if report_data['duration'] == 0: report_txt += 'Duration: %s\n\n' % 'N/A' diff --git a/dovetail/run.py b/dovetail/run.py index 2a2c5677..828a2b70 100755 --- a/dovetail/run.py +++ b/dovetail/run.py @@ -12,6 +12,7 @@ import click import os import copy import time +import uuid import utils.dovetail_logger as dt_logger import utils.dovetail_utils as dt_utils @@ -154,6 +155,8 @@ def clean_results_dir(): def main(*args, **kwargs): """Dovetail compliance test entry!""" + build_tag = "daily-master-%s" % str(uuid.uuid4()) + dt_cfg.dovetail_config['build_tag'] = build_tag clean_results_dir() if kwargs['debug']: os.environ['DEBUG'] = 'true' @@ -162,6 +165,7 @@ def main(*args, **kwargs): logger.info('================================================') logger.info('Dovetail compliance: %s!', (kwargs['testsuite'])) logger.info('================================================') + logger.info('Build tag: %s', dt_cfg.dovetail_config['build_tag']) validate_input(kwargs, dt_cfg.dovetail_config['validate_input'], logger) configs = filter_config(kwargs, logger) diff --git a/dovetail/test_runner.py b/dovetail/test_runner.py index 1ac9f196..32a18743 100644 --- a/dovetail/test_runner.py +++ b/dovetail/test_runner.py @@ -46,6 +46,11 @@ class DockerRunner(object): self.logger.debug('container id:%s', container_id) + dest_path = self.testcase.pre_copy_dest_path() + if dest_path: + src_path = self.testcase.mk_src_file() + ret, msg = Container.pre_copy(container_id, src_path, dest_path) + if not self.testcase.prepared(): prepare_failed = False cmds = self.testcase.pre_condition() diff --git a/dovetail/testcase.py b/dovetail/testcase.py index aeeeee68..7f218c47 100644 --- a/dovetail/testcase.py +++ b/dovetail/testcase.py @@ -115,6 +115,14 @@ class Testcase(object): self.name()) return pre_condition + def pre_copy_dest_path(self): + try: + pre_copy_dest_path = \ + self.testcase['validate']['pre_copy']['dest_path'] + except KeyError: + pre_copy_dest_path = '' + return pre_copy_dest_path + def post_condition(self): try: post_condition = self.testcase['validate']['post_condition'] @@ -128,6 +136,23 @@ class Testcase(object): self.name()) return post_condition + def mk_src_file(self): + testcase_src_file = self.testcase['validate']['pre_copy']['src_file'] + try: + with open(os.path.join(dt_cfg.dovetail_config['result_dir'], + testcase_src_file), 'w+') as src_file: + if self.sub_testcase() is not None: + for sub_test in self.sub_testcase(): + self.logger.info('save testcases %s', sub_test) + src_file.write(sub_test + '\n') + self.logger.info('save testcases to %s', src_file) + except Exception: + self.logger.error('Failed to save: %s', src_file) + + src_file_path = os.path.join(dt_cfg.dovetail_config['result_dir'], + testcase_src_file) + return src_file_path + def run(self): runner = TestRunnerFactory.create(self) try: diff --git a/dovetail/testcase/defcore.tc001.yml b/dovetail/testcase/defcore.tc001.yml new file mode 100644 index 00000000..bbd2c313 --- /dev/null +++ b/dovetail/testcase/defcore.tc001.yml @@ -0,0 +1,266 @@ +--- +dovetail.defcore.tc001: + name: dovetail.defcore.tc001 + objective: > # Set of DefCore tempest test cases not flagged and required. It only contains OpenStack core (no object storage) + # The approved guidelines (2016.08) are valid for Kilo, Liberty, Mitaka and Newton releases of OpenStack + # The list can be generated using the Rest API from RefStack project: + # https://refstack.openstack.org/api/v1/guidelines/2016.08/tests?target=compute&type=required&alias=true&flag=false + validate: + type: functest + testcase: refstack_defcore + pre_condition: + - 'echo test for precondition in testcase' + pre_copy: + src_file: defcore.txt + dest_path: /home/opnfv/repos/functest/functest/opnfv_tests/openstack/refstack_client + cmds: + - 'functest env prepare' + - 'functest testcase run refstack_defcore -r' + post_condition: + - 'echo test for postcondition in testcase' + report: + sub_testcase_list: + - tempest.api.compute.images.test_images_oneserver.ImagesOneServerTestJSON.test_create_delete_image + - tempest.api.compute.images.test_images_oneserver.ImagesOneServerTestJSON.test_create_image_specify_multibyte_character_image_name + - tempest.api.compute.servers.test_create_server.ServersTestJSON.test_host_name_is_same_as_server_name + - tempest.api.compute.servers.test_create_server.ServersTestJSON.test_list_servers + - tempest.api.compute.servers.test_create_server.ServersTestJSON.test_list_servers_with_detail + - tempest.api.compute.servers.test_create_server.ServersTestJSON.test_verify_created_server_vcpus + - tempest.api.compute.servers.test_create_server.ServersTestJSON.test_verify_server_details + - tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_host_name_is_same_as_server_name + - tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_list_servers + - tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_list_servers_with_detail + - tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_verify_created_server_vcpus + - tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_verify_server_details + - tempest.api.compute.servers.test_instance_actions.InstanceActionsTestJSON.test_get_instance_action + - tempest.api.compute.servers.test_instance_actions.InstanceActionsTestJSON.test_list_instance_actions + - tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_detailed_filter_by_flavor + - tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_detailed_filter_by_image + - tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_detailed_filter_by_server_name + - tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_detailed_filter_by_server_status + - tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_detailed_limit_results + - tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filter_by_active_status + - tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filter_by_flavor + - tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filter_by_image + - tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filter_by_limit + - tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filter_by_server_name + - tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filter_by_server_status + - tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filtered_by_name_wildcard + - tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_changes_since_future_date + - tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_changes_since_invalid_date + - tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_limits + - tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_limits_greater_than_actual_count + - tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_limits_pass_negative_value + - tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_limits_pass_string + - tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_non_existing_flavor + - tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_non_existing_image + - tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_non_existing_server_name + - tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_detail_server_is_deleted + - tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_status_non_existing + - tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_with_a_deleted_server + - tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_lock_unlock_server + - tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_reboot_server_hard + - tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_rebuild_server + - tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_stop_start_server + - tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_delete_server_metadata_item + - tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_get_server_metadata_item + - tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_list_server_metadata + - tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_set_server_metadata + - tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_set_server_metadata_item + - tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_update_server_metadata + - tempest.api.compute.servers.test_servers.ServersTestJSON.test_create_server_with_admin_password + - tempest.api.compute.servers.test_servers.ServersTestJSON.test_create_specify_keypair + - tempest.api.compute.servers.test_servers.ServersTestJSON.test_create_with_existing_server_name + - tempest.api.compute.servers.test_servers.ServersTestJSON.test_update_access_server_address + - tempest.api.compute.servers.test_servers.ServersTestJSON.test_update_server_name + - tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_create_numeric_server_name + - tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_create_server_metadata_exceeds_length_limit + - tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_create_server_name_length_exceeds_256 + - tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_create_with_invalid_flavor + - tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_create_with_invalid_image + - tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_create_with_invalid_network_uuid + - tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_delete_server_pass_id_exceeding_length_limit + - tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_delete_server_pass_negative_id + - tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_get_non_existent_server + - tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_invalid_ip_v6_address + - tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_reboot_non_existent_server + - tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_rebuild_deleted_server + - tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_rebuild_non_existent_server + - tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_rebuild_reboot_deleted_server + - tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_server_name_blank + - tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_stop_non_existent_server + - tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_update_name_of_non_existent_server + - tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_update_server_name_length_exceeds_256 + - tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_update_server_set_empty_name + - tempest.api.compute.test_quotas.QuotasTestJSON.test_get_default_quotas + - tempest.api.compute.test_quotas.QuotasTestJSON.test_get_quotas + - tempest.api.compute.test_versions.TestVersions.test_list_api_versions + - tempest.api.compute.volumes.test_attach_volume.AttachVolumeTestJSON.test_attach_detach_volume + - tempest.api.compute.volumes.test_attach_volume.AttachVolumeTestJSON.test_list_get_volume_attachments + - tempest.api.identity.v3.TestApiDiscovery.test_api_media_types + - tempest.api.identity.v3.TestApiDiscovery.test_api_version_resources + - tempest.api.identity.v3.TestApiDiscovery.test_api_version_statuses + - tempest.api.identity.v3.test_api_discovery.TestApiDiscovery.test_api_media_types + - tempest.api.identity.v3.test_api_discovery.TestApiDiscovery.test_api_version_resources + - tempest.api.identity.v3.test_api_discovery.TestApiDiscovery.test_api_version_statuses + - tempest.api.identity.v3.test_tokens.TokensV3Test.test_create_token + - tempest.api.image.v2.test_images.BasicOperationsImagesTest.test_delete_image + - tempest.api.image.v2.test_images.BasicOperationsImagesTest.test_update_image + - tempest.api.image.v2.test_images.ListImagesTest.test_get_image_schema + - tempest.api.image.v2.test_images.ListImagesTest.test_get_images_schema + - tempest.api.image.v2.test_images.ListImagesTest.test_index_no_params + - tempest.api.image.v2.test_images.ListImagesTest.test_list_images_param_container_format + - tempest.api.image.v2.test_images.ListImagesTest.test_list_images_param_disk_format + - tempest.api.image.v2.test_images.ListImagesTest.test_list_images_param_limit + - tempest.api.image.v2.test_images.ListImagesTest.test_list_images_param_min_max_size + - tempest.api.image.v2.test_images.ListImagesTest.test_list_images_param_size + - tempest.api.image.v2.test_images.ListImagesTest.test_list_images_param_status + - tempest.api.image.v2.test_images.ListImagesTest.test_list_images_param_visibility + - tempest.api.image.v2.test_images.ListImagesTest.test_list_no_params + - tempest.api.image.v2.test_images.ListUserImagesTest.test_get_image_schema + - tempest.api.image.v2.test_images.ListUserImagesTest.test_get_images_schema + - tempest.api.image.v2.test_images.ListUserImagesTest.test_list_images_param_container_format + - tempest.api.image.v2.test_images.ListUserImagesTest.test_list_images_param_disk_format + - tempest.api.image.v2.test_images.ListUserImagesTest.test_list_images_param_limit + - tempest.api.image.v2.test_images.ListUserImagesTest.test_list_images_param_min_max_size + - tempest.api.image.v2.test_images.ListUserImagesTest.test_list_images_param_size + - tempest.api.image.v2.test_images.ListUserImagesTest.test_list_images_param_status + - tempest.api.image.v2.test_images.ListUserImagesTest.test_list_images_param_visibility + - tempest.api.image.v2.test_images.ListUserImagesTest.test_list_no_params + - tempest.api.image.v2.test_images_negative.ImagesNegativeTest.test_delete_image_null_id + - tempest.api.image.v2.test_images_negative.ImagesNegativeTest.test_delete_non_existing_image + - tempest.api.image.v2.test_images_negative.ImagesNegativeTest.test_get_delete_deleted_image + - tempest.api.image.v2.test_images_negative.ImagesNegativeTest.test_get_image_null_id + - tempest.api.image.v2.test_images_negative.ImagesNegativeTest.test_get_non_existent_image + - tempest.api.image.v2.test_images_tags.ImagesTagsTest.test_update_delete_tags_for_image + - tempest.api.image.v2.test_images_tags_negative.ImagesTagsNegativeTest.test_delete_non_existing_tag + - tempest.api.image.v2.test_images_tags_negative.ImagesTagsNegativeTest.test_update_tags_for_non_existing_image + - tempest.api.network.test_networks.NetworksTest.test_create_delete_subnet_all_attributes + - tempest.api.network.test_networks.NetworksTest.test_create_delete_subnet_with_allocation_pools + - tempest.api.network.test_networks.NetworksTest.test_create_delete_subnet_with_dhcp_enabled + - tempest.api.network.test_networks.NetworksTest.test_create_delete_subnet_with_gw + - tempest.api.network.test_networks.NetworksTest.test_create_delete_subnet_with_gw_and_allocation_pools + - tempest.api.network.test_networks.NetworksTest.test_create_delete_subnet_with_host_routes_and_dns_nameservers + - tempest.api.network.test_networks.NetworksTest.test_create_delete_subnet_without_gateway + - tempest.api.network.test_networks.NetworksTest.test_create_update_delete_network_subnet + - tempest.api.network.test_networks.NetworksTest.test_delete_network_with_subnet + - tempest.api.network.test_networks.NetworksTest.test_list_networks + - tempest.api.network.test_networks.NetworksTest.test_list_networks_fields + - tempest.api.network.test_networks.NetworksTest.test_list_subnets + - tempest.api.network.test_networks.NetworksTest.test_list_subnets_fields + - tempest.api.network.test_networks.NetworksTest.test_show_network + - tempest.api.network.test_networks.NetworksTest.test_show_network_fields + - tempest.api.network.test_networks.NetworksTest.test_show_subnet + - tempest.api.network.test_networks.NetworksTest.test_show_subnet_fields + - tempest.api.network.test_networks.NetworksTest.test_update_subnet_gw_dns_host_routes_dhcp + - tempest.api.network.test_networks.NetworksTestJSON.test_create_delete_subnet_all_attributes + - tempest.api.network.test_networks.NetworksTestJSON.test_create_delete_subnet_with_allocation_pools + - tempest.api.network.test_networks.NetworksTestJSON.test_create_delete_subnet_with_dhcp_enabled + - tempest.api.network.test_networks.NetworksTestJSON.test_create_delete_subnet_with_gw + - tempest.api.network.test_networks.NetworksTestJSON.test_create_delete_subnet_with_gw_and_allocation_pools + - tempest.api.network.test_networks.NetworksTestJSON.test_create_delete_subnet_with_host_routes_and_dns_nameservers + - tempest.api.network.test_networks.NetworksTestJSON.test_create_delete_subnet_without_gateway + - tempest.api.network.test_networks.NetworksTestJSON.test_create_update_delete_network_subnet + - tempest.api.network.test_networks.NetworksTestJSON.test_delete_network_with_subnet + - tempest.api.network.test_networks.NetworksTestJSON.test_list_networks + - tempest.api.network.test_networks.NetworksTestJSON.test_list_networks_fields + - tempest.api.network.test_networks.NetworksTestJSON.test_list_subnets + - tempest.api.network.test_networks.NetworksTestJSON.test_list_subnets_fields + - tempest.api.network.test_networks.NetworksTestJSON.test_show_network + - tempest.api.network.test_networks.NetworksTestJSON.test_show_network_fields + - tempest.api.network.test_networks.NetworksTestJSON.test_show_subnet + - tempest.api.network.test_networks.NetworksTestJSON.test_show_subnet_fields + - tempest.api.network.test_networks.NetworksTestJSON.test_update_subnet_gw_dns_host_routes_dhcp + - tempest.api.network.test_ports.PortsTestJSON.test_create_bulk_port + - tempest.api.network.test_ports.PortsTestJSON.test_create_port_in_allowed_allocation_pools + - tempest.api.network.test_ports.PortsTestJSON.test_create_update_delete_port + - tempest.api.network.test_ports.PortsTestJSON.test_list_ports + - tempest.api.network.test_ports.PortsTestJSON.test_list_ports_fields + - tempest.api.network.test_ports.PortsTestJSON.test_show_port + - tempest.api.network.test_ports.PortsTestJSON.test_show_port_fields + - tempest.api.network.test_ports.PortsTestJSON.test_update_port_with_security_group_and_extra_attributes + - tempest.api.network.test_ports.PortsTestJSON.test_update_port_with_two_security_groups_and_extra_attributes + - tempest.api.network.test_security_groups.SecGroupTest.test_create_list_update_show_delete_security_group + - tempest.api.network.test_security_groups.SecGroupTest.test_create_security_group_rule_with_additional_args + - tempest.api.network.test_security_groups.SecGroupTest.test_create_security_group_rule_with_icmp_type_code + - tempest.api.network.test_security_groups.SecGroupTest.test_create_security_group_rule_with_protocol_integer_value + - tempest.api.network.test_security_groups.SecGroupTest.test_create_security_group_rule_with_remote_group_id + - tempest.api.network.test_security_groups.SecGroupTest.test_create_security_group_rule_with_remote_ip_prefix + - tempest.api.network.test_security_groups.SecGroupTest.test_create_show_delete_security_group_rule + - tempest.api.network.test_security_groups.SecGroupTest.test_list_security_groups + - tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_additional_default_security_group_fails + - tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_duplicate_security_group_rule_fails + - tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_security_group_rule_with_bad_ethertype + - tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_security_group_rule_with_bad_protocol + - tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_security_group_rule_with_bad_remote_ip_prefix + - tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_security_group_rule_with_invalid_ports + - tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_security_group_rule_with_non_existent_remote_groupid + - tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_security_group_rule_with_non_existent_security_group + - tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_delete_non_existent_security_group + - tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_show_non_existent_security_group + - tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_show_non_existent_security_group_rule + - tempest.api.volume.test_availability_zone.AvailabilityZoneV2TestJSON.test_get_availability_zone_list + - tempest.api.volume.test_extensions.ExtensionsV2TestJSON.test_list_extensions + - tempest.api.volume.test_snapshot_metadata.SnapshotV2MetadataTestJSON.test_create_get_delete_snapshot_metadata + - tempest.api.volume.test_snapshot_metadata.SnapshotV2MetadataTestJSON.test_crud_snapshot_metadata + - tempest.api.volume.test_snapshot_metadata.SnapshotV2MetadataTestJSON.test_update_snapshot_metadata_item + - tempest.api.volume.test_volume_metadata.VolumesV2MetadataTest.test_create_get_delete_volume_metadata + - tempest.api.volume.test_volume_metadata.VolumesV2MetadataTest.test_crud_volume_metadata + - tempest.api.volume.test_volume_metadata.VolumesV2MetadataTest.test_update_volume_metadata_item + - tempest.api.volume.test_volumes_actions.VolumesV2ActionsTest.test_attach_detach_volume_to_instance + - tempest.api.volume.test_volumes_actions.VolumesV2ActionsTest.test_get_volume_attachment + - tempest.api.volume.test_volumes_actions.VolumesV2ActionsTest.test_reserve_unreserve_volume + - tempest.api.volume.test_volumes_actions.VolumesV2ActionsTest.test_volume_bootable + - tempest.api.volume.test_volumes_actions.VolumesV2ActionsTest.test_volume_readonly_update + - tempest.api.volume.test_volumes_get.VolumesV2GetTest.test_volume_create_get_update_delete + - tempest.api.volume.test_volumes_get.VolumesV2GetTest.test_volume_create_get_update_delete_as_clone + - tempest.api.volume.test_volumes_get.VolumesV2GetTest.test_volume_create_get_update_delete_from_image + - tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list + - tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_by_name + - tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_details_by_name + - tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_param_display_name_and_status + - tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_with_detail_param_display_name_and_status + - tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_with_detail_param_metadata + - tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_with_details + - tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_with_param_metadata + - tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volumes_list_by_availability_zone + - tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volumes_list_by_status + - tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volumes_list_details_by_availability_zone + - tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volumes_list_details_by_status + - tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_attach_volumes_with_nonexistent_volume_id + - tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_with_invalid_size + - tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_with_nonexistent_snapshot_id + - tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_with_nonexistent_source_volid + - tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_with_nonexistent_volume_type + - tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_with_out_passing_size + - tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_with_size_negative + - tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_with_size_zero + - tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_without_passing_size + - tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_delete_invalid_volume_id + - tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_delete_volume_without_passing_volume_id + - tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_detach_volumes_with_invalid_volume_id + - tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_get_invalid_volume_id + - tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_get_volume_without_passing_volume_id + - tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_list_volumes_detail_with_invalid_status + - tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_list_volumes_detail_with_nonexistent_name + - tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_list_volumes_with_invalid_status + - tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_list_volumes_with_nonexistent_name + - tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_reserve_volume_with_negative_volume_status + - tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_reserve_volume_with_nonexistent_volume_id + - tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_unreserve_volume_with_nonexistent_volume_id + - tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_update_volume_with_empty_volume_id + - tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_update_volume_with_invalid_volume_id + - tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_update_volume_with_nonexistent_volume_id + - tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_volume_delete_nonexistent_volume_id + - tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_volume_get_nonexistent_volume_id + - tempest.api.volume.test_volumes_snapshots.VolumesV2SnapshotTestJSON.test_snapshot_create_get_list_update_delete + - tempest.api.volume.test_volumes_snapshots.VolumesV2SnapshotTestJSON.test_snapshots_list_details_with_params + - tempest.api.volume.test_volumes_snapshots.VolumesV2SnapshotTestJSON.test_snapshots_list_with_params + - tempest.api.volume.test_volumes_snapshots.VolumesV2SnapshotTestJSON.test_volume_from_snapshot + - tempest.api.volume.test_volumes_snapshots_list.VolumesV2SnapshotListTestJSON.test_snapshots_list_details_with_params + - tempest.api.volume.test_volumes_snapshots_list.VolumesV2SnapshotListTestJSON.test_snapshots_list_with_params + - tempest.api.volume.test_volumes_snapshots_negative.VolumesV2SnapshotNegativeTestJSON.test_create_snapshot_with_nonexistent_volume_id + - tempest.api.volume.test_volumes_snapshots_negative.VolumesV2SnapshotNegativeTestJSON.test_create_snapshot_without_passing_volume_id + - tempest.api.volume.v2.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_details_pagination + - tempest.api.volume.v2.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_details_with_multiple_params + - tempest.api.volume.v2.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_pagination diff --git a/utils/launch_db.sh b/utils/launch_db.sh index 008c9600..f3681665 100755 --- a/utils/launch_db.sh +++ b/utils/launch_db.sh @@ -82,9 +82,20 @@ echo "=================================" echo "Upload default project info to DB" echo "=================================" -# install python packages -sudo apt-get update > /dev/null -sudo apt-get install -y python-pip > /dev/null +# For Ubuntu, there is file /etc/lsb-release +# For Centos and redhat, there is file /etc/redhat-release +if [ -f /etc/lsb-release ]; then + sudo apt-get update > /dev/null + sudo apt-get install -y python-pip > /dev/null +elif [ -f /etc/redhat-release ]; then + sudo yum -y update > /dev/null + sudo yum -y install epel-release > /dev/null + sudo yum -y install python-pip > /dev/null +else + echo "This operating system is not currently supported." + exit 1 +fi + pip install requests > /dev/null echo "Init DB info..." |