~openstack/group-based-policy/master

« back to all changes in this revision

Viewing changes to gbpservice/neutron/services/grouppolicy/drivers/resource_mapping.py

  • Committer: Gerrit Code Review
  • Author(s): Jenkins
  • Date: 2015-10-16 15:28:52 UTC
  • mfrom: (228.1.1)
  • Revision ID: git-v1:6e0aa890f83f67c4a6a8aa335cfdf5e015b1d1c1
Merge "[apic-mapping] handle subnet concurrent allocation"

Show diffs side-by-side

added added

removed removed

Lines of Context:
1388
1388
                                                 router_id, interface_info)
1389
1389
 
1390
1390
    def _use_implicit_subnet(self, context, is_proxy=False, prefix_len=None,
1391
 
                             add_to_ptg=True, subnet_specifics=None):
 
1391
                             subnet_specifics=None):
1392
1392
        subnet_specifics = subnet_specifics or {}
1393
1393
        l2p_id = context.current['l2_policy_id']
1394
1394
        l2p = context._plugin.get_l2_policy(context._plugin_context, l2p_id)
1398
1398
                context.current['proxy_type'] == proxy_ext.PROXY_TYPE_L2):
1399
1399
            # In case of L2 proxy
1400
1400
            return self._use_l2_proxy_implicit_subnets(
1401
 
                context, add_to_ptg, subnet_specifics, l2p, l3p)
 
1401
                context, subnet_specifics, l2p, l3p)
1402
1402
        else:
1403
1403
            # In case of non proxy PTG or L3 Proxy
1404
1404
            return self._use_normal_implicit_subnet(
1405
 
                context, is_proxy, prefix_len, add_to_ptg, subnet_specifics,
1406
 
                l2p, l3p)
 
1405
                context, is_proxy, prefix_len, subnet_specifics, l2p, l3p)
1407
1406
 
1408
 
    def _use_l2_proxy_implicit_subnets(self, context, add_to_ptg,
 
1407
    def _use_l2_proxy_implicit_subnets(self, context,
1409
1408
                                       subnet_specifics, l2p, l3p):
1410
1409
        LOG.debug("allocate subnets for L2 Proxy %s",
1411
1410
                  context.current['id'])
1423
1422
        for subnet_id in subnet_ids:
1424
1423
            self._mark_subnet_owned(
1425
1424
                context._plugin_context.session, subnet_id)
1426
 
            if add_to_ptg:
1427
 
                context.add_subnet(subnet_id)
 
1425
            context.add_subnet(subnet_id)
1428
1426
        return subnets
1429
1427
 
1430
1428
    def _use_normal_implicit_subnet(self, context, is_proxy, prefix_len,
1431
 
                                    add_to_ptg, subnet_specifics, l2p, l3p):
 
1429
                                    subnet_specifics, l2p, l3p):
1432
1430
        LOG.debug("allocate subnets for L3 Proxy or normal PTG %s",
1433
1431
                  context.current['id'])
1434
1432
 
1467
1465
                try:
1468
1466
                    self._mark_subnet_owned(context._plugin_context.session,
1469
1467
                                            subnet_id)
1470
 
                    if add_to_ptg:
1471
 
                        self._validate_and_add_subnet(context, subnet,
1472
 
                                                      l3p_id)
1473
 
                        LOG.debug("Using subnet %s for PTG %s", subnet,
1474
 
                                  context.current['id'])
 
1468
                    self._validate_and_add_subnet(context, subnet,
 
1469
                                                  l3p_id)
 
1470
                    LOG.debug("Using subnet %s for PTG %s", subnet,
 
1471
                              context.current['id'])
1475
1472
                    return [subnet]
1476
1473
                except CidrInUse:
1477
1474
                    # This exception is expected when a concurrent