Beispiel #1
0
def add_auto_route_for_fs(ip_list):
    log.info('Start to patch auto route to all azs.')
    local_path_execute_sh = os.path.join(
        get_patches_tool_path(), ScriptFilePath.PATH_LOCAL_ADD_ROUTER_SH)
    local_path_os_config_control = os.path.join(
        get_patches_tool_path(), PatchFilePath.PATH_LOCAL_OS_CONFIG_CONTROL)

    cmd_to_unix_add_route_sh = 'dos2unix %s' % ScriptFilePath.PATH_REMOTE_ADD_ROUTER_SH
    cmd_chown_os_config_control_to_cps = 'chown cps:cps %s' % PatchFilePath.PATH_REMOTE_OS_CONFIG_CONTROL
    cmd_chmod_755_control = 'chmod 755 %s' % PatchFilePath.PATH_REMOTE_OS_CONFIG_CONTROL
    # TODO
    cmd_restart_cps = ''
    for ip in ip_list:
        try:
            ssh = sshutils.SSH(host=ip,
                               user=SysUserInfo.ROOT,
                               password=SysUserInfo.ROOT_PWD)
            try:
                ssh.put_file(local_path_execute_sh,
                             ScriptFilePath.PATH_REMOTE_ADD_ROUTER_SH)
                ssh.put_file(local_path_os_config_control,
                             PatchFilePath.PATH_REMOTE_OS_CONFIG_CONTROL)
                ssh.run(cmd_to_unix_add_route_sh)
                ssh.run(cmd_chown_os_config_control_to_cps)
                ssh.run(cmd_chmod_755_control)
            except Exception, e:
                log.error(
                    'Exception occur when add auto route for fs, exception: %s'
                    % traceback.format_exc())
            finally:
                ssh.close()
        except Exception, e:
            log.error(
                'Exception occur when add auto route for fs, exception: %s' %
                traceback.format_exc())
Beispiel #2
0
def remote_execute_cmd_by_root(host_ip, user, passwd, cmd):
    ssh = sshutils.SSH(host=host_ip, user=user, password=passwd)
    error_message = 'Exception when execute cmd:<%s> host:<%s>, Exception: %s' % (
        cmd, host_ip, traceback.format_exc())
    try:
        ssh.run(cmd)
    except Exception, e:
        log.error(error_message)
Beispiel #3
0
 def setup_ssh(self, host_access):
     # used for displaying the source IP in json results
     if not self.internal_ip:
         self.internal_ip = host_access.host
     self.ssh_access = host_access
     self.display('Setup SSH for %s@%s' %
                  (host_access.username, host_access.host))
     self.ssh = sshutils.SSH(
         self.ssh_access, connect_retry_count=self.config.ssh_retry_count)
     return True
Beispiel #4
0
def remote_execute_cmd(host_ip, cmd):
    ssh = sshutils.SSH(host=host_ip,
                       user=SysUserInfo.ROOT,
                       password=SysUserInfo.ROOT_PWD)
    error_message = 'Exception when execute cmd:<%s> host:<%s>, Exception: %s' % (
        cmd, host_ip, traceback.format_exc())
    try:
        ssh.run(cmd)
    except Exception, e:
        log.error(error_message)
Beispiel #5
0
 def dispatch_patches_tool_to_host_with_tar(self, host, local_full_path_of_tar_file):
     log.info('Start to dispatch tar of patches_tool to host %s' % host)
     ssh = sshutils.SSH(host=host, user=SysUserInfo.ROOT, password=SysUserInfo.ROOT_PWD)
     full_path_of_file_copy_to = os.path.join(SysPath.HOME_FSP, SysPath.PATCHES_TOOL_TAR_GZ)
     dir_of_patches_tool = os.path.join(SysPath.HOME_FSP, SysPath.PATCHES_TOOL)
     try:
         # remove dir: /home/fsp/patches_tool/
         ssh.run('rm -rf %s' % dir_of_patches_tool)
     except Exception, e:
         log.info('Failed to execute <%s> in HOST <%s>' % ('rm -rf %s' % dir_of_patches_tool, host))
         log.info('Exception: %s' % traceback.format_exc())
Beispiel #6
0
    def dispatch_patch_tool_to_host(self, host):
        path_of_patch_tool = utils.get_patches_tool_path()
        files_need_to_dispatch = utils.get_files(path_of_patch_tool, self.filter_for_dispatch)
        ssh = sshutils.SSH(host=host, user=SysUserInfo.FSP, password=SysUserInfo.FSP_PWD)
        try:
            for absolute_file, relative_path_of_file in files_need_to_dispatch:
                log.info('start to copy file <<%s>> to host <<%s>>' % (relative_path_of_file, host))
                file_copy_to = os.path.join(SysPath.HOME_FSP, SysPath.PATCHES_TOOL, relative_path_of_file)
                file_dir_copy_to = os.path.dirname(file_copy_to)
                ssh.run('mkdir -p %s' % file_dir_copy_to)
                ssh.put_file(absolute_file, file_copy_to)
                log.info('End to copy file <<%s>> to host <<%s>>' % (relative_path_of_file, host))

        except Exception, e:
            log.error('Exception occur when dispatch patches tool to host: <%s>, Exception: %s' % (host, traceback.format_exc()))
Beispiel #7
0
def remote_open_root_permit_for_host(ip, user, passwd):
    ssh = sshutils.SSH(host=ip, user=user, password=passwd)
    local_path_execute_sh = os.path.join(get_patches_tool_path(),
                                         ScriptFilePath.PATH_EXECUTE_SH)
    local_path_su_change_sh = os.path.join(get_patches_tool_path(),
                                           ScriptFilePath.PATH_SU_CHANGE_SH)
    cmd_to_unix_change_sh = 'dos2unix %s' % ScriptFilePath.PATH_SU_CHANGE_SH_COPY_TO
    cmd_to_unix_execute_sh = 'dos2unix %s' % ScriptFilePath.PATH_EXECUTE_SH_COPY_TO
    cmd = 'sh %s' % ScriptFilePath.PATH_EXECUTE_SH_COPY_TO
    log.info('open root permit for host:<%s>' % ip)
    try:
        ssh.put_file(local_path_execute_sh,
                     ScriptFilePath.PATH_EXECUTE_SH_COPY_TO)
        ssh.put_file(local_path_su_change_sh,
                     ScriptFilePath.PATH_SU_CHANGE_SH_COPY_TO)
        ssh.run(cmd_to_unix_change_sh)
        ssh.run(cmd_to_unix_execute_sh)
        ssh.run(cmd)
    except Exception, e:
        log.error(
            'Exception when remote open root permit for host:<%s>, Exception: %s'
            % (ip, traceback.format_exc()))