def analysis_subcommand(self): # print self.args_list if len(self.args_list) > 1: if self.args_list[1].upper() == "EXEC": if self.name_space == "null" and len(self.args_list) == 4: if ct.is_podname(self.args_list[2]) or ct.is_ip( self.args_list[2]): self.resource_name = self.args_list[2] self.exec_cmd = self.args_list[3] return "EXEC" elif self.name_space != "null" and len(self.args_list) == 6: if self.args_list[2].upper() == "-N": i, j = (4, 5) elif self.args_list[3].upper() == "-N": i, j = (2, 5) elif self.args_list[4].upper() == "-N": i, j = (2, 3) else: return "COMMAND ERROR" self.resource_name = self.args_list[i] self.exec_cmd = self.args_list[j] if ct.is_ip(self.resource_name) or ct.is_podname( self.resource_name): return "EXEC" else: return "COMMAND ERROR" if self.args_list[1].upper() == "SSH": if len(self.args_list) == 3: self.resource_name = self.args_list[2] return "SSH" if self.args_list[1].upper() == "CMDB": return "CMDB" return "COMMAND ERROR"
def input_common_command(self): print "valid input : pod_name | pod_ip | subsystem_name | \"exit\"" if len(self.pod_list_all) > 0: print "valid input : choose container : index number | choose dcn : \"dcn\"" while True: input_cmd = raw_input("input your chosen : ").strip() if len(input_cmd) == 0: continue elif input_cmd.lower() == "dcn": if len(self.pod_list_all) > 0: self.flag = "dcn" break elif input_cmd.lower() == "exit": self.flag = "exit" break elif ct.is_sysname(input_cmd): self.subsystem = input_cmd self.flag = "subsys" break elif input_cmd.isdigit(): if input_cmd > 0: if (self.dcn == "" and len(self.pod_list_all.split('\n')) > int(input_cmd) ) or (self.dcn != "" and len( self.pod_list_dcn.split('\n')) >= int(input_cmd)): self.chosen = int(input_cmd) self.flag = "number" break elif ct.is_podname(input_cmd) or ct.is_ip(input_cmd): self.resource_name = input_cmd.lower() self.flag = 'pod' break
def exec_pod(self): if ct.is_podname(self.resource_name): self.resource_name = ct.k8s_pn(self.resource_name) if self.name_space == "null": cmd = '%s/%s%s exec %s -- /bin/sh -c "%s" 2>&1' % ( self.command_path, ct.opsctl_name, ct.rule_args(), self.resource_name, self.exec_cmd) else: cmd = '%s/%s%s exec %s -n %s -- /bin/sh -c "%s" 2>&1' % ( self.command_path, ct.opsctl_name, ct.rule_args(), self.resource_name, self.name_space, self.exec_cmd) logger.debug(cmd) os.system(cmd)
def analysis_resource_name(self): if ct.is_sysid(self.resource_name): self.resource_type = 'SYSID' elif ct.is_sysname(self.resource_name): self.resource_type = 'SYSNAME' elif ct.is_ip(self.resource_name): self.resource_type = 'IP' elif ct.is_podname(self.resource_name): self.resource_type = 'PODNAME' else: self.result = { "Code": 1, "Message": "Parameter Error", "Data": self.usage }
def __init__(self, resource_name): self.command_path = sys.path[0] self.user_name = '' self.user_pwd = '' self.rule = ct.rule self.token = '' self.subsystem = "" self.dcn = "" self.namespace = "" self.pod_list_all = "" self.pod_list_dcn = "" self.cmdb_string_table = "" self.chosen = -1 self.resource_name = resource_name.lower() self.flag = 'common' if len(self.resource_name) > 0: if ct.is_podname(self.resource_name) or ct.is_ip( self.resource_name): self.flag = 'once'
def run_ssh_pod(self): if self.flag == 'number': if len(self.pod_list_dcn) > 0: cmd = '%s/%s ssh %s --access-token %s' % ( self.command_path, ct.opsctl_name, self.get_pod_from_pod_list(self.pod_list_dcn, self.chosen), self.token) else: cmd = '%s/%s ssh %s --access-token %s' % ( self.command_path, ct.opsctl_name, self.get_pod_from_pod_list(self.pod_list_all, self.chosen), self.token) if self.flag == 'pod' or self.flag == 'once': if ct.is_podname(self.resource_name): self.resource_name = ct.k8s_pn(self.resource_name) cmd = '%s/%s ssh %s --access-token %s' % ( self.command_path, ct.opsctl_name, self.resource_name, self.token) #print cmd os.system(cmd)