Exemplo n.º 1
0
    def test_get_application_detail(self, app_mock):
        app_mock.return_value.get_application_runtime_details.return_value = {
            'yarn_ids': []
        }
        repository = Mock()
        package_registrar = Mock()
        application_registrar = Mock()
        application_registrar.get_create_data.return_value = {}
        application_registrar.application_has_record.return_value = True
        application_registrar.get_application.return_value = {
            'overrides': {},
            'defaults': {},
            'name': 'name',
            'package_name': 'package_name',
            'status': ApplicationState.STARTED,
            'information': None
        }
        environment = {
            "namespace": "some_namespace",
            'webhdfs_host': 'webhdfshost',
            'webhdfs_port': 'webhdfsport'
        }
        config = {"deployer_thread_limit": 10}

        dmgr = DeploymentManager(repository, package_registrar,
                                 application_registrar, environment, config)

        self.assertEqual(dmgr.get_application_detail('name'), {
            'name': 'name',
            'status': ApplicationState.STARTED,
            'yarn_ids': []
        })
Exemplo n.º 2
0
    def test_fail_get_detail(self, app_mock):
        app_mock.return_value.get_application_runtime_details.return_value = {
            'yarn_ids': []
        }
        repository = Mock()
        package_registrar = Mock()
        application_registrar = Mock()
        application_registrar.get_create_data.return_value = {}
        application_registrar.application_has_record.return_value = True
        application_registrar.get_application.return_value = {
            'overrides': {
                'user': '******'
            },
            'defaults': {},
            'name': 'name',
            'package_name': 'package_name',
            'status': ApplicationState.NOTCREATED,
            'information': None
        }
        application_summary_registrar = Mock()
        environment = {
            "namespace": "some_namespace",
            'webhdfs_host': 'webhdfshost',
            'webhdfs_port': 'webhdfsport'
        }
        config = {"deployer_thread_limit": 10}

        dmgr = DeploymentManager(repository, package_registrar,
                                 application_registrar,
                                 application_summary_registrar, environment,
                                 config)
        dmgr._get_groups = self._mock_get_groups  #pylint: disable =protected-access

        self.assertRaises(NotFound, dmgr.get_application_detail, 'name',
                          'username')
Exemplo n.º 3
0
    def test_list_repository(self):
        expected_packages = [{
            'latest_versions': [{
                'version': '1.0.26',
                'file': 'spark-batch-example-app-1.0.26.tar.gz'
            }],
            'name':
            'spark-batch-example-app'
        }, {
            'latest_versions': [{
                'version':
                '1.0.30',
                'file':
                'spark-batch-example-app-c-1.0.30.tar.gz'
            }],
            'name':
            'spark-batch-example-app-c'
        }]

        repository = Mock()
        repository.get_package_list.return_value = expected_packages

        package_registrar = Mock()
        application_registrar = Mock()
        environment = {
            "namespace": "some_namespace",
            'webhdfs_host': 'webhdfshost',
            'webhdfs_port': 'webhdfsport'
        }
        config = {"deployer_thread_limit": 10}

        dmgr = DeploymentManager(repository, package_registrar,
                                 application_registrar, environment, config)

        self.assertEqual(dmgr.list_repository(1), expected_packages)
Exemplo n.º 4
0
    def test_application_in_progress(self):
        repository = Mock()
        package_registrar = Mock()
        application_registrar = Mock()
        application_registrar.get_application.return_value = {
            'overrides': {
                'user': '******'
            },
            'defaults': {},
            'name': 'name',
            'package_name': 'package_name',
            'status': ApplicationState.STARTING,
            'information': None
        }
        application_summary_registrar = Mock()
        environment = {
            "namespace": "some_namespace",
            'webhdfs_host': 'webhdfshost',
            'webhdfs_port': 'webhdfsport'
        }
        config = {"deployer_thread_limit": 10}

        dmgr = DeploymentManager(repository, package_registrar,
                                 application_registrar,
                                 application_summary_registrar, environment,
                                 config)
        dmgr._get_groups = self._mock_get_groups  #pylint: disable =protected-access

        self.assertRaises(ConflictingState, dmgr.start_application, "name",
                          'username')
Exemplo n.º 5
0
    def test_get_unknown_package_info(self):
        repository = Mock()
        package_registrar = Mock()
        package_registrar.get_package_deploy_status.return_value = None
        package_registrar.package_exists.return_value = False
        application_registrar = Mock()
        application_summary_registrar = Mock()
        environment = {
            "namespace": "some_namespace",
            'webhdfs_host': 'webhdfshost',
            'webhdfs_port': 'webhdfsport'
        }
        config = {"deployer_thread_limit": 10}

        dmgr = DeploymentManager(repository, package_registrar,
                                 application_registrar,
                                 application_summary_registrar, environment,
                                 config)
        dmgr._get_groups = self._mock_get_groups  #pylint: disable =protected-access

        self.assertEqual(
            dmgr.get_package_info("something-1.0.0", 'username'), {
                'defaults': None,
                'information': None,
                'user': None,
                'name': 'something',
                'status': PackageDeploymentState.NOTDEPLOYED,
                'version': '1.0.0'
            })
    def test_get_environment(self):
        repository = Mock()
        package_registrar = Mock()
        application_registrar = Mock()
        environment = {"namespace": "some_namespace", 'webhdfs_host': 'webhdfshost', 'webhdfs_port': 'webhdfsport'}
        config = {"deployer_thread_limit": 10}

        dmgr = DeploymentManager(repository,
                                 package_registrar,
                                 application_registrar,
                                 environment,
                                 config)

        self.assertEqual(dmgr.get_environment(), environment)
    def test_list_applications(self):
        expected_applications = ['app1', 'app2']

        repository = Mock()
        package_registrar = Mock()
        application_registrar = Mock()
        application_registrar.list_applications.return_value = expected_applications
        environment = {"namespace": "some_namespace", 'webhdfs_host': 'webhdfshost', 'webhdfs_port': 'webhdfsport'}
        config = {"deployer_thread_limit": 10}

        dmgr = DeploymentManager(repository,
                                 package_registrar,
                                 application_registrar,
                                 environment,
                                 config)

        self.assertEqual(dmgr.list_applications(), expected_applications)
Exemplo n.º 8
0
    def test_get_environment(self):
        repository = Mock()
        package_registrar = Mock()
        application_registrar = Mock()
        application_summary_registrar = Mock()
        environment = {
            "namespace": "some_namespace",
            'webhdfs_host': 'webhdfshost',
            'webhdfs_port': 'webhdfsport'
        }
        config = {"deployer_thread_limit": 10}

        dmgr = DeploymentManager(repository, package_registrar,
                                 application_registrar,
                                 application_summary_registrar, environment,
                                 config)
        dmgr._get_groups = self._mock_get_groups  #pylint: disable =protected-access

        self.assertEqual(dmgr.get_environment('username'), environment)
Exemplo n.º 9
0
    def test_get_application_summary(self):
        repository = Mock()
        package_registrar = Mock()
        application_registrar = Mock()
        application_summary_registrar = Mock()
        application_summary_registrar.get_summary_data.return_value = {
            'name': {
                'aggregate_status': 'COMPLETED_WITH_NO_FAILURES',
                'component-1': {}
            }
        }
        application_registrar.application_has_record.return_value = True
        application_registrar.get_application.return_value = {
            'overrides': {
                'user': '******'
            },
            'defaults': {},
            'name': 'name',
            'package_name': 'package_name',
            'status': ApplicationState.NOTCREATED,
            'information': None
        }
        environment = {
            "namespace": "some_namespace",
            'webhdfs_host': 'webhdfshost',
            'webhdfs_port': 'webhdfsport'
        }
        config = {"deployer_thread_limit": 10}

        dmgr = DeploymentManager(repository, package_registrar,
                                 application_registrar,
                                 application_summary_registrar, environment,
                                 config)
        dmgr._get_groups = self._mock_get_groups  #pylint: disable =protected-access

        self.assertEqual(
            dmgr.get_application_summary('name', 'username'), {
                'name': {
                    'aggregate_status': 'COMPLETED_WITH_NO_FAILURES',
                    'component-1': {}
                }
            })
Exemplo n.º 10
0
    def test_package_not_exists(self):
        repository = Mock()
        package_registrar = Mock()
        package_registrar.get_package_deploy_status.return_value = None
        package_registrar.package_exists.return_value = False
        application_registrar = Mock()
        application_summary_registrar = Mock()
        environment = {
            "namespace": "some_namespace",
            'webhdfs_host': 'webhdfshost',
            'webhdfs_port': 'webhdfsport'
        }
        config = {"deployer_thread_limit": 10}
        dmgr = DeploymentManager(repository, package_registrar,
                                 application_registrar,
                                 application_summary_registrar, environment,
                                 config)
        dmgr._get_groups = self._mock_get_groups  #pylint: disable =protected-access

        self.assertRaises(NotFound, dmgr.undeploy_package, "name", "username")
Exemplo n.º 11
0
    def test_list_packages(self):
        expected_packages = ['package-1.0.0', 'another-2.1.2']

        repository = Mock()
        package_registrar = Mock()
        package_registrar.list_packages.return_value = expected_packages
        application_registrar = Mock()
        application_summary_registrar = Mock()
        environment = {
            "namespace": "some_namespace",
            'webhdfs_host': 'webhdfshost',
            'webhdfs_port': 'webhdfsport'
        }
        config = {"deployer_thread_limit": 10}

        dmgr = DeploymentManager(repository, package_registrar,
                                 application_registrar,
                                 application_summary_registrar, environment,
                                 config)
        dmgr._get_groups = self._mock_get_groups  #pylint: disable =protected-access

        self.assertEqual(dmgr.list_packages('username'), expected_packages)
    def test_package_not_exists(self):
        repository = Mock()
        package_registrar = Mock()
        package_registrar.get_package_deploy_status.return_value = None
        package_registrar.package_exists.return_value = False
        application_registrar = Mock()
        environment = {"namespace": "some_namespace", 'webhdfs_host': 'webhdfshost', 'webhdfs_port': 'webhdfsport'}
        config = {"deployer_thread_limit": 10}
        dmgr = DeploymentManager(repository,
                                 package_registrar,
                                 application_registrar,
                                 environment,
                                 config)

        self.assertRaises(NotFound, dmgr.undeploy_package, "name")