summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-cluster/swift/swift-1.7.4.ebuild')
-rw-r--r--sys-cluster/swift/swift-1.7.4.ebuild151
1 files changed, 151 insertions, 0 deletions
diff --git a/sys-cluster/swift/swift-1.7.4.ebuild b/sys-cluster/swift/swift-1.7.4.ebuild
new file mode 100644
index 0000000..73a6131
--- /dev/null
+++ b/sys-cluster/swift/swift-1.7.4.ebuild
@@ -0,0 +1,151 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI=4
+
+PYTHON_DEPEND="2"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="3.*"
+
+inherit distutils eutils linux-info
+
+DESCRIPTION="Swift is a highly available, distributed, eventually consistent
+object/blob store"
+HOMEPAGE="https://launchpad.net/swift"
+SRC_URI="http://launchpad.net/${PN}/folsom/${PV}/+download/${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="proxy account container object test"
+
+DEPEND="dev-python/setuptools
+ test? ( dev-python/nose
+ dev-python/coverage
+ dev-python/nosexcover
+ dev-python/pep8
+ >=dev-python/sphinx-1.1.2 )"
+
+RDEPEND="dev-python/eventlet
+ dev-python/greenlet
+ dev-python/netifaces
+ dev-python/pastedeploy
+ dev-python/simplejson
+ dev-python/pyxattr
+ dev-python/configobj
+ dev-python/webob
+ >=dev-python/webob-1.0.8
+ <dev-python/webob-1.3
+ >=dev-python/python-swiftclient-1.2.0"
+
+REQUIRED_USE="|| ( proxy account container object )"
+
+CONFIG_CHECK="~EXT3_FS_XATTR ~SQUASHFS_XATTR ~CIFS_XATTR ~JFFS2_FS_XATTR
+~TMPFS_XATTR ~UBIFS_FS_XATTR ~EXT2_FS_XATTR ~REISERFS_FS_XATTR ~EXT4_FS_XATTR
+~ZFS"
+
+pkg_setup() {
+ python_pkg_setup
+ enewuser swift
+ enewgroup swift
+}
+
+src_install() {
+ distutils_src_install
+
+ keepdir /etc/swift
+ insinto /etc/swift
+
+ newins "etc/swift.conf-sample" "swift.conf"
+ newins "etc/swift-bench.conf-sample" "swift-bench.conf-sample"
+ newins "etc/rsyncd.conf-sample" "rsyncd.conf"
+ newins "etc/mime.types-sample" "mime.types-sample"
+ newins "etc/memcache.conf-sample" "memcache.conf-sample"
+ newins "etc/drive-audit.conf-sample" "drive-audit.conf-sample"
+ newins "etc/dispersion.conf-sample" "dispersion.conf-sample"
+
+ if use proxy; then
+ newinitd "${FILESDIR}/swift-proxy.initd" "swift-proxy"
+
+ newins "etc/proxy-server.conf-sample" "proxy-server.conf"
+ fi
+ if use account; then
+ newinitd "${FILESDIR}/swift-container.initd" "swift-account"
+ newins "etc/account-server.conf-sample" "account-server.conf"
+ fi
+ if use container; then
+ newinitd "${FILESDIR}/swift-container.initd" "swift-container"
+ newins "etc/container-server.conf-sample" "container-server.conf"
+ fi
+ if use object; then
+ newinitd "${FILESDIR}/swift-object.initd" "swift-obect"
+ newins "etc/object-server.conf-sample" "object-server.conf"
+ newins "object-expirer.conf-sample" "object-expirer.conf"
+ fi
+
+ fowners swift:swift "/etc/swift" || die "fowners failed"
+}
+
+pkg_postinst() {
+ elog "Openstack swift will default to using insecure http unless a"
+ elog "certificate is created in /etc/swift/cert.crt and the associated key"
+ elog "in /etc/swift/cert.key. These can be created with the following:"
+ elog " * cd /etc/swift"
+ elog " * openssl req -new -x509 -nodes -out cert.crt -keyout cert.key"
+
+ if use proxy; then
+ elog ""
+ elog "The storage rings must be created with the following three"
+ elog "commands:"
+ elog " * cd /etc/swift"
+ elog " * swift-ring-builder account.builder create SIZE REPLICAS HOURS"
+ elog " * swift-ring-builder container.builder create SIZE REPLICAS HOURS"
+ elog " * swift-ring-builder object.builder create SIZE REPLICAS HOURS"
+ elog ""
+ elog "The ring building commands take three arguments: SIZE, REPLICAS,"
+ elog "HOURS. Where SIZE is used to determine the total storage you"
+ elog "expect your swift cluster to use (e.g. 2^SIZE); REPLICAS is the"
+ elog "number of replicas to keep in the cluster of any piece of data;"
+ elog "and HOURS is the number of hours to restrict moving a partition"
+ elog "more than once."
+ elog ""
+ elog "Add zones to the rings with the following commands:"
+ elog " * swift-ring-builder account.builder add zZONE-IP:6002/DEV WEIGHT"
+ elog " * swift-ring-builder container.builder add zZONE-IP:6001/DEV WEIGHT"
+ elog " * swift-ring-builder object.builder add zZONE-IP:6000/DEV WEIGHT"
+ elog ""
+ elog "The zone parameters (ZONE, IP, DEV, and WEIGHT) dictate how the"
+ elog "zone is utilized in the cluster. ZONE is a unique number for the"
+ elog "zone being created. Every grouping of three commands run must"
+ elog "increment ZONE. IP is the IP of this proxy node. DEV is the"
+ elog "device to use for storage (e.g. sdb1, sda4, etc). WEIGHT is the"
+ elog "preference to utilize this device over others. Higher numbers"
+ elog "are higher preference and should be reserved for bigger or faster"
+ elog "disks."
+ elog ""
+ elog "Once this has all been done, the rings must be rebalanced:"
+ elog " * swift-ring-builder account.builder rebalance"
+ elog " * swift-ring-builder container.builder rebalance"
+ elog " * swift-ring-builder object.builder rebalance"
+ elog ""
+ elog "Copy the account.ring.gz, container.ring.gz, and object.ring.gz"
+ elog "files to all the proxy and swift nodes"
+ fi
+}
+
+#src_install()
+#{
+# distutils_src_install
+#
+# dodir "/var/run/swift"
+#
+# if use proxy-server; then
+# newinitd "${FILESDIR}/swift-proxy-server.initd" swift-proxy-server
+# fi
+#
+# if use storage-server; then
+# newinitd "${FILESDIR}/swift-storage-server.initd" swift-storage-server
+# newconfd "${FILESDIR}/swift-storage-server.confd" swift-storage-server
+# fi
+#}