Merge "Py3: fix serial console output"

This commit is contained in:
Jenkins 2016-07-18 19:31:54 +00:00 committed by Gerrit Code Review
commit a0fcff8bad
2 changed files with 3 additions and 4 deletions

View File

@ -4375,13 +4375,12 @@ class ComputeManager(manager.Manager):
output = self.driver.get_console_output(context, instance)
if type(output) is six.text_type:
# the console output will be bytes.
output = six.b(output)
if tail_length is not None:
output = self._tail_log(output, tail_length)
return output.decode('utf-8', 'replace').encode('ascii', 'replace')
return output.decode('ascii', 'replace')
def _tail_log(self, log, length):
try:

View File

@ -3262,7 +3262,7 @@ class ComputeTestCase(BaseTestCase):
output = self.compute.get_console_output(self.context,
instance=instance, tail_length=None)
self.assertEqual(output, b'FAKE CONSOLE OUTPUT\nANOTHER\nLAST LINE')
self.assertEqual('FAKE CONSOLE OUTPUT\nANOTHER\nLAST LINE', output)
self.compute.terminate_instance(self.context, instance, [], [])
def test_console_output_bytes(self):
@ -3286,7 +3286,7 @@ class ComputeTestCase(BaseTestCase):
output = self.compute.get_console_output(self.context,
instance=instance, tail_length=2)
self.assertEqual(output, b'ANOTHER\nLAST LINE')
self.assertEqual('ANOTHER\nLAST LINE', output)
self.compute.terminate_instance(self.context, instance, [], [])
def test_console_output_not_implemented(self):