summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.zuul.yaml4
-rw-r--r--heat/common/messaging.py4
-rw-r--r--heat/db/sqlalchemy/api.py2
-rw-r--r--heat/engine/resources/openstack/heat/swiftsignal.py2
-rw-r--r--heat/engine/resources/stack_resource.py2
-rw-r--r--heat/tests/openstack/heat/test_swiftsignal.py111
-rw-r--r--requirements.txt4
7 files changed, 67 insertions, 62 deletions
diff --git a/.zuul.yaml b/.zuul.yaml
index 233dc0d95..1ae750731 100644
--- a/.zuul.yaml
+++ b/.zuul.yaml
@@ -184,8 +184,8 @@
queue: heat
templates:
- openstack-cover-jobs
- - openstack-python3-zed-jobs
- - openstack-python3-zed-jobs-arm64
+ - openstack-python3-jobs
+ - openstack-python3-jobs-arm64
- periodic-stable-jobs
- publish-openstack-docs-pti
- check-requirements
diff --git a/heat/common/messaging.py b/heat/common/messaging.py
index 44ef904f5..8c9307034 100644
--- a/heat/common/messaging.py
+++ b/heat/common/messaging.py
@@ -136,8 +136,8 @@ def get_rpc_client(**kwargs):
target = oslo_messaging.Target(**kwargs)
serializer = RequestContextSerializer(
oslo_messaging.JsonPayloadSerializer())
- return oslo_messaging.RPCClient(TRANSPORT, target,
- serializer=serializer)
+ return oslo_messaging.get_rpc_client(
+ TRANSPORT, target, serializer=serializer)
def get_notifier(publisher_id):
diff --git a/heat/db/sqlalchemy/api.py b/heat/db/sqlalchemy/api.py
index 7ca61a756..df627d43c 100644
--- a/heat/db/sqlalchemy/api.py
+++ b/heat/db/sqlalchemy/api.py
@@ -544,7 +544,7 @@ def resource_get_all_active_by_stack(context, stack_id):
results = context.session.query(models.Resource).filter_by(
stack_id=stack_id).filter(
- models.Resource.id.notin_(subquery.as_scalar())
+ models.Resource.id.notin_(subquery.scalar_subquery())
).options(orm.joinedload("data")).all()
return dict((res.id, res) for res in results)
diff --git a/heat/engine/resources/openstack/heat/swiftsignal.py b/heat/engine/resources/openstack/heat/swiftsignal.py
index dc78b9310..295f6ae4f 100644
--- a/heat/engine/resources/openstack/heat/swiftsignal.py
+++ b/heat/engine/resources/openstack/heat/swiftsignal.py
@@ -267,6 +267,8 @@ class SwiftSignal(resource.Resource):
continue
body = signal[1]
+ if isinstance(body, bytes):
+ body = body.decode()
if body == swift.IN_PROGRESS: # Ignore the initial object
continue
if body == "":
diff --git a/heat/engine/resources/stack_resource.py b/heat/engine/resources/stack_resource.py
index 5b491888a..d7129dad0 100644
--- a/heat/engine/resources/stack_resource.py
+++ b/heat/engine/resources/stack_resource.py
@@ -78,7 +78,7 @@ class StackResource(resource.Resource):
except Exception as ex:
path = "%s<%s>" % (self.name, self.template_url)
raise exception.StackValidationFailed(
- ex, path=[self.stack.t.RESOURCES, path])
+ error=ex, path=[self.stack.t.RESOURCES, path])
@property
def template_url(self):
diff --git a/heat/tests/openstack/heat/test_swiftsignal.py b/heat/tests/openstack/heat/test_swiftsignal.py
index 64a15df1b..8fc592e9d 100644
--- a/heat/tests/openstack/heat/test_swiftsignal.py
+++ b/heat/tests/openstack/heat/test_swiftsignal.py
@@ -129,7 +129,8 @@ class SwiftSignalHandleTest(common.HeatTestCase):
obj_name = "%s-%s-abcdefghijkl" % (st.name, handle.name)
mock_name.return_value = obj_name
mock_swift_object.get_container.return_value = cont_index(obj_name, 2)
- mock_swift_object.get_object.return_value = (obj_header, '{"id": "1"}')
+ mock_swift_object.get_object.return_value = (obj_header,
+ b'{"id": "1"}')
st.create()
handle = st.resources['test_wait_condition_handle']
@@ -311,7 +312,7 @@ class SwiftSignalTest(common.HeatTestCase):
obj_name = "%s-%s-abcdefghijkl" % (st.name, handle.name)
mock_name.return_value = obj_name
mock_swift_object.get_container.return_value = cont_index(obj_name, 2)
- mock_swift_object.get_object.return_value = (obj_header, '')
+ mock_swift_object.get_object.return_value = (obj_header, b'')
st.create()
self.assertEqual(('CREATE', 'COMPLETE'), st.state)
@@ -358,13 +359,13 @@ class SwiftSignalTest(common.HeatTestCase):
mock_name.return_value = obj_name
mock_swift_object.get_container.return_value = cont_index(obj_name, 2)
mock_swift_object.get_object.side_effect = (
- (obj_header, json.dumps({'id': 1})),
- (obj_header, json.dumps({'id': 1})),
- (obj_header, json.dumps({'id': 1})),
+ (obj_header, json.dumps({'id': 1}).encode()),
+ (obj_header, json.dumps({'id': 1}).encode()),
+ (obj_header, json.dumps({'id': 1}).encode()),
- (obj_header, json.dumps({'id': 1})),
- (obj_header, json.dumps({'id': 2})),
- (obj_header, json.dumps({'id': 3})),
+ (obj_header, json.dumps({'id': 1}).encode()),
+ (obj_header, json.dumps({'id': 2}).encode()),
+ (obj_header, json.dumps({'id': 3}).encode()),
)
st.create()
@@ -385,8 +386,8 @@ class SwiftSignalTest(common.HeatTestCase):
obj_name = "%s-%s-abcdefghijkl" % (st.name, handle.name)
mock_name.return_value = obj_name
mock_swift_object.get_container.return_value = cont_index(obj_name, 2)
- mock_swift_object.get_object.return_value = (obj_header,
- json.dumps({'id': 1}))
+ body = json.dumps({'id': 1}).encode()
+ mock_swift_object.get_object.return_value = (obj_header, body)
time_now = timeutils.utcnow()
time_series = [datetime.timedelta(0, t) + time_now
@@ -419,9 +420,9 @@ class SwiftSignalTest(common.HeatTestCase):
mock_name.return_value = obj_name
mock_swift_object.get_container.return_value = cont_index(obj_name, 2)
mock_swift_object.get_object.side_effect = (
- (obj_header, json.dumps({'id': 1, 'status': "SUCCESS"})),
- (obj_header, json.dumps({'id': 1, 'status': "SUCCESS"})),
- (obj_header, json.dumps({'id': 2, 'status': "SUCCESS"})),
+ (obj_header, json.dumps({'id': 1, 'status': "SUCCESS"}).encode()),
+ (obj_header, json.dumps({'id': 1, 'status': "SUCCESS"}).encode()),
+ (obj_header, json.dumps({'id': 2, 'status': "SUCCESS"}).encode()),
)
st.create()
@@ -445,15 +446,15 @@ class SwiftSignalTest(common.HeatTestCase):
mock_swift_object.get_object.side_effect = (
# Create
(obj_header, json.dumps({'id': 1, 'status': "FAILURE",
- 'reason': "foo"})),
+ 'reason': "foo"}).encode()),
(obj_header, json.dumps({'id': 2, 'status': "FAILURE",
- 'reason': "bar"})),
+ 'reason': "bar"}).encode()),
# SwiftSignalFailure
(obj_header, json.dumps({'id': 1, 'status': "FAILURE",
- 'reason': "foo"})),
+ 'reason': "foo"}).encode()),
(obj_header, json.dumps({'id': 2, 'status': "FAILURE",
- 'reason': "bar"})),
+ 'reason': "bar"}).encode()),
)
st.create()
@@ -480,14 +481,14 @@ class SwiftSignalTest(common.HeatTestCase):
mock_swift_object.get_object.side_effect = (
# st create
- (obj_header, json.dumps({'id': 1, 'data': "foo"})),
- (obj_header, json.dumps({'id': 2, 'data': "bar"})),
- (obj_header, json.dumps({'id': 3, 'data': "baz"})),
+ (obj_header, json.dumps({'id': 1, 'data': "foo"}).encode()),
+ (obj_header, json.dumps({'id': 2, 'data': "bar"}).encode()),
+ (obj_header, json.dumps({'id': 3, 'data': "baz"}).encode()),
# FnGetAtt call
- (obj_header, json.dumps({'id': 1, 'data': "foo"})),
- (obj_header, json.dumps({'id': 2, 'data': "bar"})),
- (obj_header, json.dumps({'id': 3, 'data': "baz"})),
+ (obj_header, json.dumps({'id': 1, 'data': "foo"}).encode()),
+ (obj_header, json.dumps({'id': 2, 'data': "bar"}).encode()),
+ (obj_header, json.dumps({'id': 3, 'data': "baz"}).encode()),
)
st.create()
@@ -515,15 +516,15 @@ class SwiftSignalTest(common.HeatTestCase):
mock_swift_object.get_object.side_effect = (
# st create
(obj_header, json.dumps({'data': "foo", 'reason': "bar",
- 'status': "SUCCESS"})),
+ 'status': "SUCCESS"}).encode()),
(obj_header, json.dumps({'data': "dog", 'reason': "cat",
- 'status': "SUCCESS"})),
+ 'status': "SUCCESS"}).encode()),
# FnGetAtt call
(obj_header, json.dumps({'data': "foo", 'reason': "bar",
- 'status': "SUCCESS"})),
+ 'status': "SUCCESS"}).encode()),
(obj_header, json.dumps({'data': "dog", 'reason': "cat",
- 'status': "SUCCESS"})),
+ 'status': "SUCCESS"}).encode()),
)
st.create()
@@ -549,12 +550,12 @@ class SwiftSignalTest(common.HeatTestCase):
mock_swift_object.get_object.side_effect = (
# st create
- (obj_header, ''),
- (obj_header, ''),
+ (obj_header, b''),
+ (obj_header, b''),
# FnGetAtt call
- (obj_header, ''),
- (obj_header, ''),
+ (obj_header, b''),
+ (obj_header, b''),
)
st.create()
@@ -579,7 +580,7 @@ class SwiftSignalTest(common.HeatTestCase):
mock_name.return_value = obj_name
mock_swift_object.get_container.return_value = cont_index(obj_name, 1)
mock_swift_object.get_object.return_value = (
- obj_header, json.dumps({'status': 'SUCCESS'}))
+ obj_header, json.dumps({'status': 'SUCCESS'}).encode())
st.create()
self.assertEqual(['SUCCESS', 'SUCCESS'], wc.get_status())
@@ -605,7 +606,7 @@ class SwiftSignalTest(common.HeatTestCase):
obj_name = "%s-%s-abcdefghijkl" % (st.name, handle.name)
mock_name.return_value = obj_name
mock_swift_object.get_container.return_value = cont_index(obj_name, 1)
- mock_swift_object.get_object.return_value = (obj_header, '')
+ mock_swift_object.get_object.return_value = (obj_header, b'')
st.create()
self.assertEqual(['SUCCESS', 'SUCCESS'], wc.get_status())
@@ -632,7 +633,7 @@ class SwiftSignalTest(common.HeatTestCase):
mock_name.return_value = obj_name
mock_swift_object.get_container.return_value = cont_index(obj_name, 1)
mock_swift_object.get_object.return_value = (
- obj_header, json.dumps({'id': 1, 'status': "SUCCESS"}))
+ obj_header, json.dumps({'id': 1, 'status': "SUCCESS"}).encode())
st.create()
self.assertEqual(['SUCCESS'], wc.get_status())
@@ -657,7 +658,7 @@ class SwiftSignalTest(common.HeatTestCase):
mock_name.return_value = obj_name
mock_swift_object.get_container.return_value = cont_index(obj_name, 1)
mock_swift_object.get_object.return_value = (
- obj_header, json.dumps({'id': 1, 'status': "FAILURE"}))
+ obj_header, json.dumps({'id': 1, 'status': "FAILURE"}).encode())
st.create()
self.assertEqual(('CREATE', 'FAILED'), st.state)
@@ -684,8 +685,8 @@ class SwiftSignalTest(common.HeatTestCase):
mock_swift_object.get_object.side_effect = (
# st create
- (obj_header, ''),
- (obj_header, ''),
+ (obj_header, b''),
+ (obj_header, b''),
)
st.create()
@@ -710,8 +711,8 @@ class SwiftSignalTest(common.HeatTestCase):
mock_swift_object.get_object.side_effect = (
# st create
- (obj_header, ''),
- (obj_header, ''),
+ (obj_header, b''),
+ (obj_header, b''),
)
st.create()
@@ -741,8 +742,8 @@ class SwiftSignalTest(common.HeatTestCase):
mock_swift_object.get_object.side_effect = (
# st create
- (obj_header, ''),
- (obj_header, ''),
+ (obj_header, b''),
+ (obj_header, b''),
)
st.create()
@@ -772,8 +773,8 @@ class SwiftSignalTest(common.HeatTestCase):
mock_swift_object.get_object.side_effect = (
# st create
- (obj_header, '{"status": "SUCCESS"'),
- (obj_header, '{"status": "FAI'),
+ (obj_header, b'{"status": "SUCCESS"'),
+ (obj_header, b'{"status": "FAI'),
)
st.create()
@@ -800,7 +801,7 @@ class SwiftSignalTest(common.HeatTestCase):
mock_swift_object.get_container.return_value = cont_index(obj_name, 1)
mock_swift_object.get_object.return_value = (
- obj_header, '{"status": "BOO"}')
+ obj_header, b'{"status": "BOO"}')
st.create()
self.assertEqual(('CREATE', 'FAILED'), st.state)
@@ -827,9 +828,10 @@ class SwiftSignalTest(common.HeatTestCase):
(container_header, []), # The user deleted the objects
)
mock_swift_object.get_object.side_effect = (
- (obj_header, json.dumps({'id': 1})), # Objects there during create
- (obj_header, json.dumps({'id': 2})),
- (obj_header, json.dumps({'id': 3})),
+ # Objects there during create
+ (obj_header, json.dumps({'id': 1}).encode()),
+ (obj_header, json.dumps({'id': 2}).encode()),
+ (obj_header, json.dumps({'id': 3}).encode()),
)
st.create()
@@ -860,8 +862,8 @@ class SwiftSignalTest(common.HeatTestCase):
cont_index(obj_name, 1),
)
mock_swift_object.get_object.side_effect = (
- (obj_header, json.dumps({'id': 1})),
- (obj_header, json.dumps({'id': 2})),
+ (obj_header, json.dumps({'id': 1}).encode()),
+ (obj_header, json.dumps({'id': 2}).encode()),
)
st.create()
@@ -887,9 +889,10 @@ class SwiftSignalTest(common.HeatTestCase):
http_status=404) # User deleted
]
mock_swift_object.get_object.side_effect = (
- (obj_header, json.dumps({'id': 1})), # Objects there during create
- (obj_header, json.dumps({'id': 2})),
- (obj_header, json.dumps({'id': 3})),
+ # Objects there during create
+ (obj_header, json.dumps({'id': 1}).encode()),
+ (obj_header, json.dumps({'id': 2}).encode()),
+ (obj_header, json.dumps({'id': 3}).encode()),
)
st.create()
@@ -915,8 +918,8 @@ class SwiftSignalTest(common.HeatTestCase):
mock_swift_object.get_object.side_effect = (
swiftclient_client.ClientException(
"Object %s not found" % obj_name, http_status=404),
- (obj_header, '{"id": 1}'),
- (obj_header, '{"id": 2}'),
+ (obj_header, b'{"id": 1}'),
+ (obj_header, b'{"id": 2}'),
)
st.create()
diff --git a/requirements.txt b/requirements.txt
index 457724754..18150cfc4 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -26,7 +26,7 @@ oslo.context>=2.22.0 # Apache-2.0
oslo.db>=6.0.0 # Apache-2.0
oslo.i18n>=3.20.0 # Apache-2.0
oslo.log>=4.3.0 # Apache-2.0
-oslo.messaging>=5.29.0 # Apache-2.0
+oslo.messaging>=14.1.0 # Apache-2.0
oslo.middleware>=3.31.0 # Apache-2.0
oslo.policy>=3.7.0 # Apache-2.0
oslo.reports>=1.18.0 # Apache-2.0
@@ -65,7 +65,7 @@ PyYAML>=5.1 # MIT
requests>=2.23.0 # Apache-2.0
tenacity>=6.1.0 # Apache-2.0
Routes>=2.3.1 # MIT
-SQLAlchemy!=1.1.5,!=1.1.6,!=1.1.7,!=1.1.8,>=1.0.10 # MIT
+SQLAlchemy>=1.4.0 # MIT
sqlalchemy-migrate>=0.13.0 # Apache-2.0
stevedore>=3.1.0 # Apache-2.0
WebOb>=1.7.1 # MIT