def _br_entries(self, topo, cmd, base): entries = [] for k, v in topo.get("BorderRouters", {}).items(): conf_dir = os.path.join(base, k) entries.append((k, [cmd, "-id=%s" % k, "-confd=%s" % conf_dir, "-prom=%s" % prom_addr_br(k, v, self.args.port_gen)])) return entries
def _br_conf(self, topo_id, topo, base): raw_entry = { 'image': docker_image(self.args, 'border'), 'depends_on': [ 'scion_disp_br_%s' % topo_id.file_fmt(), ], 'environment': { 'SU_EXEC_USERSPEC': self.user_spec, }, 'networks': {}, 'volumes': [ *DOCKER_USR_VOL, 'vol_%sdisp_br_%s:/run/shm/dispatcher:rw' % (self.prefix, topo_id.file_fmt()), self._logs_vol() ], 'command': [] } for k, v in topo.get("BorderRouters", {}).items(): entry = copy.deepcopy(raw_entry) entry['container_name'] = self.prefix + k entry['volumes'].append('%s:/share/conf:ro' % os.path.join(base, k)) entry['command'].append('-id=%s' % k) entry['command'].append('-prom=%s' % prom_addr_br(k, v, self.args.port_gen)) # Set BR IPs in_net = self.elem_networks[k + "_internal"][0] entry['networks'][self.bridges[in_net['net']]] = {'ipv4_address': str(in_net['ipv4'])} for net in self.elem_networks[k]: entry['networks'][self.bridges[net['net']]] = {'ipv4_address': str(net['ipv4'])} self.dc_conf['services']['scion_%s' % k] = entry
def generate(self): config_dict = {} for topo_id, as_topo in self.args.topo_dicts.items(): ele_dict = defaultdict(list) for br_id, br_ele in as_topo["BorderRouters"].items(): ele_dict["BorderRouters"].append( prom_addr_br(br_id, br_ele, DEFAULT_BR_PROM_PORT)) for elem_id, elem in as_topo["ControlService"].items(): prom_addr = prom_addr_infra(self.args.docker, elem_id, elem, CS_PROM_PORT) ele_dict["ControlService"].append(prom_addr) if self.args.docker: host_dispatcher = prom_addr_dispatcher(self.args.docker, topo_id, self.args.networks, DISP_PROM_PORT, "") br_dispatcher = prom_addr_dispatcher(self.args.docker, topo_id, self.args.networks, DISP_PROM_PORT, "br") ele_dict["Dispatcher"] = [host_dispatcher, br_dispatcher] sd_prom_addr = '[%s]:%d' % (sciond_ip( self.args.docker, topo_id, self.args.networks), SCIOND_PROM_PORT) ele_dict["Sciond"].append(sd_prom_addr) config_dict[topo_id] = ele_dict self._write_config_files(config_dict) self._write_dc_file() self._write_disp_file()
def generate(self): config_dict = {} for topo_id, as_topo in self.args.topo_dicts.items(): ele_dict = defaultdict(list) for br_id, br_ele in as_topo["BorderRouters"].items(): ele_dict["BorderRouters"].append(prom_addr_br(br_id, br_ele, self.args.port_gen)) for svc_type in ["BeaconService", "PathService", "CertificateService"]: for elem_id, elem in as_topo[svc_type].items(): ele_dict[svc_type].append(prom_addr_infra(elem_id, elem, self.args.port_gen)) config_dict[topo_id] = ele_dict self._write_config_files(config_dict)
def _build_br_conf(self, topo_id, ia, base, name, v): config_dir = '/share/conf' if self.args.docker else os.path.join( base, name) raw_entry = { 'general': { 'id': name, 'config_dir': config_dir, }, 'log': self._log_entry(name), 'metrics': { 'prometheus': prom_addr_br(name, v, DEFAULT_BR_PROM_PORT), }, } return raw_entry
def _build_br_conf(self, topo_id, ia, base, name, v): config_dir = '/share/conf' if self.args.docker else os.path.join(base, name) raw_entry = { 'general': { 'ID': name, 'ConfigDir': config_dir, }, 'logging': self._log_entry(name), 'metrics': { 'Prometheus': prom_addr_br(name, v, DEFAULT_BR_PROM_PORT), }, 'discovery': self._discovery_entry(), 'br': { 'Profile': False, }, } return raw_entry
def generate(self): config_dict = {} for topo_id, as_topo in self.args.topo_dicts.items(): ele_dict = defaultdict(list) for br_id, br_ele in as_topo["BorderRouters"].items(): ele_dict["BorderRouters"].append( prom_addr_br(br_id, br_ele, DEFAULT_BR_PROM_PORT)) for elem_id, elem in as_topo["BeaconService"].items(): ele_dict["BeaconService"].append( prom_addr_infra(elem_id, elem, BS_PROM_PORT)) for elem_id, elem in as_topo["PathService"].items(): ele_dict["PathService"].append( prom_addr_infra(elem_id, elem, PS_PROM_PORT)) for elem_id, elem in as_topo["CertificateService"].items(): ele_dict["CertificateService"].append( prom_addr_infra(elem_id, elem, CS_PROM_PORT)) config_dict[topo_id] = ele_dict self._write_config_files(config_dict)