From 1c394cc11e9d3658bdc19321a6956f32045a04b0 Mon Sep 17 00:00:00 2001 From: Lorcan Date: Thu, 3 Jul 2014 10:43:13 +0100 Subject: [PATCH] Add swift-ring element A swift-ring element consists of the basic swift package and the swift-ring-builder tool. The purpose of this element is exclusively to create and update swift ring files. The benefit here is that it may be used on an undercloud or overcloud controller node without having to install the entire swift service. Also, updates to a ring/creation of a new ring may be performed on a single, centralised node in the under/overcloud and distributed to all the swift nodes in a system. This is not intended to replace anything in the existing swift element. Unlike the swift element, it does not require any heat-teamplate which is used to generate swift rings on the node in question (as well as other things) so right now any node with the swift element must be a part of the swift rings. Therefore, the swift-ring element could be added to any node in a system without any other swift services or presence in the rings required. Change-Id: I018bdb7a8c6f2f7f83a0a7fb6d27332b6ca266a8 --- elements/swift-ring/README.md | 1 + elements/swift-ring/element-deps | 2 ++ .../environment.d/10-swift-ring-venv-dir.bash | 6 ++++++ .../install.d/swift-package-install/75-swift-ring | 6 ++++++ .../install.d/swift-source-install/75-swift-ring | 10 ++++++++++ elements/swift-ring/pkg-map | 12 ++++++++++++ elements/swift-ring/source-repository-swift | 1 + 7 files changed, 38 insertions(+) create mode 100644 elements/swift-ring/README.md create mode 100644 elements/swift-ring/element-deps create mode 100644 elements/swift-ring/environment.d/10-swift-ring-venv-dir.bash create mode 100755 elements/swift-ring/install.d/swift-package-install/75-swift-ring create mode 100755 elements/swift-ring/install.d/swift-source-install/75-swift-ring create mode 100644 elements/swift-ring/pkg-map create mode 100644 elements/swift-ring/source-repository-swift diff --git a/elements/swift-ring/README.md b/elements/swift-ring/README.md new file mode 100644 index 000000000..f3c2e12b0 --- /dev/null +++ b/elements/swift-ring/README.md @@ -0,0 +1 @@ +Element that provides a node with the tools to build a swift ring diff --git a/elements/swift-ring/element-deps b/elements/swift-ring/element-deps new file mode 100644 index 000000000..f5a85e717 --- /dev/null +++ b/elements/swift-ring/element-deps @@ -0,0 +1,2 @@ +os-svc-install +source-repositories diff --git a/elements/swift-ring/environment.d/10-swift-ring-venv-dir.bash b/elements/swift-ring/environment.d/10-swift-ring-venv-dir.bash new file mode 100644 index 000000000..4616dec14 --- /dev/null +++ b/elements/swift-ring/environment.d/10-swift-ring-venv-dir.bash @@ -0,0 +1,6 @@ +if [ -z "${SWIFT_VENV_DIR:-}" ]; then + export SWIFT_VENV_DIR=${OPENSTACK_VENV_DIR:-"/opt/stack/venvs/swift"} +fi +if [ -z "${SWIFT_EXTRA_INSTALL_OPTS:-}" ]; then + export SWIFT_EXTRA_INSTALL_OPTS=${OPENSTACK_EXTRA_INSTALL_OPTS:-""} +fi diff --git a/elements/swift-ring/install.d/swift-package-install/75-swift-ring b/elements/swift-ring/install.d/swift-package-install/75-swift-ring new file mode 100755 index 000000000..3af997ce7 --- /dev/null +++ b/elements/swift-ring/install.d/swift-package-install/75-swift-ring @@ -0,0 +1,6 @@ +#!/bin/bash + +set -eux +set -o pipefail + +install-packages -m swift-ring swift_package diff --git a/elements/swift-ring/install.d/swift-source-install/75-swift-ring b/elements/swift-ring/install.d/swift-source-install/75-swift-ring new file mode 100755 index 000000000..e150e5618 --- /dev/null +++ b/elements/swift-ring/install.d/swift-source-install/75-swift-ring @@ -0,0 +1,10 @@ +#!/bin/bash + +set -eux +set -o pipefail + +install-packages -m swift-ring libffi_dev_package + +os-svc-install $SWIFT_EXTRA_INSTALL_OPTS -i "$SWIFT_VENV_DIR" -u swift -r /opt/stack/swift + +ln -s "$SWIFT_VENV_DIR/bin/swift-ring-builder" /usr/local/bin/swift-ring-builder diff --git a/elements/swift-ring/pkg-map b/elements/swift-ring/pkg-map new file mode 100644 index 000000000..91e2099fb --- /dev/null +++ b/elements/swift-ring/pkg-map @@ -0,0 +1,12 @@ +{ + "family": { + "redhat": { + "libffi_dev_package": "libffi-devel", + "swift_package": "openstack-swift" + } + }, + "default": { + "libffi_dev_package": "libffi-dev", + "swift_package": "openstack-swift" + } +} diff --git a/elements/swift-ring/source-repository-swift b/elements/swift-ring/source-repository-swift new file mode 100644 index 000000000..913510def --- /dev/null +++ b/elements/swift-ring/source-repository-swift @@ -0,0 +1 @@ +swift git /opt/stack/swift https://git.openstack.org/openstack/swift