Move scripts for swift to docker_templates
Change-Id: Ia1bcc94fd58bbfec980bfacbd7acb885a17f9056 Partially-Implements: blueprint remove-docker-dir
This commit is contained in:
parent
eef32f0353
commit
26d0d8d2fb
@ -1 +0,0 @@
|
||||
../../../../../docker/common/swift/swift-base/build-swift-ring.py
|
@ -1 +0,0 @@
|
||||
../../../../../docker/common/swift/swift-base/build-swift-ring.py
|
@ -1,19 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [[ -f /opt/kolla/swift/swift.conf ]]; then
|
||||
cp /opt/kolla/swift/swift.conf /etc/swift/
|
||||
chown swift: /etc/swift/swift.conf
|
||||
chmod 0640 /etc/swift/swift.conf
|
||||
fi
|
||||
|
||||
if [[ -f "/opt/kolla/swift/account.ring.gz" ]]; then
|
||||
cp /opt/kolla/swift/account.ring.gz /etc/swift/account.ring.gz
|
||||
chown swift: /etc/swift/account.ring.gz
|
||||
chmod 0640 /etc/swift/account.ring.gz
|
||||
fi
|
||||
|
||||
if [[ -f /opt/kolla/swift-account-server/account-server.conf ]]; then
|
||||
cp /opt/kolla/swift-account-server/account-server.conf /etc/swift/
|
||||
chown swift: /etc/swift/account-server.conf
|
||||
chmod 0640 /etc/swift/account-server.conf
|
||||
fi
|
@ -1,16 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -o errexit
|
||||
|
||||
CMD="/usr/bin/swift-account-server"
|
||||
ARGS="/etc/swift/account-server.conf --verbose"
|
||||
|
||||
# Loading common functions.
|
||||
source /opt/kolla/kolla-common.sh
|
||||
|
||||
source /opt/kolla/config-swift.sh
|
||||
|
||||
# Execute config strategy
|
||||
set_configs
|
||||
|
||||
exec $CMD $ARGS
|
@ -1,93 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# Copyright 2015 Paul Bourke
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
"""
|
||||
This script is a simple wrapper used to create and rebalance Swift ring files.
|
||||
"""
|
||||
|
||||
import argparse
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
|
||||
def setup_args():
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("-f", "--ring-file",
|
||||
required=True,
|
||||
help="Path to ring file")
|
||||
parser.add_argument("-p", "--part-power",
|
||||
required=True,
|
||||
help="Part power")
|
||||
parser.add_argument("-r", "--num-replicas",
|
||||
required=True,
|
||||
help="Number of replicas")
|
||||
parser.add_argument("-m", "--min-part-hours",
|
||||
required=True,
|
||||
help="Min part hours")
|
||||
parser.add_argument("-H", "--hosts",
|
||||
required=True,
|
||||
help="Hosts in the ring, comma delimited")
|
||||
parser.add_argument("-w", "--weights",
|
||||
required=True,
|
||||
help="Weight of each host, comma delimited")
|
||||
parser.add_argument("-d", "--devices",
|
||||
required=True,
|
||||
help="Device on each host, comma delimited")
|
||||
parser.add_argument("-z", "--zones",
|
||||
required=True,
|
||||
help="Zone of each host, comma delimited")
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
def run_cmd(cmd):
|
||||
print(' '.join(cmd))
|
||||
subprocess.call(cmd)
|
||||
|
||||
|
||||
def run(args):
|
||||
hosts = args.hosts.split(',')
|
||||
weights = args.weights.split(',')
|
||||
zones = args.zones.split(',')
|
||||
devices = args.devices.split(',')
|
||||
if not (len(hosts) == len(weights) == len(zones) == len(devices)):
|
||||
print('Error: an equal amount of hosts, devices, weights, '
|
||||
'and zones are required')
|
||||
sys.exit(1)
|
||||
|
||||
run_cmd(['/usr/bin/swift-ring-builder',
|
||||
args.ring_file,
|
||||
'create',
|
||||
args.part_power,
|
||||
args.num_replicas,
|
||||
args.min_part_hours])
|
||||
|
||||
for i in xrange(len(hosts)):
|
||||
run_cmd(['/usr/bin/swift-ring-builder',
|
||||
args.ring_file,
|
||||
'add',
|
||||
'z{}-{}/{}'.format(zones[i], hosts[i], devices[i]),
|
||||
weights[i]])
|
||||
|
||||
run_cmd(['/usr/bin/swift-ring-builder', args.ring_file, 'rebalance'])
|
||||
|
||||
|
||||
def main():
|
||||
args = setup_args()
|
||||
run(args)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
@ -1,3 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
chown -R swift: /srv/node
|
@ -1,21 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
OWNER="swift"
|
||||
|
||||
if [[ -f "/opt/kolla/swift/swift.conf" ]]; then
|
||||
cp /opt/kolla/swift/swift.conf /etc/swift/swift.conf
|
||||
chown ${OWNER}: /etc/swift/swift.conf
|
||||
chmod 0640 /etc/swift/swift.conf
|
||||
fi
|
||||
|
||||
if [[ -f "/opt/kolla/swift/container.ring.gz" ]]; then
|
||||
cp /opt/kolla/swift/container.ring.gz /etc/swift/container.ring.gz
|
||||
chown ${OWNER}: /etc/swift/container.ring.gz
|
||||
chmod 0640 /etc/swift/container.ring.gz
|
||||
fi
|
||||
|
||||
if [[ -f "/opt/kolla/swift-container-server/container-server.conf" ]]; then
|
||||
cp /opt/kolla/swift-container-server/container-server.conf /etc/swift/container-server.conf
|
||||
chown ${OWNER}: /etc/swift/container-server.conf
|
||||
chmod 0640 /etc/swift/container-server.conf
|
||||
fi
|
@ -1,16 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -o errexit
|
||||
|
||||
CMD="/usr/bin/swift-container-server"
|
||||
ARGS="/etc/swift/container-server.conf --verbose"
|
||||
|
||||
# Loading common functions.
|
||||
source /opt/kolla/kolla-common.sh
|
||||
|
||||
source /opt/kolla/config-swift.sh
|
||||
|
||||
# Execute config strategy
|
||||
set_configs
|
||||
|
||||
exec $CMD $ARGS
|
@ -1,18 +0,0 @@
|
||||
#!/bin/bash
|
||||
SOURCE="/opt/kolla/swift/swift.conf"
|
||||
TARGET="/etc/swift/swift.conf"
|
||||
SOURCE_OBJECT_SERVER="/opt/kolla/swift/object-server.conf"
|
||||
TARGET_OBJECT_SERVER="/etc/swift/object-server.conf"
|
||||
OWNER="swift"
|
||||
|
||||
if [[ -f "$SOURCE" ]]; then
|
||||
cp $SOURCE $TARGET
|
||||
chown ${OWNER}: $TARGET
|
||||
chmod 0640 $TARGET
|
||||
fi
|
||||
|
||||
if [[ -f "$SOURCE_OBJECT_SERVER" ]]; then
|
||||
cp $SOURCE_OBJECT_SERVER $TARGET_OBJECT_SERVER
|
||||
chown ${OWNER}: $TARGET_OBJECT_SERVER
|
||||
chmod 0640 $TARGET_OBJECT_SERVER
|
||||
fi
|
@ -1,16 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -o errexit
|
||||
|
||||
CMD="/usr/bin/swift-object-auditor"
|
||||
ARGS="/etc/swift/object-server.conf --verbose"
|
||||
|
||||
# Loading common functions.
|
||||
source /opt/kolla/kolla-common.sh
|
||||
|
||||
source /opt/kolla/config-swift.sh
|
||||
|
||||
# Execute config strategy
|
||||
set_configs
|
||||
|
||||
exec $CMD $ARGS
|
@ -1,72 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
. /opt/kolla/kolla-common.sh
|
||||
|
||||
check_required_vars \
|
||||
SWIFT_CONTAINER_SVC_RING_DEVICES \
|
||||
SWIFT_CONTAINER_SVC_RING_HOSTS \
|
||||
SWIFT_CONTAINER_SVC_RING_MIN_PART_HOURS \
|
||||
SWIFT_CONTAINER_SVC_RING_NAME \
|
||||
SWIFT_CONTAINER_SVC_RING_PART_POWER \
|
||||
SWIFT_CONTAINER_SVC_RING_REPLICAS \
|
||||
SWIFT_CONTAINER_SVC_RING_WEIGHTS \
|
||||
SWIFT_CONTAINER_SVC_RING_ZONES \
|
||||
SWIFT_DIR \
|
||||
SWIFT_OBJECT_SVC_BIND_IP \
|
||||
SWIFT_OBJECT_SVC_BIND_PORT \
|
||||
SWIFT_OBJECT_SVC_DEVICES \
|
||||
SWIFT_OBJECT_SVC_MOUNT_CHECK \
|
||||
SWIFT_OBJECT_SVC_PIPELINE \
|
||||
SWIFT_OBJECT_SVC_RING_DEVICES \
|
||||
SWIFT_OBJECT_SVC_RING_HOSTS \
|
||||
SWIFT_OBJECT_SVC_RING_MIN_PART_HOURS \
|
||||
SWIFT_OBJECT_SVC_RING_NAME \
|
||||
SWIFT_OBJECT_SVC_RING_PART_POWER \
|
||||
SWIFT_OBJECT_SVC_RING_REPLICAS \
|
||||
SWIFT_OBJECT_SVC_RING_WEIGHTS \
|
||||
SWIFT_OBJECT_SVC_RING_ZONES \
|
||||
SWIFT_USER
|
||||
|
||||
cfg=/etc/swift/object-server.conf
|
||||
|
||||
crudini --set $cfg DEFAULT bind_ip "${SWIFT_OBJECT_SVC_BIND_IP}"
|
||||
crudini --set $cfg DEFAULT bind_port "${SWIFT_OBJECT_SVC_BIND_PORT}"
|
||||
crudini --set $cfg DEFAULT user "${SWIFT_USER}"
|
||||
crudini --set $cfg DEFAULT swift_dir "${SWIFT_DIR}"
|
||||
crudini --set $cfg DEFAULT devices "${SWIFT_OBJECT_SVC_DEVICES}"
|
||||
crudini --set $cfg DEFAULT mount_check "${SWIFT_OBJECT_SVC_MOUNT_CHECK}"
|
||||
|
||||
crudini --set $cfg pipeline:main pipeline "${SWIFT_OBJECT_SVC_PIPELINE}"
|
||||
|
||||
# NOTE(pbourke): some services require a section in the conf, even if empty
|
||||
crudini --set $cfg object-expirer
|
||||
|
||||
# Create swift user and group if they don't exist
|
||||
id -u swift &>/dev/null || useradd --user-group swift
|
||||
|
||||
# Ensure proper ownership of the mount point directory structure
|
||||
chown -R swift:swift /srv/node
|
||||
|
||||
# TODO(pbourke): does this need to be on a data vol?
|
||||
mkdir -p /var/cache/swift
|
||||
chown -R swift:swift /var/cache/swift
|
||||
|
||||
python /opt/kolla/build-swift-ring.py \
|
||||
-f ${SWIFT_OBJECT_SVC_RING_NAME} \
|
||||
-p ${SWIFT_OBJECT_SVC_RING_PART_POWER} \
|
||||
-r ${SWIFT_OBJECT_SVC_RING_REPLICAS} \
|
||||
-m ${SWIFT_OBJECT_SVC_RING_MIN_PART_HOURS} \
|
||||
-H ${SWIFT_OBJECT_SVC_RING_HOSTS} \
|
||||
-w ${SWIFT_OBJECT_SVC_RING_WEIGHTS} \
|
||||
-d ${SWIFT_OBJECT_SVC_RING_DEVICES} \
|
||||
-z ${SWIFT_OBJECT_SVC_RING_ZONES}
|
||||
|
||||
python /opt/kolla/build-swift-ring.py \
|
||||
-f ${SWIFT_CONTAINER_SVC_RING_NAME} \
|
||||
-p ${SWIFT_CONTAINER_SVC_RING_PART_POWER} \
|
||||
-r ${SWIFT_CONTAINER_SVC_RING_REPLICAS} \
|
||||
-m ${SWIFT_CONTAINER_SVC_RING_MIN_PART_HOURS} \
|
||||
-H ${SWIFT_CONTAINER_SVC_RING_HOSTS} \
|
||||
-w ${SWIFT_CONTAINER_SVC_RING_WEIGHTS} \
|
||||
-d ${SWIFT_CONTAINER_SVC_RING_DEVICES} \
|
||||
-z ${SWIFT_CONTAINER_SVC_RING_ZONES}
|
@ -1,18 +0,0 @@
|
||||
#!/bin/bash
|
||||
SOURCE="/opt/kolla/swift/swift.conf"
|
||||
TARGET="/etc/swift/swift.conf"
|
||||
SOURCE_OBJECT_EXPIRER="/opt/kolla/swift/object-expirer.conf"
|
||||
TARGET_OBJECT_EXPIRER="/etc/swift/object-expirer.conf"
|
||||
OWNER="swift"
|
||||
|
||||
if [[ -f "$SOURCE" ]]; then
|
||||
cp $SOURCE $TARGET
|
||||
chown ${OWNER}: $TARGET
|
||||
chmod 0640 $TARGET
|
||||
fi
|
||||
|
||||
if [[ -f "$SOURCE_OBJECT_EXPIRER" ]]; then
|
||||
cp $SOURCE_OBJECT_EXPIRER $TARGET_OBJECT_EXPIRER
|
||||
chown ${OWNER}: $TARGET_OBJECT_EXPIRER
|
||||
chmod 0640 $TARGET_OBJECT_EXPIRER
|
||||
fi
|
@ -1,16 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -o errexit
|
||||
|
||||
CMD="/usr/bin/swift-object-expirer"
|
||||
ARGS="/etc/swift/object-server.conf --verbose"
|
||||
|
||||
# Loading common functions.
|
||||
source /opt/kolla/kolla-common.sh
|
||||
|
||||
source /opt/kolla/config-swift.sh
|
||||
|
||||
# Execute config strategy
|
||||
set_configs
|
||||
|
||||
exec $CMD $ARGS
|
@ -1,18 +0,0 @@
|
||||
#!/bin/bash
|
||||
SOURCE="/opt/kolla/swift/swift.conf"
|
||||
TARGET="/etc/swift/swift.conf"
|
||||
SOURCE_OBJECT_SERVER="/opt/kolla/swift/object-server.conf"
|
||||
TARGET_OBJECT_SERVER="/etc/swift/object-server.conf"
|
||||
OWNER="swift"
|
||||
|
||||
if [[ -f "$SOURCE" ]]; then
|
||||
cp $SOURCE $TARGET
|
||||
chown ${OWNER}: $TARGET
|
||||
chmod 0640 $TARGET
|
||||
fi
|
||||
|
||||
if [[ -f "$SOURCE_OBJECT_SERVER" ]]; then
|
||||
cp $SOURCE_OBJECT_SERVER $TARGET_OBJECT_SERVER
|
||||
chown ${OWNER}: $TARGET_OBJECT_SERVER
|
||||
chmod 0640 $TARGET_OBJECT_SERVER
|
||||
fi
|
@ -1,16 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -o errexit
|
||||
|
||||
CMD="/usr/bin/swift-object-replicator"
|
||||
ARGS="/etc/swift/object-server.conf --verbose"
|
||||
|
||||
# Loading common functions.
|
||||
source /opt/kolla/kolla-common.sh
|
||||
|
||||
source /opt/kolla/config-swift.sh
|
||||
|
||||
# Execute config strategy
|
||||
set_configs
|
||||
|
||||
exec $CMD $ARGS
|
@ -1,27 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
OWNER="swift"
|
||||
|
||||
if [[ -f "/opt/kolla/swift/swift.conf" ]]; then
|
||||
cp /opt/kolla/swift/swift.conf /etc/swift/swift.conf
|
||||
chown ${OWNER}: /etc/swift/swift.conf
|
||||
chmod 0640 /etc/swift/swift.conf
|
||||
fi
|
||||
|
||||
if [[ -f "/opt/kolla/swift/object.ring.gz" ]]; then
|
||||
cp /opt/kolla/swift/object.ring.gz /etc/swift/object.ring.gz
|
||||
chown ${OWNER}: /etc/swift/object.ring.gz
|
||||
chmod 0640 /etc/swift/object.ring.gz
|
||||
fi
|
||||
|
||||
if [[ -f "/opt/kolla/swift/container.ring.gz" ]]; then
|
||||
cp /opt/kolla/swift/container.ring.gz /etc/swift/container.ring.gz
|
||||
chown ${OWNER}: /etc/swift/container.ring.gz
|
||||
chmod 0640 /etc/swift/container.ring.gz
|
||||
fi
|
||||
|
||||
if [[ -f "/opt/kolla/swift-object-server/object-server.conf" ]]; then
|
||||
cp /opt/kolla/swift-object-server/object-server.conf /etc/swift/object-server.conf
|
||||
chown ${OWNER}: /etc/swift/object-server.conf
|
||||
chmod 0640 /etc/swift/object-server.conf
|
||||
fi
|
@ -1,16 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -o errexit
|
||||
|
||||
CMD="/usr/bin/swift-object-server"
|
||||
ARGS="/etc/swift/object-server.conf --verbose"
|
||||
|
||||
# Loading common functions.
|
||||
source /opt/kolla/kolla-common.sh
|
||||
|
||||
source /opt/kolla/config-swift.sh
|
||||
|
||||
# Execute config strategy
|
||||
set_configs
|
||||
|
||||
exec $CMD $ARGS
|
@ -1,18 +0,0 @@
|
||||
#!/bin/bash
|
||||
SOURCE="/opt/kolla/swift/swift.conf"
|
||||
TARGET="/etc/swift/swift.conf"
|
||||
SOURCE_OBJECT_SERVER="/opt/kolla/swift/object-server.conf"
|
||||
TARGET_OBJECT_SERVER="/etc/swift/object-server.conf"
|
||||
OWNER="swift"
|
||||
|
||||
if [[ -f "$SOURCE" ]]; then
|
||||
cp $SOURCE $TARGET
|
||||
chown ${OWNER}: $TARGET
|
||||
chmod 0640 $TARGET
|
||||
fi
|
||||
|
||||
if [[ -f "$SOURCE_OBJECT_SERVER" ]]; then
|
||||
cp $SOURCE_OBJECT_SERVER $TARGET_OBJECT_SERVER
|
||||
chown ${OWNER}: $TARGET_OBJECT_SERVER
|
||||
chmod 0640 $TARGET_OBJECT_SERVER
|
||||
fi
|
@ -1,16 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -o errexit
|
||||
|
||||
CMD="/usr/bin/swift-object-updater"
|
||||
ARGS="/etc/swift/object-server.conf --verbose"
|
||||
|
||||
# Loading common functions.
|
||||
source /opt/kolla/kolla-common.sh
|
||||
|
||||
source /opt/kolla/config-swift.sh
|
||||
|
||||
# Execute config strategy
|
||||
set_configs
|
||||
|
||||
exec $CMD $ARGS
|
@ -1,33 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
OWNER="swift"
|
||||
|
||||
if [[ -f "/opt/kolla/swift/swift.conf" ]]; then
|
||||
cp /opt/kolla/swift/swift.conf /etc/swift/swift.conf
|
||||
chown ${OWNER}: /etc/swift/swift.conf
|
||||
chmod 0640 /etc/swift/swift.conf
|
||||
fi
|
||||
|
||||
if [[ -f "/opt/kolla/swift/object.ring.gz" ]]; then
|
||||
cp /opt/kolla/swift/object.ring.gz /etc/swift/object.ring.gz
|
||||
chown ${OWNER}: /etc/swift/object.ring.gz
|
||||
chmod 0640 /etc/swift/object.ring.gz
|
||||
fi
|
||||
|
||||
if [[ -f "/opt/kolla/swift/container.ring.gz" ]]; then
|
||||
cp /opt/kolla/swift/container.ring.gz /etc/swift/container.ring.gz
|
||||
chown ${OWNER}: /etc/swift/container.ring.gz
|
||||
chmod 0640 /etc/swift/container.ring.gz
|
||||
fi
|
||||
|
||||
if [[ -f "/opt/kolla/swift/account.ring.gz" ]]; then
|
||||
cp /opt/kolla/swift/account.ring.gz /etc/swift/account.ring.gz
|
||||
chown ${OWNER}: /etc/swift/account.ring.gz
|
||||
chmod 0640 /etc/swift/account.ring.gz
|
||||
fi
|
||||
|
||||
if [[ -f "/opt/kolla/swift-proxy-server/proxy-server.conf" ]]; then
|
||||
cp /opt/kolla/swift-proxy-server/proxy-server.conf /etc/swift/proxy-server.conf
|
||||
chown ${OWNER}: /etc/swift/proxy-server.conf
|
||||
chmod 0640 /etc/swift/proxy-server.conf
|
||||
fi
|
@ -1,16 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -o errexit
|
||||
|
||||
CMD="/usr/bin/swift-proxy-server"
|
||||
ARGS="/etc/swift/proxy-server.conf --verbose"
|
||||
|
||||
# Loading common functions.
|
||||
source /opt/kolla/kolla-common.sh
|
||||
|
||||
source /opt/kolla/config-swift.sh
|
||||
|
||||
# Execute config strategy
|
||||
set_configs
|
||||
|
||||
exec $CMD $ARGS
|
@ -1 +0,0 @@
|
||||
../../../docker/common/swift/swift-account-server/config-external.sh
|
@ -0,0 +1,19 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [[ -f /opt/kolla/swift/swift.conf ]]; then
|
||||
cp /opt/kolla/swift/swift.conf /etc/swift/
|
||||
chown swift: /etc/swift/swift.conf
|
||||
chmod 0640 /etc/swift/swift.conf
|
||||
fi
|
||||
|
||||
if [[ -f "/opt/kolla/swift/account.ring.gz" ]]; then
|
||||
cp /opt/kolla/swift/account.ring.gz /etc/swift/account.ring.gz
|
||||
chown swift: /etc/swift/account.ring.gz
|
||||
chmod 0640 /etc/swift/account.ring.gz
|
||||
fi
|
||||
|
||||
if [[ -f /opt/kolla/swift-account-server/account-server.conf ]]; then
|
||||
cp /opt/kolla/swift-account-server/account-server.conf /etc/swift/
|
||||
chown swift: /etc/swift/account-server.conf
|
||||
chmod 0640 /etc/swift/account-server.conf
|
||||
fi
|
@ -1 +0,0 @@
|
||||
../../../docker/common/swift/swift-account-server/start.sh
|
16
docker_templates/swift/swift-account-server/start.sh
Executable file
16
docker_templates/swift/swift-account-server/start.sh
Executable file
@ -0,0 +1,16 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -o errexit
|
||||
|
||||
CMD="/usr/bin/swift-account-server"
|
||||
ARGS="/etc/swift/account-server.conf --verbose"
|
||||
|
||||
# Loading common functions.
|
||||
source /opt/kolla/kolla-common.sh
|
||||
|
||||
source /opt/kolla/config-swift.sh
|
||||
|
||||
# Execute config strategy
|
||||
set_configs
|
||||
|
||||
exec $CMD $ARGS
|
@ -1 +0,0 @@
|
||||
../../../docker/common/swift/swift-base/build-swift-ring.py
|
93
docker_templates/swift/swift-base/build-swift-ring.py
Normal file
93
docker_templates/swift/swift-base/build-swift-ring.py
Normal file
@ -0,0 +1,93 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# Copyright 2015 Paul Bourke
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
"""
|
||||
This script is a simple wrapper used to create and rebalance Swift ring files.
|
||||
"""
|
||||
|
||||
import argparse
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
|
||||
def setup_args():
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("-f", "--ring-file",
|
||||
required=True,
|
||||
help="Path to ring file")
|
||||
parser.add_argument("-p", "--part-power",
|
||||
required=True,
|
||||
help="Part power")
|
||||
parser.add_argument("-r", "--num-replicas",
|
||||
required=True,
|
||||
help="Number of replicas")
|
||||
parser.add_argument("-m", "--min-part-hours",
|
||||
required=True,
|
||||
help="Min part hours")
|
||||
parser.add_argument("-H", "--hosts",
|
||||
required=True,
|
||||
help="Hosts in the ring, comma delimited")
|
||||
parser.add_argument("-w", "--weights",
|
||||
required=True,
|
||||
help="Weight of each host, comma delimited")
|
||||
parser.add_argument("-d", "--devices",
|
||||
required=True,
|
||||
help="Device on each host, comma delimited")
|
||||
parser.add_argument("-z", "--zones",
|
||||
required=True,
|
||||
help="Zone of each host, comma delimited")
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
def run_cmd(cmd):
|
||||
print(' '.join(cmd))
|
||||
subprocess.call(cmd)
|
||||
|
||||
|
||||
def run(args):
|
||||
hosts = args.hosts.split(',')
|
||||
weights = args.weights.split(',')
|
||||
zones = args.zones.split(',')
|
||||
devices = args.devices.split(',')
|
||||
if not (len(hosts) == len(weights) == len(zones) == len(devices)):
|
||||
print('Error: an equal amount of hosts, devices, weights, '
|
||||
'and zones are required')
|
||||
sys.exit(1)
|
||||
|
||||
run_cmd(['/usr/bin/swift-ring-builder',
|
||||
args.ring_file,
|
||||
'create',
|
||||
args.part_power,
|
||||
args.num_replicas,
|
||||
args.min_part_hours])
|
||||
|
||||
for i in xrange(len(hosts)):
|
||||
run_cmd(['/usr/bin/swift-ring-builder',
|
||||
args.ring_file,
|
||||
'add',
|
||||
'z{}-{}/{}'.format(zones[i], hosts[i], devices[i]),
|
||||
weights[i]])
|
||||
|
||||
run_cmd(['/usr/bin/swift-ring-builder', args.ring_file, 'rebalance'])
|
||||
|
||||
|
||||
def main():
|
||||
args = setup_args()
|
||||
run(args)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
@ -1 +0,0 @@
|
||||
../../../docker/common/swift/swift-base/config-swift.sh
|
3
docker_templates/swift/swift-base/config-swift.sh
Executable file
3
docker_templates/swift/swift-base/config-swift.sh
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
chown -R swift: /srv/node
|
@ -1 +0,0 @@
|
||||
../../../docker/common/swift/swift-container-server/config-external.sh
|
@ -0,0 +1,21 @@
|
||||
#!/bin/bash
|
||||
|
||||
OWNER="swift"
|
||||
|
||||
if [[ -f "/opt/kolla/swift/swift.conf" ]]; then
|
||||
cp /opt/kolla/swift/swift.conf /etc/swift/swift.conf
|
||||
chown ${OWNER}: /etc/swift/swift.conf
|
||||
chmod 0640 /etc/swift/swift.conf
|
||||
fi
|
||||
|
||||
if [[ -f "/opt/kolla/swift/container.ring.gz" ]]; then
|
||||
cp /opt/kolla/swift/container.ring.gz /etc/swift/container.ring.gz
|
||||
chown ${OWNER}: /etc/swift/container.ring.gz
|
||||
chmod 0640 /etc/swift/container.ring.gz
|
||||
fi
|
||||
|
||||
if [[ -f "/opt/kolla/swift-container-server/container-server.conf" ]]; then
|
||||
cp /opt/kolla/swift-container-server/container-server.conf /etc/swift/container-server.conf
|
||||
chown ${OWNER}: /etc/swift/container-server.conf
|
||||
chmod 0640 /etc/swift/container-server.conf
|
||||
fi
|
@ -1 +0,0 @@
|
||||
../../../docker/common/swift/swift-container-server/start.sh
|
16
docker_templates/swift/swift-container-server/start.sh
Executable file
16
docker_templates/swift/swift-container-server/start.sh
Executable file
@ -0,0 +1,16 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -o errexit
|
||||
|
||||
CMD="/usr/bin/swift-container-server"
|
||||
ARGS="/etc/swift/container-server.conf --verbose"
|
||||
|
||||
# Loading common functions.
|
||||
source /opt/kolla/kolla-common.sh
|
||||
|
||||
source /opt/kolla/config-swift.sh
|
||||
|
||||
# Execute config strategy
|
||||
set_configs
|
||||
|
||||
exec $CMD $ARGS
|
@ -1 +0,0 @@
|
||||
../../../docker/common/swift/swift-object-auditor/config-external.sh
|
@ -0,0 +1,18 @@
|
||||
#!/bin/bash
|
||||
SOURCE="/opt/kolla/swift/swift.conf"
|
||||
TARGET="/etc/swift/swift.conf"
|
||||
SOURCE_OBJECT_SERVER="/opt/kolla/swift/object-server.conf"
|
||||
TARGET_OBJECT_SERVER="/etc/swift/object-server.conf"
|
||||
OWNER="swift"
|
||||
|
||||
if [[ -f "$SOURCE" ]]; then
|
||||
cp $SOURCE $TARGET
|
||||
chown ${OWNER}: $TARGET
|
||||
chmod 0640 $TARGET
|
||||
fi
|
||||
|
||||
if [[ -f "$SOURCE_OBJECT_SERVER" ]]; then
|
||||
cp $SOURCE_OBJECT_SERVER $TARGET_OBJECT_SERVER
|
||||
chown ${OWNER}: $TARGET_OBJECT_SERVER
|
||||
chmod 0640 $TARGET_OBJECT_SERVER
|
||||
fi
|
@ -1 +0,0 @@
|
||||
../../../docker/common/swift/swift-object-auditor/start.sh
|
16
docker_templates/swift/swift-object-auditor/start.sh
Executable file
16
docker_templates/swift/swift-object-auditor/start.sh
Executable file
@ -0,0 +1,16 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -o errexit
|
||||
|
||||
CMD="/usr/bin/swift-object-auditor"
|
||||
ARGS="/etc/swift/object-server.conf --verbose"
|
||||
|
||||
# Loading common functions.
|
||||
source /opt/kolla/kolla-common.sh
|
||||
|
||||
source /opt/kolla/config-swift.sh
|
||||
|
||||
# Execute config strategy
|
||||
set_configs
|
||||
|
||||
exec $CMD $ARGS
|
@ -1 +0,0 @@
|
||||
../../../docker/common/swift/swift-object-base/config-swift-object.sh
|
@ -0,0 +1,72 @@
|
||||
#!/bin/bash
|
||||
|
||||
. /opt/kolla/kolla-common.sh
|
||||
|
||||
check_required_vars \
|
||||
SWIFT_CONTAINER_SVC_RING_DEVICES \
|
||||
SWIFT_CONTAINER_SVC_RING_HOSTS \
|
||||
SWIFT_CONTAINER_SVC_RING_MIN_PART_HOURS \
|
||||
SWIFT_CONTAINER_SVC_RING_NAME \
|
||||
SWIFT_CONTAINER_SVC_RING_PART_POWER \
|
||||
SWIFT_CONTAINER_SVC_RING_REPLICAS \
|
||||
SWIFT_CONTAINER_SVC_RING_WEIGHTS \
|
||||
SWIFT_CONTAINER_SVC_RING_ZONES \
|
||||
SWIFT_DIR \
|
||||
SWIFT_OBJECT_SVC_BIND_IP \
|
||||
SWIFT_OBJECT_SVC_BIND_PORT \
|
||||
SWIFT_OBJECT_SVC_DEVICES \
|
||||
SWIFT_OBJECT_SVC_MOUNT_CHECK \
|
||||
SWIFT_OBJECT_SVC_PIPELINE \
|
||||
SWIFT_OBJECT_SVC_RING_DEVICES \
|
||||
SWIFT_OBJECT_SVC_RING_HOSTS \
|
||||
SWIFT_OBJECT_SVC_RING_MIN_PART_HOURS \
|
||||
SWIFT_OBJECT_SVC_RING_NAME \
|
||||
SWIFT_OBJECT_SVC_RING_PART_POWER \
|
||||
SWIFT_OBJECT_SVC_RING_REPLICAS \
|
||||
SWIFT_OBJECT_SVC_RING_WEIGHTS \
|
||||
SWIFT_OBJECT_SVC_RING_ZONES \
|
||||
SWIFT_USER
|
||||
|
||||
cfg=/etc/swift/object-server.conf
|
||||
|
||||
crudini --set $cfg DEFAULT bind_ip "${SWIFT_OBJECT_SVC_BIND_IP}"
|
||||
crudini --set $cfg DEFAULT bind_port "${SWIFT_OBJECT_SVC_BIND_PORT}"
|
||||
crudini --set $cfg DEFAULT user "${SWIFT_USER}"
|
||||
crudini --set $cfg DEFAULT swift_dir "${SWIFT_DIR}"
|
||||
crudini --set $cfg DEFAULT devices "${SWIFT_OBJECT_SVC_DEVICES}"
|
||||
crudini --set $cfg DEFAULT mount_check "${SWIFT_OBJECT_SVC_MOUNT_CHECK}"
|
||||
|
||||
crudini --set $cfg pipeline:main pipeline "${SWIFT_OBJECT_SVC_PIPELINE}"
|
||||
|
||||
# NOTE(pbourke): some services require a section in the conf, even if empty
|
||||
crudini --set $cfg object-expirer
|
||||
|
||||
# Create swift user and group if they don't exist
|
||||
id -u swift &>/dev/null || useradd --user-group swift
|
||||
|
||||
# Ensure proper ownership of the mount point directory structure
|
||||
chown -R swift:swift /srv/node
|
||||
|
||||
# TODO(pbourke): does this need to be on a data vol?
|
||||
mkdir -p /var/cache/swift
|
||||
chown -R swift:swift /var/cache/swift
|
||||
|
||||
python /opt/kolla/build-swift-ring.py \
|
||||
-f ${SWIFT_OBJECT_SVC_RING_NAME} \
|
||||
-p ${SWIFT_OBJECT_SVC_RING_PART_POWER} \
|
||||
-r ${SWIFT_OBJECT_SVC_RING_REPLICAS} \
|
||||
-m ${SWIFT_OBJECT_SVC_RING_MIN_PART_HOURS} \
|
||||
-H ${SWIFT_OBJECT_SVC_RING_HOSTS} \
|
||||
-w ${SWIFT_OBJECT_SVC_RING_WEIGHTS} \
|
||||
-d ${SWIFT_OBJECT_SVC_RING_DEVICES} \
|
||||
-z ${SWIFT_OBJECT_SVC_RING_ZONES}
|
||||
|
||||
python /opt/kolla/build-swift-ring.py \
|
||||
-f ${SWIFT_CONTAINER_SVC_RING_NAME} \
|
||||
-p ${SWIFT_CONTAINER_SVC_RING_PART_POWER} \
|
||||
-r ${SWIFT_CONTAINER_SVC_RING_REPLICAS} \
|
||||
-m ${SWIFT_CONTAINER_SVC_RING_MIN_PART_HOURS} \
|
||||
-H ${SWIFT_CONTAINER_SVC_RING_HOSTS} \
|
||||
-w ${SWIFT_CONTAINER_SVC_RING_WEIGHTS} \
|
||||
-d ${SWIFT_CONTAINER_SVC_RING_DEVICES} \
|
||||
-z ${SWIFT_CONTAINER_SVC_RING_ZONES}
|
@ -1 +0,0 @@
|
||||
../../../docker/common/swift/swift-object-expirer/config-external.sh
|
@ -0,0 +1,18 @@
|
||||
#!/bin/bash
|
||||
SOURCE="/opt/kolla/swift/swift.conf"
|
||||
TARGET="/etc/swift/swift.conf"
|
||||
SOURCE_OBJECT_EXPIRER="/opt/kolla/swift/object-expirer.conf"
|
||||
TARGET_OBJECT_EXPIRER="/etc/swift/object-expirer.conf"
|
||||
OWNER="swift"
|
||||
|
||||
if [[ -f "$SOURCE" ]]; then
|
||||
cp $SOURCE $TARGET
|
||||
chown ${OWNER}: $TARGET
|
||||
chmod 0640 $TARGET
|
||||
fi
|
||||
|
||||
if [[ -f "$SOURCE_OBJECT_EXPIRER" ]]; then
|
||||
cp $SOURCE_OBJECT_EXPIRER $TARGET_OBJECT_EXPIRER
|
||||
chown ${OWNER}: $TARGET_OBJECT_EXPIRER
|
||||
chmod 0640 $TARGET_OBJECT_EXPIRER
|
||||
fi
|
@ -1 +0,0 @@
|
||||
../../../docker/common/swift/swift-object-expirer/start.sh
|
16
docker_templates/swift/swift-object-expirer/start.sh
Executable file
16
docker_templates/swift/swift-object-expirer/start.sh
Executable file
@ -0,0 +1,16 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -o errexit
|
||||
|
||||
CMD="/usr/bin/swift-object-expirer"
|
||||
ARGS="/etc/swift/object-server.conf --verbose"
|
||||
|
||||
# Loading common functions.
|
||||
source /opt/kolla/kolla-common.sh
|
||||
|
||||
source /opt/kolla/config-swift.sh
|
||||
|
||||
# Execute config strategy
|
||||
set_configs
|
||||
|
||||
exec $CMD $ARGS
|
@ -1 +0,0 @@
|
||||
../../../docker/common/swift/swift-object-replicator/config-external.sh
|
@ -0,0 +1,18 @@
|
||||
#!/bin/bash
|
||||
SOURCE="/opt/kolla/swift/swift.conf"
|
||||
TARGET="/etc/swift/swift.conf"
|
||||
SOURCE_OBJECT_SERVER="/opt/kolla/swift/object-server.conf"
|
||||
TARGET_OBJECT_SERVER="/etc/swift/object-server.conf"
|
||||
OWNER="swift"
|
||||
|
||||
if [[ -f "$SOURCE" ]]; then
|
||||
cp $SOURCE $TARGET
|
||||
chown ${OWNER}: $TARGET
|
||||
chmod 0640 $TARGET
|
||||
fi
|
||||
|
||||
if [[ -f "$SOURCE_OBJECT_SERVER" ]]; then
|
||||
cp $SOURCE_OBJECT_SERVER $TARGET_OBJECT_SERVER
|
||||
chown ${OWNER}: $TARGET_OBJECT_SERVER
|
||||
chmod 0640 $TARGET_OBJECT_SERVER
|
||||
fi
|
@ -1 +0,0 @@
|
||||
../../../docker/common/swift/swift-object-replicator/start.sh
|
16
docker_templates/swift/swift-object-replicator/start.sh
Executable file
16
docker_templates/swift/swift-object-replicator/start.sh
Executable file
@ -0,0 +1,16 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -o errexit
|
||||
|
||||
CMD="/usr/bin/swift-object-replicator"
|
||||
ARGS="/etc/swift/object-server.conf --verbose"
|
||||
|
||||
# Loading common functions.
|
||||
source /opt/kolla/kolla-common.sh
|
||||
|
||||
source /opt/kolla/config-swift.sh
|
||||
|
||||
# Execute config strategy
|
||||
set_configs
|
||||
|
||||
exec $CMD $ARGS
|
@ -1 +0,0 @@
|
||||
../../../docker/common/swift/swift-object-server/config-external.sh
|
@ -0,0 +1,27 @@
|
||||
#!/bin/bash
|
||||
|
||||
OWNER="swift"
|
||||
|
||||
if [[ -f "/opt/kolla/swift/swift.conf" ]]; then
|
||||
cp /opt/kolla/swift/swift.conf /etc/swift/swift.conf
|
||||
chown ${OWNER}: /etc/swift/swift.conf
|
||||
chmod 0640 /etc/swift/swift.conf
|
||||
fi
|
||||
|
||||
if [[ -f "/opt/kolla/swift/object.ring.gz" ]]; then
|
||||
cp /opt/kolla/swift/object.ring.gz /etc/swift/object.ring.gz
|
||||
chown ${OWNER}: /etc/swift/object.ring.gz
|
||||
chmod 0640 /etc/swift/object.ring.gz
|
||||
fi
|
||||
|
||||
if [[ -f "/opt/kolla/swift/container.ring.gz" ]]; then
|
||||
cp /opt/kolla/swift/container.ring.gz /etc/swift/container.ring.gz
|
||||
chown ${OWNER}: /etc/swift/container.ring.gz
|
||||
chmod 0640 /etc/swift/container.ring.gz
|
||||
fi
|
||||
|
||||
if [[ -f "/opt/kolla/swift-object-server/object-server.conf" ]]; then
|
||||
cp /opt/kolla/swift-object-server/object-server.conf /etc/swift/object-server.conf
|
||||
chown ${OWNER}: /etc/swift/object-server.conf
|
||||
chmod 0640 /etc/swift/object-server.conf
|
||||
fi
|
@ -1 +0,0 @@
|
||||
../../../docker/common/swift/swift-object-server/start.sh
|
16
docker_templates/swift/swift-object-server/start.sh
Executable file
16
docker_templates/swift/swift-object-server/start.sh
Executable file
@ -0,0 +1,16 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -o errexit
|
||||
|
||||
CMD="/usr/bin/swift-object-server"
|
||||
ARGS="/etc/swift/object-server.conf --verbose"
|
||||
|
||||
# Loading common functions.
|
||||
source /opt/kolla/kolla-common.sh
|
||||
|
||||
source /opt/kolla/config-swift.sh
|
||||
|
||||
# Execute config strategy
|
||||
set_configs
|
||||
|
||||
exec $CMD $ARGS
|
@ -1 +0,0 @@
|
||||
../../../docker/common/swift/swift-object-updater/config-external.sh
|
@ -0,0 +1,18 @@
|
||||
#!/bin/bash
|
||||
SOURCE="/opt/kolla/swift/swift.conf"
|
||||
TARGET="/etc/swift/swift.conf"
|
||||
SOURCE_OBJECT_SERVER="/opt/kolla/swift/object-server.conf"
|
||||
TARGET_OBJECT_SERVER="/etc/swift/object-server.conf"
|
||||
OWNER="swift"
|
||||
|
||||
if [[ -f "$SOURCE" ]]; then
|
||||
cp $SOURCE $TARGET
|
||||
chown ${OWNER}: $TARGET
|
||||
chmod 0640 $TARGET
|
||||
fi
|
||||
|
||||
if [[ -f "$SOURCE_OBJECT_SERVER" ]]; then
|
||||
cp $SOURCE_OBJECT_SERVER $TARGET_OBJECT_SERVER
|
||||
chown ${OWNER}: $TARGET_OBJECT_SERVER
|
||||
chmod 0640 $TARGET_OBJECT_SERVER
|
||||
fi
|
@ -1 +0,0 @@
|
||||
../../../docker/common/swift/swift-object-updater/start.sh
|
16
docker_templates/swift/swift-object-updater/start.sh
Executable file
16
docker_templates/swift/swift-object-updater/start.sh
Executable file
@ -0,0 +1,16 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -o errexit
|
||||
|
||||
CMD="/usr/bin/swift-object-updater"
|
||||
ARGS="/etc/swift/object-server.conf --verbose"
|
||||
|
||||
# Loading common functions.
|
||||
source /opt/kolla/kolla-common.sh
|
||||
|
||||
source /opt/kolla/config-swift.sh
|
||||
|
||||
# Execute config strategy
|
||||
set_configs
|
||||
|
||||
exec $CMD $ARGS
|
@ -1 +0,0 @@
|
||||
../../../docker/common/swift/swift-proxy-server/config-external.sh
|
33
docker_templates/swift/swift-proxy-server/config-external.sh
Executable file
33
docker_templates/swift/swift-proxy-server/config-external.sh
Executable file
@ -0,0 +1,33 @@
|
||||
#!/bin/bash
|
||||
|
||||
OWNER="swift"
|
||||
|
||||
if [[ -f "/opt/kolla/swift/swift.conf" ]]; then
|
||||
cp /opt/kolla/swift/swift.conf /etc/swift/swift.conf
|
||||
chown ${OWNER}: /etc/swift/swift.conf
|
||||
chmod 0640 /etc/swift/swift.conf
|
||||
fi
|
||||
|
||||
if [[ -f "/opt/kolla/swift/object.ring.gz" ]]; then
|
||||
cp /opt/kolla/swift/object.ring.gz /etc/swift/object.ring.gz
|
||||
chown ${OWNER}: /etc/swift/object.ring.gz
|
||||
chmod 0640 /etc/swift/object.ring.gz
|
||||
fi
|
||||
|
||||
if [[ -f "/opt/kolla/swift/container.ring.gz" ]]; then
|
||||
cp /opt/kolla/swift/container.ring.gz /etc/swift/container.ring.gz
|
||||
chown ${OWNER}: /etc/swift/container.ring.gz
|
||||
chmod 0640 /etc/swift/container.ring.gz
|
||||
fi
|
||||
|
||||
if [[ -f "/opt/kolla/swift/account.ring.gz" ]]; then
|
||||
cp /opt/kolla/swift/account.ring.gz /etc/swift/account.ring.gz
|
||||
chown ${OWNER}: /etc/swift/account.ring.gz
|
||||
chmod 0640 /etc/swift/account.ring.gz
|
||||
fi
|
||||
|
||||
if [[ -f "/opt/kolla/swift-proxy-server/proxy-server.conf" ]]; then
|
||||
cp /opt/kolla/swift-proxy-server/proxy-server.conf /etc/swift/proxy-server.conf
|
||||
chown ${OWNER}: /etc/swift/proxy-server.conf
|
||||
chmod 0640 /etc/swift/proxy-server.conf
|
||||
fi
|
@ -1 +0,0 @@
|
||||
../../../docker/common/swift/swift-proxy-server/start.sh
|
16
docker_templates/swift/swift-proxy-server/start.sh
Executable file
16
docker_templates/swift/swift-proxy-server/start.sh
Executable file
@ -0,0 +1,16 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -o errexit
|
||||
|
||||
CMD="/usr/bin/swift-proxy-server"
|
||||
ARGS="/etc/swift/proxy-server.conf --verbose"
|
||||
|
||||
# Loading common functions.
|
||||
source /opt/kolla/kolla-common.sh
|
||||
|
||||
source /opt/kolla/config-swift.sh
|
||||
|
||||
# Execute config strategy
|
||||
set_configs
|
||||
|
||||
exec $CMD $ARGS
|
Loading…
Reference in New Issue
Block a user