Merge "make generate_uuid return valid uuid"

This commit is contained in:
Jenkins 2015-12-01 20:10:41 +00:00 committed by Gerrit Code Review
commit b6a74b729c
4 changed files with 35 additions and 28 deletions

View File

@ -104,7 +104,7 @@ details):
"name": "public"
}
],
"id": "openstack:06747855d62547d4bfd707f75b8a1c54",
"id": "06747855d62547d4bfd707f75b8a1c54",
"name": "nova"
},
"observer": {
@ -112,7 +112,7 @@ details):
},
# tags use to query events on,
"tags": [
"correlation_id?value=openstack:56cdde6f-6b4e-48a4-94e6-defb40522fb2"
"correlation_id?value=56cdde6f-6b4e-48a4-94e6-defb40522fb2"
],
"eventType": "activity",
"initiator": {
@ -128,8 +128,8 @@ details):
"agent": "python-novaclient",
"address": "9.26.26.250"
},
"project_id": "openstack:e7e2bcc9c0df4f3eabcd412ae62503f6",
"id": "openstack:68a3f50705a54f799ce94380fc02ed8a"
"project_id": "e7e2bcc9c0df4f3eabcd412ae62503f6",
"id": "68a3f50705a54f799ce94380fc02ed8a"
},
# optional Reason for activity event,
"reason": {
@ -148,7 +148,7 @@ details):
],
"action": "authenticate/logon",
"outcome": "success",
"id": "openstack:0a196053-95de-48f8-9890-4527b25b5007",
"id": "0a196053-95de-48f8-9890-4527b25b5007",
# Event model is extensible so additional attributes may be added to describe model,
"requestPath": "/v2/e7e2bcc9c0df4f3eabcd412ae62503f6/os-certificates"
}
@ -188,7 +188,7 @@ Event serialisation:
"eventTime": "2014-02-27T19:29:30.855665+0000",
"target": {
"typeURI": "service/compute/cpu",
"id": "openstack:06747855d62547d4bfd707f75b8a1c54",
"id": "06747855d62547d4bfd707f75b8a1c54",
"name": "instance"
},
"observer": {
@ -198,13 +198,13 @@ Event serialisation:
"initiator": {
"typeURI": "service/oss/monitoring",
"name": "ceilometer-pollster",
"id": "openstack:68a3f50705a54f799ce94380fc02ed8a"
"id": "68a3f50705a54f799ce94380fc02ed8a"
},
"measurement": [
{
"result": "80",
"metric": {
"metricId": "openstack:<metric_id>",
"metricId": "<metric_id>",
"unit": "%",
"name": "CPU utilisation metric"
}
@ -212,7 +212,7 @@ Event serialisation:
],
"action": "monitor",
"outcome": "success",
"id": "openstack:0a196053-95de-48f8-9890-4527b25b5007"
"id": "0a196053-95de-48f8-9890-4527b25b5007"
}
.. note::

View File

@ -54,7 +54,7 @@ Serialisation
{
"typeURI": "http://schemas.dmtf.org/cloud/audit/1.0/event",
"id": "openstack:a80dc5ee-be83-48ad-ad5e-6577f2217637",
"id": "a80dc5ee-be83-48ad-ad5e-6577f2217637",
"eventType": "activity",
"action": "read",
"outcome": "success",
@ -64,10 +64,10 @@ Serialisation
},
"eventTime": "2014-01-17T23:23:38.109989+0000",
"initiator": {
"id": "openstack:95f12d248a234a969f456cd2c794f29a",
"id": "95f12d248a234a969f456cd2c794f29a",
"typeURI": "service/security/account/user",
"name": "admin",
"project_id": "openstack:e55b158759854ea6a7852aa76632c6c1",
"project_id": "e55b158759854ea6a7852aa76632c6c1",
"credential": {
"token": "MIIQBgYJKoZIhvcNAQcCoIIP9z xxxxxx KoZIhvcIP9z=",
"identity_status": "Confirmed"
@ -78,7 +78,7 @@ Serialisation
}
},
"target": {
"id": "openstack:0f126160203748a5b4923f2eb6e3b7db",
"id": "0f126160203748a5b4923f2eb6e3b7db",
"typeURI": "service/compute/servers",
"name": "nova",
"addresses": [
@ -110,6 +110,6 @@ Serialisation
],
"requestPath": "/v2/56600971-90f3-4370-807f-ab79339381a9/servers",
"tags": [
"correlation_id?value=openstack:bcac04dc-e0be-4110-862c-347088a7836a"
"correlation_id?value=bcac04dc-e0be-4110-862c-347088a7836a"
]
}

View File

@ -11,11 +11,11 @@
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
import hashlib
import uuid
from debtcollector import removals
from oslo_config import cfg
import six
CONF = cfg.CONF
opts = [
@ -26,29 +26,35 @@ opts = [
CONF.register_opts(opts, group='audit')
# TODO(mrutkows): make the namespace prefix configurable and have it resolve to
# a full openstack namespace/domain value via some declaration (e.g.
# "openstack:" == "http:\\www.openstack.org\")...
AUDIT_NS = None
if CONF.audit.namespace:
md5_hash = hashlib.md5(CONF.audit.namespace.encode('utf-8'))
AUDIT_NS = uuid.UUID(md5_hash.hexdigest())
def generate_uuid():
"""Generate a CADF identifier
"""
return norm_ns(str(uuid.uuid4()))
if AUDIT_NS:
return str(uuid.uuid5(AUDIT_NS, str(uuid.uuid4())))
return str(uuid.uuid4())
@removals.remove
def norm_ns(str_id):
"""Apply a namespace to the identifier
"""
"""Apply a namespace to the identifier """
prefix = CONF.audit.namespace + ':' if CONF.audit.namespace else ''
return prefix + str_id
# TODO(mrutkows): validate any cadf:Identifier (type) record against
# CADF schema. This would include schema validation as an optional parm.
def is_valid(value):
"""Validation to ensure Identifier is correct.
"""
if not isinstance(value, six.string_types):
raise TypeError
elif not value:
return False
if value in ['target', 'initiator', 'observer']:
return True
try:
uuid.UUID(value)
except ValueError:
return False
else:
return True

View File

@ -5,3 +5,4 @@ oslo.config>=2.7.0 # Apache-2.0
oslo.serialization>=1.10.0 # Apache-2.0
pytz>=2013.6
six>=1.9.0
debtcollector>=0.3.0 # Apache-2.0