Renaming transformation functions
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/5bc3a877 Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/5bc3a877 Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/5bc3a877 Branch: refs/heads/container-autoscaling Commit: 5bc3a8772327b403284c56782505c1225a9ebb93 Parents: a110894 Author: Nirmal Fernando <[email protected]> Authored: Tue Oct 7 17:33:03 2014 +0530 Committer: Nirmal Fernando <[email protected]> Committed: Wed Oct 8 22:21:29 2014 +0530 ---------------------------------------------------------------------- ...inerClusterContextToKubernetesContainer.java | 147 +++++++++++++++++++ ...tainerClusterContextToKubernetesService.java | 65 ++++++++ ...erClusterContextToReplicationController.java | 90 ++++++++++++ .../MemberContextToKubernetesContainer.java | 147 ------------------- .../MemberContextToKubernetesService.java | 65 -------- .../MemberContextToReplicationController.java | 90 ------------ 6 files changed, 302 insertions(+), 302 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/5bc3a877/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/ContainerClusterContextToKubernetesContainer.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/ContainerClusterContextToKubernetesContainer.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/ContainerClusterContextToKubernetesContainer.java new file mode 100644 index 0000000..dd45b3e --- /dev/null +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/ContainerClusterContextToKubernetesContainer.java @@ -0,0 +1,147 @@ +/* + * 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.stratos.cloud.controller.functions; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.stratos.cloud.controller.pojo.Cartridge; +import org.apache.stratos.cloud.controller.pojo.ClusterContext; +import org.apache.stratos.cloud.controller.pojo.MemberContext; +import org.apache.stratos.cloud.controller.pojo.PortMapping; +import org.apache.stratos.cloud.controller.pojo.Property; +import org.apache.stratos.cloud.controller.runtime.FasterLookUpDataHolder; +import org.apache.stratos.cloud.controller.util.CloudControllerUtil; +import org.apache.stratos.common.constants.StratosConstants; +import org.apache.stratos.kubernetes.client.model.Container; +import org.apache.stratos.kubernetes.client.model.EnvironmentVariable; +import org.apache.stratos.kubernetes.client.model.Port; + +import com.google.common.base.Function; + +/** + * Is responsible for converting a {@link MemberContext} object to a Kubernetes + * {@link Container} Object. + */ +public class MemberContextToKubernetesContainer implements Function<MemberContext, Container> { + + private static final Log log = LogFactory.getLog(MemberContextToKubernetesContainer.class); + private FasterLookUpDataHolder dataHolder = FasterLookUpDataHolder.getInstance(); + + @Override + public Container apply(MemberContext memberContext) { + String clusterId = memberContext.getClusterId(); + ClusterContext clusterContext = dataHolder.getClusterContext(clusterId); + + Container container = new Container(); + container.setName(getCompatibleName(clusterContext.getHostName())); + + Cartridge cartridge = dataHolder.getCartridge(clusterContext.getCartridgeType()); + + if (cartridge == null) { + log.error("Cannot find a Cartridge of type : " + clusterContext.getCartridgeType()); + return null; + } + + container.setImage(cartridge.getContainer().getImageName()); + + container.setPorts(getPorts(clusterContext, cartridge)); + + container.setEnv(getEnvironmentVars(memberContext, clusterContext)); + + return container; + } + + private String getCompatibleName(String hostName) { + if (hostName.indexOf('.') != -1) { + hostName = hostName.replace('.', '-'); + } + return hostName; + } + + private Port[] getPorts(ClusterContext ctxt, Cartridge cartridge) { + Port[] ports = new Port[cartridge.getPortMappings().size()]; + List<Port> portList = new ArrayList<Port>(); + + for (PortMapping portMapping : cartridge.getPortMappings()) { + Port p = new Port(); + p.setContainerPort(Integer.parseInt(portMapping.getPort())); + p.setHostPort(Integer.parseInt(portMapping.getPort())); + // In kubernetes transport protocol always be 'tcp' + p.setProtocol("tcp"); + p.setName(p.getProtocol() + p.getContainerPort()); + portList.add(p); + } + + return portList.toArray(ports); + } + + private EnvironmentVariable[] getEnvironmentVars(MemberContext memberCtxt, ClusterContext ctxt) { + + String kubernetesClusterId = CloudControllerUtil.getProperty(ctxt.getProperties(), + StratosConstants.KUBERNETES_CLUSTER_ID); + + List<EnvironmentVariable> envVars = new ArrayList<EnvironmentVariable>(); + addToEnvironment(envVars, ctxt.getPayload()); + // FIXME member id, should it be unique for a container? + addToEnvironment(envVars, StratosConstants.MEMBER_ID, memberCtxt.getMemberId()); + addToEnvironment(envVars, StratosConstants.LB_CLUSTER_ID, memberCtxt.getLbClusterId()); + addToEnvironment(envVars, StratosConstants.NETWORK_PARTITION_ID, + memberCtxt.getNetworkPartitionId()); + addToEnvironment(envVars, StratosConstants.KUBERNETES_CLUSTER_ID, kubernetesClusterId); + if (memberCtxt.getProperties() != null) { + org.apache.stratos.cloud.controller.pojo.Properties props1 = memberCtxt.getProperties(); + if (props1 != null) { + for (Property prop : props1.getProperties()) { + addToEnvironment(envVars, prop.getName(), prop.getValue()); + } + } + } + + EnvironmentVariable[] vars = new EnvironmentVariable[envVars.size()]; + + return envVars.toArray(vars); + + } + + private void addToEnvironment(List<EnvironmentVariable> envVars, String payload) { + + if (payload != null) { + String[] entries = payload.split(","); + for (String entry : entries) { + String[] var = entry.split("="); + if (var.length != 2) { + continue; + } + addToEnvironment(envVars, var[0], var[1]); + } + } + } + + private void addToEnvironment(List<EnvironmentVariable> envVars, String name, String value) { + + EnvironmentVariable var = new EnvironmentVariable(); + var.setName(name); + var.setValue(value); + envVars.add(var); + } + +} http://git-wip-us.apache.org/repos/asf/stratos/blob/5bc3a877/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/ContainerClusterContextToKubernetesService.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/ContainerClusterContextToKubernetesService.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/ContainerClusterContextToKubernetesService.java new file mode 100644 index 0000000..724891e --- /dev/null +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/ContainerClusterContextToKubernetesService.java @@ -0,0 +1,65 @@ +/* + * 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.stratos.cloud.controller.functions; + +import org.apache.stratos.cloud.controller.pojo.ClusterContext; +import org.apache.stratos.cloud.controller.pojo.KubernetesClusterContext; +import org.apache.stratos.cloud.controller.pojo.MemberContext; +import org.apache.stratos.cloud.controller.runtime.FasterLookUpDataHolder; +import org.apache.stratos.cloud.controller.util.CloudControllerUtil; +import org.apache.stratos.common.constants.StratosConstants; +import org.apache.stratos.kubernetes.client.model.Selector; +import org.apache.stratos.kubernetes.client.model.Service; + +import com.google.common.base.Function; + +/** + * Is responsible for converting a {@link MemberContext} object to a Kubernetes + * {@link Service} Object. + */ +public class MemberContextToKubernetesService implements Function<MemberContext, Service> { + + private FasterLookUpDataHolder dataHolder = FasterLookUpDataHolder.getInstance(); + + @Override + public Service apply(MemberContext memberContext) { + + String clusterId = memberContext.getClusterId(); + ClusterContext clusterContext = dataHolder.getClusterContext(clusterId); + + String kubernetesClusterId = CloudControllerUtil.getProperty( + clusterContext.getProperties(), StratosConstants.KUBERNETES_CLUSTER_ID); + KubernetesClusterContext kubClusterContext = dataHolder + .getKubernetesClusterContext(kubernetesClusterId); + + Service service = new Service(); + service.setApiVersion("v1beta1"); + service.setId(CloudControllerUtil.getCompatibleId(clusterId)); + service.setKind("Service"); + int hostPort = kubClusterContext.getAnAvailableHostPort(); + clusterContext.addProperty(StratosConstants.ALLOCATED_SERVICE_HOST_PORT, hostPort); + service.setPort(hostPort); + Selector selector = new Selector(); + selector.setName(clusterId); + service.setSelector(selector); + + return service; + } + +} http://git-wip-us.apache.org/repos/asf/stratos/blob/5bc3a877/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/ContainerClusterContextToReplicationController.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/ContainerClusterContextToReplicationController.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/ContainerClusterContextToReplicationController.java new file mode 100644 index 0000000..b2805cb --- /dev/null +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/ContainerClusterContextToReplicationController.java @@ -0,0 +1,90 @@ +/* + * 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.stratos.cloud.controller.functions; + +import org.apache.stratos.cloud.controller.pojo.ClusterContext; +import org.apache.stratos.cloud.controller.pojo.MemberContext; +import org.apache.stratos.cloud.controller.runtime.FasterLookUpDataHolder; +import org.apache.stratos.cloud.controller.util.CloudControllerUtil; +import org.apache.stratos.common.constants.StratosConstants; +import org.apache.stratos.kubernetes.client.model.Container; +import org.apache.stratos.kubernetes.client.model.Label; +import org.apache.stratos.kubernetes.client.model.Manifest; +import org.apache.stratos.kubernetes.client.model.Pod; +import org.apache.stratos.kubernetes.client.model.ReplicationController; +import org.apache.stratos.kubernetes.client.model.Selector; +import org.apache.stratos.kubernetes.client.model.State; + +import com.google.common.base.Function; + +/** + * Is responsible for converting a {@link MemberContext} object to a Kubernetes + * {@link ReplicationController} Object. + */ +public class MemberContextToReplicationController implements + Function<MemberContext, ReplicationController> { + + private FasterLookUpDataHolder dataHolder = FasterLookUpDataHolder.getInstance(); + + @Override + public ReplicationController apply(MemberContext memberContext) { + + String clusterId = memberContext.getClusterId(); + ClusterContext clusterContext = dataHolder.getClusterContext(clusterId); + + ReplicationController contr = new ReplicationController(); + contr.setId(clusterContext.getClusterId()); + contr.setKind("ReplicationController"); + contr.setApiVersion("v1beta1"); + State desiredState = new State(); + String minReplicas = CloudControllerUtil.getProperty(clusterContext.getProperties(), + StratosConstants.KUBERNETES_MIN_REPLICAS); + desiredState.setReplicas(Integer.parseInt(minReplicas)); + Selector selector = new Selector(); + selector.setName(clusterContext.getClusterId()); + desiredState.setReplicaSelector(selector); + + Pod podTemplate = new Pod(); + State podState = new State(); + Manifest manifest = new Manifest(); + manifest.setVersion("v1beta1"); + manifest.setId(clusterContext.getClusterId()); + + MemberContextToKubernetesContainer containerFunc = new MemberContextToKubernetesContainer(); + Container container = containerFunc.apply(memberContext); + + manifest.setContainers(new Container[] { container }); + + podState.setManifest(manifest); + podTemplate.setDesiredState(podState); + Label l1 = new Label(); + l1.setName(clusterContext.getClusterId()); + podTemplate.setLabels(l1); + + desiredState.setPodTemplate(podTemplate); + contr.setDesiredState(desiredState); + + Label l2 = new Label(); + l2.setName(clusterContext.getClusterId()); + contr.setLabels(l2); + + return contr; + } + +} http://git-wip-us.apache.org/repos/asf/stratos/blob/5bc3a877/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/MemberContextToKubernetesContainer.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/MemberContextToKubernetesContainer.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/MemberContextToKubernetesContainer.java deleted file mode 100644 index dd45b3e..0000000 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/MemberContextToKubernetesContainer.java +++ /dev/null @@ -1,147 +0,0 @@ -/* - * 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.stratos.cloud.controller.functions; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.stratos.cloud.controller.pojo.Cartridge; -import org.apache.stratos.cloud.controller.pojo.ClusterContext; -import org.apache.stratos.cloud.controller.pojo.MemberContext; -import org.apache.stratos.cloud.controller.pojo.PortMapping; -import org.apache.stratos.cloud.controller.pojo.Property; -import org.apache.stratos.cloud.controller.runtime.FasterLookUpDataHolder; -import org.apache.stratos.cloud.controller.util.CloudControllerUtil; -import org.apache.stratos.common.constants.StratosConstants; -import org.apache.stratos.kubernetes.client.model.Container; -import org.apache.stratos.kubernetes.client.model.EnvironmentVariable; -import org.apache.stratos.kubernetes.client.model.Port; - -import com.google.common.base.Function; - -/** - * Is responsible for converting a {@link MemberContext} object to a Kubernetes - * {@link Container} Object. - */ -public class MemberContextToKubernetesContainer implements Function<MemberContext, Container> { - - private static final Log log = LogFactory.getLog(MemberContextToKubernetesContainer.class); - private FasterLookUpDataHolder dataHolder = FasterLookUpDataHolder.getInstance(); - - @Override - public Container apply(MemberContext memberContext) { - String clusterId = memberContext.getClusterId(); - ClusterContext clusterContext = dataHolder.getClusterContext(clusterId); - - Container container = new Container(); - container.setName(getCompatibleName(clusterContext.getHostName())); - - Cartridge cartridge = dataHolder.getCartridge(clusterContext.getCartridgeType()); - - if (cartridge == null) { - log.error("Cannot find a Cartridge of type : " + clusterContext.getCartridgeType()); - return null; - } - - container.setImage(cartridge.getContainer().getImageName()); - - container.setPorts(getPorts(clusterContext, cartridge)); - - container.setEnv(getEnvironmentVars(memberContext, clusterContext)); - - return container; - } - - private String getCompatibleName(String hostName) { - if (hostName.indexOf('.') != -1) { - hostName = hostName.replace('.', '-'); - } - return hostName; - } - - private Port[] getPorts(ClusterContext ctxt, Cartridge cartridge) { - Port[] ports = new Port[cartridge.getPortMappings().size()]; - List<Port> portList = new ArrayList<Port>(); - - for (PortMapping portMapping : cartridge.getPortMappings()) { - Port p = new Port(); - p.setContainerPort(Integer.parseInt(portMapping.getPort())); - p.setHostPort(Integer.parseInt(portMapping.getPort())); - // In kubernetes transport protocol always be 'tcp' - p.setProtocol("tcp"); - p.setName(p.getProtocol() + p.getContainerPort()); - portList.add(p); - } - - return portList.toArray(ports); - } - - private EnvironmentVariable[] getEnvironmentVars(MemberContext memberCtxt, ClusterContext ctxt) { - - String kubernetesClusterId = CloudControllerUtil.getProperty(ctxt.getProperties(), - StratosConstants.KUBERNETES_CLUSTER_ID); - - List<EnvironmentVariable> envVars = new ArrayList<EnvironmentVariable>(); - addToEnvironment(envVars, ctxt.getPayload()); - // FIXME member id, should it be unique for a container? - addToEnvironment(envVars, StratosConstants.MEMBER_ID, memberCtxt.getMemberId()); - addToEnvironment(envVars, StratosConstants.LB_CLUSTER_ID, memberCtxt.getLbClusterId()); - addToEnvironment(envVars, StratosConstants.NETWORK_PARTITION_ID, - memberCtxt.getNetworkPartitionId()); - addToEnvironment(envVars, StratosConstants.KUBERNETES_CLUSTER_ID, kubernetesClusterId); - if (memberCtxt.getProperties() != null) { - org.apache.stratos.cloud.controller.pojo.Properties props1 = memberCtxt.getProperties(); - if (props1 != null) { - for (Property prop : props1.getProperties()) { - addToEnvironment(envVars, prop.getName(), prop.getValue()); - } - } - } - - EnvironmentVariable[] vars = new EnvironmentVariable[envVars.size()]; - - return envVars.toArray(vars); - - } - - private void addToEnvironment(List<EnvironmentVariable> envVars, String payload) { - - if (payload != null) { - String[] entries = payload.split(","); - for (String entry : entries) { - String[] var = entry.split("="); - if (var.length != 2) { - continue; - } - addToEnvironment(envVars, var[0], var[1]); - } - } - } - - private void addToEnvironment(List<EnvironmentVariable> envVars, String name, String value) { - - EnvironmentVariable var = new EnvironmentVariable(); - var.setName(name); - var.setValue(value); - envVars.add(var); - } - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/5bc3a877/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/MemberContextToKubernetesService.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/MemberContextToKubernetesService.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/MemberContextToKubernetesService.java deleted file mode 100644 index 724891e..0000000 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/MemberContextToKubernetesService.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * 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.stratos.cloud.controller.functions; - -import org.apache.stratos.cloud.controller.pojo.ClusterContext; -import org.apache.stratos.cloud.controller.pojo.KubernetesClusterContext; -import org.apache.stratos.cloud.controller.pojo.MemberContext; -import org.apache.stratos.cloud.controller.runtime.FasterLookUpDataHolder; -import org.apache.stratos.cloud.controller.util.CloudControllerUtil; -import org.apache.stratos.common.constants.StratosConstants; -import org.apache.stratos.kubernetes.client.model.Selector; -import org.apache.stratos.kubernetes.client.model.Service; - -import com.google.common.base.Function; - -/** - * Is responsible for converting a {@link MemberContext} object to a Kubernetes - * {@link Service} Object. - */ -public class MemberContextToKubernetesService implements Function<MemberContext, Service> { - - private FasterLookUpDataHolder dataHolder = FasterLookUpDataHolder.getInstance(); - - @Override - public Service apply(MemberContext memberContext) { - - String clusterId = memberContext.getClusterId(); - ClusterContext clusterContext = dataHolder.getClusterContext(clusterId); - - String kubernetesClusterId = CloudControllerUtil.getProperty( - clusterContext.getProperties(), StratosConstants.KUBERNETES_CLUSTER_ID); - KubernetesClusterContext kubClusterContext = dataHolder - .getKubernetesClusterContext(kubernetesClusterId); - - Service service = new Service(); - service.setApiVersion("v1beta1"); - service.setId(CloudControllerUtil.getCompatibleId(clusterId)); - service.setKind("Service"); - int hostPort = kubClusterContext.getAnAvailableHostPort(); - clusterContext.addProperty(StratosConstants.ALLOCATED_SERVICE_HOST_PORT, hostPort); - service.setPort(hostPort); - Selector selector = new Selector(); - selector.setName(clusterId); - service.setSelector(selector); - - return service; - } - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/5bc3a877/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/MemberContextToReplicationController.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/MemberContextToReplicationController.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/MemberContextToReplicationController.java deleted file mode 100644 index b2805cb..0000000 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/functions/MemberContextToReplicationController.java +++ /dev/null @@ -1,90 +0,0 @@ -/* - * 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.stratos.cloud.controller.functions; - -import org.apache.stratos.cloud.controller.pojo.ClusterContext; -import org.apache.stratos.cloud.controller.pojo.MemberContext; -import org.apache.stratos.cloud.controller.runtime.FasterLookUpDataHolder; -import org.apache.stratos.cloud.controller.util.CloudControllerUtil; -import org.apache.stratos.common.constants.StratosConstants; -import org.apache.stratos.kubernetes.client.model.Container; -import org.apache.stratos.kubernetes.client.model.Label; -import org.apache.stratos.kubernetes.client.model.Manifest; -import org.apache.stratos.kubernetes.client.model.Pod; -import org.apache.stratos.kubernetes.client.model.ReplicationController; -import org.apache.stratos.kubernetes.client.model.Selector; -import org.apache.stratos.kubernetes.client.model.State; - -import com.google.common.base.Function; - -/** - * Is responsible for converting a {@link MemberContext} object to a Kubernetes - * {@link ReplicationController} Object. - */ -public class MemberContextToReplicationController implements - Function<MemberContext, ReplicationController> { - - private FasterLookUpDataHolder dataHolder = FasterLookUpDataHolder.getInstance(); - - @Override - public ReplicationController apply(MemberContext memberContext) { - - String clusterId = memberContext.getClusterId(); - ClusterContext clusterContext = dataHolder.getClusterContext(clusterId); - - ReplicationController contr = new ReplicationController(); - contr.setId(clusterContext.getClusterId()); - contr.setKind("ReplicationController"); - contr.setApiVersion("v1beta1"); - State desiredState = new State(); - String minReplicas = CloudControllerUtil.getProperty(clusterContext.getProperties(), - StratosConstants.KUBERNETES_MIN_REPLICAS); - desiredState.setReplicas(Integer.parseInt(minReplicas)); - Selector selector = new Selector(); - selector.setName(clusterContext.getClusterId()); - desiredState.setReplicaSelector(selector); - - Pod podTemplate = new Pod(); - State podState = new State(); - Manifest manifest = new Manifest(); - manifest.setVersion("v1beta1"); - manifest.setId(clusterContext.getClusterId()); - - MemberContextToKubernetesContainer containerFunc = new MemberContextToKubernetesContainer(); - Container container = containerFunc.apply(memberContext); - - manifest.setContainers(new Container[] { container }); - - podState.setManifest(manifest); - podTemplate.setDesiredState(podState); - Label l1 = new Label(); - l1.setName(clusterContext.getClusterId()); - podTemplate.setLabels(l1); - - desiredState.setPodTemplate(podTemplate); - contr.setDesiredState(desiredState); - - Label l2 = new Label(); - l2.setName(clusterContext.getClusterId()); - contr.setLabels(l2); - - return contr; - } - -}
