Пример #1
0
 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"
Пример #2
0
 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
Пример #3
0
 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)
Пример #4
0
 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
         }
Пример #5
0
 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'
Пример #6
0
 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)