示例#1
0
 def get_nuage_l2bridges(self,
                         context,
                         filters=None,
                         fields=None,
                         sorts=None,
                         limit=None,
                         marker=None,
                         page_reverse=False):
     marker_obj = lib_db_utils.get_marker_obj(self, context,
                                              'nuage_l2bridges', limit,
                                              marker)
     l2bridges = lib_model_query.get_collection(context,
                                                nuage_models.NuageL2bridge,
                                                self._make_l2bridges_dict,
                                                filters=filters,
                                                fields=fields,
                                                sorts=sorts,
                                                limit=limit,
                                                marker_obj=marker_obj,
                                                page_reverse=page_reverse)
     if not fields or 'physnets' in fields:
         for l2bridge in l2bridges:
             physnets = nuagedb.get_nuage_l2bridge_physnet_mappings(
                 context.session, l2bridge_id=l2bridge['id'])
             l2bridge['physnets'] = self._make_physnet_mapping_dict(
                 physnets)
     if not fields or 'networks' in fields:
         for l2bridge in l2bridges:
             networks = nuagedb.get_networks_for_nuage_l2bridge(
                 context.session, l2bridge['id'])
             networks = [n['id'] for n in networks]
             l2bridge['networks'] = networks
     return l2bridges
示例#2
0
 def _query_gateway_devices(self, context,
                            filters=None, sorts=None,
                            limit=None, marker=None,
                            page_reverse=None):
     marker_obj = db_utils.get_marker_obj(self,
         context, 'gateway_device', limit, marker)
     return model_query.get_collection_query(
         context, nsx_models.NetworkGatewayDevice,
         filters=filters, sorts=sorts, limit=limit,
         marker_obj=marker_obj, page_reverse=page_reverse)
示例#3
0
 def get_network_gateways(self, context, filters=None, fields=None,
                          sorts=None, limit=None, marker=None,
                          page_reverse=False):
     marker_obj = db_utils.get_marker_obj(self,
         context, 'network_gateway', limit, marker)
     return model_query.get_collection(context, nsx_models.NetworkGateway,
                                       self._make_network_gateway_dict,
                                       filters=filters, fields=fields,
                                       sorts=sorts, limit=limit,
                                       marker_obj=marker_obj,
                                       page_reverse=page_reverse)
示例#4
0
 def get_port_pair_groups(self, context, filters=None, fields=None,
                          sorts=None, limit=None, marker=None,
                          page_reverse=False):
     marker_obj = db_utils.get_marker_obj(self, context, 'port_pair_group',
                                          limit, marker)
     return model_query.get_collection(
         context, PortPairGroup,
         self._make_port_pair_group_dict,
         filters=filters, fields=fields,
         sorts=sorts,
         limit=limit, marker_obj=marker_obj,
         page_reverse=page_reverse)
示例#5
0
 def get_port_chains(self, context, filters=None, fields=None,
                     sorts=None, limit=None,
                     marker=None, page_reverse=False, default_sg=False):
     marker_obj = db_utils.get_marker_obj(self, context, 'port_chain',
                                          limit, marker)
     return model_query.get_collection(
         context, PortChain,
         self._make_port_chain_dict,
         filters=filters, fields=fields,
         sorts=sorts,
         limit=limit, marker_obj=marker_obj,
         page_reverse=page_reverse)
示例#6
0
 def get_switchport_mappings(self, context, filters=None, fields=None,
                             sorts=None, limit=None, marker=None,
                             page_reverse=False):
     marker_obj = lib_db_utils.get_marker_obj(self, context,
                                              'switchport_mappings',
                                              limit, marker)
     return lib_model_query.get_collection(
         context,
         nuage_models.NuageSwitchportMapping,
         self._make_switchport_mapping_dict,
         filters=filters, fields=fields,
         sorts=sorts, limit=limit, marker_obj=marker_obj,
         page_reverse=page_reverse)
示例#7
0
 def get_service_graphs(self, context, filters=None,
                        fields=None, sorts=None, limit=None,
                        marker=None, page_reverse=False):
     """Get Service Graphs."""
     marker_obj = db_utils.get_marker_obj(self, context,
                                          'service_graph', limit, marker)
     return model_query.get_collection(
         context, ServiceGraph,
         self._make_service_graph_dict,
         filters=filters, fields=fields,
         sorts=sorts,
         limit=limit, marker_obj=marker_obj,
         page_reverse=page_reverse)
 def get_flow_classifiers(self, context, filters=None, fields=None,
                          sorts=None, limit=None, marker=None,
                          page_reverse=False):
     marker_obj = db_utils.get_marker_obj(self, context, 'flow_classifier',
                                          limit, marker)
     return model_query.get_collection(
         context,
         FlowClassifier,
         self._make_flow_classifier_dict,
         filters=filters, fields=fields,
         sorts=sorts,
         limit=limit, marker_obj=marker_obj,
         page_reverse=page_reverse)
示例#9
0
    def get_gateway_devices(self, context, filters=None, fields=None,
                            sorts=None, limit=None, marker=None,
                            page_reverse=False):
        marker_obj = db_utils.get_marker_obj(self, context, 'gateway_device',
                                             limit, marker)

        return model_query.get_collection(context,
                                          GatewayDevice,
                                          self._make_gateway_device_dict,
                                          filters=filters, fields=fields,
                                          sorts=sorts,
                                          limit=limit, marker_obj=marker_obj,
                                          page_reverse=page_reverse)
示例#10
0
    def get_switchport_bindings(self,
                                context,
                                filters=None,
                                fields=None,
                                sorts=None,
                                limit=None,
                                marker=None,
                                page_reverse=False):
        query = context.session.query(
            nuage_models.NuageSwitchportBinding,
            nuage_models.NuageSwitchportMapping.switch_id,
            nuage_models.NuageSwitchportMapping.port_id)
        query = query.outerjoin(
            nuage_models.NuageSwitchportMapping,
            nuage_models.NuageSwitchportMapping.port_uuid ==
            nuage_models.NuageSwitchportBinding.switchport_uuid)
        query = query.distinct()

        if filters:
            for key, value in six.iteritems(filters):
                column = getattr(nuage_models.NuageSwitchportBinding, key,
                                 None)
                if column is None:
                    column = getattr(nuage_models.NuageSwitchportMapping, key,
                                     None)
                if column is not None:
                    if not value:
                        query = query.filter(sql.false())
                    else:
                        query = query.filter(column.in_(value))

        if sorts:
            marker_obj = lib_db_utils.get_marker_obj(self, context,
                                                     'switchport_bindings',
                                                     limit, marker)
            sort_dirs = ['asc' if s[1] else 'desc' for s in sorts]
            query = sa_utils.paginate_query(
                query,
                nuage_models.NuageSwitchportBinding,
                limit,
                marker=marker_obj,
                sort_keys=sorts,
                sort_dirs=sort_dirs)
        items = [
            self._make_switchport_binding_dict_from_tuple(c, fields)
            for c in query
        ]
        if limit and page_reverse:
            items.reverse()
        return items
示例#11
0
 def get_gateway_device_remote_mac_entries(self, context, gateway_device_id,
                                           filters=None, fields=None,
                                           sorts=None, limit=None,
                                           marker=None, page_reverse=False):
     marker_obj = db_utils.get_marker_obj(self, context, 'remote_mac_entry',
                                          limit, marker)
     filters['device_id'] = [gateway_device_id]
     return model_query.get_collection(context,
                                       GatewayRemoteMacTable,
                                       self._make_remote_mac_dict,
                                       filters=filters, fields=fields,
                                       sorts=sorts,
                                       limit=limit, marker_obj=marker_obj,
                                       page_reverse=page_reverse)
示例#12
0
 def _query_gateway_devices(self,
                            context,
                            filters=None,
                            sorts=None,
                            limit=None,
                            marker=None,
                            page_reverse=None):
     marker_obj = db_utils.get_marker_obj(self, context, 'gateway_device',
                                          limit, marker)
     return self._get_collection_query(context,
                                       nsx_models.NetworkGatewayDevice,
                                       filters=filters,
                                       sorts=sorts,
                                       limit=limit,
                                       marker_obj=marker_obj,
                                       page_reverse=page_reverse)
示例#13
0
 def get_flow_classifiers(self,
                          context,
                          filters=None,
                          fields=None,
                          sorts=None,
                          limit=None,
                          marker=None,
                          page_reverse=False):
     marker_obj = db_utils.get_marker_obj(self, context, 'flow_classifier',
                                          limit, marker)
     return model_query.get_collection(context,
                                       FlowClassifier,
                                       self._make_flow_classifier_dict,
                                       filters=filters,
                                       fields=fields,
                                       sorts=sorts,
                                       limit=limit,
                                       marker_obj=marker_obj,
                                       page_reverse=page_reverse)
示例#14
0
 def get_network_gateways(self,
                          context,
                          filters=None,
                          fields=None,
                          sorts=None,
                          limit=None,
                          marker=None,
                          page_reverse=False):
     marker_obj = db_utils.get_marker_obj(self, context, 'network_gateway',
                                          limit, marker)
     return model_query.get_collection(context,
                                       nsx_models.NetworkGateway,
                                       self._make_network_gateway_dict,
                                       filters=filters,
                                       fields=fields,
                                       sorts=sorts,
                                       limit=limit,
                                       marker_obj=marker_obj,
                                       page_reverse=page_reverse)
示例#15
0
 def get_qos_queues(self,
                    context,
                    filters=None,
                    fields=None,
                    sorts=None,
                    limit=None,
                    marker=None,
                    page_reverse=False):
     marker_obj = db_utils.get_marker_obj(self, context, 'qos_queue', limit,
                                          marker)
     return model_query.get_collection(context,
                                       nsx_models.QoSQueue,
                                       self._make_qos_queue_dict,
                                       filters=filters,
                                       fields=fields,
                                       sorts=sorts,
                                       limit=limit,
                                       marker_obj=marker_obj,
                                       page_reverse=page_reverse)
示例#16
0
 def get_routers(self,
                 context,
                 filters=None,
                 fields=None,
                 sorts=None,
                 limit=None,
                 marker=None,
                 page_reverse=False):
     marker_obj = db_utils.get_marker_obj(self, context, 'router', limit,
                                          marker)
     routers_db = model_query.get_collection(context,
                                             l3_db.Router,
                                             dict_func=None,
                                             filters=filters,
                                             fields=fields,
                                             sorts=sorts,
                                             limit=limit,
                                             marker_obj=marker_obj,
                                             page_reverse=page_reverse)
     return self._make_routers_dict(routers_db, fields)
 def get_project_net_partition_mappings(self,
                                        context,
                                        filters=None,
                                        fields=None,
                                        sorts=None,
                                        limit=None,
                                        marker=None,
                                        page_reverse=False):
     marker_obj = ndb_utils.get_marker_obj(self, context,
                                           'project_net_partition_mapping',
                                           limit, marker)
     return model_query.get_collection(
         context,
         nuage_models.NetPartitionProject,
         functools.partial(self._make_project_net_partition_mapping,
                           context),
         filters=filters,
         fields=fields,
         sorts=sorts,
         limit=limit,
         marker_obj=marker_obj,
         page_reverse=page_reverse)
示例#18
0
 def test_get_marker_obj_no_limit_and_marker(self):
     self.assertIsNone(
         utils.get_marker_obj(mock.Mock(), 'ctx', 'myr', 0, mock.ANY))
     self.assertIsNone(
         utils.get_marker_obj(mock.Mock(), 'ctx', 'myr', 10, None))
示例#19
0
 def test_get_marker_obj(self):
     plugin = mock.Mock()
     plugin._get_myr.return_value = 'obj'
     obj = utils.get_marker_obj(plugin, 'ctx', 'myr', 10, mock.ANY)
     self.assertEqual('obj', obj)
     plugin._get_myr.assert_called_once_with('ctx', mock.ANY)
示例#20
0
 def _get_marker_obj(self, context, resource, limit, marker):
     return db_utils.get_marker_obj(self, context, resource, limit, marker)
示例#21
0
 def _get_marker_obj(self, context, resource, limit, marker):
     return db_utils.get_marker_obj(self, context, resource, limit, marker)