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

« back to all changes in this revision

Viewing changes to nova/network/manager.py

  • Committer: Package Import Robot
  • Author(s): Adam Gandelman
  • Date: 2013-10-17 13:54:08 UTC
  • mfrom: (1.1.75)
  • Revision ID: package-import@ubuntu.com-20131017135408-n6jbddbictu9uazl
Tags: 1:2013.1.4-0ubuntu1
* Resynchronize with stable/grizzly (0409a09) (LP: #1241202):
  - [2ab1b6a] sql error when launching an instance from a volume LP: 1171190
  - [b5fa9f0] nova should check the is_public of flavor when creating an
    instance LP: 1212179
  - [f651317] nova boot --num-instances=50 times out  LP: 1199433
  - [ee9d1f6] Not prompt relevant message when stop a stoped vm LP: 1181934
  - [fc4d1f9] vmware driver should work without requiring patched wsdl
    LP: 1171215
  - [65b122f] launch index is not right if boot some VMs in one request
    LP: 1212648
  - [90fa239] VMware: Unable to spawn a instance when using Quantum and
    VMware drivers LP: 1202042
  - [474b8a4] Spawning multiple instances can cause race conditions with nbd
    LP: 1207422
  - [c704897]  Some sequence of characters in console-log can DoS nova-
    compute LP: 1215091
  - [43f2a4c] libvirt driver: Failed to attach new interface to VM
    LP: 1212565
  - [067fb93] Multi datastore support for provisioning of instances on ESX
    LP: 1104994
  - [fc9af8f] Compute nodes changing hostnames should log an error
    LP: 1224982
  - [cc1b72a] Security groups with source groups no longer work LP: 1216720
  - [faabb91] instance consoleauth  expired tokens need to be removed from
    the cache LP: 1209134
  - [5c55985] VHD snapshot from Hyper-V driver is bigger than original
    instance LP: 1177927
  - [d9ce5a4] normal user can show all the networks LP: 1186867
  - [6697489] hard reboot fails when using force_raw_images=False and
    use_cow_images=False and  LP: 1200249
  - [a59957c] Snapshot failure with VMwareVCDriver LP: 1184807
  - [542191d] VMWAREAPI: Problem with starting Windows instances on ESXi 5.1
    LP: 1187853
  - [62f2218] Exceptions during soft reboot should result in a hard reboot
    LP: 1202974
  - [f306875] Incorrect host stats reported by VMWare VCDriver LP: 1190515
  - [8e6b79f] Windows instances need timezone to be localtime LP: 1231254
  - [570e8c7] boto version breaks gating LP: 1237944
  - [6193176] hard reboot fails with preallocate_images=performance
    LP: 1200113
  - [a48f9df] mount_options: mount: /boot: No such file or directory
    LP: 1210371
  - [516ec3e] one port_id can add to two instance LP: 1204850
  - [f89e624] VMware: no VM connectivity when opaque network does not match
    bridge id LP: 1225002
  - [ba7ad53] Add boto special casing for param changes in 2.13
  - [7b2b673] Cannot live block migrate an instance without shared storage
    LP: 1193359
  - [0409a09] boto version checking in test cases is not backwards compatible
    LP: 1239220

Show diffs side-by-side

added added

removed removed

Lines of Context:
373
373
        # thus enabling `read_deleted`
374
374
        admin_context = context.get_admin_context(read_deleted='yes')
375
375
        if uuidutils.is_uuid_like(instance_id):
376
 
            instance_ref = self.db.instance_get_by_uuid(admin_context,
377
 
                                                        instance_id)
 
376
            instance = self.db.instance_get_by_uuid(admin_context,
 
377
                                                    instance_id)
378
378
        else:
379
 
            instance_ref = self.db.instance_get(admin_context, instance_id)
 
379
            instance = self.db.instance_get(admin_context,
 
380
                                            instance_id)
380
381
 
381
 
        groups = instance_ref['security_groups']
 
382
        try:
 
383
            # NOTE(vish): We need to make sure the instance info cache has been
 
384
            #             updated with new ip info before we trigger the
 
385
            #             security group refresh. This is somewhat ineffecient
 
386
            #             but avoids doing some dangerous refactoring for a
 
387
            #             bug fix.
 
388
            nw_info = self.get_instance_nw_info(admin_context,
 
389
                                                instance['uuid'],
 
390
                                                None, None)
 
391
            cache = {'network_info': nw_info.json()}
 
392
            self.db.instance_info_cache_update(admin_context,
 
393
                                               instance['uuid'],
 
394
                                               cache)
 
395
        except exception.InstanceInfoCacheNotFound:
 
396
            pass
 
397
        groups = instance['security_groups']
382
398
        group_ids = [group['id'] for group in groups]
383
399
 
384
400
        self.security_group_api.trigger_members_refresh(admin_context,
846
862
                else:
847
863
                    address = self.db.fixed_ip_associate_pool(
848
864
                        context.elevated(), network['id'], instance_id)
849
 
                self._do_trigger_security_group_members_refresh_for_instance(
850
 
                    instance_id)
851
 
                self._do_trigger_security_group_handler(
852
 
                    'instance_add_security_group', instance_id)
853
865
                get_vif = self.db.virtual_interface_get_by_instance_and_network
854
866
                vif = get_vif(context, instance_id, network['id'])
855
867
                values = {'allocated': True,
856
868
                          'virtual_interface_id': vif['id']}
857
869
                self.db.fixed_ip_update(context, address, values)
 
870
                self._do_trigger_security_group_members_refresh_for_instance(
 
871
                    instance_id)
 
872
                self._do_trigger_security_group_handler(
 
873
                    'instance_add_security_group', instance_id)
858
874
 
859
875
            # NOTE(vish) This db query could be removed if we pass az and name
860
876
            #            (or the whole instance object).
1717
1733
                address = self.db.fixed_ip_associate_pool(context,
1718
1734
                                                          network['id'],
1719
1735
                                                          instance_id)
1720
 
            self._do_trigger_security_group_members_refresh_for_instance(
1721
 
                                                                   instance_id)
1722
1736
 
1723
1737
        vif = self.db.virtual_interface_get_by_instance_and_network(
1724
1738
            context, instance_id, network['id'])
1726
1740
                  'virtual_interface_id': vif['id']}
1727
1741
        self.db.fixed_ip_update(context, address, values)
1728
1742
 
 
1743
        if not kwargs.get('vpn', None):
 
1744
            self._do_trigger_security_group_members_refresh_for_instance(
 
1745
                                                                   instance_id)
 
1746
 
1729
1747
        # NOTE(vish) This db query could be removed if we pass az and name
1730
1748
        #            (or the whole instance object).
1731
1749
        instance = self.db.instance_get_by_uuid(context, instance_id)