/**
* Copyright 2005-2016 Red Hat, Inc.
*
* Red Hat 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 io.fabric8.spring.boot.internal;
import io.fabric8.kubernetes.api.model.EndpointsListBuilder;
import io.fabric8.kubernetes.api.model.Service;
import io.fabric8.kubernetes.api.model.ServiceBuilder;
import io.fabric8.kubernetes.api.model.ServiceListBuilder;
import io.fabric8.kubernetes.client.Config;
import io.fabric8.openshift.api.model.RouteBuilder;
import io.fabric8.openshift.server.mock.OpenShiftMockServer;
public class MockConfigurer {
private static final OpenShiftMockServer MOCK = new OpenShiftMockServer();
public static void configure() {
Service service1 = new ServiceBuilder()
.withNewMetadata().withName("service1").endMetadata()
.withNewSpec()
.addNewPort()
.withProtocol("TCP")
.withPort(80)
.withNewTargetPort(9090)
.endPort()
.endSpec()
.build();
Service service2 = new ServiceBuilder()
.withNewMetadata().withName("service2").endMetadata()
.withNewSpec()
.addNewPort()
.withProtocol("TCP")
.withPort(80)
.withNewTargetPort(8080)
.endPort()
.endSpec()
.build();
Service service3 = new ServiceBuilder()
.withNewMetadata().withName("service3").endMetadata()
.withNewSpec()
.addNewPort()
.withProtocol("TCP")
.withPort(443)
.withNewTargetPort(443)
.endPort()
.withClusterIP("172.30.17.2")
.endSpec()
.build();
Service multiport = new ServiceBuilder()
.withNewMetadata().withName("multiport").endMetadata()
.withNewSpec()
.addNewPort()
.withName("port1")
.withProtocol("TCP")
.withPort(8081)
.withNewTargetPort(8081)
.endPort()
.addNewPort()
.withName("port2")
.withProtocol("TCP")
.withPort(8082)
.withNewTargetPort(8082)
.endPort()
.addNewPort()
.withName("port3")
.withProtocol("TCP")
.withPort(8083)
.withNewTargetPort(8083)
.endPort()
.withClusterIP("172.30.17.2")
.endSpec()
.build();
MOCK.expect().get().withPath("/api/v1/namespaces/default/services/service1").andReturn(200, service1).always();
MOCK.expect().get().withPath("/api/v1/namespaces/default/services/service2").andReturn(200, service2).always();
MOCK.expect().get().withPath("/api/v1/namespaces/default/services/service3").andReturn(200, service3).always();
MOCK.expect().get().withPath("/api/v1/namespaces/default/services/multiport").andReturn(200, multiport).always();
MOCK.expect().get().withPath("/api/v1/namespaces/default/services").andReturn(200, new ServiceListBuilder()
.withItems(service1, service2, service3, multiport).build()
).always();
MOCK.expect().get().withPath("/api/v1/namespaces/default/endpoints").andReturn(200, new EndpointsListBuilder().build()).always();
MOCK.expect().get().withPath("/oapi/v1/namespaces/default/routes").andReturn(200, new RouteBuilder().build()).always();
String masterUrl = MOCK.getServer().url("/").toString();
System.setProperty(Config.KUBERNETES_MASTER_SYSTEM_PROPERTY, masterUrl);
}
}