X-Git-Url: https://code.grnet.gr/git/ganeti-local/blobdiff_plain/f7e7689f15cb8f52085cf8f5a7d21d45f6dab38f..bdefe5dd311f72b591a4dcf50e01715930d2f00d:/lib/cmdlib.py diff --git a/lib/cmdlib.py b/lib/cmdlib.py index 1f70ccf..99b11b4 100644 --- a/lib/cmdlib.py +++ b/lib/cmdlib.py @@ -1457,7 +1457,7 @@ class LUVerifyCluster(LogicalUnit): try: ntime_merged = utils.MergeTime(ntime) except (ValueError, TypeError): - _ErrorIf(test, self.ENODETIME, node, "Node returned invalid time") + _ErrorIf(True, self.ENODETIME, node, "Node returned invalid time") if ntime_merged < (nvinfo_starttime - constants.NODE_MAX_CLOCK_SKEW): ntime_diff = abs(nvinfo_starttime - ntime_merged) @@ -2907,6 +2907,10 @@ class LUAddNode(LogicalUnit): HTYPE = constants.HTYPE_NODE _OP_REQP = ["node_name"] + def CheckArguments(self): + # validate/normalize the node name + self.op.node_name = utils.HostInfo.NormalizeName(self.op.node_name) + def BuildHooksEnv(self): """Build hooks env. @@ -3396,7 +3400,7 @@ class LUQueryConfigValues(NoHooksLU): elif field == "drain_flag": entry = os.path.exists(constants.JOB_QUEUE_DRAIN_FILE) elif field == "watcher_pause": - return utils.ReadWatcherPauseFile(constants.WATCHER_PAUSEFILE) + entry = utils.ReadWatcherPauseFile(constants.WATCHER_PAUSEFILE) else: raise errors.ParameterError(field) values.append(entry) @@ -5654,10 +5658,16 @@ class LUCreateInstance(LogicalUnit): # for tools if not hasattr(self.op, "name_check"): self.op.name_check = True + # validate/normalize the instance name + self.op.instance_name = utils.HostInfo.NormalizeName(self.op.instance_name) if self.op.ip_check and not self.op.name_check: # TODO: make the ip check more flexible and not depend on the name check raise errors.OpPrereqError("Cannot do ip checks without a name check", errors.ECODE_INVAL) + if (self.op.disk_template == constants.DT_FILE and + not constants.ENABLE_FILE_STORAGE): + raise errors.OpPrereqError("File storage disabled at configure time", + errors.ECODE_INVAL) def ExpandNames(self): """ExpandNames for CreateInstance. @@ -5866,7 +5876,7 @@ class LUCreateInstance(LogicalUnit): self.needed_locks[locking.LEVEL_NODE].append(src_node) if not os.path.isabs(src_path): self.op.src_path = src_path = \ - os.path.join(constants.EXPORT_DIR, src_path) + utils.PathJoin(constants.EXPORT_DIR, src_path) # On import force_variant must be True, because if we forced it at # initial install, our only chance when importing it back is that it @@ -5974,8 +5984,8 @@ class LUCreateInstance(LogicalUnit): if src_path in exp_list[node].payload: found = True self.op.src_node = src_node = node - self.op.src_path = src_path = os.path.join(constants.EXPORT_DIR, - src_path) + self.op.src_path = src_path = utils.PathJoin(constants.EXPORT_DIR, + src_path) break if not found: raise errors.OpPrereqError("No export found for relative path %s" % @@ -6012,7 +6022,7 @@ class LUCreateInstance(LogicalUnit): if export_info.has_option(constants.INISECT_INS, option): # FIXME: are the old os-es, disk sizes, etc. useful? export_name = export_info.get(constants.INISECT_INS, option) - image = os.path.join(src_path, export_name) + image = utils.PathJoin(src_path, export_name) disk_images.append(image) else: disk_images.append(False) @@ -6148,9 +6158,8 @@ class LUCreateInstance(LogicalUnit): string_file_storage_dir = self.op.file_storage_dir # build the full file storage dir path - file_storage_dir = os.path.normpath(os.path.join( - self.cfg.GetFileStorageDir(), - string_file_storage_dir, instance)) + file_storage_dir = utils.PathJoin(self.cfg.GetFileStorageDir(), + string_file_storage_dir, instance) disks = _GenerateDiskTemplate(self,