diff options
Diffstat (limited to 'sys-cluster/swift/swift-1.7.4.ebuild')
-rw-r--r-- | sys-cluster/swift/swift-1.7.4.ebuild | 151 |
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 +#} |