~hudson-openstack/nova/trunk

« back to all changes in this revision

Viewing changes to nova/tests/test_quota.py

  • Committer: Tarmac
  • Author(s): Justin Santa Barbara
  • Date: 2011-02-23 18:11:35 UTC
  • mfrom: (697.1.5 justinsb-metadata3)
  • Revision ID: tarmac-20110223181135-513rjhuwiyaiqju0
Initial support for per-instance metadata, though the OpenStack API.  Key/value pairs can be specified at instance creation time and are returned in the details view.  Support limits based on quota system.

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
#    License for the specific language governing permissions and limitations
17
17
#    under the License.
18
18
 
 
19
from nova import compute
19
20
from nova import context
20
21
from nova import db
21
22
from nova import flags
87
88
        num_instances = quota.allowed_instances(self.context, 100,
88
89
            instance_types.INSTANCE_TYPES['m1.small'])
89
90
        self.assertEqual(num_instances, 10)
 
91
 
 
92
        # metadata_items
 
93
        too_many_items = FLAGS.quota_metadata_items + 1000
 
94
        num_metadata_items = quota.allowed_metadata_items(self.context,
 
95
                                                          too_many_items)
 
96
        self.assertEqual(num_metadata_items, FLAGS.quota_metadata_items)
 
97
        db.quota_update(self.context, self.project.id, {'metadata_items': 5})
 
98
        num_metadata_items = quota.allowed_metadata_items(self.context,
 
99
                                                          too_many_items)
 
100
        self.assertEqual(num_metadata_items, 5)
 
101
 
 
102
        # Cleanup
90
103
        db.quota_destroy(self.context, self.project.id)
91
104
 
92
105
    def test_too_many_instances(self):
151
164
        self.assertRaises(quota.QuotaError, self.cloud.allocate_address,
152
165
                          self.context)
153
166
        db.floating_ip_destroy(context.get_admin_context(), address)
 
167
 
 
168
    def test_too_many_metadata_items(self):
 
169
        metadata = {}
 
170
        for i in range(FLAGS.quota_metadata_items + 1):
 
171
            metadata['key%s' % i] = 'value%s' % i
 
172
        self.assertRaises(quota.QuotaError, compute.API().create,
 
173
                                            self.context,
 
174
                                            min_count=1,
 
175
                                            max_count=1,
 
176
                                            instance_type='m1.small',
 
177
                                            image_id='fake',
 
178
                                            metadata=metadata)