def collect(self):

        results = {}

        neutron_client = NeutronAPIClient(
            username=self.username,
            password=self.password,
            auth_url=self.auth_url,
            project_id=self.project_id,
            region_name=self.region_name,
        )

        result = yield neutron_client.agents()
        results["agents"] = result["agents"]

        result = yield neutron_client.networks()
        results["networks"] = result["networks"]

        result = yield neutron_client.subnets()
        results["subnets"] = result["subnets"]

        result = yield neutron_client.routers()
        results["routers"] = result["routers"]

        result = yield neutron_client.ports()
        results["ports"] = result["ports"]

        result = yield neutron_client.security_groups()
        results["security_groups"] = result["security_groups"]

        result = yield neutron_client.floatingips()
        results["floatingips"] = result["floatingips"]

        returnValue(results)
            _agent["dhcp_agent_subnets"] = []
            _subnets = []
            _networks = []

            if _agent["agent_type"].lower() == "dhcp agent":
                dhcp_data = yield neutron_client.api_call("/v2.0/agents/%s/dhcp-networks" % str(_agent["id"]))

                for network in dhcp_data["networks"]:
                    _networks.append(network.get("id"))
                    for subnet in network["subnets"]:
                        _subnets.append(subnet)

                _agent["dhcp_agent_subnets"] = _subnets
                _agent["dhcp_agent_networks"] = _networks

        result = yield neutron_client.networks()
        results["networks"] = result["networks"]

        result = yield neutron_client.subnets()
        results["subnets"] = result["subnets"]

        result = yield neutron_client.routers()
        results["routers"] = result["routers"]

        result = yield neutron_client.ports()
        results["ports"] = result["ports"]

        result = yield neutron_client.floatingips()
        results["floatingips"] = result["floatingips"]

        # Do some DNS lookups as well.