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