Revision d8470559
b/daemons/ganeti-masterd | ||
---|---|---|
284 | 284 |
assert self.__class__._instance is None, "Attempt to modify Ganeti Context" |
285 | 285 |
object.__setattr__(self, name, value) |
286 | 286 |
|
287 |
def AddNode(self, node): |
|
288 |
"""Adds a node to the configuration and lock manager. |
|
289 |
|
|
290 |
""" |
|
291 |
# Add it to the configuration |
|
292 |
self.cfg.AddNode(node) |
|
293 |
|
|
294 |
# Add the new node to the Ganeti Lock Manager |
|
295 |
self.glm.add(locking.LEVEL_NODE, node.name) |
|
296 |
|
|
297 |
def ReaddNode(self, node): |
|
298 |
"""Updates a node that's already in the configuration |
|
299 |
|
|
300 |
""" |
|
301 |
|
|
302 |
def RemoveNode(self, name): |
|
303 |
"""Removes a node from the configuration and lock manager. |
|
304 |
|
|
305 |
""" |
|
306 |
# Remove node from configuration |
|
307 |
self.cfg.RemoveNode(name) |
|
308 |
|
|
309 |
# Remove the node from the Ganeti Lock Manager |
|
310 |
self.glm.remove(locking.LEVEL_NODE, name) |
|
311 |
|
|
287 | 312 |
|
288 | 313 |
def ParseOptions(): |
289 | 314 |
"""Parse the command line options. |
b/lib/cmdlib.py | ||
---|---|---|
1356 | 1356 |
logger.Info("stopping the node daemon and removing configs from node %s" % |
1357 | 1357 |
node.name) |
1358 | 1358 |
|
1359 |
rpc.call_node_leave_cluster(node.name) |
|
1360 |
|
|
1361 |
logger.Info("Removing node %s from config" % node.name) |
|
1362 |
|
|
1363 |
self.cfg.RemoveNode(node.name) |
|
1364 |
# Remove the node from the Ganeti Lock Manager |
|
1365 |
self.context.glm.remove(locking.LEVEL_NODE, node.name) |
|
1359 |
self.context.RemoveNode(node.name) |
|
1366 | 1360 |
|
1367 |
utils.RemoveHostFromEtcHosts(node.name)
|
|
1361 |
rpc.call_node_leave_cluster(node.name)
|
|
1368 | 1362 |
|
1369 | 1363 |
|
1370 | 1364 |
class LUQueryNodes(NoHooksLU): |
... | ... | |
1738 | 1732 |
if not result[node]: |
1739 | 1733 |
logger.Error("could not copy file %s to node %s" % (fname, node)) |
1740 | 1734 |
|
1741 |
if not self.op.readd: |
|
1742 |
logger.Info("adding node %s to cluster.conf" % node) |
|
1743 |
self.cfg.AddNode(new_node) |
|
1744 |
# Add the new node to the Ganeti Lock Manager |
|
1745 |
self.context.glm.add(locking.LEVEL_NODE, node) |
|
1735 |
if self.op.readd: |
|
1736 |
self.context.ReaddNode(new_node) |
|
1737 |
else: |
|
1738 |
self.context.AddNode(new_node) |
|
1746 | 1739 |
|
1747 | 1740 |
|
1748 | 1741 |
class LUQueryClusterInfo(NoHooksLU): |
b/lib/config.py | ||
---|---|---|
34 | 34 |
import os |
35 | 35 |
import tempfile |
36 | 36 |
import random |
37 |
import logging |
|
37 | 38 |
|
38 | 39 |
from ganeti import errors |
39 | 40 |
from ganeti import locking |
... | ... | |
461 | 462 |
node: an object.Node instance |
462 | 463 |
|
463 | 464 |
""" |
465 |
logging.info("Adding node %s to configuration" % node.name) |
|
466 |
|
|
464 | 467 |
self._OpenConfig() |
465 | 468 |
self._config_data.nodes[node.name] = node |
466 | 469 |
self._WriteConfig() |
... | ... | |
470 | 473 |
"""Remove a node from the configuration. |
471 | 474 |
|
472 | 475 |
""" |
476 |
logging.info("Removing node %s from configuration" % node_name) |
|
477 |
|
|
473 | 478 |
self._OpenConfig() |
474 | 479 |
if node_name not in self._config_data.nodes: |
475 | 480 |
raise errors.ConfigurationError("Unknown node '%s'" % node_name) |
Also available in: Unified diff