Merge "Add OpenstackClient plugin for cluster members add"
This commit is contained in:
@@ -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'])
|
||||
|
||||
@@ -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'])
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user