Exemple #1
0
    def test_package_validator_redhat(self):
        cls = images.SaharaPackageValidator
        image_arguments = {"distro": 'centos'}

        packages = [cls.Package("java", "8")]
        validator = images.SaharaPackageValidator(packages)
        remote = mock.Mock()
        validator.validate(remote,
                           reconcile=False,
                           image_arguments=image_arguments)
        remote.execute_command.assert_called_with("rpm -q java-8",
                                                  run_as_root=True)

        image_arguments = {"distro": 'fedora'}
        packages = [cls.Package("java", "8"), cls.Package("hadoop")]
        validator = images.SaharaPackageValidator(packages)
        remote = mock.Mock()
        remote.execute_command.side_effect = (
            ex.RemoteCommandException("So bad!"))
        try:
            validator.validate(remote,
                               reconcile=False,
                               image_arguments=image_arguments)
        except p_ex.ImageValidationError as e:
            self.assertIn("So bad!", e.message)
        remote.execute_command.assert_called_with("rpm -q java-8 hadoop",
                                                  run_as_root=True)
        self.assertEqual(remote.execute_command.call_count, 1)

        image_arguments = {"distro": 'redhatenterpriseserver'}
        packages = [cls.Package("java", "8"), cls.Package("hadoop")]
        validator = images.SaharaPackageValidator(packages)
        remote = mock.Mock()

        def side_effect(call, run_as_root=False):
            if "rpm" in call:
                raise ex.RemoteCommandException("So bad!")

        remote.execute_command.side_effect = side_effect
        try:
            validator.validate(remote,
                               reconcile=True,
                               image_arguments=image_arguments)
        except p_ex.ImageValidationError as e:
            self.assertIn("So bad!", e.message)
        self.assertEqual(remote.execute_command.call_count, 3)
        calls = [
            mock.call("rpm -q java-8 hadoop", run_as_root=True),
            mock.call("yum install -y java-8 hadoop", run_as_root=True),
            mock.call("rpm -q java-8 hadoop", run_as_root=True)
        ]
        remote.execute_command.assert_has_calls(calls)
Exemple #2
0
    def test_package_validator_debian(self):
        cls = images.SaharaPackageValidator
        image_arguments = {"distro": 'ubuntu'}

        packages = [cls.Package("java", "8")]
        validator = images.SaharaPackageValidator(packages)
        remote = mock.Mock()
        validator.validate(remote,
                           test_only=True,
                           image_arguments=image_arguments)
        remote.execute_command.assert_called_with("dpkg -s java-8",
                                                  run_as_root=True)

        image_arguments = {"distro": 'ubuntu'}
        packages = [cls.Package("java", "8"), cls.Package("hadoop")]
        validator = images.SaharaPackageValidator(packages)
        remote = mock.Mock()
        remote.execute_command.side_effect = (
            ex.RemoteCommandException("So bad!"))
        try:
            validator.validate(remote,
                               test_only=True,
                               image_arguments=image_arguments)
        except p_ex.ImageValidationError as e:
            self.assertIn("So bad!", e.message)
        remote.execute_command.assert_called_with("dpkg -s java-8 hadoop",
                                                  run_as_root=True)
        self.assertEqual(remote.execute_command.call_count, 1)

        image_arguments = {"distro": 'ubuntu'}
        packages = [cls.Package("java", "8"), cls.Package("hadoop")]
        validator = images.SaharaPackageValidator(packages)
        remote = mock.Mock()
        remote.execute_command.side_effect = (
            ex.RemoteCommandException("So bad!"))
        try:
            validator.validate(remote,
                               test_only=False,
                               image_arguments=image_arguments)
        except p_ex.ImageValidationError as e:
            self.assertIn("So bad!", e.message)
        self.assertEqual(remote.execute_command.call_count, 2)
        calls = [
            mock.call("dpkg -s java-8 hadoop", run_as_root=True),
            mock.call("DEBIAN_FRONTEND=noninteractive " +
                      "apt-get -y install java-8 hadoop",
                      run_as_root=True)
        ]
        remote.execute_command.assert_has_calls(calls)
Exemple #3
0
    def test_package_validator_debian(self):
        cls = images.SaharaPackageValidator
        env_map = {"SIV_DISTRO": 'ubuntu'}

        packages = [cls.Package("java", "8")]
        validator = images.SaharaPackageValidator(packages)
        remote = mock.Mock()
        validator.validate(remote, reconcile=False, env_map=env_map)
        remote.execute_command.assert_called_with("dpkg -s java-8",
                                                  run_as_root=True)

        env_map = {"SIV_DISTRO": 'ubuntu'}
        packages = [cls.Package("java", "8"), cls.Package("hadoop")]
        validator = images.SaharaPackageValidator(packages)
        remote = mock.Mock()
        remote.execute_command.side_effect = (
            ex.RemoteCommandException("So bad!"))
        try:
            validator.validate(remote, reconcile=False, env_map=env_map)
        except p_ex.ImageValidationError as e:
            self.assertIn("So bad!", e.message)
        remote.execute_command.assert_called_with("dpkg -s java-8 hadoop",
                                                  run_as_root=True)
        self.assertEqual(remote.execute_command.call_count, 1)

        env_map = {"SIV_DISTRO": 'ubuntu'}
        packages = [cls.Package("java", "8"), cls.Package("hadoop")]
        validator = images.SaharaPackageValidator(packages)
        remote = mock.Mock()
        remote.execute_command.side_effect = (
            ex.RemoteCommandException("So bad!"))
        try:
            validator.validate(remote, reconcile=True, env_map=env_map)
        except p_ex.ImageValidationError as e:
            self.assertIn("So bad!", e.message)
        self.assertEqual(remote.execute_command.call_count, 2)
        calls = [
            mock.call("dpkg -s java-8 hadoop", run_as_root=True),
            mock.call("apt-get -y install java-8 hadoop", run_as_root=True)
        ]
        remote.execute_command.assert_has_calls(calls)