Merge "Use dictionary for service mappings"

This commit is contained in:
Jenkins 2016-10-13 18:56:53 +00:00 committed by Gerrit Code Review
commit 3396082f35
17 changed files with 162 additions and 373 deletions

View File

@ -169,19 +169,6 @@ swift_rabbitmq_telemetry_servers: "127.0.0.1"
# For now swift ceilometer does not work with SSL - this is a speculative option in the hope it gets added
swift_rabbitmq_telemetry_use_ssl: "False"
swift_account_server_program_config_options: /etc/swift/account-server/account-server.conf
swift_account_replicator_program_config_options: /etc/swift/account-server/account-server-replicator.conf
swift_container_server_program_config_options: /etc/swift/container-server/container-server.conf
swift_container_replicator_program_config_options: /etc/swift/container-server/container-server-replicator.conf
swift_container_reconciler_program_config_options: /etc/swift/container-server/container-reconciler.conf
swift_object_server_program_config_options: /etc/swift/object-server/object-server.conf
swift_object_replicator_program_config_options: /etc/swift/object-server/object-server-replicator.conf
swift_object_expirer_program_config_options: /etc/swift/object-server/object-expirer.conf
swift_proxy_server_program_config_options: /etc/swift/proxy-server/proxy-server.conf
## General Swift configuration
# If ``swift_account_server_replicator_workers`` is unset the system will use half the number
# of available VCPUS to compute the number of api workers to use.
@ -299,32 +286,86 @@ swift_pip_packages:
- python-swiftclient
- swift
swift_account_program_names:
- swift-account-server
- swift-account-auditor
- swift-account-replicator
- swift-account-reaper
- swift-account-replicator-server
swift_container_program_names:
- swift-container-server
- swift-container-auditor
- swift-container-replicator
- swift-container-sync
- swift-container-updater
- swift-container-replicator-server
- swift-container-reconciler
swift_object_program_names:
- swift-object-server
- swift-object-auditor
- swift-object-replicator
- swift-object-updater
- swift-object-replicator-server
- swift-object-expirer
swift_proxy_program_names:
- swift-proxy-server
swift_services:
swift-account-replicator:
group: swift_acc
program_name: "swift-account-replicator"
program_config_options: "{{ swift_dedicated_replication | ternary('/etc/swift/account-server/account-server-replicator.conf', '/etc/swift/account-server/account-server.conf') }}"
swift-account-replicator-server:
group: swift_acc
program_name: "swift-account-replicator-server"
program_binary: "swift-account-server"
program_config_options: "/etc/swift/account-server/account-server-replicator.conf"
swift-account-server:
group: swift_acc
program_name: "swift-account-server"
program_config_options: "/etc/swift/account-server/account-server.conf"
swift-account-auditor:
group: swift_acc
program_name: "swift-account-auditor"
program_config_options: "{{ swift_dedicated_replication | ternary('/etc/swift/account-server/account-server-replicator.conf', '/etc/swift/account-server/account-server.conf') }}"
swift-account-reaper:
group: swift_acc
program_name: "swift-account-reaper"
program_config_options: "/etc/swift/account-server/account-server.conf"
swift-container-replicator:
group: swift_cont
program_name: "swift-container-replicator"
program_config_options: "{{ swift_dedicated_replication | ternary('/etc/swift/container-server/container-server-replicator.conf', '/etc/swift/container-server/container-server.conf') }}"
swift-container-replicator-server:
group: swift_cont
program_name: "swift-container-replicator-server"
program_binary: "swift-container-server"
program_config_options: "/etc/swift/container-server/container-server-replicator.conf"
swift-container-server:
group: swift_cont
program_name: "swift-container-server"
program_config_options: "/etc/swift/container-server/container-server.conf"
swift-container-auditor:
group: swift_cont
program_name: "swift-container-auditor"
program_config_options: "{{ swift_dedicated_replication | ternary('/etc/swift/container-server/container-server-replicator.conf', '/etc/swift/container-server/container-server.conf') }}"
swift-container-sync:
group: swift_cont
program_name: "swift-container-sync"
program_config_options: "/etc/swift/container-server/container-server.conf"
swift-container-updater:
group: swift_cont
program_name: "swift-container-updater"
program_config_options: "/etc/swift/container-server/container-server.conf"
swift-container-reconciler:
group: swift_cont
program_name: "swift-container-reconciler"
program_config_options: "/etc/swift/container-server/container-reconciler.conf"
swift-object-replicator:
group: swift_obj
program_name: "swift-object-replicator"
program_config_options: "{{ swift_dedicated_replication | ternary('/etc/swift/object-server/object-server-replicator.conf', '/etc/swift/object-server/object-server.conf') }}"
swift-object-replicator-server:
group: swift_obj
program_name: "swift-object-replicator-server"
program_binary: "swift-object-server"
program_config_options: "/etc/swift/object-server/object-server-replicator.conf"
swift-object-server:
group: swift_obj
program_name: "swift-object-server"
program_config_options: "/etc/swift/object-server/object-server.conf"
swift-object-auditor:
group: swift_obj
program_name: "swift-object-auditor"
program_config_options: "{{ swift_dedicated_replication | ternary('/etc/swift/object-server/object-server-replicator.conf', '/etc/swift/object-server/object-server.conf') }}"
swift-object-updater:
group: swift_obj
program_name: "swift-object-updater"
program_config_options: "/etc/swift/object-server/object-server.conf"
swift-object-expirer:
group: swift_obj
program_name: "swift-object-expirer"
program_config_options: "/etc/swift/object-server/object-expirer.conf"
swift-proxy-server:
group: swift_proxy
program_name: "swift-proxy-server"
program_config_options: "/etc/swift/proxy-server/proxy-server.conf"
# Set to True to reset the clock on the last time a rebalance happened,
# circumventing the min_part_hours check.

View File

@ -13,49 +13,24 @@
# See the License for the specific language governing permissions and
# limitations under the License.
- name: Restart swift account services
service:
name: "{{ item }}"
state: "restarted"
pattern: "{{ item }}"
register: service_restart
with_items: "{{ swift_account_program_names }}"
failed_when: false
- name: Reload systemd daemon
command: "systemctl daemon-reload"
notify:
- Restart swift services
- name: Restart swift container services
service:
name: "{{ item }}"
state: "restarted"
pattern: "{{ item }}"
register: service_restart
with_items: "{{ swift_container_program_names }}"
failed_when: false
- name: Reload upstart init scripts
shell: |
initctl reload-configuration
notify:
- Restart swift services
- name: Restart swift object services
- name: Restart swift services
service:
name: "{{ item }}"
name: "{{ item.value.program_name }}"
state: "restarted"
pattern: "{{ item }}"
register: service_restart
with_items: "{{ swift_object_program_names }}"
failed_when: false
- name: Restart swift proxy services
service:
name: "{{ item }}"
state: "restarted"
pattern: "{{ item }}"
register: service_restart
with_items: "{{ swift_proxy_program_names }}"
failed_when: false
- name: Restart service
service:
name: "{{ item }}"
state: "restarted"
pattern: "{{ item }}"
enabled: "yes"
when: item is defined
pattern: "{{ item.value.program_name }}"
with_dict: "{{ swift_services }}"
when: inventory_hostname in groups[item.value.group]
- name: Restart rsyslog
service:

View File

@ -95,6 +95,10 @@
- swift-config
- swift-install
- include: swift_init_common.yml
tags:
- swift-install
- include: swift_service_setup.yml
when:
- inventory_hostname == groups['swift_all'][0]

View File

@ -23,7 +23,9 @@
- name: Load service
service:
name: "{{ program_name }}"
name: "{{ item.value.program_name }}"
enabled: "yes"
state: restarted
when: init_script|changed
with_dict: "{{ swift_services }}"
when: inventory_hostname in groups[item.value.group]
notify:
- Restart swift services

View File

@ -15,19 +15,23 @@
- name: Create TEMP run dir
file:
path: "/var/run/{{ program_name }}"
path: "/var/run/{{ item.value.program_name }}"
state: directory
owner: "{{ system_user }}"
group: "{{ system_group }}"
owner: "{{ swift_system_user_name }}"
group: "{{ swift_system_group_name }}"
mode: "02755"
with_dict: "{{ swift_services }}"
when: inventory_hostname in groups[item.value.group]
- name: Create TEMP lock dir
file:
path: "/var/lock/{{ program_name }}"
path: "/var/lock/{{ item.value.program_name }}"
state: directory
owner: "{{ system_user }}"
group: "{{ system_group }}"
owner: "{{ swift_system_user_name }}"
group: "{{ swift_system_group_name }}"
mode: "02755"
with_dict: "{{ swift_services }}"
when: inventory_hostname in groups[item.value.group]
- name: Create tempfile.d entry
template:
@ -36,16 +40,17 @@
mode: "0644"
owner: "root"
group: "root"
with_dict: "{{ swift_services }}"
when: inventory_hostname in groups[item.value.group]
- name: Place the systemd init script
template:
src: "swift-systemd-init.j2"
dest: "/etc/systemd/system/{{ program_name }}.service"
dest: "/etc/systemd/system/{{ item.value.program_name }}.service"
mode: "0644"
owner: "root"
group: "root"
register: init_script
- name: Reload the systemd daemon
command: "systemctl daemon-reload"
when: init_script | changed
with_dict: "{{ swift_services }}"
when: inventory_hostname in groups[item.value.group]
notify:
- Reload systemd daemon

View File

@ -16,13 +16,11 @@
- name: Place the init script
template:
src: "swift-upstart-init.j2"
dest: "/etc/init/{{ program_name }}.conf"
dest: "/etc/init/{{ item.value.program_name }}.conf"
mode: "0644"
owner: "root"
group: "root"
register: init_script
- name: Reload init scripts
shell: |
initctl reload-configuration
when: init_script|changed
with_dict: "{{ swift_services }}"
when: inventory_hostname in groups[item.value.group]
notify:
- Reload upstart init scripts

View File

@ -123,10 +123,7 @@
- not swift_developer_mode | bool
- swift_get_venv | changed or swift_venv_dir | changed
notify:
- Restart swift account services
- Restart swift container services
- Restart swift object services
- Restart swift proxy services
- Restart swift services
- name: Install pip packages
pip:
@ -143,10 +140,7 @@
- not swift_pypy_enabled | bool
- swift_get_venv | failed or swift_developer_mode | bool
notify:
- Restart swift account services
- Restart swift container services
- Restart swift object services
- Restart swift proxy services
- Restart swift services
- name: Update virtualenv path
command: >

View File

@ -36,10 +36,7 @@
config_overrides: "{{ swift_memcache_conf_overrides }}"
config_type: "ini"
notify:
- Restart swift account services
- Restart swift container services
- Restart swift object services
- Restart swift proxy services
- Restart swift services
- name: Copy swift config
template:
@ -48,8 +45,5 @@
owner: "{{ swift_system_user_name }}"
group: "{{ swift_system_group_name }}"
notify:
- Restart swift account services
- Restart swift container services
- Restart swift object services
- Restart swift proxy services
- Restart swift services
- Restart rsyslog

View File

@ -36,17 +36,6 @@
- swift_gnocchi_enabled | bool
- get_gnocchi_project | success
- include: swift_init_common.yml
vars:
program_name: "swift-proxy-server"
program_config_options: "{{ swift_proxy_server_program_config_options }}"
service_name: "{{ swift_service_name }}"
system_user: "{{ swift_system_user_name }}"
system_group: "{{ swift_system_group_name }}"
service_home: "{{ swift_system_home_folder }}"
tags:
- swift-install
- name: swift proxy server configuration
config_template:
src: "proxy-server.conf.j2"
@ -56,7 +45,7 @@
mode: "0644"
config_overrides: "{{ swift_proxy_server_conf_overrides }}"
config_type: "ini"
notify: Restart swift proxy services
notify: Restart swift services
tags:
- swift-config
@ -72,6 +61,6 @@
config_type: "ini"
when: >
swift_container_sync_realms is defined
notify: Restart swift proxy services
notify: Restart swift services
tags:
- swift-config

View File

@ -66,10 +66,7 @@
retries: 5
delay: 2
notify:
- Restart swift account services
- Restart swift container services
- Restart swift object services
- Restart swift proxy services
- Restart swift services
- name: Mark swift venv for use with pypy
file:

View File

@ -13,63 +13,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
# When using a replication network use the specific replicator configuration
# When not using a replication network use the default configuration
- include: swift_init_common.yml
vars:
program_name: "swift-account-replicator"
program_config_options: "{{ swift_dedicated_replication | ternary(
swift_account_replicator_program_config_options,
swift_account_server_program_config_options) }}"
service_name: "{{ swift_service_name }}"
system_user: "{{ swift_system_user_name }}"
system_group: "{{ swift_system_group_name }}"
service_home: "{{ swift_system_home_folder }}"
# When using a replication network use a second server for dedicated replicator configuration
# This will be a blank file if not using dedicated replication network to prevent errors
# when the service attempts to start.
- include: swift_init_common.yml
vars:
program_name: "swift-account-replicator-server"
program_binary: "swift-account-server"
program_config_options: "{{ swift_account_replicator_program_config_options }}"
service_name: "{{ swift_service_name }}"
system_user: "{{ swift_system_user_name }}"
system_group: "{{ swift_system_group_name }}"
service_home: "{{ swift_system_home_folder }}"
- include: swift_init_common.yml
vars:
program_name: "swift-account-server"
program_config_options: "{{ swift_account_server_program_config_options }}"
service_name: "{{ swift_service_name }}"
system_user: "{{ swift_system_user_name }}"
system_group: "{{ swift_system_group_name }}"
service_home: "{{ swift_system_home_folder }}"
# The auditor needs to point at the replicator configuration.
# When using a dedicated replication network that means the dedicated conf file.
- include: swift_init_common.yml
vars:
program_name: "swift-account-auditor"
program_config_options: "{{ swift_dedicated_replication | ternary(
swift_account_replicator_program_config_options,
swift_account_server_program_config_options) }}"
service_name: "{{ swift_service_name }}"
system_user: "{{ swift_system_user_name }}"
system_group: "{{ swift_system_group_name }}"
service_home: "{{ swift_system_home_folder }}"
- include: swift_init_common.yml
vars:
program_name: "swift-account-reaper"
program_config_options: "{{ swift_account_server_program_config_options }}"
service_name: "{{ swift_service_name }}"
system_user: "{{ swift_system_user_name }}"
system_group: "{{ swift_system_group_name }}"
service_home: "{{ swift_system_home_folder }}"
- name: "Swift account server configuration"
config_template:
src: "account-server.conf.j2"
@ -79,7 +22,7 @@
mode: "0644"
config_overrides: "{{ swift_account_server_conf_overrides }}"
config_type: "ini"
notify: Restart swift account services
notify: Restart swift services
# We only create the dedicated replicator configuration when using a dedicated replication_network
- name: "Swift account server replicator configuration"
@ -92,7 +35,7 @@
config_overrides: "{{ swift_account_server_replicator_conf_overrides }}"
config_type: "ini"
when: swift_dedicated_replication
notify: Restart swift account services
notify: Restart swift services
# Remove the dedicated replicator configuration when no dedicated replication network in use
- name: "Remove dedicated replicator configuration"

View File

@ -13,81 +13,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
# When using a replication network use the specific replicator configuration
# When not using a replication network use the default configuration
- include: swift_init_common.yml
vars:
program_name: "swift-container-replicator"
program_config_options: "{{ swift_dedicated_replication | ternary(
swift_container_replicator_program_config_options,
swift_container_server_program_config_options) }}"
service_name: "{{ swift_service_name }}"
system_user: "{{ swift_system_user_name }}"
system_group: "{{ swift_system_group_name }}"
service_home: "{{ swift_system_home_folder }}"
# When using a replication network create a second server for dedicated replicator configuration
# This will be a blank file if not using dedicated replication network to prevent errors
# when the service attempts to start.
- include: swift_init_common.yml
vars:
program_name: "swift-container-replicator-server"
program_binary: "swift-container-server"
program_config_options: "{{ swift_container_replicator_program_config_options }}"
service_name: "{{ swift_service_name }}"
system_user: "{{ swift_system_user_name }}"
system_group: "{{ swift_system_group_name }}"
service_home: "{{ swift_system_home_folder }}"
- include: swift_init_common.yml
vars:
program_name: "swift-container-server"
program_config_options: "{{ swift_container_server_program_config_options }}"
service_name: "{{ swift_service_name }}"
system_user: "{{ swift_system_user_name }}"
system_group: "{{ swift_system_group_name }}"
service_home: "{{ swift_system_home_folder }}"
# The auditor needs to point at the replicator configuration.
# # When using a dedicated replication network that means the dedicated conf file.
- include: swift_init_common.yml
vars:
program_name: "swift-container-auditor"
program_config_options: "{{ swift_dedicated_replication | ternary(
swift_container_replicator_program_config_options,
swift_container_server_program_config_options) }}"
service_name: "{{ swift_service_name }}"
system_user: "{{ swift_system_user_name }}"
system_group: "{{ swift_system_group_name }}"
service_home: "{{ swift_system_home_folder }}"
- include: swift_init_common.yml
vars:
program_name: "swift-container-sync"
program_config_options: "{{ swift_container_server_program_config_options }}"
service_name: "{{ swift_service_name }}"
system_user: "{{ swift_system_user_name }}"
system_group: "{{ swift_system_group_name }}"
service_home: "{{ swift_system_home_folder }}"
- include: swift_init_common.yml
vars:
program_name: "swift-container-updater"
program_config_options: "{{ swift_container_server_program_config_options }}"
service_name: "{{ swift_service_name }}"
system_user: "{{ swift_system_user_name }}"
system_group: "{{ swift_system_group_name }}"
service_home: "{{ swift_system_home_folder }}"
- include: swift_init_common.yml
vars:
program_name: "swift-container-reconciler"
program_config_options: "{{ swift_container_reconciler_program_config_options }}"
service_name: "{{ swift_service_name }}"
system_user: "{{ swift_system_user_name }}"
system_group: "{{ swift_system_group_name }}"
service_home: "{{ swift_system_home_folder }}"
- name: "Swift container server configuration"
config_template:
src: "{{ item.src }}"
@ -106,7 +31,7 @@
dest: "/etc/swift/container-server/container-reconciler.conf"
config_overrides: "{{ swift_container_reconciler_conf_overrides }}"
config_type: "ini"
notify: Restart swift container services
notify: Restart swift services
# If we've specified a container-sync realm use container-sync-realms.conf
- name: "Swift container-sync configuration"
@ -120,7 +45,7 @@
config_type: "ini"
when:
- swift_container_sync_realms is defined
notify: Restart swift container services
notify: Restart swift services
# We only create the dedicated replicator configuration when using a dedicated replication_network
- name: "Swift container server replicator configuration"
@ -133,7 +58,7 @@
config_overrides: "{{ swift_container_server_replicator_conf_overrides }}"
config_type: "ini"
when: swift_dedicated_replication
notify: Restart swift container services
notify: Restart swift services
# Remove the dedicated replicator configuration when no dedicated replication network in use
- name: "Remove dedicated replicator configuration"

View File

@ -13,72 +13,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
# When using a replication network use the specific replicator configuration
# When not using a replication network use the default configuration
- include: swift_init_common.yml
vars:
program_name: "swift-object-replicator"
program_config_options: "{{ swift_dedicated_replication | ternary(
swift_object_replicator_program_config_options,
swift_object_server_program_config_options) }}"
service_name: "{{ swift_service_name }}"
system_user: "{{ swift_system_user_name }}"
system_group: "{{ swift_system_group_name }}"
service_home: "{{ swift_system_home_folder }}"
# When using a replication network use a second server for dedicated replicator configuration
# This will be a blank file if not using dedicated replication network to prevent errors
# when the service attempts to start.
- include: swift_init_common.yml
vars:
program_name: "swift-object-replicator-server"
program_binary: "swift-object-server"
program_config_options: "{{ swift_object_replicator_program_config_options }}"
service_name: "{{ swift_service_name }}"
system_user: "{{ swift_system_user_name }}"
system_group: "{{ swift_system_group_name }}"
service_home: "{{ swift_system_home_folder }}"
- include: swift_init_common.yml
vars:
program_name: "swift-object-server"
program_config_options: "{{ swift_object_server_program_config_options }}"
service_name: "{{ swift_service_name }}"
system_user: "{{ swift_system_user_name }}"
system_group: "{{ swift_system_group_name }}"
service_home: "{{ swift_system_home_folder }}"
# The auditor needs to point at the replicator configuration.
# # When using a dedicated replication network that means the dedicated conf file.
- include: swift_init_common.yml
vars:
program_name: "swift-object-auditor"
program_config_options: "{{ swift_dedicated_replication | ternary(
swift_object_replicator_program_config_options,
swift_object_server_program_config_options) }}"
service_name: "{{ swift_service_name }}"
system_user: "{{ swift_system_user_name }}"
system_group: "{{ swift_system_group_name }}"
service_home: "{{ swift_system_home_folder }}"
- include: swift_init_common.yml
vars:
program_name: "swift-object-updater"
program_config_options: "{{ swift_object_server_program_config_options }}"
service_name: "{{ swift_service_name }}"
system_user: "{{ swift_system_user_name }}"
system_group: "{{ swift_system_group_name }}"
service_home: "{{ swift_system_home_folder }}"
- include: swift_init_common.yml
vars:
program_name: "swift-object-expirer"
program_config_options: "{{ swift_object_expirer_program_config_options }}"
service_name: "{{ swift_service_name }}"
system_user: "{{ swift_system_user_name }}"
system_group: "{{ swift_system_group_name }}"
service_home: "{{ swift_system_home_folder }}"
- name: "Swift object server configuration"
config_template:
src: "{{ item.src }}"
@ -97,7 +31,7 @@
dest: "/etc/swift/object-server/object-expirer.conf"
config_overrides: "{{ swift_object_expirer_conf_overrides }}"
config_type: "ini"
notify: Restart swift object services
notify: Restart swift services
# We only create the dedicated replicator configuration when using a dedicated replication_network
- name: "Swift object server replicator configuration"
@ -110,7 +44,7 @@
config_overrides: "{{ swift_object_server_replicator_conf_overrides }}"
config_type: "ini"
when: swift_dedicated_replication
notify: Restart swift object services
notify: Restart swift services
# Remove the dedicated replicator configuration when no dedicated replication network in use
- name: "Remove dedicated replicator configuration"

View File

@ -15,19 +15,8 @@
- name: "Ensure services are started"
service:
name: "{{ item }}"
name: "{{ item.value.program_name }}"
state: "started"
pattern: "{{ item }}"
with_items:
- "{{ swift_account_program_names }}"
- "{{ swift_container_program_names }}"
- "{{ swift_object_program_names }}"
when: inventory_hostname in groups['swift_hosts']
- name: "Ensure services are started"
service:
name: "{{ item }}"
state: "started"
pattern: "{{ item }}"
with_items: "{{ swift_proxy_program_names }}"
when: inventory_hostname in groups['swift_proxy']
pattern: "{{ item.value.program_name }}"
with_dict: "{{ swift_services }}"
when: inventory_hostname in groups[item.value.group]

View File

@ -1,5 +1,4 @@
# {{ ansible_managed }}
[Unit]
Description=swift openstack service
After=syslog.target
@ -7,13 +6,13 @@ After=network.target
[Service]
Type=simple
User={{ system_user }}
Group={{ system_group }}
User={{ swift_system_user_name }}
Group={{ swift_system_group_name }}
{% if program_override is defined %}
ExecStart={{ program_override }} {{ program_config_options|default('') }}
{% if item.value.program_override is defined %}
ExecStart={{ item.value.program_override }} {{ item.value.program_config_options|default('') }}
{% else %}
ExecStart={{ swift_bin }}/{{ program_name }} {{ program_config_options|default('') }}
ExecStart={{ swift_bin }}/{{ item.value.program_name }} {{ item.value.program_config_options|default('') }}
{% endif %}
# Give a reasonable amount of time for the server to start up/shut down

View File

@ -1,4 +1,4 @@
# {{ ansible_managed }}
D /var/lock/{{ program_name }} 2755 {{ system_user }} {{ system_group }}
D /var/run/{{ program_name }} 2755 {{ system_user }} {{ system_group }}
D /var/lock/{{ item.value.program_name }} 2755 {{ swift_system_user_name }} {{ swift_system_group_name }}
D /var/run/{{ item.value.program_name }} 2755 {{ swift_system_user_name }} {{ swift_system_group_name }}

View File

@ -1,9 +1,9 @@
# {{ ansible_managed }}
{% if not swift_dedicated_replication and 'replicator-server' in program_name %}
{% if not swift_dedicated_replication and 'replicator-server' in item.value.program_name %}
# Blank script - dedicated replication network not in use
{% else %}
description "{{ program_name }}"
description "{{ item.value.program_name }}"
author "Kevin Carter <kevin.carter@rackspace.com>"
start on runlevel [2345]
@ -13,18 +13,18 @@ respawn
respawn limit 10 5
# Set the RUNBIN environment variable
env RUNBIN="{{ swift_bin }}/{{ program_binary | default(program_name) }}"
env RUNBIN="{{ swift_bin }}/{{ item.value.program_binary | default(item.value.program_name) }}"
# Change directory to service users home
chdir "{{ service_home }}"
chdir "{{ swift_system_home_folder }}"
# Pre start actions
pre-start script
mkdir -p "/var/run/{{ program_binary | default(program_name) }}"
chown {{ system_user }}:{{ system_group }} "/var/run/{{ program_binary | default(program_name) }}"
mkdir -p "/var/run/{{ item.value.program_binary | default(item.value.program_name) }}"
chown {{ swift_system_user_name }}:{{ swift_system_group_name }} "/var/run/{{ item.value.program_binary | default(item.value.program_name) }}"
mkdir -p "/var/lock/{{ program_binary | default(program_name) }}"
chown {{ system_user }}:{{ system_group }} "/var/lock/{{ program_binary | default(program_name) }}"
mkdir -p "/var/lock/{{ item.value.program_binary | default(item.value.program_name) }}"
chown {{ swift_system_user_name }}:{{ swift_system_group_name }} "/var/lock/{{ item.value.program_binary | default(item.value.program_name) }}"
. {{ swift_bin }}/activate
@ -32,13 +32,13 @@ end script
# Post stop actions
post-stop script
rm "/var/run/{{ program_binary | default(program_name) }}/{{ program_name }}.pid"
rm "/var/run/{{ item.value.program_binary | default(item.value.program_name) }}/{{ item.value.program_name }}.pid"
end script
# Run the start up job
exec start-stop-daemon --start \
--chuid {{ system_user }} \
--chuid {{ swift_system_user_name }} \
--make-pidfile \
--pidfile /var/run/{{ program_binary | default(program_name) }}/{{ program_name }}.pid \
--exec "{{ program_override|default('$RUNBIN') }}" "{{ program_config_options|default('') }}"
--pidfile /var/run/{{ item.value.program_binary | default(item.value.program_name) }}/{{ item.value.program_name }}.pid \
--exec "{{ item.value.program_override|default('$RUNBIN') }}" "{{ item.value.program_config_options|default('') }}"
{% endif %}