def scale_cluster(cluster, instances): if not instances: return if not cmd.is_pre_installed_cdh(instances[0].remote()): _configure_os(instances) _install_packages(instances, PACKAGES) _start_cloudera_agents(instances) _await_agents(instances) for instance in instances: _configure_instance(instance) cu.update_configs(instance) if 'DATANODE' in instance.node_group.node_processes: cu.refresh_nodes(cluster, 'DATANODE', cu.HDFS_SERVICE_NAME) _configure_swift_to_inst(instance) if 'DATANODE' in instance.node_group.node_processes: hdfs = cu.get_service('DATANODE', instance=instance) cu.start_roles(hdfs, cu.get_role_name(instance, 'DATANODE')) if 'NODEMANAGER' in instance.node_group.node_processes: yarn = cu.get_service('NODEMANAGER', instance=instance) cu.start_roles(yarn, cu.get_role_name(instance, 'NODEMANAGER'))
def _add_role(instance, process): if process in ["MANAGER"]: return service = cu.get_service(process, instance=instance) role = service.create_role(cu.get_role_name(instance, process), process, instance.fqdn()) role.update_config(_get_configs(process, node_group=instance.node_group))
def _add_role(instance, process): if process in ['MANAGER']: return service = cu.get_service(process, instance=instance) role = service.create_role(cu.get_role_name(instance, process), process, instance.fqdn()) role.update_config(_get_configs(process, node_group=instance.node_group))
def _add_role(instance, process): if process in ['CLOUDERA_MANAGER']: return process = pu.convert_role_showname(process) service = cu.get_service(process, instance=instance) role = service.create_role(cu.get_role_name(instance, process), process, instance.fqdn()) role.update_config(_get_configs(process, node_group=instance.node_group))
def test_get_service(self, mock_get_cl_cluster): self.assertRaises(ValueError, cu.get_service, 'NAMENODE') cluster = ctu.get_fake_cluster() inst = cluster.node_groups[0].instances[0] mock_get_cl_cluster.return_value = None self.assertRaises(ValueError, cu.get_service, 'spam', cluster) self.assertRaises(ValueError, cu.get_service, 'spam', instance=inst) mock_get_cl_cluster.reset_mock() mock_get_service = mock.MagicMock() mock_get_service.get_service.return_value = mock.Mock() mock_get_cl_cluster.return_value = mock_get_service cu.get_service('NAMENODE', cluster) args = ((cu.HDFS_SERVICE_NAME,),) self.assertEqual(args, mock_get_service.get_service.call_args) mock_get_service.reset_mock() cu.get_service('JOBHISTORY', instance=inst) args = ((cu.YARN_SERVICE_NAME,),) self.assertEqual(args, mock_get_service.get_service.call_args) mock_get_service.reset_mock() cu.get_service('OOZIE_SERVER', cluster) args = ((cu.OOZIE_SERVICE_NAME,),) self.assertEqual(args, mock_get_service.get_service.call_args)
def test_get_service(self, mock_get_cl_cluster): self.assertRaises(ValueError, cu.get_service, 'NAMENODE') cluster = ctu.get_fake_cluster() inst = cluster.node_groups[0].instances[0] mock_get_cl_cluster.return_value = None self.assertRaises(ValueError, cu.get_service, 'spam', cluster) self.assertRaises(ValueError, cu.get_service, 'spam', instance=inst) mock_get_cl_cluster.reset_mock() mock_get_service = mock.MagicMock() mock_get_service.get_service.return_value = mock.Mock() mock_get_cl_cluster.return_value = mock_get_service cu.get_service('NAMENODE', cluster) args = ((cu.HDFS_SERVICE_NAME, ), ) self.assertEqual(args, mock_get_service.get_service.call_args) mock_get_service.reset_mock() cu.get_service('JOBHISTORY', instance=inst) args = ((cu.YARN_SERVICE_NAME, ), ) self.assertEqual(args, mock_get_service.get_service.call_args) mock_get_service.reset_mock() cu.get_service('OOZIE_SERVER', cluster) args = ((cu.OOZIE_SERVICE_NAME, ), ) self.assertEqual(args, mock_get_service.get_service.call_args)