def script(self, logininfo, filepath):
'''
run script on managed cloud server using /usr/bin/env expect
'''
if not logininfo.admin_password:
raise Exception('Unmanaged Cloud Server: no rack password')
if '/' in filepath:
logininfo.script = filepath.split('/')[-1]
else:
logininfo.script = filepath
if filepath.startswith('https://'):
newpath = os.path.expanduser(
'~/.cache/hammercloud/{login.script}'.format(login=logininfo)
)
if not os.path.exists(newpath):
with open(newpath, 'w') as newfile:
resp = requests.get(filepath)
print(resp.content, file=newfile)
filepath = newpath
sftp(
logininfo, 'put', filepath, logininfo.script,
quiet=True, executable=True
)
command = '/home/{login.ssh_user}/{login.script} {login.extraargs}; '
if not logininfo.no_clean:
command += 'rm /home/{login.ssh_user}/{login.script}'
logininfo.command = command
cmd(logininfo)
评论列表
文章目录