Hello community, here is the log from the commit of package python-pycadf for openSUSE:Factory checked in at 2016-05-04 08:19:25 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-pycadf (Old) and /work/SRC/openSUSE:Factory/.python-pycadf.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "python-pycadf" Changes: -------- --- /work/SRC/openSUSE:Factory/python-pycadf/python-pycadf.changes 2015-10-30 13:42:11.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.python-pycadf.new/python-pycadf.changes 2016-05-04 08:19:26.000000000 +0200 @@ -1,0 +2,34 @@ +Thu Mar 3 14:56:01 UTC 2016 - tbechtold@suse.com + +- update to 2.1.0: + * Updated from global requirements + * Add docstring validation + * Adding ironic api specific audit map configuration + * Updated from global requirements + * Updated from global requirements + * Enable cadf support for Heat + * Fix wrong use of comma + * Updated from global requirements + * remove suport for py33 + * Put py34 first in the env order of tox + * relax id validation + * Updated from global requirements + * Remove Python 2.6 classifier + * Remove python 2.6 and cleanup tox.ini + * make generate_uuid return valid uuid + * Updated from global requirements + * Add authenticate and evaluate actions + * Change ceilometer endpoint name from telemetry to metering + * No need for Oslo Incubator Sync + * Document and update existing hacking violations + * Add shields.io version/downloads links/badges into README.rst + * Include changelog/history in docs + * Fix event example + * Add event name + * Event doc indentation issue + * Updated from global requirements + * Updated from global requirements + * Fixed typo error +- Adjust Requires according to requirements.txt + +------------------------------------------------------------------- Old: ---- pycadf-1.1.0.tar.gz New: ---- pycadf-2.1.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-pycadf.spec ++++++ --- /var/tmp/diff_new_pack.138BZC/_old 2016-05-04 08:19:27.000000000 +0200 +++ /var/tmp/diff_new_pack.138BZC/_new 2016-05-04 08:19:27.000000000 +0200 @@ -1,7 +1,7 @@ # # spec file for package python-pycadf # -# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: python-pycadf -Version: 1.1.0 +Version: 2.1.0 Release: 0 Summary: DMTF Cloud Audit (CADF) data mode License: Apache-2.0 @@ -28,25 +28,19 @@ BuildRequires: python-pbr # Test dependencies BuildRequires: python-Babel >= 1.3 -BuildRequires: python-WebOb >= 1.2.3 -BuildRequires: python-fixtures >= 0.3.14 -BuildRequires: python-iso8601 >= 0.1.8 -BuildRequires: python-mock >= 1.0 -BuildRequires: python-mox >= 0.5.3 -BuildRequires: python-netaddr >= 0.7.6 -BuildRequires: python-oslo.config >= 1.2.0 -BuildRequires: python-oslo.messaging -BuildRequires: python-oslotest +BuildRequires: python-fixtures >= 1.3.1 +BuildRequires: python-oslo.config >= 3.4.0 +BuildRequires: python-oslo.serialization >= 1.10.0 +BuildRequires: python-oslotest >= 1.10.0 BuildRequires: python-python-subunit >= 0.0.18 -BuildRequires: python-six >= 1.4.1 -BuildRequires: python-testrepository >= 0.0.17 +BuildRequires: python-six >= 1.9.0 +BuildRequires: python-testrepository >= 0.0.18 BuildRequires: python-testscenarios >= 0.4 -BuildRequires: python-testtools >= 0.9.34 +BuildRequires: python-testtools >= 1.4.0 Requires: python-Babel >= 1.3 -Requires: python-WebOb >= 1.2.3 -Requires: python-netaddr >= 0.7.6 -Requires: python-oslo.config >= 2.1.0 -Requires: python-oslo.serialization >= 1.4.0 +Requires: python-debtcollector >= 1.2.0 +Requires: python-oslo.config >= 3.4.0 +Requires: python-oslo.serialization >= 1.10.0 Requires: python-pytz >= 2013.6 Requires: python-six >= 1.9.0 BuildRoot: %{_tmppath}/%{name}-%{version}-build ++++++ pycadf-1.1.0.tar.gz -> pycadf-2.1.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycadf-1.1.0/AUTHORS new/pycadf-2.1.0/AUTHORS --- old/pycadf-1.1.0/AUTHORS 2015-08-24 17:42:18.000000000 +0200 +++ new/pycadf-2.1.0/AUTHORS 2016-02-17 19:02:00.000000000 +0100 @@ -1,5 +1,6 @@ Arun Kant <arun.kant@hp.com> Brad Topol <btopol@us.ibm.com> +ChangBo Guo(gcb) <eric.guo@easystack.cn> Christian Berendt <berendt@b1-systems.de> Cyril Roelandt <cyril.roelandt@enovance.com> Davanum Srinivas <davanum@gmail.com> @@ -8,15 +9,23 @@ Dolph Mathews <dolph.mathews@gmail.com> Doug Hellmann <doug.hellmann@dreamhost.com> Doug Hellmann <doug@doughellmann.com> +Einst Crazy <yu.changcai@99cloud.net> Fernando Diaz <diazjf@us.ibm.com> Gordon Chung <chungg@ca.ibm.com> +JUNJIE NAN <nanjj@cn.ibm.com> James E. Blair <jeblair@hp.com> +Janonymous <janonymous.codevulture@gmail.com> Jeremy Stanley <fungi@yuggoth.org> +Joshua Harlow <harlowja@yahoo-inc.com> +Lokesh S <lokesh.s@hp.com> Martin Geisler <martin@geisler.net> Matt Riedemann <mriedem@us.ibm.com> +Rakesh H S <rh-s@hpe.com> Sascha Peilicke <saschpe@gmx.de> +Stanisław Pitucha <stanislaw.pitucha@hp.com> Steve Martinelli <stevemar@ca.ibm.com> bgsilva <bgsilva@us.ibm.com> gordon chung <gord@live.ca> lin-hua-cheng <os.lcheng@gmail.com> mariamj@us.ibm.com <mariamj@us.ibm.com> +reedip <reedip.banerjee@nectechnologies.in> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycadf-1.1.0/ChangeLog new/pycadf-2.1.0/ChangeLog --- old/pycadf-1.1.0/ChangeLog 2015-08-24 17:42:18.000000000 +0200 +++ new/pycadf-2.1.0/ChangeLog 2016-02-17 19:02:00.000000000 +0100 @@ -1,6 +1,46 @@ CHANGES ======= +2.1.0 +----- + +* Updated from global requirements +* Add docstring validation +* Adding ironic api specific audit map configuration +* Updated from global requirements +* Updated from global requirements +* Enable cadf support for Heat +* Fix wrong use of comma +* Updated from global requirements +* remove suport for py33 +* Put py34 first in the env order of tox + +2.0.1 +----- + +* relax id validation + +2.0.0 +----- + +* Updated from global requirements +* Remove Python 2.6 classifier +* Remove python 2.6 and cleanup tox.ini +* make generate_uuid return valid uuid +* Updated from global requirements +* Add authenticate and evaluate actions +* Change ceilometer endpoint name from telemetry to metering +* No need for Oslo Incubator Sync +* Document and update existing hacking violations +* Add shields.io version/downloads links/badges into README.rst +* Include changelog/history in docs +* Fix event example +* Add event name +* Event doc indentation issue +* Updated from global requirements +* Updated from global requirements +* Fixed typo error + 1.1.0 ----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycadf-1.1.0/PKG-INFO new/pycadf-2.1.0/PKG-INFO --- old/pycadf-1.1.0/PKG-INFO 2015-08-24 17:42:19.000000000 +0200 +++ new/pycadf-2.1.0/PKG-INFO 2016-02-17 19:02:00.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: pycadf -Version: 1.1.0 +Version: 2.1.0 Summary: CADF Library Home-page: https://launchpad.net/pycadf Author: OpenStack @@ -10,6 +10,14 @@ PyCADF ====== + .. image:: https://img.shields.io/pypi/v/pycadf.svg + :target: https://pypi.python.org/pypi/pycadf/ + :alt: Latest Version + + .. image:: https://img.shields.io/pypi/dm/pycadf.svg + :target: https://pypi.python.org/pypi/pycadf/ + :alt: Downloads + This library provides an auditing data model based on the `Cloud Auditing Data Federation http://www.dmtf.org/standards/cadf`_ specification, primarily for use by OpenStack. The goal is to establish strict expectations about what @@ -38,7 +46,5 @@ Classifier: License :: OSI Approved :: Apache Software License Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 2.6 Classifier: Programming Language :: Python :: 2.7 -Classifier: Programming Language :: Python :: 3.3 Classifier: Programming Language :: Python :: 3.4 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycadf-1.1.0/README.rst new/pycadf-2.1.0/README.rst --- old/pycadf-1.1.0/README.rst 2015-08-24 17:41:43.000000000 +0200 +++ new/pycadf-2.1.0/README.rst 2016-02-17 19:01:37.000000000 +0100 @@ -2,6 +2,14 @@ PyCADF ====== +.. image:: https://img.shields.io/pypi/v/pycadf.svg + :target: https://pypi.python.org/pypi/pycadf/ + :alt: Latest Version + +.. image:: https://img.shields.io/pypi/dm/pycadf.svg + :target: https://pypi.python.org/pypi/pycadf/ + :alt: Downloads + This library provides an auditing data model based on the `Cloud Auditing Data Federation http://www.dmtf.org/standards/cadf`_ specification, primarily for use by OpenStack. The goal is to establish strict expectations about what diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycadf-1.1.0/doc/source/audit_maps.rst new/pycadf-2.1.0/doc/source/audit_maps.rst --- old/pycadf-1.1.0/doc/source/audit_maps.rst 2015-08-24 17:41:43.000000000 +0200 +++ new/pycadf-2.1.0/doc/source/audit_maps.rst 2016-02-17 19:01:37.000000000 +0100 @@ -27,6 +27,8 @@ * `neutron_api_audit_map.conf`_ * `nova_api_audit_map.conf`_ * `trove_api_audit_map.conf`_ +* `heat_api_audit_map.conf`_ +* `ironic_api_audit_map.conf`_ These files are hosted under the `etc/pycadf`_ directory of pyCADF. For more information on how to use these mapping files, refer to the `Audit middleware`_ @@ -40,3 +42,5 @@ .. _`neutron_api_audit_map.conf`: https://github.com/openstack/pycadf/blob/master/etc/pycadf/neutron_api_audit... .. _`nova_api_audit_map.conf`: https://github.com/openstack/pycadf/blob/master/etc/pycadf/nova_api_audit_ma... .. _`trove_api_audit_map.conf`: https://github.com/openstack/pycadf/blob/master/etc/pycadf/trove_api_audit_m... +.. _`heat_api_audit_map.conf`: https://github.com/openstack/pycadf/blob/master/etc/pycadf/heat_api_audit_ma... +.. _`ironic_api_audit_map.conf`: https://github.com/openstack/pycadf/blob/master/etc/pycadf/ironic_api_audit_... diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycadf-1.1.0/doc/source/event_concept.rst new/pycadf-2.1.0/doc/source/event_concept.rst --- old/pycadf-1.1.0/doc/source/event_concept.rst 2015-08-24 17:41:44.000000000 +0200 +++ new/pycadf-2.1.0/doc/source/event_concept.rst 2016-02-17 19:01:37.000000000 +0100 @@ -104,7 +104,7 @@ "name": "public" } ], - "id": "openstack:06747855d62547d4bfd707f75b8a1c54", + "id": "06747855d62547d4bfd707f75b8a1c54", "name": "nova" }, "observer": { @@ -112,7 +112,7 @@ }, # 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,16 +128,16 @@ "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": { "reasonCode": "200", "reasonType": "HTTP" }, - # list of Resources which edited event, - "reporterchain": [ + # list of Resources which edited event, + "reporterchain": [ { "reporterTime": "2014-02-27T19:29:31.043902+0000", "role": "modifier", @@ -148,7 +148,7 @@ ], "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 @@ "eventTime": "2014-02-27T19:29:30.855665+0000", "target": { "typeURI": "service/compute/cpu", - "id": "openstack:06747855d62547d4bfd707f75b8a1c54", + "id": "06747855d62547d4bfd707f75b8a1c54", "name": "instance" }, "observer": { @@ -198,20 +198,21 @@ "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" } } - ]"action": "monitor", + ], + "action": "monitor", "outcome": "success", - "id": "openstack:0a196053-95de-48f8-9890-4527b25b5007" + "id": "0a196053-95de-48f8-9890-4527b25b5007" } .. note:: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycadf-1.1.0/doc/source/history.rst new/pycadf-2.1.0/doc/source/history.rst --- old/pycadf-1.1.0/doc/source/history.rst 1970-01-01 01:00:00.000000000 +0100 +++ new/pycadf-2.1.0/doc/source/history.rst 2016-02-17 19:01:37.000000000 +0100 @@ -0,0 +1 @@ +.. include:: ../../ChangeLog diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycadf-1.1.0/doc/source/index.rst new/pycadf-2.1.0/doc/source/index.rst --- old/pycadf-1.1.0/doc/source/index.rst 2015-08-24 17:41:43.000000000 +0200 +++ new/pycadf-2.1.0/doc/source/index.rst 2016-02-17 19:01:37.000000000 +0100 @@ -66,9 +66,16 @@ .. toctree:: :maxdepth: 1 - releases api/modules +Release Notes +============= + +.. toctree:: + :maxdepth: 1 + + history + Indices and tables ================== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycadf-1.1.0/doc/source/releases.rst new/pycadf-2.1.0/doc/source/releases.rst --- old/pycadf-1.1.0/doc/source/releases.rst 2015-08-24 17:41:43.000000000 +0200 +++ new/pycadf-2.1.0/doc/source/releases.rst 1970-01-01 01:00:00.000000000 +0100 @@ -1,220 +0,0 @@ -============= -Release Notes -============= - -0.8.0 (Feb 16 2015) -=================== - -* add helper module -* Add a new CADF type for keystone trusts -* Use oslo namespaces -* Use oslo_context -* Add deprecation message to Audit API -* cleanup documentation -* Bug 1347868_: Do not depend on endpoint id existing in the service catalog - -.. _1347868: https://bugs.launchpad.net/pycadf/+bug/1347868 - -0.7.1 (Jan 28 2015) -=================== - -* Pull out some CADF taxonomy to be constants -* Add new CADF taxonomy types - -0.7.0 (Jan 19 2015) -=================== - -* Work toward Python 3.4 support and testing -* Use oslo_debug_helper and remove our own version -* Stop using intersphinx -* Remove dependencies from docs test env in tox.ini -* Use correct name of oslo debugger script -* Remove unused dependencies from pycadf -* Use oslo tests fixture -* Use oslo.serialization -* Sync oslo libraries -* upgrade hacking to 0.10.0 -* Bug 1336976_: PyCADF docs do not include the changelog -* Bug 1398411_: deprecate audit middleware - -.. _1336976: https://bugs.launchpad.net/pycadf/+bug/1336976 -.. _1398411: https://bugs.launchpad.net/pycadf/+bug/1398411 - -0.6.0 (Aug 23 2014) -=================== - -* Bump hacking to 0.9.2 series -* Remove docutils pin -* Enabled hacking checks H305 and H307 -* Fix typo comments -* Fix a grammatical error in contributing doc -* Debug env for tox -* clean up license headers -* add CONTRIBUTING doc -* revise readme with a project description -* Enable PEP8 checks E128, E251 and E265 -* define the project goal -* Blueprint audit-all-apis_: add audit support for all openstack components -* Bug 1359495_: Federated credential metadata - -.. _audit-all-apis: https://blueprints.launchpad.net/pycadf/+spec/audit-all-apis -.. _1359495: https://bugs.launchpad.net/pycadf/+bug/1359495 - -0.5.1 (May 26 2014) -=================== - -* import run_cross_tests.sh from incubator -* reorder documentation -* sync oslo -* Bug 1321080_: [OSSA 2014-021] auth token is exposed in meter http.request (CVE-2014-4615) - -.. _1321080: https://bugs.launchpad.net/pycadf/+bug/1321080 - -0.5 (Apr 1 2014) -================ - -* add docstrings to functions -* Bug 1279951_: need to publish developer documentation - -.. _1279951: https://bugs.launchpad.net/pycadf/+bug/1279951 - -0.4.1 (Feb 21 2014) -=================== - -* catch empty json body - -0.4 (Feb 20 2014) -================= - -* Update .gitreview after repo rename -* Install configs into /etc, not /usr/etc -* Rollback change to that Install configs into /etc -* oslo common code sync and requirements cleanup -* add constant for security service -* Bug 1280327_: notifier middleware broken by oslo.messaging - -.. _1280327: https://bugs.launchpad.net/pycadf/+bug/1280327 - -0.3.1 (Feb 4 2014) -================== - -* update audit_map -* update build_typeURI to drop query string -* sync common code and requirements -* adjust typeURI to capture target better -* Python 3: update setup.cfg to advertise python 3 compatibility -* Bug 1262393_: mask token values -* Bug 1267500_: add REST request URL path to event - -.. _1262393: https://bugs.launchpad.net/pycadf/+bug/1262393 -.. _1267500: https://bugs.launchpad.net/pycadf/+bug/1267500 - -0.3 (Jan 10 2014) -================= - -* Python 3: do not index a dict_keys object -* Python 3: use six.moves.urllib.parse instead of urlparse -* Python 3: the request body should be bytes in test_api.py -* Python 3: use six.with_metaclass -* Python 3: replace 'basestring' by 'six.string_types' -* Python 3: Use six.moves.configparser rather than ConfigParser -* sync requirements and oslo - -0.2.2 (Oct 29 2013) -=================== - -* update oslo requirement -* do not set typeURI in resource shortform -* add namespace to all ids -* improve model validation - -0.2.1 (Oct 21 2013) -=================== - -* support namespace prefix in id -* switch list action to read/list -* Bug 1240067_: observer should be implemented as resource - -.. _1240067: https://bugs.launchpad.net/pycadf/+bug/1240067 - -0.2 (Oct 4 2013) -================ - -* Bug 1229977_: Switch to oslo.config 1.2.0 final -* Bug 1226870_: target_endpoint_type conf value not tested properly -* Bug 1228199_: conf options are not optional - -.. _1229977: https://bugs.launchpad.net/pycadf/+bug/1229977 -.. _1226870: https://bugs.launchpad.net/pycadf/+bug/1226870 -.. _1228199: https://bugs.launchpad.net/pycadf/+bug/1228199 - -0.1.9 (Sep 19 2013) -=================== - -* Bug 1227634_: pycadf 0.1.8 broke oslo - -.. _1227634: https://bugs.launchpad.net/pycadf/+bug/1227634 - -0.1.8 (Sep 18 2013) -=================== - -* update tox to 1.6 -* Bug 1226722_: DNS names may not map to service catalog values - -.. _1226722: https://bugs.launchpad.net/pycadf/+bug/1226722 - -0.1.7 (Sep 5 2013) -================== - -* Bug 1221379_: Ceilometer CADF_EVENT.id and CADF_EVENT.eventTime stay the - same for two different events - -.. _1221379: https://bugs.launchpad.net/pycadf/+bug/1221379 - -0.1.6 (Sep 4 2013) -=================== - -* bump oslo.config req to 1.2.0a3 - -0.1.5 (Aug 26 2013) -=================== - -* Bug 1214097_: update cadf spec to support new data model - - * support credentials, hosts, endpoints - * add observer attr to event - -* Bug 1214407_: api_audit_map.conf is not getting packaged - -.. _1214097: https://bugs.launchpad.net/pycadf/+bug/1214097 -.. _1214407: https://bugs.launchpad.net/pycadf/+bug/1214407 - -0.1.4 (Aug 20 2013) -=================== - -* add event to CADF_EVENT - -0.1.3 (Aug 15 2013) -=================== - -* add support for no response and failed request audit - -0.1.2 (Aug 14 2013) -=================== - -* move cadf correlation id under req.environ -* append cadf event to req.environ -* Bug 1209387_: attribute validation fails against unicode - -.. _1209387: https://bugs.launchpad.net/pycadf/+bug/1209387 - -0.1.1 (Aug 8 2013) -================== - -* validate attributes against basestring -* add support for audit api middleware - -0.1 (Aug 6 2013) -================ - -* initial project setup \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycadf-1.1.0/doc/source/specification/events.rst new/pycadf-2.1.0/doc/source/specification/events.rst --- old/pycadf-1.1.0/doc/source/specification/events.rst 2015-08-24 17:41:43.000000000 +0200 +++ new/pycadf-2.1.0/doc/source/specification/events.rst 2016-02-17 19:01:37.000000000 +0100 @@ -54,7 +54,7 @@ { "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,9 +64,10 @@ }, "eventTime": "2014-01-17T23:23:38.109989+0000", "initiator": { - "id": "openstack:95f12d248a234a969f456cd2c794f29a""typeURI": "service/security/account/user", + "id": "95f12d248a234a969f456cd2c794f29a", + "typeURI": "service/security/account/user", "name": "admin", - "project_id": "openstack:e55b158759854ea6a7852aa76632c6c1", + "project_id": "e55b158759854ea6a7852aa76632c6c1", "credential": { "token": "MIIQBgYJKoZIhvcNAQcCoIIP9z xxxxxx KoZIhvcIP9z=", "identity_status": "Confirmed" @@ -77,7 +78,7 @@ } }, "target": { - "id": "openstack:0f126160203748a5b4923f2eb6e3b7db", + "id": "0f126160203748a5b4923f2eb6e3b7db", "typeURI": "service/compute/servers", "name": "nova", "addresses": [ @@ -109,6 +110,6 @@ ], "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" ] } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycadf-1.1.0/etc/pycadf/ceilometer_api_audit_map.conf new/pycadf-2.1.0/etc/pycadf/ceilometer_api_audit_map.conf --- old/pycadf-1.1.0/etc/pycadf/ceilometer_api_audit_map.conf 2015-08-24 17:41:43.000000000 +0200 +++ new/pycadf-2.1.0/etc/pycadf/ceilometer_api_audit_map.conf 2016-02-17 19:01:37.000000000 +0100 @@ -19,4 +19,4 @@ # map endpoint type defined in service catalog to CADF typeURI [service_endpoints] -telemetry = service/telemetry +metering = service/metering diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycadf-1.1.0/etc/pycadf/heat_api_audit_map.conf new/pycadf-2.1.0/etc/pycadf/heat_api_audit_map.conf --- old/pycadf-1.1.0/etc/pycadf/heat_api_audit_map.conf 1970-01-01 01:00:00.000000000 +0100 +++ new/pycadf-2.1.0/etc/pycadf/heat_api_audit_map.conf 2016-02-17 19:01:37.000000000 +0100 @@ -0,0 +1,32 @@ +[DEFAULT] +# default target endpoint type +# should match the endpoint type defined in service catalog +target_endpoint_type = None + +# possible end path of api requests +[path_keywords] +stacks = stack +resources = resource +preview = None +detail = None +abandon = None +snapshots = snapshot +restore = None +outputs = output +metadata = server +signal = None +events = event +template = None +template_versions = template_version +functions = None +validate = None +resource_types = resource_type +build_info = None +actions = None +software_configs = software_config +software_deployments = software_deployment +services = None + +# map endpoint type defined in service catalog to CADF typeURI +[service_endpoints] +orchestration = service/orchestration \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycadf-1.1.0/etc/pycadf/ironic_api_audit_map.conf new/pycadf-2.1.0/etc/pycadf/ironic_api_audit_map.conf --- old/pycadf-1.1.0/etc/pycadf/ironic_api_audit_map.conf 1970-01-01 01:00:00.000000000 +0100 +++ new/pycadf-2.1.0/etc/pycadf/ironic_api_audit_map.conf 2016-02-17 19:01:37.000000000 +0100 @@ -0,0 +1,25 @@ +[DEFAULT] +# default target endpoint type +# should match the endpoint type defined in service catalog +target_endpoint_type = None + +# possible end path of api requests +[path_keywords] +nodes = node +drivers = driver +chassis = chassis +ports = port +states = state +power = None +provision = None +maintenance = None +validate = None +boot_device = None +supported = None +console = None +vendor_passthrus = vendor_passthru + + +# map endpoint type defined in service catalog to CADF typeURI +[service_endpoints] +baremetal = service/compute/baremetal diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycadf-1.1.0/openstack-common.conf new/pycadf-2.1.0/openstack-common.conf --- old/pycadf-1.1.0/openstack-common.conf 2015-08-24 17:41:43.000000000 +0200 +++ new/pycadf-2.1.0/openstack-common.conf 1970-01-01 01:00:00.000000000 +0100 @@ -1,2 +0,0 @@ -[DEFAULT] -base=pycadf diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycadf-1.1.0/pycadf/cadftaxonomy.py new/pycadf-2.1.0/pycadf/cadftaxonomy.py --- old/pycadf-1.1.0/pycadf/cadftaxonomy.py 2015-08-24 17:41:43.000000000 +0200 +++ new/pycadf-2.1.0/pycadf/cadftaxonomy.py 2016-02-17 19:01:37.000000000 +0100 @@ -23,6 +23,9 @@ ACTION_READ = 'read' ACTION_UPDATE = 'update' ACTION_DELETE = 'delete' +# Other CADF actions +ACTION_AUTHENTICATE = 'authenticate' +ACTION_EVALUATE = 'evaluate' # OpenStack specific, Profile or change CADF spec. to add this action ACTION_LIST = 'read/list' @@ -45,12 +48,12 @@ 'disable', 'send', 'receive', - 'authenticate', + ACTION_AUTHENTICATE, 'authenticate/login', 'revoke', 'renew', 'restore', - 'evaluate', + ACTION_EVALUATE, 'allow', 'deny', 'notify', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycadf-1.1.0/pycadf/event.py new/pycadf-2.1.0/pycadf/event.py --- old/pycadf-1.1.0/pycadf/event.py 2015-08-24 17:41:43.000000000 +0200 +++ new/pycadf-2.1.0/pycadf/event.py 2016-02-17 19:01:37.000000000 +0100 @@ -40,6 +40,7 @@ EVENT_KEYNAME_OUTCOME = "outcome" EVENT_KEYNAME_REASON = "reason" EVENT_KEYNAME_SEVERITY = "severity" +EVENT_KEYNAME_NAME = "name" EVENT_KEYNAME_MEASUREMENTS = "measurements" EVENT_KEYNAME_TAGS = "tags" EVENT_KEYNAME_ATTACHMENTS = "attachments" @@ -59,6 +60,7 @@ EVENT_KEYNAME_OUTCOME, EVENT_KEYNAME_REASON, EVENT_KEYNAME_SEVERITY, + EVENT_KEYNAME_NAME, EVENT_KEYNAME_MEASUREMENTS, EVENT_KEYNAME_TAGS, EVENT_KEYNAME_ATTACHMENTS, @@ -94,6 +96,9 @@ reason = cadftype.ValidatorDescriptor( EVENT_KEYNAME_REASON, lambda x: isinstance(x, reason.Reason) and x.is_valid()) + name = cadftype.ValidatorDescriptor(EVENT_KEYNAME_NAME, + lambda x: isinstance( + x, six.string_types)) severity = cadftype.ValidatorDescriptor(EVENT_KEYNAME_SEVERITY, lambda x: isinstance( x, six.string_types)) @@ -107,7 +112,8 @@ id=None, eventTime=None, action=cadftaxonomy.UNKNOWN, outcome=cadftaxonomy.UNKNOWN, initiator=None, initiatorId=None, target=None, targetId=None, - severity=None, reason=None, observer=None, observerId=None): + severity=None, reason=None, observer=None, observerId=None, + name=None): """Create an Event :param eventType: eventType of Event. Defaults to 'activity' type @@ -123,6 +129,7 @@ :param reason: domain-specific Reason type :param observer: Event's Observer Resource :param observerId: Event's Observer Resource id + :param name: descriptive name for the event """ # Establish typeURI for the CADF Event data type # TODO(mrutkows): support extended typeURIs for Event subtypes @@ -165,6 +172,10 @@ if targetId is not None: setattr(self, EVENT_KEYNAME_TARGETID, targetId) + # Event.name (Optional) + if name is not None: + setattr(self, EVENT_KEYNAME_NAME, name) + # Event.severity (Optional) if severity is not None: setattr(self, EVENT_KEYNAME_SEVERITY, severity) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycadf-1.1.0/pycadf/eventfactory.py new/pycadf-2.1.0/pycadf/eventfactory.py --- old/pycadf-1.1.0/pycadf/eventfactory.py 2015-08-24 17:41:43.000000000 +0200 +++ new/pycadf-2.1.0/pycadf/eventfactory.py 2016-02-17 19:01:37.000000000 +0100 @@ -42,7 +42,7 @@ event_val.eventType = eventType # TODO(mrutkows): CADF is only being used for basic - # 'activity' auditing (on APIs), An IF-ELIF will + # 'activity' auditing (on APIs). An IF-ELIF will # become more meaningful as we add support for other # event types. # elif eventType == cadftype.EVENTTYPE_MONITOR: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycadf-1.1.0/pycadf/identifier.py new/pycadf-2.1.0/pycadf/identifier.py --- old/pycadf-1.1.0/pycadf/identifier.py 2015-08-24 17:41:43.000000000 +0200 +++ new/pycadf-2.1.0/pycadf/identifier.py 2016-02-17 19:01:37.000000000 +0100 @@ -11,9 +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 +import warnings +from debtcollector import removals from oslo_config import cfg import six @@ -26,29 +28,35 @@ 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())) + """Generate a CADF identifier.""" + 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 + """Validation to ensure Identifier is correct.""" + if value in ['target', 'initiator', 'observer']: + return True + try: + uuid.UUID(value) + except (ValueError, TypeError): + if not isinstance(value, six.string_types) or not value: + return False + warnings.warn('Invalid uuid. To ensure interoperability, identifiers' + 'should be a valid uuid.') return True diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycadf-1.1.0/pycadf/tests/test_cadf_spec.py new/pycadf-2.1.0/pycadf/tests/test_cadf_spec.py --- old/pycadf-1.1.0/pycadf/tests/test_cadf_spec.py 2015-08-24 17:41:43.000000000 +0200 +++ new/pycadf-2.1.0/pycadf/tests/test_cadf_spec.py 2016-02-17 19:01:37.000000000 +0100 @@ -15,6 +15,8 @@ import time import uuid +import mock + from pycadf import attachment from pycadf import cadftype from pycadf import credential @@ -35,9 +37,16 @@ class TestCADFSpec(base.TestCase): - def test_identifier_empty(self): + @mock.patch('pycadf.identifier.warnings.warn') + def test_identifier(self, warning_mock): + # empty string self.assertFalse(identifier.is_valid('')) + # generated uuid self.assertTrue(identifier.is_valid(identifier.generate_uuid())) + self.assertFalse(warning_mock.called) + # any string + self.assertTrue(identifier.is_valid('blah')) + self.assertTrue(warning_mock.called) def test_endpoint(self): endp = endpoint.Endpoint(url='http://192.168.0.1', @@ -219,7 +228,8 @@ outcome='success', reason=reason.Reason(reasonType='HTTP', reasonCode='200'), - severity='high') + severity='high', + name='descriptive name') ev.add_measurement( measurement.Measurement(result='100', metricId=identifier.generate_uuid())), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycadf-1.1.0/pycadf.egg-info/PKG-INFO new/pycadf-2.1.0/pycadf.egg-info/PKG-INFO --- old/pycadf-1.1.0/pycadf.egg-info/PKG-INFO 2015-08-24 17:42:18.000000000 +0200 +++ new/pycadf-2.1.0/pycadf.egg-info/PKG-INFO 2016-02-17 19:02:00.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: pycadf -Version: 1.1.0 +Version: 2.1.0 Summary: CADF Library Home-page: https://launchpad.net/pycadf Author: OpenStack @@ -10,6 +10,14 @@ PyCADF ====== + .. image:: https://img.shields.io/pypi/v/pycadf.svg + :target: https://pypi.python.org/pypi/pycadf/ + :alt: Latest Version + + .. image:: https://img.shields.io/pypi/dm/pycadf.svg + :target: https://pypi.python.org/pypi/pycadf/ + :alt: Downloads + This library provides an auditing data model based on the `Cloud Auditing Data Federation http://www.dmtf.org/standards/cadf`_ specification, primarily for use by OpenStack. The goal is to establish strict expectations about what @@ -38,7 +46,5 @@ Classifier: License :: OSI Approved :: Apache Software License Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 2.6 Classifier: Programming Language :: Python :: 2.7 -Classifier: Programming Language :: Python :: 3.3 Classifier: Programming Language :: Python :: 3.4 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycadf-1.1.0/pycadf.egg-info/SOURCES.txt new/pycadf-2.1.0/pycadf.egg-info/SOURCES.txt --- old/pycadf-1.1.0/pycadf.egg-info/SOURCES.txt 2015-08-24 17:42:19.000000000 +0200 +++ new/pycadf-2.1.0/pycadf.egg-info/SOURCES.txt 2016-02-17 19:02:00.000000000 +0100 @@ -4,7 +4,6 @@ ChangeLog LICENSE README.rst -openstack-common.conf requirements.txt setup.cfg setup.py @@ -16,9 +15,9 @@ doc/source/audit_maps.rst doc/source/conf.py doc/source/event_concept.rst +doc/source/history.rst doc/source/index.rst doc/source/middleware.rst -doc/source/releases.rst doc/source/images/audit_event.png doc/source/images/middleware.png doc/source/images/monitor_event.png @@ -42,6 +41,8 @@ etc/pycadf/ceilometer_api_audit_map.conf etc/pycadf/cinder_api_audit_map.conf etc/pycadf/glance_api_audit_map.conf +etc/pycadf/heat_api_audit_map.conf +etc/pycadf/ironic_api_audit_map.conf etc/pycadf/neutron_api_audit_map.conf etc/pycadf/nova_api_audit_map.conf etc/pycadf/trove_api_audit_map.conf diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycadf-1.1.0/pycadf.egg-info/pbr.json new/pycadf-2.1.0/pycadf.egg-info/pbr.json --- old/pycadf-1.1.0/pycadf.egg-info/pbr.json 2015-08-24 17:42:18.000000000 +0200 +++ new/pycadf-2.1.0/pycadf.egg-info/pbr.json 2016-02-17 19:02:00.000000000 +0100 @@ -1 +1 @@ -{"git_version": "c5dc0d9", "is_release": true} \ No newline at end of file +{"git_version": "fb81d12", "is_release": true} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycadf-1.1.0/pycadf.egg-info/requires.txt new/pycadf-2.1.0/pycadf.egg-info/requires.txt --- old/pycadf-1.1.0/pycadf.egg-info/requires.txt 2015-08-24 17:42:18.000000000 +0200 +++ new/pycadf-2.1.0/pycadf.egg-info/requires.txt 2016-02-17 19:02:00.000000000 +0100 @@ -1,4 +1,5 @@ -oslo.config>=2.1.0 # Apache-2.0 -oslo.serialization>=1.4.0 # Apache-2.0 +oslo.config>=3.4.0 +oslo.serialization>=1.10.0 pytz>=2013.6 six>=1.9.0 +debtcollector>=1.2.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycadf-1.1.0/requirements.txt new/pycadf-2.1.0/requirements.txt --- old/pycadf-1.1.0/requirements.txt 2015-08-24 17:41:43.000000000 +0200 +++ new/pycadf-2.1.0/requirements.txt 2016-02-17 19:01:37.000000000 +0100 @@ -1,7 +1,8 @@ # The order of packages is significant, because pip processes them in the order # of appearance. Changing the order has an impact on the overall integration # process, which may cause wedges in the gate later. -oslo.config>=2.1.0 # Apache-2.0 -oslo.serialization>=1.4.0 # Apache-2.0 -pytz>=2013.6 -six>=1.9.0 +oslo.config>=3.4.0 # Apache-2.0 +oslo.serialization>=1.10.0 # Apache-2.0 +pytz>=2013.6 # MIT +six>=1.9.0 # MIT +debtcollector>=1.2.0 # Apache-2.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycadf-1.1.0/setup.cfg new/pycadf-2.1.0/setup.cfg --- old/pycadf-1.1.0/setup.cfg 2015-08-24 17:42:19.000000000 +0200 +++ new/pycadf-2.1.0/setup.cfg 2016-02-17 19:02:00.000000000 +0100 @@ -14,9 +14,7 @@ License :: OSI Approved :: Apache Software License Operating System :: OS Independent Programming Language :: Python - Programming Language :: Python :: 2.6 Programming Language :: Python :: 2.7 - Programming Language :: Python :: 3.3 Programming Language :: Python :: 3.4 [files] @@ -47,7 +45,7 @@ warnerrors = True [egg_info] -tag_build = -tag_svn_revision = 0 tag_date = 0 +tag_svn_revision = 0 +tag_build = diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycadf-1.1.0/setup.py new/pycadf-2.1.0/setup.py --- old/pycadf-1.1.0/setup.py 2015-08-24 17:41:43.000000000 +0200 +++ new/pycadf-2.1.0/setup.py 2016-02-17 19:01:37.000000000 +0100 @@ -25,5 +25,5 @@ pass setuptools.setup( - setup_requires=['pbr>=1.3'], + setup_requires=['pbr>=1.8'], pbr=True) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycadf-1.1.0/test-requirements.txt new/pycadf-2.1.0/test-requirements.txt --- old/pycadf-1.1.0/test-requirements.txt 2015-08-24 17:41:43.000000000 +0200 +++ new/pycadf-2.1.0/test-requirements.txt 2016-02-17 19:01:37.000000000 +0100 @@ -3,15 +3,16 @@ # process, which may cause wedges in the gate later. # Hacking already pins down pep8, pyflakes and flake8 hacking<0.11,>=0.10.0 +flake8-docstrings==0.2.1.post1 # MIT -coverage>=3.6 -discover -fixtures>=1.3.1 +coverage>=3.6 # Apache-2.0 +discover # BSD +fixtures>=1.3.1 # Apache-2.0/BSD oslotest>=1.10.0 # Apache-2.0 -python-subunit>=0.0.18 -testrepository>=0.0.18 -testtools>=1.4.0 +python-subunit>=0.0.18 # Apache-2.0/BSD +testrepository>=0.0.18 # Apache-2.0/BSD +testtools>=1.4.0 # MIT # this is required for the docs build jobs -oslosphinx>=2.5.0 # Apache-2.0 -sphinx!=1.2.0,!=1.3b1,<1.3,>=1.1.2 +oslosphinx!=3.4.0,>=2.5.0 # Apache-2.0 +sphinx!=1.2.0,!=1.3b1,<1.3,>=1.1.2 # BSD diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pycadf-1.1.0/tox.ini new/pycadf-2.1.0/tox.ini --- old/pycadf-1.1.0/tox.ini 2015-08-24 17:41:43.000000000 +0200 +++ new/pycadf-2.1.0/tox.ini 2016-02-17 19:01:37.000000000 +0100 @@ -1,14 +1,9 @@ [tox] minversion = 1.6 -skipsdist = True -envlist = py26,py27,py33,py34,pep8 +envlist = py34,py27,pep8 [testenv] -setenv = VIRTUAL_ENV={envdir} -deps = -r{toxinidir}/requirements.txt - -r{toxinidir}/test-requirements.txt -install_command = pip install -U {opts} {packages} -usedevelop = True +deps = -r{toxinidir}/test-requirements.txt commands = python setup.py testr --slowest --testr-args='{posargs}' [testenv:pep8] @@ -18,7 +13,6 @@ commands = python setup.py build_sphinx [testenv:cover] -setenv = VIRTUAL_ENV={envdir} commands = python setup.py testr --coverage [testenv:venv] @@ -29,7 +23,23 @@ [flake8] show-source = True -ignore = H405,H904 +# H405: Multi line docstrings should start with a one line summary followed by +# an empty line. +# D100: Missing docstring in public module +# D101: Missing docstring in public class +# D102: Missing docstring in public method +# D103: Missing docstring in public function +# D104: Missing docstring in public package +# D105: Missing docstring in magic method +# D200: One-line docstring should fit on one line with quotes +# D202: No blank lines allowed after function docstring +# D203: 1 blank required before class docstring +# D204: 1 blank line required after class docstring +# D205: 1 blank line required between summary line and description +# D208: Docstring is over-indented +# D400: First line should end with a period +# D401: First line should be in imperative mood +ignore = H405,D100,D101,D102,D103,D104,D105,D200,D202,D203,D204,D205,D208,D400,D401 exclude = .tox,dist,doc,*.egg,build,./pycadf/openstack/common [hacking]