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())
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)
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
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)
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())
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()))
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()))