Skip to content

Commit

Permalink
Add test for console-log and docs for bug 1746534
Browse files Browse the repository at this point in the history
We had no unit test coverage for the console-log command
so this adds a simple test. It unfortunately does not
recreate the original UnicodeEncodeError bug though, but
it gives us some test coverage anyway.

This change also adds docs on how to resolve bug 1746534
by configuring the environment for UTF-8 as noted in
the revert change Iaeec1e74262a35f3de3c81f7013835a6aa6f9029.

The documentation added here is shamelessly copied from
Click [1] which was found via the PEP 538 docs [2].

[1] https://click.palletsprojects.com/en/5.x/python3/#python-3-surrogate-handling
[2] https://www.python.org/dev/peps/pep-0538/

Change-Id: Ic7059260dfc031ea1b08d2b8a7cec684bbe7dfa5
Related-Bug: #1823287
Related-Bug: #1746534
(cherry picked from commit e8f7aaf)
  • Loading branch information
mriedem committed Apr 11, 2019
1 parent 2ca1814 commit 60bf9a2
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 0 deletions.
27 changes: 27 additions & 0 deletions doc/source/cli/nova.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1177,6 +1177,33 @@ nova console-log
Get console log output of a server.

**Locale encoding issues**

If you encounter an error such as:

.. code-block:: console
UnicodeEncodeError: 'ascii' codec can't encode characters in position
The solution to these problems is different depending on which locale your
computer is running in.

For instance, if you have a German Linux machine, you can fix the problem by
exporting the locale to de_DE.utf-8:

.. code-block:: console
export LC_ALL=de_DE.utf-8
export LANG=de_DE.utf-8
If you are on a US machine, en_US.utf-8 is the encoding of choice. On some
newer Linux systems, you could also try C.UTF-8 as the locale:

.. code-block:: console
export LC_ALL=C.UTF-8
export LANG=C.UTF-8
**Positional arguments:**

``<server>``
Expand Down
6 changes: 6 additions & 0 deletions novaclient/tests/unit/v2/test_shell.py
Original file line number Diff line number Diff line change
Expand Up @@ -3553,6 +3553,12 @@ def test_availability_zone_list(self):
self.run_command('availability-zone-list')
self.assert_called('GET', '/os-availability-zone/detail')

def test_console_log(self):
out = self.run_command('console-log --length 20 1234')[0]
self.assert_called('POST', '/servers/1234/action',
body={'os-getConsoleOutput': {'length': '20'}})
self.assertIn('foo', out)

def test_server_security_group_add(self):
self.run_command('add-secgroup sample-server testgroup')
self.assert_called('POST', '/servers/1234/action',
Expand Down

0 comments on commit 60bf9a2

Please sign in to comment.