Пример #1
0
def install(host,packages):
    logging.info(str(host))
    logging.info(str(packages))
    work_dir = REMOTE_DIR + '/smartlog_install'
    for p in packages:
        cmd = 'cd %s && python install.py -i %s'%(work_dir,p)
        tools.remote_cmd([host],cmd)
Пример #2
0
def upload_packages(hosts):
    logging.info('begin to upload files ...')
    cmd = 'mkdir -p /home/ultrapower/upload && chmod 755 /home/ultrapower -R'
    tools.remote_cmd(hosts,cmd)

    local_path = os.path.join(CURRENT_DIR,'smartlog_install.tar.gz')
    remote_path = REMOTE_DIR+'/smartlog_install.tar.gz'
    tools.remote_up_file(hosts,local_path,remote_path)
    cmd = 'cd %s && tar xzf smartlog_install.tar.gz '%REMOTE_DIR
    tools.remote_cmd(hosts,cmd)
    logging.info('upload packages done ...')
Пример #3
0
def get_component_status(parameters):
    host_list = []
    upload_path = os.path.normpath(HOME_DIR + r'/upload/')
    local_status_path = os.path.normpath(CURRENT_DIR + r'/status.json')
    local_py_path = os.path.normpath(CURRENT_DIR + r'/getServerStatus.py')
    dst_path  = '/home/test/smartStatus'
    if not os.path.exists(dst_path):
        cmd = 'mkdir -p %s' % dst_path
        os.system(cmd)

    for item in parameters:
        tmpDict = {}
        tmpDict['host'] = item['host']
        tmpDict['password'] = item['password']
        host_list.append(tmpDict)
        del item['password']
        fp = open(local_status_path,'w')
        fp.write(json.dumps(item))
        fp.close()
        tools.remote_singe_upload(tmpDict,local_status_path,upload_path)
    tools.remote_up_file(host_list,local_py_path,upload_path)
    cmd_status = 'cd %s && python getServerStatus.py "%s"' % (upload_path,os.path.normpath(upload_path + r'/status.json'))
    tools.remote_cmd(host_list,cmd_status)
    logging.info('start get status file from yuanchengfuwuqi !!!!')
    for item in host_list:
        src_path = r'/home/ultrapower/upload/status_%s' % item['host'].split('@')[1]
        logging.info(tools.remote_single_download(item,src_path,dst_path))

    logging.info('end get status file from yuanchengfuwuqi !!!!')

    result_list = getStatusFromFile(dst_path)
    for item in result_list:
        item_list = []
        for each in item['components']:
            each_dict = {}
            if not each['install_status']:
                each_dict['status'] = -1
                each_dict['current_status'] = each['current_status']
            if each['install_status'] and not each['current_status'] and each['process_status']:
                each_dict['status'] = 0
                each_dict['current_status'] = False
            if each['install_status'] and not each['current_status'] and not each['process_status']:
                each_dict['status'] = 1
                each_dict['current_status'] = False
            each_dict['log'] = each['log']
            each_dict['host'] = each['host']
            item_list.append(each_dict)
        item['components'] = item_list

    logging.info('end getStatusFromFile : %s' % str(result_list))

    for item in result_list:
        sum_status_zero = 0
        sum_current = 0
        length = len(item['components'])
        for each in item['components']:
            if each['status'] == 0:
                sum_status_zero += 1
            if each['status'] == -1:
                item['status'] = -1
                item['current_status'] = True
            if each['status'] == 1:
                item['status'] = 1
                item['current_status'] = False
            if not each['current_status']:
                sum_current += 1
            if sum_status_zero == length and sum_current == length:
                item['status'] = 0
                item['current_status'] = False

    for item in result_list:
        if numDict[item['name']]:
            item['index'] = numDict[item['name']]
            item['showname'] = nameDict[item['name']]

    return result_list
Пример #4
0
                ssh.connect(address,username=item['host'].split('@')[0],password=item['password'],timeout=3)
                ssh.close()
                rst['host'] = address
                rst['connected'] = 0
                rst['hostname'] = ''
                rst_list.append(rst)
                para.append(item)
            except BaseException , e :
                rst['host'] = address
                rst['connected'] = 1
                rst['hostname'] = ''
                rst_list.append(rst)
                continue
                logging.info(str(e))
    if para:
        cmd_result = tools.remote_cmd(parameter,cmd)
        for each in cmd_result:
            if each[1] == 0:
                rstStr = each[2][0]
                outStr = rstStr.split('\n')[2]
                if outStr:
                    hostname= outStr.split(':')[1].strip(' ')
                else:
                    hostname = ''
            else:
                hostname = ''
            for item in rst_list:
                if item['host'] == each[0].split('@')[1] and item['connected'] == 0:
                    item['hostname'] = hostname
                    break