Exemplo n.º 1
0
    def __init__(self, cluster_config, target, local_port, apk_path, activity, reinstall):

        self.target = target
        self.local_port = local_port

        self.url = ""
        self.install_and_launch_app(target, local_port, apk_path, activity, reinstall)

        if self.is_emulator(target):
            self.url = "http://{}:{}".format(self.get_host_ip(), local_port)
        else:
            self.url = "http://{}:{}".format(self.get_device_ip(target), 5984)

        # Wrap a Sync Gateway instance and use that as a client to hit the LiteServ listener
        # in Couchbase Lite
        fake_target = {"ip": None, "name": None}
        self.sg = SyncGateway(cluster_config, fake_target)
        self.sg.url = self.url

        log.info("Listener running at {} ...".format(self.url))
Exemplo n.º 2
0
    def __init__(self, config):

        self._cluster_config = config

        if not os.path.isfile(self._cluster_config):
            log_info(
                "Cluster config not found in 'resources/cluster_configs/'")
            raise IOError(
                "Cluster config not found in 'resources/cluster_configs/'")

        log_info(self._cluster_config)

        # Load resources/cluster_configs/<cluster_config>.json
        with open("{}.json".format(config)) as f:
            cluster = json.loads(f.read())

        # Get load balancer IP
        lb_ip = None
        if is_load_balancer_enabled(self._cluster_config):
            # If load balancer is defined,
            # Switch all SG URLs to that of load balancer
            lb_ip = get_load_balancer_ip(self._cluster_config)

            sgs = [{
                "name": sg["name"],
                "ip": lb_ip
            } for sg in cluster["sync_gateways"]]
            log_info("Using load balancer IP as the SG IP: {}".format(sgs))
        else:
            sgs = [{
                "name": sg["name"],
                "ip": sg["ip"]
            } for sg in cluster["sync_gateways"]]

        acs = [{
            "name": ac["name"],
            "ip": ac["ip"]
        } for ac in cluster["sg_accels"]]

        self.cbs_ssl = cluster["environment"]["cbs_ssl_enabled"]
        self.xattrs = cluster["environment"]["xattrs_enabled"]

        if self.cbs_ssl:
            cbs_urls = [
                "https://{}:18091".format(cbs["ip"])
                for cbs in cluster["couchbase_servers"]
            ]
        else:
            cbs_urls = [
                "http://{}:8091".format(cbs["ip"])
                for cbs in cluster["couchbase_servers"]
            ]

        log_info("cbs: {}".format(cbs_urls))
        log_info("sgs: {}".format(sgs))
        log_info("acs: {}".format(acs))
        log_info("ssl: {}".format(self.cbs_ssl))

        self.sync_gateways = [
            SyncGateway(cluster_config=self._cluster_config, target=sg)
            for sg in sgs
        ]
        self.sg_accels = [
            SgAccel(cluster_config=self._cluster_config, target=ac)
            for ac in acs
        ]
        self.servers = [CouchbaseServer(url=cb_url) for cb_url in cbs_urls]
        self.sync_gateway_config = None  # will be set to Config object when reset() called