#!/bin/sh # # $FreeBSD$ # # PROVIDE: swift # REQUIRE: LOGIN # KEYWORD: shutdown # # Add the following lines to /etc/rc.conf to enable swift: # # swift_enable (bool): Set it to "YES" to enable swift. # Default is "NO". # swift_servers (list): Specify servers to run as a space separated # list of possible values: # account, account-reaper, account-replicator, # container, container-auditor, container-replicator, # container-sync, container-updater, # object, object-auditor, object-expirer, # object-replicator, object-updater, # proxy. # The following aliases may be used: # "ACCOUNT" -- all account servers; # "EXPIRER" -- object-expirer; # "CONTAINER" -- all container server; # "OBJECT" -- all object servers; # "PROXY" -- all proxy servers; # "STORAGE" -- all storage node servers # (alias for "ACCOUNT CONTAINER OBJECT"); # "ALL" -- all servers # (alias for "ACCOUNT CONTAINER EXPIRER OBJECT PROXY"). # Default is "ALL". . /etc/rc.subr name="swift" rcvar=swift_enable extra_commands="reload shutdown status" reload_cmd="swift_init reload" shutdown_cmd="swift_init shutdown" start_cmd="swift_init start" status_cmd="swift_init status" stop_cmd="swift_init stop" required_files=%%PREFIX%%/etc/swift/swift.conf PATH=%%PREFIX%%/bin:$PATH load_rc_config $name : ${swift_enable:="NO"} : ${swift_servers:="ALL"} swift_expand_servers() { local x for x; do case "${x}" in ALL) swift_expand_servers PROXY swift_expand_servers EXPIRER ;& STORAGE) swift_expand_servers ACCOUNT swift_expand_servers CONTAINER swift_expand_servers OBJECT ;; ACCOUNT) echo account echo account-reaper echo account-replicator ;; EXPIRER) echo object-expirer ;; CONTAINER) echo container echo container-auditor echo container-replicator echo container-sync echo container-updater ;; OBJECT) echo object echo object-auditor echo object-replicator echo object-updater ;; PROXY) echo proxy ;; account|account-reaper|account-replicator|\ container|container-auditor|container-replicator|\ container-sync|container-updater|\ object|object-auditor|object-expirer|object-replicator|\ object-updater|\ proxy) echo "${x}" ;; *) warn "unknown service: ${x}" exit 1 ;; esac done | sort -u } swift_init() { local cmd=$1 swift-init `swift_expand_servers ${swift_servers}` ${cmd} } run_rc_command "$1"