uncloud-cli/uncloud_cli/commands/vm.py

65 lines
1.4 KiB
Python
Executable File

import click
import requests
from uncloud_cli.commands.helper import add_otp_options, make_request, add_vm_options
@click.group()
def vm():
pass
@vm.command('create')
@add_otp_options
@add_vm_options
@click.option('--cpu', required=True, type=int)
@click.option('--ram', required=True)
@click.option('--os-ssd', required=True)
@click.option('--hdd', default=list(), multiple=True)
@click.option('--image', required=True)
@click.option('--network', default=list(), multiple=True)
def create(**kwargs):
kwargs['specs'] = {
'cpu': kwargs.pop('cpu'),
'ram': kwargs.pop('ram'),
'os-ssd': kwargs.pop('os_ssd'),
'hdd': kwargs.pop('hdd')
}
make_request('vm', kwargs.pop('action'), data=kwargs)
@vm.command('start')
@add_otp_options
@add_vm_options
def start(**kwargs):
make_request('vm', 'action', data=kwargs)
@vm.command('stop')
@add_otp_options
@add_vm_options
def stop(**kwargs):
make_request('vm', 'action', data=kwargs)
@vm.command('delete')
@add_otp_options
@add_vm_options
def delete(**kwargs):
make_request('vm', 'action', data=kwargs)
@vm.command('status')
@add_otp_options
@click.option('--vm-name', required=True)
def status(**kwargs):
make_request('vm', 'status', data=kwargs)
@vm.command("migrate")
@add_otp_options
@click.option("--vm-name", required=True)
@click.option("--destination", required=True)
def vm_migration(**kwargs):
make_request('vm', 'migrate', data=kwargs)