Commit 9d1e1e22 authored by Seblu's avatar Seblu
Browse files

Use RPC connection directlty instead of proxy.

I change this because Proxy Remove RPCError exception in some case and this create a complex exception handling
parent 277dee55
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -59,15 +59,14 @@ class Cli(object):
        '''Connect to a cloud control server'''
        self.printer.debug("Connecting...")
        try:
            rpcc = SimpleRpcClient.from_addr(self.settings["server"],
            self.rpc = SimpleRpcClient.from_addr(self.settings["server"],
                                             self.settings["port"],
                                             enable_ssl=True,
                                             default_handler=CliHandler(),
                                             on_disconnect="quit",
                                             timeout=self.settings["timeout"]
                                        )
            rpcc.start(daemonize=True)
            self.rpc = ConnectionProxy(rpcc)
            self.rpc.start(daemonize=True)
        except Exception as e:
            s = "Connection failure!" if not str(e) else "Connection failure: %s"%str(e)
            raise cliError(s)
@@ -77,7 +76,7 @@ class Cli(object):
        '''Handle server authentification'''
        self.printer.debug("Authenticating...")
        try:
            self.rpc.authentify(self.settings["login"], self.settings["pass"])
            self.rpc.call("authentify", self.settings["login"], self.settings["pass"])
        except Exception as e:
            s = "Authentication failure!" if not str(e) else "Authentication failure: %s"%str(e)
            raise cliError(s)
+12 −12
Original line number Diff line number Diff line
@@ -156,7 +156,7 @@ class Command(object):

    def cmd_rcmd(self, argv):
        '''Show remote commands'''
        for cmds in self.cli.rpc.list_commands():
        for cmds in self.cli.rpc.call("list_commands"):
            self.printer.out("%s"%cmds["name"])
    cmd_rcmd.usage = "rcmd"
    cmd_rcmd.desc = "Print remote command list"
@@ -181,7 +181,7 @@ class Command(object):
        if len(args) == 0:
            args.append("a")
        try:
            objs = self.cli.rpc.list(str.join("", args))
            objs = self.cli.rpc.call("list", str.join("", args))
        except RpcError as e:
            raise cmdError("RPCError: %s"%str(e))
        if len(objs) == 0:
@@ -227,7 +227,7 @@ class Command(object):
        tql = str.join("", argv[1:])
        # print tql list result
        try:
            objs = self.cli.rpc.list(tql)
            objs = self.cli.rpc.call("list",tql)
        except RpcError as e:
            raise cmdError("RPCError: %s"%str(e))
        if len(objs) == 0:
@@ -245,7 +245,7 @@ class Command(object):
            if self.printer.ask("You request is on more than 5 objets. Are you really sure to %s its? (Yes, I am) "%argv[0], "Yes, I am") != "Yes, I am":
                raise cmdWarning("Aborted")
        try:
            self.cli.rpc[argv[0]](tql)
            self.cli.rpc.call(argv[0],tql)
        except RpcError as e:
            raise cmdError("RPCError: %s"%str(e))

@@ -285,7 +285,7 @@ class Command(object):
            argv.append(self.cli.settings["login"])
        tql = "a~(%s)$con"%"|".join(argv[1:])
        try:
            objs = self.cli.rpc.list(tql)
            objs = self.cli.rpc.call("list",tql)
        except RpcError as e:
            raise cmdError("RPCError: %s"%str(e))
        for o in objs:
@@ -296,9 +296,9 @@ class Command(object):
        '''List static tags on an account (current by default)'''
        if len(argv) == 1:
            argv.append(self.cli.settings["login"])
        for a in argv:
        for a in argv[1:]:
            try:
                tl = self.cli.rpc.tags(a)
                tl = self.cli.rpc.call("tags",a)
                self.printer.out("%s: %s"%(a, tl))
            except RpcError as e:
                raise cmdError("RPCError: %s"%str(e))
@@ -309,7 +309,7 @@ class Command(object):
        if len(argv) != 4:
            raise cmdBadArgument()
        try:
            self.cli.rpc.addtag(argv[1], argv[2], argv[3])
            self.cli.rpc.call("addtag", argv[1], argv[2], argv[3])
        except RpcError as e:
            raise cmdError("RPCError: %s"%str(e))
    cmd_addtag.usage = "addtag <account> <tag> <value>"
@@ -319,7 +319,7 @@ class Command(object):
        if len(argv) != 3:
            raise cmdBadArgument()
        try:
            self.cli.rpc.deltag(argv[1], argv[2])
            self.cli.rpc.call("deltag", argv[1], argv[2])
        except RpcError as e:
            raise cmdError("RPCError: %s"%str(e))
    cmd_deltag.usage = "deltag <account> <tag>"
@@ -329,7 +329,7 @@ class Command(object):
        if len(argv) != 3:
            raise cmdBadArgument()
        try:
            self.cli.rpc.addaccount(argv[1], argv[2])
            self.cli.rpc.call("addaccount", argv[1], argv[2])
        except RpcError as e:
            raise cmdError("RPCError: %s"%str(e))
    cmd_addaccount.usage = "addaccount <name> <role>"
@@ -339,7 +339,7 @@ class Command(object):
        if len(argv) != 2:
            raise cmdBadArgument()
        try:
            self.cli.rpc.delaccount(argv[1])
            self.cli.rpc.call("delaccount", argv[1])
        except RpcError as e:
            raise cmdError("RPCError: %s"%str(e))
    cmd_delaccount.usage = "delaccount <name>"
@@ -362,7 +362,7 @@ class Command(object):
        else:
            raise cmdBadArgument()
        try:
            self.cli.rpc.passwd(argv[1], argv[2])
            self.cli.rpc.call("passwd", argv[1], argv[2])
        except RpcError as e:
            raise cmdError("RPCError: %s"%str(e))
    cmd_passwd.usage = "passwd <account> [password]"