diff --git a/cccli/command/__init__.py b/cccli/command/__init__.py index 5f0758530b4c4a6288e402eadc16fff896ee3640..7b76b8d79601fb1a7a1e3417c96efc1eeba7db5e 100644 --- a/cccli/command/__init__.py +++ b/cccli/command/__init__.py @@ -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 diff --git a/cccli/command/execute.py b/cccli/command/execute.py new file mode 100644 index 0000000000000000000000000000000000000000..d66e78a15525d7339f5c5311744860f8db2a636f --- /dev/null +++ b/cccli/command/execute.py @@ -0,0 +1,32 @@ + +''' +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="") diff --git a/cccli/command/host.py b/cccli/command/shutdown.py similarity index 57% rename from cccli/command/host.py rename to cccli/command/shutdown.py index 80fc2125d68a9b89bec34f35b4cb2793a4974b57..2e361bbef6b302561153b9d43f138b092e946e9b 100644 --- a/cccli/command/host.py +++ b/cccli/command/shutdown.py @@ -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'''