RDO tickets are now tracked in Jira https://issues.redhat.com/projects/RDO/issues/
Bug 1426551 - Review Request: Senlin - is a clustering service for OpenStack
Summary: Review Request: Senlin - is a clustering service for OpenStack
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: RDO
Classification: Community
Component: Package Review
Version: unspecified
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
: trunk
Assignee: Alfredo Moralejo
QA Contact: hguemar
URL:
Whiteboard:
Depends On:
Blocks: RDO-PIKE
TreeView+ depends on / blocked
 
Reported: 2017-02-24 09:30 UTC by XueFeng Liu
Modified: 2017-07-20 13:30 UTC (History)
5 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2017-07-20 13:30:39 UTC
Embargoed:
amoralej: rdo-review+


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
RDO 7470 0 None None None 2017-07-09 08:49:39 UTC

Description XueFeng Liu 2017-02-24 09:30:49 UTC
Description of problem:

Spec URL: Will update

SRPM URL: Will update

Description:
senlin wiki
https://wiki.openstack.org/wiki/Senlin

Senlin is a clustering service for OpenStack clouds. It creates and operates clusters of homogeneous objects exposed by other OpenStack services. The goal is to make orchestration of collections of similar objects easier.

Senlin interacts with other OpenStack services so that clusters of resources exposed by those services can be created and operated. These interactions are mostly done through the via profile plugins. Each profile type implementation enable Senlin to create, update, delete a specific type of resources.

A Cluster can be associated with different Policy objects that can be checked/enforced at varying enforcement levels. Through service APIs, a user can dynamically add Node to and remove node from a cluster, attach and detach policies, such as creation policy, deletion policy, load-balancing policy, scaling policy, health policy etc. Through integration with other OpenStack projects, users will be enabled to manage deployments and orchestrations large-scale resource pools much easier.

Senlin is designed to be capable of managing different types of objects. An object’s lifecycle is managed using Profile Type implementations, which are plugins that can be dynamically loaded by the service engine.

Comment 1 Christopher Brown 2017-07-05 15:45:30 UTC
Hello,

I'd like to have a look at packaging this. Any objections please let me know!

Comment 2 Christopher Brown 2017-07-06 13:54:57 UTC
First stab at spec file. It has been about 7 years since I last played with spec files so please go easy. :)

Github project:

https://github.com/snecklifter/senlin-rdo-rpm

Spec file:

https://raw.githubusercontent.com/snecklifter/senlin-rdo-rpm/master/openstack-senlin.spec

Comment 3 Javier Peña 2017-07-06 14:48:45 UTC
Initial licensecheck output:

./.coveragerc: *No copyright* UNKNOWN
./.gitreview: *No copyright* UNKNOWN
./.testr.conf: *No copyright* UNKNOWN
./CONTRIBUTING.rst: *No copyright* UNKNOWN
./FEATURES.rst: *No copyright* UNKNOWN
./HACKING.rst: *No copyright* UNKNOWN
./LICENSE: *No copyright* Apache (v2.0)
./README.rst: *No copyright* UNKNOWN
./TODO.rst: *No copyright* UNKNOWN
./babel.cfg: *No copyright* UNKNOWN
./install.sh: *No copyright* UNKNOWN
./requirements.txt: *No copyright* UNKNOWN
./setup.cfg: *No copyright* Apache
./setup.py: Apache (v2.0) GENERATED FILE
./test-requirements.txt: *No copyright* UNKNOWN
./tox.ini: *No copyright* UNKNOWN
./uninstall.sh: *No copyright* UNKNOWN
./devstack/README.rst: *No copyright* UNKNOWN
./devstack/apache-senlin.template: *No copyright* UNKNOWN
./devstack/plugin.sh: *No copyright* UNKNOWN
./devstack/settings: *No copyright* UNKNOWN
./doc/Makefile: *No copyright* UNKNOWN
./doc/README.rst: *No copyright* UNKNOWN
./rally-jobs/README.rst: *No copyright* UNKNOWN
./rally-jobs/senlin-senlin.yaml: *No copyright* UNKNOWN
./senlin/__init__.py: *No copyright* Apache (v2.0)
./senlin/version.py: *No copyright* Apache (v2.0)
./tools/README.rst: *No copyright* GENERATED FILE
./tools/config-generator.conf: *No copyright* UNKNOWN
./tools/cover.sh: *No copyright* Apache (v2.0)
./tools/gen-config: *No copyright* UNKNOWN
./tools/gen-pot-files: *No copyright* UNKNOWN
./tools/senlin-db-recreate: *No copyright* UNKNOWN
./tools/setup-service: *No copyright* UNKNOWN
./api-ref/source/actions.inc: *No copyright* UNKNOWN
./api-ref/source/build_info.inc: *No copyright* UNKNOWN
./api-ref/source/cluster_policies.inc: *No copyright* UNKNOWN
./api-ref/source/clusters.inc: *No copyright* UNKNOWN
./api-ref/source/conf.py: *No copyright* Apache (v2.0) GENERATED FILE
./api-ref/source/events.inc: *No copyright* UNKNOWN
./api-ref/source/index.rst: *No copyright* UNKNOWN
./api-ref/source/nodes.inc: *No copyright* UNKNOWN
./api-ref/source/parameters.yaml: *No copyright* UNKNOWN
./api-ref/source/policies.inc: *No copyright* UNKNOWN
./api-ref/source/policy_types.inc: *No copyright* UNKNOWN
./api-ref/source/profile_types.inc: *No copyright* UNKNOWN
./api-ref/source/profiles.inc: *No copyright* UNKNOWN
./api-ref/source/receivers.inc: *No copyright* UNKNOWN
./api-ref/source/services.inc: *No copyright* UNKNOWN
./api-ref/source/status.yaml: *No copyright* UNKNOWN
./api-ref/source/versions.inc: *No copyright* UNKNOWN
./api-ref/source/webhooks.inc: *No copyright* UNKNOWN
./contrib/vdu/README.rst: *No copyright* UNKNOWN
./contrib/vdu/requirements.txt: *No copyright* UNKNOWN
./contrib/vdu/setup.cfg: *No copyright* Apache
./contrib/vdu/setup.py: Apache (v2.0) GENERATED FILE
./devstack/lib/senlin: *No copyright* UNKNOWN
./doc/source/conf.py: *No copyright* Apache (v2.0)
./doc/source/configuration.rst: *No copyright* UNKNOWN
./doc/source/glossary.rst: *No copyright* Apache (v2.0)
./doc/source/index.rst: *No copyright* Apache (v2.0)
./doc/source/install.rst: *No copyright* Apache (v2.0)
./doc/source/overview.rst: *No copyright* Apache (v2.0)
./doc/specs/README.rst: *No copyright* UNKNOWN
./doc/specs/template.rst: *No copyright* CC by (v3.0) GENERATED FILE
./doc/specs/workflow-recover.rst: *No copyright* CC by (v3.0)
./etc/senlin/README-senlin.conf.txt: *No copyright* UNKNOWN
./etc/senlin/api-paste.ini: *No copyright* UNKNOWN
./etc/senlin/policy.json: *No copyright* UNKNOWN
./examples/policies/affinity_policy.yaml: *No copyright* UNKNOWN
./examples/policies/batch_policy.yaml: *No copyright* UNKNOWN
./examples/policies/deletion_policy.yaml: *No copyright* UNKNOWN
./examples/policies/health_policy_event.yaml: *No copyright* UNKNOWN
./examples/policies/health_policy_poll.yaml: *No copyright* UNKNOWN
./examples/policies/lb_policy.yaml: *No copyright* UNKNOWN
./examples/policies/placement_region.yaml: *No copyright* UNKNOWN
./examples/policies/placement_zone.yaml: *No copyright* UNKNOWN
./examples/policies/scaling_policy.yaml: *No copyright* UNKNOWN
./examples/profiles/README.rst: *No copyright* UNKNOWN
./rally-jobs/plugins/senlin_plugin.py: *No copyright* Apache (v2.0)
./releasenotes/notes/action-policy-optimization-06ea45eb3dcbe33a.yaml: *No copyright* UNKNOWN
./releasenotes/notes/affinity-policy-fix-72ae92dc8ffcff00.yaml: *No copyright* UNKNOWN
./releasenotes/notes/api-ref-fixes-19bc963430c32ecf.yaml: *No copyright* UNKNOWN
./releasenotes/notes/az-info-9344b8d54c0b2665.yaml: *No copyright* UNKNOWN
./releasenotes/notes/batch-scheduling-ca5d98d41fc72973.yaml: *No copyright* UNKNOWN
./releasenotes/notes/capacity-calculation-4fd389ff12107dfb.yaml: *No copyright* UNKNOWN
./releasenotes/notes/clean-actions-for-cluster-node-438ca5268e7fd258.yaml: *No copyright* UNKNOWN
./releasenotes/notes/cluster-check-interval-b01e8140cc83760e.yaml: *No copyright* UNKNOWN
./releasenotes/notes/cluster-collect-90e460c7bfede347.yaml: *No copyright* UNKNOWN
./releasenotes/notes/cluster-delete-conflict-94261706eb29e9bb.yaml: *No copyright* UNKNOWN
./releasenotes/notes/cluster-desired-capacity-d876347f69b04b4f.yaml: *No copyright* UNKNOWN
./releasenotes/notes/cluster-node-dependents-3bdbebd773d276d1.yaml: *No copyright* UNKNOWN
./releasenotes/notes/cluster-node-status-e7fced162b415452.yaml: *No copyright* UNKNOWN
./releasenotes/notes/cluster-ops-433a5aa608a0eb7f.yaml: *No copyright* UNKNOWN
./releasenotes/notes/cluster-recover-d87d429873b376db.yaml: *No copyright* UNKNOWN
./releasenotes/notes/cluster-status-update-dd9133092aef05ab.yaml: *No copyright* UNKNOWN
./releasenotes/notes/compute-instance-fencing-63b931cdf35b127c.yaml: *No copyright* UNKNOWN
./releasenotes/notes/config-doc-cb8b37e360422301.yaml: *No copyright* UNKNOWN
./releasenotes/notes/container-ops-e57d096742202206.yaml: *No copyright* UNKNOWN
./releasenotes/notes/container-profile-152bf2908c70ffad.yaml: *No copyright* UNKNOWN
./releasenotes/notes/db-action-retries-d471fe85b4510afd.yaml: *No copyright* UNKNOWN
./releasenotes/notes/delete-batch-a16ee5ed2512eab7.yaml: *No copyright* UNKNOWN
./releasenotes/notes/deletion-policy-11bcb7c0e90bbfcc.yaml: *No copyright* UNKNOWN
./releasenotes/notes/deletion-policy-node-delete-dc70da377b2a4f77.yaml: *No copyright* UNKNOWN
./releasenotes/notes/destroy-nodes-after-remove-37bffdc35a9b7a96.yaml: *No copyright* UNKNOWN
./releasenotes/notes/doc-fixes-cd8c7006f8c66387.yaml: *No copyright* UNKNOWN
./releasenotes/notes/doc-fixes-e60bb1a486f67e0c.yaml: *No copyright* UNKNOWN
./releasenotes/notes/drop-py34-support-21e20efb9bf0b326.yaml: *No copyright* UNKNOWN
./releasenotes/notes/dynamic-timer-67f053499f4b32e2.yaml: *No copyright* UNKNOWN
./releasenotes/notes/enforce-multi-tenancy-ee27b9bfec7ba405.yaml: *No copyright* UNKNOWN
./releasenotes/notes/error-messages-bd8b5a6d12e2c4af.yaml: *No copyright* UNKNOWN
./releasenotes/notes/event-for-derived-actions-8bd44367fa683dbc.yaml: *No copyright* UNKNOWN
./releasenotes/notes/event-list-b268bb778efa9ee1.yaml: *No copyright* UNKNOWN
./releasenotes/notes/event-purge-db868a063e18eafb.yaml: *No copyright* UNKNOWN
./releasenotes/notes/event-table-change-dcb42c8b6d145fec.yaml: *No copyright* UNKNOWN
./releasenotes/notes/fix-action-triggering-e880b02234028315.yaml: *No copyright* UNKNOWN
./releasenotes/notes/fix-cluster-index-ae0060b6337d6d55.yaml: *No copyright* UNKNOWN
./releasenotes/notes/fix-cooldown-5082711989ecd536.yaml: *No copyright* UNKNOWN
./releasenotes/notes/fix-db-deadlock-1d2bdb9ce785734a.yaml: *No copyright* UNKNOWN
./releasenotes/notes/fix-delete-apis-bf9f47b5fcf8f3e6.yaml: *No copyright* UNKNOWN
./releasenotes/notes/fix-desired-when-omitted-e7ffc0aa72ab8cc9.yaml: *No copyright* UNKNOWN
./releasenotes/notes/fix-dup-of-action-dump-0b95a07adf3ccdba.yaml: *No copyright* UNKNOWN
./releasenotes/notes/fix-health-mgr-opts-99898614f37c5d74.yaml: *No copyright* UNKNOWN
./releasenotes/notes/fix-network-error-handling-e78da90b6bc2319c.yaml: *No copyright* UNKNOWN
./releasenotes/notes/fix-node-recover-5af129bf0688577d.yaml: *No copyright* UNKNOWN
./releasenotes/notes/fix-node-status-for-lb-fc7714da09bec2fb.yaml: *No copyright* UNKNOWN
./releasenotes/notes/fix-recover-trigger-749600f500f7bf4a.yaml: *No copyright* UNKNOWN
./releasenotes/notes/fix-registry-claim-5421dca1ed9b0783.yaml: *No copyright* UNKNOWN
./releasenotes/notes/fix-tag-for-stacks-2ef70be061e80253.yaml: *No copyright* UNKNOWN
./releasenotes/notes/forbid-cluster-deletion-a8b0f55aaf0aa106.yaml: *No copyright* UNKNOWN
./releasenotes/notes/gc-for-dead-engine-2246c714edc9a2df.yaml: *No copyright* UNKNOWN
./releasenotes/notes/health-check-interval-b3850c072600bfdf.yaml: *No copyright* UNKNOWN
./releasenotes/notes/health-lb-polling-32d83803c77cc1d8.yaml: *No copyright* UNKNOWN
./releasenotes/notes/health-manager-listener-8ddbe169e510031b.yaml: *No copyright* UNKNOWN
./releasenotes/notes/health-policy-actions-936db8bc3ed08aec.yaml: *No copyright* UNKNOWN
./releasenotes/notes/health-policy-properties-056d5b4aa63312c9.yaml: *No copyright* UNKNOWN
./releasenotes/notes/health-policy-suspend-7aa33fc981c0f2c9.yaml: *No copyright* UNKNOWN
./releasenotes/notes/health-reboot-9f74c263f7fb6767.yaml: *No copyright* UNKNOWN
./releasenotes/notes/heat-listener-b908d0988840e1f3.yaml: *No copyright* UNKNOWN
./releasenotes/notes/keystone-conformance-4e729da9e88b4fb3.yaml: *No copyright* UNKNOWN
./releasenotes/notes/lb-node-actions-95545338ae622f5c.yaml: *No copyright* UNKNOWN
./releasenotes/notes/lb-policy-02782a1b98142742.yaml: *No copyright* UNKNOWN
./releasenotes/notes/lb-support-to-recover-8f822d3c2665e225.yaml: *No copyright* UNKNOWN
./releasenotes/notes/lb-timeout-option-990ba1f359b5daab.yaml: *No copyright* UNKNOWN
./releasenotes/notes/lock-break-for-dead-service-0abd3d3ea333622c.yaml: *No copyright* UNKNOWN
./releasenotes/notes/message-receiver-3432826515f8e70c.yaml: *No copyright* UNKNOWN
./releasenotes/notes/metadata-query-profile-9c45d99db7b30207.yaml: *No copyright* UNKNOWN
./releasenotes/notes/more-policy-validation-ace6a4f890b2a500.yaml: *No copyright* UNKNOWN
./releasenotes/notes/more-server-operations-dd77e83b705c28f0.yaml: *No copyright* UNKNOWN
./releasenotes/notes/new-api-doc-f21eb0a9f53d7643.yaml: *No copyright* UNKNOWN
./releasenotes/notes/node-action-logic-4d3e94818cccaa3e.yaml: *No copyright* UNKNOWN
./releasenotes/notes/node-check-50d4b67796e17afb.yaml: *No copyright* UNKNOWN
./releasenotes/notes/node-check-before-recover-abf887a39ab0d355.yaml: *No copyright* UNKNOWN
./releasenotes/notes/node-create-affinity-ec126ccd3e9e0957.yaml: *No copyright* UNKNOWN
./releasenotes/notes/node-create-az-d886dea98a25229f.yaml: *No copyright* UNKNOWN
./releasenotes/notes/node-create-region-0cbac0918c703e27.yaml: *No copyright* UNKNOWN
./releasenotes/notes/node-op-api-a7bede34c51854ee.yaml: *No copyright* UNKNOWN
./releasenotes/notes/node-ops-115d9d64f6e261db.yaml: *No copyright* UNKNOWN
./releasenotes/notes/node-update-timestamp-43b9639e22267598.yaml: *No copyright* UNKNOWN
./releasenotes/notes/non-operation-recover-cf0f3c0ac62bb0f3.yaml: *No copyright* UNKNOWN
./releasenotes/notes/notification-operations-c7bdaa9b56e5011f.yaml: *No copyright* UNKNOWN
./releasenotes/notes/notification-support-a7e2ebc816bb4009.yaml: *No copyright* UNKNOWN
./releasenotes/notes/notification-transport-ae49e9cb1813cd96.yaml: *No copyright* UNKNOWN
./releasenotes/notes/nova-az-fccf8db758642d34.yaml: *No copyright* UNKNOWN
./releasenotes/notes/nova-metadata-fix-89b7a2e06c3ce59f.yaml: *No copyright* UNKNOWN
./releasenotes/notes/nova-server-addresses-fd8afddc3fb36a0c.yaml: *No copyright* UNKNOWN
./releasenotes/notes/nova-server-validation-60612c1185738104.yaml: *No copyright* UNKNOWN
./releasenotes/notes/nova-server-validation-d36dbcf64fb90a43.yaml: *No copyright* UNKNOWN
./releasenotes/notes/nova-update-opt-7372e4d189e483aa.yaml: *No copyright* UNKNOWN
./releasenotes/notes/nova-update-validation-dca7de984c2071d1.yaml: *No copyright* UNKNOWN
./releasenotes/notes/ocata-2-c2e184a0b76231e8.yaml: *No copyright* UNKNOWN
./releasenotes/notes/options-shuffled-29c6cfac72aaf8ff.yaml: *No copyright* UNKNOWN
./releasenotes/notes/oslo-versioned-object-support-cc9463490306c26f.yaml: *No copyright* UNKNOWN
./releasenotes/notes/param-check-cluster-update-58d4712a33f74c6e.yaml: *No copyright* UNKNOWN
./releasenotes/notes/path-check-collect-1e542762cbcd65d2.yaml: *No copyright* UNKNOWN
./releasenotes/notes/policy-enabling-61d0c38aecf314eb.yaml: *No copyright* UNKNOWN
./releasenotes/notes/policy-performance-4d2fa57ccc45bbf1.yaml: *No copyright* UNKNOWN
./releasenotes/notes/policy-validate-04cbc74d2c025fcc.yaml: *No copyright* UNKNOWN
./releasenotes/notes/policy-validation-477a103aa83835f9.yaml: *No copyright* UNKNOWN
./releasenotes/notes/profile-only-update-5cdb3ae46a8139a8.yaml: *No copyright* UNKNOWN
./releasenotes/notes/profile-type-ops-1f0f2e6e6b5b1999.yaml: *No copyright* UNKNOWN
./releasenotes/notes/profile-validate-45a9bc520880bc6b.yaml: *No copyright* UNKNOWN
./releasenotes/notes/receiver-create-check-2225f536f5150065.yaml: *No copyright* UNKNOWN
./releasenotes/notes/receiver-create-trust-bd5fdeb059e68330.yaml: *No copyright* UNKNOWN
./releasenotes/notes/receiver-filter-by-user-ab35a2ab8e2690d1.yaml: *No copyright* UNKNOWN
./releasenotes/notes/remove-bdm-v1-4533677f3bca3c5d.yaml: *No copyright* UNKNOWN
./releasenotes/notes/resize-params-ab4942dc11f05d9a.yaml: *No copyright* UNKNOWN
./releasenotes/notes/scaling-policy-validation-e2a1d3049e03c316.yaml: *No copyright* UNKNOWN
./releasenotes/notes/scheduler-enhancement-09f86efe4dde4051.yaml: *No copyright* UNKNOWN
./releasenotes/notes/secure-password-e60243ae2befbbf6.yaml: *No copyright* UNKNOWN
./releasenotes/notes/senlin-osprofiler-fc8cb7161bdb1a6e.yaml: *No copyright* UNKNOWN
./releasenotes/notes/server-image-id-27c1619fa818c6a0.yaml: *No copyright* UNKNOWN
./releasenotes/notes/service-cleanup-afacddfacd7b4dcd.yaml: *No copyright* UNKNOWN
./releasenotes/notes/service-status-report-625bc25b89907e07.yaml: *No copyright* UNKNOWN
./releasenotes/notes/setup-script-648e9bfb89bb6255.yaml: *No copyright* UNKNOWN
./releasenotes/notes/support-status-f7383a53ddcae908.yaml: *No copyright* UNKNOWN
./releasenotes/notes/tempest-api-test-support-c86091a7ba5fb789.yaml: *No copyright* UNKNOWN
./releasenotes/notes/tempest-functional-test-383dad4d9acff97e.yaml: *No copyright* UNKNOWN
./releasenotes/notes/template-url-19075b68d9a35a80.yaml: *No copyright* UNKNOWN
./releasenotes/notes/tools-setup-d73e3298328c5355.yaml: *No copyright* UNKNOWN
./releasenotes/notes/versioned-rpc-requests-2df5d878c279e933.yaml: *No copyright* UNKNOWN
./releasenotes/notes/zaqar-support-470e824b7737e939.yaml: *No copyright* UNKNOWN
./releasenotes/source/conf.py: *No copyright* Apache (v2.0) GENERATED FILE
./releasenotes/source/index.rst: *No copyright* Apache (v2.0)
./releasenotes/source/mitaka.rst: *No copyright* UNKNOWN
./releasenotes/source/newton.rst: *No copyright* UNKNOWN
./releasenotes/source/ocata.rst: *No copyright* UNKNOWN
./releasenotes/source/unreleased.rst: *No copyright* UNKNOWN
./senlin/cmd/__init__.py: *No copyright* Apache (v2.0)
./senlin/cmd/api.py: *No copyright* Apache (v2.0)
./senlin/cmd/api_wsgi.py: *No copyright* Apache (v2.0)
./senlin/cmd/engine.py: *No copyright* Apache (v2.0)
./senlin/cmd/manage.py: *No copyright* Apache (v2.0)
./senlin/common/config.py: *No copyright* Apache (v2.0)
./senlin/common/constraints.py: *No copyright* Apache (v2.0)
./senlin/common/consts.py: *No copyright* Apache (v2.0)
./senlin/common/context.py: *No copyright* Apache (v2.0)
./senlin/common/exception.py: Apache (v2.0)
./senlin/common/i18n.py: Apache (v2.0)
./senlin/common/messaging.py: *No copyright* Apache (v2.0)
./senlin/common/policy.py: *No copyright* Apache (v2.0)
./senlin/common/profiler.py: *No copyright* Apache (v2.0)
./senlin/common/scaleutils.py: *No copyright* Apache (v2.0)
./senlin/common/schema.py: *No copyright* Apache (v2.0)
./senlin/common/utils.py: *No copyright* Apache (v2.0)
./senlin/db/api.py: *No copyright* Apache (v2.0)
./senlin/db/utils.py: *No copyright* Apache (v2.0)
./senlin/drivers/base.py: *No copyright* Apache (v2.0)
./senlin/engine/cluster.py: *No copyright* Apache (v2.0)
./senlin/engine/cluster_policy.py: *No copyright* Apache (v2.0)
./senlin/engine/dispatcher.py: *No copyright* Apache (v2.0)
./senlin/engine/environment.py: *No copyright* Apache (v2.0)
./senlin/engine/event.py: *No copyright* Apache (v2.0)
./senlin/engine/health_manager.py: *No copyright* Apache (v2.0)
./senlin/engine/node.py: *No copyright* Apache (v2.0)
./senlin/engine/parser.py: *No copyright* Apache (v2.0)
./senlin/engine/registry.py: *No copyright* Apache (v2.0)
./senlin/engine/scheduler.py: *No copyright* Apache (v2.0)
./senlin/engine/senlin_lock.py: *No copyright* Apache (v2.0)
./senlin/engine/service.py: *No copyright* Apache (v2.0)
./senlin/events/base.py: *No copyright* Apache (v2.0)
./senlin/events/database.py: *No copyright* Apache (v2.0)
./senlin/events/message.py: *No copyright* Apache (v2.0)
./senlin/hacking/checks.py: *No copyright* Apache (v2.0)
./senlin/objects/__init__.py: *No copyright* Apache (v2.0)
./senlin/objects/action.py: *No copyright* Apache (v2.0)
./senlin/objects/base.py: *No copyright* Apache (v2.0)
./senlin/objects/cluster.py: *No copyright* Apache (v2.0)
./senlin/objects/cluster_lock.py: *No copyright* Apache (v2.0)
./senlin/objects/cluster_policy.py: *No copyright* Apache (v2.0)
./senlin/objects/credential.py: *No copyright* Apache (v2.0)
./senlin/objects/dependency.py: *No copyright* Apache (v2.0)
./senlin/objects/event.py: *No copyright* Apache (v2.0)
./senlin/objects/fields.py: *No copyright* Apache (v2.0)
./senlin/objects/health_registry.py: *No copyright* Apache (v2.0)
./senlin/objects/node.py: *No copyright* Apache (v2.0)
./senlin/objects/node_lock.py: *No copyright* Apache (v2.0)
./senlin/objects/notification.py: *No copyright* Apache (v2.0)
./senlin/objects/policy.py: *No copyright* Apache (v2.0)
./senlin/objects/profile.py: *No copyright* Apache (v2.0)
./senlin/objects/receiver.py: *No copyright* Apache (v2.0)
./senlin/objects/service.py: *No copyright* Apache (v2.0)
./senlin/policies/affinity_policy.py: *No copyright* Apache (v2.0)
./senlin/policies/base.py: *No copyright* Apache (v2.0)
./senlin/policies/batch_policy.py: *No copyright* Apache (v2.0)
./senlin/policies/deletion_policy.py: *No copyright* Apache (v2.0)
./senlin/policies/health_policy.py: *No copyright* Apache (v2.0)
./senlin/policies/lb_policy.py: *No copyright* Apache (v2.0)
./senlin/policies/region_placement.py: *No copyright* Apache (v2.0)
./senlin/policies/scaling_policy.py: *No copyright* Apache (v2.0)
./senlin/policies/zone_placement.py: *No copyright* Apache (v2.0)
./senlin/profiles/base.py: *No copyright* Apache (v2.0)
./senlin/rpc/client.py: *No copyright* Apache (v2.0)
./api-ref/source/samples/action-get-response.json: *No copyright* UNKNOWN
./api-ref/source/samples/actions-list-response.json: *No copyright* UNKNOWN
./api-ref/source/samples/build-show-response.json: *No copyright* UNKNOWN
./api-ref/source/samples/cluster-add-nodes-request.json: *No copyright* UNKNOWN
./api-ref/source/samples/cluster-attach-policy-request.json: *No copyright* UNKNOWN
./api-ref/source/samples/cluster-attrs-list-response.json: *No copyright* UNKNOWN
./api-ref/source/samples/cluster-check-request.json: *No copyright* UNKNOWN
./api-ref/source/samples/cluster-create-request.json: *No copyright* UNKNOWN
./api-ref/source/samples/cluster-create-response.json: *No copyright* UNKNOWN
./api-ref/source/samples/cluster-del-nodes-request.json: *No copyright* UNKNOWN
./api-ref/source/samples/cluster-detach-policy-request.json: *No copyright* UNKNOWN
./api-ref/source/samples/cluster-list-response.json: *No copyright* UNKNOWN
./api-ref/source/samples/cluster-operation-request.json: *No copyright* UNKNOWN
./api-ref/source/samples/cluster-policies-list-response.json: *No copyright* UNKNOWN
./api-ref/source/samples/cluster-policy-show-response.json: *No copyright* UNKNOWN
./api-ref/source/samples/cluster-recover-request.json: *No copyright* UNKNOWN
./api-ref/source/samples/cluster-replace-nodes-request.json: *No copyright* UNKNOWN
./api-ref/source/samples/cluster-resize-request.json: *No copyright* UNKNOWN
./api-ref/source/samples/cluster-scale-in-request.json: *No copyright* UNKNOWN
./api-ref/source/samples/cluster-scale-out-request.json: *No copyright* UNKNOWN
./api-ref/source/samples/cluster-show-response.json: *No copyright* UNKNOWN
./api-ref/source/samples/cluster-update-policy-request.json: *No copyright* UNKNOWN
./api-ref/source/samples/cluster-update-request.json: *No copyright* UNKNOWN
./api-ref/source/samples/cluster-update-response.json: *No copyright* UNKNOWN
./api-ref/source/samples/clusters-list-response.json: *No copyright* UNKNOWN
./api-ref/source/samples/event-show-response.json: *No copyright* UNKNOWN
./api-ref/source/samples/events-list-response.json: *No copyright* UNKNOWN
./api-ref/source/samples/node-adopt-preview-request.json: *No copyright* UNKNOWN
./api-ref/source/samples/node-adopt-preview-response.json: *No copyright* UNKNOWN
./api-ref/source/samples/node-adopt-request.json: *No copyright* UNKNOWN
./api-ref/source/samples/node-adopt-response.json: *No copyright* UNKNOWN
./api-ref/source/samples/node-check-request.json: *No copyright* UNKNOWN
./api-ref/source/samples/node-create-request.json: *No copyright* UNKNOWN
./api-ref/source/samples/node-create-response.json: *No copyright* UNKNOWN
./api-ref/source/samples/node-list-response.json: *No copyright* UNKNOWN
./api-ref/source/samples/node-operation-request.json: *No copyright* UNKNOWN
./api-ref/source/samples/node-recover-request.json: *No copyright* UNKNOWN
./api-ref/source/samples/node-show-response.json: *No copyright* UNKNOWN
./api-ref/source/samples/node-update-request.json: *No copyright* UNKNOWN
./api-ref/source/samples/policy-create-request.json: *No copyright* UNKNOWN
./api-ref/source/samples/policy-create-response.json: *No copyright* UNKNOWN
./api-ref/source/samples/policy-list-response.json: *No copyright* UNKNOWN
./api-ref/source/samples/policy-show-response.json: *No copyright* UNKNOWN
./api-ref/source/samples/policy-type-show-response-v1.5.json: *No copyright* UNKNOWN
./api-ref/source/samples/policy-type-show-response.json: *No copyright* UNKNOWN
./api-ref/source/samples/policy-types-list-response-v1.5.json: *No copyright* UNKNOWN
./api-ref/source/samples/policy-types-list-response.json: *No copyright* UNKNOWN
./api-ref/source/samples/policy-update-request.json: *No copyright* UNKNOWN
./api-ref/source/samples/policy-update-response.json: *No copyright* UNKNOWN
./api-ref/source/samples/policy-validate-request.json: *No copyright* UNKNOWN
./api-ref/source/samples/policy-validate-response.json: *No copyright* UNKNOWN
./api-ref/source/samples/profile-create-request.json: *No copyright* UNKNOWN
./api-ref/source/samples/profile-create-response.json: *No copyright* UNKNOWN
./api-ref/source/samples/profile-list-response.json: *No copyright* UNKNOWN
./api-ref/source/samples/profile-show-response.json: *No copyright* UNKNOWN
./api-ref/source/samples/profile-type-ops-response.json: *No copyright* UNKNOWN
./api-ref/source/samples/profile-type-show-response-v1.5.json: *No copyright* UNKNOWN
./api-ref/source/samples/profile-type-show-response.json: *No copyright* UNKNOWN
./api-ref/source/samples/profile-types-list-response-v1.5.json: *No copyright* UNKNOWN
./api-ref/source/samples/profile-types-list-response.json: *No copyright* UNKNOWN
./api-ref/source/samples/profile-update-request.json: *No copyright* UNKNOWN
./api-ref/source/samples/profile-update-response.json: *No copyright* UNKNOWN
./api-ref/source/samples/profile-validate-request.json: *No copyright* UNKNOWN
./api-ref/source/samples/profile-validate-response.json: *No copyright* UNKNOWN
./api-ref/source/samples/receiver-create-request.json: *No copyright* UNKNOWN
./api-ref/source/samples/receiver-create-response.json: *No copyright* UNKNOWN
./api-ref/source/samples/receiver-show-response.json: *No copyright* UNKNOWN
./api-ref/source/samples/receiver-update-request.json: *No copyright* UNKNOWN
./api-ref/source/samples/receiver-update-response.json: *No copyright* UNKNOWN
./api-ref/source/samples/receivers-list-response.json: *No copyright* UNKNOWN
./api-ref/source/samples/services-list-response.json: *No copyright* UNKNOWN
./api-ref/source/samples/version-show-response.json: *No copyright* UNKNOWN
./api-ref/source/samples/versions-list-response.json: *No copyright* UNKNOWN
./contrib/vdu/examples/vdu.yaml: *No copyright* UNKNOWN
./contrib/vdu/vdu/server.py: *No copyright* Apache (v2.0)
./doc/source/developer/action.rst: *No copyright* Apache (v2.0)
./doc/source/developer/api_microversion.rst: *No copyright* Apache (v2.0)
./doc/source/developer/authorization.rst: *No copyright* Apache (v2.0)
./doc/source/developer/cluster.rst: *No copyright* Apache (v2.0)
./doc/source/developer/event_dispatcher.rst: *No copyright* Apache (v2.0)
./doc/source/developer/node.rst: *No copyright* Apache (v2.0)
./doc/source/developer/osprofiler.rst: *No copyright* Apache (v2.0)
./doc/source/developer/plugin_guide.rst: *No copyright* Apache (v2.0)
./doc/source/developer/policy.rst: *No copyright* Apache (v2.0)
./doc/source/developer/policy_type.rst: *No copyright* Apache (v2.0)
./doc/source/developer/profile.rst: *No copyright* Apache (v2.0)
./doc/source/developer/profile_type.rst: *No copyright* Apache (v2.0)
./doc/source/developer/receiver.rst: *No copyright* Apache (v2.0)
./doc/source/developer/reviews.rst: *No copyright* Apache (v2.0)
./doc/source/developer/testing.rst: *No copyright* Apache (v2.0)
./doc/source/man/index.rst: *No copyright* UNKNOWN
./doc/source/man/senlin-api.rst: *No copyright* UNKNOWN
./doc/source/man/senlin-engine.rst: *No copyright* UNKNOWN
./doc/source/man/senlin-manage.rst: *No copyright* UNKNOWN
./doc/source/scenarios/affinity.rst: *No copyright* Apache (v2.0)
./doc/source/scenarios/autoscaling_ceilometer.rst: *No copyright* Apache (v2.0)
./doc/source/scenarios/autoscaling_heat.rst: *No copyright* Apache (v2.0)
./doc/source/scenarios/autoscaling_overview.rst: *No copyright* Apache (v2.0)
./doc/source/scenarios/ex_lbas.yaml: *No copyright* UNKNOWN
./doc/source/tutorial/autoscaling.rst: *No copyright* Apache (v2.0)
./doc/source/tutorial/basics.rst: *No copyright* Apache (v2.0)
./doc/source/tutorial/heat.rst: *No copyright* Apache (v2.0)
./doc/source/tutorial/policies.rst: *No copyright* Apache (v2.0)
./doc/source/tutorial/receivers.rst: *No copyright* Apache (v2.0)
./doc/source/user/actions.rst: *No copyright* Apache (v2.0)
./doc/source/user/bindings.rst: *No copyright* Apache (v2.0)
./doc/source/user/clusters.rst: *No copyright* Apache (v2.0)
./doc/source/user/events.rst: *No copyright* Apache (v2.0) GENERATED FILE
./doc/source/user/membership.rst: *No copyright* Apache (v2.0)
./doc/source/user/nodes.rst: *No copyright* Apache (v2.0)
./doc/source/user/policies.rst: *No copyright* Apache (v2.0)
./doc/source/user/policy_types.rst: *No copyright* Apache (v2.0)
./doc/source/user/profile_types.rst: *No copyright* Apache (v2.0)
./doc/source/user/profiles.rst: *No copyright* Apache (v2.0)
./doc/source/user/receivers.rst: *No copyright* Apache (v2.0)
./doc/specs/approved/README.rst: *No copyright* UNKNOWN
./doc/specs/approved/container-cluster.rst: *No copyright* Apache (v2.0)
./doc/specs/approved/generic-event.rst: *No copyright* CC by (v3.0) GENERATED FILE
./doc/specs/rejected/README.rst: *No copyright* UNKNOWN
./examples/policies/WIP/batching_1_1_0.yaml: *No copyright* UNKNOWN
./examples/policies/WIP/health_policy_lb.yaml: *No copyright* UNKNOWN
./examples/policies/WIP/lb_policy_aws.spec: *No copyright* UNKNOWN
./examples/profiles/docker_container/docker_basic.yaml: *No copyright* UNKNOWN
./examples/profiles/nova_server/cirros_basic.yaml: *No copyright* UNKNOWN
./senlin/api/common/serializers.py: *No copyright* Apache (v2.0)
./senlin/api/common/util.py: *No copyright* Apache (v2.0)
./senlin/api/common/version_request.py: *No copyright* Apache (v2.0)
./senlin/api/common/versioned_method.py: *No copyright* Apache (v2.0)
./senlin/api/common/wsgi.py: *No copyright* Apache (v2.0)
./senlin/api/middleware/__init__.py: *No copyright* Apache (v2.0)
./senlin/api/middleware/context.py: *No copyright* Apache (v2.0)
./senlin/api/middleware/fault.py: *No copyright* Apache (v2.0)
./senlin/api/middleware/trust.py: *No copyright* Apache (v2.0)
./senlin/api/middleware/version_negotiation.py: *No copyright* Apache (v2.0)
./senlin/api/middleware/webhook.py: *No copyright* Apache (v2.0)
./senlin/api/openstack/history.rst: *No copyright* UNKNOWN
./senlin/api/openstack/versions.py: *No copyright* Apache (v2.0)
./senlin/db/sqlalchemy/api.py: *No copyright* Apache (v2.0)
./senlin/db/sqlalchemy/migration.py: *No copyright* Apache (v2.0)
./senlin/db/sqlalchemy/models.py: *No copyright* Apache (v2.0)
./senlin/db/sqlalchemy/types.py: *No copyright* Apache (v2.0)
./senlin/db/sqlalchemy/utils.py: *No copyright* Apache (v2.0)
./senlin/drivers/container/docker_v1.py: *No copyright* Apache (v2.0)
./senlin/drivers/openstack/__init__.py: *No copyright* Apache (v2.0)
./senlin/drivers/openstack/ceilometer_v2.py: *No copyright* Apache (v2.0)
./senlin/drivers/openstack/cinder_v2.py: *No copyright* Apache (v2.0)
./senlin/drivers/openstack/glance_v2.py: *No copyright* Apache (v2.0)
./senlin/drivers/openstack/heat_v1.py: *No copyright* Apache (v2.0)
./senlin/drivers/openstack/keystone_v3.py: *No copyright* Apache (v2.0)
./senlin/drivers/openstack/lbaas.py: *No copyright* Apache (v2.0)
./senlin/drivers/openstack/mistral_v2.py: *No copyright* Apache (v2.0)
./senlin/drivers/openstack/neutron_v2.py: *No copyright* Apache (v2.0)
./senlin/drivers/openstack/nova_v2.py: *No copyright* Apache (v2.0)
./senlin/drivers/openstack/sdk.py: *No copyright* Apache (v2.0)
./senlin/drivers/openstack/zaqar_v2.py: *No copyright* Apache (v2.0)
./senlin/engine/actions/base.py: *No copyright* Apache (v2.0)
./senlin/engine/actions/cluster_action.py: *No copyright* Apache (v2.0)
./senlin/engine/actions/custom_action.py: *No copyright* Apache (v2.0)
./senlin/engine/actions/node_action.py: *No copyright* Apache (v2.0)
./senlin/engine/receivers/base.py: *No copyright* Apache (v2.0)
./senlin/engine/receivers/message.py: *No copyright* Apache (v2.0)
./senlin/engine/receivers/webhook.py: *No copyright* Apache (v2.0)
./senlin/objects/requests/actions.py: *No copyright* Apache (v2.0)
./senlin/objects/requests/build_info.py: *No copyright* Apache (v2.0)
./senlin/objects/requests/cluster_policies.py: *No copyright* Apache (v2.0)
./senlin/objects/requests/clusters.py: *No copyright* Apache (v2.0)
./senlin/objects/requests/credentials.py: *No copyright* Apache (v2.0)
./senlin/objects/requests/events.py: *No copyright* Apache (v2.0)
./senlin/objects/requests/nodes.py: *No copyright* Apache (v2.0)
./senlin/objects/requests/policies.py: *No copyright* Apache (v2.0)
./senlin/objects/requests/policy_type.py: *No copyright* Apache (v2.0)
./senlin/objects/requests/profile_type.py: *No copyright* Apache (v2.0)
./senlin/objects/requests/profiles.py: *No copyright* Apache (v2.0)
./senlin/objects/requests/receivers.py: *No copyright* Apache (v2.0)
./senlin/objects/requests/webhooks.py: *No copyright* Apache (v2.0)
./senlin/profiles/container/docker.py: *No copyright* Apache (v2.0)
./senlin/tests/drivers/README.rst: *No copyright* UNKNOWN
./senlin/tests/tempest/README.rst: *No copyright* UNKNOWN
./senlin/tests/tempest/base.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/config.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/plugin.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/post_test_hook.sh: *No copyright* Apache (v2.0)
./senlin/tests/tempest/pre_test_hook.sh: *No copyright* Apache (v2.0)
./senlin/tests/unit/__init__.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/fakes.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/test_common_constraints.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/test_common_context.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/test_common_exception.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/test_common_messaging.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/test_common_policy.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/test_common_scaleutils.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/test_common_schema.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/test_common_utils.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/test_hacking.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/test_rpc_client.py: *No copyright* Apache (v2.0)
./doc/source/developer/policies/affinity_v1.rst: *No copyright* Apache (v2.0)
./doc/source/developer/policies/deletion_v1.rst: *No copyright* Apache (v2.0)
./doc/source/developer/policies/health_v1.rst: *No copyright* Apache (v2.0)
./doc/source/developer/policies/load_balance_v1.rst: *No copyright* Apache (v2.0)
./doc/source/developer/policies/region_v1.rst: *No copyright* Apache (v2.0)
./doc/source/developer/policies/scaling_v1.rst: *No copyright* Apache (v2.0)
./doc/source/developer/policies/zone_v1.rst: *No copyright* Apache (v2.0)
./doc/source/user/policy_types/affinity.rst: *No copyright* Apache (v2.0)
./doc/source/user/policy_types/batch.rst: *No copyright* Apache (v2.0)
./doc/source/user/policy_types/deletion.rst: *No copyright* Apache (v2.0)
./doc/source/user/policy_types/health.rst: *No copyright* Apache (v2.0)
./doc/source/user/policy_types/load_balancing.rst: *No copyright* Apache (v2.0)
./doc/source/user/policy_types/region_placement.rst: *No copyright* Apache (v2.0)
./doc/source/user/policy_types/scaling.rst: *No copyright* Apache (v2.0)
./doc/source/user/policy_types/zone_placement.rst: *No copyright* Apache (v2.0)
./examples/profiles/heat_stack/nova_server/heat_stack_nova_server.yaml: *No copyright* UNKNOWN
./examples/profiles/heat_stack/nova_server/nova_server_template.yaml: *No copyright* UNKNOWN
./examples/profiles/heat_stack/random_string/heat_stack_random_string.yaml: *No copyright* UNKNOWN
./examples/profiles/heat_stack/random_string/random_string_template.yaml: *No copyright* UNKNOWN
./senlin/api/openstack/v1/actions.py: *No copyright* Apache (v2.0)
./senlin/api/openstack/v1/build_info.py: *No copyright* Apache (v2.0)
./senlin/api/openstack/v1/cluster_policies.py: *No copyright* Apache (v2.0)
./senlin/api/openstack/v1/clusters.py: *No copyright* Apache (v2.0)
./senlin/api/openstack/v1/events.py: *No copyright* Apache (v2.0)
./senlin/api/openstack/v1/nodes.py: *No copyright* Apache (v2.0)
./senlin/api/openstack/v1/policies.py: *No copyright* Apache (v2.0)
./senlin/api/openstack/v1/policy_types.py: *No copyright* Apache (v2.0)
./senlin/api/openstack/v1/profile_types.py: *No copyright* Apache (v2.0)
./senlin/api/openstack/v1/profiles.py: *No copyright* Apache (v2.0)
./senlin/api/openstack/v1/receivers.py: *No copyright* Apache (v2.0)
./senlin/api/openstack/v1/router.py: *No copyright* Apache (v2.0)
./senlin/api/openstack/v1/services.py: *No copyright* Apache (v2.0)
./senlin/api/openstack/v1/version.py: *No copyright* Apache (v2.0)
./senlin/api/openstack/v1/webhooks.py: *No copyright* Apache (v2.0)
./senlin/db/sqlalchemy/migrate_repo/README: *No copyright* UNKNOWN
./senlin/db/sqlalchemy/migrate_repo/manage.py: *No copyright* Apache (v2.0)
./senlin/db/sqlalchemy/migrate_repo/migrate.cfg: *No copyright* UNKNOWN
./senlin/locale/zh_CN/LC_MESSAGES/senlin-log-critical.po: *No copyright* UNKNOWN
./senlin/locale/zh_CN/LC_MESSAGES/senlin-log-error.po: *No copyright* UNKNOWN
./senlin/locale/zh_CN/LC_MESSAGES/senlin-log-warning.po: *No copyright* UNKNOWN
./senlin/profiles/os/heat/stack.py: *No copyright* Apache (v2.0)
./senlin/profiles/os/nova/server.py: *No copyright* Apache (v2.0)
./senlin/tests/drivers/openstack/__init__.py: *No copyright* Apache (v2.0)
./senlin/tests/drivers/openstack/heat_v1.py: *No copyright* Apache (v2.0)
./senlin/tests/drivers/openstack/lbaas.py: *No copyright* Apache (v2.0)
./senlin/tests/drivers/openstack/mistral_v2.py: *No copyright* Apache (v2.0)
./senlin/tests/drivers/openstack/neutron_v2.py: *No copyright* Apache (v2.0)
./senlin/tests/drivers/openstack/nova_v2.py: *No copyright* Apache (v2.0)
./senlin/tests/drivers/openstack/sdk.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/base.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/common/clustering_client.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/common/compute_client.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/common/constants.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/common/messaging_client.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/common/network_client.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/common/utils.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/functional/base.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/functional/test_batch_policy.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/functional/test_cluster_basic.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/functional/test_cluster_membership.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/functional/test_cluster_scaling.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/functional/test_lb_policy.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/functional/test_node_basic.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/functional/test_receiver.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/functional/test_scaling_policy.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/integration/base.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/integration/test_heat_stack_cluster.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/integration/test_nova_server_cluster.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/integration/test_receiver.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/api/shared.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/common/base.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/common/utils.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/db/shared.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/db/test_action_api.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/db/test_cluster_api.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/db/test_cluster_policy_api.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/db/test_cred_api.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/db/test_event_api.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/db/test_lock_api.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/db/test_node_api.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/db/test_policy_api.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/db/test_profile_api.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/db/test_receiver_api.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/db/test_registry_api.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/db/test_service_api.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/db/test_sqlalchemy_types.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/db/test_sqlalchemy_utils.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/drivers/test_ceilometer_v2.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/drivers/test_cinder_v2.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/drivers/test_docker_v1.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/drivers/test_driver.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/drivers/test_glance_v2.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/drivers/test_heat_v1.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/drivers/test_keystone_v3.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/drivers/test_lbaas_driver.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/drivers/test_mistral_v2.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/drivers/test_neutron_v2_driver.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/drivers/test_nova_v2.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/drivers/test_sdk.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/drivers/test_zaqar_v2.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/test_cluster.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/test_cluster_policy.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/test_dispatcher.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/test_engine_parser.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/test_engine_startstop.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/test_environment.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/test_event.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/test_health_manager.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/test_node.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/test_registry.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/test_scheduler.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/test_senlin_lock.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/events/test_base.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/events/test_database.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/events/test_message.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/objects/test_action.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/objects/test_base.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/objects/test_cluster.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/objects/test_cluster_policy.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/objects/test_event.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/objects/test_fields.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/objects/test_health_registry.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/objects/test_node.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/objects/test_notification.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/objects/test_policy.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/objects/test_profile.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/objects/test_receiver.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/policies/test_affinity.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/policies/test_batch_policy.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/policies/test_deletion_policy.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/policies/test_health_policy.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/policies/test_lb_policy.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/policies/test_policy.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/policies/test_region_placement.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/policies/test_scaling_policy.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/policies/test_zone_placement.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/profiles/test_container_docker.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/profiles/test_heat_stack.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/profiles/test_nova_server.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/profiles/test_nova_server_update.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/profiles/test_nova_server_validate.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/profiles/test_profile_base.py: *No copyright* Apache (v2.0)
./senlin/db/sqlalchemy/migrate_repo/versions/001_first_version.py: *No copyright* Apache (v2.0)
./senlin/db/sqlalchemy/migrate_repo/versions/002_service_table.py: *No copyright* Apache (v2.0)
./senlin/db/sqlalchemy/migrate_repo/versions/003_action_tenant.py: *No copyright* Apache (v2.0)
./senlin/db/sqlalchemy/migrate_repo/versions/004_health_registry.py: *No copyright* Apache (v2.0)
./senlin/db/sqlalchemy/migrate_repo/versions/005_event_column_name.py: *No copyright* Apache (v2.0)
./senlin/db/sqlalchemy/migrate_repo/versions/006_node_cluster_dependents_column.py: *No copyright* Apache (v2.0)
./senlin/db/sqlalchemy/migrate_repo/versions/007_placeholder.py: *No copyright* Apache (v2.0)
./senlin/db/sqlalchemy/migrate_repo/versions/008_placeholder.py: *No copyright* Apache (v2.0)
./senlin/db/sqlalchemy/migrate_repo/versions/009_placeholder.py: *No copyright* Apache (v2.0)
./senlin/db/sqlalchemy/migrate_repo/versions/010_user_project_length.py: *No copyright* Apache (v2.0)
./senlin/db/sqlalchemy/migrate_repo/versions/011_registry_enable.py: *No copyright* Apache (v2.0)
./senlin/db/sqlalchemy/migrate_repo/versions/012_cluster_config.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/actions/test_action_list.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/actions/test_action_list_negative.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/actions/test_action_show.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/actions/test_action_show_negative.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/api_versions/test_api_version_show.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/api_versions/test_api_version_show_negative.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/api_versions/test_api_versions_list.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/build_info/test_build_info.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/cluster_policies/test_cluster_policy_list.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/cluster_policies/test_cluster_policy_list_negative.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/cluster_policies/test_cluster_policy_show.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/cluster_policies/test_cluster_policy_show_negative.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/clusters/test_cluster_action_negative.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/clusters/test_cluster_add_nodes.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/clusters/test_cluster_check.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/clusters/test_cluster_collect.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/clusters/test_cluster_create.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/clusters/test_cluster_create_negative.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/clusters/test_cluster_del_nodes.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/clusters/test_cluster_delete.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/clusters/test_cluster_delete_negative.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/clusters/test_cluster_list.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/clusters/test_cluster_list_negative.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/clusters/test_cluster_policy_attach.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/clusters/test_cluster_policy_detach.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/clusters/test_cluster_policy_update.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/clusters/test_cluster_recover.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/clusters/test_cluster_replace_nodes.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/clusters/test_cluster_resize.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/clusters/test_cluster_scale_in.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/clusters/test_cluster_scale_out.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/clusters/test_cluster_show.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/clusters/test_cluster_show_negative.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/clusters/test_cluster_update.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/clusters/test_cluster_update_negative.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/clusters/test_cluster_update_profile.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/events/test_event_list.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/events/test_event_list_negative.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/events/test_event_show.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/events/test_event_show_negative.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/nodes/test_node_action_negative.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/nodes/test_node_check.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/nodes/test_node_create.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/nodes/test_node_create_negative.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/nodes/test_node_delete.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/nodes/test_node_delete_negative.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/nodes/test_node_list.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/nodes/test_node_list_negative.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/nodes/test_node_operation.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/nodes/test_node_recover.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/nodes/test_node_show.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/nodes/test_node_show_negative.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/nodes/test_node_update.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/nodes/test_node_update_negative.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/nodes/test_node_update_profile.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/policies/test_policy_create.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/policies/test_policy_create_negative.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/policies/test_policy_delete.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/policies/test_policy_delete_negative.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/policies/test_policy_list.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/policies/test_policy_list_negative.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/policies/test_policy_show.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/policies/test_policy_show_negative.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/policies/test_policy_update.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/policies/test_policy_update_negative.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/policies/test_policy_validate.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/policies/test_policy_validate_negative.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/policy_types/test_policy_type_list.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/policy_types/test_policy_type_show.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/policy_types/test_policy_type_show_negative.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/profile_types/test_profile_type_list.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/profile_types/test_profile_type_show.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/profile_types/test_profile_type_show_negative.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/profiles/test_profile_create.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/profiles/test_profile_create_negative.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/profiles/test_profile_delete.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/profiles/test_profile_delete_negative.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/profiles/test_profile_list.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/profiles/test_profile_list_negative.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/profiles/test_profile_show.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/profiles/test_profile_show_negative.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/profiles/test_profile_update.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/profiles/test_profile_update_negative.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/profiles/test_profile_validate.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/profiles/test_profile_validate_negative.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/receivers/test_receiver_create.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/receivers/test_receiver_create_negative.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/receivers/test_receiver_delete.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/receivers/test_receiver_delete_negative.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/receivers/test_receiver_list.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/receivers/test_receiver_list_negative.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/receivers/test_receiver_show.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/receivers/test_receiver_show_negative.py: *No copyright* Apache (v2.0)
./senlin/tests/tempest/api/receivers/test_webhook_trigger.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/api/common/test_serializers.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/api/common/test_util.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/api/common/test_version_request.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/api/common/test_wsgi.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/api/middleware/test_context.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/api/middleware/test_fault.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/api/middleware/test_middleware_filters.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/api/middleware/test_trust.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/api/middleware/test_version_negotiation.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/api/middleware/test_webhook.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/api/openstack/test_versions.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/actions/test_action_base.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/actions/test_add_nodes.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/actions/test_attach_policy.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/actions/test_check.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/actions/test_cluster_action.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/actions/test_create.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/actions/test_custom_action.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/actions/test_del_nodes.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/actions/test_delete.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/actions/test_node_action.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/actions/test_operation.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/actions/test_recover.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/actions/test_replace_nodes.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/actions/test_resize.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/actions/test_scale_in.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/actions/test_scale_out.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/actions/test_update.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/actions/test_update_policy.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/actions/test_wait.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/receivers/test_message.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/receivers/test_receiver.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/receivers/test_webhook.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/service/test_actions.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/service/test_cluster_op.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/service/test_cluster_policies.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/service/test_clusters.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/service/test_credentials.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/service/test_events.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/service/test_nodes.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/service/test_policies.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/service/test_policy_types.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/service/test_profile_types.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/service/test_profiles.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/service/test_receivers.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/engine/service/test_webhooks.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/objects/requests/test_actions.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/objects/requests/test_cluster_policies.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/objects/requests/test_clusters.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/objects/requests/test_credentials.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/objects/requests/test_events.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/objects/requests/test_nodes.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/objects/requests/test_policies.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/objects/requests/test_policy_type.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/objects/requests/test_profile_type.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/objects/requests/test_profiles.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/objects/requests/test_receivers.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/objects/requests/test_webhooks.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/api/middleware/policy/check_admin.json: *No copyright* UNKNOWN
./senlin/tests/unit/api/middleware/policy/notallowed.json: *No copyright* UNKNOWN
./senlin/tests/unit/api/openstack/v1/test_actions.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/api/openstack/v1/test_buildinfo.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/api/openstack/v1/test_cluster_policies.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/api/openstack/v1/test_clusters.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/api/openstack/v1/test_events.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/api/openstack/v1/test_nodes.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/api/openstack/v1/test_policies.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/api/openstack/v1/test_policy_types.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/api/openstack/v1/test_profile_types.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/api/openstack/v1/test_profiles.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/api/openstack/v1/test_receivers.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/api/openstack/v1/test_router.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/api/openstack/v1/test_services.py: Apache (v2.0)
./senlin/tests/unit/api/openstack/v1/test_version.py: *No copyright* Apache (v2.0)
./senlin/tests/unit/api/openstack/v1/test_webhooks.py: *No copyright* Apache (v2.0)

The project is licensed using the Apache 2.0 license. I see some files are licensed using the Creative Commons Attribution 3.0 Unported License, but those are specs and I assume they will not be included in the package.

Comment 4 XueFeng Liu 2017-07-06 15:53:31 UTC
(In reply to Christopher Brown from comment #2)
> First stab at spec file. It has been about 7 years since I last played with
> spec files so please go easy. :)
> 
> Github project:
> 
> https://github.com/snecklifter/senlin-rdo-rpm
> 
> Spec file:
> 
> https://raw.githubusercontent.com/snecklifter/senlin-rdo-rpm/master/
> openstack-senlin.spec

great.
Maybe  the requires files need to be added?

pbr!=2.1.0,>=2.0.0 # Apache-2.0
Babel!=2.4.0,>=2.3.4 # BSD
docker>=2.0.0 # Apache-2.0
eventlet!=0.18.3,!=0.20.1,<0.21.0,>=0.18.2 # MIT
jsonpath-rw<2.0,>=1.2.0 # Apache-2.0
jsonschema!=2.5.0,<3.0.0,>=2.0.0 # MIT
keystoneauth1>=2.21.0 # Apache-2.0
keystonemiddleware>=4.12.0 # Apache-2.0
microversion-parse>=0.1.2 # Apache-2.0
openstacksdk>=0.9.17 # Apache-2.0
oslo.config!=4.3.0,!=4.4.0,>=4.0.0 # Apache-2.0
oslo.context>=2.14.0 # Apache-2.0
oslo.db>=4.23.0 # Apache-2.0
oslo.i18n!=3.15.2,>=2.1.0 # Apache-2.0
oslo.log>=3.22.0 # Apache-2.0
oslo.messaging!=5.25.0,>=5.24.2 # Apache-2.0
oslo.middleware>=3.27.0 # Apache-2.0
oslo.policy>=1.23.0 # Apache-2.0
oslo.serialization>=1.10.0 # Apache-2.0
oslo.service>=1.10.0 # Apache-2.0
oslo.utils>=3.20.0 # Apache-2.0
oslo.versionedobjects>=1.17.0 # Apache-2.0
osprofiler>=1.4.0 # Apache-2.0
PasteDeploy>=1.5.0 # MIT
pytz>=2013.6 # MIT
PyYAML>=3.10.0 # MIT
qpid-python;python_version=='2.7' # Apache-2.0
requests>=2.14.2 # Apache-2.0
Routes>=2.3.1 # MIT
six>=1.9.0 # MIT
SQLAlchemy!=1.1.5,!=1.1.6,!=1.1.7,!=1.1.8,>=1.0.10 # MIT
sqlalchemy-migrate>=0.11.0 # Apache-2.0
stevedore>=1.20.0 # Apache-2.0
WebOb>=1.7.1 # MIT

Comment 5 XueFeng Liu 2017-07-06 15:57:14 UTC
(In reply to Javier Peña from comment #3)
> Initial licensecheck output:
> 
> ./.coveragerc: *No copyright* UNKNOWN
> ./.gitreview: *No copyright* UNKNOWN
> ./.testr.conf: *No copyright* UNKNOWN
> ./CONTRIBUTING.rst: *No copyright* UNKNOWN
> ./FEATURES.rst: *No copyright* UNKNOWN
> ./HACKING.rst: *No copyright* UNKNOWN
> ./LICENSE: *No copyright* Apache (v2.0)
> ./README.rst: *No copyright* UNKNOWN
> ./TODO.rst: *No copyright* UNKNOWN
> ./babel.cfg: *No copyright* UNKNOWN
> ./install.sh: *No copyright* UNKNOWN
> ./requirements.txt: *No copyright* UNKNOWN
> ./setup.cfg: *No copyright* Apache
> ./setup.py: Apache (v2.0) GENERATED FILE
> ./test-requirements.txt: *No copyright* UNKNOWN
> ./tox.ini: *No copyright* UNKNOWN
> ./uninstall.sh: *No copyright* UNKNOWN
> ./devstack/README.rst: *No copyright* UNKNOWN
> ./devstack/apache-senlin.template: *No copyright* UNKNOWN
> ./devstack/plugin.sh: *No copyright* UNKNOWN
> ./devstack/settings: *No copyright* UNKNOWN
> ./doc/Makefile: *No copyright* UNKNOWN
> ./doc/README.rst: *No copyright* UNKNOWN
> ./rally-jobs/README.rst: *No copyright* UNKNOWN
> ./rally-jobs/senlin-senlin.yaml: *No copyright* UNKNOWN
> ./senlin/__init__.py: *No copyright* Apache (v2.0)
> ./senlin/version.py: *No copyright* Apache (v2.0)
> ./tools/README.rst: *No copyright* GENERATED FILE
> ./tools/config-generator.conf: *No copyright* UNKNOWN
> ./tools/cover.sh: *No copyright* Apache (v2.0)
> ./tools/gen-config: *No copyright* UNKNOWN
> ./tools/gen-pot-files: *No copyright* UNKNOWN
> ./tools/senlin-db-recreate: *No copyright* UNKNOWN
> ./tools/setup-service: *No copyright* UNKNOWN
> ./api-ref/source/actions.inc: *No copyright* UNKNOWN
> ./api-ref/source/build_info.inc: *No copyright* UNKNOWN
> ./api-ref/source/cluster_policies.inc: *No copyright* UNKNOWN
> ./api-ref/source/clusters.inc: *No copyright* UNKNOWN
> ./api-ref/source/conf.py: *No copyright* Apache (v2.0) GENERATED FILE
> ./api-ref/source/events.inc: *No copyright* UNKNOWN
> ./api-ref/source/index.rst: *No copyright* UNKNOWN
> ./api-ref/source/nodes.inc: *No copyright* UNKNOWN
> ./api-ref/source/parameters.yaml: *No copyright* UNKNOWN
> ./api-ref/source/policies.inc: *No copyright* UNKNOWN
> ./api-ref/source/policy_types.inc: *No copyright* UNKNOWN
> ./api-ref/source/profile_types.inc: *No copyright* UNKNOWN
> ./api-ref/source/profiles.inc: *No copyright* UNKNOWN
> ./api-ref/source/receivers.inc: *No copyright* UNKNOWN
> ./api-ref/source/services.inc: *No copyright* UNKNOWN
> ./api-ref/source/status.yaml: *No copyright* UNKNOWN
> ./api-ref/source/versions.inc: *No copyright* UNKNOWN
> ./api-ref/source/webhooks.inc: *No copyright* UNKNOWN
> ./contrib/vdu/README.rst: *No copyright* UNKNOWN
> ./contrib/vdu/requirements.txt: *No copyright* UNKNOWN
> ./contrib/vdu/setup.cfg: *No copyright* Apache
> ./contrib/vdu/setup.py: Apache (v2.0) GENERATED FILE
> ./devstack/lib/senlin: *No copyright* UNKNOWN
> ./doc/source/conf.py: *No copyright* Apache (v2.0)
> ./doc/source/configuration.rst: *No copyright* UNKNOWN
> ./doc/source/glossary.rst: *No copyright* Apache (v2.0)
> ./doc/source/index.rst: *No copyright* Apache (v2.0)
> ./doc/source/install.rst: *No copyright* Apache (v2.0)
> ./doc/source/overview.rst: *No copyright* Apache (v2.0)
> ./doc/specs/README.rst: *No copyright* UNKNOWN
> ./doc/specs/template.rst: *No copyright* CC by (v3.0) GENERATED FILE
> ./doc/specs/workflow-recover.rst: *No copyright* CC by (v3.0)
> ./etc/senlin/README-senlin.conf.txt: *No copyright* UNKNOWN
> ./etc/senlin/api-paste.ini: *No copyright* UNKNOWN
> ./etc/senlin/policy.json: *No copyright* UNKNOWN
> ./examples/policies/affinity_policy.yaml: *No copyright* UNKNOWN
> ./examples/policies/batch_policy.yaml: *No copyright* UNKNOWN
> ./examples/policies/deletion_policy.yaml: *No copyright* UNKNOWN
> ./examples/policies/health_policy_event.yaml: *No copyright* UNKNOWN
> ./examples/policies/health_policy_poll.yaml: *No copyright* UNKNOWN
> ./examples/policies/lb_policy.yaml: *No copyright* UNKNOWN
> ./examples/policies/placement_region.yaml: *No copyright* UNKNOWN
> ./examples/policies/placement_zone.yaml: *No copyright* UNKNOWN
> ./examples/policies/scaling_policy.yaml: *No copyright* UNKNOWN
> ./examples/profiles/README.rst: *No copyright* UNKNOWN
> ./rally-jobs/plugins/senlin_plugin.py: *No copyright* Apache (v2.0)
> ./releasenotes/notes/action-policy-optimization-06ea45eb3dcbe33a.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/affinity-policy-fix-72ae92dc8ffcff00.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/api-ref-fixes-19bc963430c32ecf.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/az-info-9344b8d54c0b2665.yaml: *No copyright* UNKNOWN
> ./releasenotes/notes/batch-scheduling-ca5d98d41fc72973.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/capacity-calculation-4fd389ff12107dfb.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/clean-actions-for-cluster-node-438ca5268e7fd258.yaml:
> *No copyright* UNKNOWN
> ./releasenotes/notes/cluster-check-interval-b01e8140cc83760e.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/cluster-collect-90e460c7bfede347.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/cluster-delete-conflict-94261706eb29e9bb.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/cluster-desired-capacity-d876347f69b04b4f.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/cluster-node-dependents-3bdbebd773d276d1.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/cluster-node-status-e7fced162b415452.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/cluster-ops-433a5aa608a0eb7f.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/cluster-recover-d87d429873b376db.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/cluster-status-update-dd9133092aef05ab.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/compute-instance-fencing-63b931cdf35b127c.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/config-doc-cb8b37e360422301.yaml: *No copyright* UNKNOWN
> ./releasenotes/notes/container-ops-e57d096742202206.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/container-profile-152bf2908c70ffad.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/db-action-retries-d471fe85b4510afd.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/delete-batch-a16ee5ed2512eab7.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/deletion-policy-11bcb7c0e90bbfcc.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/deletion-policy-node-delete-dc70da377b2a4f77.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/destroy-nodes-after-remove-37bffdc35a9b7a96.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/doc-fixes-cd8c7006f8c66387.yaml: *No copyright* UNKNOWN
> ./releasenotes/notes/doc-fixes-e60bb1a486f67e0c.yaml: *No copyright* UNKNOWN
> ./releasenotes/notes/drop-py34-support-21e20efb9bf0b326.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/dynamic-timer-67f053499f4b32e2.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/enforce-multi-tenancy-ee27b9bfec7ba405.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/error-messages-bd8b5a6d12e2c4af.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/event-for-derived-actions-8bd44367fa683dbc.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/event-list-b268bb778efa9ee1.yaml: *No copyright* UNKNOWN
> ./releasenotes/notes/event-purge-db868a063e18eafb.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/event-table-change-dcb42c8b6d145fec.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/fix-action-triggering-e880b02234028315.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/fix-cluster-index-ae0060b6337d6d55.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/fix-cooldown-5082711989ecd536.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/fix-db-deadlock-1d2bdb9ce785734a.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/fix-delete-apis-bf9f47b5fcf8f3e6.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/fix-desired-when-omitted-e7ffc0aa72ab8cc9.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/fix-dup-of-action-dump-0b95a07adf3ccdba.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/fix-health-mgr-opts-99898614f37c5d74.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/fix-network-error-handling-e78da90b6bc2319c.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/fix-node-recover-5af129bf0688577d.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/fix-node-status-for-lb-fc7714da09bec2fb.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/fix-recover-trigger-749600f500f7bf4a.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/fix-registry-claim-5421dca1ed9b0783.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/fix-tag-for-stacks-2ef70be061e80253.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/forbid-cluster-deletion-a8b0f55aaf0aa106.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/gc-for-dead-engine-2246c714edc9a2df.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/health-check-interval-b3850c072600bfdf.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/health-lb-polling-32d83803c77cc1d8.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/health-manager-listener-8ddbe169e510031b.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/health-policy-actions-936db8bc3ed08aec.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/health-policy-properties-056d5b4aa63312c9.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/health-policy-suspend-7aa33fc981c0f2c9.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/health-reboot-9f74c263f7fb6767.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/heat-listener-b908d0988840e1f3.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/keystone-conformance-4e729da9e88b4fb3.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/lb-node-actions-95545338ae622f5c.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/lb-policy-02782a1b98142742.yaml: *No copyright* UNKNOWN
> ./releasenotes/notes/lb-support-to-recover-8f822d3c2665e225.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/lb-timeout-option-990ba1f359b5daab.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/lock-break-for-dead-service-0abd3d3ea333622c.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/message-receiver-3432826515f8e70c.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/metadata-query-profile-9c45d99db7b30207.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/more-policy-validation-ace6a4f890b2a500.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/more-server-operations-dd77e83b705c28f0.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/new-api-doc-f21eb0a9f53d7643.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/node-action-logic-4d3e94818cccaa3e.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/node-check-50d4b67796e17afb.yaml: *No copyright* UNKNOWN
> ./releasenotes/notes/node-check-before-recover-abf887a39ab0d355.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/node-create-affinity-ec126ccd3e9e0957.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/node-create-az-d886dea98a25229f.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/node-create-region-0cbac0918c703e27.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/node-op-api-a7bede34c51854ee.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/node-ops-115d9d64f6e261db.yaml: *No copyright* UNKNOWN
> ./releasenotes/notes/node-update-timestamp-43b9639e22267598.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/non-operation-recover-cf0f3c0ac62bb0f3.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/notification-operations-c7bdaa9b56e5011f.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/notification-support-a7e2ebc816bb4009.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/notification-transport-ae49e9cb1813cd96.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/nova-az-fccf8db758642d34.yaml: *No copyright* UNKNOWN
> ./releasenotes/notes/nova-metadata-fix-89b7a2e06c3ce59f.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/nova-server-addresses-fd8afddc3fb36a0c.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/nova-server-validation-60612c1185738104.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/nova-server-validation-d36dbcf64fb90a43.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/nova-update-opt-7372e4d189e483aa.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/nova-update-validation-dca7de984c2071d1.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/ocata-2-c2e184a0b76231e8.yaml: *No copyright* UNKNOWN
> ./releasenotes/notes/options-shuffled-29c6cfac72aaf8ff.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/oslo-versioned-object-support-cc9463490306c26f.yaml:
> *No copyright* UNKNOWN
> ./releasenotes/notes/param-check-cluster-update-58d4712a33f74c6e.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/path-check-collect-1e542762cbcd65d2.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/policy-enabling-61d0c38aecf314eb.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/policy-performance-4d2fa57ccc45bbf1.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/policy-validate-04cbc74d2c025fcc.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/policy-validation-477a103aa83835f9.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/profile-only-update-5cdb3ae46a8139a8.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/profile-type-ops-1f0f2e6e6b5b1999.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/profile-validate-45a9bc520880bc6b.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/receiver-create-check-2225f536f5150065.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/receiver-create-trust-bd5fdeb059e68330.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/receiver-filter-by-user-ab35a2ab8e2690d1.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/remove-bdm-v1-4533677f3bca3c5d.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/resize-params-ab4942dc11f05d9a.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/scaling-policy-validation-e2a1d3049e03c316.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/scheduler-enhancement-09f86efe4dde4051.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/secure-password-e60243ae2befbbf6.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/senlin-osprofiler-fc8cb7161bdb1a6e.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/server-image-id-27c1619fa818c6a0.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/service-cleanup-afacddfacd7b4dcd.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/service-status-report-625bc25b89907e07.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/setup-script-648e9bfb89bb6255.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/support-status-f7383a53ddcae908.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/tempest-api-test-support-c86091a7ba5fb789.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/tempest-functional-test-383dad4d9acff97e.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/template-url-19075b68d9a35a80.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/tools-setup-d73e3298328c5355.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/notes/versioned-rpc-requests-2df5d878c279e933.yaml: *No
> copyright* UNKNOWN
> ./releasenotes/notes/zaqar-support-470e824b7737e939.yaml: *No copyright*
> UNKNOWN
> ./releasenotes/source/conf.py: *No copyright* Apache (v2.0) GENERATED FILE
> ./releasenotes/source/index.rst: *No copyright* Apache (v2.0)
> ./releasenotes/source/mitaka.rst: *No copyright* UNKNOWN
> ./releasenotes/source/newton.rst: *No copyright* UNKNOWN
> ./releasenotes/source/ocata.rst: *No copyright* UNKNOWN
> ./releasenotes/source/unreleased.rst: *No copyright* UNKNOWN
> ./senlin/cmd/__init__.py: *No copyright* Apache (v2.0)
> ./senlin/cmd/api.py: *No copyright* Apache (v2.0)
> ./senlin/cmd/api_wsgi.py: *No copyright* Apache (v2.0)
> ./senlin/cmd/engine.py: *No copyright* Apache (v2.0)
> ./senlin/cmd/manage.py: *No copyright* Apache (v2.0)
> ./senlin/common/config.py: *No copyright* Apache (v2.0)
> ./senlin/common/constraints.py: *No copyright* Apache (v2.0)
> ./senlin/common/consts.py: *No copyright* Apache (v2.0)
> ./senlin/common/context.py: *No copyright* Apache (v2.0)
> ./senlin/common/exception.py: Apache (v2.0)
> ./senlin/common/i18n.py: Apache (v2.0)
> ./senlin/common/messaging.py: *No copyright* Apache (v2.0)
> ./senlin/common/policy.py: *No copyright* Apache (v2.0)
> ./senlin/common/profiler.py: *No copyright* Apache (v2.0)
> ./senlin/common/scaleutils.py: *No copyright* Apache (v2.0)
> ./senlin/common/schema.py: *No copyright* Apache (v2.0)
> ./senlin/common/utils.py: *No copyright* Apache (v2.0)
> ./senlin/db/api.py: *No copyright* Apache (v2.0)
> ./senlin/db/utils.py: *No copyright* Apache (v2.0)
> ./senlin/drivers/base.py: *No copyright* Apache (v2.0)
> ./senlin/engine/cluster.py: *No copyright* Apache (v2.0)
> ./senlin/engine/cluster_policy.py: *No copyright* Apache (v2.0)
> ./senlin/engine/dispatcher.py: *No copyright* Apache (v2.0)
> ./senlin/engine/environment.py: *No copyright* Apache (v2.0)
> ./senlin/engine/event.py: *No copyright* Apache (v2.0)
> ./senlin/engine/health_manager.py: *No copyright* Apache (v2.0)
> ./senlin/engine/node.py: *No copyright* Apache (v2.0)
> ./senlin/engine/parser.py: *No copyright* Apache (v2.0)
> ./senlin/engine/registry.py: *No copyright* Apache (v2.0)
> ./senlin/engine/scheduler.py: *No copyright* Apache (v2.0)
> ./senlin/engine/senlin_lock.py: *No copyright* Apache (v2.0)
> ./senlin/engine/service.py: *No copyright* Apache (v2.0)
> ./senlin/events/base.py: *No copyright* Apache (v2.0)
> ./senlin/events/database.py: *No copyright* Apache (v2.0)
> ./senlin/events/message.py: *No copyright* Apache (v2.0)
> ./senlin/hacking/checks.py: *No copyright* Apache (v2.0)
> ./senlin/objects/__init__.py: *No copyright* Apache (v2.0)
> ./senlin/objects/action.py: *No copyright* Apache (v2.0)
> ./senlin/objects/base.py: *No copyright* Apache (v2.0)
> ./senlin/objects/cluster.py: *No copyright* Apache (v2.0)
> ./senlin/objects/cluster_lock.py: *No copyright* Apache (v2.0)
> ./senlin/objects/cluster_policy.py: *No copyright* Apache (v2.0)
> ./senlin/objects/credential.py: *No copyright* Apache (v2.0)
> ./senlin/objects/dependency.py: *No copyright* Apache (v2.0)
> ./senlin/objects/event.py: *No copyright* Apache (v2.0)
> ./senlin/objects/fields.py: *No copyright* Apache (v2.0)
> ./senlin/objects/health_registry.py: *No copyright* Apache (v2.0)
> ./senlin/objects/node.py: *No copyright* Apache (v2.0)
> ./senlin/objects/node_lock.py: *No copyright* Apache (v2.0)
> ./senlin/objects/notification.py: *No copyright* Apache (v2.0)
> ./senlin/objects/policy.py: *No copyright* Apache (v2.0)
> ./senlin/objects/profile.py: *No copyright* Apache (v2.0)
> ./senlin/objects/receiver.py: *No copyright* Apache (v2.0)
> ./senlin/objects/service.py: *No copyright* Apache (v2.0)
> ./senlin/policies/affinity_policy.py: *No copyright* Apache (v2.0)
> ./senlin/policies/base.py: *No copyright* Apache (v2.0)
> ./senlin/policies/batch_policy.py: *No copyright* Apache (v2.0)
> ./senlin/policies/deletion_policy.py: *No copyright* Apache (v2.0)
> ./senlin/policies/health_policy.py: *No copyright* Apache (v2.0)
> ./senlin/policies/lb_policy.py: *No copyright* Apache (v2.0)
> ./senlin/policies/region_placement.py: *No copyright* Apache (v2.0)
> ./senlin/policies/scaling_policy.py: *No copyright* Apache (v2.0)
> ./senlin/policies/zone_placement.py: *No copyright* Apache (v2.0)
> ./senlin/profiles/base.py: *No copyright* Apache (v2.0)
> ./senlin/rpc/client.py: *No copyright* Apache (v2.0)
> ./api-ref/source/samples/action-get-response.json: *No copyright* UNKNOWN
> ./api-ref/source/samples/actions-list-response.json: *No copyright* UNKNOWN
> ./api-ref/source/samples/build-show-response.json: *No copyright* UNKNOWN
> ./api-ref/source/samples/cluster-add-nodes-request.json: *No copyright*
> UNKNOWN
> ./api-ref/source/samples/cluster-attach-policy-request.json: *No copyright*
> UNKNOWN
> ./api-ref/source/samples/cluster-attrs-list-response.json: *No copyright*
> UNKNOWN
> ./api-ref/source/samples/cluster-check-request.json: *No copyright* UNKNOWN
> ./api-ref/source/samples/cluster-create-request.json: *No copyright* UNKNOWN
> ./api-ref/source/samples/cluster-create-response.json: *No copyright* UNKNOWN
> ./api-ref/source/samples/cluster-del-nodes-request.json: *No copyright*
> UNKNOWN
> ./api-ref/source/samples/cluster-detach-policy-request.json: *No copyright*
> UNKNOWN
> ./api-ref/source/samples/cluster-list-response.json: *No copyright* UNKNOWN
> ./api-ref/source/samples/cluster-operation-request.json: *No copyright*
> UNKNOWN
> ./api-ref/source/samples/cluster-policies-list-response.json: *No copyright*
> UNKNOWN
> ./api-ref/source/samples/cluster-policy-show-response.json: *No copyright*
> UNKNOWN
> ./api-ref/source/samples/cluster-recover-request.json: *No copyright* UNKNOWN
> ./api-ref/source/samples/cluster-replace-nodes-request.json: *No copyright*
> UNKNOWN
> ./api-ref/source/samples/cluster-resize-request.json: *No copyright* UNKNOWN
> ./api-ref/source/samples/cluster-scale-in-request.json: *No copyright*
> UNKNOWN
> ./api-ref/source/samples/cluster-scale-out-request.json: *No copyright*
> UNKNOWN
> ./api-ref/source/samples/cluster-show-response.json: *No copyright* UNKNOWN
> ./api-ref/source/samples/cluster-update-policy-request.json: *No copyright*
> UNKNOWN
> ./api-ref/source/samples/cluster-update-request.json: *No copyright* UNKNOWN
> ./api-ref/source/samples/cluster-update-response.json: *No copyright* UNKNOWN
> ./api-ref/source/samples/clusters-list-response.json: *No copyright* UNKNOWN
> ./api-ref/source/samples/event-show-response.json: *No copyright* UNKNOWN
> ./api-ref/source/samples/events-list-response.json: *No copyright* UNKNOWN
> ./api-ref/source/samples/node-adopt-preview-request.json: *No copyright*
> UNKNOWN
> ./api-ref/source/samples/node-adopt-preview-response.json: *No copyright*
> UNKNOWN
> ./api-ref/source/samples/node-adopt-request.json: *No copyright* UNKNOWN
> ./api-ref/source/samples/node-adopt-response.json: *No copyright* UNKNOWN
> ./api-ref/source/samples/node-check-request.json: *No copyright* UNKNOWN
> ./api-ref/source/samples/node-create-request.json: *No copyright* UNKNOWN
> ./api-ref/source/samples/node-create-response.json: *No copyright* UNKNOWN
> ./api-ref/source/samples/node-list-response.json: *No copyright* UNKNOWN
> ./api-ref/source/samples/node-operation-request.json: *No copyright* UNKNOWN
> ./api-ref/source/samples/node-recover-request.json: *No copyright* UNKNOWN
> ./api-ref/source/samples/node-show-response.json: *No copyright* UNKNOWN
> ./api-ref/source/samples/node-update-request.json: *No copyright* UNKNOWN
> ./api-ref/source/samples/policy-create-request.json: *No copyright* UNKNOWN
> ./api-ref/source/samples/policy-create-response.json: *No copyright* UNKNOWN
> ./api-ref/source/samples/policy-list-response.json: *No copyright* UNKNOWN
> ./api-ref/source/samples/policy-show-response.json: *No copyright* UNKNOWN
> ./api-ref/source/samples/policy-type-show-response-v1.5.json: *No copyright*
> UNKNOWN
> ./api-ref/source/samples/policy-type-show-response.json: *No copyright*
> UNKNOWN
> ./api-ref/source/samples/policy-types-list-response-v1.5.json: *No
> copyright* UNKNOWN
> ./api-ref/source/samples/policy-types-list-response.json: *No copyright*
> UNKNOWN
> ./api-ref/source/samples/policy-update-request.json: *No copyright* UNKNOWN
> ./api-ref/source/samples/policy-update-response.json: *No copyright* UNKNOWN
> ./api-ref/source/samples/policy-validate-request.json: *No copyright* UNKNOWN
> ./api-ref/source/samples/policy-validate-response.json: *No copyright*
> UNKNOWN
> ./api-ref/source/samples/profile-create-request.json: *No copyright* UNKNOWN
> ./api-ref/source/samples/profile-create-response.json: *No copyright* UNKNOWN
> ./api-ref/source/samples/profile-list-response.json: *No copyright* UNKNOWN
> ./api-ref/source/samples/profile-show-response.json: *No copyright* UNKNOWN
> ./api-ref/source/samples/profile-type-ops-response.json: *No copyright*
> UNKNOWN
> ./api-ref/source/samples/profile-type-show-response-v1.5.json: *No
> copyright* UNKNOWN
> ./api-ref/source/samples/profile-type-show-response.json: *No copyright*
> UNKNOWN
> ./api-ref/source/samples/profile-types-list-response-v1.5.json: *No
> copyright* UNKNOWN
> ./api-ref/source/samples/profile-types-list-response.json: *No copyright*
> UNKNOWN
> ./api-ref/source/samples/profile-update-request.json: *No copyright* UNKNOWN
> ./api-ref/source/samples/profile-update-response.json: *No copyright* UNKNOWN
> ./api-ref/source/samples/profile-validate-request.json: *No copyright*
> UNKNOWN
> ./api-ref/source/samples/profile-validate-response.json: *No copyright*
> UNKNOWN
> ./api-ref/source/samples/receiver-create-request.json: *No copyright* UNKNOWN
> ./api-ref/source/samples/receiver-create-response.json: *No copyright*
> UNKNOWN
> ./api-ref/source/samples/receiver-show-response.json: *No copyright* UNKNOWN
> ./api-ref/source/samples/receiver-update-request.json: *No copyright* UNKNOWN
> ./api-ref/source/samples/receiver-update-response.json: *No copyright*
> UNKNOWN
> ./api-ref/source/samples/receivers-list-response.json: *No copyright* UNKNOWN
> ./api-ref/source/samples/services-list-response.json: *No copyright* UNKNOWN
> ./api-ref/source/samples/version-show-response.json: *No copyright* UNKNOWN
> ./api-ref/source/samples/versions-list-response.json: *No copyright* UNKNOWN
> ./contrib/vdu/examples/vdu.yaml: *No copyright* UNKNOWN
> ./contrib/vdu/vdu/server.py: *No copyright* Apache (v2.0)
> ./doc/source/developer/action.rst: *No copyright* Apache (v2.0)
> ./doc/source/developer/api_microversion.rst: *No copyright* Apache (v2.0)
> ./doc/source/developer/authorization.rst: *No copyright* Apache (v2.0)
> ./doc/source/developer/cluster.rst: *No copyright* Apache (v2.0)
> ./doc/source/developer/event_dispatcher.rst: *No copyright* Apache (v2.0)
> ./doc/source/developer/node.rst: *No copyright* Apache (v2.0)
> ./doc/source/developer/osprofiler.rst: *No copyright* Apache (v2.0)
> ./doc/source/developer/plugin_guide.rst: *No copyright* Apache (v2.0)
> ./doc/source/developer/policy.rst: *No copyright* Apache (v2.0)
> ./doc/source/developer/policy_type.rst: *No copyright* Apache (v2.0)
> ./doc/source/developer/profile.rst: *No copyright* Apache (v2.0)
> ./doc/source/developer/profile_type.rst: *No copyright* Apache (v2.0)
> ./doc/source/developer/receiver.rst: *No copyright* Apache (v2.0)
> ./doc/source/developer/reviews.rst: *No copyright* Apache (v2.0)
> ./doc/source/developer/testing.rst: *No copyright* Apache (v2.0)
> ./doc/source/man/index.rst: *No copyright* UNKNOWN
> ./doc/source/man/senlin-api.rst: *No copyright* UNKNOWN
> ./doc/source/man/senlin-engine.rst: *No copyright* UNKNOWN
> ./doc/source/man/senlin-manage.rst: *No copyright* UNKNOWN
> ./doc/source/scenarios/affinity.rst: *No copyright* Apache (v2.0)
> ./doc/source/scenarios/autoscaling_ceilometer.rst: *No copyright* Apache
> (v2.0)
> ./doc/source/scenarios/autoscaling_heat.rst: *No copyright* Apache (v2.0)
> ./doc/source/scenarios/autoscaling_overview.rst: *No copyright* Apache (v2.0)
> ./doc/source/scenarios/ex_lbas.yaml: *No copyright* UNKNOWN
> ./doc/source/tutorial/autoscaling.rst: *No copyright* Apache (v2.0)
> ./doc/source/tutorial/basics.rst: *No copyright* Apache (v2.0)
> ./doc/source/tutorial/heat.rst: *No copyright* Apache (v2.0)
> ./doc/source/tutorial/policies.rst: *No copyright* Apache (v2.0)
> ./doc/source/tutorial/receivers.rst: *No copyright* Apache (v2.0)
> ./doc/source/user/actions.rst: *No copyright* Apache (v2.0)
> ./doc/source/user/bindings.rst: *No copyright* Apache (v2.0)
> ./doc/source/user/clusters.rst: *No copyright* Apache (v2.0)
> ./doc/source/user/events.rst: *No copyright* Apache (v2.0) GENERATED FILE
> ./doc/source/user/membership.rst: *No copyright* Apache (v2.0)
> ./doc/source/user/nodes.rst: *No copyright* Apache (v2.0)
> ./doc/source/user/policies.rst: *No copyright* Apache (v2.0)
> ./doc/source/user/policy_types.rst: *No copyright* Apache (v2.0)
> ./doc/source/user/profile_types.rst: *No copyright* Apache (v2.0)
> ./doc/source/user/profiles.rst: *No copyright* Apache (v2.0)
> ./doc/source/user/receivers.rst: *No copyright* Apache (v2.0)
> ./doc/specs/approved/README.rst: *No copyright* UNKNOWN
> ./doc/specs/approved/container-cluster.rst: *No copyright* Apache (v2.0)
> ./doc/specs/approved/generic-event.rst: *No copyright* CC by (v3.0)
> GENERATED FILE
> ./doc/specs/rejected/README.rst: *No copyright* UNKNOWN
> ./examples/policies/WIP/batching_1_1_0.yaml: *No copyright* UNKNOWN
> ./examples/policies/WIP/health_policy_lb.yaml: *No copyright* UNKNOWN
> ./examples/policies/WIP/lb_policy_aws.spec: *No copyright* UNKNOWN
> ./examples/profiles/docker_container/docker_basic.yaml: *No copyright*
> UNKNOWN
> ./examples/profiles/nova_server/cirros_basic.yaml: *No copyright* UNKNOWN
> ./senlin/api/common/serializers.py: *No copyright* Apache (v2.0)
> ./senlin/api/common/util.py: *No copyright* Apache (v2.0)
> ./senlin/api/common/version_request.py: *No copyright* Apache (v2.0)
> ./senlin/api/common/versioned_method.py: *No copyright* Apache (v2.0)
> ./senlin/api/common/wsgi.py: *No copyright* Apache (v2.0)
> ./senlin/api/middleware/__init__.py: *No copyright* Apache (v2.0)
> ./senlin/api/middleware/context.py: *No copyright* Apache (v2.0)
> ./senlin/api/middleware/fault.py: *No copyright* Apache (v2.0)
> ./senlin/api/middleware/trust.py: *No copyright* Apache (v2.0)
> ./senlin/api/middleware/version_negotiation.py: *No copyright* Apache (v2.0)
> ./senlin/api/middleware/webhook.py: *No copyright* Apache (v2.0)
> ./senlin/api/openstack/history.rst: *No copyright* UNKNOWN
> ./senlin/api/openstack/versions.py: *No copyright* Apache (v2.0)
> ./senlin/db/sqlalchemy/api.py: *No copyright* Apache (v2.0)
> ./senlin/db/sqlalchemy/migration.py: *No copyright* Apache (v2.0)
> ./senlin/db/sqlalchemy/models.py: *No copyright* Apache (v2.0)
> ./senlin/db/sqlalchemy/types.py: *No copyright* Apache (v2.0)
> ./senlin/db/sqlalchemy/utils.py: *No copyright* Apache (v2.0)
> ./senlin/drivers/container/docker_v1.py: *No copyright* Apache (v2.0)
> ./senlin/drivers/openstack/__init__.py: *No copyright* Apache (v2.0)
> ./senlin/drivers/openstack/ceilometer_v2.py: *No copyright* Apache (v2.0)
> ./senlin/drivers/openstack/cinder_v2.py: *No copyright* Apache (v2.0)
> ./senlin/drivers/openstack/glance_v2.py: *No copyright* Apache (v2.0)
> ./senlin/drivers/openstack/heat_v1.py: *No copyright* Apache (v2.0)
> ./senlin/drivers/openstack/keystone_v3.py: *No copyright* Apache (v2.0)
> ./senlin/drivers/openstack/lbaas.py: *No copyright* Apache (v2.0)
> ./senlin/drivers/openstack/mistral_v2.py: *No copyright* Apache (v2.0)
> ./senlin/drivers/openstack/neutron_v2.py: *No copyright* Apache (v2.0)
> ./senlin/drivers/openstack/nova_v2.py: *No copyright* Apache (v2.0)
> ./senlin/drivers/openstack/sdk.py: *No copyright* Apache (v2.0)
> ./senlin/drivers/openstack/zaqar_v2.py: *No copyright* Apache (v2.0)
> ./senlin/engine/actions/base.py: *No copyright* Apache (v2.0)
> ./senlin/engine/actions/cluster_action.py: *No copyright* Apache (v2.0)
> ./senlin/engine/actions/custom_action.py: *No copyright* Apache (v2.0)
> ./senlin/engine/actions/node_action.py: *No copyright* Apache (v2.0)
> ./senlin/engine/receivers/base.py: *No copyright* Apache (v2.0)
> ./senlin/engine/receivers/message.py: *No copyright* Apache (v2.0)
> ./senlin/engine/receivers/webhook.py: *No copyright* Apache (v2.0)
> ./senlin/objects/requests/actions.py: *No copyright* Apache (v2.0)
> ./senlin/objects/requests/build_info.py: *No copyright* Apache (v2.0)
> ./senlin/objects/requests/cluster_policies.py: *No copyright* Apache (v2.0)
> ./senlin/objects/requests/clusters.py: *No copyright* Apache (v2.0)
> ./senlin/objects/requests/credentials.py: *No copyright* Apache (v2.0)
> ./senlin/objects/requests/events.py: *No copyright* Apache (v2.0)
> ./senlin/objects/requests/nodes.py: *No copyright* Apache (v2.0)
> ./senlin/objects/requests/policies.py: *No copyright* Apache (v2.0)
> ./senlin/objects/requests/policy_type.py: *No copyright* Apache (v2.0)
> ./senlin/objects/requests/profile_type.py: *No copyright* Apache (v2.0)
> ./senlin/objects/requests/profiles.py: *No copyright* Apache (v2.0)
> ./senlin/objects/requests/receivers.py: *No copyright* Apache (v2.0)
> ./senlin/objects/requests/webhooks.py: *No copyright* Apache (v2.0)
> ./senlin/profiles/container/docker.py: *No copyright* Apache (v2.0)
> ./senlin/tests/drivers/README.rst: *No copyright* UNKNOWN
> ./senlin/tests/tempest/README.rst: *No copyright* UNKNOWN
> ./senlin/tests/tempest/base.py: *No copyright* Apache (v2.0)
> ./senlin/tests/tempest/config.py: *No copyright* Apache (v2.0)
> ./senlin/tests/tempest/plugin.py: *No copyright* Apache (v2.0)
> ./senlin/tests/tempest/post_test_hook.sh: *No copyright* Apache (v2.0)
> ./senlin/tests/tempest/pre_test_hook.sh: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/__init__.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/fakes.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/test_common_constraints.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/test_common_context.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/test_common_exception.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/test_common_messaging.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/test_common_policy.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/test_common_scaleutils.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/test_common_schema.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/test_common_utils.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/test_hacking.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/test_rpc_client.py: *No copyright* Apache (v2.0)
> ./doc/source/developer/policies/affinity_v1.rst: *No copyright* Apache (v2.0)
> ./doc/source/developer/policies/deletion_v1.rst: *No copyright* Apache (v2.0)
> ./doc/source/developer/policies/health_v1.rst: *No copyright* Apache (v2.0)
> ./doc/source/developer/policies/load_balance_v1.rst: *No copyright* Apache
> (v2.0)
> ./doc/source/developer/policies/region_v1.rst: *No copyright* Apache (v2.0)
> ./doc/source/developer/policies/scaling_v1.rst: *No copyright* Apache (v2.0)
> ./doc/source/developer/policies/zone_v1.rst: *No copyright* Apache (v2.0)
> ./doc/source/user/policy_types/affinity.rst: *No copyright* Apache (v2.0)
> ./doc/source/user/policy_types/batch.rst: *No copyright* Apache (v2.0)
> ./doc/source/user/policy_types/deletion.rst: *No copyright* Apache (v2.0)
> ./doc/source/user/policy_types/health.rst: *No copyright* Apache (v2.0)
> ./doc/source/user/policy_types/load_balancing.rst: *No copyright* Apache
> (v2.0)
> ./doc/source/user/policy_types/region_placement.rst: *No copyright* Apache
> (v2.0)
> ./doc/source/user/policy_types/scaling.rst: *No copyright* Apache (v2.0)
> ./doc/source/user/policy_types/zone_placement.rst: *No copyright* Apache
> (v2.0)
> ./examples/profiles/heat_stack/nova_server/heat_stack_nova_server.yaml: *No
> copyright* UNKNOWN
> ./examples/profiles/heat_stack/nova_server/nova_server_template.yaml: *No
> copyright* UNKNOWN
> ./examples/profiles/heat_stack/random_string/heat_stack_random_string.yaml:
> *No copyright* UNKNOWN
> ./examples/profiles/heat_stack/random_string/random_string_template.yaml:
> *No copyright* UNKNOWN
> ./senlin/api/openstack/v1/actions.py: *No copyright* Apache (v2.0)
> ./senlin/api/openstack/v1/build_info.py: *No copyright* Apache (v2.0)
> ./senlin/api/openstack/v1/cluster_policies.py: *No copyright* Apache (v2.0)
> ./senlin/api/openstack/v1/clusters.py: *No copyright* Apache (v2.0)
> ./senlin/api/openstack/v1/events.py: *No copyright* Apache (v2.0)
> ./senlin/api/openstack/v1/nodes.py: *No copyright* Apache (v2.0)
> ./senlin/api/openstack/v1/policies.py: *No copyright* Apache (v2.0)
> ./senlin/api/openstack/v1/policy_types.py: *No copyright* Apache (v2.0)
> ./senlin/api/openstack/v1/profile_types.py: *No copyright* Apache (v2.0)
> ./senlin/api/openstack/v1/profiles.py: *No copyright* Apache (v2.0)
> ./senlin/api/openstack/v1/receivers.py: *No copyright* Apache (v2.0)
> ./senlin/api/openstack/v1/router.py: *No copyright* Apache (v2.0)
> ./senlin/api/openstack/v1/services.py: *No copyright* Apache (v2.0)
> ./senlin/api/openstack/v1/version.py: *No copyright* Apache (v2.0)
> ./senlin/api/openstack/v1/webhooks.py: *No copyright* Apache (v2.0)
> ./senlin/db/sqlalchemy/migrate_repo/README: *No copyright* UNKNOWN
> ./senlin/db/sqlalchemy/migrate_repo/manage.py: *No copyright* Apache (v2.0)
> ./senlin/db/sqlalchemy/migrate_repo/migrate.cfg: *No copyright* UNKNOWN
> ./senlin/locale/zh_CN/LC_MESSAGES/senlin-log-critical.po: *No copyright*
> UNKNOWN
> ./senlin/locale/zh_CN/LC_MESSAGES/senlin-log-error.po: *No copyright* UNKNOWN
> ./senlin/locale/zh_CN/LC_MESSAGES/senlin-log-warning.po: *No copyright*
> UNKNOWN
> ./senlin/profiles/os/heat/stack.py: *No copyright* Apache (v2.0)
> ./senlin/profiles/os/nova/server.py: *No copyright* Apache (v2.0)
> ./senlin/tests/drivers/openstack/__init__.py: *No copyright* Apache (v2.0)
> ./senlin/tests/drivers/openstack/heat_v1.py: *No copyright* Apache (v2.0)
> ./senlin/tests/drivers/openstack/lbaas.py: *No copyright* Apache (v2.0)
> ./senlin/tests/drivers/openstack/mistral_v2.py: *No copyright* Apache (v2.0)
> ./senlin/tests/drivers/openstack/neutron_v2.py: *No copyright* Apache (v2.0)
> ./senlin/tests/drivers/openstack/nova_v2.py: *No copyright* Apache (v2.0)
> ./senlin/tests/drivers/openstack/sdk.py: *No copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/base.py: *No copyright* Apache (v2.0)
> ./senlin/tests/tempest/common/clustering_client.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/tempest/common/compute_client.py: *No copyright* Apache (v2.0)
> ./senlin/tests/tempest/common/constants.py: *No copyright* Apache (v2.0)
> ./senlin/tests/tempest/common/messaging_client.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/tempest/common/network_client.py: *No copyright* Apache (v2.0)
> ./senlin/tests/tempest/common/utils.py: *No copyright* Apache (v2.0)
> ./senlin/tests/tempest/functional/base.py: *No copyright* Apache (v2.0)
> ./senlin/tests/tempest/functional/test_batch_policy.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/tempest/functional/test_cluster_basic.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/tempest/functional/test_cluster_membership.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/tempest/functional/test_cluster_scaling.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/tempest/functional/test_lb_policy.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/tempest/functional/test_node_basic.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/tempest/functional/test_receiver.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/tempest/functional/test_scaling_policy.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/tempest/integration/base.py: *No copyright* Apache (v2.0)
> ./senlin/tests/tempest/integration/test_heat_stack_cluster.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/integration/test_nova_server_cluster.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/integration/test_receiver.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/api/shared.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/common/base.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/common/utils.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/db/shared.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/db/test_action_api.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/db/test_cluster_api.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/db/test_cluster_policy_api.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/db/test_cred_api.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/db/test_event_api.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/db/test_lock_api.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/db/test_node_api.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/db/test_policy_api.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/db/test_profile_api.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/db/test_receiver_api.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/db/test_registry_api.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/db/test_service_api.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/db/test_sqlalchemy_types.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/db/test_sqlalchemy_utils.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/drivers/test_ceilometer_v2.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/drivers/test_cinder_v2.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/drivers/test_docker_v1.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/drivers/test_driver.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/drivers/test_glance_v2.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/drivers/test_heat_v1.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/drivers/test_keystone_v3.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/drivers/test_lbaas_driver.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/drivers/test_mistral_v2.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/drivers/test_neutron_v2_driver.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/drivers/test_nova_v2.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/drivers/test_sdk.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/drivers/test_zaqar_v2.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/engine/test_cluster.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/engine/test_cluster_policy.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/engine/test_dispatcher.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/engine/test_engine_parser.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/engine/test_engine_startstop.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/engine/test_environment.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/engine/test_event.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/engine/test_health_manager.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/engine/test_node.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/engine/test_registry.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/engine/test_scheduler.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/engine/test_senlin_lock.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/events/test_base.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/events/test_database.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/events/test_message.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/objects/test_action.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/objects/test_base.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/objects/test_cluster.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/objects/test_cluster_policy.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/objects/test_event.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/objects/test_fields.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/objects/test_health_registry.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/objects/test_node.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/objects/test_notification.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/objects/test_policy.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/objects/test_profile.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/objects/test_receiver.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/policies/test_affinity.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/policies/test_batch_policy.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/policies/test_deletion_policy.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/policies/test_health_policy.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/policies/test_lb_policy.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/policies/test_policy.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/policies/test_region_placement.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/policies/test_scaling_policy.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/policies/test_zone_placement.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/profiles/test_container_docker.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/profiles/test_heat_stack.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/profiles/test_nova_server.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/profiles/test_nova_server_update.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/unit/profiles/test_nova_server_validate.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/unit/profiles/test_profile_base.py: *No copyright* Apache
> (v2.0)
> ./senlin/db/sqlalchemy/migrate_repo/versions/001_first_version.py: *No
> copyright* Apache (v2.0)
> ./senlin/db/sqlalchemy/migrate_repo/versions/002_service_table.py: *No
> copyright* Apache (v2.0)
> ./senlin/db/sqlalchemy/migrate_repo/versions/003_action_tenant.py: *No
> copyright* Apache (v2.0)
> ./senlin/db/sqlalchemy/migrate_repo/versions/004_health_registry.py: *No
> copyright* Apache (v2.0)
> ./senlin/db/sqlalchemy/migrate_repo/versions/005_event_column_name.py: *No
> copyright* Apache (v2.0)
> ./senlin/db/sqlalchemy/migrate_repo/versions/
> 006_node_cluster_dependents_column.py: *No copyright* Apache (v2.0)
> ./senlin/db/sqlalchemy/migrate_repo/versions/007_placeholder.py: *No
> copyright* Apache (v2.0)
> ./senlin/db/sqlalchemy/migrate_repo/versions/008_placeholder.py: *No
> copyright* Apache (v2.0)
> ./senlin/db/sqlalchemy/migrate_repo/versions/009_placeholder.py: *No
> copyright* Apache (v2.0)
> ./senlin/db/sqlalchemy/migrate_repo/versions/010_user_project_length.py: *No
> copyright* Apache (v2.0)
> ./senlin/db/sqlalchemy/migrate_repo/versions/011_registry_enable.py: *No
> copyright* Apache (v2.0)
> ./senlin/db/sqlalchemy/migrate_repo/versions/012_cluster_config.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/actions/test_action_list.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/tempest/api/actions/test_action_list_negative.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/actions/test_action_show.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/tempest/api/actions/test_action_show_negative.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/api_versions/test_api_version_show.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/api_versions/test_api_version_show_negative.py:
> *No copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/api_versions/test_api_versions_list.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/build_info/test_build_info.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/tempest/api/cluster_policies/test_cluster_policy_list.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/cluster_policies/
> test_cluster_policy_list_negative.py: *No copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/cluster_policies/test_cluster_policy_show.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/cluster_policies/
> test_cluster_policy_show_negative.py: *No copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/clusters/test_cluster_action_negative.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/clusters/test_cluster_add_nodes.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/clusters/test_cluster_check.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/tempest/api/clusters/test_cluster_collect.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/tempest/api/clusters/test_cluster_create.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/tempest/api/clusters/test_cluster_create_negative.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/clusters/test_cluster_del_nodes.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/clusters/test_cluster_delete.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/tempest/api/clusters/test_cluster_delete_negative.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/clusters/test_cluster_list.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/tempest/api/clusters/test_cluster_list_negative.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/clusters/test_cluster_policy_attach.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/clusters/test_cluster_policy_detach.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/clusters/test_cluster_policy_update.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/clusters/test_cluster_recover.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/tempest/api/clusters/test_cluster_replace_nodes.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/clusters/test_cluster_resize.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/tempest/api/clusters/test_cluster_scale_in.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/tempest/api/clusters/test_cluster_scale_out.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/clusters/test_cluster_show.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/tempest/api/clusters/test_cluster_show_negative.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/clusters/test_cluster_update.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/tempest/api/clusters/test_cluster_update_negative.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/clusters/test_cluster_update_profile.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/events/test_event_list.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/tempest/api/events/test_event_list_negative.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/events/test_event_show.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/tempest/api/events/test_event_show_negative.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/nodes/test_node_action_negative.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/nodes/test_node_check.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/tempest/api/nodes/test_node_create.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/tempest/api/nodes/test_node_create_negative.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/nodes/test_node_delete.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/tempest/api/nodes/test_node_delete_negative.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/nodes/test_node_list.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/tempest/api/nodes/test_node_list_negative.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/tempest/api/nodes/test_node_operation.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/tempest/api/nodes/test_node_recover.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/tempest/api/nodes/test_node_show.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/tempest/api/nodes/test_node_show_negative.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/tempest/api/nodes/test_node_update.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/tempest/api/nodes/test_node_update_negative.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/nodes/test_node_update_profile.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/tempest/api/policies/test_policy_create.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/tempest/api/policies/test_policy_create_negative.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/policies/test_policy_delete.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/tempest/api/policies/test_policy_delete_negative.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/policies/test_policy_list.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/tempest/api/policies/test_policy_list_negative.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/policies/test_policy_show.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/tempest/api/policies/test_policy_show_negative.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/policies/test_policy_update.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/tempest/api/policies/test_policy_update_negative.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/policies/test_policy_validate.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/tempest/api/policies/test_policy_validate_negative.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/policy_types/test_policy_type_list.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/policy_types/test_policy_type_show.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/policy_types/test_policy_type_show_negative.py:
> *No copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/profile_types/test_profile_type_list.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/profile_types/test_profile_type_show.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/profile_types/test_profile_type_show_negative.py:
> *No copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/profiles/test_profile_create.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/tempest/api/profiles/test_profile_create_negative.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/profiles/test_profile_delete.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/tempest/api/profiles/test_profile_delete_negative.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/profiles/test_profile_list.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/tempest/api/profiles/test_profile_list_negative.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/profiles/test_profile_show.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/tempest/api/profiles/test_profile_show_negative.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/profiles/test_profile_update.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/tempest/api/profiles/test_profile_update_negative.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/profiles/test_profile_validate.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/tempest/api/profiles/test_profile_validate_negative.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/receivers/test_receiver_create.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/tempest/api/receivers/test_receiver_create_negative.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/receivers/test_receiver_delete.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/tempest/api/receivers/test_receiver_delete_negative.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/receivers/test_receiver_list.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/tempest/api/receivers/test_receiver_list_negative.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/receivers/test_receiver_show.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/tempest/api/receivers/test_receiver_show_negative.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/tempest/api/receivers/test_webhook_trigger.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/unit/api/common/test_serializers.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/api/common/test_util.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/api/common/test_version_request.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/unit/api/common/test_wsgi.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/api/middleware/test_context.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/api/middleware/test_fault.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/api/middleware/test_middleware_filters.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/unit/api/middleware/test_trust.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/api/middleware/test_version_negotiation.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/unit/api/middleware/test_webhook.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/api/openstack/test_versions.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/engine/actions/test_action_base.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/unit/engine/actions/test_add_nodes.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/engine/actions/test_attach_policy.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/unit/engine/actions/test_check.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/engine/actions/test_cluster_action.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/unit/engine/actions/test_create.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/engine/actions/test_custom_action.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/unit/engine/actions/test_del_nodes.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/engine/actions/test_delete.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/engine/actions/test_node_action.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/unit/engine/actions/test_operation.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/engine/actions/test_recover.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/engine/actions/test_replace_nodes.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/unit/engine/actions/test_resize.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/engine/actions/test_scale_in.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/engine/actions/test_scale_out.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/engine/actions/test_update.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/engine/actions/test_update_policy.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/unit/engine/actions/test_wait.py: *No copyright* Apache (v2.0)
> ./senlin/tests/unit/engine/receivers/test_message.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/engine/receivers/test_receiver.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/engine/receivers/test_webhook.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/engine/service/test_actions.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/engine/service/test_cluster_op.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/engine/service/test_cluster_policies.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/unit/engine/service/test_clusters.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/engine/service/test_credentials.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/unit/engine/service/test_events.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/engine/service/test_nodes.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/engine/service/test_policies.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/engine/service/test_policy_types.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/unit/engine/service/test_profile_types.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/unit/engine/service/test_profiles.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/engine/service/test_receivers.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/engine/service/test_webhooks.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/objects/requests/test_actions.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/objects/requests/test_cluster_policies.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/unit/objects/requests/test_clusters.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/objects/requests/test_credentials.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/unit/objects/requests/test_events.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/objects/requests/test_nodes.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/objects/requests/test_policies.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/objects/requests/test_policy_type.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/unit/objects/requests/test_profile_type.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/unit/objects/requests/test_profiles.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/objects/requests/test_receivers.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/unit/objects/requests/test_webhooks.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/api/middleware/policy/check_admin.json: *No copyright*
> UNKNOWN
> ./senlin/tests/unit/api/middleware/policy/notallowed.json: *No copyright*
> UNKNOWN
> ./senlin/tests/unit/api/openstack/v1/test_actions.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/api/openstack/v1/test_buildinfo.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/unit/api/openstack/v1/test_cluster_policies.py: *No
> copyright* Apache (v2.0)
> ./senlin/tests/unit/api/openstack/v1/test_clusters.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/api/openstack/v1/test_events.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/api/openstack/v1/test_nodes.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/api/openstack/v1/test_policies.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/api/openstack/v1/test_policy_types.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/unit/api/openstack/v1/test_profile_types.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/unit/api/openstack/v1/test_profiles.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/api/openstack/v1/test_receivers.py: *No copyright*
> Apache (v2.0)
> ./senlin/tests/unit/api/openstack/v1/test_router.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/api/openstack/v1/test_services.py: Apache (v2.0)
> ./senlin/tests/unit/api/openstack/v1/test_version.py: *No copyright* Apache
> (v2.0)
> ./senlin/tests/unit/api/openstack/v1/test_webhooks.py: *No copyright* Apache
> (v2.0)
> 
> The project is licensed using the Apache 2.0 license. I see some files are
> licensed using the Creative Commons Attribution 3.0 Unported License, but
> those are specs and I assume they will not be included in the package.

I think 3.0 is wrong. Will update it 2.0.

Comment 6 XueFeng Liu 2017-07-07 13:52:43 UTC
copyrights have been removed

Comment 7 Christopher Brown 2017-07-09 08:48:59 UTC
(In reply to XueFeng Liu from comment #6)
> copyrights have been removed

Thanks. Initial spec is now completing checks at:

https://review.rdoproject.org/r/#/c/7470/

Comment 8 XueFeng Liu 2017-07-09 10:20:17 UTC
(In reply to Christopher Brown from comment #7)
> (In reply to XueFeng Liu from comment #6)
> > copyrights have been removed
> 
> Thanks. Initial spec is now completing checks at:
> 
> https://review.rdoproject.org/r/#/c/7470/

Great:)

Comment 9 Haïkel Guémar 2017-07-11 08:44:51 UTC
Package reviewer is the assignee in package reviews, not packager.

Comment 10 Alfredo Moralejo 2017-07-19 07:49:29 UTC
fedora-review results:


Package Review
==============

Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
[ ] = Manual review needed


Issues:
=======
- If (and only if) the source package includes the text of the license(s)
  in its own file, then that file, containing the text of the license(s)
  for the package is included in %license.
  Note: License file license.png is not marked as %license
  See:
  http://fedoraproject.org/wiki/Packaging/LicensingGuidelines#License_Text


===== MUST items =====

Generic:
[x]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "Apache (v2.0)", "*No copyright* Apache", "*No copyright* CC by
     (v3.0)", "Unknown or generated", "*No copyright* Apache (v2.0)". 302
     files have unknown license. Detailed output of licensecheck in /tmp
     /openstack-senlin/licensecheck.txt
[x]: License file installed when any subpackage combination is installed.
[x]: Package must own all directories that it creates.
     Note: Directories without known owners: /usr/lib/systemd/system,
     /etc/logrotate.d, /usr/lib/python2.7/site-packages/senlin/tests,
     /usr/lib/systemd
[x]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[-]: Package contains desktop file if it is a GUI application.
[-]: Development files must be in a -devel package
[x]: Package uses nothing in %doc for runtime.
[x]: The spec file handles locales properly.
[x]: Package consistently uses macros (instead of hard-coded directory
     names).
[x]: Package is named according to the Package Naming Guidelines.
[x]: Package does not generate any conflict.
[x]: Package obeys FHS, except libexecdir and /usr/target.
[-]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[x]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[x]: Package contains systemd file(s) if in need.
[x]: Package is not known to require an ExcludeArch tag.
[x]: Package complies to the Packaging Guidelines
[x]: Package successfully compiles and builds into binary rpms on at least
     one supported primary architecture.
[x]: Package installs properly.
[x]: Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[x]: Package requires other packages for directories it uses.
[x]: Package does not own files or directories owned by other packages.
[x]: All build dependencies are listed in BuildRequires, except for any
     that are listed in the exceptions section of Packaging Guidelines.
[x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: %config files are marked noreplace or the reason is justified.
[x]: Macros in Summary, %description expandable at SRPM build time.
[x]: Dist tag is present.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package use %makeinstall only when make install DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: No %config files under /usr.
[x]: Package does not use a name that already exists.
[x]: Package is not relocatable.
[x]: Sources used to build the package match the upstream source, as
     provided in the spec URL.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[x]: File names are valid UTF-8.
[x]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 0 bytes in 0 files.
[x]: Packages must not store files under /srv, /opt or /usr/local

Python:
[x]: Python eggs must not download any dependencies during the build
     process.
[x]: A package which is used by another package via an egg interface should
     provide egg info.
[x]: Package meets the Packaging Guidelines::Python
[x]: Package contains BR: python2-devel or python3-devel
[x]: Binary eggs must be removed in %prep

===== SHOULD items =====

Generic:
[x]: Avoid bundling fonts in non-fonts packages.
     Note: Package contains font files
[-]: If the source package does not include license text(s) as a separate
     file from upstream, the packager SHOULD query upstream to include it.
[x]: Final provides and requires are sane (see attachments).
[x]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in python-
     senlin , python-senlin-tests-tempest , python-senlin-tests-unit ,
     openstack-senlin-common , openstack-senlin-doc , openstack-senlin-api
     , openstack-senlin-engine
[x]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[x]: Scriptlets must be sane, if used.
[x]: SourceX tarball generation or download is documented.
     Note: Package contains tarball without URL, check comments
[x]: Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[x]: Package should compile and build into binary rpms on all supported
     architectures.
[x]: %check is present and all tests pass.
[x]: Packages should try to preserve timestamps of original installed
     files.
[x]: Spec use %global instead of %define unless justified.
     Note: %define requiring justification: %define upstream_version
     4.0.0.0b3.dev57
[x]: Reviewer should test that the package builds in mock.
[x]: Buildroot is not present
[x]: Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: SourceX is a working URL.

===== EXTRA items =====

Generic:
[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).


Rpmlint
-------
Checking: python-senlin-4.0.0-0.20170718122527.eb26b48.el7.centos.noarch.rpm
          python-senlin-tests-tempest-4.0.0-0.20170718122527.eb26b48.el7.centos.noarch.rpm
          python-senlin-tests-unit-4.0.0-0.20170718122527.eb26b48.el7.centos.noarch.rpm
          openstack-senlin-common-4.0.0-0.20170718122527.eb26b48.el7.centos.noarch.rpm
          openstack-senlin-doc-4.0.0-0.20170718122527.eb26b48.el7.centos.noarch.rpm
          openstack-senlin-api-4.0.0-0.20170718122527.eb26b48.el7.centos.noarch.rpm
          openstack-senlin-engine-4.0.0-0.20170718122527.eb26b48.el7.centos.noarch.rpm
          openstack-senlin-4.0.0-0.20170718122527.eb26b48.el7.centos.src.rpm
python-senlin.noarch: W: spelling-error %description -l en_US homogenous -> homogeneous, homologous, endogenous
python-senlin.noarch: E: no-changelogname-tag
python-senlin.noarch: W: no-documentation
python-senlin.noarch: E: wrong-script-interpreter /usr/lib/python2.7/site-packages/senlin/cmd/engine.py /usr/bin/env python
python-senlin.noarch: E: non-executable-script /usr/lib/python2.7/site-packages/senlin/cmd/engine.py 644 /usr/bin/env python
python-senlin.noarch: E: wrong-script-interpreter /usr/lib/python2.7/site-packages/senlin/db/sqlalchemy/migrate_repo/manage.py /usr/bin/env python
python-senlin.noarch: E: non-executable-script /usr/lib/python2.7/site-packages/senlin/db/sqlalchemy/migrate_repo/manage.py 644 /usr/bin/env python
python-senlin.noarch: E: wrong-script-interpreter /usr/lib/python2.7/site-packages/senlin/cmd/api_wsgi.py /usr/bin/env python
python-senlin.noarch: E: non-executable-script /usr/lib/python2.7/site-packages/senlin/cmd/api_wsgi.py 644 /usr/bin/env python
python-senlin.noarch: E: wrong-script-interpreter /usr/lib/python2.7/site-packages/senlin/cmd/api.py /usr/bin/env python
python-senlin.noarch: E: non-executable-script /usr/lib/python2.7/site-packages/senlin/cmd/api.py 644 /usr/bin/env python
python-senlin-tests-tempest.noarch: W: spelling-error %description -l en_US homogenous -> homogeneous, homologous, endogenous
python-senlin-tests-tempest.noarch: E: no-changelogname-tag
python-senlin-tests-tempest.noarch: W: no-documentation
python-senlin-tests-unit.noarch: W: spelling-error %description -l en_US homogenous -> homogeneous, homologous, endogenous
python-senlin-tests-unit.noarch: E: no-changelogname-tag
python-senlin-tests-unit.noarch: W: no-documentation
openstack-senlin-common.noarch: W: spelling-error %description -l en_US homogenous -> homogeneous, homologous, endogenous
openstack-senlin-common.noarch: E: no-changelogname-tag
openstack-senlin-common.noarch: W: no-documentation
openstack-senlin-common.noarch: W: non-standard-uid /var/log/senlin senlin
openstack-senlin-common.noarch: E: non-standard-dir-perm /var/log/senlin 750
openstack-senlin-common.noarch: E: incoherent-logrotate-file /etc/logrotate.d/openstack-senlin
openstack-senlin-common.noarch: W: non-standard-gid /etc/senlin/policy.json senlin
openstack-senlin-common.noarch: E: non-readable /etc/senlin/policy.json 640
openstack-senlin-common.noarch: W: non-standard-gid /usr/share/senlin/senlin-dist.conf senlin
openstack-senlin-common.noarch: E: non-readable /usr/share/senlin/senlin-dist.conf 640
openstack-senlin-common.noarch: W: non-standard-gid /etc/senlin/senlin.conf senlin
openstack-senlin-common.noarch: E: non-readable /etc/senlin/senlin.conf 640
openstack-senlin-common.noarch: W: non-standard-gid /etc/senlin/api-paste.ini senlin
openstack-senlin-common.noarch: E: non-readable /etc/senlin/api-paste.ini 640
openstack-senlin-common.noarch: W: no-manual-page-for-binary senlin-wsgi-api
openstack-senlin-common.noarch: W: no-manual-page-for-binary senlin-manage
openstack-senlin-doc.noarch: W: spelling-error %description -l en_US homogenous -> homogeneous, homologous, endogenous
openstack-senlin-doc.noarch: E: no-changelogname-tag
openstack-senlin-api.noarch: W: spelling-error %description -l en_US homogenous -> homogeneous, homologous, endogenous
openstack-senlin-api.noarch: E: no-changelogname-tag
openstack-senlin-api.noarch: W: no-documentation
openstack-senlin-api.noarch: W: no-manual-page-for-binary senlin-api
openstack-senlin-engine.noarch: W: spelling-error %description -l en_US homogenous -> homogeneous, homologous, endogenous
openstack-senlin-engine.noarch: E: no-changelogname-tag
openstack-senlin-engine.noarch: W: no-documentation
openstack-senlin-engine.noarch: W: no-manual-page-for-binary senlin-engine
openstack-senlin.src: W: spelling-error %description -l en_US homogenous -> homogeneous, homologous, endogenous
openstack-senlin.src: E: no-changelogname-tag
openstack-senlin.src: W: invalid-url Source0: senlin-4.0.0.0b3.dev57-0.20170718122527.eb26b48.tar.gz
8 packages and 0 specfiles checked; 22 errors, 24 warnings.




Rpmlint (installed packages)
----------------------------
python-senlin-tests-tempest.noarch: E: no-changelogname-tag
python-senlin-tests-tempest.noarch: W: no-documentation
python-senlin.noarch: E: no-changelogname-tag
python-senlin.noarch: W: no-documentation
python-senlin.noarch: E: non-executable-script /usr/lib/python2.7/site-packages/senlin/db/sqlalchemy/migrate_repo/manage.py 0644L /usr/bin/env
python-senlin.noarch: E: non-executable-script /usr/lib/python2.7/site-packages/senlin/cmd/engine.py 0644L /usr/bin/env
python-senlin.noarch: E: non-executable-script /usr/lib/python2.7/site-packages/senlin/cmd/api_wsgi.py 0644L /usr/bin/env
python-senlin.noarch: E: non-executable-script /usr/lib/python2.7/site-packages/senlin/cmd/api.py 0644L /usr/bin/env
openstack-senlin-common.noarch: E: no-changelogname-tag
openstack-senlin-common.noarch: W: no-documentation
openstack-senlin-common.noarch: W: non-standard-gid /etc/senlin/policy.json senlin
openstack-senlin-common.noarch: E: non-readable /etc/senlin/policy.json 0640L
openstack-senlin-common.noarch: W: non-standard-gid /usr/share/senlin/senlin-dist.conf senlin
openstack-senlin-common.noarch: E: non-readable /usr/share/senlin/senlin-dist.conf 0640L
openstack-senlin-common.noarch: W: non-standard-gid /etc/senlin/api-paste.ini senlin
openstack-senlin-common.noarch: E: non-readable /etc/senlin/api-paste.ini 0640L
openstack-senlin-common.noarch: E: incoherent-logrotate-file /etc/logrotate.d/openstack-senlin
openstack-senlin-common.noarch: W: non-standard-gid /etc/senlin/senlin.conf senlin
openstack-senlin-common.noarch: E: non-readable /etc/senlin/senlin.conf 0640L
openstack-senlin-common.noarch: W: non-standard-uid /var/log/senlin senlin
openstack-senlin-common.noarch: E: non-standard-dir-perm /var/log/senlin 0750L
openstack-senlin-common.noarch: W: no-manual-page-for-binary senlin-manage
openstack-senlin-common.noarch: W: no-manual-page-for-binary senlin-wsgi-api
openstack-senlin-doc.noarch: E: no-changelogname-tag
openstack-senlin-api.noarch: E: no-changelogname-tag
openstack-senlin-api.noarch: W: only-non-binary-in-usr-lib
openstack-senlin-api.noarch: W: no-documentation
openstack-senlin-api.noarch: W: no-manual-page-for-binary senlin-api
python-senlin-tests-unit.noarch: E: no-changelogname-tag
python-senlin-tests-unit.noarch: W: no-documentation
openstack-senlin-engine.noarch: E: no-changelogname-tag
openstack-senlin-engine.noarch: W: only-non-binary-in-usr-lib
openstack-senlin-engine.noarch: W: no-documentation
openstack-senlin-engine.noarch: W: no-manual-page-for-binary senlin-engine
7 packages and 0 specfiles checked; 17 errors, 17 warnings.



Requires
--------
python-senlin-tests-tempest (rpmlib, GLIBC filtered):
    /bin/bash
    python(abi)
    python-senlin
    python-tempest

python-senlin (rpmlib, GLIBC filtered):
    python(abi)
    python-babel
    python-docker
    python-eventlet
    python-jsonpath-rw
    python-jsonschema
    python-keystoneauth1
    python-keystonemiddleware
    python-microversion-parse
    python-migrate
    python-openstacksdk
    python-oslo-config
    python-oslo-context
    python-oslo-db
    python-oslo-i18n
    python-oslo-log
    python-oslo-messaging
    python-oslo-middleware
    python-oslo-policy
    python-oslo-serialization
    python-oslo-service
    python-oslo-utils
    python-oslo-versionedobjects
    python-osprofiler
    python-paste-deploy
    python-pbr
    python-qpid
    python-requests
    python-routes
    python-six
    python-sqlalchemy
    python-stevedore
    python-webob

openstack-senlin-common (rpmlib, GLIBC filtered):
    /bin/sh
    /usr/bin/python2
    config(openstack-senlin-common)
    python-senlin

openstack-senlin-doc (rpmlib, GLIBC filtered):

openstack-senlin-api (rpmlib, GLIBC filtered):
    /bin/sh
    /usr/bin/python2
    openstack-senlin-common

python-senlin-tests-unit (rpmlib, GLIBC filtered):
    python(abi)
    python-mock
    python-os-testr
    python-oslotest
    python-senlin
    python-testrepository
    python-testscenarios
    python-testtools

openstack-senlin-engine (rpmlib, GLIBC filtered):
    /bin/sh
    /usr/bin/python2
    openstack-senlin-common



Provides
--------
python-senlin-tests-tempest:
    python-senlin-tests-tempest

python-senlin:
    python-senlin

openstack-senlin-common:
    config(openstack-senlin-common)
    openstack-senlin-common

openstack-senlin-doc:
    openstack-senlin-doc

openstack-senlin-api:
    openstack-senlin-api

python-senlin-tests-unit:
    python-senlin-tests-unit

openstack-senlin-engine:
    openstack-senlin-engine



Generated by fedora-review 0.6.1 (f03e4e7) last change: 2016-05-02
Command line :/usr/bin/fedora-review -m dlrn-master -rn openstack-senlin-4.0.0-0.20170718122527.eb26b48.el7.centos.src.rpm
Buildroot used: dlrn-centos-master-x86_64-1
Active plugins: Python, Generic, Shell-api
Disabled plugins: Java, C/C++, fonts, SugarActivity, Ocaml, Perl, Haskell, R, PHP
Disabled flags: EXARCH, DISTTAG, EPEL5, BATCH, EPEL6


Some comments about found issues:

-  License file license.png is not marked as %license: license file is LICENSE which has been included as %license, so it's correct.

- Files reported as non-readable: /var/log/senlin, /etc/senlin/policy.json, /usr/share/senlin/senlin-dist.conf, /etc/senlin/senlin.conf and /etc/senlin/api-paste.ini . File permissions are correct from a security perspective, only root and senlin group has read permissions which is right:

- no-changelogname-tag errors: this spec is for DLRN which does not use changelog.

- non-executable-script: the files with this warning are not actually scripts but python files used by binaries. they wouldn't need shebang header but that should be fixed upstream.

- wrong-script-interpreter: warning about using "/usr/bin/env python". See https://fedoraproject.org/wiki/Script_Interpreters_(draft) . This should be fixed upstream and it's not a blocker.

- non-standard-dir-perm for /var/log/senlin. 0750 permissions mode is correct for this directory.

- incoherent-logrotate-file: according to the error definition "The log file or directory name should be the same as the package name in lower case." logrotate file name is the same as package name, openstack-senlin so it seems correct.

This package is APPROVED

Comment 11 Christopher Brown 2017-07-20 13:30:39 UTC
Package merged, closing.


Note You need to log in before you can comment on or make changes to this bug.