summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-admin/salt')
-rw-r--r--app-admin/salt/Manifest1
-rw-r--r--app-admin/salt/files/salt-2015.8.0-remove-buggy-tests.patch56
-rw-r--r--app-admin/salt/files/salt-2015.8.0-remove-pydsl-includes-test.patch107
-rw-r--r--app-admin/salt/salt-2015.8.0.ebuild120
4 files changed, 284 insertions, 0 deletions
diff --git a/app-admin/salt/Manifest b/app-admin/salt/Manifest
index 6104f6d95144..ac0432a7cb8f 100644
--- a/app-admin/salt/Manifest
+++ b/app-admin/salt/Manifest
@@ -1,3 +1,4 @@
DIST salt-2015.5.3.tar.gz 5389038 SHA256 f8b04dc8bd4b00ce803d31ce5fba033c2f20fa38cdc5a3bf54b4c47362fbe853 SHA512 61203cb9b82fe8ab84fa36d06f442aebcf5c5decfacb99f8df6b52320979699d168f9df7e9e675a13a8078feabbe9210a40e526627a213239760ea43d85f1298 WHIRLPOOL 160455263ee1a95faec1f03dfcd16f9b811e5ecb961a2db5c9545070ed74786c83592e008c1ed70a6ea358ba2491128d6081d57bf7c0a679bb99abb1555bbd21
DIST salt-2015.5.5.tar.gz 5526444 SHA256 5cd8d317616abab691a83f7fd3f8bcf9ad8aecaa95fcfdc0f6d788de87f0beeb SHA512 263f772d403c0e841957342f552389914c563add3f774f26b5d9da81efa04330ec95349223f81e192a2a4789b2d565f7a67e9e3be564296d6235a47cb6657ac3 WHIRLPOOL 7b4f71d6a12b50f4f0a92bfd68c1df2cf8992481d17db984079d4a9cadd51de56d7390ea69c9b02055e747993818756af85f82538a4640e5fb831e4a1ee1cb57
+DIST salt-2015.8.0.tar.gz 6584668 SHA256 71e1cb2eb1d4b30f3247f5590c00a2089190b8f9a90c9330dc9a65fae517ec9b SHA512 e5066773cdd69635272e8bda4e030ae270ea0d6a4895ca18c2d8e94ae7a2987700fda05a760d799e369f1ec977428da0a1c8797790f0f9ac30c03a4d80ce1599 WHIRLPOOL ca1c1d8f18d29b047ebbdf590ed1d1bbe932359017505af2b5043aa6e5035756e29f9d7d3f9293ca5a76c6d643b38d62cedbc3abffafef7cf8ab2443f7143fe9
DIST salt-vim-20141109.tar.gz 3783 SHA256 4989d111ad618ea3f5f7a7046a0ff6ce3ca6bc7f71fca90849f7c38947ab6d9a SHA512 d8d62ee827012e29586cf492f2881ee5870ed058828102f985e8b27300c115e01bb126f89decb15a19a8e206dc54c89856d4c31b3ff5320a36385cb5ed517a63 WHIRLPOOL 98026b2cdcb64665790475e3b20a7de294e5cefb390b414294756cad440bc040d9044ffd37a13f3c93af9be1a1bfd444710ff0df24895db624f49fddd16b5545
diff --git a/app-admin/salt/files/salt-2015.8.0-remove-buggy-tests.patch b/app-admin/salt/files/salt-2015.8.0-remove-buggy-tests.patch
new file mode 100644
index 000000000000..92ab0624e595
--- /dev/null
+++ b/app-admin/salt/files/salt-2015.8.0-remove-buggy-tests.patch
@@ -0,0 +1,56 @@
+diff --git a/tests/unit/modules/mount_test.py b/tests/unit/modules/mount_test.py
+index 282539d..c88a7a8 100644
+--- a/tests/unit/modules/mount_test.py
++++ b/tests/unit/modules/mount_test.py
+@@ -103,12 +103,6 @@ class MountTestCase(TestCase):
+ self.assertTrue(mount.rm_fstab('name', 'device'))
+
+ mock = MagicMock(return_value={'name': 'name'})
+- with patch.object(mount, 'fstab', mock):
+- with patch('salt.utils.fopen', mock_open()) as m_open:
+- helper_open = m_open()
+- helper_open.write.assertRaises(CommandExecutionError,
+- mount.rm_fstab,
+- config=None)
+
+ def test_set_fstab(self):
+ '''
+@@ -143,12 +137,6 @@ class MountTestCase(TestCase):
+ self.assertTrue(mount.rm_automaster('name', 'device'))
+
+ mock = MagicMock(return_value={'name': 'name'})
+- with patch.object(mount, 'fstab', mock):
+- with patch('salt.utils.fopen', mock_open()) as m_open:
+- helper_open = m_open()
+- helper_open.write.assertRaises(CommandExecutionError,
+- mount.rm_automaster,
+- 'name', 'device')
+
+ def test_set_automaster(self):
+ '''
+diff --git a/tests/unit/modules/puppet_test.py b/tests/unit/modules/puppet_test.py
+index 6a43fd4..3be039c 100644
+--- a/tests/unit/modules/puppet_test.py
++++ b/tests/unit/modules/puppet_test.py
+@@ -91,10 +91,6 @@ class PuppetTestCase(TestCase):
+ with patch('salt.utils.fopen', mock_open()):
+ self.assertTrue(puppet.disable())
+
+- with patch('salt.utils.fopen', mock_open()) as m_open:
+- helper_open = m_open()
+- helper_open.write.assertRaises(CommandExecutionError,
+- puppet.disable)
+
+ def test_status(self):
+ '''
+@@ -154,10 +150,6 @@ class PuppetTestCase(TestCase):
+ mock_open(read_data="resources: 1")):
+ self.assertDictEqual(puppet.summary(), {'resources': 1})
+
+- with patch('salt.utils.fopen', mock_open()) as m_open:
+- helper_open = m_open()
+- helper_open.write.assertRaises(CommandExecutionError,
+- puppet.summary)
+
+ def test_plugin_sync(self):
+ '''
diff --git a/app-admin/salt/files/salt-2015.8.0-remove-pydsl-includes-test.patch b/app-admin/salt/files/salt-2015.8.0-remove-pydsl-includes-test.patch
new file mode 100644
index 000000000000..469e0d27e101
--- /dev/null
+++ b/app-admin/salt/files/salt-2015.8.0-remove-pydsl-includes-test.patch
@@ -0,0 +1,107 @@
+diff --git a/tests/unit/pydsl_test.py b/tests/unit/pydsl_test.py
+index 2f39a41..2052f55 100644
+--- a/tests/unit/pydsl_test.py
++++ b/tests/unit/pydsl_test.py
+@@ -445,102 +445,6 @@ class PyDSLRendererTestCase(CommonTestCaseBoilerplate):
+ shutil.rmtree(dirpath, ignore_errors=True)
+
+
+-class PyDSLRendererIncludeTestCase(CommonTestCaseBoilerplate):
+-
+- def test_rendering_includes(self):
+- dirpath = tempfile.mkdtemp(dir=integration.SYS_TMP_DIR)
+- if not os.path.isdir(dirpath):
+- self.skipTest(
+- 'The temporary directory {0!r} was not created'.format(
+- dirpath
+- )
+- )
+- output = os.path.join(dirpath, 'output')
+- try:
+- write_to(os.path.join(dirpath, 'aaa.sls'), textwrap.dedent('''\
+- #!pydsl|stateconf -ps
+-
+- include('xxx')
+- yyy = include('yyy')
+-
+- # ensure states in xxx are run first, then those in yyy and then those in aaa last.
+- extend(state('yyy::start').stateconf.require(stateconf='xxx::goal'))
+- extend(state('.start').stateconf.require(stateconf='yyy::goal'))
+-
+- extend(state('yyy::Y2').cmd.run('echo Y2 extended >> {0}'))
+-
+- __pydsl__.set(ordered=True)
+-
+- yyy.hello('red', 1)
+- yyy.hello('green', 2)
+- yyy.hello('blue', 3)
+- '''.format(output)))
+-
+- write_to(os.path.join(dirpath, 'xxx.sls'), textwrap.dedent('''\
+- #!stateconf -os yaml . jinja
+-
+- include:
+- - yyy
+-
+- extend:
+- yyy::start:
+- stateconf.set:
+- - require:
+- - stateconf: .goal
+-
+- yyy::Y1:
+- cmd.run:
+- - name: 'echo Y1 extended >> {0}'
+-
+- .X1:
+- cmd.run:
+- - name: echo X1 >> {1}
+- - cwd: /
+- .X2:
+- cmd.run:
+- - name: echo X2 >> {2}
+- - cwd: /
+- .X3:
+- cmd.run:
+- - name: echo X3 >> {3}
+- - cwd: /
+-
+- '''.format(output, output, output, output)))
+-
+- write_to(os.path.join(dirpath, 'yyy.sls'), textwrap.dedent('''\
+- #!pydsl|stateconf -ps
+-
+- include('xxx')
+- __pydsl__.set(ordered=True)
+-
+- state('.Y1').cmd.run('echo Y1 >> {0}', cwd='/')
+- state('.Y2').cmd.run('echo Y2 >> {1}', cwd='/')
+- state('.Y3').cmd.run('echo Y3 >> {2}', cwd='/')
+-
+- def hello(color, number):
+- state(color).cmd.run('echo hello '+color+' '+str(number)+' >> {3}', cwd='/')
+- '''.format(output, output, output, output)))
+-
+- self.state_highstate({'base': ['aaa']}, dirpath)
+- expected = textwrap.dedent('''\
+- X1
+- X2
+- X3
+- Y1 extended
+- Y2 extended
+- Y3
+- hello red 1
+- hello green 2
+- hello blue 3
+- ''')
+-
+- with salt.utils.fopen(output, 'r') as f:
+- self.assertEqual(sorted(f.read()), sorted(expected))
+-
+- finally:
+- shutil.rmtree(dirpath, ignore_errors=True)
+-
+-
+ def write_to(fpath, content):
+ with salt.utils.fopen(fpath, 'w') as f:
+ f.write(content)
diff --git a/app-admin/salt/salt-2015.8.0.ebuild b/app-admin/salt/salt-2015.8.0.ebuild
new file mode 100644
index 000000000000..e8568efce203
--- /dev/null
+++ b/app-admin/salt/salt-2015.8.0.ebuild
@@ -0,0 +1,120 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+PYTHON_COMPAT=(python2_7)
+
+inherit eutils systemd vim-plugin distutils-r1
+
+DESCRIPTION="Salt is a remote execution and configuration manager"
+HOMEPAGE="http://saltstack.org/"
+SALT_VIM_HASH="20695f68e5895e5ae2b5884b78f5a2cd29897b05"
+
+if [[ ${PV} == 9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="git://github.com/${PN}stack/${PN}.git"
+ EGIT_BRANCH="develop"
+ SRC_URI=""
+ KEYWORDS=""
+else
+ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+ KEYWORDS="~x86 ~amd64"
+fi
+
+SRC_URI+=" vim-syntax? ( https://github.com/${PN}stack/${PN}-vim/archive/${SALT_VIM_HASH}.tar.gz -> salt-vim-20141109.tar.gz )"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+IUSE="cherrypy ldap libcloud libvirt gnupg keyring mako mongodb mysql neutron nova"
+IUSE+=" openssl profile redis selinux test timelib raet +zeromq vim-syntax"
+
+RDEPEND="sys-apps/pciutils
+ dev-python/jinja[${PYTHON_USEDEP}]
+ >=dev-python/msgpack-0.3[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ dev-python/markupsafe[${PYTHON_USEDEP}]
+ >=dev-python/requests-1.0.0[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ >=www-servers/tornado-4.2.1[${PYTHON_USEDEP}]
+ virtual/python-futures[${PYTHON_USEDEP}]
+ libcloud? ( >=dev-python/libcloud-0.14.0[${PYTHON_USEDEP}] )
+ mako? ( dev-python/mako[${PYTHON_USEDEP}] )
+ ldap? ( dev-python/python-ldap[${PYTHON_USEDEP}] )
+ openssl? ( dev-python/pyopenssl[${PYTHON_USEDEP}] )
+ libvirt? ( dev-python/libvirt-python[${PYTHON_USEDEP}] )
+ raet? (
+ >=dev-python/libnacl-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/ioflo-1.1.7[${PYTHON_USEDEP}]
+ >=dev-python/raet-0.6.0[${PYTHON_USEDEP}]
+ )
+ zeromq? (
+ >=dev-python/pyzmq-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/pycrypto-2.6.1[${PYTHON_USEDEP}]
+ )
+ cherrypy? ( >=dev-python/cherrypy-3.2.2[${PYTHON_USEDEP}] )
+ mongodb? ( dev-python/pymongo[${PYTHON_USEDEP}] )
+ keyring? ( dev-python/keyring[${PYTHON_USEDEP}] )
+ mysql? ( dev-python/mysql-python[${PYTHON_USEDEP}] )
+ redis? ( dev-python/redis-py[${PYTHON_USEDEP}] )
+ selinux? ( sec-policy/selinux-salt )
+ timelib? ( dev-python/timelib[${PYTHON_USEDEP}] )
+ nova? ( >=dev-python/python-novaclient-2.17.0[${PYTHON_USEDEP}] )
+ neutron? ( >=dev-python/python-neutronclient-2.3.6[${PYTHON_USEDEP}] )
+ gnupg? ( dev-python/python-gnupg[${PYTHON_USEDEP}] )
+ profile? ( dev-python/yappi[${PYTHON_USEDEP}] )"
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/pip[${PYTHON_USEDEP}]
+ dev-python/virtualenv[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/timelib[${PYTHON_USEDEP}]
+ >=dev-python/boto-2.32.1[${PYTHON_USEDEP}]
+ >=dev-python/moto-0.3.6[${PYTHON_USEDEP}]
+ >=dev-python/SaltTesting-2015.2.16[${PYTHON_USEDEP}]
+ ${RDEPEND}
+ )"
+
+DOCS=(README.rst AUTHORS)
+
+REQUIRED_USE="|| ( raet zeromq )"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-2015.8.0-remove-pydsl-includes-test.patch"
+ "${FILESDIR}/${PN}-2015.8.0-remove-buggy-tests.patch"
+ "${FILESDIR}/${PN}-2015.5.5-auth-tests.patch"
+ "${FILESDIR}/${PN}-2015.5.5-cron-tests.patch"
+ "${FILESDIR}/${PN}-2015.5.5-remove-buggy-tests.patch"
+)
+
+python_prepare() {
+ # this test fails because it trys to "pip install distribute"
+ rm tests/unit/{modules,states}/zcbuildout_test.py tests/unit/modules/{rh_ip,win_network}_test.py
+}
+
+python_install_all() {
+ local svc
+ USE_SETUPTOOLS=1 distutils-r1_python_install_all
+
+ for svc in minion master syndic api; do
+ newinitd "${FILESDIR}"/${svc}-initd-4 salt-${svc}
+ newconfd "${FILESDIR}"/${svc}-confd-1 salt-${svc}
+ systemd_dounit "${FILESDIR}"/salt-${svc}.service
+ done
+
+ insinto /etc/${PN}
+ doins -r conf/*
+
+ use vim-syntax && S="${WORKDIR}/salt-vim-${SALT_VIM_HASH}" \
+ vim-plugin_src_install
+}
+
+python_test() {
+ # testsuite likes lots of files
+ ulimit -n 3072
+
+ # using ${T} for the TMPDIR makes some tests needs paths that exceed PATH_MAX
+ USE_SETUPTOOLS=1 SHELL="/bin/bash" TMPDIR="/tmp" \
+ ${EPYTHON} tests/runtests.py \
+ --unit-tests --no-report --verbose || die "testing failed"
+}