Skip to content
Snippets Groups Projects
connection.py 1.32 KiB
Newer Older
Seblu's avatar
Seblu committed
#!/usr/bin/env python
#coding=utf8

'''
CloudControl Connection related commands
'''

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

class Command_uptime(Command):
    '''Show connection uptime'''

    def __call__(self, argv):
        if len(argv) == 1:
            argv.append("a=%s"%self.cli.settings["login"])
        tql = "".join(argv[1:]) + "$con"
        try:
            objs = self.cli.rpc.call("list", tql)
        except RpcError as e:
            raise cmdError("RPCError: %s"%str(e))
        for o in objs:
            if "a" in o and "con" in o:
                self.printer.out("%s: %ss"%(o["a"], o["con"]))

    def usage(self):
Seblu's avatar
Seblu committed

class Command_whoami(Command):
    '''Show connection login'''

    def __call__(self, argv):
        if len(argv) != 1:
            raise cmdBadArgument()
Seblu's avatar
Seblu committed
        self.printer.out(self.cli.settings["login"])


class Command_kill(Command):
    '''Kill a server connection'''

    def __call__(self, argv):
        if len(argv) != 2:
            raise cmdBadArgument()
        try:
            self.cli.rpc.call("kill", argv[1])
        except RpcError as e:
            raise cmdError("RPCError: %s"%str(e))

    def usage(self):
        return "usage: kill <tql>"