summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakashi Kajinami <tkajinam@redhat.com>2021-07-25 02:13:11 +0900
committerrabi <ramishra@redhat.com>2021-08-25 13:44:56 +0530
commitc0d82c5e312309320e6c9e5ca84cd3635375cce7 (patch)
tree41f9755b2c74e80b9986f3db1a206e00ee1fafd6
parentb9a3395978bf60d3ce769b8fcedc60b7127f404f (diff)
downloadheat-stable/ussuri.tar.gz
Use Block Storage API v3 instead of API v2stable/ussuri
Block Storage API v2 was deprecated during Pike cycle and is being removed during Xena cycle, and current v3 API should be used instead. Unused volume_client and network_client in integration test code are also removed by this change. Note: granade tests is made non-voting temporally until the same issue is fixed in stable/victoria. Also, changes to use fedora 33 for tests. Depends-on: https://review.opendev.org/802150/ Change-Id: I6a2b5afa13480791971bbd8bba1f43b9f2db8294 (cherry picked from commit 1828df32fa946d49d8449ff1d8a26c05b3990a65) Move testing to Fedora 33 Now that the gate is unblocked, we can also test F33 for gating purposes here. Change-Id: Ie1c9075623d85b27aaf1ac67a3063e219726bc6f (cherry picked from commit 6a9c35d89804057b56e1b0b995265ce3eb68129d)
-rw-r--r--.zuul.yaml3
-rw-r--r--devstack/lib/heat4
-rw-r--r--doc/source/getting_started/on_devstack.rst4
-rw-r--r--heat/tests/clients/test_cinder_client.py8
-rw-r--r--heat/tests/openstack/cinder/test_volume.py2
-rw-r--r--heat/tests/openstack/cinder/test_volume_type.py6
-rw-r--r--heat/tests/openstack/cinder/test_volume_utils.py9
-rwxr-xr-xheat_integrationtests/cleanup_test_env.sh2
-rw-r--r--heat_integrationtests/common/clients.py21
-rw-r--r--heat_integrationtests/common/test.py10
-rwxr-xr-xheat_integrationtests/prepare_test_env.sh2
11 files changed, 17 insertions, 54 deletions
diff --git a/.zuul.yaml b/.zuul.yaml
index cf4eca9db..545dc00bb 100644
--- a/.zuul.yaml
+++ b/.zuul.yaml
@@ -79,7 +79,7 @@
minimal_image_ref: ${DEFAULT_IMAGE_NAME:-cirros-0.3.6-x86_64-disk}
instance_type: m1.heat_int
minimal_instance_type: m1.heat_micro
- image_ref: Fedora-Cloud-Base-32-1.6.x86_64
+ image_ref: Fedora-Cloud-Base-33-1.2.x86_64
hidden_stack_tag: hidden
heat_config_notify_script: /opt/stack/heat-agents/heat-config/bin/heat-config-notify
boot_config_env: /opt/stack/heat-templates/hot/software-config/boot-config/test_image_env.yaml
@@ -140,6 +140,7 @@
- job:
name: grenade-heat
parent: grenade
+ voting: false
required-projects:
- opendev.org/openstack/heat
- opendev.org/openstack/heat-tempest-plugin
diff --git a/devstack/lib/heat b/devstack/lib/heat
index 3507c287a..e45881887 100644
--- a/devstack/lib/heat
+++ b/devstack/lib/heat
@@ -478,9 +478,9 @@ function configure_tempest_for_heat {
if [[ -e /etc/ci/mirror_info.sh ]]; then
source /etc/ci/mirror_info.sh
fi
- export HEAT_TEST_FEDORA_IMAGE=${NODEPOOL_FEDORA_MIRROR:-https://download.fedoraproject.org/pub/fedora/linux}/releases/32/Cloud/x86_64/images/Fedora-Cloud-Base-32-1.6.x86_64.qcow2
+ export HEAT_TEST_FEDORA_IMAGE=${NODEPOOL_FEDORA_MIRROR:-https://download.fedoraproject.org/pub/fedora/linux}/releases/33/Cloud/x86_64/images/Fedora-Cloud-Base-33-1.2.x86_64.qcow2
TOKEN=$(openstack token issue -c id -f value)
- local image_exists=$( openstack image list | grep "Fedora-Cloud-Base-32-1.6.x86_64" )
+ local image_exists=$( openstack image list | grep "Fedora-Cloud-Base-33-1.2.x86_64" )
if [[ -z $image_exists ]]; then
if is_service_enabled g-api; then
upload_image $HEAT_TEST_FEDORA_IMAGE $TOKEN
diff --git a/doc/source/getting_started/on_devstack.rst b/doc/source/getting_started/on_devstack.rst
index 81716c4d5..29581390d 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 bebfc574d..2d0db3b5d 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 2dbca85e9..a6ebdfa49 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 0d31ba24a..264bfbb86 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 e5aee1bc1..9a05923a6 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 unittest import mock
+
+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 30196a230..12791c9fd 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 d2cc92977..c70b81682 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 d5c259501..8f789e9b9 100644
--- a/heat_integrationtests/common/test.py
+++ b/heat_integrationtests/common/test.py
@@ -104,8 +104,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
@@ -169,14 +167,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/prepare_test_env.sh b/heat_integrationtests/prepare_test_env.sh
index 31d682a71..45b86e493 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