示例#1
0
    def setUp(self):
        super(TestClientHTTPBasicAuth, self).setUp()
        conf = ceilometer_service.prepare_service(argv=[], config_files=[])
        self.CONF = self.useFixture(config_fixture.Config(conf)).conf
        self.parsed_url = urlparse.urlparse(
            'http://127.0.0.1:8080/controller/nb/v2?container_name=default&'
            'container_name=egg&auth=%s&user=admin&password=admin_pass&'
            'scheme=%s' % (self.auth_way, self.scheme))
        self.params = urlparse.parse_qs(self.parsed_url.query)
        self.endpoint = urlparse.urlunparse(
            urlparse.ParseResult(self.scheme, self.parsed_url.netloc,
                                 self.parsed_url.path, None, None, None))
        odl_params = {
            'auth': self.params.get('auth')[0],
            'user': self.params.get('user')[0],
            'password': self.params.get('password')[0]
        }
        self.client = client.Client(self.CONF, self.endpoint, odl_params)

        self.resp = mock.MagicMock()
        self.get = mock.patch('requests.get', return_value=self.resp).start()

        self.resp.raw.version = 1.1
        self.resp.status_code = 200
        self.resp.reason = 'OK'
        self.resp.headers = {}
        self.resp.content = 'dummy'
示例#2
0
    def setUp(self):
        super(TestClientHTTPBasicAuth, self).setUp()
        self.parsed_url = urlparse.urlparse(
            'http://127.0.0.1:8080/controller/nb/v2?container_name=default&'
            'container_name=egg&auth=%s&user=admin&password=admin_pass&'
            'scheme=%s' % (self.auth_way, self.scheme))
        self.params = urlparse.parse_qs(self.parsed_url.query)
        self.endpoint = urlparse.urlunparse(
            urlparse.ParseResult(self.scheme,
                                 self.parsed_url.netloc,
                                 self.parsed_url.path,
                                 None, None, None))
        odl_params = {}
        odl_params['auth'] = self.params.get('auth')[0]
        odl_params['user'] = self.params.get('user')[0]
        odl_params['password'] = self.params.get('password')[0]
        self.client = client.Client(self.endpoint, odl_params)

        self.resp = mock.MagicMock()
        self.get = mock.patch('requests.get',
                              return_value=self.resp).start()

        self.resp.raw.version = 1.1
        self.resp.status_code = 200
        self.resp.reason = 'OK'
        self.resp.headers = {}
        self.resp.content = 'dummy'
示例#3
0
    def _prepare_cache(self, endpoint, params, cache):

        if 'network.statistics.opendaylight' in cache:
            return cache['network.statistics.opendaylight']

        data = {}

        container_names = params.get('container_name', ['default'])

        odl_params = {}
        if 'auth' in params:
            odl_params['auth'] = params['auth'][0]
        if 'user' in params:
            odl_params['user'] = params['user'][0]
        if 'password' in params:
            odl_params['password'] = params['password'][0]
        cs = client.Client(self.conf, endpoint, odl_params)

        for container_name in container_names:
            try:
                container_data = {}

                # get flow statistics
                container_data['flow'] = cs.statistics.get_flow_statistics(
                    container_name)

                # get port statistics
                container_data['port'] = cs.statistics.get_port_statistics(
                    container_name)

                # get table statistics
                container_data['table'] = cs.statistics.get_table_statistics(
                    container_name)

                # get topology
                container_data['topology'] = cs.topology.get_topology(
                    container_name)

                # get switch information
                container_data['switch'] = cs.switch_manager.get_nodes(
                    container_name)

                # get and optimize user links
                # e.g.
                # before:
                #   "OF|2@OF|00:00:00:00:00:00:00:02"
                # after:
                #   {
                #       'port': {
                #           'type': 'OF',
                #           'id': '2'},
                #       'node': {
                #           'type': 'OF',
                #           'id': '00:00:00:00:00:00:00:02'
                #       }
                #   }
                user_links_raw = cs.topology.get_user_links(container_name)
                user_links = []
                container_data['user_links'] = user_links
                for user_link_row in user_links_raw['userLinks']:
                    user_link = {}
                    for k, v in six.iteritems(user_link_row):
                        if (k == "dstNodeConnector"
                                or k == "srcNodeConnector"):
                            port_raw, node_raw = v.split('@')
                            port = {}
                            port['type'], port['id'] = port_raw.split('|')
                            node = {}
                            node['type'], node['id'] = node_raw.split('|')
                            v = {'port': port, 'node': node}
                        user_link[k] = v
                    user_links.append(user_link)

                # get link status to hosts
                container_data['active_hosts'] = (
                    cs.host_tracker.get_active_hosts(container_name))
                container_data['inactive_hosts'] = (
                    cs.host_tracker.get_inactive_hosts(container_name))
                data[container_name] = container_data
            except Exception:
                LOG.exception('Request failed to connect to OpenDaylight'
                              ' with NorthBound REST API')

        cache['network.statistics.opendaylight'] = data

        return data