/***************************************************************************
* Copyright (c) 2014 VMware, Inc. All Rights Reserved.
* Licensed 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.
***************************************************************************/
package com.vmware.bdd.plugin.clouderamgr.model.support;
import com.vmware.bdd.plugin.clouderamgr.utils.Constants;
/**
* Author: Xiaoding Bian
* Date: 5/21/14
* Time: 2:45 PM
*/
// Cloudera Manager Service is only available in the Enterprise Edition, the Management Service
// provides monitoring, diagnostic and reporting features for your Hadoop clusters. The operation
// of this service is similar to other Hadoop services, except that the Management Service does not belong to a cluster.
public enum AvailableManagementService {
// Management
CM(null, "CM", false),
// Management
MANAGEMENT(null, "MGMT", false),
// Host Monitor
HOSTMONITOR(MANAGEMENT, "HOSTMONITOR", false),
// Service Monitor
SERVICEMONITOR(MANAGEMENT, "SERVICEMONITOR", false),
// Activity Monitor
ACTIVITYMONITOR(MANAGEMENT, "ACTIVITYMONITOR", false),
// Alerts Publisher
ALERTPUBLISHER(MANAGEMENT, "ALERTPUBLISHER", false),
// Event Server
EVENTSERVER(MANAGEMENT, "EVENTSERVER", false),
// Reports Manager
REPORTSMANAGER(MANAGEMENT, "REPORTSMANAGER", true),
// Navigator
NAVIGATOR(MANAGEMENT, "NAVIGATOR", true),
// Navigator Meta Server
NAVIGATORMETASERVER(MANAGEMENT, "NAVIGATORMETASERVER", true);
private AvailableManagementService parent;
private String id;
private boolean requireEnterprise;
private AvailableManagementService(AvailableManagementService parent, String id, boolean requireEnterprise) {
this.parent = parent;
this.id = id;
this.requireEnterprise = requireEnterprise;
}
public AvailableManagementService getParent() {
return parent;
}
public String getId() {
return id;
}
public boolean requireEnterprise() {
return requireEnterprise;
}
public String getName() {
return MANAGEMENT.getId().toLowerCase()
+ (getParent() != null ? Constants.CMS_NAME_TOKEN_DELIM + getId().toLowerCase() : "");
}
}