~ubuntu-cloud-archive/ubuntu/precise/nova/trunk

« back to all changes in this revision

Viewing changes to nova/tests/network/test_manager.py

  • Committer: Package Import Robot
  • Author(s): Chuck Short
  • Date: 2012-04-04 16:55:52 UTC
  • mfrom: (1.1.53)
  • Revision ID: package-import@ubuntu.com-20120404165552-qqbhkyo6b2hjw6ut
Tags: 2012.1~rc4-0ubuntu1
* New upstream release.
* debian/patches/nova-console-monitor.patch: Disabled.
* debian/nova.conf: Removed console-monitor option.

Show diffs side-by-side

added added

removed removed

Lines of Context:
29
29
from nova import rpc
30
30
from nova import test
31
31
from nova import utils
 
32
from nova.network import linux_net
32
33
from nova.network import manager as network_manager
33
34
from nova.tests import fake_network
34
35
 
873
874
        db.floating_ip_destroy(context1.elevated(), float_addr)
874
875
        db.fixed_ip_disassociate(context1.elevated(), fix_addr)
875
876
 
 
877
    def test_deallocate_fixed(self):
 
878
        """Verify that release is called properly.
 
879
 
 
880
        Ensures https://bugs.launchpad.net/nova/+bug/973442 doesn't return"""
 
881
 
 
882
        def network_get(_context, network_id):
 
883
            return networks[network_id]
 
884
 
 
885
        self.stubs.Set(db, 'network_get', network_get)
 
886
 
 
887
        def vif_get(_context, _vif_id):
 
888
            return {'address': 'fake_mac'}
 
889
 
 
890
        self.stubs.Set(db, 'virtual_interface_get', vif_get)
 
891
        context1 = context.RequestContext('user', 'project1')
 
892
 
 
893
        instance = db.instance_create(context1,
 
894
                {'project_id': 'project1'})
 
895
 
 
896
        elevated = context1.elevated()
 
897
        fix_addr = db.fixed_ip_associate_pool(elevated, 1, instance['id'])
 
898
        values = {'allocated': True,
 
899
                  'virtual_interface_id': 3}
 
900
        db.fixed_ip_update(elevated, fix_addr, values)
 
901
        fixed = db.fixed_ip_get_by_address(elevated, fix_addr)
 
902
        network = db.network_get(elevated, fixed['network_id'])
 
903
 
 
904
        self.flags(force_dhcp_release=True)
 
905
        self.mox.StubOutWithMock(linux_net, 'release_dhcp')
 
906
        linux_net.release_dhcp(network['bridge'], fixed['address'], 'fake_mac')
 
907
        self.mox.ReplayAll()
 
908
        self.network.deallocate_fixed_ip(context1, fix_addr, 'fake')
 
909
        fixed = db.fixed_ip_get_by_address(elevated, fix_addr)
 
910
        self.assertFalse(fixed['allocated'])
 
911
 
876
912
    def test_deallocate_fixed_no_vif(self):
877
913
        """Verify that deallocate doesn't raise when no vif is returned.
878
914
 
892
928
        instance = db.instance_create(context1,
893
929
                {'project_id': 'project1'})
894
930
 
895
 
        fix_addr = db.fixed_ip_associate_pool(context1.elevated(),
896
 
                1, instance['id'])
 
931
        elevated = context1.elevated()
 
932
        fix_addr = db.fixed_ip_associate_pool(elevated, 1, instance['id'])
 
933
        values = {'allocated': True,
 
934
                 'virtual_interface_id': 3}
 
935
        db.fixed_ip_update(elevated, fix_addr, values)
897
936
 
898
937
        self.flags(force_dhcp_release=True)
899
938
        self.network.deallocate_fixed_ip(context1, fix_addr, 'fake')