def _test_create_network_revision(self):
     with self.network() as n:
         network = n['network']
         self.assertGreater(network['revision_number'], 0)
         lswitch = neutron_l2.logical_switch_from_neutron_network(network)
         self.nb_api.create.assert_called_with(lswitch)
         return network, lswitch
Beispiel #2
0
    def update_network_postcommit(self, context):
        network = context.current

        lswitch = neutron_l2.logical_switch_from_neutron_network(network)
        self.nb_api.update(lswitch)

        LOG.info("DFMechDriver: update network %s", network['id'])
        return network
Beispiel #3
0
    def test_create_update_delete_subnet_network_revision(self):
        network, lswitch = self._test_create_network_revision()
        self.nb_api.update.assert_not_called()
        self.nb_api.get.side_effect = nb_api_get_func(lswitch)
        with self.subnet(network={'network': network}, set_context=True) as s:
            subnet_id = s['subnet']['id']
        new_network = self.driver.get_network(self.context, network['id'])
        self.assertGreater(new_network['revision_number'],
                           network['revision_number'])
        lswitch.version = new_network['revision_number']
        # Once for lswitch, once for DHCP lport
        self.assertEqual(2, self.nb_api.update.call_count)
        self.nb_api.update.assert_called_with(lswitch)
        self.nb_api.update.reset_mock()

        data = {'subnet': {'name': 'updated'}}
        req = self.new_update_request('subnets', data, subnet_id)
        req.get_response(self.api)
        network = new_network
        new_network = self.driver.get_network(self.context, network['id'])
        new_lswitch = neutron_l2.logical_switch_from_neutron_network(
            new_network)
        updated_subnet = self.driver.get_subnet(self.context,
                                                subnet_id)
        new_lswitch.subnets = [neutron_l2.subnet_from_neutron_subnet(
            updated_subnet)]
        self.assertGreater(new_network['revision_number'],
                           network['revision_number'])
        self.nb_api.update.called_once_with(new_lswitch)
        self.nb_api.update.reset_mock()
        self.nb_api.get.side_effect = nb_api_get_func(lswitch)
        self.assertEqual(new_network['revision_number'],
                         lswitch.version)

        network = new_network
        req = self.new_delete_request('subnets', subnet_id)
        req.get_response(self.api)
        new_network = self.driver.get_network(self.context, network['id'])
        new_lswitch = neutron_l2.logical_switch_from_neutron_network(
            new_network)
        self.assertGreater(new_network['revision_number'],
                           network['revision_number'])
        self.nb_api.update.called_once_with(new_lswitch)
        self.assertEqual(new_network['revision_number'],
                         new_lswitch.version)