Add pre creating resources for heat tempest plugin
Add functionality for pre creating resources for heat tempest plugin
Change-Id: Ie230a6090a82a79a75d79d7d91a7c38130da3efe
Related-prod: PROD-18144
diff --git a/_modules/runtest/tempest_sections/heat_plugin.py b/_modules/runtest/tempest_sections/heat_plugin.py
index 0f2e16f..219b226 100644
--- a/_modules/runtest/tempest_sections/heat_plugin.py
+++ b/_modules/runtest/tempest_sections/heat_plugin.py
@@ -1,6 +1,8 @@
import base_section
+from runtest import conditions
+
class HeatPlugin(base_section.BaseSection):
name = "heat_plugin"
@@ -53,7 +55,9 @@
@property
def admin_password(self):
- pass
+ c = conditions.BaseRule('keystone.server.enabled', 'eq', True)
+ return self.get_item_when_condition_match(
+ 'keystone.server.admin_password', c)
@property
def admin_project_name(self):
@@ -61,11 +65,20 @@
@property
def admin_username(self):
- pass
+ c = conditions.BaseRule('keystone.server.enabled', 'eq', True)
+ return self.get_item_when_condition_match(
+ 'keystone.server.admin_name', c)
@property
def auth_url(self):
- pass
+ c = conditions.BaseRule('keystone.server.enabled', 'eq', True)
+ protocol = self.get_item_when_condition_match(
+ 'keystone.server.bind.private_protocol', c) or 'http'
+ vip = self.get_item_when_condition_match(
+ '_param.cluster_vip_address', c)
+ port = self.get_item_when_condition_match(
+ 'keystone.server.bind.private_port', c)
+ return "{}://{}:{}".format(protocol, vip, port)
@property
def auth_version(self):
@@ -149,7 +162,9 @@
@property
def password(self):
- pass
+ c = conditions.BaseRule('keystone.server.enabled', 'eq', True)
+ return self.get_item_when_condition_match(
+ 'keystone.server.admin_password', c)
@property
def project_domain_id(self):
@@ -161,11 +176,15 @@
@property
def project_name(self):
- pass
+ c = conditions.BaseRule('keystone.server.enabled', 'eq', True)
+ return self.get_item_when_condition_match(
+ 'keystone.server.admin_tenant', c)
@property
def region(self):
- pass
+ c = conditions.BaseRule('keystone.server.enabled', 'eq', True)
+ return self.get_item_when_condition_match(
+ 'keystone.server.region', c)
@property
def sighup_config_edit_retries(self):
@@ -217,7 +236,9 @@
@property
def username(self):
- pass
+ c = conditions.BaseRule('keystone.server.enabled', 'eq', True)
+ return self.get_item_when_condition_match(
+ 'keystone.server.admin_name', c)
@property
def volume_size(self):
diff --git a/_modules/runtest/tempest_sections/service_available.py b/_modules/runtest/tempest_sections/service_available.py
index 381eab8..64fd929 100644
--- a/_modules/runtest/tempest_sections/service_available.py
+++ b/_modules/runtest/tempest_sections/service_available.py
@@ -5,16 +5,23 @@
name = "service_available"
options = [
+ 'aodh',
+ 'barbican',
'cinder',
+ 'ceilometer',
'designate',
'glance',
+ 'gnocchi',
'heat',
'ironic',
+ 'manila',
'neutron',
'nova',
+ 'panko',
'sahara',
'swift',
'horizon',
+ 'keystone',
]
@@ -42,10 +49,22 @@
return False
@property
+ def aodh(self):
+ return self._is_service_enabled('aodh')
+
+ @property
+ def barbican(self):
+ return self._is_service_enabled('barbican')
+
+ @property
def cinder(self):
return self._is_service_enabled('cinder')
@property
+ def ceilometer(self):
+ return self._is_service_enabled('ceilometer')
+
+ @property
def designate(self):
return self._is_service_enabled('designate')
@@ -54,6 +73,10 @@
return self._is_service_enabled('glance')
@property
+ def gnocchi(self):
+ return self._is_service_enabled('gnocchi')
+
+ @property
def heat(self):
return self._is_service_enabled('heat')
@@ -62,6 +85,10 @@
return self._is_service_enabled('ironic')
@property
+ def manila(self):
+ return self._is_service_enabled('manila')
+
+ @property
def neutron(self):
return self._is_service_enabled('neutron')
@@ -70,6 +97,10 @@
return self._is_service_enabled('nova')
@property
+ def panko(self):
+ return self._is_service_enabled('panko')
+
+ @property
def sahara(self):
return self._is_service_enabled('sahara')
@@ -79,4 +110,8 @@
@property
def horizon(self):
- return self._is_service_enabled('horizon')
\ No newline at end of file
+ return self._is_service_enabled('horizon')
+
+ @property
+ def keystone(self):
+ return self._is_service_enabled('keystone')
\ No newline at end of file
diff --git a/metadata/service/tempest.yml b/metadata/service/tempest.yml
deleted file mode 100644
index 3db89c5..0000000
--- a/metadata/service/tempest.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-applications:
- - runtest
-parameters:
- _param:
- tempest_test_target: cfg01*
- runtest:
- enabled: true
- openstack_version: stable/${_param:openstack_version}
- tempest:
- enabled: true
- test_target: ${_param:tempest_test_target}
diff --git a/metadata/service/tempest/glance.yml b/metadata/service/tempest/glance.yml
new file mode 100644
index 0000000..6093c84
--- /dev/null
+++ b/metadata/service/tempest/glance.yml
@@ -0,0 +1,32 @@
+parameters:
+ _param:
+ glance_image_cirros_location: 'http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img'
+ glance_image_fedora_location: 'https://mirror.chpc.utah.edu/pub/fedora/linux/releases/27/CloudImages/x86_64/images/Fedora-Cloud-Base-27-1.6.x86_64.qcow2'
+ glance_image_cirros_name: 'TestCirros-0.3.5'
+ glance_image_fedora_name: 'TestFedora-27-1.6'
+ glance:
+ client:
+ enabled: True
+ identity:
+ admin_identity:
+ image:
+ cirros:
+ name: ${_param:glance_image_cirros_name}
+ location: ${_param:glance_image_cirros_location}
+ import_from_format: 'qcow2'
+ container_format: 'bare'
+ disk_format: 'qcow2'
+ tags:
+ - 'cirros'
+ visibility: public
+ wait_timeout: 1000
+ fedora:
+ name: ${_param:glance_image_fedora_name}
+ location: ${_param:glance_image_fedora_location}
+ import_from_format: 'qcow2'
+ container_format: 'bare'
+ disk_format: 'qcow2'
+ tags:
+ - 'fedora'
+ visibility: public
+ wait_timeout: 1000
\ No newline at end of file
diff --git a/metadata/service/tempest/init.yml b/metadata/service/tempest/init.yml
new file mode 100644
index 0000000..5f00c21
--- /dev/null
+++ b/metadata/service/tempest/init.yml
@@ -0,0 +1,28 @@
+classes:
+ - service.runtest.tempest.glance
+ - service.runtest.tempest.nova
+ - service.runtest.tempest.neutron
+applications:
+ - runtest
+parameters:
+ _param:
+ runtest_heat_plugin_skip_scenario_test_list: 'SoftwareConfigIntegrationTest, VolumeBackupRestoreIntegrationTest'
+ runtest_path_to_ca_file: '/etc/ssl/certs/ca-certificates.crt'
+ tempest_test_target: cfg01*
+ runtest:
+ enabled: true
+ openstack_version: stable/${_param:openstack_version}
+ tempest:
+ enabled: true
+ test_target: ${_param:tempest_test_target}
+ heat_plugin:
+ skip_scenario_test_list: ${_param:runtest_heat_plugin_skip_scenario_test_list}
+ instance_type: 'test-m1.tiny'
+ minimal_instance_type: 'test-m1.extra_tiny'
+ auth_version: 3
+ project_domain_id: default
+ user_domain_id: default
+ disable_ssl_certificate_validation: False
+ ca_file: ${_param:runtest_path_to_ca_file}
+ image_ref: ${glance:client:identity:admin_identity:image:fedora:name}
+ minimal_image_ref: ${glance:client:identity:admin_identity:image:cirros:name}
diff --git a/metadata/service/tempest/neutron.yml b/metadata/service/tempest/neutron.yml
new file mode 100644
index 0000000..a4bcce7
--- /dev/null
+++ b/metadata/service/tempest/neutron.yml
@@ -0,0 +1,20 @@
+parameters:
+ neutron:
+ client:
+ server:
+ admin_identity:
+ network:
+ heat-net:
+ tenant: admin
+ shared: False
+ router_external: True
+ default: True
+ admin_state_up: True
+ subnet:
+ heat_subnet:
+ cidr: 10.20.30.0/24
+ allocation_pools:
+ - start: 10.20.30.10
+ end: 10.20.30.254
+ gateway: 10.20.30.1
+ enable_dhcp: False
\ No newline at end of file
diff --git a/metadata/service/tempest/nova.yml b/metadata/service/tempest/nova.yml
new file mode 100644
index 0000000..34e3d2b
--- /dev/null
+++ b/metadata/service/tempest/nova.yml
@@ -0,0 +1,15 @@
+parameters:
+ nova:
+ client:
+ enabled: True
+ server:
+ admin_identity:
+ flavor:
+ test-m1.tiny:
+ ram: 512
+ disk: 5
+ vcpus: 1
+ test-m1.extra_tiny:
+ ram: 256
+ disk: 1
+ vcpus: 1
\ No newline at end of file