Exemplo n.º 1
0
 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
Exemplo n.º 2
0
 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
Exemplo n.º 3
0
 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()
Exemplo n.º 4
0
 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)
Exemplo n.º 5
0
 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
Exemplo n.º 6
0
 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
Exemplo n.º 7
0
 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)