diff --git a/tests/integration/files/file/base/pkgrepo/absent.sls b/tests/integration/files/file/base/pkgrepo/absent.sls new file mode 100644 index 0000000000..fac67dc5b5 --- /dev/null +++ b/tests/integration/files/file/base/pkgrepo/absent.sls @@ -0,0 +1,17 @@ +{% if grains['os'] == 'CentOS' %} + +# START CentOS pkgrepo tests +epel-salttest: + pkgrepo: + - absent +# END CentOS pkgrepo tests + +{% else %} + +# No matching OS grain for pkgrepo management, just run something that will +# return a True result +date: + cmd: + - run + +{% endif %} diff --git a/tests/integration/files/file/base/pkgrepo/files/RPM-GPG-KEY-EPEL-5-salttest b/tests/integration/files/file/base/pkgrepo/files/RPM-GPG-KEY-EPEL-5-salttest new file mode 100644 index 0000000000..5a13bb4f9f --- /dev/null +++ b/tests/integration/files/file/base/pkgrepo/files/RPM-GPG-KEY-EPEL-5-salttest @@ -0,0 +1,30 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.2.6 (GNU/Linux) + +mQGiBEXopTIRBACZDBMOoFOakAjaxw1LXjeSvh/kmE35fU1rXfM7T0AV31NATCLF +l5CQiNDA4oWreDThg2Bf6+LIVTsGQb1V+XXuLak4Em5yTYwMTVB//4/nMxQEbpl/ +QB2XwlJ7EQ0vW+kiPDz/7pHJz1p1jADzd9sQQicMtzysS4qT2i5A23j0VwCg1PB/ +lpYqo0ZhWTrevxKMa1n34FcD/REavj0hSLQFTaKNLHRotRTF8V0BajjSaTkUT4uk +/RTaZ8Kr1mTosVtosqmdIAA2XHxi8ZLiVPPSezJjfElsSqOAxEKPL0djfpp2wrTm +l/1iVnX+PZH5DRKCbjdCMLDJhYap7YUhcPsMGSeUKrwmBCBJUPc6DhjFvyhA9IMl +1T0+A/9SKTv94ToP/JYoCTHTgnG5MoVNafisfe0wojP2mWU4gRk8X4dNGKMj6lic +vM6gne3hESyjcqZSmr7yELPPGhI9MNauJ6Ob8cTR2T12Fmv9w03DD3MnBstR6vhP +QcqZKhc5SJYYY7oVfxlSOfF4xfwcHQKoD5TOKwIAQ6T8jyFpKbQkRmVkb3JhIEVQ +RUwgPGVwZWxAZmVkb3JhcHJvamVjdC5vcmc+iGQEExECACQFAkXopTICGwMFCRLM +AwAGCwkIBwMCAxUCAwMWAgECHgECF4AACgkQEZzANiF1IfabmQCgzvE60MnHSOBa +ZXXF7uU2Vzu8EOkAoKg9h+j0NuNom6WUYZyJQt4zc5seuQINBEXopTYQCADapnR/ +blrJ8FhlgNPl0X9S3JE/kygPbNXIqne4XBVYisVp0uzNCRUxNZq30MpY027JCs2J +nL2fMpwvx33f0phU029vrIZKA3CmnnwVsjcWfMJOVPBmVN7m5bGU68F+PdRIcDsl +PMOWRLkTBZOGolLgIbM4719fqA8etewILrX6uPvRDwywV7/sPCFpRcfNNBUY+Zx3 +5bf4fnkaCKxgXgQS3AT+hGYhlzIqQVTkGNveHTnt4SSzgAqR9sSwQwqvEfVtYNeS +w5rDguLG41HQm1Hojv59HNYjH6F/S1rClZi21bLgZbKpCFX76qPt8CTw+iQLBPPd +yoOGHfzyp7nsfhUrAAMFB/9/H9Gpk822ZpBexQW4y3LGFo9ZSnmu+ueOZPU3SqDA +DW1ovZdYzGuJTGGM9oMl6bL8eZrcUBBOFaWge5wZczIE3hx2exEOkDdvq+MUDVD1 +axmN45q/7h1NYRp5GQL2ZsoV4g9U2gMdzHOFtZCER6PP9ErVlfJpgBUCdSL93V4H +Sgpkk7znmTOklbCM6l/G/A6q4sCRqfzHwVSTiruyTBiU9lfROsAl8fjIq2OzWJ2T +P9sadBe1llUYaow7txYSUxssW+89avct35gIyrBbof5M+CBXyAOUaSWmpM2eub24 +0qbqiSr/Y6Om0t6vSzR8gRk7g+1H6IE0Tt1IJCvCAMimiE8EGBECAA8FAkXopTYC +GwwFCRLMAwAACgkQEZzANiF1IfZQYgCgiZHCv4xb+sTHCn/otc1Ovvi/OgMAnRXY +bbsLFWOfmzAnNIGvFRWy+YHi +=MMNL +-----END PGP PUBLIC KEY BLOCK----- diff --git a/tests/integration/files/file/base/pkgrepo/files/RPM-GPG-KEY-EPEL-6-salttest b/tests/integration/files/file/base/pkgrepo/files/RPM-GPG-KEY-EPEL-6-salttest new file mode 100644 index 0000000000..7a2030489d --- /dev/null +++ b/tests/integration/files/file/base/pkgrepo/files/RPM-GPG-KEY-EPEL-6-salttest @@ -0,0 +1,29 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.5 (GNU/Linux) + +mQINBEvSKUIBEADLGnUj24ZVKW7liFN/JA5CgtzlNnKs7sBg7fVbNWryiE3URbn1 +JXvrdwHtkKyY96/ifZ1Ld3lE2gOF61bGZ2CWwJNee76Sp9Z+isP8RQXbG5jwj/4B +M9HK7phktqFVJ8VbY2jfTjcfxRvGM8YBwXF8hx0CDZURAjvf1xRSQJ7iAo58qcHn +XtxOAvQmAbR9z6Q/h/D+Y/PhoIJp1OV4VNHCbCs9M7HUVBpgC53PDcTUQuwcgeY6 +pQgo9eT1eLNSZVrJ5Bctivl1UcD6P6CIGkkeT2gNhqindRPngUXGXW7Qzoefe+fV +QqJSm7Tq2q9oqVZ46J964waCRItRySpuW5dxZO34WM6wsw2BP2MlACbH4l3luqtp +Xo3Bvfnk+HAFH3HcMuwdaulxv7zYKXCfNoSfgrpEfo2Ex4Im/I3WdtwME/Gbnwdq +3VJzgAxLVFhczDHwNkjmIdPAlNJ9/ixRjip4dgZtW8VcBCrNoL+LhDrIfjvnLdRu +vBHy9P3sCF7FZycaHlMWP6RiLtHnEMGcbZ8QpQHi2dReU1wyr9QgguGU+jqSXYar +1yEcsdRGasppNIZ8+Qawbm/a4doT10TEtPArhSoHlwbvqTDYjtfV92lC/2iwgO6g +YgG9XrO4V8dV39Ffm7oLFfvTbg5mv4Q/E6AWo/gkjmtxkculbyAvjFtYAQARAQAB +tCFFUEVMICg2KSA8ZXBlbEBmZWRvcmFwcm9qZWN0Lm9yZz6JAjYEEwECACAFAkvS +KUICGw8GCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRA7Sd8qBgi4lR/GD/wLGPv9 +qO39eyb9NlrwfKdUEo1tHxKdrhNz+XYrO4yVDTBZRPSuvL2yaoeSIhQOKhNPfEgT +9mdsbsgcfmoHxmGVcn+lbheWsSvcgrXuz0gLt8TGGKGGROAoLXpuUsb1HNtKEOwP +Q4z1uQ2nOz5hLRyDOV0I2LwYV8BjGIjBKUMFEUxFTsL7XOZkrAg/WbTH2PW3hrfS +WtcRA7EYonI3B80d39ffws7SmyKbS5PmZjqOPuTvV2F0tMhKIhncBwoojWZPExft +HpKhzKVh8fdDO/3P1y1Fk3Cin8UbCO9MWMFNR27fVzCANlEPljsHA+3Ez4F7uboF +p0OOEov4Yyi4BEbgqZnthTG4ub9nyiupIZ3ckPHr3nVcDUGcL6lQD/nkmNVIeLYP +x1uHPOSlWfuojAYgzRH6LL7Idg4FHHBA0to7FW8dQXFIOyNiJFAOT2j8P5+tVdq8 +wB0PDSH8yRpn4HdJ9RYquau4OkjluxOWf0uRaS//SUcCZh+1/KBEOmcvBHYRZA5J +l/nakCgxGb2paQOzqqpOcHKvlyLuzO5uybMXaipLExTGJXBlXrbbASfXa/yGYSAG +iVrGz9CE6676dMlm8F+s3XXE13QZrXmjloc6jwOljnfAkjTGXjiB7OULESed96MR +XtfLk0W5Ab9pd7tKDR6QHI7rgHXfCopRnZ2VVQ== +=V/6I +-----END PGP PUBLIC KEY BLOCK----- diff --git a/tests/integration/files/file/base/pkgrepo/managed.sls b/tests/integration/files/file/base/pkgrepo/managed.sls new file mode 100644 index 0000000000..b4c5b5a19f --- /dev/null +++ b/tests/integration/files/file/base/pkgrepo/managed.sls @@ -0,0 +1,55 @@ +{% if grains['os'] == 'CentOS' %} + +# START CentOS pkgrepo tests +{% if grains['osrelease'].startswith('6.') %} +epel-salttest: + pkgrepo.managed: + - humanname: Extra Packages for Enterprise Linux 6 - $basearch (salttest) + - comments: + - '#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch' + - mirrorlist: https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch + - failovermethod: priority + - enabled: 1 + - gpgcheck: 1 + - gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6-salttest + - require: + - file: /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6-salttest + +/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6-salttest: + file.managed: + - source: salt://pkgrepo/files/RPM-GPG-KEY-EPEL-6-salttest + - user: root + - group: root + - mode: 644 +{% elif grains['osrelease'].startswith('5.') %} +epel-salttest: + pkgrepo.managed: + - humanname: Extra Packages for Enterprise Linux 5 - $basearch (salttest) + - comments: + - '#baseurl=http://download.fedoraproject.org/pub/epel/5/$basearch' + - mirrorlist: http://mirrors.fedoraproject.org/mirrorlist?repo=epel-5&arch=$basearch + - failovermethod: priority + - enabled: 1 + - gpgcheck: 1 + - gpgkey: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-5-salttest + - require: + - file: /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-5-salttest + +/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-5-salttest: + file.managed: + - source: salt://pkgrepo/files/RPM-GPG-KEY-EPEL-5-salttest + - user: root + - group: root + - mode: 644 +{% endif %} +# END CentOS pkgrepo tests + +{% else %} + +# No matching OS grain for pkgrepo management, just run something that will +# return a True result +date: + cmd: + - run + +{% endif %} diff --git a/tests/integration/states/pkgrepo.py b/tests/integration/states/pkgrepo.py new file mode 100644 index 0000000000..a68e18e6e1 --- /dev/null +++ b/tests/integration/states/pkgrepo.py @@ -0,0 +1,55 @@ +''' +tests for pkgrepo states +''' + +# Import Salt Testing libs +from salttesting import skipIf +from salttesting.helpers import ( + destructiveTest, + ensure_in_syspath, +) +ensure_in_syspath('../../') + +# Import salt libs +import integration +import salt.utils + + +class PkgrepoTest(integration.ModuleCase, + integration.SaltReturnAssertsMixIn): + ''' + pkgrepo state tests + ''' + @destructiveTest + @skipIf(salt.utils.is_windows(), 'minion is windows') + def test_pkgrepo_01_managed(self): + ''' + This is a destructive test as it adds a repository. + ''' + ret = self.run_function('state.sls', mods='pkgrepo.managed') + # If the below assert fails then no states were run, and the SLS in + # tests/integration/files/file/base/pkgrepo/managed.sls needs to be + # corrected. + self.assertReturnNonEmptySaltType(ret) + for state_id, state_result in ret.iteritems(): + self.assertSaltTrueReturn(dict([(state_id, state_result)])) + + @destructiveTest + @skipIf(salt.utils.is_windows(), 'minion is windows') + def test_pkgrepo_02_absent(self): + ''' + This is a destructive test as it removes the repository added in the + above test. + ''' + ret = self.run_function('state.sls', mods='pkgrepo.absent') + # If the below assert fails then no states were run, and the SLS in + # tests/integration/files/file/base/pkgrepo/absent.sls needs to be + # corrected. + self.assertReturnNonEmptySaltType(ret) + for state_id, state_result in ret.iteritems(): + self.assertSaltTrueReturn(dict([(state_id, state_result)])) + + +if __name__ == '__main__': + from integration import run_tests + run_tests(PkgrepoTest)