blob: 0ddcaf2cf35aa569152f0b7ef847475e1e96aa45 [file] [log] [blame]
<?php
/*
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
include_once "../util/Logger.php";
include_once "PuppetClassDependencies.php";
class RoleDependencies {
private $sortedRoles;
private $serviceCheckRoles;
private $classDependencies;
private $logger;
private static $hadoop1_sortedRoles = array (
"hdp",
"hdp-hadoop::namenode",
"hdp-hadoop::namenode::service_check",
"hdp-hadoop::snamenode",
"hdp-hadoop::datanode",
"hdp-hadoop::client",
"hdp-hadoop::hdfs::service_check",
"hdp-hadoop::jobtracker",
"hdp-hadoop::jobtracker::service_check",
"hdp-hadoop::tasktracker",
"hdp-hadoop::mapred::service_check",
"hdp-zookeeper",
"hdp-zookeeper::client",
"hdp-zookeeper::zookeeper::service_check",
"hdp-zookeeper::quorum::service_check",
"hdp-hbase::master",
"hdp-hbase::regionserver",
"hdp-hbase::client",
"hdp-hbase::hbase::service_check",
"hdp-mysql::server",
"hdp-hive::server",
"hdp-hive::client",
"hdp-hive::hive::service_check",
"hdp-hcat",
"hdp-hcat::hcat::service_check",
"hdp-oozie::server",
"hdp-oozie::client",
"hdp-oozie::oozie::service_check",
"hdp-pig",
"hdp-pig::pig::service_check",
"hdp-sqoop",
"hdp-sqoop::sqoop::service_check",
"hdp-templeton::server",
"hdp-templeton::client",
"hdp-templeton::templeton::service_check",
"hdp-dashboard",
"hdp-dashboard::dashboard::service_check",
"hdp-nagios::server",
"hdp-nagios::nagios::service_check",
"hdp-ganglia::server",
"hdp-ganglia::monitor",
"hdp-ganglia::hdp-gmond::service_check",
"hdp-ganglia::hdp-gmetad::service_check",
"hdp-monitor-webserver",
);
private static $hadoop2_sortedRoles = array (
"hdp2",
"hdp2-hadoop::namenode",
"hdp2-hadoop::namenode::service_check",
"hdp2-hadoop::snamenode",
"hdp2-hadoop::datanode",
"hdp2-hadoop::client",
"hdp2-hadoop::hdfs::service_check",
"hdp2-hadoop::resourcemanager",
"hdp2-hadoop::resourcemanager::service_check",
"hdp2-hadoop::nodemanager",
"hdp2-hadoop::mapred::service_check",
"hdp2-zookeeper",
"hdp2-zookeeper::client",
"hdp2-zookeeper::zookeeper::service_check",
"hdp2-zookeeper::quorum::service_check",
"hdp2-hbase::master",
"hdp2-hbase::regionserver",
"hdp2-hbase::client",
"hdp2-hbase::hbase::service_check",
"hdp2-mysql::server",
"hdp2-hive::server",
"hdp2-hive::client",
"hdp2-hive::hive::service_check",
"hdp2-hcat",
"hdp2-hcat::hcat::service_check",
"hdp2-oozie::server",
"hdp2-oozie::client",
"hdp2-oozie::oozie::service_check",
"hdp2-pig",
"hdp2-pig::pig::service_check",
"hdp-sqoop",
"hdp-sqoop::sqoop::service_check",
"hdp-templeton::server",
"hdp-templeton::client",
"hdp-templeton::templeton::service_check",
"hdp-dashboard",
"hdp-dashboard::dashboard::service_check",
"hdp2-nagios::server",
"hdp2-nagios::nagios::service_check",
"hdp2-ganglia::server",
"hdp2-ganglia::monitor",
"hdp2-ganglia::hdp-gmond::service_check",
"hdp2-ganglia::hdp-gmetad::service_check",
"hdp-monitor-webserver",
);
private static $hadoop1_serviceCheckRoles = array (
"HDFS" => "hdp-hadoop::hdfs::service_check",
"MAPREDUCE" => "hdp-hadoop::mapred::service_check",
"ZOOKEEPER" => "hdp-zookeeper::quorum::service_check",
"HBASE" => "hdp-hbase::hbase::service_check",
"PIG" => "hdp-pig::pig::service_check",
"SQOOP" => "hdp-sqoop::sqoop::service_check",
"HCATALOG" => "hdp-hcat::hcat::service_check",
"HIVE" => "hdp-hive::hive::service_check",
"OOZIE" => "hdp-oozie::oozie::service_check",
"TEMPLETON" => "hdp-templeton::templeton::service_check",
);
private static $hadoop2_serviceCheckRoles = array (
"HDFS2" => "hdp2-hadoop::hdfs::service_check",
"YARN" => "hdp2-hadoop::mapred::service_check",
"MAPREDUCE2" => "hdp2-hadoop::mapred::service_check",
"ZOOKEEPER2" => "hdp2-zookeeper::quorum::service_check",
"HBASE2" => "hdp2-hbase::hbase::service_check",
"PIG2" => "hdp2-pig::pig::service_check",
"SQOOP" => "hdp-sqoop::sqoop::service_check",
"HCATALOG2" => "hdp2-hcat::hcat::service_check",
"HIVE2" => "hdp2-hive::hive::service_check",
"OOZIE2" => "hdp2-oozie::oozie::service_check",
"TEMPLETON" => "hdp-templeton::templeton::service_check",
);
function __construct($hadoopStackVersion = AMBARI_HADOOP_1) {
$this->logger = new HMCLogger("RoleDependencies");
$this->classDependencies = new PuppetClassDependencies();
$this->sortedRoles = ($hadoopStackVersion == AMBARI_HADOOP_2) ? self::$hadoop2_sortedRoles : self::$hadoop1_sortedRoles;
$this->serviceCheckRoles = ($hadoopStackVersion == AMBARI_HADOOP_2) ? self::$hadoop2_serviceCheckRoles : self::$hadoop1_serviceCheckRoles;
error_log ("hadoopStackVersion = $hadoopStackVersion");
}
public function getRolesStages($rolesList) {
$stage=1;
$rolesStages = array();
foreach ($this->sortedRoles as $aRole) {
if (in_array($aRole, $rolesList)) {
$rolesStages[$aRole] = $stage;
$stage ++;
}
}
return $rolesStages;
}
public function getHostLevelDependencies($role, $serviceState) {
return $this->classDependencies->getHostLevelDependencies($role, $serviceState);
}
public function getServiceCheckRole($service) {
if (!isset($this->serviceCheckRoles[$service])) {
return NULL;
}
return $this->serviceCheckRoles[$service];
}
}
?>