"""
if self.dev_type == constants.LD_LV:
return "/dev/%s/%s" % (self.logical_id[0], self.logical_id[1])
+ elif self.dev_type == constants.LD_BLOCKDEV:
+ return self.logical_id[1]
return None
def ChildrenNeeded(self):
devices needs to (or can) be assembled.
"""
- if self.dev_type in [constants.LD_LV, constants.LD_FILE]:
+ if self.dev_type in [constants.LD_LV, constants.LD_FILE,
+ constants.LD_BLOCKDEV]:
result = [node]
elif self.dev_type in constants.LDS_DRBD:
result = [self.logical_id[0], self.logical_id[1]]
actual algorithms from bdev.
"""
- if self.dev_type == constants.LD_LV or self.dev_type == constants.LD_FILE:
+ if self.dev_type in (constants.LD_LV, constants.LD_FILE):
self.size += amount
elif self.dev_type == constants.LD_DRBD8:
if self.children:
self.powered = True
-class NodeGroup(ConfigObject):
+class NodeGroup(TaggableObject):
"""Config object representing a node group."""
__slots__ = [
"name",
self.mtime = time.time()
def FillND(self, node):
- """Return filled out ndparams for L{object.Node}
+ """Return filled out ndparams for L{objects.Node}
@type node: L{objects.Node}
@param node: A Node object to fill
"master_netdev",
"cluster_name",
"file_storage_dir",
+ "shared_file_storage_dir",
"enabled_hypervisors",
"hvparams",
"os_hvp",
if self.modify_ssh_setup is None:
self.modify_ssh_setup = True
- # default_bridge is no longer used it 2.1. The slot is left there to
+ # default_bridge is no longer used in 2.1. The slot is left there to
# support auto-upgrading. It can be removed once we decide to deprecate
# upgrading straight from 2.0.
if self.default_bridge is not None:
if self.prealloc_wipe_disks is None:
self.prealloc_wipe_disks = False
+ # shared_file_storage_dir added before 2.5
+ if self.shared_file_storage_dir is None:
+ self.shared_file_storage_dir = ""
+
def ToDict(self):
"""Custom function for cluster.
return FillDict(result, os_params)
def FillND(self, node, nodegroup):
- """Return filled out ndparams for L{objects.NodeGroup} and L{object.Node}
+ """Return filled out ndparams for L{objects.NodeGroup} and L{objects.Node}
@type node: L{objects.Node}
@param node: A Node object to fill
@ivar compress: Compression method (one of L{constants.IEC_ALL})
@ivar magic: Used to ensure the connection goes to the right disk
@ivar ipv6: Whether to use IPv6
+ @ivar connect_timeout: Number of seconds for establishing connection
"""
__slots__ = [
"compress",
"magic",
"ipv6",
+ "connect_timeout",
]
@ivar name: Field name
@ivar title: Human-readable title
@ivar kind: Field type
+ @ivar doc: Human-readable description
"""
__slots__ = [
"name",
"title",
"kind",
+ "doc",
]