/** * 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. */ package org.apache.ambari.view.slider; import java.io.IOException; import java.util.List; import java.util.Map; import java.util.Set; import org.apache.hadoop.yarn.exceptions.YarnException; import com.google.gson.JsonObject; import com.google.inject.ImplementedBy; @ImplementedBy(SliderAppsViewControllerImpl.class) public interface SliderAppsViewController { public static final String PARAM_AMBARI_CLUSTER_API = "ambari.server.url"; public static final String PARAM_AMBARI_USERNAME = "ambari.server.username"; public static final String PARAM_AMBARI_PASSWORD = "ambari.server.password"; public static final String PARAM_SLIDER_USER = "slider.user"; public static final String PARAM_VIEW_PRINCIPAL = "view.kerberos.principal"; public static final String PARAM_VIEW_PRINCIPAL_KEYTAB= "view.kerberos.principal.keytab"; public static final String PROPERTY_SLIDER_ZK_QUORUM = "slider.zookeeper.quorum"; public static final String PROPERTY_METRICS_SERVER_HOSTNAME = "site.global.metric_collector_host"; public static final String PROPERTY_METRICS_SERVER_PORT = "site.global.metric_collector_port"; public static final String PROPERTY_METRICS_LIBRARY_PATH = "site.global.metric_collector_lib"; public static final String PROPERTY_YARN_RM_WEBAPP_URL = "yarn.rm.webapp.url"; public static final String PROPERTY_SLIDER_USER = "view.slider.user"; public static final String PROPERTY_JAVA_HOME = "java.home"; public static final String PROPERTY_SLIDER_SECURITY_ENABLED = "slider.security.enabled"; public static final String METRICS_API_NAME = "Metrics API"; public ViewStatus getViewStatus(); /** * Provides information about requested Slider App. * * @param applicationId * @param properties * Identifies specific properties to show up. Provide * <code>null</code> for default properties. * @return * @throws YarnException * @throws IOException * @throws InterruptedException */ public SliderApp getSliderApp(String applicationId, Set<String> properties) throws YarnException, IOException, InterruptedException; /** * Provides list of Slider apps with requested properties populated. * * @param properties * Identifies specific properties to show up. Provide * <code>null</code> for default properties. * @return * @throws YarnException * @throws IOException * @throws InterruptedException */ public List<SliderApp> getSliderApps(Set<String> properties) throws YarnException, IOException, InterruptedException; /** * Attempts to delete a Slider app. An unsuccessful attempt will result in * exception. * * @param applicationId * @throws YarnException * @throws IOException * @throws InterruptedException */ public void deleteSliderApp(String applicationId) throws YarnException, IOException, InterruptedException; public SliderAppType getSliderAppType(String appTypeId, Set<String> properties); public List<SliderAppType> getSliderAppTypes(Set<String> properties); public String createSliderApp(JsonObject requestJson) throws IOException, YarnException, InterruptedException; public void freezeApp(String appId) throws YarnException, IOException, InterruptedException; public void thawApp(String appId) throws YarnException, IOException, InterruptedException; public void flexApp(String appId, Map<String, Integer> componentsMap) throws YarnException, IOException, InterruptedException; public boolean appExists(String string) throws IOException, InterruptedException, YarnException; }