summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--openstackclient/network/v2/network_agent.py24
-rw-r--r--openstackclient/tests/unit/network/v2/fakes.py2
-rw-r--r--openstackclient/tests/unit/network/v2/test_network_agent.py2
3 files changed, 24 insertions, 4 deletions
diff --git a/openstackclient/network/v2/network_agent.py b/openstackclient/network/v2/network_agent.py
index 7d36e5e9..d429fa08 100644
--- a/openstackclient/network/v2/network_agent.py
+++ b/openstackclient/network/v2/network_agent.py
@@ -20,6 +20,7 @@ from osc_lib import exceptions
from osc_lib import utils
from openstackclient.i18n import _
+from openstackclient.network import sdk_utils
LOG = logging.getLogger(__name__)
@@ -31,10 +32,19 @@ def _format_admin_state(state):
_formatters = {
'admin_state_up': _format_admin_state,
+ 'is_admin_state_up': _format_admin_state,
'configurations': utils.format_dict,
}
+def _get_network_columns(item):
+ column_map = {
+ 'is_admin_state_up': 'admin_state_up',
+ 'is_alive': 'alive',
+ }
+ return sdk_utils.get_osc_show_columns_for_sdk_resource(item, column_map)
+
+
class DeleteNetworkAgent(command.Command):
_description = _("Delete network agent(s)")
@@ -69,6 +79,8 @@ class DeleteNetworkAgent(command.Command):
raise exceptions.CommandError(msg)
+# TODO(huanxuan): Use the SDK resource mapped attribute names once the
+# OSC minimum requirements include SDK 1.0.
class ListNetworkAgent(command.Lister):
_description = _("List network agents")
@@ -98,8 +110,8 @@ class ListNetworkAgent(command.Lister):
'agent_type',
'host',
'availability_zone',
- 'alive',
- 'admin_state_up',
+ 'is_alive',
+ 'is_admin_state_up',
'binary'
)
column_headers = (
@@ -138,6 +150,8 @@ class ListNetworkAgent(command.Lister):
) for s in data))
+# TODO(huanxuan): Use the SDK resource mapped attribute names once the
+# OSC minimum requirements include SDK 1.0.
class SetNetworkAgent(command.Command):
_description = _("Set network agent properties")
@@ -172,6 +186,8 @@ class SetNetworkAgent(command.Command):
attrs = {}
if parsed_args.description is not None:
attrs['description'] = str(parsed_args.description)
+ # TODO(huanxuan): Also update by the new attribute name
+ # "is_admin_state_up" after sdk 0.9.12
if parsed_args.enable:
attrs['admin_state_up'] = True
if parsed_args.disable:
@@ -194,6 +210,6 @@ class ShowNetworkAgent(command.ShowOne):
def take_action(self, parsed_args):
client = self.app.client_manager.network
obj = client.get_agent(parsed_args.network_agent)
- columns = tuple(sorted(list(obj.keys())))
+ display_columns, columns = _get_network_columns(obj)
data = utils.get_item_properties(obj, columns, formatters=_formatters,)
- return columns, data
+ return display_columns, data
diff --git a/openstackclient/tests/unit/network/v2/fakes.py b/openstackclient/tests/unit/network/v2/fakes.py
index 98d5dea3..524285ab 100644
--- a/openstackclient/tests/unit/network/v2/fakes.py
+++ b/openstackclient/tests/unit/network/v2/fakes.py
@@ -565,6 +565,8 @@ class FakeNetworkAgent(object):
agent_attrs.update(attrs)
agent = fakes.FakeResource(info=copy.deepcopy(agent_attrs),
loaded=True)
+ agent.is_admin_state_up = agent_attrs['admin_state_up']
+ agent.is_alive = agent_attrs['alive']
return agent
@staticmethod
diff --git a/openstackclient/tests/unit/network/v2/test_network_agent.py b/openstackclient/tests/unit/network/v2/test_network_agent.py
index 9964f14d..2fc0c043 100644
--- a/openstackclient/tests/unit/network/v2/test_network_agent.py
+++ b/openstackclient/tests/unit/network/v2/test_network_agent.py
@@ -195,6 +195,8 @@ class TestListNetworkAgent(TestNetworkAgent):
self.assertEqual(self.data, list(data))
+# TODO(huanxuan): Also update by the new attribute name
+# "is_admin_state_up" after sdk 0.9.12
class TestSetNetworkAgent(TestNetworkAgent):
_network_agent = (