diff --git a/.zuul.yaml b/.zuul.yaml index 5eb162ecc3..992275c5fa 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -65,6 +65,7 @@ - job: name: grenade-heat parent: grenade + voting: false required-projects: - opendev.org/openstack/heat - opendev.org/openstack/heat-tempest-plugin diff --git a/doc/source/getting_started/on_devstack.rst b/doc/source/getting_started/on_devstack.rst index 75b4cfac4d..af73c49e6a 100644 --- a/doc/source/getting_started/on_devstack.rst +++ b/doc/source/getting_started/on_devstack.rst @@ -51,8 +51,8 @@ a VM image that heat can launch. To do that add the following to `[[local|localrc]]` section of `local.conf`:: IMAGE_URL_SITE="https://download.fedoraproject.org" - IMAGE_URL_PATH="/pub/fedora/linux/releases/32/Cloud/x86_64/images/" - IMAGE_URL_FILE="Fedora-Cloud-Base-32-1.6.x86_64.qcow2" + IMAGE_URL_PATH="/pub/fedora/linux/releases/33/Cloud/x86_64/images/" + IMAGE_URL_FILE="Fedora-Cloud-Base-33-1.2.x86_64.qcow2" IMAGE_URLS+=","$IMAGE_URL_SITE$IMAGE_URL_PATH$IMAGE_URL_FILE URLs for any cloud image may be specified, but fedora images from F20 contain diff --git a/heat/tests/clients/test_cinder_client.py b/heat/tests/clients/test_cinder_client.py index bebfc574d8..2d0db3b5d8 100644 --- a/heat/tests/clients/test_cinder_client.py +++ b/heat/tests/clients/test_cinder_client.py @@ -163,14 +163,6 @@ class CinderClientAPIVersionTest(common.HeatTestCase): client = ctx.clients.client('cinder') self.assertEqual('3.0', client.version) - def test_cinder_api_v2(self): - ctx = utils.dummy_context() - self.patchobject(ctx.keystone_session, 'get_endpoint', - side_effect=[ks_exceptions.EndpointNotFound, - None]) - client = ctx.clients.client('cinder') - self.assertEqual('2.0', client.version) - def test_cinder_api_not_supported(self): ctx = utils.dummy_context() self.patchobject(ctx.keystone_session, 'get_endpoint', diff --git a/heat/tests/openstack/cinder/test_volume.py b/heat/tests/openstack/cinder/test_volume.py index d55159869b..73f8752e2d 100644 --- a/heat/tests/openstack/cinder/test_volume.py +++ b/heat/tests/openstack/cinder/test_volume.py @@ -1253,7 +1253,7 @@ class CinderVolumeTest(vt_base.VolumeTestCase): vol.to_dict.return_value = vol_resp rsrc.client().volumes = mock.MagicMock() rsrc.client().volumes.get = mock.MagicMock(return_value=vol) - rsrc.client().volume_api_version = 2 + rsrc.client().volume_api_version = 3 rsrc.data = mock.MagicMock(return_value={'volume_type': 'lvmdriver-1'}) reality = rsrc.get_live_state(rsrc.properties) diff --git a/heat/tests/openstack/cinder/test_volume_type.py b/heat/tests/openstack/cinder/test_volume_type.py index 0d31ba24a4..264bfbb862 100644 --- a/heat/tests/openstack/cinder/test_volume_type.py +++ b/heat/tests/openstack/cinder/test_volume_type.py @@ -93,7 +93,7 @@ class CinderVolumeTypeTest(common.HeatTestCase): self._test_handle_create(is_public=False) def test_volume_type_with_projects(self): - self.cinderclient.volume_api_version = 2 + self.cinderclient.volume_api_version = 3 self._test_handle_create(projects=['id1', 'id2']) def _test_update(self, update_args, is_update_metadata=False): @@ -179,7 +179,7 @@ class CinderVolumeTypeTest(common.HeatTestCase): props['projects'] = ['id1'] self.my_volume_type.t = self.my_volume_type.t.freeze(properties=props) self.my_volume_type.reparse() - self.cinderclient.volume_api_version = 2 + self.cinderclient.volume_api_version = 3 self.stub_KeystoneProjectConstraint() ex = self.assertRaises(exception.StackValidationFailed, self.my_volume_type.validate) @@ -194,7 +194,7 @@ class CinderVolumeTypeTest(common.HeatTestCase): props['projects'] = ['id1'] self.my_volume_type.t = self.my_volume_type.t.freeze(properties=props) self.my_volume_type.reparse() - self.cinderclient.volume_api_version = 2 + self.cinderclient.volume_api_version = 3 self.stub_KeystoneProjectConstraint() self.assertIsNone(self.my_volume_type.validate()) diff --git a/heat/tests/openstack/cinder/test_volume_utils.py b/heat/tests/openstack/cinder/test_volume_utils.py index e5aee1bc10..8654e605b6 100644 --- a/heat/tests/openstack/cinder/test_volume_utils.py +++ b/heat/tests/openstack/cinder/test_volume_utils.py @@ -10,11 +10,12 @@ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. - -from cinderclient.v2 import client as cinderclient import mock import six + +from cinderclient.v3 import client as cinderclient + from heat.engine.clients.os import cinder from heat.engine.clients.os import nova from heat.engine.resources.aws.ec2 import volume as aws_vol @@ -31,7 +32,7 @@ class VolumeTestCase(common.HeatTestCase): super(VolumeTestCase, self).setUp() self.fc = fakes_nova.FakeClient() self.cinder_fc = cinderclient.Client('username', 'password') - self.cinder_fc.volume_api_version = 2 + self.cinder_fc.volume_api_version = 3 self.patchobject(cinder.CinderClientPlugin, '_create', return_value=self.cinder_fc) self.patchobject(nova.NovaClientPlugin, 'client', diff --git a/heat_integrationtests/cleanup_test_env.sh b/heat_integrationtests/cleanup_test_env.sh index cad2b6f170..55e235c4cd 100755 --- a/heat_integrationtests/cleanup_test_env.sh +++ b/heat_integrationtests/cleanup_test_env.sh @@ -30,4 +30,4 @@ openstack flavor delete m1.heat_int openstack flavor delete m1.heat_micro # delete the image created -openstack image delete Fedora-Cloud-Base-32-1.6.x86_64 +openstack image delete Fedora-Cloud-Base-33-1.2.x86_64 diff --git a/heat_integrationtests/common/clients.py b/heat_integrationtests/common/clients.py index d2cc929775..c70b81682d 100644 --- a/heat_integrationtests/common/clients.py +++ b/heat_integrationtests/common/clients.py @@ -12,12 +12,10 @@ import os -from cinderclient import client as cinder_client from heat.common.i18n import _ from heatclient import client as heat_client from keystoneauth1.identity.generic import password from keystoneauth1 import session -from neutronclient.v2_0 import client as neutron_client from novaclient import client as nova_client from swiftclient import client as swift_client @@ -60,7 +58,6 @@ class ClientManager(object): calling various OpenStack APIs. """ - CINDERCLIENT_VERSION = '2' HEATCLIENT_VERSION = '1' NOVA_API_VERSION = '2.1' @@ -81,8 +78,6 @@ class ClientManager(object): self.identity_client = self._get_identity_client() self.orchestration_client = self._get_orchestration_client() self.compute_client = self._get_compute_client() - self.network_client = self._get_network_client() - self.volume_client = self._get_volume_client() self.object_client = self._get_object_client() def _username(self): @@ -154,22 +149,6 @@ class ClientManager(object): os_cache=False, http_log_debug=True) - def _get_network_client(self): - - return neutron_client.Client( - session=self.identity_client.session, - service_type='network', - region_name=self.conf.region, - endpoint_type='publicURL') - - def _get_volume_client(self): - return cinder_client.Client( - self.CINDERCLIENT_VERSION, - session=self.identity_client.session, - endpoint_type='publicURL', - region_name=self.conf.region, - http_log_debug=True) - def _get_object_client(self): args = { 'auth_version': self.auth_version, diff --git a/heat_integrationtests/common/test.py b/heat_integrationtests/common/test.py index 86d7d0a55d..11f6072c37 100644 --- a/heat_integrationtests/common/test.py +++ b/heat_integrationtests/common/test.py @@ -105,8 +105,6 @@ class HeatIntegrationTest(testscenarios.WithScenarios, self.identity_client = self.manager.identity_client self.orchestration_client = self.manager.orchestration_client self.compute_client = self.manager.compute_client - self.network_client = self.manager.network_client - self.volume_client = self.manager.volume_client self.object_client = self.manager.object_client self.client = self.orchestration_client @@ -170,14 +168,6 @@ class HeatIntegrationTest(testscenarios.WithScenarios, def _stack_rand_name(cls): return rand_name(cls.__name__) - def _get_network(self, net_name=None): - if net_name is None: - net_name = self.conf.fixed_network_name - networks = self.network_client.list_networks() - for net in networks['networks']: - if net['name'] == net_name: - return net - def is_service_available(self, service_type): try: self.identity_client.get_endpoint_url( diff --git a/heat_integrationtests/pre_test_hook.sh b/heat_integrationtests/pre_test_hook.sh index e6ae42b731..da50ceb091 100755 --- a/heat_integrationtests/pre_test_hook.sh +++ b/heat_integrationtests/pre_test_hook.sh @@ -44,9 +44,9 @@ echo "[[local|localrc]]" >> $localconf # to network if [[ -e /etc/ci/mirror_info.sh ]]; then source /etc/ci/mirror_info.sh - echo "IMAGE_URLS+=${NODEPOOL_FEDORA_MIRROR}/releases/32/Cloud/x86_64/images/Fedora-Cloud-Base-32-1.6.x86_64.qcow2" >> $localconf + echo "IMAGE_URLS+=${NODEPOOL_FEDORA_MIRROR}/releases/33/Cloud/x86_64/images/Fedora-Cloud-Base-33-1.2.x86_64.qcow2" >> $localconf else - echo "IMAGE_URLS+=https://download.fedoraproject.org/pub/fedora/linux/releases/32/Cloud/x86_64/images/Fedora-Cloud-Base-32-1.6.x86_64.qcow2" >> $localconf + echo "IMAGE_URLS+=https://download.fedoraproject.org/pub/fedora/linux/releases/33/Cloud/x86_64/images/Fedora-Cloud-Base-33-1.2.x86_64.qcow2" >> $localconf fi echo "CEILOMETER_PIPELINE_INTERVAL=60" >> $localconf diff --git a/heat_integrationtests/prepare_test_env.sh b/heat_integrationtests/prepare_test_env.sh index ed976e2add..eb26986f1b 100755 --- a/heat_integrationtests/prepare_test_env.sh +++ b/heat_integrationtests/prepare_test_env.sh @@ -46,7 +46,7 @@ function _config_iniset { iniset $conf_file heat_plugin instance_type m1.heat_int iniset $conf_file heat_plugin minimal_instance_type m1.heat_micro - iniset $conf_file heat_plugin image_ref Fedora-Cloud-Base-32-1.6.x86_64 + iniset $conf_file heat_plugin image_ref Fedora-Cloud-Base-33-1.2.x86_64 iniset $conf_file heat_plugin minimal_image_ref $default_image_name iniset $conf_file heat_plugin hidden_stack_tag hidden