package io.cattle.platform.docker.api;
import io.cattle.platform.api.action.ActionHandler;
import io.cattle.platform.archaius.util.ArchaiusUtil;
import io.cattle.platform.core.model.Host;
import io.cattle.platform.docker.api.model.HostAccess;
import io.cattle.platform.host.model.HostApiAccess;
import io.cattle.platform.host.service.HostApiService;
import io.cattle.platform.object.ObjectManager;
import io.github.ibuildthecloud.gdapi.request.ApiRequest;
import java.util.HashMap;
import javax.inject.Inject;
import com.netflix.config.DynamicStringProperty;
public class DockerSocketProxyActionHandler implements ActionHandler {
private static final DynamicStringProperty SOCKET_PROXY_PATH = ArchaiusUtil.getString("host.socketproxy.path");
HostApiService apiService;
ObjectManager objectManager;
@Override
public String getName() {
return "host.dockersocket";
}
@Override
public Object perform(String name, Object obj, ApiRequest request) {
if (obj == null) {
return null;
}
Host host = (Host)obj;
HostApiAccess apiAccess = apiService.getAccess(request, host.getId(), new HashMap<String, Object>(), SOCKET_PROXY_PATH.get());
if (apiAccess == null) {
return null;
}
HostAccess access = new HostAccess(apiAccess.getUrl(), apiAccess.getAuthenticationToken());
return access;
}
public HostApiService getApiService() {
return apiService;
}
@Inject
public void setApiService(HostApiService apiService) {
this.apiService = apiService;
}
public ObjectManager getObjectManager() {
return objectManager;
}
@Inject
public void setObjectManager(ObjectManager objectManager) {
this.objectManager = objectManager;
}
}