/**
 * 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.
 */

module.exports = new Ember.Set([

  {
    service_name: 'HDFS',
    component_name: 'NAMENODE',
    display_name: 'NameNode',
    isMaster: true,
    isClient: false,
    description: 'Master server that manages the file system namespace and regulates access to files by clients'
  },
  {
    service_name: 'HDFS',
    component_name: 'SECONDARY_NAMENODE',
    display_name: 'SNameNode',
    isMaster: true,
    isClient: false,
    description: 'Helper to the primary NameNode that is responsible for supporting periodic checkpoints of the HDFS metadata'
  },
  {
    service_name: 'HDFS',
    component_name: 'DATANODE',
    display_name: 'Datanode',
    isMaster: false,
    isClient: false,
    description: 'The slave for HDFS'
  },
  {
    service_name: 'HDFS',
    component_name: 'HDFS_CLIENT',
    display_name: 'HDFS Client',
    isMaster: false,
    isClient: true,
    description: 'Client component for HDFS'
  },
  {
    service_name: 'MAPREDUCE',
    component_name: 'JOBTRACKER',
    display_name: 'JobTracker',
    isMaster: true,
    isClient: false,
    description: 'Central Master service that pushes work (MR tasks) out to available TaskTracker nodes in the cluster'
  },
  {
    service_name: 'MAPREDUCE',
    component_name: 'TASKTRACKER',
    display_name: 'TaskTracker',
    isMaster: false,
    isClient: false,
    description: 'The slave for MapReduce'
  },
  {
    service_name: 'MAPREDUCE',
    component_name: 'MAPREDUCE_CLIENT',
    display_name: 'MapReduce Client',
    isMaster: false,
    isClient: true,
    description: 'Client component for MapReduce'
  },
  {
    service_name: 'ZOOKEEPER',
    component_name: 'ZOOKEEPER_SERVER',
    display_name: 'ZooKeeper',
    isMaster: true,
    isClient: false,
    description: ''
  },
  {
    service_name: 'ZOOKEEPER',
    component_name: 'ZOOKEEPER_CLIENT',
    display_name: 'ZooKeeper Client',
    isMaster: false,
    isClient: true,
    description: ''
  },
  {
    service_name: 'HBASE',
    component_name: 'HBASE_MASTER',
    display_name: 'HBase Master',
    isMaster: true,
    isClient: false,
    description: ''
  },
  {
    service_name: 'HBASE',
    component_name: 'HBASE_REGIONSERVER',
    display_name: 'HBase Region Server',
    isMaster: false,
    isClient: false,
    description: 'The slave for HBase'
  },
  {
    service_name: 'HBASE',
    component_name: 'HBASE_CLIENT',
    display_name: 'HBase Client',
    isMaster: false,
    isClient: true,
    description: 'The slave for HBase'
  },
  {
    service_name: 'PIG',
    component_name: 'PIG',
    display_name: 'Pig',
    isMaster: false,
    isClient: true,
    description: ''
  },
  {
    service_name: 'SQOOP',
    component_name: 'SQOOP',
    display_name: 'Sqoop',
    isMaster: false,
    isClient: true,
    description: ''
  },
  {
    service_name: 'OOZIE',
    component_name: 'OOZIE_SERVER',
    display_name: 'Oozie Server',
    isMaster: true,
    isClient: false,
    description: ''
  },
  {
    service_name: 'OOZIE',
    component_name: 'OOZIE_CLIENT',
    display_name: 'Oozie Client',
    isMaster: false,
    isClient: true,
    description: ''
  },
  {
    service_name: 'HIVE',
    component_name: 'HIVE_SERVER',
    display_name: 'Hive Metastore',
    isMaster: true,
    isClient: false,
    description: ''
  },
  {
    service_name: 'HIVE',
    component_name: 'HIVE_CLIENT',
    display_name: 'Hive Client',
    isMaster: false,
    isClient: true,
    description: ''
  },
  {
    service_name: 'HIVE',
    component_name: 'MYSQL_SERVER',
    display_name: 'MySql Server for Hive',
    isMaster: false,
    isClient: false,
    description: 'The slave for HBase'
  },
  {
    service_name: 'HCATALOG',
    component_name: 'HCAT',
    display_name: 'HCat Client',
    isMaster: false,
    isClient: true,
    description: ''
  },
  {
    service_name: 'TEMPLETON',
    component_name: 'TEMPLETON_SERVER',
    display_name: 'Templeton Server',
    isMaster: true,
    isClient: false,
    description: ''
  },
  {
    service_name: 'TEMPLETON',
    component_name: 'TEMPLETON_CLIENT',
    display_name: 'Templeton Client',
    isMaster: false,
    isClient: true,
    description: ''
  },
  {
    service_name: 'DASHBOARD',
    component_name: 'DASHBOARD',
    display_name: 'Monitoring Dashboard',
    isMaster: false,
    isClient: false,
    description: ''
  },
  {
    service_name: 'NAGIOS',
    component_name: 'NAGIOS_SERVER',
    display_name: 'Nagios Server',
    isMaster: true,
    isClient: false,
    description: ''
  },
  {
    service_name: 'GANGLIA',
    component_name: 'GANGLIA_SERVER',
    display_name: 'Ganglia Collector',
    isMaster: true,
    isClient: false,
    description: ''
  },
  {
    service_name: 'GANGLIA',
    component_name: 'GANGLIA_MONITOR',
    display_name: 'Ganglia Slave',
    isMaster: false,
    isClient: false,
    description: ''
  },
  {
    service_name: 'KERBEROS',
    component_name: 'KERBEROS_SERVER',
    display_name: 'Kerberos Server',
    isMaster: true,
    isClient: false,
    description: ''
  },
  {
    service_name: 'KERBEROS',
    component_name: 'KERBEROS_ADMIN_CLIENT',
    display_name: 'Kerberos Admin Client',
    isMaster: false,
    isClient: true,
    description: ''
  },
  {
    service_name: 'KERBEROS',
    component_name: 'KERBEROS_CLIENT',
    display_name: 'Kerberos Client',
    isMaster: false,
    isClient: true,
    description: ''
  }
]);