def start(self):
        test_name = base.sanitize_log_path(self.test_name)

        log_dir = os.path.join(neutron_base.DEFAULT_LOG_DIR, test_name)
        fileutils.ensure_tree(log_dir, mode=0o755)

        timestamp = datetime.datetime.now().strftime("%Y-%m-%d--%H-%M-%S-%f")
        log_file = "%s/%s--%s.log" % (log_dir, self.process_name, timestamp)

        gobgpd_exec = spawn.find_executable(self.exec_name)
        if not gobgpd_exec:
            raise Exception("can't find gobgpd executable in PATH (%s, %s)" %
                            (self.exec_name, os.environ['PATH']))

        cmd = [
            gobgpd_exec,
            '-t',
            'json',
            '-f',
            self.config_filenames[0],
            '--log-level=debug',
            # we don't need this management API:
            '--api-hosts=0.0.0.0:%s' % random.randint(20000, 30000)
        ]

        if self.GOBGPD_LOG:
            cmd = ['sh', '-c', ('%s > %s 2>&1') % (' '.join(cmd), log_file)]

        self.process = async_process.AsyncProcess(cmd,
                                                  namespace=self.namespace)
        self.process.start()
Exemple #2
0
    def start(self):
        test_name = base.sanitize_log_path(self.test_name)

        log_dir = os.path.join(neutron_base.DEFAULT_LOG_DIR, test_name)
        fileutils.ensure_tree(log_dir, mode=0o755)

        timestamp = datetime.datetime.now().strftime("%Y-%m-%d--%H-%M-%S-%f")
        log_file = "%s/%s--%s.log" % (log_dir, self.process_name, timestamp)

        gobgpd_exec = spawn.find_executable(self.exec_name)
        if not gobgpd_exec:
            raise Exception("can't find gobgpd executable in PATH (%s, %s)" %
                            (self.exec_name, os.environ['PATH']))

        cmd = [
            'sh',
            '-c',
            (
                '%s -t json -f %s '
                '--pprof-disable '
                '--log-level=debug '
                '--api-hosts=0.0.0.0:%s'  # we don't need this API
                ' > %s 2>&1') %
            (
                gobgpd_exec,
                self.config_filenames[0],
                random.randint(20000, 30000),  # NOTE(tmorin): use fixture?!
                log_file)
        ]
        self.process = async_process.AsyncProcess(cmd,
                                                  namespace=self.namespace)
        self.process.start()
Exemple #3
0
    def __init__(self, env_desc, host_desc, temp_dir, local_ip, **kwargs):
        super(OVSConfigFixture, self).__init__(
            env_desc, host_desc, temp_dir,
            base_filename='openvswitch_agent.ini')

        self.tunneling_enabled = self.env_desc.tunneling_enabled
        ext_dev = utils.get_rand_device_name(prefix='br-eth')
        self.config.update({
            'ovs': {
                'local_ip': local_ip,
                'integration_bridge': self._generate_integration_bridge(),
                'bridge_mappings': '%s:%s' % (PHYSICAL_NETWORK_NAME, ext_dev),
                'of_inactivity_probe': '0',
                'ovsdb_debug': 'True',
            },
            'securitygroup': {
                'firewall_driver': host_desc.firewall_driver,
            },
            'agent': {
                'l2_population': str(self.env_desc.l2_pop),
                'arp_responder': str(self.env_desc.arp_responder),
                'debug_iptables_rules': str(env_desc.debug_iptables),
                'use_helper_for_ns_read': 'False',
            }
        })

        if self.tunneling_enabled:
            self.config['agent'].update({
                'tunnel_types': self.env_desc.network_type})
            self.config['ovs'].update({
                'tunnel_bridge': self._generate_tunnel_bridge(),
                'int_peer_patch_port': self._generate_int_peer(),
                'tun_peer_patch_port': self._generate_tun_peer()})
        else:
            if env_desc.report_bandwidths:
                self.config['ovs'][constants.RP_BANDWIDTHS] = \
                    '%s:%s:%s' % (ext_dev, MINIMUM_BANDWIDTH_EGRESS_KBPS,
                                  MINIMUM_BANDWIDTH_INGRESS_KBPS)

        if env_desc.qos:
            self.config['agent']['extensions'] = 'qos'
        if env_desc.log:
            self.config['agent']['extensions'] = 'log'
            test_name = kwargs.get("test_name")
            test_name = base.sanitize_log_path(test_name)
            self.config.update({
                'network_log': {
                    'local_output_log_base':
                        self._generate_temp_log_file(test_name)}
            })
        if not env_desc.enable_traditional_dhcp:
            self.config['agent']['extensions'] = 'dhcp'
            self.config.update({
                'dhcp': {
                    'enable_ipv6': 'True',
                    'dhcp_renewal_time': '0',
                    'dhcp_rebinding_time': '0'}
            })
Exemple #4
0
    def __init__(self, env_desc, host_desc, temp_dir, local_ip, **kwargs):
        super(OVSConfigFixture,
              self).__init__(env_desc,
                             host_desc,
                             temp_dir,
                             base_filename='openvswitch_agent.ini')

        self.tunneling_enabled = self.env_desc.tunneling_enabled
        self.config.update({
            'ovs': {
                'local_ip': local_ip,
                'integration_bridge': self._generate_integration_bridge(),
                'of_interface': host_desc.of_interface,
            },
            'securitygroup': {
                'firewall_driver': host_desc.firewall_driver,
            },
            'agent': {
                'l2_population': str(self.env_desc.l2_pop),
                'arp_responder': str(self.env_desc.arp_responder),
                'debug_iptables_rules': str(env_desc.debug_iptables)
            }
        })

        if self.tunneling_enabled:
            self.config['agent'].update(
                {'tunnel_types': self.env_desc.network_type})
            self.config['ovs'].update({
                'tunnel_bridge':
                self._generate_tunnel_bridge(),
                'int_peer_patch_port':
                self._generate_int_peer(),
                'tun_peer_patch_port':
                self._generate_tun_peer()
            })
        else:
            device = utils.get_rand_device_name(prefix='br-eth')
            self.config['ovs']['bridge_mappings'] = '%s:%s' % (
                PHYSICAL_NETWORK_NAME, device)
            if env_desc.report_bandwidths:
                self.config['ovs'][c_const.RP_BANDWIDTHS] = \
                    '%s:%s:%s' % (device, MINIMUM_BANDWIDTH_EGRESS_KBPS,
                                  MINIMUM_BANDWIDTH_INGRESS_KBPS)

        if env_desc.qos:
            self.config['agent']['extensions'] = 'qos'
        if env_desc.log:
            self.config['agent']['extensions'] = 'log'
            test_name = kwargs.get("test_name")
            test_name = base.sanitize_log_path(test_name)
            self.config.update({
                'network_log': {
                    'local_output_log_base':
                    self._generate_temp_log_file(test_name)
                }
            })
    def start(self):
        test_name = base.sanitize_log_path(self.test_name)

        log_dir = os.path.join(DEFAULT_LOG_DIR, test_name)
        common_utils.ensure_dir(log_dir)

        timestamp = datetime.datetime.now().strftime("%Y-%m-%d--%H-%M-%S-%f")
        log_file = "%s--%s.log" % (self.process_name, timestamp)
        cmd = [spawn.find_executable(self.exec_name),
               '--log-dir', log_dir,
               '--log-file', log_file]
        for filename in self.config_filenames:
            cmd += ['--config-file', filename]
        self.process = async_process.AsyncProcess(cmd)
        self.process.start(block=True)
Exemple #6
0
    def __init__(self, env_desc, host_desc, temp_dir, local_ip, **kwargs):
        super(OVSConfigFixture, self).__init__(
            env_desc, host_desc, temp_dir,
            base_filename='openvswitch_agent.ini')

        self.tunneling_enabled = self.env_desc.tunneling_enabled
        ext_dev = utils.get_rand_device_name(prefix='br-eth')
        self.config.update({
            'ovs': {
                'local_ip': local_ip,
                'integration_bridge': self._generate_integration_bridge(),
                'of_interface': host_desc.of_interface,
                'bridge_mappings': '%s:%s' % (PHYSICAL_NETWORK_NAME, ext_dev)
            },
            'securitygroup': {
                'firewall_driver': host_desc.firewall_driver,
            },
            'agent': {
                'l2_population': str(self.env_desc.l2_pop),
                'arp_responder': str(self.env_desc.arp_responder),
                'debug_iptables_rules': str(env_desc.debug_iptables)
            }
        })

        if self.tunneling_enabled:
            self.config['agent'].update({
                'tunnel_types': self.env_desc.network_type})
            self.config['ovs'].update({
                'tunnel_bridge': self._generate_tunnel_bridge(),
                'int_peer_patch_port': self._generate_int_peer(),
                'tun_peer_patch_port': self._generate_tun_peer()})
        else:
            if env_desc.report_bandwidths:
                self.config['ovs'][constants.RP_BANDWIDTHS] = \
                    '%s:%s:%s' % (ext_dev, MINIMUM_BANDWIDTH_EGRESS_KBPS,
                                  MINIMUM_BANDWIDTH_INGRESS_KBPS)

        if env_desc.qos:
            self.config['agent']['extensions'] = 'qos'
        if env_desc.log:
            self.config['agent']['extensions'] = 'log'
            test_name = kwargs.get("test_name")
            test_name = base.sanitize_log_path(test_name)
            self.config.update({
                'network_log': {
                    'local_output_log_base':
                        self._generate_temp_log_file(test_name)}
            })
Exemple #7
0
    def start(self):
        test_name = base.sanitize_log_path(self.test_name)

        log_dir = os.path.join(DEFAULT_LOG_DIR, test_name)
        common_utils.ensure_dir(log_dir)

        timestamp = datetime.datetime.now().strftime("%Y-%m-%d--%H-%M-%S-%f")
        log_file = "%s--%s.log" % (self.process_name, timestamp)
        cmd = [
            spawn.find_executable(self.exec_name), '--log-dir', log_dir,
            '--log-file', log_file
        ]
        for filename in self.config_filenames:
            cmd += ['--config-file', filename]
        self.process = async_process.AsyncProcess(cmd)
        self.process.start(block=True)
Exemple #8
0
    def __init__(self, env_desc, host_desc, temp_dir, local_ip, **kwargs):
        super(OVSConfigFixture, self).__init__(
            env_desc, host_desc, temp_dir,
            base_filename='openvswitch_agent.ini')

        self.tunneling_enabled = self.env_desc.tunneling_enabled
        self.config.update({
            'ovs': {
                'local_ip': local_ip,
                'integration_bridge': self._generate_integration_bridge(),
                'of_interface': host_desc.of_interface,
            },
            'securitygroup': {
                'firewall_driver': host_desc.firewall_driver,
            },
            'agent': {
                'l2_population': str(self.env_desc.l2_pop),
                'arp_responder': str(self.env_desc.arp_responder),
                'debug_iptables_rules': str(env_desc.debug_iptables)
            }
        })

        if self.tunneling_enabled:
            self.config['agent'].update({
                'tunnel_types': self.env_desc.network_type})
            self.config['ovs'].update({
                'tunnel_bridge': self._generate_tunnel_bridge(),
                'int_peer_patch_port': self._generate_int_peer(),
                'tun_peer_patch_port': self._generate_tun_peer()})
        else:
            self.config['ovs']['bridge_mappings'] = (
                self._generate_bridge_mappings())

        if env_desc.qos:
            self.config['agent']['extensions'] = 'qos'
        if env_desc.log:
            self.config['agent']['extensions'] = 'log'
            test_name = kwargs.get("test_name")
            test_name = base.sanitize_log_path(test_name)
            self.config.update({
                'network_log': {
                    'local_output_log_base':
                        self._generate_temp_log_file(test_name)}
            })
Exemple #9
0
    def start(self):
        test_name = base.sanitize_log_path(self.test_name)

        log_dir = os.path.join(fullstack_base.DEFAULT_LOG_DIR, test_name)
        fileutils.ensure_tree(log_dir, mode=0o755)

        timestamp = datetime.datetime.now().strftime("%Y-%m-%d--%H-%M-%S-%f")
        log_file = "%s--%s.log" % (self.process_name, timestamp)
        run_as_root = bool(self.namespace)
        exec_name = (self.exec_name
                     if run_as_root else spawn.find_executable(self.exec_name))
        cmd = [exec_name, '--log-dir', log_dir, '--log-file', log_file]
        for filename in self.config_filenames:
            cmd += ['--config-file', filename]
        self.process = async_process.AsyncProcess(cmd,
                                                  run_as_root=run_as_root,
                                                  namespace=self.namespace)
        self.process.start(block=True)
        LOG.debug("Process started: %s", self.process_name)
Exemple #10
0
    def setUp(self):
        super(BaseSudoTestCase, self).setUp()
        if not base.bool_from_env('OS_SUDO_TESTING'):
            self.skipTest('Testing with sudo is not enabled')

        # Have each test log into its own log file
        cfg.CONF.set_override('debug', True)
        common_utils.ensure_dir(DEFAULT_LOG_DIR)
        log_file = base.sanitize_log_path(
            os.path.join(DEFAULT_LOG_DIR, "%s.log" % self.id()))
        cfg.CONF.set_override('log_file', log_file)
        config.setup_logging()

        config.register_root_helper(cfg.CONF)
        self.config(group='AGENT',
                    root_helper=os.environ.get('OS_ROOTWRAP_CMD', SUDO_CMD))
        self.config(group='AGENT',
                    root_helper_daemon=os.environ.get(
                        'OS_ROOTWRAP_DAEMON_CMD'))
Exemple #11
0
    def setUp(self):
        super(BaseSudoTestCase, self).setUp()
        if not base.bool_from_env('OS_SUDO_TESTING'):
            self.skipTest('Testing with sudo is not enabled')

        # Have each test log into its own log file
        cfg.CONF.set_override('debug', True)
        common_utils.ensure_dir(DEFAULT_LOG_DIR)
        log_file = base.sanitize_log_path(
            os.path.join(DEFAULT_LOG_DIR, "%s.log" % self.id()))
        cfg.CONF.set_override('log_file', log_file)
        config.setup_logging()

        config.register_root_helper(cfg.CONF)
        self.config(group='AGENT',
                    root_helper=os.environ.get('OS_ROOTWRAP_CMD', SUDO_CMD))
        self.config(
            group='AGENT',
            root_helper_daemon=os.environ.get('OS_ROOTWRAP_DAEMON_CMD'))
Exemple #12
0
    def start(self):
        test_name = base.sanitize_log_path(self.test_name)

        log_dir = os.path.join(fullstack_base.DEFAULT_LOG_DIR, test_name)
        fileutils.ensure_tree(log_dir, mode=0o755)

        timestamp = datetime.datetime.now().strftime("%Y-%m-%d--%H-%M-%S-%f")
        log_file = "%s--%s.log" % (self.process_name, timestamp)
        cmd = [spawn.find_executable(self.exec_name),
               '--log-dir', log_dir,
               '--log-file', log_file]
        for filename in self.config_filenames:
            cmd += ['--config-file', filename]
        run_as_root = bool(self.namespace)
        self.process = async_process.AsyncProcess(
            cmd, run_as_root=run_as_root, namespace=self.namespace
        )
        self.process.start(block=True)
        LOG.debug("Process started: %s", self.process_name)