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': [] })
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')
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)
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')
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)
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)
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': {} } })
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")
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")