summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2023-03-15 16:55:53 +0000
committerGerrit Code Review <review@openstack.org>2023-03-15 16:55:53 +0000
commit5be81e077fb54c85d93b4a471deb647fb99b2444 (patch)
treeff0df5f12d271fc13aaea93542f5bcd239cdb624
parent487fadf5c754e522b3edd02d7a2ec08223399cad (diff)
parent8eaaf6fcabf9b2f3e6d0bc967c8d1b67ac532f50 (diff)
downloadheat-5be81e077fb54c85d93b4a471deb647fb99b2444.tar.gz
Merge "Decode UTF-8 body data in SwiftSignal" into stable/yoga
-rw-r--r--heat/engine/resources/openstack/heat/swiftsignal.py2
-rw-r--r--heat/tests/openstack/heat/test_swiftsignal.py111
2 files changed, 59 insertions, 54 deletions
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/tests/openstack/heat/test_swiftsignal.py b/heat/tests/openstack/heat/test_swiftsignal.py
index c3d2db0d6..427a87e79 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()
@@ -740,8 +741,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()
@@ -771,8 +772,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()
@@ -799,7 +800,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)
@@ -826,9 +827,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()
@@ -859,8 +861,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()
@@ -886,9 +888,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()
@@ -914,8 +917,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()