81
81
{"method": "get_network_topic", "args": {'fake': 1}})
83
def _check_injected_file_quota(self, context, injected_files):
85
Enforce quota limits on injected files
87
Raises a QuotaError if any limit is exceeded
89
if injected_files is None:
91
limit = quota.allowed_injected_files(context)
92
if len(injected_files) > limit:
93
raise quota.QuotaError(code="OnsetFileLimitExceeded")
94
path_limit = quota.allowed_injected_file_path_bytes(context)
95
content_limit = quota.allowed_injected_file_content_bytes(context)
96
for path, content in injected_files:
97
if len(path) > path_limit:
98
raise quota.QuotaError(code="OnsetFilePathLimitExceeded")
99
if len(content) > content_limit:
100
raise quota.QuotaError(code="OnsetFileContentLimitExceeded")
83
102
def create(self, context, instance_type,
84
103
image_id, kernel_id=None, ramdisk_id=None,
85
104
min_count=1, max_count=1,
86
105
display_name='', display_description='',
87
106
key_name=None, key_data=None, security_group='default',
88
107
availability_zone=None, user_data=None, metadata=[],
108
injected_files=None):
90
109
"""Create the number of instances requested if quota and
91
110
other arguments check out ok."""
125
144
raise quota.QuotaError(msg, "MetadataLimitExceeded")
146
self._check_injected_file_quota(context, injected_files)
127
148
image = self.image_service.show(context, image_id)
225
246
"args": {"topic": FLAGS.compute_topic,
226
247
"instance_id": instance_id,
227
248
"availability_zone": availability_zone,
228
"onset_files": onset_files}})
249
"injected_files": injected_files}})
230
251
for group_id in security_groups:
231
252
self.trigger_security_group_members_refresh(elevated, group_id)