~yolanda.robla/nova/precise-security

« back to all changes in this revision

Viewing changes to nova/quota.py

  • Committer: Package Import Robot
  • Author(s): Chuck Short
  • Date: 2012-06-05 09:50:59 UTC
  • mto: (79.1.1 precise-proposed)
  • mto: This revision was merged to the branch mainline in revision 81.
  • Revision ID: package-import@ubuntu.com-20120605095059-kb1utt7b1a5yff2a
Tags: upstream-2012.1+stable~20120612-3ee026e
ImportĀ upstreamĀ versionĀ 2012.1+stable~20120612-3ee026e

Show diffs side-by-side

added added

removed removed

Lines of Context:
54
54
    cfg.IntOpt('quota_max_injected_file_path_bytes',
55
55
               default=255,
56
56
               help='number of bytes allowed per injected file path'),
 
57
    cfg.IntOpt('quota_security_groups',
 
58
               default=10,
 
59
               help='number of security groups per project'),
 
60
    cfg.IntOpt('quota_security_group_rules',
 
61
               default=20,
 
62
               help='number of security rules per security group'),
57
63
    ]
58
64
 
59
65
FLAGS = flags.FLAGS
72
78
        'injected_files': FLAGS.quota_max_injected_files,
73
79
        'injected_file_content_bytes':
74
80
            FLAGS.quota_max_injected_file_content_bytes,
 
81
        'security_groups': FLAGS.quota_security_groups,
 
82
        'security_group_rules': FLAGS.quota_security_group_rules,
75
83
    }
76
84
    # -1 in the quota flags means unlimited
77
85
    for key in defaults.keys():
152
160
    return min(requested_floating_ips, allowed_floating_ips)
153
161
 
154
162
 
 
163
def allowed_security_groups(context, requested_security_groups):
 
164
    """Check quota and return min(requested, allowed) security groups."""
 
165
    project_id = context.project_id
 
166
    context = context.elevated()
 
167
    used_sec_groups = db.security_group_count_by_project(context, project_id)
 
168
    quota = get_project_quotas(context, project_id)
 
169
    allowed_sec_groups = _get_request_allotment(requested_security_groups,
 
170
                                                  used_sec_groups,
 
171
                                                  quota['security_groups'])
 
172
    return min(requested_security_groups, allowed_sec_groups)
 
173
 
 
174
 
 
175
def allowed_security_group_rules(context, security_group_id,
 
176
        requested_rules):
 
177
    """Check quota and return min(requested, allowed) sec group rules."""
 
178
    project_id = context.project_id
 
179
    context = context.elevated()
 
180
    used_rules = db.security_group_rule_count_by_group(context,
 
181
                                                            security_group_id)
 
182
    quota = get_project_quotas(context, project_id)
 
183
    allowed_rules = _get_request_allotment(requested_rules,
 
184
                                              used_rules,
 
185
                                              quota['security_group_rules'])
 
186
    return min(requested_rules, allowed_rules)
 
187
 
 
188
 
155
189
def _calculate_simple_quota(context, resource, requested):
156
190
    """Check quota for resource; return min(requested, allowed)."""
157
191
    quota = get_project_quotas(context, context.project_id)