Esempio n. 1
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():
             prom_addr = prom_addr_infra(self.args.docker, elem_id, elem, BS_PROM_PORT)
             ele_dict["BeaconService"].append(prom_addr)
         for elem_id, elem in as_topo["PathService"].items():
             prom_addr = prom_addr_infra(self.args.docker, elem_id, elem, PS_PROM_PORT)
             ele_dict["PathService"].append(prom_addr)
         for elem_id, elem in as_topo["CertificateService"].items():
             prom_addr = prom_addr_infra(self.args.docker, elem_id, elem, CS_PROM_PORT)
             ele_dict["CertificateService"].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 = prom_addr_sciond(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()
Esempio n. 2
0
 def _ps_conf(self, topo_id, topo, base):
     image = 'path_py' if self.args.path_server == 'py' else 'path'
     raw_entry = {
         'image': docker_image(self.args, image),
         'depends_on': [
             sciond_svc_name(topo_id),
             'scion_disp_%s' % topo_id.file_fmt(),
         ],
         'environment': {
             'SU_EXEC_USERSPEC': self.user_spec,
         },
         'volumes': self._std_vol(topo_id),
         'command': [],
     }
     for k, v in topo.get("PathService", {}).items():
         entry = copy.deepcopy(raw_entry)
         name = self.prefix + k
         entry['container_name'] = name
         entry['volumes'].append('%s:/share/conf:ro' % os.path.join(base, k))
         if self.args.path_server == 'py':
             entry['command'].append('--spki_cache_dir=cache')
             entry['command'].append('--prom=%s' % prom_addr_infra(k, v, self.args.port_gen))
             entry['command'].append('--sciond_path=%s' %
                                     get_default_sciond_path(ISD_AS(topo["ISD_AS"])))
             entry['command'].append(k)
             entry['command'].append('conf')
         self.dc_conf['services']['scion_%s' % k] = entry
Esempio n. 3
0
 def _bs_conf(self, topo_id, topo, base):
     raw_entry = {
         'image':
         docker_image(self.args, 'beacon_py'),
         'depends_on': [
             sciond_svc_name(topo_id),
             'scion_disp_%s' % topo_id.file_fmt(),
         ],
         'environment': {
             'SU_EXEC_USERSPEC': self.user_spec,
         },
         'network_mode':
         'service:scion_disp_%s' % topo_id.file_fmt(),
         'volumes':
         self._std_vol(topo_id),
         'command': ['--spki_cache_dir=cache']
     }
     for k, v in topo.get("BeaconService", {}).items():
         entry = copy.deepcopy(raw_entry)
         name = self.prefix + k
         entry['container_name'] = name
         entry['volumes'].append('%s:/share/conf:ro' %
                                 os.path.join(base, k))
         prom_addr = prom_addr_infra(self.args.docker, k, v, BS_PROM_PORT)
         entry['command'].append('--prom=%s' % prom_addr)
         entry['command'].append(
             '--sciond_path=%s' %
             get_default_sciond_path(ISD_AS(topo["ISD_AS"])))
         entry['command'].append(k)
         entry['command'].append('conf')
         self.dc_conf['services']['scion_%s' % k] = entry
Esempio n. 4
0
 def _std_entries(self, topo, topo_key, cmd, base):
     entries = []
     for elem_id, elem in topo.get(topo_key, {}).items():
         conf_dir = os.path.join(base, elem_id)
         prom_addr = prom_addr_infra(elem_id, elem, self.args.port_gen)
         entries.append((elem_id, [cmd, "--prom", prom_addr, "--sciond_path",
                                   get_default_sciond_path(ISD_AS(topo["ISD_AS"])),
                                   elem_id, conf_dir]))
     return entries
Esempio n. 5
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)
Esempio n. 6
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)
Esempio n. 7
0
File: go.py Progetto: Kajahnig/scion
 def _metrics_entry(self, name, infra_elem, base_port):
     prom_addr = prom_addr_infra(self.args.docker, name, infra_elem,
                                 base_port)
     return {'Prometheus': prom_addr}