Merge "Openstack Metadata refactor"

This commit is contained in:
Jenkins 2016-09-19 20:43:33 +00:00 committed by Gerrit Code Review
commit 344931b1aa
12 changed files with 163 additions and 1078 deletions

View File

@ -3,287 +3,12 @@
# Tasks to get ceilometer facts
#
- name: Get ceilometer batch polled samples
command: crudini --get /etc/ceilometer/ceilometer.conf DEFAULT batch_polled_samples
register: batch_polled_samples
ignore_errors: true
- name: Parse Ceilometer config
become: true
shell: python /tmp/openstack-config-parser.py ceilometer /etc/ceilometer/ceilometer.conf /tmp/out.yml
- name: Set ceilometer batch polled samples
set_fact:
openstack_ceilometer_batch_polled_samples: "{{ batch_polled_samples.stdout }}"
when: (batch_polled_samples.stdout != "")
- name: Fetch output
fetch: src=/tmp/out.yml dest=/tmp/out.yml flat=yes
- name: Set ceilometer batch polled samples
set_fact:
openstack_ceilometer_batch_polled_samples: true
when: (batch_polled_samples.stdout == "")
- name: Get ceilometer shuffle time before polling task
command: crudini --get /etc/ceilometer/ceilometer.conf DEFAULT shuffle_time_before_polling_task
register: shuffle_time_before_polling_task
ignore_errors: true
- name: Set ceilometer shuffle time before polling task
set_fact:
openstack_ceilometer_shuffle_time_before_polling_task: "{{ shuffle_time_before_polling_task.stdout }}"
when: shuffle_time_before_polling_task.stdout != ""
- name: Set ceilometer shuffle time before polling task
set_fact:
openstack_ceilometer_shuffle_time_before_polling_task: 0
when: shuffle_time_before_polling_task.stdout == ""
- name: Get ceilometer reserved metadata length
command: crudini --get /etc/ceilometer/ceilometer.conf DEFAULT reserved_metadata_length
register: reserved_metadata_length
ignore_errors: true
- name: Set ceilometer reserved metadata length
set_fact:
openstack_ceilometer_reserved_metadata_length: "{{ reserved_metadata_length.stdout }}"
when: reserved_metadata_length.stdout != ""
- name: Set ceilometer reserved metadata length
set_fact:
openstack_ceilometer_reserved_metadata_length: 255
when: reserved_metadata_length.stdout == ""
- name: Get ceilometer meter_dispatchers
command: crudini --get /etc/ceilometer/ceilometer.conf DEFAULT meter_dispatchers
register: meter_dispatchers
ignore_errors: true
- name: Set ceilometer meter_dispatchers
set_fact:
openstack_ceilometer_meter_dispatchers: "{{ meter_dispatchers.stdout }}"
when: meter_dispatchers.stdout != ""
- name: Set ceilometer meter_dispatchers
set_fact:
openstack_ceilometer_meter_dispatchers: "database"
when: meter_dispatchers.stdout == ""
- name: Get ceilometer pipeline polling interval
command: crudini --get /etc/ceilometer/ceilometer.conf DEFAULT pipeline_polling_interval
register: pipeline_polling_interval
ignore_errors: true
- name: Set ceilometer pipeline polling interval
set_fact:
openstack_ceilometer_pipeline_polling_interval: "{{ pipeline_polling_interval.stdout }}"
when: pipeline_polling_interval.stdout != ""
- name: Set ceilometer pipeline polling interval
set_fact:
openstack_ceilometer_pipeline_polling_interval: 20
when: pipeline_polling_interval.stdout == ""
- name: Get ceilometer http timeout
command: crudini --get /etc/ceilometer/ceilometer.conf DEFAULT http_timeout
register: http_timeout
ignore_errors: true
- name: Set ceilometer http timeout
set_fact:
openstack_ceilometer_http_timeout: "{{ http_timeout.stdout }}"
when: http_timeout.stdout != ""
- name: Set ceilometer http timeout
set_fact:
openstack_ceilometer_http_timeout: 600
when: http_timeout.stdout == ""
- name: Get ceilometer rpc conn pool size
command: crudini --get /etc/ceilometer/ceilometer.conf DEFAULT rpc_conn_pool_size
register: rpc_conn_pool_size
ignore_errors: true
- name: Set ceilometer rpc conn pool size
set_fact:
openstack_ceilometer_rpc_conn_pool_size: "{{ rpc_conn_pool_size.stdout }}"
when: rpc_conn_pool_size.stdout != ""
- name: Set ceilometer rpc conn pool size
set_fact:
openstack_ceilometer_rpc_conn_pool_size: 30
when: rpc_conn_pool_size.stdout == ""
- name: Get ceilometer executor thread pool size
command: crudini --get /etc/ceilometer/ceilometer.conf DEFAULT executor_thread_pool_size
register: executor_thread_pool_size
ignore_errors: true
- name: Set ceilometer executor thread pool size
set_fact:
openstack_ceilometer_executor_thread_pool_size: "{{ executor_thread_pool_size.stdout }}"
when: executor_thread_pool_size.stdout != ""
- name: Set ceilometer executor thread pool size
set_fact:
openstack_ceilometer_executor_thread_pool_size: 64
when: executor_thread_pool_size.stdout == ""
- name: Get ceilometer rpc response timeout
command: crudini --get /etc/ceilometer/ceilometer.conf DEFAULT rpc_response_timeout
register: rpc_response_timeout
ignore_errors: true
- name: Set ceilometer rpc response timeout
set_fact:
openstack_ceilometer_rpc_response_timeout: "{{ rpc_response_timeout.stdout }}"
when: rpc_response_timeout.stdout != ""
- name: Set ceilometer rpc response timeout
set_fact:
openstack_ceilometer_rpc_response_timeout: 60
when: rpc_response_timeout.stdout == ""
- name: Get ceilometer rpc backend
command: crudini --get /etc/ceilometer/ceilometer.conf DEFAULT rpc_backend
register: rpc_backend
ignore_errors: true
- name: Set ceilometer rpc backend
set_fact:
openstack_ceilometer_rpc_backend: "{{ rpc_backend.stdout }}"
when: rpc_backend.stdout != ""
- name: Set ceilometer rpc backend
set_fact:
openstack_ceilometer_rpc_backend: rabbit
when: rpc_backend.stdout == ""
- name: Get ceilometer workers
command: crudini --get /etc/ceilometer/ceilometer.conf api workers
register: workers
ignore_errors: true
- name: Set ceilometer workers
set_fact:
openstack_ceilometer_workers: "{{ workers.stdout }}"
when: workers.stdout != ""
- name: Set ceilometer workers
set_fact:
openstack_ceilometer_workers: 1
when: workers.stdout == ""
- name: Get ceilometer batch polled samples
command: crudini --get /etc/ceilometer/ceilometer.conf central batch_polled_samples
register: batch_polled_samples
ignore_errors: true
- name: Set ceilometer batch polled samples
set_fact:
openstack_ceilometer_batch_polled_samples: "{{ batch_polled_samples.stdout }}"
when: (batch_polled_samples.stdout != "")
- name: Set ceilometer batch polled samples
set_fact:
openstack_ceilometer_batch_polled_samples: true
when: (batch_polled_samples.stdout == "")
- name: Get ceilometer shuffle time before polling task
command: crudini --get /etc/ceilometer/ceilometer.conf central shuffle_time_before_polling_task
register: shuffle_time_before_polling_task
ignore_errors: true
- name: Set ceilometer shuffle time before polling task
set_fact:
openstack_ceilometer_shuffle_time_before_polling_task: "{{ shuffle_time_before_polling_task.stdout }}"
when: shuffle_time_before_polling_task.stdout != ""
- name: Set ceilometer shuffle time before polling task
set_fact:
openstack_ceilometer_shuffle_time_before_polling_task: 0
when: shuffle_time_before_polling_task.stdout == ""
- name: Get ceilometer batch size
command: crudini --get /etc/ceilometer/ceilometer.conf collector batch_size
register: batch_size
ignore_errors: true
- name: Set ceilometer batch size
set_fact:
openstack_ceilometer_batch_size: "{{ batch_size.stdout }}"
when: batch_size.stdout != ""
- name: Set ceilometer batch size
set_fact:
openstack_ceilometer_batch_size: 1
when: batch_size.stdout == ""
- name: Get ceilometer workers
command: crudini --get /etc/ceilometer/ceilometer.conf collector workers
register: workers
ignore_errors: true
- name: Set ceilometer workers
set_fact:
openstack_ceilometer_workers: "{{ workers.stdout }}"
when: workers.stdout != ""
- name: Set ceilometer workers
set_fact:
openstack_ceilometer_workers: 1
when: workers.stdout == ""
- name: Get ceilometer workload partitioning
command: crudini --get /etc/ceilometer/ceilometer.conf compute workload_partitioning
register: workload_partitioning
ignore_errors: true
- name: Set ceilometer workload partitioning
set_fact:
openstack_ceilometer_workload_partitioning: "{{ workload_partitioning.stdout }}"
when: (workload_partitioning.stdout != "")
- name: Set ceilometer workload partitioning
set_fact:
openstack_ceilometer_workload_partitioning: false
when: (workload_partitioning.stdout == "")
- name: Get ceilometer resource update interval
command: crudini --get /etc/ceilometer/ceilometer.conf compute resource_update_interval
register: resource_update_interval
ignore_errors: true
- name: Set ceilometer resource update interval
set_fact:
openstack_ceilometer_resource_update_interval: "{{ resource_update_interval.stdout }}"
when: resource_update_interval.stdout != ""
- name: Set ceilometer resource update interval
set_fact:
openstack_ceilometer_resource_update_interval: 0
when: resource_update_interval.stdout == ""
- name: Get ceilometer disable process locking
command: crudini --get /etc/ceilometer/ceilometer.conf oslo_concurrency disable_process_locking
register: disable_process_locking
ignore_errors: true
- name: Set ceilometer disable process locking
set_fact:
openstack_ceilometer_disable_process_locking: "{{ disable_process_locking.stdout }}"
when: (disable_process_locking.stdout != "")
- name: Set ceilometer disable process locking
set_fact:
openstack_ceilometer_disable_process_locking: false
when: (disable_process_locking.stdout == "")
- name: Get ceilometer rabbit use ssl
command: crudini --get /etc/ceilometer/ceilometer.conf oslo_messaging_rabbit rabbit_use_ssl
register: rabbit_use_ssl
ignore_errors: true
- name: Set ceilometer rabbit use ssl
set_fact:
openstack_ceilometer_rabbit_use_ssl: "{{ rabbit_use_ssl.stdout }}"
when: (rabbit_use_ssl.stdout != "")
- name: Set ceilometer rabbit use ssl
set_fact:
openstack_ceilometer_rabbit_use_ssl: false
when: (rabbit_use_ssl.stdout == "")
- name: Load configuration variables
include_vars: /tmp/out.yml

View File

@ -3,303 +3,12 @@
# Tasks to get cinder facts
#
- name: Get cinder osapi max limit
command: crudini --get /etc/cinder/cinder.conf DEFAULT osapi_max_limit
register: osapi_max_limit
ignore_errors: true
- name: Parse Cinder config
become: true
shell: python /tmp/openstack-config-parser.py cinder /etc/cinder/cinder.conf /tmp/out.yml
- name: Set cinder osapi max limit
set_fact:
openstack_cinder_osapi_max_limit: "{{ osapi_max_limit.stdout }}"
when: osapi_max_limit.stdout != ""
- name: Set cinder osapi max limit
set_fact:
openstack_cinder_osapi_max_limit: 1000
when: osapi_max_limit.stdout == ""
- name: Get cinder backup ceph chunk size
command: crudini --get /etc/cinder/cinder.conf DEFAULT backup_ceph_chunk_size
register: backup_ceph_chunk_size
ignore_errors: true
- name: Set cinder backup ceph chunk size
set_fact:
openstack_cinder_backup_ceph_chunk_size: "{{ backup_ceph_chunk_size.stdout }}"
when: backup_ceph_chunk_size.stdout != ""
- name: Set cinder backup ceph chunk size
set_fact:
openstack_cinder_backup_ceph_chunk_size: 134217728
when: backup_ceph_chunk_size.stdout == ""
- name: Get cinder backup ceph stripe unit
command: crudini --get /etc/cinder/cinder.conf DEFAULT backup_ceph_stripe_unit
register: backup_ceph_stripe_unit
ignore_errors: true
- name: Set cinder backup ceph stripe unit
set_fact:
openstack_cinder_backup_ceph_stripe_unit: "{{ backup_ceph_stripe_unit.stdout }}"
when: backup_ceph_stripe_unit.stdout != ""
- name: Set cinder backup ceph stripe unit
set_fact:
openstack_cinder_backup_ceph_stripe_unit: 0
when: backup_ceph_stripe_unit.stdout == ""
- name: Get cinder backup ceph stripe count
command: crudini --get /etc/cinder/cinder.conf DEFAULT backup_ceph_stripe_count
register: backup_ceph_stripe_count
ignore_errors: true
- name: Set cinder backup ceph stripe count
set_fact:
openstack_cinder_backup_ceph_stripe_count: "{{ backup_ceph_stripe_count.stdout }}"
when: backup_ceph_stripe_count.stdout != ""
- name: Set cinder backup ceph stripe count
set_fact:
openstack_cinder_backup_ceph_stripe_count: 0
when: backup_ceph_stripe_count.stdout == ""
- name: Get cinder restore discarded excess bytes
command: crudini --get /etc/cinder/cinder.conf DEFAULT restore_discarded_excess_bytes
register: restore_discarded_excess_bytes
ignore_errors: true
- name: Set cinder restore discarded excess bytes
set_fact:
openstack_cinder_restore_discarded_excess_bytes: "{{ restore_discarded_excess_bytes.stdout }}"
when: (restore_discarded_excess_bytes.stdout != "")
- name: Set cinder restore discarded excess bytes
set_fact:
openstack_cinder_restore_discarded_excess_bytes: true
when: (restore_discarded_excess_bytes.stdout == "")
- name: Get cinder expiry thres minutes
command: crudini --get /etc/cinder/cinder.conf DEFAULT expiry_thres_minutes
register: expiry_thres_minutes
ignore_errors: true
- name: Set cinder expiry thres minutes
set_fact:
openstack_cinder_expiry_thres_minutes: "{{ expiry_thres_minutes.stdout }}"
when: expiry_thres_minutes.stdout != ""
- name: Set cinder expiry thres minutes
set_fact:
openstack_cinder_expiry_thres_minutes: 720
when: expiry_thres_minutes.stdout == ""
- name: Get cinder netapp enable multiattach
command: crudini --get /etc/cinder/cinder.conf DEFAULT netapp_enable_multiattach
register: netapp_enable_multiattach
ignore_errors: true
- name: Set cinder netapp enable multiattach
set_fact:
openstack_cinder_netapp_enable_multiattach: "{{ netapp_enable_multiattach.stdout }}"
when: (netapp_enable_multiattach.stdout != "")
- name: Set cinder netapp enable multiattach
set_fact:
openstack_cinder_netapp_enable_multiattach: false
when: (netapp_enable_multiattach.stdout == "")
- name: Get cinder backup tsm compression
command: crudini --get /etc/cinder/cinder.conf DEFAULT backup_tsm_compression
register: backup_tsm_compression
ignore_errors: true
- name: Set cinder backup tsm compression
set_fact:
openstack_cinder_backup_tsm_compression: "{{ backup_tsm_compression.stdout }}"
when: (backup_tsm_compression.stdout != "")
- name: Set cinder backup tsm compression
set_fact:
openstack_cinder_backup_tsm_compression: true
when: (backup_tsm_compression.stdout == "")
- name: Get cinder gpfs max clone depth
command: crudini --get /etc/cinder/cinder.conf DEFAULT gpfs_max_clone_depth
register: gpfs_max_clone_depth
ignore_errors: true
- name: Set cinder gpfs max clone depth
set_fact:
openstack_cinder_gpfs_max_clone_depth: "{{ gpfs_max_clone_depth.stdout }}"
when: gpfs_max_clone_depth.stdout != ""
- name: Set cinder gpfs max clone depth
set_fact:
openstack_cinder_gpfs_max_clone_depth: -1
when: gpfs_max_clone_depth.stdout == ""
- name: Get cinder violin request timeout
command: crudini --get /etc/cinder/cinder.conf DEFAULT violin_request_timeout
register: violin_request_timeout
ignore_errors: true
- name: Set cinder violin request timeout
set_fact:
openstack_cinder_violin_request_timeout: "{{ violin_request_timeout.stdout }}"
when: violin_request_timeout.stdout != ""
- name: Set cinder violin request timeout
set_fact:
openstack_cinder_violin_request_timeout: 300
when: violin_request_timeout.stdout == ""
- name: Get cinder nexenta blocksize
command: crudini --get /etc/cinder/cinder.conf DEFAULT nexenta_blocksize
register: nexenta_blocksize
ignore_errors: true
- name: Set cinder nexenta blocksize
set_fact:
openstack_cinder_nexenta_blocksize: "{{ nexenta_blocksize.stdout }}"
when: nexenta_blocksize.stdout != ""
- name: Set cinder nexenta blocksize
set_fact:
openstack_cinder_nexenta_blocksize: 4096
when: nexenta_blocksize.stdout == ""
- name: Get cinder nexenta rrmgr tcp buf size
command: crudini --get /etc/cinder/cinder.conf DEFAULT nexenta_rrmgr_tcp_buf_size
register: nexenta_rrmgr_tcp_buf_size
ignore_errors: true
- name: Set cinder nexenta rrmgr tcp buf size
set_fact:
openstack_cinder_nexenta_rrmgr_tcp_buf_size: "{{ nexenta_rrmgr_tcp_buf_size.stdout }}"
when: nexenta_rrmgr_tcp_buf_size.stdout != ""
- name: Set cinder nexenta rrmgr tcp buf size
set_fact:
openstack_cinder_nexenta_rrmgr_tcp_buf_size: 4096
when: nexenta_rrmgr_tcp_buf_size.stdout == ""
- name: Get cinder nexenta chunksize
command: crudini --get /etc/cinder/cinder.conf DEFAULT nexenta_chunksize
register: nexenta_chunksize
ignore_errors: true
- name: Set cinder nexenta chunksize
set_fact:
openstack_cinder_nexenta_chunksize: "{{ nexenta_chunksize.stdout }}"
when: nexenta_chunksize.stdout != ""
- name: Set cinder nexenta chunksize
set_fact:
openstack_cinder_nexenta_chunksize: 16384
when: nexenta_chunksize.stdout == ""
- name: Get cinder sf emulate 512
command: crudini --get /etc/cinder/cinder.conf DEFAULT sf_emulate_512
register: sf_emulate_512
ignore_errors: true
- name: Set cinder sf emulate 512
set_fact:
openstack_cinder_sf_emulate_512: "{{ sf_emulate_512.stdout }}"
when: (sf_emulate_512.stdout != "")
- name: Set cinder sf emulate 512
set_fact:
openstack_cinder_sf_emulate_512: true
when: (sf_emulate_512.stdout == "")
- name: Get cinder sf allow tenant qos
command: crudini --get /etc/cinder/cinder.conf DEFAULT sf_allow_tenant_qos
register: sf_allow_tenant_qos
ignore_errors: true
- name: Set cinder sf allow tenant qos
set_fact:
openstack_cinder_sf_allow_tenant_qos: "{{ sf_allow_tenant_qos.stdout }}"
when: (sf_allow_tenant_qos.stdout != "")
- name: Set cinder sf allow tenant qos
set_fact:
openstack_cinder_sf_allow_tenant_qos: false
when: (sf_allow_tenant_qos.stdout == "")
- name: Get cinder sf allow template caching
command: crudini --get /etc/cinder/cinder.conf DEFAULT sf_allow_template_caching
register: sf_allow_template_caching
ignore_errors: true
- name: Set cinder sf allow template caching
set_fact:
openstack_cinder_sf_allow_template_caching: "{{ sf_allow_template_caching.stdout }}"
when: (sf_allow_template_caching.stdout != "")
- name: Set cinder sf allow template caching
set_fact:
openstack_cinder_sf_allow_template_caching: true
when: (sf_allow_template_caching.stdout == "")
- name: Get cinder backup swift object size
command: crudini --get /etc/cinder/cinder.conf DEFAULT backup_swift_object_size
register: backup_swift_object_size
ignore_errors: true
- name: Set cinder backup swift object size
set_fact:
openstack_cinder_backup_swift_object_size: "{{ backup_swift_object_size.stdout }}"
when: backup_swift_object_size.stdout != ""
- name: Set cinder backup swift object size
set_fact:
openstack_cinder_backup_swift_object_size: 52428800
when: backup_swift_object_size.stdout == ""
- name: Get cinder backup swift block size
command: crudini --get /etc/cinder/cinder.conf DEFAULT backup_swift_block_size
register: backup_swift_block_size
ignore_errors: true
- name: Set cinder backup swift block size
set_fact:
openstack_cinder_backup_swift_block_size: "{{ backup_swift_block_size.stdout }}"
when: backup_swift_block_size.stdout != ""
- name: Set cinder backup swift block size
set_fact:
openstack_cinder_backup_swift_block_size: 32768
when: backup_swift_block_size.stdout == ""
- name: Get cinder backup file size
command: crudini --get /etc/cinder/cinder.conf DEFAULT backup_file_size
register: backup_file_size
ignore_errors: true
- name: Set cinder backup file size
set_fact:
openstack_cinder_backup_file_size: "{{ backup_file_size.stdout }}"
when: backup_file_size.stdout != ""
- name: Set cinder backup file size
set_fact:
openstack_cinder_backup_file_size: 1999994880
when: backup_file_size.stdout == ""
- name: Get cinder backup sha block size bytes
command: crudini --get /etc/cinder/cinder.conf DEFAULT backup_sha_block_size_bytes
register: backup_sha_block_size_bytes
ignore_errors: true
- name: Set cinder backup sha block size bytes
set_fact:
openstack_cinder_backup_sha_block_size_bytes: "{{ backup_sha_block_size_bytes.stdout }}"
when: backup_sha_block_size_bytes.stdout != ""
- name: Set cinder backup sha block size bytes
set_fact:
openstack_cinder_backup_sha_block_size_bytes: 32768
when: backup_sha_block_size_bytes.stdout == ""
- name: Fetch output
fetch: src=/tmp/out.yml dest=/tmp/out.yml flat=yes
- name: Load configuration variables
include_vars: /tmp/out.yml

View File

@ -0,0 +1,55 @@
import sys
# usage: openstack-config-parser.py [service] [config file] [output file]
def parse_config(serviceName, fileName):
# a dict containing key/value
# pairs, last value is what is
# stored.
values = {}
with open(fileName) as config:
for line in config:
pair = line.replace('#', '')
pair = pair.replace('\n', '')
pair = pair.replace('"', '')
pair = pair.replace('\\', '')
pair = pair.replace(' ', '')
pair = pair.replace('<', '')
pair = pair.replace('>', '')
pair = pair.split('=')
# excludes any line without a key/val pair
valid_line = not line.startswith(
"# ") and '[' not in line and line != '\n' and line != '#\n' and "password" not in line.lower()
if '#' not in line and valid_line:
values["openstack_" + serviceName + "_" + pair[0]] = pair[1]
return values
def try_type(val):
try:
int(val)
return val
except ValueError:
try:
float(val)
return val
except ValueError:
if val.lower() in ("true", "false"):
return val
else:
return "\"" + val + "\""
def print_vars_file(values, fileName):
with open(fileName, 'w') as output:
for key in values:
output.write(key + ": " + try_type(values[key]) + "\n")
def main():
output = parse_config(sys.argv[1], sys.argv[2])
print_vars_file(output, sys.argv[3])
if __name__ == '__main__':
sys.exit(main())

View File

@ -0,0 +1,3 @@
---
- name: Copy config parser script to remote
copy: src=openstack-config-parser.py dest=/tmp/openstack-config-parser.py

View File

@ -0,0 +1,6 @@
---
- name: Dump all vars
template: src=dump_facts.j2 dest={{ browbeat_path }}/metadata/machine_facts.json
- name: Generate metadata jsons
shell : python {{ browbeat_path }}/lib/Metadata.py {{ browbeat_path }}/metadata

View File

@ -9,5 +9,3 @@
{{hostvars[host]| to_nice_json}}
{% endfor %}
]

View File

@ -3,273 +3,12 @@
# Tasks to get heat facts
#
- name: Get heat stale token duration
command: crudini --get /etc/heat/heat.conf DEFAULT stale_token_duration
register: stale_token_duration
ignore_errors: true
- name: Parse Heat config
become: true
shell: python /tmp/openstack-config-parser.py heat /etc/heat/heat.conf /tmp/out.yml
- name: Set heat stale token duration
set_fact:
openstack_heat_stale_token_duration: "{{ stale_token_duration.stdout }}"
when: stale_token_duration.stdout != ""
- name: Set heat stale token duration
set_fact:
openstack_heat_stale_token_duration: 30
when: stale_token_duration.stdout == ""
- name: Get heat max resources per stack
command: crudini --get /etc/heat/heat.conf DEFAULT max_resources_per_stack
register: max_resources_per_stack
ignore_errors: true
- name: Set heat max resources per stack
set_fact:
openstack_heat_max_resources_per_stack: "{{ max_resources_per_stack.stdout }}"
when: max_resources_per_stack.stdout != ""
- name: Set heat max resources per stack
set_fact:
openstack_heat_max_resources_per_stack: -1
when: max_resources_per_stack.stdout == ""
- name: Get heat max stacks per tenant
command: crudini --get /etc/heat/heat.conf DEFAULT max_stacks_per_tenant
register: max_stacks_per_tenant
ignore_errors: true
- name: Set heat max stacks per tenant
set_fact:
openstack_heat_max_stacks_per_tenant: "{{ max_stacks_per_tenant.stdout }}"
when: max_stacks_per_tenant.stdout != ""
- name: Set heat max stacks per tenant
set_fact:
openstack_heat_max_stacks_per_tenant: 100
when: max_stacks_per_tenant.stdout == ""
- name: Get heat action retry limit
command: crudini --get /etc/heat/heat.conf DEFAULT action_retry_limit
register: action_retry_limit
ignore_errors: true
- name: Set heat action retry limit
set_fact:
openstack_heat_action_retry_limit: "{{ action_retry_limit.stdout }}"
when: action_retry_limit.stdout != ""
- name: Set heat action retry limit
set_fact:
openstack_heat_action_retry_limit: 5
when: action_retry_limit.stdout == ""
- name: Get heat max interface check attempts
command: crudini --get /etc/heat/heat.conf DEFAULT max_interface_check_attempts
register: max_interface_check_attempts
ignore_errors: true
- name: Set heat max interface check attempts
set_fact:
openstack_heat_max_interface_check_attempts: "{{ max_interface_check_attempts.stdout }}"
when: max_interface_check_attempts.stdout != ""
- name: Set heat max interface check attempts
set_fact:
openstack_heat_max_interface_check_attempts: 10
when: max_interface_check_attempts.stdout == ""
- name: Get heat event purgE batch size
command: crudini --get /etc/heat/heat.conf DEFAULT event_purgE_batch_size
register: event_purgE_batch_size
ignore_errors: true
- name: Set heat event purgE batch size
set_fact:
openstack_heat_event_purgE_batch_size: "{{ event_purgE_batch_size.stdout }}"
when: event_purgE_batch_size.stdout != ""
- name: Set heat event purgE batch size
set_fact:
openstack_heat_event_purgE_batch_size: 10
when: event_purgE_batch_size.stdout == ""
- name: Get heat max events per stack
command: crudini --get /etc/heat/heat.conf DEFAULT max_events_per_stack
register: max_events_per_stack
ignore_errors: true
- name: Set heat max events per stack
set_fact:
openstack_heat_max_events_per_stack: "{{ max_events_per_stack.stdout }}"
when: max_events_per_stack.stdout != ""
- name: Set heat max events per stack
set_fact:
openstack_heat_max_events_per_stack: 1000
when: max_events_per_stack.stdout == ""
- name: Get heat stack action timeout
command: crudini --get /etc/heat/heat.conf DEFAULT stack_action_timeout
register: stack_action_timeout
ignore_errors: true
- name: Set heat stack action timeout
set_fact:
openstack_heat_stack_action_timeout: "{{ stack_action_timeout.stdout }}"
when: stack_action_timeout.stdout != ""
- name: Set heat stack action timeout
set_fact:
openstack_heat_stack_action_timeout: 3600
when: stack_action_timeout.stdout == ""
- name: Get heat enable stack abandon
command: crudini --get /etc/heat/heat.conf DEFAULT enable_stack_abandon
register: enable_stack_abandon
ignore_errors: true
- name: Set heat enable stack abandon
set_fact:
openstack_heat_enable_stack_abandon: "{{ enable_stack_abandon.stdout }}"
when: (enable_stack_abandon.stdout != "")
- name: Set heat enable stack abandon
set_fact:
openstack_heat_enable_stack_abandon: false
when: (enable_stack_abandon.stdout == "")
- name: Get heat enable stack adopt
command: crudini --get /etc/heat/heat.conf DEFAULT enable_stack_adopt
register: enable_stack_adopt
ignore_errors: true
- name: Set heat enable stack adopt
set_fact:
openstack_heat_enable_stack_adopt: "{{ enable_stack_adopt.stdout }}"
when: (enable_stack_adopt.stdout != "")
- name: Set heat enable stack adopt
set_fact:
openstack_heat_enable_stack_adopt: false
when: (enable_stack_adopt.stdout == "")
- name: Get heat convergence engine
command: crudini --get /etc/heat/heat.conf DEFAULT convergence_engine
register: convergence_engine
ignore_errors: true
- name: Set heat convergence engine
set_fact:
openstack_heat_convergence_engine: "{{ convergence_engine.stdout }}"
when: (convergence_engine.stdout != "")
- name: Set heat convergence engine
set_fact:
openstack_heat_convergence_engine: false
when: (convergence_engine.stdout == "")
- name: Get heat observe on update
command: crudini --get /etc/heat/heat.conf DEFAULT observe_on_update
register: observe_on_update
ignore_errors: true
- name: Set heat observe on update
set_fact:
openstack_heat_observe_on_update: "{{ observe_on_update.stdout }}"
when: (observe_on_update.stdout != "")
- name: Set heat observe on update
set_fact:
openstack_heat_observe_on_update: false
when: (observe_on_update.stdout == "")
- name: Get heat encrypt parameter and properties
command: crudini --get /etc/heat/heat.conf DEFAULT encrypt_parameter_and_properties
register: encrypt_parameter_and_properties
ignore_errors: true
- name: Set heat encrypt parameter and properties
set_fact:
openstack_heat_encrypt_parameter_and_properties: "{{ encrypt_parameter_and_properties.stdout }}"
when: (encrypt_parameter_and_properties.stdout != "")
- name: Set heat encrypt parameter and properties
set_fact:
openstack_heat_encrypt_parameter_and_properties: false
when: (encrypt_parameter_and_properties.stdout == "")
- name: Get heat periodic interval
command: crudini --get /etc/heat/heat.conf DEFAULT periodic_interval
register: periodic_interval
ignore_errors: true
- name: Set heat periodic interval
set_fact:
openstack_heat_periodic_interval: "{{ periodic_interval.stdout }}"
when: periodic_interval.stdout != ""
- name: Set heat periodic interval
set_fact:
openstack_heat_periodic_interval: 60
when: periodic_interval.stdout == ""
- name: Get heat max template size
command: crudini --get /etc/heat/heat.conf DEFAULT max_template_size
register: max_template_size
ignore_errors: true
- name: Set heat max template size
set_fact:
openstack_heat_max_template_size: "{{ max_template_size.stdout }}"
when: max_template_size.stdout != ""
- name: Set heat max template size
set_fact:
openstack_heat_max_template_size: 524288
when: max_template_size.stdout == ""
- name: Get heat max nested stack depth
command: crudini --get /etc/heat/heat.conf DEFAULT max_nested_stack_depth
register: max_nested_stack_depth
ignore_errors: true
- name: Set heat max nested stack depth
set_fact:
openstack_heat_max_nested_stack_depth: "{{ max_nested_stack_depth.stdout }}"
when: max_nested_stack_depth.stdout != ""
- name: Set heat max nested stack depth
set_fact:
openstack_heat_max_nested_stack_depth: 5
when: max_nested_stack_depth.stdout == ""
- name: Get heat debug
command: crudini --get /etc/heat/heat.conf DEFAULT debug
register: debug
ignore_errors: true
- name: Set heat debug
set_fact:
openstack_heat_debug: "{{ debug.stdout }}"
when: (debug.stdout != "")
- name: Set heat debug
set_fact:
openstack_heat_debug: false
when: (debug.stdout == "")
- name: Get heat rpc response timeout
command: crudini --get /etc/heat/heat.conf DEFAULT rpc_response_timeout
register: rpc_response_timeout
ignore_errors: true
- name: Set heat rpc response timeout
set_fact:
openstack_heat_rpc_response_timeout: "{{ rpc_response_timeout.stdout }}"
when: rpc_response_timeout.stdout != ""
- name: Set heat rpc response timeout
set_fact:
openstack_heat_rpc_response_timeout: 600
when: rpc_response_timeout.stdout == ""
- name: Fetch output
fetch: src=/tmp/out.yml dest=/tmp/out.yml flat=yes
- name: Load configuration variables
include_vars: /tmp/out.yml

View File

@ -3,68 +3,54 @@
# Tasks to set keystone facts
#
- name: Get keystone provider
command: crudini --get /etc/keystone/keystone.conf token provider
register: keystone_provider
- name: Parse Keystone config
become: true
shell: python /tmp/openstack-config-parser.py keystone /etc/keystone/keystone.conf /tmp/out.yml
- name: Set keystone provider fact
set_fact:
openstack_keystone_token_provider: "{{ keystone_provider.stdout }}"
- name: Fetch output
fetch: src=/tmp/out.yml dest=/tmp/out.yml flat=yes
- name: Determine if Keystone is deployed in eventlet
shell: ps afx | grep "[Kk]eystone-all" -c
register: keystone_in_eventlet
changed_when: false
ignore_errors: True
- name: Load configuration variables
include_vars: /tmp/out.yml
- name: Set keystone_deployment variable to httpd
set_fact: openstack_keystone_deployment='httpd'
when: keystone_in_eventlet.stdout|int == 0
- name: Determine if Keystone is deployed in eventlet
shell: ps afx | grep "[Kk]eystone-all" -c
register: keystone_in_eventlet
changed_when: false
ignore_errors: True
- name: Set keystone_deployment variable to eventlet
set_fact: openstack_keystone_deployment='eventlet'
when: keystone_in_eventlet.stdout|int > 0
- name: Set keystone_deployment variable to httpd
set_fact: openstack_keystone_deployment='httpd'
when: keystone_in_eventlet.stdout|int == 0
- name: Determine number of public workers for eventlet
shell: crudini --get /etc/keystone/keystone.conf eventlet_server public_workers
register: keystone_public_workers
when: keystone_in_eventlet.stdout|int > 0
- name: Set keystone_deployment variable to eventlet
set_fact: openstack_keystone_deployment='eventlet'
when: keystone_in_eventlet.stdout|int > 0
- name: Determine number of admin workers for eventlet
shell: crudini --get /etc/keystone/keystone.conf eventlet_server admin_workers
register: keystone_admin_workers
when: keystone_in_eventlet.stdout|int > 0
- name: Determine number of keystone admin processes for httpd
shell: grep processes /etc/httpd/conf.d/10-keystone_wsgi_admin.conf | awk '{print $5}'| awk -F= '{print $2}'
register: keystone_admin_worker_processes
when: keystone_in_eventlet.stdout|int == 0
- name: Set keystone eventlet worker facts
set_fact:
openstack_keystone_admin_workers: "{{ keystone_admin_workers.stdout }}"
openstack_keystone_public_workers: "{{ keystone_public_workers.stdout }}"
when: keystone_in_eventlet.stdout|int > 0
- name: Determine number of keystone admin threads for httpd
shell: grep threads /etc/httpd/conf.d/10-keystone_wsgi_admin.conf | awk '{print $6}'| awk -F= '{print $2}'
register: keystone_admin_worker_threads
when: keystone_in_eventlet.stdout|int == 0
- name: Determine number of keystone admin processes for httpd
shell: grep processes /etc/httpd/conf.d/10-keystone_wsgi_admin.conf | awk '{print $5}'| awk -F= '{print $2}'
register: keystone_admin_worker_processes
when: keystone_in_eventlet.stdout|int == 0
- name: Determine number of keystone main threads for httpd
shell: grep threads /etc/httpd/conf.d/10-keystone_wsgi_main.conf | awk '{print $6}'| awk -F= '{print $2}'
register: keystone_main_worker_threads
when: keystone_in_eventlet.stdout|int == 0
- name: Determine number of keystone admin threads for httpd
shell: grep threads /etc/httpd/conf.d/10-keystone_wsgi_admin.conf | awk '{print $6}'| awk -F= '{print $2}'
register: keystone_admin_worker_threads
when: keystone_in_eventlet.stdout|int == 0
- name: Determine number of keystone main processes for httpd
shell: grep threads /etc/httpd/conf.d/10-keystone_wsgi_main.conf | awk '{print $5}'| awk -F= '{print $2}'
register: keystone_main_worker_processes
when: keystone_in_eventlet.stdout|int == 0
- name: Determine number of keystone main threads for httpd
shell: grep threads /etc/httpd/conf.d/10-keystone_wsgi_main.conf | awk '{print $6}'| awk -F= '{print $2}'
register: keystone_main_worker_threads
when: keystone_in_eventlet.stdout|int == 0
- name: Determine number of keystone main processes for httpd
shell: grep threads /etc/httpd/conf.d/10-keystone_wsgi_main.conf | awk '{print $5}'| awk -F= '{print $2}'
register: keystone_main_worker_processes
when: keystone_in_eventlet.stdout|int == 0
- name: Set keystone httpd worker facts
set_fact:
openstack_keystone_admin_workers_processes: "{{ keystone_admin_worker_processes.stdout }}"
openstack_keystone_admin_workers_threads: "{{ keystone_admin_worker_threads.stdout }}"
openstack_keystone_main_workers_processes: "{{ keystone_main_worker_processes.stdout }}"
openstack_keystone_main_workers_threads: "{{ keystone_main_worker_threads.stdout }}"
when: keystone_in_eventlet.stdout|int == 0
- name: Set keystone httpd worker facts
set_fact:
openstack_keystone_admin_workers_processes: "{{ keystone_admin_worker_processes.stdout }}"
openstack_keystone_admin_workers_threads: "{{ keystone_admin_worker_threads.stdout }}"
openstack_keystone_main_workers_processes: "{{ keystone_main_worker_processes.stdout }}"
openstack_keystone_main_workers_threads: "{{ keystone_main_worker_threads.stdout }}"
when: keystone_in_eventlet.stdout|int == 0

View File

@ -2,120 +2,23 @@
#
# Tasks to get neutron facts
#
- name: Get Neutron L3 conf
command: crudini --get /etc/neutron/neutron.conf DEFAULT router_distributed
register: dvr_stat
ignore_errors: true
- name: Set L3 configuration fact
set_fact:
openstack_neutron_l3_dvr: "{{ dvr_stat.stdout }}"
when: dvr_stat.stdout != ""
- name: Parse Neutron config
become: true
shell: python /tmp/openstack-config-parser.py neutron /etc/neutron/neutron.conf /tmp/out.yml
- name: Set L3 configauration fact
set_fact:
openstack_neutron_l3_dvr: false
when: dvr_stat.stdout == ""
- name: Fetch output
fetch: src=/tmp/out.yml dest=/tmp/out.yml flat=yes
- name: Get Neutron Core Plugin
command: crudini --get /etc/neutron/neutron.conf DEFAULT core_plugin
register: core_plugin
ignore_errors: true
- name: Load configuration variables
include_vars: /tmp/out.yml
- name: Set Core Plugin fact
set_fact:
openstack_neutron_core_plugin: "{{ core_plugin.stdout }}"
- name: Parse Neutron plugin.ini
become: true
shell: python /tmp/openstack-config-parser.py neutron-plugin /etc/neutron/plugin.ini /tmp/out.yml
- name: Get Neutron API Workers
command: crudini --get /etc/neutron/neutron.conf DEFAULT api_workers
register: neutron_api
ignore_errors: true
- name: Fetch output
fetch: src=/tmp/out.yml dest=/tmp/out.yml flat=yes
- name: Set neutron API Workers fact
set_fact:
openstack_neutron_api_workers: "{{ facter_processorcount }}"
when: ( neutron_api.stdout == "" )
- name: Set neutron API Workers fact
set_fact:
openstack_neutron_api_workers: "{{ neutron_api.stdout }}"
when: (neutron_api.stdout != "" and neutron_api.stdout|int > 1 )
- name: Set neutron API Workers fact
set_fact:
openstack_neutron_api_workers: 1
when: (neutron_api.stdout != "" and neutron_api.stdout|int <= 1)
- name: Get Neutron RPC Workers
command: crudini --get /etc/neutron/neutron.conf DEFAULT rpc_workers
register: neutron_rpc
ignore_errors: true
- name: Set neutron RPC Workers fact
set_fact:
openstack_neutron_rpc_workers: 1
when: (neutron_rpc.stdout == "" or neutron_rpc.stdout|int < 1)
- name: Set neutron RPC Workers fact
set_fact:
openstack_neutron_rpc_workers: "{{ neutron_rpc.stdout }}"
when: (neutron_rpc.stdout != "" and neutron_rpc.stdout|int >= 1)
- name: Get ml2 mechanism driver
command: crudini --get /etc/neutron/plugins/ml2/ml2_conf.ini ml2 mechanism_drivers
register: ml2
when: openstack_neutron_core_plugin == "ml2"
ignore_errors: true
- name: Set mechanism driver
set_fact:
openstack_neutron_ml2_driver: "{{ ml2.stdout }}"
- name: Get firewall driver
command: crudini --get /etc/neutron/plugins/ml2/ml2_conf.ini securitygroup firewall_driver
register: firewall
ignore_errors: true
- name: Set firewall driver fact
set_fact:
openstack_neutron_firewall_driver: "iptables_hybrid"
when: (firewall.stdout == "" and openstack_neutron_core_plugin == "ml2")
- name: Set firewall driver fact
set_fact:
openstack_neutron_firewall_driver: "{{ firewall.stdout }}"
when: firewall.stdout != ""
- name: Get ovs tunnel type
command: crudini --get /etc/neutron/plugins/ml2/openvswitch_agent.ini agent tunnel_types
register: tunnel_type
ignore_errors: true
- name: Set ovs tunnel type fact
set_fact:
openstack_neutron_ovs_tunnel: "{{ tunnel_type.stdout }}"
when: "'openvswitch' in openstack_neutron_ml2_driver"
- name: Get ovs version
shell: ovs-vswitchd --version | grep vSwitch | awk {'print$4'}
register: ovs_version
ignore_errors: true
- name: Set ovs version fact
set_fact:
openstack_ovs_version: "{{ ovs_version.stdout }}"
- name: Get neutron ovs agent ovsdb setting
shell: crudini --get /etc/neutron/plugins/ml2/openvswitch_agent.ini ovs ovsdb_interface
register: ovsdb_status
ignore_errors: true
- name: Set Neutron OVS ovsdb fact
set_fact:
openstack_neutron_ovsdb: "{{ ovsdb_status.stdout }}"
when: (ovsdb_status.stdout.find('native') != -1 or ovsdb_status.stdout.find('vsctl') != -1)
- name: Set Neutron OVS ovsdb fact
set_fact:
openstack_neutron_ovsdb: "vsctl"
when: (ovsdb_status.stdout.find('native') == -1 and ovsdb_status.stdout.find('vsctl') == -1)
- name: Load configuration variables
include_vars: /tmp/out.yml

View File

@ -2,49 +2,14 @@
#
# Tasks to get nova facts
#
- name: Get Nova API Workers
command: crudini --get /etc/nova/nova.conf DEFAULT osapi_compute_workers
register: nova_api
ignore_errors: true
- name: Set nova API Workers fact
set_fact:
openstack_nova_api_workers: "{{ facter_processorcount }}"
when: (nova_api.stdout =="" or nova_api.stdout|int < 1)
- name: Parse Nova config
become: true
shell: python /tmp/openstack-config-parser.py nova /etc/nova/nova.conf /tmp/out.yml
- name: Set nova API Workers fact
set_fact:
openstack_nova_api_workers: "{{ nova_api.stdout }}"
when: (nova_api.stdout !="" and nova_api.stdout|int >= 1)
- name: Get Nova conductor workers
command: crudini --get /etc/nova/nova.conf conductor workers
register: nova_conductor
ignore_errors: true
- name: Set Nova conductor workers
set_fact:
openstack_nova_conductor_workers: "{{ facter_processorcount }}"
when: (nova_conductor.stdout == "" or nova_conductor.stdout|int < 1)
- name: Set Nova conductor workers
set_fact:
openstack_nova_conductor_workers: "{{ nova_conductor.stdout }}"
when: (nova_conductor.stdout != "" and nova_conductor.stdout|int >= 1)
- name: Get Nova metadata workers
command: crudini --get /etc/nova/nova.conf DEFAULT metadata_workers
register: nova_metadata
ignore_errors: true
- name: Set Nova metadata workers
set_fact:
openstack_nova_metadata_workers: "{{ facter_processorcount }}"
when: (nova_metadata.stdout == "" or nova_metadata.stdout|int < 1)
- name: Set Nova metadata workers
set_fact:
openstack_nova_metadata_workers: "{{ nova_metadata.stdout }}"
when: (nova_metadata.stdout != "" and nova_metadata.stdout|int >= 1)
- name: Fetch output
fetch: src=/tmp/out.yml dest=/tmp/out.yml flat=yes
- name: Load configuration variables
include_vars: /tmp/out.yml

View File

@ -9,6 +9,7 @@
remote_user: "{{ host_remote_user }}"
become: true
roles:
- common
- nova
- neutron
- keystone
@ -24,10 +25,7 @@
roles:
- undercloud
- hosts: undercloud
tasks:
- name: Dump all vars
template: src=dump_facts.j2 dest={{ browbeat_path }}/metadata/machine_facts.json
- name: Generate metadata jsons
shell : python {{ browbeat_path }}/lib/Metadata.py {{ browbeat_path }}/metadata
remote_user: "{{ local_remote_user }}"
roles:
- dump-facts

View File

@ -63,29 +63,27 @@ class Metadata:
return env_dict
def get_software_metadata(self, sys_data):
soft_all_dict = {}
soft_all_dict = []
for item in sys_data['system_data']:
if 'software_details' not in soft_all_dict:
soft_all_dict['software_details'] = {}
nodes = ['controller', 'undercloud', 'compute']
if any(node in item['inventory_hostname'] for node in nodes):
if 'openstack' not in soft_all_dict['software_details']:
soft_all_dict['software_details']['openstack'] = {}
if 'config' not in soft_all_dict['software_details']['openstack']:
soft_all_dict['software_details'][
'openstack']['config'] = []
software_dict = {}
software_dict['node_name'] = item['inventory_hostname']
for soft in item:
if 'openstack' in soft:
service = soft.split('_')
key = soft.split('_', 2)[2]
service_name = service[1]
if service_name not in software_dict:
node = item['inventory_hostname']
if service_name in software_dict:
if service_name in soft:
software_dict[service_name][key] = item[soft]
else:
software_dict[service_name] = {}
if service_name in soft:
software_dict[service_name][soft] = item[soft]
soft_all_dict['software_details']['openstack'][
'config'].append(software_dict)
if service_name in soft:
software_dict[service_name]['node_name'] = node
software_dict[service_name][key] = item[soft]
soft_all_dict.append(software_dict)
return soft_all_dict
def write_metadata_file(self, data, filename):