blob: 6db1ac5ff1388dc5e8081b84956df4fe150ebb9c [file] [log] [blame]
/*
* 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.slider.server.appmaster.model.mock
import java.io.IOException;
import org.apache.hadoop.conf.Configuration
import org.apache.hadoop.fs.Path
import org.apache.hadoop.service.LifecycleEvent
import org.apache.hadoop.service.ServiceStateChangeListener
import org.apache.hadoop.yarn.api.records.Container
import org.apache.hadoop.yarn.api.records.ContainerId
import org.apache.hadoop.yarn.client.api.AMRMClient
import org.apache.slider.api.ClusterDescription
import org.apache.slider.common.tools.SliderFileSystem
import org.apache.slider.core.conf.AggregateConf
import org.apache.slider.core.conf.MapOperations
import org.apache.slider.core.exceptions.BadCommandArgumentsException
import org.apache.slider.core.exceptions.SliderException
import org.apache.slider.core.launch.ContainerLauncher
import org.apache.slider.core.registry.info.ServiceInstanceData
import org.apache.slider.providers.ProviderRole
import org.apache.slider.providers.ProviderService
import org.apache.slider.server.appmaster.actions.QueueAccess
import org.apache.slider.server.appmaster.state.ContainerReleaseSelector
import org.apache.slider.server.appmaster.state.MostRecentContainerReleaseSelector
import org.apache.slider.server.appmaster.state.StateAccessForProviders
import org.apache.slider.server.appmaster.web.rest.agent.AgentRestOperations
import org.apache.slider.server.appmaster.web.rest.agent.HeartBeat
import org.apache.slider.server.appmaster.web.rest.agent.HeartBeatResponse
import org.apache.slider.server.appmaster.web.rest.agent.Register
import org.apache.slider.server.appmaster.web.rest.agent.RegistrationResponse
import org.apache.slider.server.appmaster.web.rest.agent.RegistrationStatus
import org.apache.slider.server.services.registry.RegistryViewForProviders
import org.apache.slider.providers.ProviderCompleted
import org.apache.hadoop.service.Service.STATE
class MockProviderService implements ProviderService {
@Override
public String getName() {
return null;
}
@Override
public List<ProviderRole> getRoles() {
return null;
}
@Override
public Configuration getConf() {
return null;
}
@Override
public void validateInstanceDefinition(AggregateConf instanceDefinition)
throws SliderException {
}
@Override
public void init(Configuration config) {
}
@Override
public void start() {
}
@Override
public void stop() {
}
@Override
public void close() throws IOException {
}
@Override
public void registerServiceListener(ServiceStateChangeListener listener) {
}
@Override
public void unregisterServiceListener(ServiceStateChangeListener listener) {
}
@Override
public Configuration getConfig() {
return null;
}
public STATE getServiceState() {
return null
}
@Override
public long getStartTime() {
return 0;
}
@Override
public boolean isInState(STATE state) {
return false;
}
@Override
public Throwable getFailureCause() {
return null;
}
@Override
public STATE getFailureState() {
return null;
}
@Override
public boolean waitForServiceToStop(long timeout) {
return false;
}
@Override
public List<LifecycleEvent> getLifecycleHistory() {
return null;
}
@Override
public Map<String, String> getBlockers() {
return null;
}
@Override
public int getExitCode() {
return 0;
}
@Override
public boolean exec(
AggregateConf instanceDefinition,
File confDir,
Map<String, String> env,
ProviderCompleted execInProgress) throws IOException, SliderException {
return false;
}
@Override
public boolean isSupportedRole(String role) {
return false;
}
@Override
public Configuration loadProviderConfigurationInformation(File confDir)
throws BadCommandArgumentsException, IOException {
return null;
}
@Override
void initializeApplicationConfiguration(AggregateConf instanceDefinition,
SliderFileSystem fileSystem) throws IOException, SliderException {
}
@Override
public void validateApplicationConfiguration(
AggregateConf instanceDefinition,
File confDir,
boolean secure) throws IOException, SliderException {
}
@Override
public Map<String, String> buildProviderStatus() {
return null;
}
@Override
void buildContainerLaunchContext(
ContainerLauncher containerLauncher,
AggregateConf instanceDefinition,
Container container,
String role,
SliderFileSystem sliderFileSystem,
Path generatedConfPath,
MapOperations resourceComponent,
MapOperations appComponent,
Path containerTmpDirPath) throws IOException, SliderException {
}
@Override
public Map<String, String> buildMonitorDetails(
ClusterDescription clusterSpec) {
return null;
}
@Override
void bind(
StateAccessForProviders stateAccessor,
RegistryViewForProviders registry,
QueueAccess queueAccess,
List<Container> liveContainers) {
}
@Override
AgentRestOperations getAgentRestOperations() {
return new AgentRestOperations() {
@Override
public RegistrationResponse handleRegistration(Register registration) {
// dummy impl
RegistrationResponse response = new RegistrationResponse();
response.setResponseStatus(RegistrationStatus.OK);
return response;
}
@Override
public HeartBeatResponse handleHeartBeat(HeartBeat heartBeat) {
// dummy impl
return new HeartBeatResponse();
}
}
}
@Override
void buildEndpointDetails(Map<String, String> details) {
}
@Override
void applyInitialRegistryDefinitions(
URL unsecureWebAPI,
URL secureWebAPI,
ServiceInstanceData registryInstanceData)
throws MalformedURLException, IOException {
}
@Override
public void notifyContainerCompleted(ContainerId containerId) {
}
@Override
ContainerReleaseSelector createContainerReleaseSelector() {
return new MostRecentContainerReleaseSelector()
}
@Override
public void releaseAssignedContainer(ContainerId containerId) {
// no-op
}
@Override
public void addContainerRequest(AMRMClient.ContainerRequest req) {
// no-op
}
@Override
void rebuildContainerDetails(List<Container> liveContainers, String applicationId,
Map<Integer, ProviderRole> roleProviderMap) {
}
}