Exemplo n.º 1
0
    def _sig_toml(self, topo_id, topo):
        name = 'sig%s' % topo_id.file_fmt()
        net = self.args.networks[name][0]
        log_level = 'debug'
        ipv = 'ipv4'
        if ipv not in net:
            ipv = 'ipv6'

        sciond_net = self.args.networks["sd" + topo_id.file_fmt()][0]
        ipv = 'ipv4'
        if ipv not in sciond_net:
            ipv = 'ipv6'
        sciond_ip = sciond_net[ipv]

        sig_conf = {
            'gateway': {
                'id': name,
                'traffic_policy_file': 'conf/sig.json',
                'ctrl_addr': str(net[ipv]),
            },
            'sciond_connection': {
                'address': socket_address_str(sciond_ip, SD_API_PORT),
            },
            'log': {
                'console': {
                    'level': log_level,
                }
            },
            'metrics': {
                'prometheus': '0.0.0.0:%s' % SIG_PROM_PORT
            },
            'features': translate_features(self.args.features),
        }
        path = os.path.join(topo_id.base_dir(self.args.output_dir), SIG_CONFIG_NAME)
        write_file(path, toml.dumps(sig_conf))
Exemplo n.º 2
0
 def _build_sciond_conf(self, topo_id, ia, base):
     name = sciond_name(topo_id)
     config_dir = '/share/conf' if self.args.docker else base
     ip = sciond_ip(self.args.docker, topo_id, self.args.networks)
     raw_entry = {
         'general': {
             'id': name,
             'config_dir': config_dir,
             'reconnect_to_dispatcher': True,
         },
         'log': self._log_entry(name),
         'trust_db': {
             'connection': os.path.join(self.db_dir, '%s.trust.db' % name),
         },
         'path_db': {
             'connection': os.path.join(self.db_dir, '%s.path.db' % name),
         },
         'drkey_db': {
             'connection': os.path.join(self.db_dir, '%s.drkey.db' % name),
         },
         'sd': {
             'address': socket_address_str(ip, SD_API_PORT),
             'bind_dialer_to_address': True,
         },
         'tracing': self._tracing_entry(),
         'metrics': {
             'prometheus': socket_address_str(ip, SCIOND_PROM_PORT)
         },
         'features': translate_features(self.args.features),
         'api': {
             'addr': socket_address_str(ip, SD_API_PORT + 700),
         }
     }
     return raw_entry
Exemplo n.º 3
0
Arquivo: go.py Projeto: worxli/scion
 def _build_control_service_conf(self, topo_id, ia, base, name, infra_elem, ca):
     config_dir = '/share/conf' if self.args.docker else base
     raw_entry = {
         'general': {
             'id': name,
             'config_dir': config_dir,
             'reconnect_to_dispatcher': True,
         },
         'log': self._log_entry(name),
         'trust_db': {
             'connection': os.path.join(self.db_dir, '%s.trust.db' % name),
         },
         'beacon_db':     {
             'connection': os.path.join(self.db_dir, '%s.beacon.db' % name),
         },
         'path_db': {
             'connection': os.path.join(self.db_dir, '%s.path.db' % name),
         },
         'tracing': self._tracing_entry(),
         'metrics': self._metrics_entry(infra_elem, CS_PROM_PORT),
         'features': translate_features(self.args.features),
     }
     if ca:
         raw_entry['renewal_db'] = {
             'connection': os.path.join(self.db_dir, '%s.renewal.db' % name),
         }
     return raw_entry
Exemplo n.º 4
0
Arquivo: go.py Projeto: worxli/scion
 def _build_disp_conf(self, name, topo_id=None):
     prometheus_addr = prom_addr_dispatcher(self.args.docker, topo_id,
                                            self.args.networks, DISP_PROM_PORT, name)
     return {
         'dispatcher': {
             'id': name,
         },
         'log': self._log_entry(name),
         'metrics': {
             'prometheus': prometheus_addr,
         },
         'features': translate_features(self.args.features),
     }
Exemplo n.º 5
0
Arquivo: go.py Projeto: worxli/scion
 def _build_br_conf(self, topo_id, ia, base, name, v):
     config_dir = '/share/conf' if self.args.docker else base
     raw_entry = {
         'general': {
             'id': name,
             'config_dir': config_dir,
         },
         'log': self._log_entry(name),
         'metrics': {
             'prometheus': prom_addr(v['internal_addr'], DEFAULT_BR_PROM_PORT),
         },
         'features': translate_features(self.args.features),
     }
     return raw_entry
Exemplo n.º 6
0
 def _build_control_service_conf(self, topo_id, ia, base, name, infra_elem,
                                 ca):
     config_dir = '/share/conf' if self.args.docker else base
     sd_ip = sciond_ip(self.args.docker, topo_id, self.args.networks)
     raw_entry = {
         'general': {
             'id': name,
             'config_dir': config_dir,
             'reconnect_to_dispatcher': True,
         },
         'log': self._log_entry(name),
         'trust_db': {
             'connection': os.path.join(self.db_dir, '%s.trust.db' % name),
         },
         'beacon_db': {
             'connection': os.path.join(self.db_dir, '%s.beacon.db' % name),
         },
         'path_db': {
             'connection': os.path.join(self.db_dir, '%s.path.db' % name),
         },
         'drkey': {
             'cert_file':
             os.path.join(base, 'crypto', 'as',
                          f'{topo_id.ISD()}-{topo_id.AS_file()}.pem'),
             'key_file':
             os.path.join(base, 'crypto', 'as', 'cp-as.key'),
             'drkey_db': {
                 'connection': os.path.join(self.db_dir,
                                            '%s.drkey.db' % name),
             },
             'delegation': {
                 'colibri':
                 [str(sd_ip)
                  ],  # local daemon must be able to get the colibri DS
                 'piskes':
                 [str(sd_ip)],  # local daemon must be able to use piskes
             },
         },
         'tracing': self._tracing_entry(),
         'metrics': self._metrics_entry(infra_elem, CS_PROM_PORT),
         'api': self._api_entry(infra_elem, CS_PROM_PORT + 700),
         'features': translate_features(self.args.features),
     }
     if ca:
         raw_entry['ca'] = {'mode': 'in-process'}
     return raw_entry
Exemplo n.º 7
0
Arquivo: go.py Projeto: worxli/scion
 def _build_co_conf(self, topo_id, ia, base, name, infra_elem):
     config_dir = '/share/conf' if self.args.docker else base
     raw_entry = {
         'general': {
             'ID': name,
             'ConfigDir': config_dir,
             'ReconnectToDispatcher': True,
         },
         'log': self._log_entry(name),
         'trust_db': {
             'connection': os.path.join(self.db_dir, '%s.trust.db' % name),
         },
         'tracing': self._tracing_entry(),
         'metrics': self._metrics_entry(infra_elem, CO_PROM_PORT),
         'features': translate_features(self.args.features),
     }
     return raw_entry