Fix unsupported format character error for multipart mime
Change-Id: I6cdd794924429040370796e127734c663980f710 Closes-Bug: #1473660
This commit is contained in:
parent
163efe9ea7
commit
b924a29d06
@ -15,6 +15,7 @@ import email
|
||||
from email.mime import multipart
|
||||
from email.mime import text
|
||||
import os
|
||||
from oslo_utils import uuidutils
|
||||
|
||||
from heat.common.i18n import _
|
||||
from heat.engine import constraints
|
||||
@ -112,13 +113,14 @@ class MultipartMime(software_config.SoftwareConfig):
|
||||
part_type = item.get(self.TYPE, self.TEXT)
|
||||
part = config
|
||||
|
||||
try:
|
||||
sc = self.rpc_client().show_software_config(
|
||||
self.context, config)
|
||||
except Exception as ex:
|
||||
self.rpc_client().ignore_error_named(ex, 'NotFound')
|
||||
else:
|
||||
part = sc[rpc_api.SOFTWARE_CONFIG_CONFIG]
|
||||
if uuidutils.is_uuid_like(config):
|
||||
try:
|
||||
sc = self.rpc_client().show_software_config(
|
||||
self.context, config)
|
||||
except Exception as ex:
|
||||
self.rpc_client().ignore_error_named(ex, 'NotFound')
|
||||
else:
|
||||
part = sc[rpc_api.SOFTWARE_CONFIG_CONFIG]
|
||||
|
||||
if part_type == self.MULTIPART:
|
||||
self._append_multiparts(subparts, part)
|
||||
|
@ -103,7 +103,7 @@ class MultipartMimeTest(common.HeatTestCase):
|
||||
|
||||
def test_get_message_fail_back(self):
|
||||
parts = [{
|
||||
'config': '#!/bin/bash',
|
||||
'config': '2e0e5a60-2843-4cfd-9137-d90bdf18eef5',
|
||||
'type': 'text'
|
||||
}]
|
||||
self.init_config(parts=parts)
|
||||
@ -111,14 +111,28 @@ class MultipartMimeTest(common.HeatTestCase):
|
||||
result = self.config.get_message()
|
||||
|
||||
self.assertEqual(
|
||||
'#!/bin/bash',
|
||||
'2e0e5a60-2843-4cfd-9137-d90bdf18eef5',
|
||||
self.rpc_client.show_software_config.call_args[0][1])
|
||||
|
||||
message = email.message_from_string(result)
|
||||
self.assertTrue(message.is_multipart())
|
||||
subs = message.get_payload()
|
||||
self.assertEqual(1, len(subs))
|
||||
self.assertEqual('#!/bin/bash', subs[0].get_payload())
|
||||
self.assertEqual('2e0e5a60-2843-4cfd-9137-d90bdf18eef5',
|
||||
subs[0].get_payload())
|
||||
|
||||
def test_get_message_non_uuid(self):
|
||||
parts = [{
|
||||
'config': 'http://192.168.122.36:8000/v1/waitcondition/'
|
||||
}]
|
||||
self.init_config(parts=parts)
|
||||
result = self.config.get_message()
|
||||
message = email.message_from_string(result)
|
||||
self.assertTrue(message.is_multipart())
|
||||
subs = message.get_payload()
|
||||
self.assertEqual(1, len(subs))
|
||||
self.assertEqual('http://192.168.122.36:8000/v1/waitcondition/',
|
||||
subs[0].get_payload())
|
||||
|
||||
def test_get_message_text_with_filename(self):
|
||||
parts = [{
|
||||
|
Loading…
x
Reference in New Issue
Block a user