80 |
80 |
add_reserved_ips=reserved_ips,
|
81 |
81 |
conflicts_check=opts.conflicts_check,
|
82 |
82 |
tags=tags)
|
83 |
|
SubmitOpCode(op, opts=opts)
|
|
83 |
SubmitOrSend(op, opts)
|
84 |
84 |
|
85 |
85 |
|
86 |
86 |
def MapNetwork(opts, args):
|
... | ... | |
93 |
93 |
@return: the desired exit code
|
94 |
94 |
|
95 |
95 |
"""
|
96 |
|
network = args[0]
|
97 |
|
groups = args[1]
|
98 |
|
mode = args[2]
|
99 |
|
link = args[3]
|
|
96 |
(network, groups, mode, link) = args
|
|
97 |
|
|
98 |
cl = GetClient()
|
100 |
99 |
|
101 |
|
# TODO: allow comma separated group names
|
|
100 |
# FIXME: This doesn't work with a group named "all"
|
102 |
101 |
if groups == "all":
|
103 |
|
cl = GetClient()
|
104 |
102 |
(groups, ) = cl.QueryGroups([], ["name"], False)
|
105 |
103 |
else:
|
106 |
104 |
groups = [groups]
|
107 |
105 |
|
|
106 |
# TODO: Change logic to support "--submit"
|
108 |
107 |
for group in groups:
|
109 |
108 |
op = opcodes.OpNetworkConnect(group_name=group,
|
110 |
109 |
network_name=network,
|
111 |
110 |
network_mode=mode,
|
112 |
111 |
network_link=link,
|
113 |
112 |
conflicts_check=opts.conflicts_check)
|
114 |
|
SubmitOpCode(op, opts=opts)
|
|
113 |
SubmitOpCode(op, opts=opts, cl=cl)
|
115 |
114 |
|
116 |
115 |
|
117 |
116 |
def UnmapNetwork(opts, args):
|
... | ... | |
119 |
118 |
|
120 |
119 |
@param opts: the command line options selected by the user
|
121 |
120 |
@type args: list
|
122 |
|
@param args: a list of length 3 with network, nodegorup
|
|
121 |
@param args: a list of length 3 with network, nodegroup
|
123 |
122 |
@rtype: int
|
124 |
123 |
@return: the desired exit code
|
125 |
124 |
|
126 |
125 |
"""
|
127 |
|
network = args[0]
|
128 |
|
groups = args[1]
|
|
126 |
(network, groups) = args
|
129 |
127 |
|
130 |
|
#TODO: allow comma separated group names
|
|
128 |
cl = GetClient()
|
|
129 |
|
|
130 |
# FIXME: This doesn't work with a group named "all"
|
131 |
131 |
if groups == "all":
|
132 |
|
cl = GetClient()
|
133 |
132 |
(groups, ) = cl.QueryGroups([], ["name"], False)
|
134 |
133 |
else:
|
135 |
134 |
groups = [groups]
|
136 |
135 |
|
|
136 |
# TODO: Change logic to support "--submit"
|
137 |
137 |
for group in groups:
|
138 |
138 |
op = opcodes.OpNetworkDisconnect(group_name=group,
|
139 |
139 |
network_name=network,
|
140 |
140 |
conflicts_check=opts.conflicts_check)
|
141 |
|
SubmitOpCode(op, opts=opts)
|
|
141 |
SubmitOpCode(op, opts=opts, cl=cl)
|
142 |
142 |
|
143 |
143 |
|
144 |
144 |
def ListNetworks(opts, args):
|
... | ... | |
263 |
263 |
@return: the desired exit code
|
264 |
264 |
|
265 |
265 |
"""
|
266 |
|
|
267 |
266 |
# TODO: add "network": opts.network,
|
268 |
267 |
all_changes = {
|
269 |
268 |
"gateway": opts.gateway,
|
... | ... | |
298 |
297 |
"""
|
299 |
298 |
(network_name,) = args
|
300 |
299 |
op = opcodes.OpNetworkRemove(network_name=network_name, force=opts.force)
|
301 |
|
SubmitOpCode(op, opts=opts)
|
|
300 |
SubmitOrSend(op, opts)
|
302 |
301 |
|
303 |
302 |
|
304 |
303 |
commands = {
|
... | ... | |
306 |
305 |
AddNetwork, ARGS_ONE_NETWORK,
|
307 |
306 |
[DRY_RUN_OPT, NETWORK_OPT, GATEWAY_OPT, ADD_RESERVED_IPS_OPT,
|
308 |
307 |
MAC_PREFIX_OPT, NETWORK_TYPE_OPT, NETWORK6_OPT, GATEWAY6_OPT,
|
309 |
|
NOCONFLICTSCHECK_OPT, TAG_ADD_OPT],
|
|
308 |
NOCONFLICTSCHECK_OPT, TAG_ADD_OPT, PRIORITY_OPT, SUBMIT_OPT],
|
310 |
309 |
"<network_name>", "Add a new IP network to the cluster"),
|
311 |
310 |
"list": (
|
312 |
311 |
ListNetworks, ARGS_MANY_NETWORKS,
|
... | ... | |
324 |
323 |
"modify": (
|
325 |
324 |
SetNetworkParams, ARGS_ONE_NETWORK,
|
326 |
325 |
[DRY_RUN_OPT, SUBMIT_OPT, ADD_RESERVED_IPS_OPT, REMOVE_RESERVED_IPS_OPT,
|
327 |
|
GATEWAY_OPT, MAC_PREFIX_OPT, NETWORK_TYPE_OPT, NETWORK6_OPT, GATEWAY6_OPT],
|
|
326 |
GATEWAY_OPT, MAC_PREFIX_OPT, NETWORK_TYPE_OPT, NETWORK6_OPT, GATEWAY6_OPT,
|
|
327 |
PRIORITY_OPT],
|
328 |
328 |
"<network_name>", "Alters the parameters of a network"),
|
329 |
329 |
"connect": (
|
330 |
330 |
MapNetwork,
|
331 |
331 |
[ArgNetwork(min=1, max=1), ArgGroup(min=1, max=1),
|
332 |
332 |
ArgChoice(min=1, max=1, choices=constants.NIC_VALID_MODES),
|
333 |
333 |
ArgUnknown(min=1, max=1)],
|
334 |
|
[NOCONFLICTSCHECK_OPT],
|
|
334 |
[NOCONFLICTSCHECK_OPT, PRIORITY_OPT],
|
335 |
335 |
"<network_name> <node_group> <mode> <link>",
|
336 |
336 |
"Map a given network to the specified node group"
|
337 |
337 |
" with given mode and link (netparams)"),
|
338 |
338 |
"disconnect": (
|
339 |
339 |
UnmapNetwork,
|
340 |
340 |
[ArgNetwork(min=1, max=1), ArgGroup(min=1, max=1)],
|
341 |
|
[NOCONFLICTSCHECK_OPT],
|
|
341 |
[NOCONFLICTSCHECK_OPT, PRIORITY_OPT],
|
342 |
342 |
"<network_name> <node_group>",
|
343 |
343 |
"Unmap a given network from a specified node group"),
|
344 |
344 |
"remove": (
|
345 |
|
RemoveNetwork, ARGS_ONE_NETWORK, [FORCE_OPT, DRY_RUN_OPT],
|
|
345 |
RemoveNetwork, ARGS_ONE_NETWORK,
|
|
346 |
[FORCE_OPT, DRY_RUN_OPT, SUBMIT_OPT, PRIORITY_OPT],
|
346 |
347 |
"[--dry-run] <network_id>",
|
347 |
348 |
"Remove an (empty) network from the cluster"),
|
348 |
349 |
"list-tags": (
|