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))
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