Merge "Add OpenstackClient plugin for cluster members add"

This commit is contained in:
Jenkins
2016-02-28 12:25:47 +00:00
committed by Gerrit Code Review
3 changed files with 55 additions and 0 deletions

View File

@@ -659,3 +659,31 @@ class ClusterNodeList(lister.Lister):
(utils.get_item_properties(n, columns, formatters=formatters)
for n in nodes)
)
class ClusterNodeAdd(command.Command):
"""Add specified nodes to cluster."""
log = logging.getLogger(__name__ + ".ClusterNodeAdd")
def get_parser(self, prog_name):
parser = super(ClusterNodeAdd, self).get_parser(prog_name)
parser.add_argument(
'--nodes',
metavar='<nodes>',
required=True,
help=_('ID or name of nodes to be added; multiple nodes can be'
' separated with ","')
)
parser.add_argument(
'cluster',
metavar='<cluster>',
help=_('Name or ID of cluster to operate on')
)
return parser
def take_action(self, parsed_args):
self.log.debug("take_action(%s)", parsed_args)
senlin_client = self.app.client_manager.clustering
node_ids = parsed_args.nodes.split(',')
resp = senlin_client.cluster_add_nodes(parsed_args.cluster, node_ids)
print('Request accepted by action: %s' % resp['action'])

View File

@@ -684,3 +684,29 @@ class TestClusterNodeList(TestCluster):
columns, data = self.cmd.take_action(parsed_args)
self.mock_client.nodes.assert_called_with(**kwargs)
self.assertEqual(self.columns, columns)
class TestClusterNodeAdd(TestCluster):
response = {"action": "8bb476c3-0f4c-44ee-9f64-c7b0260814de"}
def setUp(self):
super(TestClusterNodeAdd, self).setUp()
self.cmd = osc_cluster.ClusterNodeAdd(self.app, None)
self.mock_client.cluster_add_nodes = mock.Mock(
return_value=self.response)
def test_cluster_node_add(self):
arglist = ['--nodes', 'node1', 'my_cluster']
parsed_args = self.check_parser(self.cmd, arglist, [])
self.cmd.take_action(parsed_args)
self.mock_client.cluster_add_nodes.assert_called_with(
'my_cluster',
['node1'])
def test_cluster_node_add_multi(self):
arglist = ['--nodes', 'node1,node2', 'my_cluster']
parsed_args = self.check_parser(self.cmd, arglist, [])
self.cmd.take_action(parsed_args)
self.mock_client.cluster_add_nodes.assert_called_with(
'my_cluster',
['node1', 'node2'])

View File

@@ -44,6 +44,7 @@ openstack.clustering.v1 =
cluster_show = senlinclient.osc.v1.cluster:ShowCluster
cluster_update = senlinclient.osc.v1.cluster:UpdateCluster
cluster_members_list = senlinclient.osc.v1.cluster:ClusterNodeList
cluster_members_add = senlinclient.osc.v1.cluster:ClusterNodeAdd
cluster_node_create = senlinclient.osc.v1.node:CreateNode
cluster_node_delete = senlinclient.osc.v1.node:DeleteNode
cluster_node_list = senlinclient.osc.v1.node:ListNode