~ubuntu-branches/ubuntu/saucy/nova/saucy-proposed

« back to all changes in this revision

Viewing changes to nova/tests/test_compute_utils.py

  • Committer: Package Import Robot
  • Author(s): Chuck Short
  • Date: 2012-05-24 13:12:53 UTC
  • mfrom: (1.1.55)
  • Revision ID: package-import@ubuntu.com-20120524131253-ommql08fg1en06ut
Tags: 2012.2~f1-0ubuntu1
* New upstream release.
* Prepare for quantal:
  - Dropped debian/patches/upstream/0006-Use-project_id-in-ec2.cloud._format_image.patch
  - Dropped debian/patches/upstream/0005-Populate-image-properties-with-project_id-again.patch
  - Dropped debian/patches/upstream/0004-Fixed-bug-962840-added-a-test-case.patch
  - Dropped debian/patches/upstream/0003-Allow-unprivileged-RADOS-users-to-access-rbd-volumes.patch
  - Dropped debian/patches/upstream/0002-Stop-libvirt-test-from-deleting-instances-dir.patch
  - Dropped debian/patches/upstream/0001-fix-bug-where-nova-ignores-glance-host-in-imageref.patch 
  - Dropped debian/patches/0001-fix-useexisting-deprecation-warnings.patch
* debian/control: Add python-keystone as a dependency. (LP: #907197)
* debian/patches/kombu_tests_timeout.patch: Refreshed.
* debian/nova.conf, debian/nova-common.postinst: Convert to new ini
  file configuration
* debian/patches/nova-manage_flagfile_location.patch: Refreshed

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
 
18
18
"""Tests For miscellaneous util methods used with compute."""
19
19
 
 
20
from nova.compute import instance_types
 
21
from nova.compute import utils as compute_utils
 
22
from nova import context
20
23
from nova import db
21
24
from nova import flags
22
 
from nova import context
23
 
from nova import test
 
25
import nova.image.fake
24
26
from nova import log as logging
25
 
from nova import utils
26
 
import nova.image.fake
27
 
from nova.compute import utils as compute_utils
28
 
from nova.compute import instance_types
29
27
from nova.notifier import test_notifier
 
28
from nova.openstack.common import importutils
 
29
from nova import test
30
30
from nova.tests import fake_network
 
31
from nova import utils
31
32
 
32
33
 
33
34
LOG = logging.getLogger(__name__)
51
52
                   stub_network=True,
52
53
                   notification_driver='nova.notifier.test_notifier',
53
54
                   network_manager='nova.network.manager.FlatManager')
54
 
        self.compute = utils.import_object(FLAGS.compute_manager)
 
55
        self.compute = importutils.import_object(FLAGS.compute_manager)
55
56
        self.user_id = 'fake'
56
57
        self.project_id = 'fake'
57
58
        self.context = context.RequestContext(self.user_id, self.project_id)
79
80
        return db.instance_create(self.context, inst)['id']
80
81
 
81
82
    def test_notify_usage_exists(self):
82
 
        """Ensure 'exists' notification generates apropriate usage data."""
 
83
        """Ensure 'exists' notification generates appropriate usage data."""
83
84
        instance_id = self._create_instance()
84
85
        instance = db.instance_get(self.context, instance_id)
85
 
        compute_utils.notify_usage_exists(instance)
 
86
        # Set some system metadata
 
87
        sys_metadata = {'image_md_key1': 'val1',
 
88
                        'image_md_key2': 'val2',
 
89
                        'other_data': 'meow'}
 
90
        db.instance_system_metadata_update(self.context, instance['uuid'],
 
91
                sys_metadata, False)
 
92
        compute_utils.notify_usage_exists(self.context, instance)
86
93
        self.assertEquals(len(test_notifier.NOTIFICATIONS), 1)
87
94
        msg = test_notifier.NOTIFICATIONS[0]
88
95
        self.assertEquals(msg['priority'], 'INFO')
97
104
        for attr in ('display_name', 'created_at', 'launched_at',
98
105
                     'state', 'state_description',
99
106
                     'bandwidth', 'audit_period_beginning',
100
 
                     'audit_period_ending'):
 
107
                     'audit_period_ending', 'image_meta'):
101
108
            self.assertTrue(attr in payload,
102
109
                            msg="Key %s not in payload" % attr)
 
110
        self.assertEquals(payload['image_meta'],
 
111
                {'md_key1': 'val1', 'md_key2': 'val2'})
103
112
        image_ref_url = "%s/images/1" % utils.generate_glance_url()
104
113
        self.assertEquals(payload['image_ref_url'], image_ref_url)
105
114
        self.compute.terminate_instance(self.context, instance['uuid'])