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