Revision 5d419c34 lib/objects.py

b/lib/objects.py
50 50

  
51 51

  
52 52
__all__ = ["ConfigObject", "ConfigData", "NIC", "Disk", "Instance",
53
           "OS", "Node", "NodeGroup", "Cluster", "FillDict"]
53
           "OS", "Node", "NodeGroup", "Cluster", "FillDict", "Network"]
54 54

  
55 55
_TIMESTAMPS = ["ctime", "mtime"]
56 56
_UUID = ["uuid"]
......
439 439
    "nodes",
440 440
    "nodegroups",
441 441
    "instances",
442
    "networks",
442 443
    "serial_no",
443 444
    ] + _TIMESTAMPS
444 445

  
......
451 452
    """
452 453
    mydict = super(ConfigData, self).ToDict()
453 454
    mydict["cluster"] = mydict["cluster"].ToDict()
454
    for key in "nodes", "instances", "nodegroups":
455
    for key in "nodes", "instances", "nodegroups", "networks":
455 456
      mydict[key] = self._ContainerToDicts(mydict[key])
456 457

  
457 458
    return mydict
......
466 467
    obj.nodes = cls._ContainerFromDicts(obj.nodes, dict, Node)
467 468
    obj.instances = cls._ContainerFromDicts(obj.instances, dict, Instance)
468 469
    obj.nodegroups = cls._ContainerFromDicts(obj.nodegroups, dict, NodeGroup)
470
    obj.networks = cls._ContainerFromDicts(obj.networks, dict, Network)
469 471
    return obj
470 472

  
471 473
  def HasAnyDiskOfType(self, dev_type):
......
502 504
      # gives a good approximation.
503 505
      if self.HasAnyDiskOfType(constants.LD_DRBD8):
504 506
        self.cluster.drbd_usermode_helper = constants.DEFAULT_DRBD_HELPER
507
    if self.networks is None:
508
      self.networks = {}
505 509

  
506 510

  
507 511
class NIC(ConfigObject):
508 512
  """Config object representing a network card."""
509
  __slots__ = ["mac", "ip", "nicparams"]
513
  __slots__ = ["mac", "ip", "network", "nicparams"]
510 514

  
511 515
  @classmethod
512 516
  def CheckParameterSyntax(cls, nicparams):
......
1389 1393
    "hv_state_static",
1390 1394
    "disk_state_static",
1391 1395
    "alloc_policy",
1396
    "networks",
1392 1397
    ] + _TIMESTAMPS + _UUID
1393 1398

  
1394 1399
  def ToDict(self):
......
1436 1441
    if self.ipolicy is None:
1437 1442
      self.ipolicy = MakeEmptyIPolicy()
1438 1443

  
1444
    if self.networks is None:
1445
      self.networks = {}
1446

  
1439 1447
  def FillND(self, node):
1440 1448
    """Return filled out ndparams for L{objects.Node}
1441 1449

  
......
2020 2028
    return True
2021 2029

  
2022 2030

  
2031
class Network(ConfigObject):
2032
  """Object representing a network definition for ganeti.
2033

  
2034
  """
2035
  __slots__ = [
2036
    "name",
2037
    "serial_no",
2038
    "network_type",
2039
    "mac_prefix",
2040
    "family",
2041
    "network",
2042
    "network6",
2043
    "gateway",
2044
    "gateway6",
2045
    "size",
2046
    "reservations",
2047
    "ext_reservations",
2048
    ] + _TIMESTAMPS + _UUID
2049

  
2050

  
2023 2051
class SerializableConfigParser(ConfigParser.SafeConfigParser):
2024 2052
  """Simple wrapper over ConfigParse that allows serialization.
2025 2053

  

Also available in: Unified diff