~ubuntu-branches/ubuntu/raring/nova/raring-proposed

« back to all changes in this revision

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

  • Committer: Package Import Robot
  • Author(s): Adam Gandelman
  • Date: 2013-08-09 10:12:27 UTC
  • mfrom: (1.1.74)
  • Revision ID: package-import@ubuntu.com-20130809101227-4n60fzcgra8dzk3d
Tags: 1:2013.1.3-0ubuntu1
* Resynchronize with stable/grizzly (89c7ee4) (LP: #1210447):
  - [8e6edd2] Bump stable/grizzly next version to 2013.1.3
  - [61fc529] attach quantum security group to an existing vm failed
    LP: 1189059
  - [60774bd] nova-compute fails to start if quantum is down LP: 1186357
  - [8e6d4b6] asymmetric routes in nova network with external gateway and
    routing_source_ip LP: 1182143
  - [8849413] Failed VM's not set to error state on exception LP: 1182056
  - [ef10eee] Double healing of info_cache with cells LP: 1180304
  - [7422d83] Can't log into  VM after powervm is resized LP: 1169848
  - [49ab0e8] stack trace when instance_actions extension can not find
    instance in GET LP: 1182867
  - [e71247c] nova service-list returns illegal result with non db service
    heartbeat LP: 1168861
  - [3f60606] Volume IO usage gets reset to 0 after a reboot / crash
    LP: 1169097
  - [19c443b] unused method  list_interfaces in vmware driver can be removed
    LP: 1187251
  - [a8dab9f] No cleanup done when file transfer fails with powervm driver
    LP: 1173017
  - [fc98015] nova consoleauth depends on Conductor Service LP: 1186123
  - [1066418] VMware drivers are no longer passing quantum port-id to
    vCenter LP: 1183452
  - [b92075c] nova net-list fails on empty list with Quantum backend
    LP: 1189976
  - [3ba31f2] Create VM with no networks with Quantum Gives SecurityGroups
    Exception LP: 1191044
  - [89150b2] Periodic ValueErrors when using qpid LP: 1185465
  - [0e0d615] Libvirt pre-Grizzly instances cannot be block migrated
    LP: 1185588
  - [27960ef] ZMQ ipc socket file is created using un-sanitized network
    input LP: 1122763
  - [265b868] cannot block migrate old style instances libvirt complains
    LP: 1175286
  - [008a68a] code logical error exists in vmwareapi vif.py  LP: 1177635
  - [378c045] Instance IP addresses are re-used even when previous instance
    could not be powered off LP: 1180178
  - [48ddffe] Reboot of compute node breaks VMs with volumes LP: 1188326
  - [f427f01] Missing dashes from console-log LP: 1194032
  - [78ebf1a] network-create returns an internal error when network
    conflicts LP: 1158075
  - [767c850] Instance nics are reorder after reboot LP: 1187092
  - [0b45996] instance directory naming update to use uuid  LP: 1186944
  - [06cfad5] Disassociate failed dhcp fixed ip in deallocate_for_instance()
    method LP: 1180766
  - [cbcdfc5] Allow confirm_resize action on an instance in 'deleting'
    status LP: 1189391
  - [2563c44] aggregate_get_by_host returns aggregates from other hosts
    LP: 1201277
  - [109f3a9] nova libvirt driver requires iscsi initiator name regardless
    of using it in volume drivers LP: 1007084
  - [7f1c336] Host is always set to None in get_instance_nw_info(...)
    LP: 1194178
  - [1cf30a3] nova boot with colume should fail if the volume is already
    attached to another instance LP: 1166770
  - [9cb9361] Aggregate metadata filtering by key returns unrelated metadata
    LP: 1201283
  - [a61872b] Need clean up  ftp transfer faiure  in powervm driver
    LP: 1188884
  - [91bcd15] Race can cause soft deleted instance to be erased by mistake
    LP: 1186243
  - [c57fded] Nova fails to create a security group rule if ::0/0 is used as
    cidr LP: 1199943
  - [c698dd3] VMwareESXDriver and VMwareVCDriver report incorrect stat
    LP: 1180779
  - [e572faf] novnc fails when amqp_rpc_single_reply_queue=True LP: 1193031
  - [34ddd27] eventlet.monkey_patch() for spice and vnc proxy
  - [864837f] hypervisor_hostname not updated on evacuate LP: 1198284
  - [756a772] libvirt migrate/resize on shared storage can cause data loss
    LP: 1177247
  - [889b215] nova live-migration of volume-backed VM fails because of image
    is None LP: 1199811
  - [60712a4] VNC console does not work with VCDriver LP: 1178369
  - [e0aa0f5] metadata service throws error 500 when compute_driver is not
    set LP: 1184641
  - [340d337] Instance IP addresses are re-used even when previous instance
    could not be powered off LP: 1180178
  - [8247dc8] Resource limit circumvention in Nova private flavors
    (CVE-2013-2256) LP: 1194093
  - [bd7e467] Denial of Service in Nova network source security groups
    (CVE-2013-4185) LP: 1184041
  - [c3fddb7] Resize a VM when a volume is attached fails LP: 1190364
  - [01edbaa] Hyper-V versions before 2012 are not properly recognized
    LP: 1203059
  - [b18818a] driver libvirt doesn't honor vif quota LP: 1185030
  - [798984d] config drive not visible to windows LP: 1155842
  - [d18ceb1] nova live-migration failed due to exception.MigrationError
    LP: 1171526
  - [1934dbc] vmware Hyper for nova vnc console url parameters error
    LP: 1172177
  - [89c7ee4] [OSSA 2013-023] Potential unsafe XML usage (CVE-2013-4179,
    CVE-2013-4202) LP: 1190229
* debian/rules: Clean new setuptools-git cruft.
* debian/control: Update Vcs fields.

Show diffs side-by-side

added added

removed removed

Lines of Context:
23
23
from quantumclient.v2_0 import client
24
24
 
25
25
from nova.compute import instance_types
 
26
from nova.conductor import api as conductor_api
26
27
from nova import context
27
28
from nova import exception
28
29
from nova.network import model
29
30
from nova.network import quantumv2
30
31
from nova.network.quantumv2 import api as quantumapi
 
32
from nova.openstack.common import jsonutils
31
33
from nova import test
32
34
from nova import utils
33
35
 
269
271
                                          self.instance['uuid'],
270
272
                                          mox.IgnoreArg())
271
273
        port_data = number == 1 and self.port_data1 or self.port_data2
 
274
        self.mox.StubOutWithMock(conductor_api.API,
 
275
                                 'instance_get_by_uuid')
 
276
        net_info_cache = []
 
277
        for port in port_data:
 
278
            net_info_cache.append({"network": {"id": port['network_id']}})
 
279
        info_cache = {'info_cache': {'network_info':
 
280
                                     jsonutils.dumps(net_info_cache)}}
 
281
        api.conductor_api.instance_get_by_uuid(
 
282
            mox.IgnoreArg(), mox.IgnoreArg()).AndReturn(info_cache)
272
283
        self.moxed_client.list_ports(
273
284
            tenant_id=self.instance['project_id'],
274
285
            device_id=self.instance['uuid']).AndReturn(
368
379
        quantumv2.get_client(mox.IgnoreArg(),
369
380
                             admin=True).MultipleTimes().AndReturn(
370
381
            self.moxed_client)
 
382
        self.mox.StubOutWithMock(conductor_api.API,
 
383
                                 'instance_get_by_uuid')
 
384
        net_info_cache = []
 
385
        for port in self.port_data3:
 
386
            net_info_cache.append({"network": {"id": port['network_id']}})
 
387
        info_cache = {'info_cache': {'network_info':
 
388
                                     jsonutils.dumps(net_info_cache)}}
 
389
 
 
390
        api.conductor_api.instance_get_by_uuid(
 
391
            mox.IgnoreArg(), mox.IgnoreArg()).AndReturn(info_cache)
371
392
        self.mox.ReplayAll()
372
393
 
373
394
        nw_inf = api.get_instance_nw_info(self.context,
598
619
        self._allocate_for_instance(net_idx=1,
599
620
                                    requested_networks=requested_networks)
600
621
 
 
622
    def test_allocate_for_instance_no_networks(self):
 
623
        """verify the exception thrown when there are no networks defined."""
 
624
        api = quantumapi.API()
 
625
        self.moxed_client.list_networks(
 
626
            tenant_id=self.instance['project_id'],
 
627
            shared=False).AndReturn(
 
628
                {'networks': []})
 
629
        self.moxed_client.list_networks(shared=True).AndReturn(
 
630
            {'networks': []})
 
631
        self.mox.ReplayAll()
 
632
        nwinfo = api.allocate_for_instance(self.context, self.instance)
 
633
        self.assertEqual(len(nwinfo), 0)
 
634
 
601
635
    def test_allocate_for_instance_ex1(self):
602
636
        """verify we will delete created ports
603
637
        if we fail to allocate all net resources.
717
751
    def _test_deallocate_port_for_instance(self, number):
718
752
        port_data = number == 1 and self.port_data1 or self.port_data2
719
753
        self.moxed_client.delete_port(port_data[0]['id'])
 
754
        self.mox.StubOutWithMock(conductor_api.API,
 
755
                                 'instance_get_by_uuid')
 
756
        net_info_cache = []
 
757
        for port in port_data:
 
758
            net_info_cache.append({"network": {"id": port['network_id']}})
 
759
        info_cache = {'info_cache': {'network_info':
 
760
                                     jsonutils.dumps(net_info_cache)}}
720
761
 
 
762
        api = quantumapi.API()
 
763
        api.conductor_api.instance_get_by_uuid(
 
764
            mox.IgnoreArg(), mox.IgnoreArg()).AndReturn(info_cache)
721
765
        nets = [port_data[0]['network_id']]
722
766
        quantumv2.get_client(mox.IgnoreArg(), admin=True).AndReturn(
723
767
            self.moxed_client)
745
789
 
746
790
        self.mox.ReplayAll()
747
791
 
748
 
        api = quantumapi.API()
749
792
        nwinfo = api.deallocate_port_for_instance(self.context, self.instance,
750
793
                                                  port_data[0]['id'])
751
794
        self.assertEqual(len(nwinfo), len(port_data[1:]))
1237
1280
            self.moxed_client, '1.1.1.1', 1)
1238
1281
        self.assertEqual(floatingips, [])
1239
1282
 
 
1283
    def test_get_all_empty_list_networks(self):
 
1284
        api = quantumapi.API()
 
1285
        self.moxed_client.list_networks().AndReturn({'networks': []})
 
1286
        self.mox.ReplayAll()
 
1287
        networks = api.get_all(self.context)
 
1288
        self.assertEqual(networks, [])
 
1289
 
1240
1290
 
1241
1291
class TestQuantumv2ModuleMethods(test.TestCase):
1242
1292
    def test_ensure_requested_network_ordering_no_preference_ids(self):