示例#1
0
 def __validate_QTP(host):
     try:
         pythoncom.CoInitialize()
         DispatchEx('QuickTest.Application', host.get_ip())
         pythoncom.CoUninitialize()
         return True
     except Exception as e:
         configuration_log.info(e)
         return False
示例#2
0
 def __init_server(self, server_item):
     current_key = (server_item['os'], server_item['function'])
     if current_key in self.server_map_dict.keys():
         server = self.server_map_dict[current_key](
             ip=server_item['ip'],
             hostname=server_item['hostname'],
             version=server_item['version'],
             mac=server_item['mac'],
             username=server_item['username'],
             password=server_item['password'],
             domain=server_item['domain'])
         configuration_log.info('Init {}'.format(server_item['hostname']))
     else:
         print('Invalid server type {}'.format(current_key))
         server = False
     return server
示例#3
0
 def validate_deploy_server(self, host):
     if not self.__validate_QTP(host):
         host.status = 'off'
         configuration_log.info('validate_deploy_server ' + host.get_ip() + ' fail, QTP check fail')
         return False
     else:
         configuration_log.info('validate_deploy_QTP ' + host.get_ip() + ' Pass')
     if not self.__validate_HPDM(host):
         host.status = 'off'
         configuration_log.info('validate_deploy_server ' + host.get_ip() + ' fail, HPDM check fail')
         return False
     else:
         configuration_log.info('validate_deploy_HPDM ' + host.get_ip() + ' Pass')
     host.status = 'on'
     configuration_log.info('validate_deploy_server ' + host.get_ip() + ' pass')
     return True
示例#4
0
 def start(self):
     self.build_server_list.clear()
     self.deploy_server_list.clear()
     self.__configuration_process = Process(target=self.run, args=())
     self.__configuration_process.start()
     self.status = self.__configuration_process
     receive_signal = self.receive_signal.recv()
     for valid_server in receive_signal:
         if isinstance(valid_server, (WindowsBuildHost, LinuxBuildHost)):
             self.build_server_list.append(valid_server)
             configuration_log.info("Add Build Host {}".format(
                 valid_server.get_hostname()))
         elif isinstance(valid_server, (WindowsDeployHost, LinuxDeployHost)):
             self.deploy_server_list.append(valid_server)
             configuration_log.info("Add Deploy Host {}".format(
                 valid_server.get_hostname()))
     self.list_status = True
     return self.list_status
示例#5
0
 def run(self):
     configuration_log.info("Start configuration, Engine PID is {}".format(
         str(os.getpid())))
     server_list_result = self.get_server_list()
     valid_server_list = []
     for server_item in server_list_result:
         server = self.__init_server(server_item)
         if self.validate_server(server):
             valid_server_list.append(server)
         else:
             """
             validate server fail
             """
             error_msg_instance = ErrorMsg(EngineCode().config_engine, ErrorLevel().record_and_continue,
                                           "validate server {} fail".format(server.get_hostname()))
             error_handle_instance = ErrorHandler(error_msg_instance)
             error_handle_instance.handle(mail_receiver=None)
     self.send_signal.send(valid_server_list)
     return valid_server_list
示例#6
0
 def __validate_HPDM(host):
     ssh = paramiko.SSHClient()
     ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy)
     ssh.connect(host.get_ip(), 22, host.get_username(),
                 host.get_password())
     stdin, stdout, stderr = ssh.exec_command("sc queryex HPDMServer")
     res = stdout.readlines()
     if 'OPENSERVICE FAILED 1060' in res[0].upper():
         configuration_log.info('validate_deploy_server ' + host.get_ip() + ' fail, HPDM service not exist')
         return False
     for i in res:
         if 'STATE' in i.upper():
             # sample: STATE              : 4  RUNNING
             if i.split(":")[1].strip().split(" ")[-1].upper() == 'RUNNING':
                 return True
             else:
                 configuration_log.info(
                     'validate_deploy_server ' + host.get_ip() + ' fail, HPDM service is not running')
                 return False
示例#7
0
 def validate_build_server(self, host):
     result = self.ping(host.get_ip())
     if result:
         if self.get_jenkins_node_state(host):
             configuration_log.info('validate_build_server ' + host.get_ip() + ' pass')
             host.status = 'on'
             return True
         else:
             configuration_log.info('validate_build_server ' + host.get_ip() + ' fail')
             host.status = 'off'
             return False
     else:
         configuration_log.info('validate_build_server ' + host.get_ip() + ' fail')
         host.status = 'off'
         return False