Commit 3e59b01e authored by Antoine Millet's avatar Antoine Millet Committed by Sebastien Luttringer
Browse files

now compatible with new sjrpc API (requires sjrpc >= 14)

parent c16c5274
Loading
Loading
Loading
Loading
+13 −12
Original line number Diff line number Diff line
@@ -11,9 +11,9 @@ from cccli.printer import Printer, color
from cccli.command import Commands, Aliases
from cccli.handler import CliHandler
from cccli.tagdisplay import TagDisplay
from sjrpc.core.exceptions import *
from sjrpc.client import SimpleRpcClient
from sjrpc.utils import RpcHandler, pure
from sjrpc.core import RpcConnection
from sjrpc.utils import RpcHandler
import threading
import os, os.path
import sys
import re
@@ -76,15 +76,16 @@ class Cli(object):
        '''Connect to a cloud control server'''
        self.printer.debug("Connecting...")
        try:
            self.rpc = SimpleRpcClient.from_addr(self.settings["server"],
            self.rpc = RpcConnection.from_addr_ssl(self.settings["server"],
                                                   self.settings["port"],
                                                 enable_ssl=True,
                                                 default_handler=CliHandler(),
                                                   handler=CliHandler(),
                                                   on_disconnect="quit",
                                                   timeout=self.settings["cmdtimeout"],
                                                   conn_timeout=self.settings["contimeout"]
                                                   )
            self.rpc.start(daemonize=True)
            rpcthread = threading.Thread(target=self.rpc.run)
            rpcthread.daemon = True
            rpcthread.start()
        except Exception as e:
            s = "Connection failure!" if not str(e) else "Connection failure: %s"%str(e)
            raise cliError(s)
+1 −1
Original line number Diff line number Diff line
@@ -11,7 +11,7 @@ import shlex
import imp

from cccli.exception import *
from sjrpc.core.exceptions import *
from sjrpc.core import RpcError
from cccli.printer import Printer, color
from optparse import OptionParser
import cccli.commands
+1 −5
Original line number Diff line number Diff line
@@ -7,9 +7,7 @@ CloudControl CLI RPC Handler

from cccli.exception import *
from cccli.printer import Printer, color
from sjrpc.client import SimpleRpcClient
from sjrpc.utils import RpcHandler, pure
from sjrpc.core.exceptions import *
from sjrpc.utils import RpcHandler
import cccli
import os, os.path
import subprocess
@@ -19,12 +17,10 @@ import platform
class CliHandler(RpcHandler):
    '''Handle RPC incoming request'''

    @pure
    def quit(self, rpc=None):
        '''Call back function on server disconnect'''
        Printer().warn("Disconnected from server!")

    @pure
    def get_tags(self, complete=None, partial=None):
        '''Return a dict of local tags'''
        # prepare work
+1 −1
Original line number Diff line number Diff line
@@ -9,7 +9,7 @@ Standards-Version: 3.8.0

Package: cc-cli
Architecture: all
Depends: ${misc:Depends}, ${python:Depends}, python (>= 2.6), python-sjrpc (>= 13), python-xdg
Depends: ${misc:Depends}, ${python:Depends}, python (>= 2.6), python-sjrpc (>= 14), python-xdg
XB-Python-Version: ${python:Versions}
Description: CloudControl CLI
 This package provides the Command Line Interface to CloudControl.