Merge "Add audit-template name checking in CLI"

This commit is contained in:
Jenkins
2016-04-19 09:00:37 +00:00
committed by Gerrit Code Review
2 changed files with 18 additions and 0 deletions

View File

@@ -19,6 +19,7 @@ from __future__ import print_function
import argparse import argparse
import json import json
import uuid
from oslo_utils import importutils from oslo_utils import importutils
@@ -178,3 +179,16 @@ def common_filters(limit=None, sort_key=None, sort_dir=None):
if sort_dir is not None: if sort_dir is not None:
filters.append('sort_dir=%s' % sort_dir) filters.append('sort_dir=%s' % sort_dir)
return filters return filters
def is_uuid_like(val):
"""Returns validation of a value as a UUID.
For our purposes, a UUID is a canonical form string:
aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa
"""
try:
return str(uuid.UUID(val)) == val
except (TypeError, ValueError, AttributeError):
return False

View File

@@ -115,6 +115,10 @@ def do_audit_create(cc, args):
field_list = ['audit_template_uuid', 'type', 'deadline'] field_list = ['audit_template_uuid', 'type', 'deadline']
fields = dict((k, v) for (k, v) in vars(args).items() fields = dict((k, v) for (k, v) in vars(args).items()
if k in field_list and not (v is None)) if k in field_list and not (v is None))
if fields.get('audit_template_uuid'):
if not utils.is_uuid_like(fields['audit_template_uuid']):
fields['audit_template_uuid'] = cc.audit_template.get(
fields['audit_template'])
audit = cc.audit.create(**fields) audit = cc.audit.create(**fields)
field_list.append('uuid') field_list.append('uuid')
data = dict([(f, getattr(audit, f, '')) for f in field_list]) data = dict([(f, getattr(audit, f, '')) for f in field_list])