Update Master SHAs - 17 Jan 2016
This patch does the following: - updates the Master SHAs for new development work. - includes updates to policy, paste and rootwrap files as required - moves the Aodh repository to openstack_services as it now has implemented a stable branch - Updated the keystone-wsgi file as it was still running the code from liberty - add 2 package requirements to keystone which must be present for the new wsgi file. - updates tempest.conf.j2 to replace ssh_auth_method with auth_method, and change auth_method to 'keypair' (configured is no longer an a valid option) Change-Id: I933c24c03518865d9d40519dafb2ba46769a5453 Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
This commit is contained in:
parent
96abeb22b6
commit
c4f45f5f08
@ -27,23 +27,17 @@
|
|||||||
|
|
||||||
## Tempest service
|
## Tempest service
|
||||||
tempest_git_repo: https://git.openstack.org/openstack/tempest
|
tempest_git_repo: https://git.openstack.org/openstack/tempest
|
||||||
tempest_git_install_branch: d289567c278edeac6ddaf0829e4159aef17c1552 # HEAD of "master" as of 24.10.2015
|
tempest_git_install_branch: 5cc7ef78b4233444a4dcea1b1eb8f213c1548491 # HEAD of "master" as of 17.01.2016
|
||||||
tempest_git_dest: "/opt/tempest_{{ tempest_git_install_branch | replace('/', '_') }}"
|
tempest_git_dest: "/opt/tempest_{{ tempest_git_install_branch | replace('/', '_') }}"
|
||||||
|
|
||||||
|
|
||||||
## aodh service
|
|
||||||
aodh_git_repo: https://git.openstack.org/openstack/aodh
|
|
||||||
aodh_git_install_branch: 8c9d2c8804cfb37f7e064e1c0df4b43590f1a3ee # HEAD of "master" as of 24.10.2015
|
|
||||||
aodh_git_dest: "/opt/aodh_{{ aodh_git_install_branch | replace('/', '_') }}"
|
|
||||||
|
|
||||||
|
|
||||||
## NOVNC from source
|
## NOVNC from source
|
||||||
novncproxy_git_repo: https://github.com/kanaka/novnc
|
novncproxy_git_repo: https://github.com/kanaka/novnc
|
||||||
novncproxy_git_install_branch: 6a90803feb124791960e3962e328aa3cfb729aeb # HEAD of "master" as of 24.10.2015
|
novncproxy_git_install_branch: 670dbddb54264fd0082d0aca1b3acb0f1814b1d2 # HEAD of "master" as of 17.01.2016
|
||||||
novncproxy_git_dest: "/opt/novnc_{{ novncproxy_git_install_branch | replace('/', '_') }}"
|
novncproxy_git_dest: "/opt/novnc_{{ novncproxy_git_install_branch | replace('/', '_') }}"
|
||||||
|
|
||||||
|
|
||||||
## spice-html5 from source
|
## spice-html5 from source
|
||||||
spicehtml5_git_repo: https://github.com/SPICE/spice-html5
|
spicehtml5_git_repo: https://github.com/SPICE/spice-html5
|
||||||
spicehtml5_git_install_branch: c1e736b083ff47639ecb73ea9be4d14b5002f93f # HEAD of "master" as of 24.10.2015
|
spicehtml5_git_install_branch: ab73d009487c8afd4def39b54a422499b4c13c40 # HEAD of "master" as of 17.01.2016
|
||||||
spicehtml5_git_dest: "/opt/spicehtml5_{{ spicehtml5_git_install_branch | replace('/', '_') }}"
|
spicehtml5_git_dest: "/opt/spicehtml5_{{ spicehtml5_git_install_branch | replace('/', '_') }}"
|
||||||
|
@ -31,71 +31,77 @@
|
|||||||
|
|
||||||
## Global Requirements
|
## Global Requirements
|
||||||
requirements_git_repo: https://git.openstack.org/openstack/requirements
|
requirements_git_repo: https://git.openstack.org/openstack/requirements
|
||||||
requirements_git_install_branch: 2854532c8549e82b180e348fd11a43bc13f8af6a # HEAD of "master" as of 24.10.2015
|
requirements_git_install_branch: 332278d456e06870150835564342570ec9d5f5a0 # HEAD of "master" as of 17.01.2016
|
||||||
requirements_git_dest: "/opt/requirements_{{ requirements_git_install_branch | replace('/', '_') }}"
|
requirements_git_dest: "/opt/requirements_{{ requirements_git_install_branch | replace('/', '_') }}"
|
||||||
|
|
||||||
|
|
||||||
|
## Aodh service
|
||||||
|
aodh_git_repo: https://git.openstack.org/openstack/aodh
|
||||||
|
aodh_git_install_branch: 239e1f629b26557ceadb92de3d62edcd87489b9d # HEAD of "master" as of 17.01.2016
|
||||||
|
aodh_git_dest: "/opt/aodh_{{ aodh_git_install_branch | replace('/', '_') }}"
|
||||||
|
|
||||||
|
|
||||||
## Ceilometer service
|
## Ceilometer service
|
||||||
ceilometer_git_repo: https://git.openstack.org/openstack/ceilometer
|
ceilometer_git_repo: https://git.openstack.org/openstack/ceilometer
|
||||||
ceilometer_git_install_branch: b34865f80818165187552e7feca4ead2e61a30d3 # HEAD of "master" as of 24.10.2015
|
ceilometer_git_install_branch: 333024b69aa7810e78aef85e5171cfd6dbd6b740 # HEAD of "master" as of 17.01.2016
|
||||||
ceilometer_git_dest: "/opt/ceilometer_{{ceilometer_git_install_branch | replace('/', '_') }}"
|
ceilometer_git_dest: "/opt/ceilometer_{{ceilometer_git_install_branch | replace('/', '_') }}"
|
||||||
|
|
||||||
|
|
||||||
## Cinder service
|
## Cinder service
|
||||||
cinder_git_repo: https://git.openstack.org/openstack/cinder
|
cinder_git_repo: https://git.openstack.org/openstack/cinder
|
||||||
cinder_git_install_branch: 774c8a9dc4cfe559a1d2f3afd2380ea8f9cdd6ee # HEAD of "master" as of 24.10.2015
|
cinder_git_install_branch: 94ae8598b96e2f86844fdf0f35a8b83a94c7b4c4 # HEAD of "master" as of 17.01.2016
|
||||||
cinder_git_dest: "/opt/cinder_{{ cinder_git_install_branch | replace('/', '_') }}"
|
cinder_git_dest: "/opt/cinder_{{ cinder_git_install_branch | replace('/', '_') }}"
|
||||||
|
|
||||||
|
|
||||||
## Glance service
|
## Glance service
|
||||||
glance_git_repo: https://git.openstack.org/openstack/glance
|
glance_git_repo: https://git.openstack.org/openstack/glance
|
||||||
glance_git_install_branch: b7703a4aab4f4c6315a5f0a12620336f96532108 # HEAD of "master" as of 24.10.2015
|
glance_git_install_branch: 7d5c3710ce2739a8ac356208d4e104f2ce3ec9ab # HEAD of "master" as of 17.01.2016
|
||||||
glance_git_dest: "/opt/glance_{{ glance_git_install_branch | replace('/', '_') }}"
|
glance_git_dest: "/opt/glance_{{ glance_git_install_branch | replace('/', '_') }}"
|
||||||
|
|
||||||
|
|
||||||
## Heat service
|
## Heat service
|
||||||
heat_git_repo: https://git.openstack.org/openstack/heat
|
heat_git_repo: https://git.openstack.org/openstack/heat
|
||||||
heat_git_install_branch: cd1a61e3d794bd37dd964ba7c37f1d0cb2bb2e81 # HEAD of "master" as of 24.10.2015
|
heat_git_install_branch: 7e3e4087f476a0431d1d278730b1736e02e5fd06 # HEAD of "master" as of 17.01.2016
|
||||||
heat_git_dest: "/opt/heat_{{ heat_git_install_branch | replace('/', '_') }}"
|
heat_git_dest: "/opt/heat_{{ heat_git_install_branch | replace('/', '_') }}"
|
||||||
|
|
||||||
|
|
||||||
## Horizon service
|
## Horizon service
|
||||||
horizon_git_repo: https://git.openstack.org/openstack/horizon
|
horizon_git_repo: https://git.openstack.org/openstack/horizon
|
||||||
horizon_git_install_branch: aa068eca807885182886b2a2f28591d6ac9e689e # HEAD of "master" as of 24.10.2015
|
horizon_git_install_branch: 18f1605bddd428a014d0e43ef52d1af6305e1e03 # HEAD of "master" as of 17.01.2016
|
||||||
horizon_git_dest: "/opt/horizon_{{ horizon_git_install_branch | replace('/', '_') }}"
|
horizon_git_dest: "/opt/horizon_{{ horizon_git_install_branch | replace('/', '_') }}"
|
||||||
|
|
||||||
|
|
||||||
## Keystone service
|
## Keystone service
|
||||||
keystone_git_repo: https://git.openstack.org/openstack/keystone
|
keystone_git_repo: https://git.openstack.org/openstack/keystone
|
||||||
keystone_git_install_branch: ebe82fcd21116f4bdae9dc97407e04f5184dc9b0 # HEAD of "master" as of 24.10.2015
|
keystone_git_install_branch: a55128044f763f5cfe2fdc57c738eaca97636448 # HEAD of "master" as of 17.01.2016
|
||||||
keystone_git_dest: "/opt/keystone_{{ keystone_git_install_branch | replace('/', '_') }}"
|
keystone_git_dest: "/opt/keystone_{{ keystone_git_install_branch | replace('/', '_') }}"
|
||||||
|
|
||||||
|
|
||||||
## Neutron service
|
## Neutron service
|
||||||
neutron_git_repo: https://git.openstack.org/openstack/neutron
|
neutron_git_repo: https://git.openstack.org/openstack/neutron
|
||||||
neutron_git_install_branch: 554b5d96cdb8b0b8987f37b8ae0336e910c5675c # HEAD of "master" as of 24.10.2015
|
neutron_git_install_branch: d6d43b32ca825b6c3c2c908f5ff7bc50c736546e # HEAD of "master" as of 17.01.2016
|
||||||
neutron_git_dest: "/opt/neutron_{{ neutron_git_install_branch | replace('/', '_') }}"
|
neutron_git_dest: "/opt/neutron_{{ neutron_git_install_branch | replace('/', '_') }}"
|
||||||
|
|
||||||
neutron_lbaas_git_repo: https://git.openstack.org/openstack/neutron-lbaas
|
neutron_lbaas_git_repo: https://git.openstack.org/openstack/neutron-lbaas
|
||||||
neutron_lbaas_git_install_branch: 8427934f76f1c213044a54da60c3b266930efef1 # HEAD of "master" as of 24.10.2015
|
neutron_lbaas_git_install_branch: b5d4e5c0fe02a897ad2ab0bc548f695915998831 # HEAD of "master" as of 17.01.2016
|
||||||
neutron_lbaas_git_dest: "/opt/neutron_lbaas_{{ neutron_lbaas_git_install_branch | replace('/', '_') }}"
|
neutron_lbaas_git_dest: "/opt/neutron_lbaas_{{ neutron_lbaas_git_install_branch | replace('/', '_') }}"
|
||||||
|
|
||||||
neutron_vpnaas_git_repo: https://git.openstack.org/openstack/neutron-vpnaas
|
neutron_vpnaas_git_repo: https://git.openstack.org/openstack/neutron-vpnaas
|
||||||
neutron_vpnaas_git_install_branch: d4e477d2c515d80a66cf7e5f60a452edc89219d9 # HEAD of "master" as of 24.10.2015
|
neutron_vpnaas_git_install_branch: 832b875b79d801e17a5b997054f30c9d88b36914 # HEAD of "master" as of 17.01.2016
|
||||||
neutron_vpnaas_git_dest: "/opt/neutron_vpnaas_{{ neutron_vpnaas_git_install_branch | replace('/', '_') }}"
|
neutron_vpnaas_git_dest: "/opt/neutron_vpnaas_{{ neutron_vpnaas_git_install_branch | replace('/', '_') }}"
|
||||||
|
|
||||||
neutron_fwaas_git_repo: https://git.openstack.org/openstack/neutron-fwaas
|
neutron_fwaas_git_repo: https://git.openstack.org/openstack/neutron-fwaas
|
||||||
neutron_fwaas_git_install_branch: 64c0e6a56cec1021b8af5b76e5da0485e37d5efb # HEAD of "master" as of 24.10.2015
|
neutron_fwaas_git_install_branch: cb0093d185a97cafc320bd64d9b45dc737cdfdb2 # HEAD of "master" as of 17.01.2016
|
||||||
neutron_fwaas_git_dest: "/opt/neutron_fwaas_{{ neutron_fwaas_git_install_branch | replace('/', '_') }}"
|
neutron_fwaas_git_dest: "/opt/neutron_fwaas_{{ neutron_fwaas_git_install_branch | replace('/', '_') }}"
|
||||||
|
|
||||||
|
|
||||||
## Nova service
|
## Nova service
|
||||||
nova_git_repo: https://git.openstack.org/openstack/nova
|
nova_git_repo: https://git.openstack.org/openstack/nova
|
||||||
nova_git_install_branch: 71d2ed17950edbeb97b479bf04958dbee8f23fc5 # HEAD of "master" as of 24.10.2015
|
nova_git_install_branch: deb1ee440923b0b292f3536a2f8bda672c03984a # HEAD of "master" as of 17.01.2016
|
||||||
nova_git_dest: "/opt/nova_{{ nova_git_install_branch | replace('/', '_') }}"
|
nova_git_dest: "/opt/nova_{{ nova_git_install_branch | replace('/', '_') }}"
|
||||||
|
|
||||||
|
|
||||||
## Swift service
|
## Swift service
|
||||||
swift_git_repo: https://git.openstack.org/openstack/swift
|
swift_git_repo: https://git.openstack.org/openstack/swift
|
||||||
swift_git_install_branch: a094560f0cef9a51f03b9f72dd516d4df717bec6 # HEAD of "master" as of 24.10.2015
|
swift_git_install_branch: 4db7e2e2e4d80757a717485e3b639b16e0a66f68 # HEAD of "master" as of 17.01.2016
|
||||||
swift_git_dest: "/opt/swift_{{ swift_git_install_branch | replace('/', '_') }}"
|
swift_git_dest: "/opt/swift_{{ swift_git_install_branch | replace('/', '_') }}"
|
||||||
|
@ -15,5 +15,5 @@
|
|||||||
|
|
||||||
## Git Source for python2-lxc library
|
## Git Source for python2-lxc library
|
||||||
git_repo: https://github.com/lxc/python2-lxc
|
git_repo: https://github.com/lxc/python2-lxc
|
||||||
git_install_branch: 0553f05d23b56b59bf3015fa5e45bfbfab9021ef # HEAD of "master" as of 14.10.2015
|
git_install_branch: 0553f05d23b56b59bf3015fa5e45bfbfab9021ef # HEAD of "master" as of 17.01.2016
|
||||||
git_dest: "/opt/lxc_python2_{{ git_install_branch|replace('/', '_') }}"
|
git_dest: "/opt/lxc_python2_{{ git_install_branch|replace('/', '_') }}"
|
||||||
|
@ -1,21 +1,20 @@
|
|||||||
{
|
{
|
||||||
"context_is_admin": "role:admin",
|
"context_is_admin": "role:admin",
|
||||||
"context_is_project": "project_id:%(target.project_id)s",
|
|
||||||
"context_is_owner": "user_id:%(target.user_id)s",
|
|
||||||
"segregation": "rule:context_is_admin",
|
"segregation": "rule:context_is_admin",
|
||||||
"service_role": "role:service",
|
"admin_or_owner": "rule:context_is_admin or project_id:%(project_id)s",
|
||||||
"iaas_role": "role:iaas",
|
"default": "rule:admin_or_owner",
|
||||||
|
|
||||||
"telemetry:get_alarm": "rule:context_is_admin",
|
"telemetry:get_alarm": "rule:admin_or_owner",
|
||||||
"telemetry:query_alarm": "rule:context_is_admin",
|
"telemetry:get_alarms": "rule:admin_or_owner",
|
||||||
"telemetry:get_alarm_state": "rule:context_is_admin",
|
"telemetry:query_alarm": "rule:admin_or_owner",
|
||||||
"telemetry:get_alarms": "rule:context_is_admin",
|
|
||||||
"telemetry:create_alarm": "rule:context_is_admin",
|
|
||||||
"telemetry:set_alarm": "rule:context_is_admin",
|
|
||||||
"telemetry:delete_alarm": "rule:context_is_admin",
|
|
||||||
|
|
||||||
"telemetry:alarm_history": "rule:context_is_admin",
|
"telemetry:create_alarm": "",
|
||||||
"telemetry:change_alarm_state": "rule:context_is_admin",
|
"telemetry:change_alarm": "rule:admin_or_owner",
|
||||||
"telemetry:query_alarm_history": "rule:context_is_admin"
|
"telemetry:delete_alarm": "rule:admin_or_owner",
|
||||||
|
|
||||||
|
"telemetry:get_alarm_state": "rule:admin_or_owner",
|
||||||
|
"telemetry:change_alarm_state": "rule:admin_or_owner",
|
||||||
|
|
||||||
|
"telemetry:alarm_history": "rule:admin_or_owner",
|
||||||
|
"telemetry:query_alarm_history": "rule:admin_or_owner"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -134,8 +134,11 @@ ceilometer_service_names:
|
|||||||
|
|
||||||
## Tunable overrides
|
## Tunable overrides
|
||||||
ceilometer_policy_overrides: {}
|
ceilometer_policy_overrides: {}
|
||||||
|
ceilometer_rootwrap_conf_overrides: {}
|
||||||
ceilometer_ceilometer_conf_overrides: {}
|
ceilometer_ceilometer_conf_overrides: {}
|
||||||
ceilometer_api_paste_ini_overrides: {}
|
ceilometer_api_paste_ini_overrides: {}
|
||||||
ceilometer_event_definitions_yaml_overrides: {}
|
ceilometer_event_definitions_yaml_overrides: {}
|
||||||
ceilometer_event_pipeline_yaml_overrides: {}
|
ceilometer_event_pipeline_yaml_overrides: {}
|
||||||
ceilometer_pipeline_yaml_overrides: {}
|
ceilometer_pipeline_yaml_overrides: {}
|
||||||
|
ceilometer_gnocci_resources_yaml_overrides: {}
|
||||||
|
ceilometer_osprofiler_event_definitions_yaml_overrides: {}
|
||||||
|
@ -0,0 +1,7 @@
|
|||||||
|
# ceilometer-rootwrap command filters for IPMI capable nodes
|
||||||
|
# This file should be owned by (and only-writeable by) the root user
|
||||||
|
|
||||||
|
[Filters]
|
||||||
|
# ceilometer/ipmi/nodemanager/node_manager.py: 'ipmitool'
|
||||||
|
ipmitool: CommandFilter, ipmitool, root
|
||||||
|
|
@ -31,6 +31,10 @@
|
|||||||
dest: "/etc/ceilometer/api_paste.ini"
|
dest: "/etc/ceilometer/api_paste.ini"
|
||||||
config_overrides: "{{ ceilometer_api_paste_ini_overrides }}"
|
config_overrides: "{{ ceilometer_api_paste_ini_overrides }}"
|
||||||
config_type: "ini"
|
config_type: "ini"
|
||||||
|
- src: "rootwrap.conf.j2"
|
||||||
|
dest: "/etc/ceilometer/rootwrap.conf"
|
||||||
|
config_overrides: "{{ ceilometer_rootwrap_conf_overrides }}"
|
||||||
|
config_type: "ini"
|
||||||
- src: "event_pipeline.yaml.j2"
|
- src: "event_pipeline.yaml.j2"
|
||||||
dest: "/etc/ceilometer/event_pipeline.yaml"
|
dest: "/etc/ceilometer/event_pipeline.yaml"
|
||||||
config_overrides: "{{ ceilometer_event_pipeline_yaml_overrides }}"
|
config_overrides: "{{ ceilometer_event_pipeline_yaml_overrides }}"
|
||||||
@ -43,6 +47,14 @@
|
|||||||
dest: "/etc/ceilometer/pipeline.yaml"
|
dest: "/etc/ceilometer/pipeline.yaml"
|
||||||
config_overrides: "{{ ceilometer_pipeline_yaml_overrides }}"
|
config_overrides: "{{ ceilometer_pipeline_yaml_overrides }}"
|
||||||
config_type: "yaml"
|
config_type: "yaml"
|
||||||
|
- src: "gnocchi_resources.yaml.j2"
|
||||||
|
dest: "/etc/ceilometer/gnocchi_resources.yaml"
|
||||||
|
config_overrides: "{{ ceilometer_gnocci_resources_yaml_overrides }}"
|
||||||
|
config_type: "yaml"
|
||||||
|
- src: "osprofiler_event_definitions.yaml.j2"
|
||||||
|
dest: "/etc/ceilometer/osprofiler_event_definitions.yaml"
|
||||||
|
config_overrides: "{{ ceilometer_osprofiler_event_definitions_yaml_overrides }}"
|
||||||
|
config_type: "yaml"
|
||||||
- src: "policy.json.j2"
|
- src: "policy.json.j2"
|
||||||
dest: "/etc/ceilometer/policy.json"
|
dest: "/etc/ceilometer/policy.json"
|
||||||
config_overrides: "{{ ceilometer_policy_overrides }}"
|
config_overrides: "{{ ceilometer_policy_overrides }}"
|
||||||
@ -52,6 +64,19 @@
|
|||||||
- ceilometer-config
|
- ceilometer-config
|
||||||
- ceilometer-post-install
|
- ceilometer-post-install
|
||||||
|
|
||||||
|
- name: Drop rootwrap filters
|
||||||
|
copy:
|
||||||
|
src: "{{ item.src }}"
|
||||||
|
dest: "{{ item.dest }}"
|
||||||
|
owner: "{{ ceilometer_system_user_name }}"
|
||||||
|
group: "{{ ceilometer_system_group_name }}"
|
||||||
|
with_items:
|
||||||
|
- { src: "rootwrap.d/ipmi.filters", dest: "/etc/ceilometer/rootwrap.d/ipmi.filters" }
|
||||||
|
notify:
|
||||||
|
- Restart ceilometer services
|
||||||
|
tags:
|
||||||
|
- ceilometer-config
|
||||||
|
|
||||||
- name: Get ceilometer command path
|
- name: Get ceilometer command path
|
||||||
command: which ceilometer
|
command: which ceilometer
|
||||||
register: ceilometer_command_path
|
register: ceilometer_command_path
|
||||||
|
@ -56,6 +56,7 @@
|
|||||||
with_items:
|
with_items:
|
||||||
- { path: "/openstack", mode: "0755", owner: "root", group: "root" }
|
- { path: "/openstack", mode: "0755", owner: "root", group: "root" }
|
||||||
- { path: "/etc/ceilometer" }
|
- { path: "/etc/ceilometer" }
|
||||||
|
- { path: "/etc/ceilometer/rootwrap.d" }
|
||||||
- { path: "{{ ceilometer_system_user_home }}" }
|
- { path: "{{ ceilometer_system_user_home }}" }
|
||||||
- { path: "{{ ceilometer_system_user_home }}/.ssh", mode: "0700" }
|
- { path: "{{ ceilometer_system_user_home }}/.ssh", mode: "0700" }
|
||||||
- { path: "/var/cache/ceilometer", mode: "0700" }
|
- { path: "/var/cache/ceilometer", mode: "0700" }
|
||||||
|
@ -8,15 +8,9 @@
|
|||||||
instance_id:
|
instance_id:
|
||||||
fields: payload.instance_id
|
fields: payload.instance_id
|
||||||
host:
|
host:
|
||||||
fields: publisher_id
|
fields: publisher_id.`split(., 1, 1)`
|
||||||
plugin:
|
|
||||||
name: split
|
|
||||||
parameters:
|
|
||||||
segment: 1
|
|
||||||
max_split: 1
|
|
||||||
service:
|
service:
|
||||||
fields: publisher_id
|
fields: publisher_id.`split(., 0, -1)`
|
||||||
plugin: split
|
|
||||||
memory_mb:
|
memory_mb:
|
||||||
type: int
|
type: int
|
||||||
fields: payload.memory_mb
|
fields: payload.memory_mb
|
||||||
@ -96,6 +90,12 @@
|
|||||||
fields: payload.snapshot_id
|
fields: payload.snapshot_id
|
||||||
volume_id:
|
volume_id:
|
||||||
fields: payload.volume_id
|
fields: payload.volume_id
|
||||||
|
- event_type: ['image_volume_cache.*']
|
||||||
|
traits:
|
||||||
|
image_id:
|
||||||
|
fields: payload.image_id
|
||||||
|
host:
|
||||||
|
fields: payload.host
|
||||||
- event_type: ['image.update', 'image.upload', 'image.delete']
|
- event_type: ['image.update', 'image.upload', 'image.delete']
|
||||||
traits: &glance_crud
|
traits: &glance_crud
|
||||||
project_id:
|
project_id:
|
||||||
@ -331,6 +331,10 @@
|
|||||||
fields: ['payload.ipsec_site_connection.id', 'payload.id']
|
fields: ['payload.ipsec_site_connection.id', 'payload.id']
|
||||||
- event_type: '*http.*'
|
- event_type: '*http.*'
|
||||||
traits: &http_audit
|
traits: &http_audit
|
||||||
|
project_id:
|
||||||
|
fields: payload.initiator.project_id
|
||||||
|
user_id:
|
||||||
|
fields: payload.initiator.id
|
||||||
typeURI:
|
typeURI:
|
||||||
fields: payload.typeURI
|
fields: payload.typeURI
|
||||||
eventType:
|
eventType:
|
||||||
@ -366,4 +370,152 @@
|
|||||||
<<: *http_audit
|
<<: *http_audit
|
||||||
reason_code:
|
reason_code:
|
||||||
fields: payload.reason.reasonCode
|
fields: payload.reason.reasonCode
|
||||||
|
- event_type: ['dns.domain.create', 'dns.domain.update', 'dns.domain.delete']
|
||||||
|
traits: &dns_domain_traits
|
||||||
|
status:
|
||||||
|
fields: payload.status
|
||||||
|
retry:
|
||||||
|
fields: payload.retry
|
||||||
|
description:
|
||||||
|
fields: payload.description
|
||||||
|
expire:
|
||||||
|
fields: payload.expire
|
||||||
|
email:
|
||||||
|
fields: payload.email
|
||||||
|
ttl:
|
||||||
|
fields: payload.ttl
|
||||||
|
action:
|
||||||
|
fields: payload.action
|
||||||
|
name:
|
||||||
|
fields: payload.name
|
||||||
|
resource_id:
|
||||||
|
fields: payload.id
|
||||||
|
created_at:
|
||||||
|
fields: payload.created_at
|
||||||
|
updated_at:
|
||||||
|
fields: payload.updated_at
|
||||||
|
version:
|
||||||
|
fields: payload.version
|
||||||
|
parent_domain_id:
|
||||||
|
fields: parent_domain_id
|
||||||
|
serial:
|
||||||
|
fields: payload.serial
|
||||||
|
- event_type: dns.domain.exists
|
||||||
|
traits:
|
||||||
|
<<: *dns_domain_traits
|
||||||
|
audit_period_beginning:
|
||||||
|
type: datetime
|
||||||
|
fields: payload.audit_period_beginning
|
||||||
|
audit_period_ending:
|
||||||
|
type: datetime
|
||||||
|
fields: payload.audit_period_ending
|
||||||
|
- event_type: trove.*
|
||||||
|
traits: &trove_base_traits
|
||||||
|
state:
|
||||||
|
fields: payload.state_description
|
||||||
|
instance_type:
|
||||||
|
fields: payload.instance_type
|
||||||
|
user_id:
|
||||||
|
fields: payload.user_id
|
||||||
|
resource_id:
|
||||||
|
fields: payload.instance_id
|
||||||
|
instance_type_id:
|
||||||
|
fields: payload.instance_type_id
|
||||||
|
launched_at:
|
||||||
|
type: datetime
|
||||||
|
fields: payload.launched_at
|
||||||
|
instance_name:
|
||||||
|
fields: payload.instance_name
|
||||||
|
state:
|
||||||
|
fields: payload.state
|
||||||
|
nova_instance_id:
|
||||||
|
fields: payload.nova_instance_id
|
||||||
|
service_id:
|
||||||
|
fields: payload.service_id
|
||||||
|
created_at:
|
||||||
|
type: datetime
|
||||||
|
fields: payload.created_at
|
||||||
|
region:
|
||||||
|
fields: payload.region
|
||||||
|
- event_type: ['trove.instance.create', 'trove.instance.modify_volume', 'trove.instance.modify_flavor', 'trove.instance.delete']
|
||||||
|
traits: &trove_common_traits
|
||||||
|
name:
|
||||||
|
fields: payload.name
|
||||||
|
availability_zone:
|
||||||
|
fields: payload.availability_zone
|
||||||
|
instance_size:
|
||||||
|
type: int
|
||||||
|
fields: payload.instance_size
|
||||||
|
volume_size:
|
||||||
|
type: int
|
||||||
|
fields: payload.volume_size
|
||||||
|
nova_volume_id:
|
||||||
|
fields: payload.nova_volume_id
|
||||||
|
- event_type: trove.instance.create
|
||||||
|
traits:
|
||||||
|
<<: [*trove_base_traits, *trove_common_traits]
|
||||||
|
- event_type: trove.instance.modify_volume
|
||||||
|
traits:
|
||||||
|
<<: [*trove_base_traits, *trove_common_traits]
|
||||||
|
old_volume_size:
|
||||||
|
type: int
|
||||||
|
fields: payload.old_volume_size
|
||||||
|
modify_at:
|
||||||
|
type: datetime
|
||||||
|
fields: payload.modify_at
|
||||||
|
- event_type: trove.instance.modify_flavor
|
||||||
|
traits:
|
||||||
|
<<: [*trove_base_traits, *trove_common_traits]
|
||||||
|
old_instance_size:
|
||||||
|
type: int
|
||||||
|
fields: payload.old_instance_size
|
||||||
|
modify_at:
|
||||||
|
type: datetime
|
||||||
|
fields: payload.modify_at
|
||||||
|
- event_type: trove.instance.delete
|
||||||
|
traits:
|
||||||
|
<<: [*trove_base_traits, *trove_common_traits]
|
||||||
|
deleted_at:
|
||||||
|
type: datetime
|
||||||
|
fields: payload.deleted_at
|
||||||
|
- event_type: trove.instance.exists
|
||||||
|
traits:
|
||||||
|
<<: *trove_base_traits
|
||||||
|
display_name:
|
||||||
|
fields: payload.display_name
|
||||||
|
audit_period_beginning:
|
||||||
|
type: datetime
|
||||||
|
fields: payload.audit_period_beginning
|
||||||
|
audit_period_ending:
|
||||||
|
type: datetime
|
||||||
|
fields: payload.audit_period_ending
|
||||||
|
- event_type: profiler.*
|
||||||
|
traits:
|
||||||
|
project:
|
||||||
|
fields: payload.project
|
||||||
|
service:
|
||||||
|
fields: payload.service
|
||||||
|
name:
|
||||||
|
fields: payload.name
|
||||||
|
base_id:
|
||||||
|
fields: payload.base_id
|
||||||
|
trace_id:
|
||||||
|
fields: payload.trace_id
|
||||||
|
parent_id:
|
||||||
|
fields: payload.parent_id
|
||||||
|
timestamp:
|
||||||
|
fields: payload.timestamp
|
||||||
|
host:
|
||||||
|
fields: payload.info.host
|
||||||
|
path:
|
||||||
|
fields: payload.info.request.path
|
||||||
|
query:
|
||||||
|
fields: payload.info.request.query
|
||||||
|
method:
|
||||||
|
fields: payload.info.request.method
|
||||||
|
scheme:
|
||||||
|
fields: payload.info.request.scheme
|
||||||
|
db.statement:
|
||||||
|
fields: payload.info.db.statement
|
||||||
|
db.params:
|
||||||
|
fields: payload.info.db.params
|
||||||
|
@ -10,4 +10,4 @@ sinks:
|
|||||||
transformers:
|
transformers:
|
||||||
triggers:
|
triggers:
|
||||||
publishers:
|
publishers:
|
||||||
- direct://
|
- notifier://
|
||||||
|
@ -0,0 +1,176 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
resources:
|
||||||
|
- resource_type: identity
|
||||||
|
archive_policy: low
|
||||||
|
metrics:
|
||||||
|
- 'identity.authenticate.success'
|
||||||
|
- 'identity.authenticate.pending'
|
||||||
|
- 'identity.authenticate.failure'
|
||||||
|
- 'identity.user.created'
|
||||||
|
- 'identity.user.deleted'
|
||||||
|
- 'identity.user.updated'
|
||||||
|
- 'identity.group.created'
|
||||||
|
- 'identity.group.deleted'
|
||||||
|
- 'identity.group.updated'
|
||||||
|
- 'identity.role.created'
|
||||||
|
- 'identity.role.deleted'
|
||||||
|
- 'identity.role.updated'
|
||||||
|
- 'identity.project.created'
|
||||||
|
- 'identity.project.deleted'
|
||||||
|
- 'identity.project.updated'
|
||||||
|
- 'identity.trust.created'
|
||||||
|
- 'identity.trust.deleted'
|
||||||
|
- 'identity.role_assignment.created'
|
||||||
|
- 'identity.role_assignment.deleted'
|
||||||
|
|
||||||
|
- resource_type: ceph_account
|
||||||
|
metrics:
|
||||||
|
- 'radosgw.objects'
|
||||||
|
- 'radosgw.objects.size'
|
||||||
|
- 'radosgw.objects.containers'
|
||||||
|
- 'radosgw.api.request'
|
||||||
|
- 'radosgw.containers.objects'
|
||||||
|
- 'radosgw.containers.objects.size'
|
||||||
|
|
||||||
|
- resource_type: instance
|
||||||
|
metrics:
|
||||||
|
- 'instance'
|
||||||
|
- 'memory'
|
||||||
|
- 'memory.usage'
|
||||||
|
- 'memory.resident'
|
||||||
|
- 'vcpus'
|
||||||
|
- 'cpu'
|
||||||
|
- 'cpu.delta'
|
||||||
|
- 'cpu_util'
|
||||||
|
- 'disk.root.size'
|
||||||
|
- 'disk.ephemeral.size'
|
||||||
|
- 'disk.read.requests'
|
||||||
|
- 'disk.read.requests.rate'
|
||||||
|
- 'disk.write.requests'
|
||||||
|
- 'disk.write.requests.rate'
|
||||||
|
- 'disk.read.bytes'
|
||||||
|
- 'disk.read.bytes.rate'
|
||||||
|
- 'disk.write.bytes'
|
||||||
|
- 'disk.write.bytes.rate'
|
||||||
|
- 'disk.latency'
|
||||||
|
- 'disk.iops'
|
||||||
|
- 'disk.capacity'
|
||||||
|
- 'disk.allocation'
|
||||||
|
- 'disk.usage'
|
||||||
|
attributes:
|
||||||
|
host: resource_metadata.host
|
||||||
|
image_ref: resource_metadata.image_ref
|
||||||
|
display_name: resource_metadata.display_name
|
||||||
|
flavor_id: resource_metadata.(instance_flavor_id|(flavor.id))
|
||||||
|
server_group: resource_metadata.user_metadata.server_group
|
||||||
|
|
||||||
|
- resource_type: instance_network_interface
|
||||||
|
metrics:
|
||||||
|
- 'network.outgoing.packets.rate'
|
||||||
|
- 'network.incoming.packets.rate'
|
||||||
|
- 'network.outgoing.packets'
|
||||||
|
- 'network.incoming.packets'
|
||||||
|
- 'network.outgoing.bytes.rate'
|
||||||
|
- 'network.incoming.bytes.rate'
|
||||||
|
- 'network.outgoing.bytes'
|
||||||
|
- 'network.incoming.bytes'
|
||||||
|
attributes:
|
||||||
|
name: resource_metadata.vnic_name
|
||||||
|
instance_id: resource_metadata.instance_id
|
||||||
|
|
||||||
|
- resource_type: instance_disk
|
||||||
|
metrics:
|
||||||
|
- 'disk.device.read.requests'
|
||||||
|
- 'disk.device.read.requests.rate'
|
||||||
|
- 'disk.device.write.requests'
|
||||||
|
- 'disk.device.write.requests.rate'
|
||||||
|
- 'disk.device.read.bytes'
|
||||||
|
- 'disk.device.read.bytes.rate'
|
||||||
|
- 'disk.device.write.bytes'
|
||||||
|
- 'disk.device.write.bytes.rate'
|
||||||
|
- 'disk.device.latency'
|
||||||
|
- 'disk.device.iops'
|
||||||
|
- 'disk.device.capacity'
|
||||||
|
- 'disk.device.allocation'
|
||||||
|
- 'disk.device.usage'
|
||||||
|
attributes:
|
||||||
|
name: resource_metadata.disk_name
|
||||||
|
instance_id: resource_metadata.instance_id
|
||||||
|
|
||||||
|
- resource_type: image
|
||||||
|
metrics:
|
||||||
|
- 'image'
|
||||||
|
- 'image.size'
|
||||||
|
- 'image.download'
|
||||||
|
- 'image.serve'
|
||||||
|
attributes:
|
||||||
|
name: resource_metadata.name
|
||||||
|
container_format: resource_metadata.container_format
|
||||||
|
disk_format: resource_metadata.disk_format
|
||||||
|
|
||||||
|
- resource_type: ipmi
|
||||||
|
metrics:
|
||||||
|
- 'hardware.ipmi.node.power'
|
||||||
|
- 'hardware.ipmi.node.temperature'
|
||||||
|
- 'hardware.ipmi.node.inlet_temperature'
|
||||||
|
- 'hardware.ipmi.node.outlet_temperature'
|
||||||
|
- 'hardware.ipmi.node.fan'
|
||||||
|
- 'hardware.ipmi.node.current'
|
||||||
|
- 'hardware.ipmi.node.voltage'
|
||||||
|
- 'hardware.ipmi.node.airflow'
|
||||||
|
- 'hardware.ipmi.node.cups'
|
||||||
|
- 'hardware.ipmi.node.cpu_util'
|
||||||
|
- 'hardware.ipmi.node.mem_util'
|
||||||
|
- 'hardware.ipmi.node.io_util'
|
||||||
|
|
||||||
|
- resource_type: network
|
||||||
|
metrics:
|
||||||
|
- 'bandwidth'
|
||||||
|
- 'network'
|
||||||
|
- 'network.create'
|
||||||
|
- 'network.update'
|
||||||
|
- 'subnet'
|
||||||
|
- 'subnet.create'
|
||||||
|
- 'subnet.update'
|
||||||
|
- 'port'
|
||||||
|
- 'port.create'
|
||||||
|
- 'port.update'
|
||||||
|
- 'router'
|
||||||
|
- 'router.create'
|
||||||
|
- 'router.update'
|
||||||
|
- 'ip.floating'
|
||||||
|
- 'ip.floating.create'
|
||||||
|
- 'ip.floating.update'
|
||||||
|
|
||||||
|
- resource_type: stack
|
||||||
|
metrics:
|
||||||
|
- 'stack.create'
|
||||||
|
- 'stack.update'
|
||||||
|
- 'stack.delete'
|
||||||
|
- 'stack.resume'
|
||||||
|
- 'stack.suspend'
|
||||||
|
|
||||||
|
- resource_type: swift_account
|
||||||
|
metrics:
|
||||||
|
- 'storage.objects.incoming.bytes'
|
||||||
|
- 'storage.objects.outgoing.bytes'
|
||||||
|
- 'storage.api.request'
|
||||||
|
- 'storage.objects.size'
|
||||||
|
- 'storage.objects'
|
||||||
|
- 'storage.objects.containers'
|
||||||
|
- 'storage.containers.objects'
|
||||||
|
- 'storage.containers.objects.size'
|
||||||
|
|
||||||
|
- resource_type: volume
|
||||||
|
metrics:
|
||||||
|
- 'volume'
|
||||||
|
- 'volume.size'
|
||||||
|
- 'volume.create'
|
||||||
|
- 'volume.delete'
|
||||||
|
- 'volume.update'
|
||||||
|
- 'volume.resize'
|
||||||
|
- 'volume.attach'
|
||||||
|
- 'volume.detach'
|
||||||
|
attributes:
|
||||||
|
display_name: resource_metadata.display_name
|
@ -0,0 +1,31 @@
|
|||||||
|
---
|
||||||
|
- event_type: profiler.*
|
||||||
|
traits:
|
||||||
|
project:
|
||||||
|
fields: payload.project
|
||||||
|
service:
|
||||||
|
fields: payload.service
|
||||||
|
name:
|
||||||
|
fields: payload.name
|
||||||
|
base_id:
|
||||||
|
fields: payload.base_id
|
||||||
|
trace_id:
|
||||||
|
fields: payload.trace_id
|
||||||
|
parent_id:
|
||||||
|
fields: payload.parent_id
|
||||||
|
timestamp:
|
||||||
|
fields: payload.timestamp
|
||||||
|
host:
|
||||||
|
fields: payload.info.host
|
||||||
|
path:
|
||||||
|
fields: payload.info.request.path
|
||||||
|
query:
|
||||||
|
fields: payload.info.request.query
|
||||||
|
method:
|
||||||
|
fields: payload.info.request.method
|
||||||
|
scheme:
|
||||||
|
fields: payload.info.request.scheme
|
||||||
|
db.statement:
|
||||||
|
fields: payload.info.db.statement
|
||||||
|
db.params:
|
||||||
|
fields: payload.info.db.params
|
@ -12,6 +12,7 @@ sources:
|
|||||||
- "cpu"
|
- "cpu"
|
||||||
sinks:
|
sinks:
|
||||||
- cpu_sink
|
- cpu_sink
|
||||||
|
- cpu_delta_sink
|
||||||
- name: disk_source
|
- name: disk_source
|
||||||
interval: 600
|
interval: 600
|
||||||
meters:
|
meters:
|
||||||
@ -50,6 +51,15 @@ sinks:
|
|||||||
scale: "100.0 / (10**9 * (resource_metadata.cpu_number or 1))"
|
scale: "100.0 / (10**9 * (resource_metadata.cpu_number or 1))"
|
||||||
publishers:
|
publishers:
|
||||||
- notifier://
|
- notifier://
|
||||||
|
- name: cpu_delta_sink
|
||||||
|
transformers:
|
||||||
|
- name: "delta"
|
||||||
|
parameters:
|
||||||
|
target:
|
||||||
|
name: "cpu.delta"
|
||||||
|
growth_only: True
|
||||||
|
publishers:
|
||||||
|
- notifier://
|
||||||
- name: disk_sink
|
- name: disk_sink
|
||||||
transformers:
|
transformers:
|
||||||
- name: "rate_of_change"
|
- name: "rate_of_change"
|
||||||
@ -80,4 +90,3 @@ sinks:
|
|||||||
type: "gauge"
|
type: "gauge"
|
||||||
publishers:
|
publishers:
|
||||||
- notifier://
|
- notifier://
|
||||||
|
|
||||||
|
27
playbooks/roles/os_ceilometer/templates/rootwrap.conf.j2
Normal file
27
playbooks/roles/os_ceilometer/templates/rootwrap.conf.j2
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
# Configuration for ceilometer-rootwrap
|
||||||
|
# This file should be owned by (and only-writeable by) the root user
|
||||||
|
|
||||||
|
[DEFAULT]
|
||||||
|
# List of directories to load filter definitions from (separated by ',').
|
||||||
|
# These directories MUST all be only writeable by root !
|
||||||
|
filters_path=/etc/ceilometer/rootwrap.d,/usr/share/ceilometer/rootwrap
|
||||||
|
|
||||||
|
# List of directories to search executables in, in case filters do not
|
||||||
|
# explicitely specify a full path (separated by ',')
|
||||||
|
# If not specified, defaults to system PATH environment variable.
|
||||||
|
# These directories MUST all be only writeable by root !
|
||||||
|
exec_dirs={{ ceilometer_bin }},/sbin,/usr/sbin,/bin,/usr/bin
|
||||||
|
|
||||||
|
# Enable logging to syslog
|
||||||
|
# Default value is False
|
||||||
|
use_syslog=False
|
||||||
|
|
||||||
|
# Which syslog facility to use.
|
||||||
|
# Valid values include auth, authpriv, syslog, user0, user1...
|
||||||
|
# Default value is 'syslog'
|
||||||
|
syslog_log_facility=syslog
|
||||||
|
|
||||||
|
# Which messages to log.
|
||||||
|
# INFO means log all usage
|
||||||
|
# ERROR means only log unsuccessful attempts
|
||||||
|
syslog_log_level=ERROR
|
@ -27,23 +27,15 @@ lvdisplay_lvmconf: EnvFilter, env, root, LVM_SYSTEM_DIR=, LC_ALL=C, lvdisplay
|
|||||||
# os-brick.filters file instead and clean out stale brick values from
|
# os-brick.filters file instead and clean out stale brick values from
|
||||||
# this file.
|
# this file.
|
||||||
scsi_id: CommandFilter, /lib/udev/scsi_id, root
|
scsi_id: CommandFilter, /lib/udev/scsi_id, root
|
||||||
|
drbdadm: CommandFilter, drbdadm, root
|
||||||
# cinder/volumes/drivers/srb.py: 'pvresize', '--setphysicalvolumesize', sizestr, pvname
|
|
||||||
pvresize: CommandFilter, pvresize, root
|
|
||||||
|
|
||||||
# cinder/brick/local_dev/lvm.py: 'vgcreate', vg_name, pv_list
|
# cinder/brick/local_dev/lvm.py: 'vgcreate', vg_name, pv_list
|
||||||
vgcreate: CommandFilter, vgcreate, root
|
vgcreate: CommandFilter, vgcreate, root
|
||||||
|
|
||||||
# cinder/volumes/drivers/srb.py: 'vgremove', '-f', vgname
|
# cinder/brick/local_dev/lvm.py: 'lvcreate', '-L', sizestr, '-n', volume_name,..
|
||||||
vgremove: CommandFilter, vgremove, root
|
# cinder/brick/local_dev/lvm.py: 'lvcreate', '-L', ...
|
||||||
|
lvcreate: EnvFilter, env, root, LC_ALL=C, lvcreate
|
||||||
# cinder/volumes/drivers/srb.py: 'vgchange', '-an', vgname
|
lvcreate_lvmconf: EnvFilter, env, root, LVM_SYSTEM_DIR=, LC_ALL=C, lvcreate
|
||||||
# cinder/volumes/drivers/srb.py: 'vgchange', '-ay', vgname
|
|
||||||
vgchange: CommandFilter, vgchange, root
|
|
||||||
|
|
||||||
# cinder/volume/driver.py: 'lvcreate', '-L', sizestr, '-n', volume_name,..
|
|
||||||
# cinder/volume/driver.py: 'lvcreate', '-L', ...
|
|
||||||
lvcreate: CommandFilter, lvcreate, root
|
|
||||||
|
|
||||||
# cinder/volume/driver.py: 'dd', 'if=%s' % srcstr, 'of=%s' % deststr,...
|
# cinder/volume/driver.py: 'dd', 'if=%s' % srcstr, 'of=%s' % deststr,...
|
||||||
dd: CommandFilter, dd, root
|
dd: CommandFilter, dd, root
|
||||||
@ -54,13 +46,17 @@ lvremove: CommandFilter, lvremove, root
|
|||||||
# cinder/volume/driver.py: 'lvrename', '%(vg)s', '%(orig)s' '(new)s'...
|
# cinder/volume/driver.py: 'lvrename', '%(vg)s', '%(orig)s' '(new)s'...
|
||||||
lvrename: CommandFilter, lvrename, root
|
lvrename: CommandFilter, lvrename, root
|
||||||
|
|
||||||
# cinder/volume/driver.py: 'lvextend', '-L' '%(new_size)s', '%(lv_name)s' ...
|
# cinder/brick/local_dev/lvm.py: 'lvextend', '-L' '%(new_size)s', '%(lv_name)s' ...
|
||||||
# cinder/volume/driver.py: 'lvextend', '-L' '%(new_size)s', '%(thin_pool)s' ...
|
# cinder/brick/local_dev/lvm.py: 'lvextend', '-L' '%(new_size)s', '%(thin_pool)s' ...
|
||||||
lvextend: CommandFilter, lvextend, root
|
lvextend: EnvFilter, env, root, LC_ALL=C, lvextend
|
||||||
|
lvextend_lvmconf: EnvFilter, env, root, LVM_SYSTEM_DIR=, LC_ALL=C, lvextend
|
||||||
|
|
||||||
# cinder/brick/local_dev/lvm.py: 'lvchange -a y -K <lv>'
|
# cinder/brick/local_dev/lvm.py: 'lvchange -a y -K <lv>'
|
||||||
lvchange: CommandFilter, lvchange, root
|
lvchange: CommandFilter, lvchange, root
|
||||||
|
|
||||||
|
# cinder/brick/local_dev/lvm.py: 'lvconvert', '--merge', snapshot_name
|
||||||
|
lvconvert: CommandFilter, lvconvert, root
|
||||||
|
|
||||||
# cinder/volume/driver.py: 'iscsiadm', '-m', 'discovery', '-t',...
|
# cinder/volume/driver.py: 'iscsiadm', '-m', 'discovery', '-t',...
|
||||||
# cinder/volume/driver.py: 'iscsiadm', '-m', 'node', '-T', ...
|
# cinder/volume/driver.py: 'iscsiadm', '-m', 'node', '-T', ...
|
||||||
iscsiadm: CommandFilter, iscsiadm, root
|
iscsiadm: CommandFilter, iscsiadm, root
|
||||||
|
@ -10,32 +10,34 @@ use = call:cinder.api:root_app_factory
|
|||||||
|
|
||||||
[composite:openstack_volume_api_v1]
|
[composite:openstack_volume_api_v1]
|
||||||
use = call:cinder.api.middleware.auth:pipeline_factory
|
use = call:cinder.api.middleware.auth:pipeline_factory
|
||||||
noauth = request_id faultwrap sizelimit osprofiler noauth apiv1
|
noauth = cors request_id faultwrap sizelimit osprofiler noauth apiv1
|
||||||
keystone = request_id faultwrap sizelimit osprofiler authtoken keystonecontext apiv1
|
keystone = cors request_id faultwrap sizelimit osprofiler authtoken keystonecontext apiv1
|
||||||
keystone_nolimit = request_id faultwrap sizelimit osprofiler authtoken keystonecontext apiv1
|
keystone_nolimit = cors request_id faultwrap sizelimit osprofiler authtoken keystonecontext apiv1
|
||||||
|
|
||||||
[composite:openstack_volume_api_v2]
|
[composite:openstack_volume_api_v2]
|
||||||
use = call:cinder.api.middleware.auth:pipeline_factory
|
use = call:cinder.api.middleware.auth:pipeline_factory
|
||||||
noauth = request_id faultwrap sizelimit osprofiler noauth apiv2
|
noauth = cors request_id faultwrap sizelimit osprofiler noauth apiv2
|
||||||
keystone = request_id faultwrap sizelimit osprofiler authtoken keystonecontext apiv2
|
keystone = cors request_id faultwrap sizelimit osprofiler authtoken keystonecontext apiv2
|
||||||
keystone_nolimit = request_id faultwrap sizelimit osprofiler authtoken keystonecontext apiv2
|
keystone_nolimit = cors request_id faultwrap sizelimit osprofiler authtoken keystonecontext apiv2
|
||||||
|
|
||||||
[filter:request_id]
|
[filter:request_id]
|
||||||
paste.filter_factory = oslo_middleware.request_id:RequestId.factory
|
paste.filter_factory = oslo_middleware.request_id:RequestId.factory
|
||||||
|
|
||||||
|
[filter:cors]
|
||||||
|
paste.filter_factory = oslo_middleware.cors:filter_factory
|
||||||
|
oslo_config_project = cinder
|
||||||
|
|
||||||
[filter:faultwrap]
|
[filter:faultwrap]
|
||||||
paste.filter_factory = cinder.api.middleware.fault:FaultWrapper.factory
|
paste.filter_factory = cinder.api.middleware.fault:FaultWrapper.factory
|
||||||
|
|
||||||
[filter:osprofiler]
|
[filter:osprofiler]
|
||||||
paste.filter_factory = osprofiler.web:WsgiMiddleware.factory
|
paste.filter_factory = osprofiler.web:WsgiMiddleware.factory
|
||||||
hmac_keys = {{ cinder_profiler_hmac_key }}
|
|
||||||
enabled = yes
|
|
||||||
|
|
||||||
[filter:noauth]
|
[filter:noauth]
|
||||||
paste.filter_factory = cinder.api.middleware.auth:NoAuthMiddleware.factory
|
paste.filter_factory = cinder.api.middleware.auth:NoAuthMiddleware.factory
|
||||||
|
|
||||||
[filter:sizelimit]
|
[filter:sizelimit]
|
||||||
paste.filter_factory = oslo_middleware:RequestBodySizeLimiter.factory
|
paste.filter_factory = cinder.api.middleware.sizelimit:RequestBodySizeLimiter.factory
|
||||||
|
|
||||||
[app:apiv1]
|
[app:apiv1]
|
||||||
paste.app_factory = cinder.api.v1.router:APIRouter.factory
|
paste.app_factory = cinder.api.v1.router:APIRouter.factory
|
||||||
@ -44,7 +46,7 @@ paste.app_factory = cinder.api.v1.router:APIRouter.factory
|
|||||||
paste.app_factory = cinder.api.v2.router:APIRouter.factory
|
paste.app_factory = cinder.api.v2.router:APIRouter.factory
|
||||||
|
|
||||||
[pipeline:apiversions]
|
[pipeline:apiversions]
|
||||||
pipeline = faultwrap osvolumeversionapp
|
pipeline = cors faultwrap osvolumeversionapp
|
||||||
|
|
||||||
[app:osvolumeversionapp]
|
[app:osvolumeversionapp]
|
||||||
paste.app_factory = cinder.api.versions:Versions.factory
|
paste.app_factory = cinder.api.versions:Versions.factory
|
||||||
|
@ -25,6 +25,7 @@
|
|||||||
|
|
||||||
"volume_extension:types_manage": "rule:admin_api",
|
"volume_extension:types_manage": "rule:admin_api",
|
||||||
"volume_extension:types_extra_specs": "rule:admin_api",
|
"volume_extension:types_extra_specs": "rule:admin_api",
|
||||||
|
"volume_extension:access_types_extra_specs": "rule:admin_api",
|
||||||
"volume_extension:volume_type_access": "rule:admin_or_owner",
|
"volume_extension:volume_type_access": "rule:admin_or_owner",
|
||||||
"volume_extension:volume_type_access:addProjectAccess": "rule:admin_api",
|
"volume_extension:volume_type_access:addProjectAccess": "rule:admin_api",
|
||||||
"volume_extension:volume_type_access:removeProjectAccess": "rule:admin_api",
|
"volume_extension:volume_type_access:removeProjectAccess": "rule:admin_api",
|
||||||
@ -35,6 +36,7 @@
|
|||||||
|
|
||||||
"volume_extension:quotas:show": "",
|
"volume_extension:quotas:show": "",
|
||||||
"volume_extension:quotas:update": "rule:admin_api",
|
"volume_extension:quotas:update": "rule:admin_api",
|
||||||
|
"volume_extension:quotas:delete": "rule:admin_api",
|
||||||
"volume_extension:quota_classes": "rule:admin_api",
|
"volume_extension:quota_classes": "rule:admin_api",
|
||||||
|
|
||||||
"volume_extension:volume_admin_actions:reset_status": "rule:admin_api",
|
"volume_extension:volume_admin_actions:reset_status": "rule:admin_api",
|
||||||
|
@ -1,38 +1,38 @@
|
|||||||
# Use this pipeline for no auth or image caching - DEFAULT
|
# Use this pipeline for no auth or image caching - DEFAULT
|
||||||
[pipeline:glance-api]
|
[pipeline:glance-api]
|
||||||
pipeline = healthcheck versionnegotiation osprofiler unauthenticated-context rootapp
|
pipeline = cors healthcheck versionnegotiation osprofiler unauthenticated-context rootapp
|
||||||
|
|
||||||
# Use this pipeline for image caching and no auth
|
# Use this pipeline for image caching and no auth
|
||||||
[pipeline:glance-api-caching]
|
[pipeline:glance-api-caching]
|
||||||
pipeline = healthcheck versionnegotiation osprofiler unauthenticated-context cache rootapp
|
pipeline = cors healthcheck versionnegotiation osprofiler unauthenticated-context cache rootapp
|
||||||
|
|
||||||
# Use this pipeline for caching w/ management interface but no auth
|
# Use this pipeline for caching w/ management interface but no auth
|
||||||
[pipeline:glance-api-cachemanagement]
|
[pipeline:glance-api-cachemanagement]
|
||||||
pipeline = healthcheck versionnegotiation osprofiler unauthenticated-context cache cachemanage rootapp
|
pipeline = cors healthcheck versionnegotiation osprofiler unauthenticated-context cache cachemanage rootapp
|
||||||
|
|
||||||
# Use this pipeline for keystone auth
|
# Use this pipeline for keystone auth
|
||||||
[pipeline:glance-api-keystone]
|
[pipeline:glance-api-keystone]
|
||||||
pipeline = healthcheck versionnegotiation osprofiler authtoken context rootapp
|
pipeline = cors healthcheck versionnegotiation osprofiler authtoken context rootapp
|
||||||
|
|
||||||
# Use this pipeline for keystone auth with image caching
|
# Use this pipeline for keystone auth with image caching
|
||||||
[pipeline:glance-api-keystone+caching]
|
[pipeline:glance-api-keystone+caching]
|
||||||
pipeline = healthcheck versionnegotiation osprofiler authtoken context cache rootapp
|
pipeline = cors healthcheck versionnegotiation osprofiler authtoken context cache rootapp
|
||||||
|
|
||||||
# Use this pipeline for keystone auth with caching and cache management
|
# Use this pipeline for keystone auth with caching and cache management
|
||||||
[pipeline:glance-api-keystone+cachemanagement]
|
[pipeline:glance-api-keystone+cachemanagement]
|
||||||
pipeline = healthcheck versionnegotiation osprofiler authtoken context cache cachemanage rootapp
|
pipeline = cors healthcheck versionnegotiation osprofiler authtoken context cache cachemanage rootapp
|
||||||
|
|
||||||
# Use this pipeline for authZ only. This means that the registry will treat a
|
# Use this pipeline for authZ only. This means that the registry will treat a
|
||||||
# user as authenticated without making requests to keystone to reauthenticate
|
# user as authenticated without making requests to keystone to reauthenticate
|
||||||
# the user.
|
# the user.
|
||||||
[pipeline:glance-api-trusted-auth]
|
[pipeline:glance-api-trusted-auth]
|
||||||
pipeline = healthcheck versionnegotiation osprofiler context rootapp
|
pipeline = cors healthcheck versionnegotiation osprofiler context rootapp
|
||||||
|
|
||||||
# Use this pipeline for authZ only. This means that the registry will treat a
|
# Use this pipeline for authZ only. This means that the registry will treat a
|
||||||
# user as authenticated without making requests to keystone to reauthenticate
|
# user as authenticated without making requests to keystone to reauthenticate
|
||||||
# the user and uses cache management
|
# the user and uses cache management
|
||||||
[pipeline:glance-api-trusted-auth+cachemanagement]
|
[pipeline:glance-api-trusted-auth+cachemanagement]
|
||||||
pipeline = healthcheck versionnegotiation osprofiler context cache cachemanage rootapp
|
pipeline = cors healthcheck versionnegotiation osprofiler context cache cachemanage rootapp
|
||||||
|
|
||||||
[composite:rootapp]
|
[composite:rootapp]
|
||||||
paste.composite_factory = glance.api:root_app_factory
|
paste.composite_factory = glance.api:root_app_factory
|
||||||
@ -82,5 +82,27 @@ paste.filter_factory = glance.api.middleware.gzip:GzipMiddleware.factory
|
|||||||
|
|
||||||
[filter:osprofiler]
|
[filter:osprofiler]
|
||||||
paste.filter_factory = osprofiler.web:WsgiMiddleware.factory
|
paste.filter_factory = osprofiler.web:WsgiMiddleware.factory
|
||||||
hmac_keys = {{ glance_profiler_hmac_key }}
|
hmac_keys = {{ glance_profiler_hmac_key }} #DEPRECATED
|
||||||
enabled = yes
|
enabled = yes #DEPRECATED
|
||||||
|
|
||||||
|
[filter:cors]
|
||||||
|
paste.filter_factory = oslo_middleware.cors:filter_factory
|
||||||
|
oslo_config_project = glance
|
||||||
|
oslo_config_program = glance-api
|
||||||
|
# Basic Headers (Automatic)
|
||||||
|
# Accept = Origin, Accept, Accept-Language, Content-Type, Cache-Control, Content-Language, Expires, Last-Modified, Pragma
|
||||||
|
# Expose = Origin, Accept, Accept-Language, Content-Type, Cache-Control, Content-Language, Expires, Last-Modified, Pragma
|
||||||
|
|
||||||
|
# Glance Headers
|
||||||
|
# Accept = Content-MD5, X-Image-Meta-Checksum, X-Storage-Token, Accept-Encoding
|
||||||
|
# Expose = X-Image-Meta-Checksum
|
||||||
|
|
||||||
|
# Keystone Headers
|
||||||
|
# Accept = X-Auth-Token, X-Identity-Status, X-Roles, X-Service-Catalog, X-User-Id, X-Tenant-Id
|
||||||
|
# Expose = X-Auth-Token, X-Subject-Token, X-Service-Token
|
||||||
|
|
||||||
|
# Request ID Middleware Headers
|
||||||
|
# Accept = X-OpenStack-Request-ID
|
||||||
|
# Expose = X-OpenStack-Request-ID
|
||||||
|
latent_allow_headers = Content-MD5, X-Image-Meta-Checksum, X-Storage-Token, Accept-Encoding, X-Auth-Token, X-Identity-Status, X-Roles, X-Service-Catalog, X-User-Id, X-Tenant-Id, X-OpenStack-Request-ID
|
||||||
|
latent_expose_headers = X-Image-Meta-Checksum, X-Auth-Token, X-Subject-Token, X-Service-Token, X-OpenStack-Request-ID
|
||||||
|
@ -31,5 +31,5 @@ paste.filter_factory = keystonemiddleware.auth_token:filter_factory
|
|||||||
|
|
||||||
[filter:osprofiler]
|
[filter:osprofiler]
|
||||||
paste.filter_factory = osprofiler.web:WsgiMiddleware.factory
|
paste.filter_factory = osprofiler.web:WsgiMiddleware.factory
|
||||||
hmac_keys = {{ glance_profiler_hmac_key }}
|
hmac_keys = {{ glance_profiler_hmac_key }} #DEPRECATED
|
||||||
enabled = yes
|
enabled = yes #DEPRECATED
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
{
|
{
|
||||||
"context_is_admin": "role:admin",
|
"context_is_admin": "role:admin",
|
||||||
"tenant_is_owner": "tenant:%(owner)s",
|
|
||||||
"admin_or_owner": "role:admin OR rule:tenant_is_owner",
|
|
||||||
"default": "",
|
"default": "",
|
||||||
|
|
||||||
"add_image": "",
|
"add_image": "",
|
||||||
@ -9,7 +7,7 @@
|
|||||||
"get_image": "",
|
"get_image": "",
|
||||||
"get_images": "",
|
"get_images": "",
|
||||||
"modify_image": "",
|
"modify_image": "",
|
||||||
"publicize_image": "rule:admin_or_owner",
|
"publicize_image": "role:admin",
|
||||||
"copy_from": "",
|
"copy_from": "",
|
||||||
|
|
||||||
"download_image": "",
|
"download_image": "",
|
||||||
@ -19,11 +17,11 @@
|
|||||||
"get_image_location": "",
|
"get_image_location": "",
|
||||||
"set_image_location": "",
|
"set_image_location": "",
|
||||||
|
|
||||||
"add_member": "rule:admin_or_owner",
|
"add_member": "",
|
||||||
"delete_member": "rule:admin_or_owner",
|
"delete_member": "",
|
||||||
"get_member": "",
|
"get_member": "",
|
||||||
"get_members": "",
|
"get_members": "",
|
||||||
"modify_member": "rule:admin_or_owner",
|
"modify_member": "",
|
||||||
|
|
||||||
"manage_image_cache": "role:admin",
|
"manage_image_cache": "role:admin",
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
# heat-api pipeline
|
# heat-api pipeline
|
||||||
[pipeline:heat-api]
|
[pipeline:heat-api]
|
||||||
pipeline = request_id faultwrap ssl versionnegotiation osprofiler authurl authtoken context apiv1app
|
pipeline = cors request_id faultwrap ssl versionnegotiation osprofiler authurl authtoken context apiv1app
|
||||||
|
|
||||||
# heat-api pipeline for standalone heat
|
# heat-api pipeline for standalone heat
|
||||||
# ie. uses alternative auth backend that authenticates users against keystone
|
# ie. uses alternative auth backend that authenticates users against keystone
|
||||||
@ -12,7 +12,7 @@ pipeline = request_id faultwrap ssl versionnegotiation osprofiler authurl authto
|
|||||||
# flavor = standalone
|
# flavor = standalone
|
||||||
#
|
#
|
||||||
[pipeline:heat-api-standalone]
|
[pipeline:heat-api-standalone]
|
||||||
pipeline = request_id faultwrap ssl versionnegotiation authurl authpassword context apiv1app
|
pipeline = cors request_id faultwrap ssl versionnegotiation authurl authpassword context apiv1app
|
||||||
|
|
||||||
# heat-api pipeline for custom cloud backends
|
# heat-api pipeline for custom cloud backends
|
||||||
# i.e. in heat.conf:
|
# i.e. in heat.conf:
|
||||||
@ -20,25 +20,25 @@ pipeline = request_id faultwrap ssl versionnegotiation authurl authpassword cont
|
|||||||
# flavor = custombackend
|
# flavor = custombackend
|
||||||
#
|
#
|
||||||
[pipeline:heat-api-custombackend]
|
[pipeline:heat-api-custombackend]
|
||||||
pipeline = request_id faultwrap versionnegotiation context custombackendauth apiv1app
|
pipeline = cors request_id faultwrap versionnegotiation context custombackendauth apiv1app
|
||||||
|
|
||||||
# heat-api-cfn pipeline
|
# heat-api-cfn pipeline
|
||||||
[pipeline:heat-api-cfn]
|
[pipeline:heat-api-cfn]
|
||||||
pipeline = cfnversionnegotiation osprofiler ec2authtoken authtoken context apicfnv1app
|
pipeline = cors cfnversionnegotiation osprofiler ec2authtoken authtoken context apicfnv1app
|
||||||
|
|
||||||
# heat-api-cfn pipeline for standalone heat
|
# heat-api-cfn pipeline for standalone heat
|
||||||
# relies exclusively on authenticating with ec2 signed requests
|
# relies exclusively on authenticating with ec2 signed requests
|
||||||
[pipeline:heat-api-cfn-standalone]
|
[pipeline:heat-api-cfn-standalone]
|
||||||
pipeline = cfnversionnegotiation ec2authtoken context apicfnv1app
|
pipeline = cors cfnversionnegotiation ec2authtoken context apicfnv1app
|
||||||
|
|
||||||
# heat-api-cloudwatch pipeline
|
# heat-api-cloudwatch pipeline
|
||||||
[pipeline:heat-api-cloudwatch]
|
[pipeline:heat-api-cloudwatch]
|
||||||
pipeline = versionnegotiation osprofiler ec2authtoken authtoken context apicwapp
|
pipeline = cors versionnegotiation osprofiler ec2authtoken authtoken context apicwapp
|
||||||
|
|
||||||
# heat-api-cloudwatch pipeline for standalone heat
|
# heat-api-cloudwatch pipeline for standalone heat
|
||||||
# relies exclusively on authenticating with ec2 signed requests
|
# relies exclusively on authenticating with ec2 signed requests
|
||||||
[pipeline:heat-api-cloudwatch-standalone]
|
[pipeline:heat-api-cloudwatch-standalone]
|
||||||
pipeline = versionnegotiation ec2authtoken context apicwapp
|
pipeline = cors versionnegotiation ec2authtoken context apicwapp
|
||||||
|
|
||||||
[app:apiv1app]
|
[app:apiv1app]
|
||||||
paste.app_factory = heat.common.wsgi:app_factory
|
paste.app_factory = heat.common.wsgi:app_factory
|
||||||
@ -56,6 +56,10 @@ heat.app_factory = heat.api.cloudwatch:API
|
|||||||
paste.filter_factory = heat.common.wsgi:filter_factory
|
paste.filter_factory = heat.common.wsgi:filter_factory
|
||||||
heat.filter_factory = heat.api.openstack:version_negotiation_filter
|
heat.filter_factory = heat.api.openstack:version_negotiation_filter
|
||||||
|
|
||||||
|
[filter:cors]
|
||||||
|
paste.filter_factory = oslo_middleware.cors:filter_factory
|
||||||
|
oslo_config_project = heat
|
||||||
|
|
||||||
[filter:faultwrap]
|
[filter:faultwrap]
|
||||||
paste.filter_factory = heat.common.wsgi:filter_factory
|
paste.filter_factory = heat.common.wsgi:filter_factory
|
||||||
heat.filter_factory = heat.api.openstack:faultwrap_filter
|
heat.filter_factory = heat.api.openstack:faultwrap_filter
|
||||||
@ -100,5 +104,3 @@ paste.filter_factory = oslo_middleware.request_id:RequestId.factory
|
|||||||
|
|
||||||
[filter:osprofiler]
|
[filter:osprofiler]
|
||||||
paste.filter_factory = osprofiler.web:WsgiMiddleware.factory
|
paste.filter_factory = osprofiler.web:WsgiMiddleware.factory
|
||||||
hmac_keys = {{ heat_profiler_hmac_key }}
|
|
||||||
enabled = {{ heat_profiler_enabled }}
|
|
||||||
|
@ -62,6 +62,8 @@
|
|||||||
"stacks:delete_snapshot": "rule:deny_stack_user",
|
"stacks:delete_snapshot": "rule:deny_stack_user",
|
||||||
"stacks:list_snapshots": "rule:deny_stack_user",
|
"stacks:list_snapshots": "rule:deny_stack_user",
|
||||||
"stacks:restore_snapshot": "rule:deny_stack_user",
|
"stacks:restore_snapshot": "rule:deny_stack_user",
|
||||||
|
"stacks:list_outputs": "rule:deny_stack_user",
|
||||||
|
"stacks:show_output": "rule:deny_stack_user",
|
||||||
|
|
||||||
"software_configs:global_index": "rule:deny_everybody",
|
"software_configs:global_index": "rule:deny_everybody",
|
||||||
"software_configs:index": "rule:deny_stack_user",
|
"software_configs:index": "rule:deny_stack_user",
|
||||||
|
@ -95,8 +95,8 @@ Resources:
|
|||||||
MasterUserPassword: {Ref: MasterUserPassword}
|
MasterUserPassword: {Ref: MasterUserPassword}
|
||||||
WaitHandle: {Ref: WaitHandle}
|
WaitHandle: {Ref: WaitHandle}
|
||||||
- |
|
- |
|
||||||
#!/usr/bin/env bash
|
#!/bin/bash -v
|
||||||
set -v
|
#
|
||||||
iptables -F
|
iptables -F
|
||||||
|
|
||||||
# Helper function
|
# Helper function
|
||||||
|
@ -356,11 +356,13 @@ keystone_requires_pip_packages:
|
|||||||
|
|
||||||
# Common pip packages
|
# Common pip packages
|
||||||
keystone_pip_packages:
|
keystone_pip_packages:
|
||||||
|
- argparse
|
||||||
- keystone
|
- keystone
|
||||||
- keystonemiddleware
|
- keystonemiddleware
|
||||||
- ldappool
|
- ldappool
|
||||||
- lxml
|
- lxml
|
||||||
- PyMySQL
|
- PyMySQL
|
||||||
|
- oslo.log
|
||||||
- oslo.middleware
|
- oslo.middleware
|
||||||
- pbr
|
- pbr
|
||||||
- pycrypto
|
- pycrypto
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
# Keystone PasteDeploy configuration file.
|
# Keystone PasteDeploy configuration file.
|
||||||
|
|
||||||
[filter:debug]
|
[filter:debug]
|
||||||
use = egg:keystone#debug
|
use = egg:oslo.middleware#debug
|
||||||
|
|
||||||
[filter:request_id]
|
[filter:request_id]
|
||||||
use = egg:keystone#request_id
|
use = egg:oslo.middleware#request_id
|
||||||
|
|
||||||
[filter:build_auth_context]
|
[filter:build_auth_context]
|
||||||
use = egg:keystone#build_auth_context
|
use = egg:keystone#build_auth_context
|
||||||
@ -30,29 +30,17 @@ use = egg:keystone#ec2_extension
|
|||||||
[filter:ec2_extension_v3]
|
[filter:ec2_extension_v3]
|
||||||
use = egg:keystone#ec2_extension_v3
|
use = egg:keystone#ec2_extension_v3
|
||||||
|
|
||||||
[filter:federation_extension]
|
|
||||||
use = egg:keystone#federation_extension
|
|
||||||
|
|
||||||
[filter:oauth1_extension]
|
|
||||||
use = egg:keystone#oauth1_extension
|
|
||||||
|
|
||||||
[filter:s3_extension]
|
[filter:s3_extension]
|
||||||
use = egg:keystone#s3_extension
|
use = egg:keystone#s3_extension
|
||||||
|
|
||||||
[filter:endpoint_filter_extension]
|
|
||||||
use = egg:keystone#endpoint_filter_extension
|
|
||||||
|
|
||||||
[filter:simple_cert_extension]
|
[filter:simple_cert_extension]
|
||||||
use = egg:keystone#simple_cert_extension
|
use = egg:keystone#simple_cert_extension
|
||||||
|
|
||||||
[filter:revoke_extension]
|
|
||||||
use = egg:keystone#revoke_extension
|
|
||||||
|
|
||||||
[filter:url_normalize]
|
[filter:url_normalize]
|
||||||
use = egg:keystone#url_normalize
|
use = egg:keystone#url_normalize
|
||||||
|
|
||||||
[filter:sizelimit]
|
[filter:sizelimit]
|
||||||
use = egg:keystone#sizelimit
|
use = egg:oslo.middleware#sizelimit
|
||||||
|
|
||||||
[app:public_service]
|
[app:public_service]
|
||||||
use = egg:keystone#public_service
|
use = egg:keystone#public_service
|
||||||
@ -76,7 +64,7 @@ pipeline = sizelimit url_normalize request_id build_auth_context token_auth admi
|
|||||||
[pipeline:api_v3]
|
[pipeline:api_v3]
|
||||||
# The last item in this pipeline must be service_v3 or an equivalent
|
# The last item in this pipeline must be service_v3 or an equivalent
|
||||||
# application. It cannot be a filter.
|
# application. It cannot be a filter.
|
||||||
pipeline = sizelimit url_normalize request_id build_auth_context token_auth admin_token_auth json_body ec2_extension_v3 s3_extension simple_cert_extension revoke_extension federation_extension oauth1_extension endpoint_filter_extension service_v3
|
pipeline = sizelimit url_normalize request_id build_auth_context token_auth admin_token_auth json_body ec2_extension_v3 s3_extension simple_cert_extension service_v3
|
||||||
|
|
||||||
[app:public_version_service]
|
[app:public_version_service]
|
||||||
use = egg:keystone#public_version_service
|
use = egg:keystone#public_version_service
|
||||||
|
@ -19,12 +19,30 @@ activate_this = os.path.expanduser("{{ keystone_venv_bin }}/activate_this.py")
|
|||||||
execfile(activate_this, dict(__file__=activate_this))
|
execfile(activate_this, dict(__file__=activate_this))
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
import os
|
||||||
|
|
||||||
|
from oslo_log import log
|
||||||
|
from oslo_log import versionutils
|
||||||
|
|
||||||
|
from keystone.i18n import _LW
|
||||||
from keystone.server import wsgi as wsgi_server
|
from keystone.server import wsgi as wsgi_server
|
||||||
|
|
||||||
|
|
||||||
name = os.path.basename(__file__)
|
name = os.path.basename(__file__)
|
||||||
|
LOG = log.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
def deprecation_warning():
|
||||||
|
versionutils.report_deprecated_feature(
|
||||||
|
LOG,
|
||||||
|
_LW('httpd/keystone.py is deprecated as of Mitaka'
|
||||||
|
' in favor of keystone-wsgi-admin and keystone-wsgi-public'
|
||||||
|
' and may be removed in O.')
|
||||||
|
)
|
||||||
|
|
||||||
# NOTE(ldbragst): 'application' is required in this context by WSGI spec.
|
# NOTE(ldbragst): 'application' is required in this context by WSGI spec.
|
||||||
# The following is a reference to Python Paste Deploy documentation
|
# The following is a reference to Python Paste Deploy documentation
|
||||||
# http://pythonpaste.org/deploy/
|
# http://pythonpaste.org/deploy/
|
||||||
application = wsgi_server.initialize_application(name)
|
application = wsgi_server.initialize_application(
|
||||||
|
name,
|
||||||
|
post_log_configured_function=deprecation_warning)
|
||||||
|
@ -82,6 +82,7 @@
|
|||||||
"identity:revoke_grant": "rule:admin_required",
|
"identity:revoke_grant": "rule:admin_required",
|
||||||
|
|
||||||
"identity:list_role_assignments": "rule:admin_required",
|
"identity:list_role_assignments": "rule:admin_required",
|
||||||
|
"identity:list_role_assignments_for_tree": "rule:admin_required",
|
||||||
|
|
||||||
"identity:get_policy": "rule:admin_required",
|
"identity:get_policy": "rule:admin_required",
|
||||||
"identity:list_policies": "rule:admin_required",
|
"identity:list_policies": "rule:admin_required",
|
||||||
@ -180,5 +181,6 @@
|
|||||||
"identity:create_domain_config": "rule:admin_required",
|
"identity:create_domain_config": "rule:admin_required",
|
||||||
"identity:get_domain_config": "rule:admin_required",
|
"identity:get_domain_config": "rule:admin_required",
|
||||||
"identity:update_domain_config": "rule:admin_required",
|
"identity:update_domain_config": "rule:admin_required",
|
||||||
"identity:delete_domain_config": "rule:admin_required"
|
"identity:delete_domain_config": "rule:admin_required",
|
||||||
|
"identity:get_domain_config_default": "rule:admin_required"
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,35 @@
|
|||||||
|
# neutron-rootwrap command filters to support functional testing. It
|
||||||
|
# is NOT intended to be used outside of a test environment.
|
||||||
|
#
|
||||||
|
# This file should be owned by (and only-writeable by) the root user
|
||||||
|
|
||||||
|
[Filters]
|
||||||
|
# enable ping from namespace
|
||||||
|
ping_filter: CommandFilter, ping, root
|
||||||
|
ping6_filter: CommandFilter, ping6, root
|
||||||
|
|
||||||
|
# enable curl from namespace
|
||||||
|
curl_filter: RegExpFilter, /usr/bin/curl, root, curl, --max-time, \d+, -D-, http://[0-9a-z:./-]+
|
||||||
|
nc_filter: CommandFilter, nc, root
|
||||||
|
# netcat has different binaries depending on linux distribution
|
||||||
|
nc_kill: KillFilter, root, nc, -9
|
||||||
|
ncbsd_kill: KillFilter, root, nc.openbsd, -9
|
||||||
|
ncat_kill: KillFilter, root, ncat, -9
|
||||||
|
ss_filter: CommandFilter, ss, root
|
||||||
|
|
||||||
|
# enable neutron-linuxbridge-cleanup from namespace
|
||||||
|
lb_cleanup_filter: RegExpFilter, neutron-linuxbridge-cleanup, root, neutron-linuxbridge-cleanup, --config-file, .*
|
||||||
|
|
||||||
|
# enable dhclient from namespace
|
||||||
|
dhclient_filter: CommandFilter, dhclient, root
|
||||||
|
dhclient_kill: KillFilter, root, dhclient, -9
|
||||||
|
|
||||||
|
# Actually, dhclient is used for test dhcp-agent and runs
|
||||||
|
# in dhcp-agent namespace. If in that namespace resolv.conf file not exist
|
||||||
|
# dhclient will override system /etc/resolv.conf
|
||||||
|
# Filters below are limit functions mkdir, rm and touch
|
||||||
|
# only to create and delete file resolv.conf in the that namespace
|
||||||
|
mkdir_filter: RegExpFilter, /bin/mkdir, root, mkdir, -p, /etc/netns/qdhcp-[0-9a-z./-]+
|
||||||
|
rm_filter: RegExpFilter, /bin/rm, root, rm, -r, /etc/netns/qdhcp-[0-9a-z./-]+
|
||||||
|
touch_filter: RegExpFilter, /bin/touch, root, touch, /etc/netns/qdhcp-[0-9a-z./-]+/resolv.conf
|
||||||
|
touch_filter2: RegExpFilter, /usr/bin/touch, root, touch, /etc/netns/qdhcp-[0-9a-z./-]+/resolv.conf
|
@ -19,3 +19,10 @@ ip6tables-restore: CommandFilter, ip6tables-restore, root
|
|||||||
# "iptables", "-A", ...
|
# "iptables", "-A", ...
|
||||||
iptables: CommandFilter, iptables, root
|
iptables: CommandFilter, iptables, root
|
||||||
ip6tables: CommandFilter, ip6tables, root
|
ip6tables: CommandFilter, ip6tables, root
|
||||||
|
|
||||||
|
# neutron/agent/linux/iptables_manager.py
|
||||||
|
# "sysctl", "-w", ...
|
||||||
|
sysctl: CommandFilter, sysctl, root
|
||||||
|
|
||||||
|
# neutron/agent/linux/ip_conntrack.py
|
||||||
|
conntrack: CommandFilter, conntrack, root
|
@ -50,3 +50,8 @@ conntrack: CommandFilter, conntrack, root
|
|||||||
|
|
||||||
# keepalived state change monitor
|
# keepalived state change monitor
|
||||||
keepalived_state_change: CommandFilter, neutron-keepalived-state-change, root
|
keepalived_state_change: CommandFilter, neutron-keepalived-state-change, root
|
||||||
|
|
||||||
|
# For creating namespace local /etc
|
||||||
|
rt_tables_mkdir: RegExpFilter, mkdir, root, mkdir, -p, /etc/netns/qrouter-[^/].*
|
||||||
|
rt_tables_chown: RegExpFilter, chown, root, chown, [1-9][0-9].*, /etc/netns/qrouter-[^/].*
|
||||||
|
rt_tables_rmdir: RegExpFilter, rm, root, rm, -r, -f, /etc/netns/qrouter-[^/].*
|
||||||
|
@ -93,12 +93,13 @@
|
|||||||
with_items:
|
with_items:
|
||||||
- { src: "rootwrap.d/debug.filters", dest: "/etc/neutron/rootwrap.d/debug.filters" }
|
- { src: "rootwrap.d/debug.filters", dest: "/etc/neutron/rootwrap.d/debug.filters" }
|
||||||
- { src: "rootwrap.d/dibbler.filters", dest: "/etc/neutron/rootwrap.d/dibbler.filters" }
|
- { src: "rootwrap.d/dibbler.filters", dest: "/etc/neutron/rootwrap.d/dibbler.filters" }
|
||||||
|
- { src: "rootwrap.d/ebtables.filters", dest: "/etc/neutron/rootwrap.d/ebtables.filters" }
|
||||||
|
- { src: "rootwrap.d/functional-testing.filters", dest: "/etc/neutron/rootwrap.d/functional-testing.filters" }
|
||||||
- { src: "rootwrap.d/ipset-firewall.filters", dest: "/etc/neutron/rootwrap.d/ipset-firewall.filters" }
|
- { src: "rootwrap.d/ipset-firewall.filters", dest: "/etc/neutron/rootwrap.d/ipset-firewall.filters" }
|
||||||
- { src: "rootwrap.d/iptables-firewall.filters", dest: "/etc/neutron/rootwrap.d/iptables-firewall.filters" }
|
- { src: "rootwrap.d/iptables-firewall.filters", dest: "/etc/neutron/rootwrap.d/iptables-firewall.filters" }
|
||||||
- { src: "rootwrap.d/openvswitch-plugin.filters", dest: "/etc/neutron/rootwrap.d/openvswitch-plugin.filters" }
|
- { src: "rootwrap.d/openvswitch-plugin.filters", dest: "/etc/neutron/rootwrap.d/openvswitch-plugin.filters" }
|
||||||
- { src: "rootwrap.d/lbaas-haproxy.filters", dest: "/etc/neutron/rootwrap.d/lbaas-haproxy.filters" }
|
- { src: "rootwrap.d/lbaas-haproxy.filters", dest: "/etc/neutron/rootwrap.d/lbaas-haproxy.filters" }
|
||||||
- { src: "rootwrap.d/vpnaas.filters", dest: "/etc/neutron/rootwrap.d/vpnaas.filters" }
|
- { src: "rootwrap.d/vpnaas.filters", dest: "/etc/neutron/rootwrap.d/vpnaas.filters" }
|
||||||
- { src: "rootwrap.d/ebtables.filters", dest: "/etc/neutron/rootwrap.d/ebtables.filters" }
|
|
||||||
notify:
|
notify:
|
||||||
- Restart neutron services
|
- Restart neutron services
|
||||||
tags:
|
tags:
|
||||||
|
@ -5,8 +5,8 @@ use = egg:Paste#urlmap
|
|||||||
|
|
||||||
[composite:neutronapi_v2_0]
|
[composite:neutronapi_v2_0]
|
||||||
use = call:neutron.auth:pipeline_factory
|
use = call:neutron.auth:pipeline_factory
|
||||||
noauth = request_id catch_errors extensions neutronapiapp_v2_0
|
noauth = cors request_id catch_errors extensions neutronapiapp_v2_0
|
||||||
keystone = request_id catch_errors authtoken keystonecontext extensions neutronapiapp_v2_0
|
keystone = cors request_id catch_errors authtoken keystonecontext extensions neutronapiapp_v2_0
|
||||||
|
|
||||||
[filter:request_id]
|
[filter:request_id]
|
||||||
paste.filter_factory = oslo_middleware:RequestId.factory
|
paste.filter_factory = oslo_middleware:RequestId.factory
|
||||||
@ -14,6 +14,13 @@ paste.filter_factory = oslo_middleware:RequestId.factory
|
|||||||
[filter:catch_errors]
|
[filter:catch_errors]
|
||||||
paste.filter_factory = oslo_middleware:CatchErrors.factory
|
paste.filter_factory = oslo_middleware:CatchErrors.factory
|
||||||
|
|
||||||
|
[filter:cors]
|
||||||
|
paste.filter_factory = oslo_middleware.cors:filter_factory
|
||||||
|
oslo_config_project = neutron
|
||||||
|
latent_allow_headers = X-Auth-Token, X-Identity-Status, X-Roles, X-Service-Catalog, X-User-Id, X-Tenant-Id, X-OpenStack-Request-ID
|
||||||
|
latent_expose_headers = X-Auth-Token, X-Subject-Token, X-Service-Token, X-OpenStack-Request-ID
|
||||||
|
latent_allow_methods = GET, PUT, POST, DELETE, PATCH
|
||||||
|
|
||||||
[filter:keystonecontext]
|
[filter:keystonecontext]
|
||||||
paste.filter_factory = neutron.auth:NeutronKeystoneContext.factory
|
paste.filter_factory = neutron.auth:NeutronKeystoneContext.factory
|
||||||
|
|
||||||
|
@ -22,8 +22,10 @@
|
|||||||
|
|
||||||
"create_subnetpool": "",
|
"create_subnetpool": "",
|
||||||
"create_subnetpool:shared": "rule:admin_only",
|
"create_subnetpool:shared": "rule:admin_only",
|
||||||
|
"create_subnetpool:is_default": "rule:admin_only",
|
||||||
"get_subnetpool": "rule:admin_or_owner or rule:shared_subnetpools",
|
"get_subnetpool": "rule:admin_or_owner or rule:shared_subnetpools",
|
||||||
"update_subnetpool": "rule:admin_or_owner",
|
"update_subnetpool": "rule:admin_or_owner",
|
||||||
|
"update_subnetpool:is_default": "rule:admin_only",
|
||||||
"delete_subnetpool": "rule:admin_or_owner",
|
"delete_subnetpool": "rule:admin_or_owner",
|
||||||
|
|
||||||
"create_address_scope": "",
|
"create_address_scope": "",
|
||||||
@ -197,5 +199,9 @@
|
|||||||
"update_rbac_policy": "rule:admin_or_owner",
|
"update_rbac_policy": "rule:admin_or_owner",
|
||||||
"update_rbac_policy:target_tenant": "rule:restrict_wildcard and rule:admin_or_owner",
|
"update_rbac_policy:target_tenant": "rule:restrict_wildcard and rule:admin_or_owner",
|
||||||
"get_rbac_policy": "rule:admin_or_owner",
|
"get_rbac_policy": "rule:admin_or_owner",
|
||||||
"delete_rbac_policy": "rule:admin_or_owner"
|
"delete_rbac_policy": "rule:admin_or_owner",
|
||||||
|
|
||||||
|
"create_flavor_service_profile": "rule:admin_only",
|
||||||
|
"delete_flavor_service_profile": "rule:admin_only",
|
||||||
|
"get_flavor_service_profile": "rule:regular_user"
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,7 @@ filters_path=/etc/neutron/rootwrap.d,/usr/share/neutron/rootwrap
|
|||||||
# explicitely specify a full path (separated by ',')
|
# explicitely specify a full path (separated by ',')
|
||||||
# If not specified, defaults to system PATH environment variable.
|
# If not specified, defaults to system PATH environment variable.
|
||||||
# These directories MUST all be only writeable by root !
|
# These directories MUST all be only writeable by root !
|
||||||
exec_dirs={{ neutron_bin }},/sbin,/usr/sbin,/bin,/usr/bin
|
exec_dirs={{ neutron_bin }},/sbin,/usr/sbin,/bin,/usr/bin,/usr/local/bin,/usr/local/sbin
|
||||||
|
|
||||||
# Enable logging to syslog
|
# Enable logging to syslog
|
||||||
# Default value is False
|
# Default value is False
|
||||||
|
@ -203,7 +203,6 @@ multipath: CommandFilter, multipath, root
|
|||||||
# multipathd show status
|
# multipathd show status
|
||||||
multipathd: CommandFilter, multipathd, root
|
multipathd: CommandFilter, multipathd, root
|
||||||
systool: CommandFilter, systool, root
|
systool: CommandFilter, systool, root
|
||||||
sginfo: CommandFilter, sginfo, root
|
|
||||||
vgc-cluster: CommandFilter, vgc-cluster, root
|
vgc-cluster: CommandFilter, vgc-cluster, root
|
||||||
# os_brick/initiator/connector.py
|
# os_brick/initiator/connector.py
|
||||||
drv_cfg: CommandFilter, /opt/emc/scaleio/sdc/bin/drv_cfg, root, /opt/emc/scaleio/sdc/bin/drv_cfg, --query_guid
|
drv_cfg: CommandFilter, /opt/emc/scaleio/sdc/bin/drv_cfg, root, /opt/emc/scaleio/sdc/bin/drv_cfg, --query_guid
|
||||||
|
@ -6,7 +6,7 @@ use = egg:Paste#urlmap
|
|||||||
/: meta
|
/: meta
|
||||||
|
|
||||||
[pipeline:meta]
|
[pipeline:meta]
|
||||||
pipeline = metaapp
|
pipeline = cors metaapp
|
||||||
|
|
||||||
[app:metaapp]
|
[app:metaapp]
|
||||||
paste.app_factory = nova.api.metadata.handler:MetadataRequestHandler.factory
|
paste.app_factory = nova.api.metadata.handler:MetadataRequestHandler.factory
|
||||||
@ -23,7 +23,6 @@ use = call:nova.api.openstack.urlmap:urlmap_factory
|
|||||||
# this causes issues with your clients you can rollback to the
|
# this causes issues with your clients you can rollback to the
|
||||||
# *frozen* v2 api by commenting out the above stanza and using the
|
# *frozen* v2 api by commenting out the above stanza and using the
|
||||||
# following instead::
|
# following instead::
|
||||||
# /v1.1: openstack_compute_api_legacy_v2
|
|
||||||
# /v2: openstack_compute_api_legacy_v2
|
# /v2: openstack_compute_api_legacy_v2
|
||||||
# if rolling back to v2 fixes your issue please file a critical bug
|
# if rolling back to v2 fixes your issue please file a critical bug
|
||||||
# at - https://bugs.launchpad.net/nova/+bugs
|
# at - https://bugs.launchpad.net/nova/+bugs
|
||||||
@ -33,26 +32,25 @@ use = call:nova.api.openstack.urlmap:urlmap_factory
|
|||||||
# API). It also provides new features via API microversions which are
|
# API). It also provides new features via API microversions which are
|
||||||
# opt into for clients. Unaware clients will receive the same frozen
|
# opt into for clients. Unaware clients will receive the same frozen
|
||||||
# v2 API feature set, but with some relaxed validation
|
# v2 API feature set, but with some relaxed validation
|
||||||
/v1.1: openstack_compute_api_v21_legacy_v2_compatible
|
|
||||||
/v2: openstack_compute_api_v21_legacy_v2_compatible
|
/v2: openstack_compute_api_v21_legacy_v2_compatible
|
||||||
/v2.1: openstack_compute_api_v21
|
/v2.1: openstack_compute_api_v21
|
||||||
|
|
||||||
# NOTE: this is deprecated in favor of openstack_compute_api_v21_legacy_v2_compatible
|
# NOTE: this is deprecated in favor of openstack_compute_api_v21_legacy_v2_compatible
|
||||||
[composite:openstack_compute_api_legacy_v2]
|
[composite:openstack_compute_api_legacy_v2]
|
||||||
use = call:nova.api.auth:pipeline_factory
|
use = call:nova.api.auth:pipeline_factory
|
||||||
noauth2 = compute_req_id faultwrap sizelimit noauth2 legacy_ratelimit osapi_compute_app_legacy_v2
|
noauth2 = cors compute_req_id faultwrap sizelimit noauth2 legacy_ratelimit osapi_compute_app_legacy_v2
|
||||||
keystone = compute_req_id faultwrap sizelimit authtoken keystonecontext legacy_ratelimit osapi_compute_app_legacy_v2
|
keystone = cors compute_req_id faultwrap sizelimit authtoken keystonecontext legacy_ratelimit osapi_compute_app_legacy_v2
|
||||||
keystone_nolimit = compute_req_id faultwrap sizelimit authtoken keystonecontext osapi_compute_app_legacy_v2
|
keystone_nolimit = cors compute_req_id faultwrap sizelimit authtoken keystonecontext osapi_compute_app_legacy_v2
|
||||||
|
|
||||||
[composite:openstack_compute_api_v21]
|
[composite:openstack_compute_api_v21]
|
||||||
use = call:nova.api.auth:pipeline_factory_v21
|
use = call:nova.api.auth:pipeline_factory_v21
|
||||||
noauth2 = compute_req_id faultwrap sizelimit noauth2 osapi_compute_app_v21
|
noauth2 = cors compute_req_id faultwrap sizelimit noauth2 osapi_compute_app_v21
|
||||||
keystone = compute_req_id faultwrap sizelimit authtoken keystonecontext osapi_compute_app_v21
|
keystone = cors compute_req_id faultwrap sizelimit authtoken keystonecontext osapi_compute_app_v21
|
||||||
|
|
||||||
[composite:openstack_compute_api_v21_legacy_v2_compatible]
|
[composite:openstack_compute_api_v21_legacy_v2_compatible]
|
||||||
use = call:nova.api.auth:pipeline_factory_v21
|
use = call:nova.api.auth:pipeline_factory_v21
|
||||||
noauth2 = compute_req_id faultwrap sizelimit noauth2 legacy_v2_compatible osapi_compute_app_v21
|
noauth2 = cors compute_req_id faultwrap sizelimit noauth2 legacy_v2_compatible osapi_compute_app_v21
|
||||||
keystone = compute_req_id faultwrap sizelimit authtoken keystonecontext legacy_v2_compatible osapi_compute_app_v21
|
keystone = cors compute_req_id faultwrap sizelimit authtoken keystonecontext legacy_v2_compatible osapi_compute_app_v21
|
||||||
|
|
||||||
[filter:request_id]
|
[filter:request_id]
|
||||||
paste.filter_factory = oslo_middleware:RequestId.factory
|
paste.filter_factory = oslo_middleware:RequestId.factory
|
||||||
@ -91,6 +89,10 @@ paste.app_factory = nova.api.openstack.compute.versions:Versions.factory
|
|||||||
# Shared #
|
# Shared #
|
||||||
##########
|
##########
|
||||||
|
|
||||||
|
[filter:cors]
|
||||||
|
paste.filter_factory = oslo_middleware.cors:filter_factory
|
||||||
|
oslo_config_project = nova
|
||||||
|
|
||||||
[filter:keystonecontext]
|
[filter:keystonecontext]
|
||||||
paste.filter_factory = nova.api.auth:NovaKeystoneContext.factory
|
paste.filter_factory = nova.api.auth:NovaKeystoneContext.factory
|
||||||
|
|
||||||
|
@ -22,16 +22,14 @@
|
|||||||
"compute:update_instance_metadata": "",
|
"compute:update_instance_metadata": "",
|
||||||
"compute:delete_instance_metadata": "",
|
"compute:delete_instance_metadata": "",
|
||||||
|
|
||||||
"compute:get_instance_faults": "",
|
|
||||||
"compute:get_diagnostics": "",
|
"compute:get_diagnostics": "",
|
||||||
"compute:get_instance_diagnostics": "",
|
"compute:get_instance_diagnostics": "",
|
||||||
|
|
||||||
"compute:start": "rule:admin_or_owner",
|
"compute:start": "rule:admin_or_owner",
|
||||||
"compute:stop": "rule:admin_or_owner",
|
"compute:stop": "rule:admin_or_owner",
|
||||||
|
|
||||||
"compute:get_lock": "",
|
"compute:lock": "rule:admin_or_owner",
|
||||||
"compute:lock": "",
|
"compute:unlock": "rule:admin_or_owner",
|
||||||
"compute:unlock": "",
|
|
||||||
"compute:unlock_override": "rule:admin_api",
|
"compute:unlock_override": "rule:admin_api",
|
||||||
|
|
||||||
"compute:get_vnc_console": "",
|
"compute:get_vnc_console": "",
|
||||||
@ -85,9 +83,6 @@
|
|||||||
"compute:security_groups:add_to_instance": "",
|
"compute:security_groups:add_to_instance": "",
|
||||||
"compute:security_groups:remove_from_instance": "",
|
"compute:security_groups:remove_from_instance": "",
|
||||||
|
|
||||||
"compute:delete": "",
|
|
||||||
"compute:soft_delete": "",
|
|
||||||
"compute:force_delete": "",
|
|
||||||
"compute:restore": "",
|
"compute:restore": "",
|
||||||
|
|
||||||
"compute:volume_snapshot_create": "",
|
"compute:volume_snapshot_create": "",
|
||||||
@ -334,6 +329,7 @@
|
|||||||
"os_compute_api:os-extended-availability-zone": "",
|
"os_compute_api:os-extended-availability-zone": "",
|
||||||
"os_compute_api:os-extended-availability-zone:discoverable": "",
|
"os_compute_api:os-extended-availability-zone:discoverable": "",
|
||||||
"os_compute_api:extensions": "",
|
"os_compute_api:extensions": "",
|
||||||
|
"os_compute_api:extensions:discoverable": "",
|
||||||
"os_compute_api:extension_info:discoverable": "",
|
"os_compute_api:extension_info:discoverable": "",
|
||||||
"os_compute_api:os-extended-volumes": "",
|
"os_compute_api:os-extended-volumes": "",
|
||||||
"os_compute_api:os-extended-volumes:discoverable": "",
|
"os_compute_api:os-extended-volumes:discoverable": "",
|
||||||
@ -345,6 +341,7 @@
|
|||||||
"os_compute_api:os-flavor-access:add_tenant_access": "rule:admin_api",
|
"os_compute_api:os-flavor-access:add_tenant_access": "rule:admin_api",
|
||||||
"os_compute_api:os-flavor-rxtx": "",
|
"os_compute_api:os-flavor-rxtx": "",
|
||||||
"os_compute_api:os-flavor-rxtx:discoverable": "",
|
"os_compute_api:os-flavor-rxtx:discoverable": "",
|
||||||
|
"os_compute_api:flavors": "",
|
||||||
"os_compute_api:flavors:discoverable": "",
|
"os_compute_api:flavors:discoverable": "",
|
||||||
"os_compute_api:os-flavor-extra-specs:discoverable": "",
|
"os_compute_api:os-flavor-extra-specs:discoverable": "",
|
||||||
"os_compute_api:os-flavor-extra-specs:index": "",
|
"os_compute_api:os-flavor-extra-specs:index": "",
|
||||||
|
@ -7,10 +7,10 @@
|
|||||||
filters_path=/etc/nova/rootwrap.d,/usr/share/nova/rootwrap
|
filters_path=/etc/nova/rootwrap.d,/usr/share/nova/rootwrap
|
||||||
|
|
||||||
# List of directories to search executables in, in case filters do not
|
# List of directories to search executables in, in case filters do not
|
||||||
# explicitely specify a full path (separated by ',')
|
# explicitly specify a full path (separated by ',')
|
||||||
# If not specified, defaults to system PATH environment variable.
|
# If not specified, defaults to system PATH environment variable.
|
||||||
# These directories MUST all be only writeable by root !
|
# These directories MUST all be only writeable by root !
|
||||||
exec_dirs=/sbin,/usr/sbin,/bin,/usr/bin,{{ nova_bin }}
|
exec_dirs={{ nova_bin }},/sbin,/usr/sbin,/bin,/usr/bin
|
||||||
|
|
||||||
# Enable logging to syslog
|
# Enable logging to syslog
|
||||||
# Default value is False
|
# Default value is False
|
||||||
|
@ -42,7 +42,7 @@ image_ssh_user = {{ tempest_compute_image_ssh_user }}
|
|||||||
image_ssh_password = {{ tempest_compute_image_ssh_password }}
|
image_ssh_password = {{ tempest_compute_image_ssh_password }}
|
||||||
image_alt_ssh_user = {{ tempest_compute_image_alt_ssh_user }}
|
image_alt_ssh_user = {{ tempest_compute_image_alt_ssh_user }}
|
||||||
ssh_user = {{ tempest_compute_ssh_user }}
|
ssh_user = {{ tempest_compute_ssh_user }}
|
||||||
ssh_auth_method = configured
|
auth_method = keypair
|
||||||
fixed_network_name = private
|
fixed_network_name = private
|
||||||
endpoint_type = internalURL
|
endpoint_type = internalURL
|
||||||
floating_ip_range = 10.0.0.0/29
|
floating_ip_range = 10.0.0.0/29
|
||||||
|
Loading…
x
Reference in New Issue
Block a user