Beispiel #1
0
    def test_main_fails(self):

        log = StringIO.StringIO()

        #fail on ci version
        pkg_resources.get_distribution('cloud-init').AndReturn(
            FakeCiVersion('0.5.0'))

        #fail on execute cfn-userdata
        pkg_resources.get_distribution('cloud-init').AndReturn(
            FakeCiVersion('0.7.0'))

        os.chmod('/var/lib/cloud/data/cfn-userdata', 0700).AndReturn(None)
        subprocess.Popen(
            ['/var/lib/cloud/data/cfn-userdata'],
            stderr=log,
            stdout=log).AndReturn(FakePOpen(-2))

        #fail on create directories
        pkg_resources.get_distribution('cloud-init').AndReturn(
            FakeCiVersion('0.7.0'))

        os.chmod('/var/lib/cloud/data/cfn-userdata', 0700).AndReturn(None)
        subprocess.Popen(
            ['/var/lib/cloud/data/cfn-userdata'],
            stderr=log,
            stdout=log).AndReturn(FakePOpen(0))
        os.makedirs('/var/lib/heat', 0700).AndRaise(OSError())

        self.m.ReplayAll()
        self.assertEqual(-1, loguserdata.main(log))
        self.assertEqual(-2, loguserdata.main(log))
        self.assertRaises(OSError, loguserdata.main, log)

        self.m.VerifyAll()
Beispiel #2
0
    def test_main(self):

        pkg_resources.get_distribution("cloud-init").AndReturn(FakeCiVersion("0.7.0"))

        os.chmod("/var/lib/heat-cfntools/cfn-userdata", 0o700).AndReturn(None)
        subprocess.Popen(
            ["/var/lib/heat-cfntools/cfn-userdata"], stderr=mox.IgnoreArg(), stdout=mox.IgnoreArg()
        ).AndReturn(FakePOpen(0))

        self.m.ReplayAll()
        loguserdata.main()
        self.m.VerifyAll()
Beispiel #3
0
    def test_main(self):

        pkg_resources.get_distribution('cloud-init').AndReturn(
            FakeCiVersion('0.7.0'))

        subprocess.Popen(
            ['/var/lib/heat-cfntools/cfn-userdata'],
            stderr=mox.IgnoreArg(),
            stdout=mox.IgnoreArg()).AndReturn(FakePOpen(0))

        self.m.ReplayAll()
        loguserdata.main()
        self.m.VerifyAll()
Beispiel #4
0
    def test_main(self):

        pkg_resources.get_distribution('cloud-init').AndReturn(
            FakeCiVersion('0.7.0'))

        os.chmod('/var/lib/heat-cfntools/cfn-userdata', 0o700).AndReturn(None)
        subprocess.Popen(['/var/lib/heat-cfntools/cfn-userdata'],
                         stderr=mox.IgnoreArg(),
                         stdout=mox.IgnoreArg()).AndReturn(FakePOpen(0))

        self.m.ReplayAll()
        loguserdata.main()
        self.m.VerifyAll()
Beispiel #5
0
    def test_main(self):

        log = StringIO.StringIO()
        pkg_resources.get_distribution('cloud-init').AndReturn(
            FakeCiVersion('0.7.0'))

        os.chmod('/var/lib/heat-cfntools/cfn-userdata', 0700).AndReturn(None)
        subprocess.Popen(['/var/lib/heat-cfntools/cfn-userdata'],
                         stderr=log,
                         stdout=log).AndReturn(FakePOpen(0))

        self.m.ReplayAll()
        loguserdata.main(log)
        self.m.VerifyAll()
Beispiel #6
0
    def test_main_error_other(self):
        pkg_resources.get_distribution('cloud-init').AndReturn(
            FakeCiVersion('0.7.0'))
        os.chmod('/var/lib/heat-cfntools/cfn-userdata', 0o700).AndReturn(None)
        subprocess.Popen(['/var/lib/heat-cfntools/cfn-userdata'],
                         stderr=mox.IgnoreArg(),
                         stdout=mox.IgnoreArg()).AndRaise(
                             IOError("read failed"))

        self.m.ReplayAll()
        if six.PY3:
            self.assertEqual(os.EX_OSERR, loguserdata.main())
        else:
            self.assertEqual(os.EX_SOFTWARE, loguserdata.main())
        self.m.VerifyAll()
Beispiel #7
0
    def test_main(self):

        log = StringIO.StringIO()
        pkg_resources.get_distribution('cloud-init').AndReturn(
            FakeCiVersion('0.7.0'))

        os.chmod('/var/lib/heat-cfntools/cfn-userdata', 0700).AndReturn(None)
        subprocess.Popen(
            ['/var/lib/heat-cfntools/cfn-userdata'],
            stderr=log,
            stdout=log).AndReturn(FakePOpen(0))

        self.m.ReplayAll()
        loguserdata.main(log)
        self.m.VerifyAll()
    def test_main_error_other(self):
        pkg_resources.get_distribution('cloud-init').AndReturn(
            FakeCiVersion('0.7.0'))
        os.chmod('/var/lib/heat-cfntools/cfn-userdata', 0o700).AndReturn(None)
        subprocess.Popen(
            ['/var/lib/heat-cfntools/cfn-userdata'],
            stderr=mox.IgnoreArg(),
            stdout=mox.IgnoreArg()).AndRaise(IOError("read failed"))

        self.m.ReplayAll()
        if six.PY3:
            self.assertEqual(os.EX_OSERR, loguserdata.main())
        else:
            self.assertEqual(os.EX_SOFTWARE, loguserdata.main())
        self.m.VerifyAll()
Beispiel #9
0
    def test_main_fails(self):

        # fail on ci version
        pkg_resources.get_distribution("cloud-init").AndReturn(FakeCiVersion("0.5.0"))
        # fail on execute cfn-userdata
        pkg_resources.get_distribution("cloud-init").AndReturn(FakeCiVersion("0.7.0"))

        os.chmod("/var/lib/heat-cfntools/cfn-userdata", 0o700).AndReturn(None)
        subprocess.Popen(
            ["/var/lib/heat-cfntools/cfn-userdata"], stderr=mox.IgnoreArg(), stdout=mox.IgnoreArg()
        ).AndReturn(FakePOpen(-2))

        self.m.ReplayAll()
        self.assertEqual(-1, loguserdata.main())
        self.assertEqual(-2, loguserdata.main())
        self.m.VerifyAll()
Beispiel #10
0
    def test_main_failed_ci_version(self, mock_get):
        # Setup
        mock_get.return_value = FakeCiVersion('0.0.0')

        # Test
        return_code = loguserdata.main()

        # Verify
        self.assertEqual(-1, return_code)
Beispiel #11
0
    def test_main_fails(self):

        #fail on ci version
        pkg_resources.get_distribution('cloud-init').AndReturn(
            FakeCiVersion('0.5.0'))
        #fail on execute cfn-userdata
        pkg_resources.get_distribution('cloud-init').AndReturn(
            FakeCiVersion('0.7.0'))

        os.chmod('/var/lib/heat-cfntools/cfn-userdata', 0o700).AndReturn(None)
        subprocess.Popen(['/var/lib/heat-cfntools/cfn-userdata'],
                         stderr=mox.IgnoreArg(),
                         stdout=mox.IgnoreArg()).AndReturn(FakePOpen(-2))

        self.m.ReplayAll()
        self.assertEqual(-1, loguserdata.main())
        self.assertEqual(-2, loguserdata.main())
        self.m.VerifyAll()
Beispiel #12
0
    def test_main_failed_ci_version(self, mock_get):
        # Setup
        mock_get.return_value = FakeCiVersion('0.0.0')

        # Test
        return_code = loguserdata.main()

        # Verify
        self.assertEqual(-1, return_code)
Beispiel #13
0
    def test_main_error_other(self):
        pkg_resources.get_distribution("cloud-init").AndReturn(FakeCiVersion("0.7.0"))
        os.chmod("/var/lib/heat-cfntools/cfn-userdata", 0700).AndReturn(None)
        subprocess.Popen(
            ["/var/lib/heat-cfntools/cfn-userdata"], stderr=mox.IgnoreArg(), stdout=mox.IgnoreArg()
        ).AndRaise(IOError("read failed"))

        self.m.ReplayAll()
        self.assertEqual(os.EX_SOFTWARE, loguserdata.main())
        self.m.VerifyAll()
Beispiel #14
0
    def test_main_error_other(self):
        log = StringIO.StringIO()
        pkg_resources.get_distribution('cloud-init').AndReturn(
            FakeCiVersion('0.7.0'))
        os.chmod('/var/lib/heat-cfntools/cfn-userdata', 0700).AndReturn(None)
        subprocess.Popen(['/var/lib/heat-cfntools/cfn-userdata'],
                         stderr=log,
                         stdout=log).AndRaise(IOError("read failed"))

        self.m.ReplayAll()
        self.assertEqual(os.EX_SOFTWARE, loguserdata.main(log))
        self.m.VerifyAll()
Beispiel #15
0
    def test_main(self, mock_call, mock_chmod, mock_get):
        # Setup
        mock_get.return_value = FakeCiVersion('1.0')
        mock_call.return_value = 10

        # Test
        return_code = loguserdata.main()

        # Verify
        expected_path = os.path.join(loguserdata.VAR_PATH, 'cfn-userdata')
        mock_chmod.assert_called_once_with(expected_path, int('700', 8))
        self.assertEqual(10, return_code)
Beispiel #16
0
    def test_main(self, mock_call, mock_chmod, mock_get):
        # Setup
        mock_get.return_value = FakeCiVersion('1.0')
        mock_call.return_value = 10

        # Test
        return_code = loguserdata.main()

        # Verify
        expected_path = os.path.join(loguserdata.VAR_PATH, 'cfn-userdata')
        mock_chmod.assert_called_once_with(expected_path, int('700', 8))
        self.assertEqual(10, return_code)
Beispiel #17
0
    def test_main_script_empty(self):

        pkg_resources.get_distribution("cloud-init").AndReturn(FakeCiVersion("0.7.0"))

        os.chmod("/var/lib/heat-cfntools/cfn-userdata", 0o700).AndReturn(None)
        subprocess.Popen(
            ["/var/lib/heat-cfntools/cfn-userdata"], stderr=mox.IgnoreArg(), stdout=mox.IgnoreArg()
        ).AndRaise(OSError(errno.ENOEXEC, "empty script"))

        self.m.ReplayAll()
        self.assertIsNone(loguserdata.main())

        self.m.VerifyAll()
Beispiel #18
0
    def test_main_error_other(self):
        log = StringIO.StringIO()
        pkg_resources.get_distribution('cloud-init').AndReturn(
            FakeCiVersion('0.7.0'))
        os.chmod('/var/lib/heat-cfntools/cfn-userdata', 0700).AndReturn(None)
        subprocess.Popen(
            ['/var/lib/heat-cfntools/cfn-userdata'],
            stderr=log,
            stdout=log).AndRaise(IOError("read failed"))

        self.m.ReplayAll()
        self.assertEqual(os.EX_SOFTWARE, loguserdata.main(log))
        self.m.VerifyAll()
Beispiel #19
0
    def test_main_os_error(self):

        pkg_resources.get_distribution("cloud-init").AndReturn(FakeCiVersion("0.7.0"))

        os.chmod("/var/lib/heat-cfntools/cfn-userdata", 0o700).AndReturn(None)
        subprocess.Popen(
            ["/var/lib/heat-cfntools/cfn-userdata"], stderr=mox.IgnoreArg(), stdout=mox.IgnoreArg()
        ).AndRaise(OSError(errno.ENOENT, "no such file"))

        self.m.ReplayAll()
        self.assertEqual(os.EX_OSERR, loguserdata.main())

        self.m.VerifyAll()
Beispiel #20
0
    def test_main_os_error(self):

        pkg_resources.get_distribution('cloud-init').AndReturn(
            FakeCiVersion('0.7.0'))

        os.chmod('/var/lib/heat-cfntools/cfn-userdata', 0o700).AndReturn(None)
        subprocess.Popen(['/var/lib/heat-cfntools/cfn-userdata'],
                         stderr=mox.IgnoreArg(),
                         stdout=mox.IgnoreArg()).AndRaise(
                             OSError(errno.ENOENT, "no such file"))

        self.m.ReplayAll()
        self.assertEqual(os.EX_OSERR, loguserdata.main())

        self.m.VerifyAll()
Beispiel #21
0
    def test_main_script_empty(self):

        pkg_resources.get_distribution('cloud-init').AndReturn(
            FakeCiVersion('0.7.0'))

        subprocess.Popen(
            ['/var/lib/heat-cfntools/cfn-userdata'],
            stderr=mox.IgnoreArg(),
            stdout=mox.IgnoreArg()).AndRaise(
                OSError(errno.ENOEXEC, "empty script"))

        self.m.ReplayAll()
        self.assertEqual(None, loguserdata.main())

        self.m.VerifyAll()
Beispiel #22
0
    def test_main_script_empty(self):

        pkg_resources.get_distribution('cloud-init').AndReturn(
            FakeCiVersion('0.7.0'))

        os.chmod('/var/lib/heat-cfntools/cfn-userdata', 0o700).AndReturn(None)
        subprocess.Popen(['/var/lib/heat-cfntools/cfn-userdata'],
                         stderr=mox.IgnoreArg(),
                         stdout=mox.IgnoreArg()).AndRaise(
                             OSError(errno.ENOEXEC, "empty script"))

        self.m.ReplayAll()
        self.assertIsNone(loguserdata.main())

        self.m.VerifyAll()
Beispiel #23
0
    def test_main_os_error(self):

        log = StringIO.StringIO()

        pkg_resources.get_distribution('cloud-init').AndReturn(
            FakeCiVersion('0.7.0'))

        os.chmod('/var/lib/heat-cfntools/cfn-userdata', 0700).AndReturn(None)
        subprocess.Popen(
            ['/var/lib/heat-cfntools/cfn-userdata'],
            stderr=log,
            stdout=log).AndRaise(OSError(errno.ENOENT, "no such file"))

        self.m.ReplayAll()
        self.assertEqual(os.EX_OSERR, loguserdata.main(log))

        self.m.VerifyAll()
Beispiel #24
0
    def test_main_script_empty(self):

        log = StringIO.StringIO()

        pkg_resources.get_distribution('cloud-init').AndReturn(
            FakeCiVersion('0.7.0'))

        os.chmod('/var/lib/heat-cfntools/cfn-userdata', 0700).AndReturn(None)
        subprocess.Popen(['/var/lib/heat-cfntools/cfn-userdata'],
                         stderr=log,
                         stdout=log).AndRaise(
                             OSError(errno.ENOEXEC, "empty script"))

        self.m.ReplayAll()
        self.assertEqual(None, loguserdata.main(log))

        self.m.VerifyAll()