-def InitCluster(cluster_name, mac_prefix,
- master_netdev, file_storage_dir, candidate_pool_size,
- secondary_ip=None, vg_name=None, beparams=None,
- nicparams=None, hvparams=None, enabled_hypervisors=None,
- modify_etc_hosts=True, modify_ssh_setup=True):
+ @param file_storage_dir: the user-supplied value
+ @return: either empty string (if file storage was disabled at build
+ time) or the normalized path to the storage directory
+
+ """
+ file_storage_dir = os.path.normpath(file_storage_dir)
+
+ if not os.path.isabs(file_storage_dir):
+ raise errors.OpPrereqError("File storage directory '%s' is not an absolute"
+ " path" % file_storage_dir, errors.ECODE_INVAL)
+
+ if not os.path.exists(file_storage_dir):
+ try:
+ os.makedirs(file_storage_dir, 0750)
+ except OSError, err:
+ raise errors.OpPrereqError("Cannot create file storage directory"
+ " '%s': %s" % (file_storage_dir, err),
+ errors.ECODE_ENVIRON)
+
+ if not os.path.isdir(file_storage_dir):
+ raise errors.OpPrereqError("The file storage directory '%s' is not"
+ " a directory." % file_storage_dir,
+ errors.ECODE_ENVIRON)
+ return file_storage_dir
+
+
+def InitCluster(cluster_name, mac_prefix, # pylint: disable=R0913, R0914
+ master_netmask, master_netdev, file_storage_dir,
+ shared_file_storage_dir, candidate_pool_size, secondary_ip=None,
+ vg_name=None, beparams=None, nicparams=None, ndparams=None,
+ hvparams=None, diskparams=None, enabled_hypervisors=None,
+ modify_etc_hosts=True, modify_ssh_setup=True,
+ maintain_node_health=False, drbd_helper=None, uid_pool=None,
+ default_iallocator=None, primary_ip_version=None, ipolicy=None,
+ prealloc_wipe_disks=False, use_external_mip_script=False,
+ hv_state=None, disk_state=None):