ssh subcommand added for vm command + config file added

This commit is contained in:
ahmadbilalkhalid 2019-12-23 18:23:18 +05:00
commit 267828e85a
5 changed files with 34 additions and 3 deletions

View file

@ -1,5 +1,7 @@
import click
import json
import requests
import subprocess as sp
from ucloud_cli.commands.helper import OTPCredentials, load_dump_pretty
from ucloud_cli.config import env_vars
@ -118,3 +120,22 @@ def vm_migration(name, realm, seed, vm_name, destination, in_support_of):
join_path(env_vars.get("UCLOUD_API_SERVER"), "vm", "migrate"), json=data
)
print(load_dump_pretty(r.content))
@vm.command("ssh")
@click.option("--name", required=True, default=env_vars.get("OTP_NAME"))
@click.option("--realm", required=True, default=env_vars.get("OTP_REALM"))
@click.option("--seed", required=True, default=env_vars.get("OTP_SEED"))
@click.option("--vm-name", required=True)
@click.option("--in_support_of")
def ssh(name, realm, seed, vm_name, in_support_of):
otp = OTPCredentials(name, realm, seed)
data = {**otp.get_json(), "vm_name": vm_name, "in_support_of": in_support_of}
r = requests.get(join_path(env_vars.get("UCLOUD_API_SERVER"), "vm", "status"), json=data)
try:
_json = json.loads(r.content)
sp.run(['ssh', '-o', 'ConnectTimeout=10',
'root@{}'.format(_json['ip'][0])])
except Exception as err:
print("Some error occurred while accessing VM."
"Make sure VM is running", err)

View file

@ -3,7 +3,7 @@ from os.path import expanduser
from decouple import Config, RepositoryEnv
try:
env_vars = Config(RepositoryEnv(expanduser("~/.ucloud.conf")))
env_vars = Config(RepositoryEnv(expanduser("~/ucloud/ucloud-cli.conf")))
except Exception as err:
print(err)
sys.exit(1)