Commit 2d2be899 authored by Seblu's avatar Seblu
Browse files

Split shutdown and execute in separate files

parent e23af3bc
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -8,15 +8,16 @@ CloudControl CLI Commands Package
# bunch of command
from cccli.command.account import *
from cccli.command.alias import *
from cccli.command.host import *
from cccli.command.right import *
from cccli.command.shell import *
from cccli.command.tag import *
from cccli.command.vm import *

# by command module
from cccli.command.execute import Command_execute
from cccli.command.expert import Command_expert
from cccli.command.kill import Command_kill
from cccli.command.list import Command_list
from cccli.command.server import Command_server
from cccli.command.shutdown import Command_shutdown
from cccli.command.tagdisplay import Command_tagdisplay
+32 −0
Original line number Diff line number Diff line

'''
CloudControl execute command
'''

from cccli.exception import *
from sjrpc.core.exceptions import *
from cccli.printer import Printer, color
from cccli.command.command import TqlCommand

class Command_execute(TqlCommand):
    '''Execute a command on the remote host'''

    def __init__(self, cli, argv0):
        TqlCommand.__init__(self, cli, argv0)
        self.set_usage("%prog [options] <tql> <command>")
        self.tql_filter += "&con&r~'host|hv'"

    def __call__(self, argv):
        # arg parse
        self.parse_args(argv)
        if len(self.args) != 2:
            raise cmdBadArgument()
        # rpc call
        self.rpccall("execute", self.args[0], self.args[1], _callback=self._cb_print_output)

    def _cb_print_output(self, d):
        '''Print output of execute by object'''
        for o in d["objects"]:
            self.printer.out("%sid:%s%s%s output:"%(self.tdtc("id"), self.tdc("id"),
                                                    o["id"], color["reset"]))
            self.printer.out(o.get("output", ""), nl="")
+0 −23
Original line number Diff line number Diff line
@@ -8,29 +8,6 @@ from sjrpc.core.exceptions import *
from cccli.printer import Printer, color
from cccli.command.command import TqlCommand

class Command_execute(TqlCommand):
    '''Execute a command on the remote host'''

    def __init__(self, cli, argv0):
        TqlCommand.__init__(self, cli, argv0)
        self.set_usage("%prog [options] <tql> <command>")
        self.tql_filter += "&con&r~'host|hv'"

    def __call__(self, argv):
        # arg parse
        self.parse_args(argv)
        if len(self.args) != 2:
            raise cmdBadArgument()
        # rpc call
        self.rpccall("execute", self.args[0], self.args[1], _callback=self._cb_print_output)

    def _cb_print_output(self, d):
        '''Print output of execute by object'''
        for o in d["objects"]:
            self.printer.out("%sid:%s%s%s output:"%(self.tdtc("id"), self.tdc("id"),
                                                    o["id"], color["reset"]))
            self.printer.out(o.get("output", ""), nl="")

class Command_shutdown(TqlCommand):
    '''Shutdown a physical host'''