summaryrefslogtreecommitdiff
path: root/openstackclient/network
diff options
context:
space:
mode:
authorHuanxuan Ao <huanxuan.ao@easystack.cn>2017-01-14 19:13:04 +0800
committerHuanxuan Ao <huanxuan.ao@easystack.cn>2017-01-15 19:29:51 +0800
commitb860ba0e42b942a1a5fb01b55d35a2edf062bf65 (patch)
treebcad56d3d00c58a8099ad21c0ee54b27e3f7074d /openstackclient/network
parent368666194bb11e1543fb683e8b42729620a69aac (diff)
downloadpython-openstackclient-b860ba0e42b942a1a5fb01b55d35a2edf062bf65.tar.gz
SDK refactor: Prepare network agent commands
Prepare the OSC "network agent" commands for the SDK refactor. Partially-Implements: blueprint network-command-sdk-support Closes-bug: #1656542 Change-Id: I6745f5ffb04b009487e6cb36d1807dce9b248b4c
Diffstat (limited to 'openstackclient/network')
-rw-r--r--openstackclient/network/v2/network_agent.py24
1 files changed, 20 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