You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ni...@apache.org on 2013/12/01 11:58:57 UTC
[03/12] cleaning up CC, find bug amendments,
removing deprecated classes
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/c883ee2a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/axiom/parser/ServiceConfigParser.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/axiom/parser/ServiceConfigParser.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/axiom/parser/ServiceConfigParser.java
deleted file mode 100644
index 540ec2c..0000000
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/axiom/parser/ServiceConfigParser.java
+++ /dev/null
@@ -1,563 +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.axiom.parser;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import javax.xml.namespace.QName;
-
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMNode;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.cloud.controller.axiom.AxiomXpathParserUtil;
-import org.apache.stratos.cloud.controller.exception.MalformedConfigurationFileException;
-import org.apache.stratos.cloud.controller.pojo.AppType;
-import org.apache.stratos.cloud.controller.pojo.Cartridge;
-import org.apache.stratos.cloud.controller.pojo.IaasProvider;
-import org.apache.stratos.cloud.controller.pojo.PortMapping;
-import org.apache.stratos.cloud.controller.pojo.ServiceContext;
-import org.apache.stratos.cloud.controller.runtime.FasterLookUpDataHolder;
-import org.apache.stratos.cloud.controller.util.CloudControllerConstants;
-
-/**
- * Parse the cartridge definition files.
- *
- * @author nirmal
- *
- */
-public class ServiceConfigParser {
- private static final Log log = LogFactory.getLog(ServiceConfigParser.class);
-
- /**
- * Parse the config file.
- *
- * @param elt
- * document element.
- * @throws MalformedConfigurationFileException
- */
- public static List<Cartridge>
- parse(String file, OMElement elt) throws MalformedConfigurationFileException {
-
- return extractCartridges(file, elt);
- }
-
- public static List<ServiceContext> extractServiceContexts(File file, OMElement elt) {
-
- String fileName = file.getAbsolutePath();
- List<ServiceContext> serviceContextList = new ArrayList<ServiceContext>();
-
- // services can be found from this XPATH
- String xpath = CloudControllerConstants.SERVICES_ELEMENT_XPATH;
- List<?> serviceNodes = AxiomXpathParserUtil.getMatchingNodes(xpath, elt);
-
- if (serviceNodes == null || serviceNodes.isEmpty()) {
- // or from this XPATH
- xpath = CloudControllerConstants.SERVICE_ELEMENT_XPATH;
- serviceNodes = AxiomXpathParserUtil.getMatchingNodes(xpath, elt);
- }
-
- if (serviceNodes == null || serviceNodes.isEmpty()) {
- log.warn("No service found in this configuration file : " + fileName);
- return serviceContextList;
- }
-
- for (Object obj : serviceNodes) {
- ServiceContext serviceCtxt = new ServiceContext();
-
- // set the definition file
- serviceCtxt.setFile(file);
-
- if (obj instanceof OMNode) {
- OMNode serviceNode = (OMNode) obj;
-
- if (serviceNode.getType() == OMNode.ELEMENT_NODE) {
-
- OMElement node = (OMElement) serviceNode;
-
- if (node.getAttribute(new QName(CloudControllerConstants.SERVICE_DOMAIN_ATTR)) == null) {
- String msg =
- "Essential '" + CloudControllerConstants.SERVICE_DOMAIN_ATTR +
- "' " + "attribute of '" +
- CloudControllerConstants.SERVICE_ELEMENT +
- "' element cannot be found in " + fileName;
-
- handleException(msg);
- }
-
- // set domain name
- serviceCtxt.setClusterId(node.getAttribute(new QName(
- CloudControllerConstants.SERVICE_DOMAIN_ATTR))
- .getAttributeValue());
- // set tenant range
- serviceCtxt.setTenantRange(node.getAttribute(new QName(
- CloudControllerConstants.SERVICE_TENANT_RANGE_ATTR))
- .getAttributeValue());
-
- serviceCtxt.setAutoScalerPolicyName(node.getAttribute(new QName(
- CloudControllerConstants.POLICY_NAME))
- .getAttributeValue());
-
- OMNode cartridgeNode =
- AxiomXpathParserUtil.getFirstMatchingNode(xpath +
- CloudControllerConstants.CARTRIDGE_ELEMENT_XPATH,
- node);
-
- if (cartridgeNode != null && cartridgeNode.getType() == OMNode.ELEMENT_NODE) {
-
- OMElement cartridgeElt = (OMElement) cartridgeNode;
-
- String type =
- cartridgeElt.getAttribute(new QName(
- CloudControllerConstants.TYPE_ATTR))
- .getAttributeValue();
-
- if ("".equals(type)) {
- String msg =
- "Essential '" + CloudControllerConstants.TYPE_ATTR + "' " +
- " attribute of '" +
- CloudControllerConstants.CARTRIDGE_ELEMENT +
- "' of '" +
- CloudControllerConstants.SERVICE_ELEMENT +
- "' element cannot be found in " + fileName;
-
- handleException(msg);
- }
-
- // set Cartridge type
- serviceCtxt.setCartridgeType(type);
-
- }
- if (serviceCtxt.getCartridgeType() == null) {
- String msg =
- "Essential '" + CloudControllerConstants.CARTRIDGE_ELEMENT +
- "' element" + " has not specified in " + fileName;
- handleException(msg);
- }
-
- // load payload
- loadPayload(AxiomXpathParserUtil.getMatchingNodes(xpath +
- CloudControllerConstants.PAYLOAD_ELEMENT_XPATH,
- node), serviceCtxt);
-
- // load host name
- loadHostName(AxiomXpathParserUtil.getMatchingNodes(xpath +
- CloudControllerConstants.HOST_ELEMENT_XPATH,
- node), serviceCtxt);
-
- // load properties
- IaasProviderConfigParser.loadProperties(fileName, node,
- serviceCtxt.getProperties());
-
- }
- }
-
- FasterLookUpDataHolder.getInstance().addServiceContext(serviceCtxt);
- // add each domain specific template to list
- serviceContextList.add(serviceCtxt);
- }
-
- return serviceContextList;
-
- }
-
- private static void loadHostName(final List<OMNode> nodes, final ServiceContext serviceCtxt) {
-
- if (nodes == null || nodes.isEmpty()) {
- return;
- }
-
- // read host element
- if (nodes.get(0).getType() == OMNode.ELEMENT_NODE) {
-
- OMElement node = (OMElement) nodes.get(0);
-
- if (node.getText() != null) {
- serviceCtxt.setHostName(node.getText());
- }
-
- }
- }
-
- private static void loadPayload(final List<OMNode> nodes, final ServiceContext serviceCtxt) {
-
- if (nodes == null || nodes.isEmpty()) {
- return;
- }
-
- // read payload element
- if (nodes.get(0).getType() == OMNode.ELEMENT_NODE) {
-
- OMElement node = (OMElement) nodes.get(0);
-
- if (node.getText() != null) {
- StringBuilder payload = new StringBuilder(node.getText());
- serviceCtxt.setPayload(payload);
-
- }
-
- }
-
- }
-
- private static List<Cartridge>
- extractCartridges(String file, OMElement elt) throws MalformedConfigurationFileException {
-
- FasterLookUpDataHolder dataHolder = FasterLookUpDataHolder.getInstance();
-
- List<IaasProvider> iaasProviders = dataHolder.getIaasProviders();
-
- if (iaasProviders == null) {
- dataHolder.setIaasProviders((iaasProviders = new ArrayList<IaasProvider>()));
- }
-
- List<Cartridge> cartridges = new ArrayList<Cartridge>();
-
- String xpath = CloudControllerConstants.CARTRIDGES_ELEMENT_XPATH;
-
- // cartridges can be found from this XPATH
- List<?> cartridgeNodes = AxiomXpathParserUtil.getMatchingNodes(xpath, elt);
-
- if (cartridgeNodes == null || cartridgeNodes.isEmpty()) {
- // or from this XPATH
- xpath = CloudControllerConstants.CARTRIDGE_ELEMENT_XPATH;
- cartridgeNodes = AxiomXpathParserUtil.getMatchingNodes(xpath, elt);
- }
-
- if (cartridgeNodes == null || cartridgeNodes.isEmpty()) {
- log.warn("No cartridge found in this configuration file : " + file);
- return cartridges;
- }
-
- for (Object obj : cartridgeNodes) {
-
- if (obj instanceof OMNode) {
- OMNode cartridgeNode = (OMNode) obj;
-
- if (cartridgeNode.getType() == OMNode.ELEMENT_NODE) {
-
- OMElement cartridgeElement = (OMElement) cartridgeNode;
-
- // retrieve Attributes of a Cartridge definition
- String type =
- cartridgeElement.getAttributeValue(new QName(
- CloudControllerConstants.TYPE_ATTR));
- String host =
- cartridgeElement.getAttributeValue(new QName(
- CloudControllerConstants.HOST_ATTR));
- String provider =
- cartridgeElement.getAttributeValue(new QName(
- CloudControllerConstants.PROVIDER_ATTR));
-
- String version =
- cartridgeElement.getAttributeValue(new QName(
- CloudControllerConstants.VERSION_ATTR));
-
- boolean multiTenant =
- Boolean.valueOf(cartridgeElement.getAttributeValue(new QName(
- CloudControllerConstants.MULTI_TENANT_ATTR)));
-
- Cartridge aCartridge;
-
- if ((aCartridge = dataHolder.getCartridge(type)) == null) {
-
- aCartridge = new Cartridge(type, host, provider, version, multiTenant);
- }
-
- // read displayName
- Iterator<?> itName =
- cartridgeElement.getChildrenWithName(new QName(
- CloudControllerConstants.DISPLAY_NAME_ELEMENT));
-
- if (itName.hasNext()) {
- OMElement name = (OMElement) itName.next();
-
- aCartridge.setDisplayName(name.getText());
- }
-
- // read description
- Iterator<?> it =
- cartridgeElement.getChildrenWithName(new QName(
- CloudControllerConstants.DESCRIPTION_ELEMENT));
-
- if (it.hasNext()) {
- OMElement desc = (OMElement) it.next();
-
- aCartridge.setDescription(desc.getText());
- }
-
- // load properties of this cartridge
- IaasProviderConfigParser.loadProperties(file, cartridgeElement,
- aCartridge.getProperties());
-
- // retrieve the list of IaaS providers
- List<?> iaasProviderNodes =
- AxiomXpathParserUtil.getMatchingNodes(xpath +
- CloudControllerConstants.IAAS_PROVIDER_ELEMENT_XPATH,
- cartridgeElement);
-
- getIaasProviders(file, elt, iaasProviders, cartridgeElement.toString(),
- aCartridge, iaasProviderNodes);
-
- // load dirs
- List<?> deploymentNodes =
- AxiomXpathParserUtil.getMatchingNodes(xpath +
- CloudControllerConstants.DEPLOYMENT_ELEMENT_XPATH,
- cartridgeElement);
- setDeploymentDirs(file, cartridgeElement.toString(), aCartridge,
- deploymentNodes);
-
- // load port mappings
- List<?> portMappingNodes =
- AxiomXpathParserUtil.getMatchingNodes(xpath +
- CloudControllerConstants.PORT_MAPPING_ELEMENT_XPATH,
- cartridgeElement);
- getPortMappings(file, cartridgeElement.toString(), aCartridge, portMappingNodes);
-
- // load appTypes
- List<?> appTypesNodes =
- AxiomXpathParserUtil.getMatchingNodes(xpath +
- CloudControllerConstants.APP_TYPES_ELEMENT_XPATH,
- cartridgeElement);
- getAppTypes(file, cartridgeElement.toString(), aCartridge, appTypesNodes);
-
- cartridges.add(aCartridge);
-
- if (dataHolder.getCartridge(type) == null) {
- dataHolder.addCartridge(aCartridge);
- }
- }
- }
- }
-
- return cartridges;
- }
-
- /**
- * @param iaasProviders
- * @param cartridgeElementString
- * @param aCartridge
- * @param iaasProviderNodes
- */
- private static void getIaasProviders(final String fileName, final OMElement elt,
- List<IaasProvider> iaasProviders, String cartridgeElementString, Cartridge aCartridge,
- List<?> iaasProviderNodes) {
- for (Object nodeObj : iaasProviderNodes) {
- if (nodeObj instanceof OMNode) {
- OMNode iaasProviderNode = (OMNode) nodeObj;
-
- if (iaasProviderNode.getType() == OMNode.ELEMENT_NODE) {
-
- OMElement iaasElt = (OMElement) iaasProviderNode;
-
- // add the IaasProvider to this cartridge
- aCartridge.addIaasProvider(IaasProviderConfigParser.getIaasProvider(fileName,
- elt,
- iaasElt,
- iaasProviders));
-
- } else {
- String msg =
- "Essential '" + CloudControllerConstants.IAAS_PROVIDER_ELEMENT +
- "' element cannot" + " be found in " +
- cartridgeElementString + " of " + fileName;
- handleException(msg);
- }
-
- }
- }
- }
-
- /**
- * @param cartridgeElementString
- * Cartridges section as a {@link String}
- * @param aCartridge
- * {@link Cartridge} instance.
- * @param deploymentNodes
- * list of deployment directory nodes
- */
- private static void setDeploymentDirs(String fileName, String cartridgeElementString,
- Cartridge aCartridge, List<?> deploymentNodes) {
- Object nodeObj;
- if ((nodeObj = deploymentNodes.get(0)) instanceof OMNode) {
- OMNode deploymentNode = (OMNode) nodeObj;
-
- if (deploymentNode.getType() == OMNode.ELEMENT_NODE) {
-
- OMElement deployElt = (OMElement) deploymentNode;
-
- if (deployElt.getAttributeValue(new QName(CloudControllerConstants.BASE_DIR_ATTR)) != null) {
-
- aCartridge.setBaseDir(deployElt.getAttributeValue(new QName(
- CloudControllerConstants.BASE_DIR_ATTR)));
- }
-
- for (Iterator<?> iterator =
- deployElt.getChildrenWithName(new QName(
- CloudControllerConstants.DIRECTORY_ELEMENT)); iterator.hasNext();) {
- OMElement dir = (OMElement) iterator.next();
- aCartridge.addDeploymentDir(dir.getText());
- }
-
- } else {
- String msg =
- "Essential '" + CloudControllerConstants.DEPLOYMENT_ELEMENT +
- "' element cannot" + " be found in " + cartridgeElementString +
- " of " + fileName;
- handleException(msg);
- }
-
- }
- }
-
- /**
- * @param cartridgeElementString
- * Cartridges section as a {@link String}
- * @param aCartridge
- * {@link Cartridge} instance.
- * @param portMappingNodes
- * nodes of port mapping elements
- */
- private static void getPortMappings(final String fileName, String cartridgeElementString,
- Cartridge aCartridge, List<?> portMappingNodes) {
- Object nodeObj;
- if (!portMappingNodes.isEmpty()) {
- if ((nodeObj = portMappingNodes.get(0)) instanceof OMNode) {
- OMNode portMappingNode = (OMNode) nodeObj;
-
- if (portMappingNode.getType() == OMNode.ELEMENT_NODE) {
-
- OMElement portMappingElt = (OMElement) portMappingNode;
-
- for (Iterator<?> iterator =
- portMappingElt.getChildrenWithName(new QName(
- CloudControllerConstants.HTTP_ELEMENT)); iterator.hasNext();) {
- OMElement httpElt = (OMElement) iterator.next();
-
- String port =
- httpElt.getAttributeValue(new QName(
- CloudControllerConstants.PORT_ATTR));
- String proxyPort =
- httpElt.getAttributeValue(new QName(
- CloudControllerConstants.PROXY_PORT_ATTR));
-
- PortMapping mapping =
- new PortMapping(
- CloudControllerConstants.HTTP_ELEMENT,
- port, proxyPort);
-
- aCartridge.addPortMapping(mapping);
- }
-
- for (Iterator<?> iterator =
- portMappingElt.getChildrenWithName(new QName(
- CloudControllerConstants.HTTPS_ELEMENT)); iterator.hasNext();) {
- OMElement httpsElt = (OMElement) iterator.next();
-
- String port =
- httpsElt.getAttributeValue(new QName(
- CloudControllerConstants.PORT_ATTR));
- String proxyPort =
- httpsElt.getAttributeValue(new QName(
- CloudControllerConstants.PROXY_PORT_ATTR));
-
- PortMapping mapping =
- new PortMapping(
- CloudControllerConstants.HTTPS_ELEMENT,
- port, proxyPort);
-
- aCartridge.addPortMapping(mapping);
- }
-
- } else {
- String msg =
- "Essential '" + CloudControllerConstants.PORT_MAPPING_ELEMENT +
- "' element cannot" + " be found in " +
- cartridgeElementString + " of " + fileName;
- handleException(msg);
- }
-
- }
- }
- }
-
- /**
- * @param cartridgeElementString
- * Cartridges section as a {@link String}
- * @param aCartridge
- * {@link org.apache.stratos.cloud.controller.pojo.Cartridge} instance.
- * @param appTypesNodes
- * nodes of App types.
- */
- private static void getAppTypes(final String fileName, String cartridgeElementString,
- Cartridge aCartridge, List<?> appTypesNodes) {
- Object nodeObj;
- if (!appTypesNodes.isEmpty()) {
- if ((nodeObj = appTypesNodes.get(0)) instanceof OMNode) {
- OMNode appTypeNode = (OMNode) nodeObj;
-
- if (appTypeNode.getType() == OMNode.ELEMENT_NODE) {
-
- OMElement appTypesElt = (OMElement) appTypeNode;
-
- for (Iterator<?> iterator =
- appTypesElt.getChildrenWithName(new QName(
- CloudControllerConstants.APP_TYPE_ELEMENT)); iterator.hasNext();) {
- OMElement appElt = (OMElement) iterator.next();
-
- String name =
- appElt.getAttributeValue(new QName(
- CloudControllerConstants.NAME_ATTR));
- String appSpecificMapping =
- appElt.getAttributeValue(new QName(
- CloudControllerConstants.APP_SPECIFIC_MAPPING_ATTR));
-
- AppType appType;
-
- if (appSpecificMapping == null) {
- appType = new AppType(name);
- } else {
- appType = new AppType(name, Boolean.valueOf(appSpecificMapping));
- }
-
- aCartridge.addAppType(appType);
- }
-
- } else {
- String msg =
- "Essential '" + CloudControllerConstants.APP_TYPE_ELEMENT +
- "' element cannot" + " be found in " +
- cartridgeElementString + " of " + fileName;
- handleException(msg);
- }
-
- }
- }
- }
-
- private static void
- handleException(final String msg) throws MalformedConfigurationFileException {
- log.error(msg);
- throw new MalformedConfigurationFileException(msg);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/c883ee2a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/deployers/CartridgeDeployer.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/deployers/CartridgeDeployer.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/deployers/CartridgeDeployer.java
index d2c50fa..4e087b6 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/deployers/CartridgeDeployer.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/deployers/CartridgeDeployer.java
@@ -25,7 +25,6 @@ import org.apache.axis2.deployment.DeploymentException;
import org.apache.axis2.deployment.repository.util.DeploymentFileData;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.cloud.controller.axiom.AxiomXpathParser;
import org.apache.stratos.cloud.controller.axiom.AxiomXpathParserUtil;
import org.apache.stratos.cloud.controller.axiom.parser.CartridgeConfigParser;
import org.apache.stratos.cloud.controller.concurrent.ThreadExecutor;
@@ -33,13 +32,9 @@ import org.apache.stratos.cloud.controller.exception.CloudControllerException;
import org.apache.stratos.cloud.controller.exception.MalformedConfigurationFileException;
import org.apache.stratos.cloud.controller.interfaces.Iaas;
import org.apache.stratos.cloud.controller.pojo.Cartridge;
-import org.apache.stratos.cloud.controller.pojo.Host;
import org.apache.stratos.cloud.controller.pojo.IaasProvider;
-import org.apache.stratos.cloud.controller.pojo.Region;
-import org.apache.stratos.cloud.controller.pojo.Zone;
import org.apache.stratos.cloud.controller.runtime.FasterLookUpDataHolder;
import org.apache.stratos.cloud.controller.topology.TopologyBuilder;
-import org.apache.stratos.cloud.controller.util.*;
import org.wso2.carbon.utils.CarbonUtils;
import java.io.File;
@@ -186,20 +181,20 @@ public class CartridgeDeployer extends AbstractDeployer{
Iaas iaas = (Iaas) Class.forName(iaasProvider.getClassName()).newInstance();
iaas.buildComputeServiceAndTemplate(iaasProvider);
iaasProvider.setIaas(iaas);
- if(iaasProvider.getListOfRegions() != null) {
- for(Region region : iaasProvider.getListOfRegions()) {
- iaas.buildComputeServiceAndTemplate(region);
- for(Zone zone : region.getListOfZones()) {
- zone.setComputeService(region.getComputeService());
- iaas.buildTemplate(zone);
- for(Host host: zone.getListOfHosts()) {
- host.setComputeService(region.getComputeService());
- iaas.buildTemplate(host);
- }
- }
-
- }
- }
+// if(iaasProvider.getListOfRegions() != null) {
+// for(Region region : iaasProvider.getListOfRegions()) {
+// iaas.buildComputeServiceAndTemplate(region);
+// for(Zone zone : region.getListOfZones()) {
+// zone.setComputeService(region.getComputeService());
+// iaas.buildTemplate(zone);
+// for(Host host: zone.getListOfHosts()) {
+// host.setComputeService(region.getComputeService());
+// iaas.buildTemplate(host);
+// }
+// }
+//
+// }
+// }
} catch (Exception e) {
rename();
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/c883ee2a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/deployers/CloudControllerDeployer.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/deployers/CloudControllerDeployer.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/deployers/CloudControllerDeployer.java
index 82ffddb..0b60e97 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/deployers/CloudControllerDeployer.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/deployers/CloudControllerDeployer.java
@@ -25,7 +25,6 @@ import org.apache.axis2.deployment.DeploymentException;
import org.apache.axis2.deployment.repository.util.DeploymentFileData;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.cloud.controller.axiom.AxiomXpathParser;
import org.apache.stratos.cloud.controller.axiom.AxiomXpathParserUtil;
import org.apache.stratos.cloud.controller.axiom.parser.CloudControllerConfigParser;
import org.apache.stratos.cloud.controller.pojo.IaasProvider;
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/c883ee2a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/deployers/ServiceDeployer.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/deployers/ServiceDeployer.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/deployers/ServiceDeployer.java
deleted file mode 100644
index 2875ce5..0000000
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/deployers/ServiceDeployer.java
+++ /dev/null
@@ -1,152 +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.deployers;
-
-import org.apache.axiom.om.OMElement;
-import org.apache.axis2.context.ConfigurationContext;
-import org.apache.axis2.deployment.AbstractDeployer;
-import org.apache.axis2.deployment.DeploymentException;
-import org.apache.axis2.deployment.repository.util.DeploymentFileData;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.cloud.controller.axiom.AxiomXpathParser;
-import org.apache.stratos.cloud.controller.axiom.AxiomXpathParserUtil;
-import org.apache.stratos.cloud.controller.axiom.parser.ServiceConfigParser;
-import org.apache.stratos.cloud.controller.exception.MalformedConfigurationFileException;
-import org.apache.stratos.cloud.controller.topology.TopologyBuilder;
-import org.apache.stratos.cloud.controller.pojo.ServiceContext;
-import org.apache.stratos.cloud.controller.runtime.FasterLookUpDataHolder;
-import org.wso2.carbon.utils.CarbonUtils;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-/**
- * All the {@link org.apache.stratos.cloud.controller.util.Cartridge}s will get deployed / undeployed / updated via this class.
- */
-//public class ServiceDeployer extends AbstractDeployer{
-
-// private static final Log log = LogFactory.getLog(ServiceDeployer.class);
-//
-// private FasterLookUpDataHolder serviceContextLookUpStructure;
-// private Map<String, List<ServiceContext>> fileToServiceContextListMap;
-// private File servicesSchema, serviceSchema;
-//
-// @Override
-// public void init(ConfigurationContext arg0) {
-// fileToServiceContextListMap = new ConcurrentHashMap<String, List<ServiceContext>>();
-// String etcDir = CarbonUtils.getCarbonConfigDirPath() + File.separator + "etc" + File.separator;
-// servicesSchema = new File(etcDir+"services.xsd");
-// serviceSchema = new File(etcDir+"service.xsd");
-// }
-//
-// @Override
-// public void setDirectory(String arg0) {
-// // component xml handles this
-// }
-//
-// @Override
-// public void setExtension(String arg0) {
-// // component xml handles this
-// }
-//
-// public void deploy(DeploymentFileData deploymentFileData) throws DeploymentException {
-//
-// File file = deploymentFileData.getFile();
-// log.debug("Started to deploy the deployment artefact: " + file);
-// serviceContextLookUpStructure = FasterLookUpDataHolder.getInstance();
-//
-// try {
-// OMElement docElt = AxiomXpathParserUtil.parse(file);
-// String fileName = file.getAbsolutePath();
-//
-// // validate
-// validateService(docElt, fileName);
-//
-// // deploy
-// List<ServiceContext> services = ServiceConfigParser.extractServiceContexts(file, docElt);
-//
-// // update map
-// fileToServiceContextListMap.put(deploymentFileData.getAbsolutePath(),
-// new ArrayList<ServiceContext>(services));
-//
-// log.info("Successfully deployed the Service definition specified at " +
-// deploymentFileData.getAbsolutePath());
-// } catch (Exception e) {
-// String msg = "Invalid deployment artefact at " + deploymentFileData.getAbsolutePath();
-// // back up the file
-// File f = file;
-// f.renameTo(new File(deploymentFileData.getAbsolutePath() + ".back"));
-// log.error(msg, e);
-// throw new DeploymentException(msg, e);
-// }
-// }
-//
-// private void validateService(final OMElement elt, final String fileName) throws Exception {
-// boolean validated = false;
-// Exception firstException = null;
-//
-// try{
-// // first try to validate using services schema
-// AxiomXpathParserUtil.validate(elt, servicesSchema);
-// validated = true;
-// log.debug("Service validation was successful.");
-//
-// }catch (Exception e) {
-// firstException = e;
-// }
-//
-// if(!validated){
-// try{
-// // Now try to validate using service schema
-// AxiomXpathParserUtil.validate(elt, serviceSchema);
-// validated = true;
-// log.debug("Service validation was successful.");
-//
-// }catch (Exception e) {
-// String msg = "Service XML validation failed. Invalid Service XML: "+fileName;
-// log.error(msg, firstException);
-// throw new MalformedConfigurationFileException(msg, firstException);
-// }
-// }
-//
-//
-// }
-//
-// public void undeploy(String file) throws DeploymentException {
-//
-// serviceContextLookUpStructure = FasterLookUpDataHolder.getInstance();
-//
-// // grab the entry from Map
-// if(fileToServiceContextListMap.containsKey(file)){
-// // remove 'em all
-// for (ServiceContext ctxt : fileToServiceContextListMap.get(file)) {
-// serviceContextLookUpStructure.removeServiceContext(ctxt);
-// TopologyBuilder.handleClusterRemoved(ctxt);
-// // remove from the topology
-// }
-// log.info("Successfully undeployed the Service definition specified at "+file);
-// }
-//
-// }
-
-//}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/c883ee2a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/deployment/partition/PartitionGroup.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/deployment/partition/PartitionGroup.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/deployment/partition/PartitionGroup.java
index 2a74c0a..18dd0ce 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/deployment/partition/PartitionGroup.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/deployment/partition/PartitionGroup.java
@@ -20,8 +20,6 @@
package org.apache.stratos.cloud.controller.deployment.partition;
import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.List;
/**
* The model class for PartitionGroup definition.
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/c883ee2a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/AWSEC2Iaas.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/AWSEC2Iaas.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/AWSEC2Iaas.java
index d79c266..92d4cd6 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/AWSEC2Iaas.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/AWSEC2Iaas.java
@@ -45,18 +45,19 @@ import org.jclouds.compute.domain.NodeMetadata;
import org.jclouds.compute.domain.Template;
import org.jclouds.compute.domain.TemplateBuilder;
import org.jclouds.compute.options.TemplateOptions;
-import org.jclouds.ec2.EC2Api;
import org.jclouds.ec2.EC2ApiMetadata;
import org.jclouds.ec2.EC2Client;
import org.jclouds.ec2.domain.AvailabilityZoneInfo;
import org.jclouds.ec2.domain.KeyPair;
import org.jclouds.ec2.domain.PublicIpInstanceIdPair;
import org.jclouds.ec2.features.AvailabilityZoneAndRegionApi;
+import org.jclouds.ec2.options.DescribeAvailabilityZonesOptions;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Set;
+@SuppressWarnings("deprecation")
public class AWSEC2Iaas extends Iaas {
private static final Log log = LogFactory.getLog(AWSEC2Iaas.class);
@@ -292,7 +293,7 @@ public class AWSEC2Iaas extends Iaas {
log.info("Successfully associated public IP ");
return true;
} catch (Exception e) {
- log.error("Exception in associating public IP " + e.getMessage());
+ log.debug("Exception in associating public IP " + e.getMessage());
return false;
}
}
@@ -353,7 +354,7 @@ public class AWSEC2Iaas extends Iaas {
.get();
Set<AvailabilityZoneInfo> availabilityZones =
zoneRegionApi.describeAvailabilityZonesInRegion(region,
- null);
+ new DescribeAvailabilityZonesOptions[0]);
for (AvailabilityZoneInfo zoneInfo : availabilityZones) {
String configuredZone = zoneInfo.getZone();
if (zone.equalsIgnoreCase(configuredZone)) {
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/c883ee2a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/OpenstackNovaIaas.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/OpenstackNovaIaas.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/OpenstackNovaIaas.java
index 6e445a3..070c356 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/OpenstackNovaIaas.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/OpenstackNovaIaas.java
@@ -177,7 +177,8 @@ public class OpenstackNovaIaas extends Iaas {
ComputeServiceContext context = iaasInfo.getComputeService()
.getContext();
- NovaApi novaApi = context.unwrap(NovaApiMetadata.CONTEXT_TOKEN).getApi();
+ @SuppressWarnings("deprecation")
+ NovaApi novaApi = context.unwrap(NovaApiMetadata.CONTEXT_TOKEN).getApi();
KeyPairApi api = novaApi.getKeyPairExtensionForZone(region).get();
@@ -204,7 +205,8 @@ public class OpenstackNovaIaas extends Iaas {
ComputeServiceContext context = iaasInfo.getComputeService()
.getContext();
- NovaApi novaClient = context.unwrap(NovaApiMetadata.CONTEXT_TOKEN).getApi();
+ @SuppressWarnings("deprecation")
+ NovaApi novaClient = context.unwrap(NovaApiMetadata.CONTEXT_TOKEN).getApi();
String region = ComputeServiceBuilderUtil.extractRegion(iaasInfo);
FloatingIPApi floatingIp = novaClient.getFloatingIPExtensionForZone(
@@ -273,7 +275,8 @@ public class OpenstackNovaIaas extends Iaas {
ComputeServiceContext context = iaasInfo.getComputeService()
.getContext();
- NovaApi novaApi = context.unwrap(NovaApiMetadata.CONTEXT_TOKEN).getApi();
+ @SuppressWarnings("deprecation")
+ NovaApi novaApi = context.unwrap(NovaApiMetadata.CONTEXT_TOKEN).getApi();
String region = ComputeServiceBuilderUtil.extractRegion(iaasInfo);
FloatingIPApi floatingIPApi = novaApi
@@ -309,6 +312,7 @@ public class OpenstackNovaIaas extends Iaas {
}
ComputeServiceContext context = iaasInfo.getComputeService().getContext();
+ @SuppressWarnings("deprecation")
NovaApi api = context.unwrap(NovaApiMetadata.CONTEXT_TOKEN).getApi();
for (String configuredZone : api.getConfiguredZones()) {
if (region.equalsIgnoreCase(configuredZone)) {
@@ -342,6 +346,7 @@ public class OpenstackNovaIaas extends Iaas {
throw new InvalidHostException(msg);
}
ComputeServiceContext context = iaasInfo.getComputeService().getContext();
+ @SuppressWarnings("deprecation")
NovaApi api = context.unwrap(NovaApiMetadata.CONTEXT_TOKEN).getApi();
HostAggregateApi hostApi = api.getHostAggregateExtensionForZone(zone).get();
for (HostAggregate hostAggregate : hostApi.list()) {
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/c883ee2a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java
index 2785df0..372cc58 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java
@@ -18,9 +18,6 @@
*/
package org.apache.stratos.cloud.controller.impl;
-import com.google.common.collect.Lists;
-
-import org.apache.commons.io.FileUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.stratos.cloud.controller.concurrent.ThreadExecutor;
@@ -36,39 +33,27 @@ import org.apache.stratos.cloud.controller.exception.UnregisteredCartridgeExcept
import org.apache.stratos.cloud.controller.exception.UnregisteredClusterException;
import org.apache.stratos.cloud.controller.interfaces.CloudControllerService;
import org.apache.stratos.cloud.controller.interfaces.Iaas;
-import org.apache.stratos.cloud.controller.persist.Deserializer;
import org.apache.stratos.cloud.controller.pojo.Cartridge;
import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
import org.apache.stratos.cloud.controller.pojo.ClusterContext;
-import org.apache.stratos.cloud.controller.pojo.IaasContext;
import org.apache.stratos.cloud.controller.pojo.IaasProvider;
import org.apache.stratos.cloud.controller.pojo.MemberContext;
import org.apache.stratos.cloud.controller.pojo.Registrant;
-import org.apache.stratos.cloud.controller.pojo.ServiceContext;
import org.apache.stratos.cloud.controller.publisher.CartridgeInstanceDataPublisherTask;
-import org.apache.stratos.cloud.controller.registry.RegistryManager;
import org.apache.stratos.cloud.controller.runtime.FasterLookUpDataHolder;
import org.apache.stratos.cloud.controller.topic.TopologySynchronizerTask;
import org.apache.stratos.cloud.controller.topology.TopologyBuilder;
import org.apache.stratos.cloud.controller.topology.TopologyEventMessageDelegator;
-import org.apache.stratos.cloud.controller.topology.TopologyManager;
import org.apache.stratos.cloud.controller.util.*;
import org.apache.stratos.cloud.controller.validate.interfaces.PartitionValidator;
import org.jclouds.compute.ComputeService;
-import org.jclouds.compute.domain.ComputeMetadata;
import org.jclouds.compute.domain.NodeMetadata;
-import org.jclouds.compute.domain.NodeMetadata.Status;
import org.jclouds.compute.domain.Template;
-import org.jclouds.compute.domain.internal.NodeMetadataImpl;
import org.wso2.carbon.ntask.common.TaskException;
import org.wso2.carbon.ntask.core.TaskInfo;
import org.wso2.carbon.ntask.core.TaskInfo.TriggerInfo;
import org.wso2.carbon.ntask.core.TaskManager;
import org.wso2.carbon.ntask.core.service.TaskService;
-import org.wso2.carbon.registry.core.exceptions.RegistryException;
-
-import java.io.File;
-import java.io.IOException;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.locks.Lock;
@@ -285,206 +270,194 @@ public class CloudControllerServiceImpl implements CloudControllerService {
}
@Override
- public MemberContext startInstance(MemberContext member) throws IllegalArgumentException, UnregisteredCartridgeException {
+ public MemberContext startInstance(MemberContext member) throws IllegalArgumentException,
+ UnregisteredCartridgeException {
if (member == null) {
String msg = "Instance start-up failed. Member is null.";
log.error(msg);
throw new IllegalArgumentException(msg);
}
-
+
String clusterId = member.getClusterId();
Partition partition = member.getPartition();
-
+
log.info("Starting new instance of cluster : " + clusterId);
- ComputeService computeService = null;
- Template template = null;
-
- if(partition == null) {
- String msg = "Instance start-up failed. Specified Partition is null. Cluster id: "+clusterId;
+ ComputeService computeService = null;
+ Template template = null;
+
+ if (partition == null) {
+ String msg =
+ "Instance start-up failed. Specified Partition is null. Cluster id: " +
+ clusterId;
log.error(msg);
throw new IllegalArgumentException(msg);
- }
-
+ }
+
String partitionId = partition.getId();
ClusterContext ctxt = dataHolder.getClusterContext(clusterId);
-
- if(ctxt == null) {
- String msg = "Instance start-up failed. Invalid cluster id: "+clusterId;
+
+ if (ctxt == null) {
+ String msg = "Instance start-up failed. Invalid cluster id: " + clusterId;
log.error(msg);
throw new IllegalArgumentException(msg);
}
-
+
String cartridgeType = ctxt.getCartridgeType();
-
+
Cartridge cartridge = dataHolder.getCartridge(cartridgeType);
-
- if(cartridge == null) {
- String msg = "Instance start-up failed. No valid Cartridge found for type: "+cartridgeType;
+
+ if (cartridge == null) {
+ String msg =
+ "Instance start-up failed. No valid Cartridge found for type: " +
+ cartridgeType;
log.error(msg);
throw new UnregisteredCartridgeException(msg);
}
-
+
member.setCartridgeType(cartridgeType);
-
- final Lock lock = new ReentrantLock();
-
- IaasProvider iaas = cartridge.getIaasProviderOfPartition(partitionId);
- if(iaas == null) {
- String msg = "Instance start-up failed for cluster: "+clusterId+". " +
- "There's no IaaS provided for the partition: "+partitionId+
- " and for the Cartridge type: "+cartridgeType;
- log.fatal(msg);
+
+ final Lock lock = new ReentrantLock();
+
+ IaasProvider iaas = cartridge.getIaasProviderOfPartition(partitionId);
+ if (iaas == null) {
+ String msg =
+ "Instance start-up failed for cluster: " + clusterId + ". " +
+ "There's no IaaS provided for the partition: " + partitionId +
+ " and for the Cartridge type: " + cartridgeType;
+ log.fatal(msg);
+ throw new CloudControllerException(msg);
+ }
+ try {
+ // generating the Unique member ID...
+ String memberID = generateMemberId(clusterId);
+ member.setMemberId(memberID);
+ // have to add memberID to the payload
+ StringBuilder payload = new StringBuilder(ctxt.getPayload());
+ payload.append(",");
+ payload.append("MEMBER_ID=" + memberID);
+ if (log.isDebugEnabled()) {
+ log.debug("Payload: " + payload.toString());
+ }
+ // reloading the payload with memberID
+ iaas.setPayload(payload.toString().getBytes());
+
+ iaas.getIaas().setDynamicPayload(iaas);
+ // get the pre built ComputeService from provider or region or zone or host
+ computeService = iaas.getComputeService();
+ template = iaas.getTemplate();
+
+ if (template == null) {
+ String msg =
+ "Failed to start an instance in " +
+ iaas.getType() +
+ ". Reason : Template is null. You have not specify a matching service " +
+ "element in the configuration file of Autoscaler.\n Hence, will try to " +
+ "start in another IaaS if available.";
+ log.error(msg);
throw new CloudControllerException(msg);
}
- try {
- //generating the Unique member ID...
- String memberID = generateMemberId(clusterId);
- member.setMemberId(memberID);
- //have to add memberID to the payload
- StringBuilder payload = new StringBuilder(ctxt.getPayload());
- payload.append(",");
- payload.append("MEMBER_ID=" + memberID);
- //reloading the payload with memberID
- iaas.setPayload(payload.toString().getBytes());
-
- iaas.getIaas().setDynamicPayload(iaas);
- // get the pre built ComputeService from provider or region or zone or host
- computeService = iaas.getComputeService();
- template = iaas.getTemplate();
-
- if (template == null) {
- String msg = "Failed to start an instance in "
- + iaas.getType()
- + ". Reason : Template is null. You have not specify a matching service "
- + "element in the configuration file of Autoscaler.\n Hence, will try to "
- + "start in another IaaS if available.";
- log.error(msg);
- throw new CloudControllerException(msg);
- }
-
- // generate the group id from domain name and sub domain
- // name.
- // Should have lower-case ASCII letters, numbers, or dashes.
- // Should have a length between 3-15
- String str = clusterId.substring(0, 10);
- String group = str.replaceAll("[^a-z0-9-]", "");
-
- NodeMetadata node;
-
- // create and start a node
- Set<? extends NodeMetadata> nodes = computeService
- .createNodesInGroup(group, 1, template);
-
- node = nodes.iterator().next();
-
- String autoAssignIpProp = iaas
- .getProperty(CloudControllerConstants.AUTO_ASSIGN_IP_PROPERTY);
-
- // acquire the lock
- lock.lock();
-
- try {
- // node id
- String nodeId = node.getId();
- if (nodeId == null) {
- String msg = "Node id of the starting instance is null.\n" + node.toString();
- log.fatal(msg);
- throw new CloudControllerException(msg);
- }
-
- member.setNodeId(nodeId);
-
- // reset ip
- String ip = "";
- // default behavior is autoIpAssign=false
- if (autoAssignIpProp == null || (autoAssignIpProp != null && autoAssignIpProp.equals("false"))) {
- // allocate an IP address - manual IP assigning mode
- ip = iaas.getIaas().associateAddress(iaas, node);
- member.setAllocatedIpAddress(ip);
- log.info("Allocated ip address: " + ip);
- }
-
- // public ip
- if (node.getPublicAddresses() != null && node.getPublicAddresses().iterator().hasNext()) {
- ip = node.getPublicAddresses().iterator().next();
- member.setPublicIpAddress(ip);
- log.info("Public ip address: " + ip);
- }
-
- // private IP
- if (node.getPrivateAddresses() != null && node.getPrivateAddresses().iterator().hasNext()) {
- ip = node.getPrivateAddresses().iterator().next();
- member.setPrivateIpAddress(ip);
- log.info("Private ip address: " + ip);
- }
-
-
- dataHolder.addMemberContext(member);
-
- // persist in registry
- persist();
-
- // trigger topology
- TopologyBuilder.handleMemberSpawned(memberID, cartridgeType, clusterId,
- nodeId, partition, ip);
-
- //update the topology with the newly spawned member
- // publish data
- if (log.isDebugEnabled()) {
- log.debug("Node details: \n" + node.toString()
- + "\n***************\n");
- }
-
- log.info("Instance is successfully starting up in IaaS "
- + iaas.getType()
- + ".\tIP Address(public/private): "
- + ip
- + "\tNode Id: " + nodeId);
-
- return member;
-
- } finally {
- // release the lock
- lock.unlock();
- }
-
- } catch (Exception e) {
- log.warn(
- "Failed to start an instance in "
- + iaas.getType()
- + ". Hence, will try to start in another IaaS if available.",
- e);
- }
-
- return null;
+
+ // generate the group id from domain name and sub domain
+ // name.
+ // Should have lower-case ASCII letters, numbers, or dashes.
+ // Should have a length between 3-15
+ String str = clusterId.substring(0, 10);
+ String group = str.replaceAll("[^a-z0-9-]", "");
+
+ NodeMetadata node;
+
+ // create and start a node
+ Set<? extends NodeMetadata> nodes =
+ computeService.createNodesInGroup(group, 1,
+ template);
+
+ node = nodes.iterator().next();
+
+ String autoAssignIpProp =
+ iaas.getProperty(CloudControllerConstants.AUTO_ASSIGN_IP_PROPERTY);
+
+ // acquire the lock
+ lock.lock();
+
+ try {
+ // node id
+ String nodeId = node.getId();
+ if (nodeId == null) {
+ String msg = "Node id of the starting instance is null.\n" + node.toString();
+ log.fatal(msg);
+ throw new CloudControllerException(msg);
+ }
+
+ member.setNodeId(nodeId);
+
+ // reset ip
+ String ip = "";
+ // default behavior is autoIpAssign=false
+ if (autoAssignIpProp == null ||
+ (autoAssignIpProp != null && autoAssignIpProp.equals("false"))) {
+ // allocate an IP address - manual IP assigning mode
+ ip = iaas.getIaas().associateAddress(iaas, node);
+ member.setAllocatedIpAddress(ip);
+ log.info("Allocated ip address: " + ip);
+ }
+
+ // public ip
+ if (node.getPublicAddresses() != null &&
+ node.getPublicAddresses().iterator().hasNext()) {
+ ip = node.getPublicAddresses().iterator().next();
+ member.setPublicIpAddress(ip);
+ log.info("Public ip address: " + ip);
+ }
+
+ // private IP
+ if (node.getPrivateAddresses() != null &&
+ node.getPrivateAddresses().iterator().hasNext()) {
+ ip = node.getPrivateAddresses().iterator().next();
+ member.setPrivateIpAddress(ip);
+ log.info("Private ip address: " + ip);
+ }
+
+ dataHolder.addMemberContext(member);
+
+ // persist in registry
+ persist();
+
+ // trigger topology
+ TopologyBuilder.handleMemberSpawned(memberID, cartridgeType, clusterId, partition,
+ ip);
+
+ // update the topology with the newly spawned member
+ // publish data
+ if (log.isDebugEnabled()) {
+ log.debug("Node details: \n" + node.toString() + "\n***************\n");
+ }
+
+ log.info("Instance is successfully starting up in IaaS " + iaas.getType() +
+ ".\tIP Address(public/private): " + ip + "\tNode Id: " + nodeId);
+
+ return member;
+
+ } finally {
+ // release the lock
+ lock.unlock();
}
+ } catch (Exception e) {
+ log.warn("Failed to start an instance in " + iaas.getType() +
+ ". Hence, will try to start in another IaaS if available.", e);
+ }
+
+ return null;
+ }
+
// @Override
// public String startInstances(String clusterId, Partition partition, int noOfInstancesToBeSpawned) {
// //TODO
// return null;
// }
- /**
- * Appends this ip to the Service Context's
- * {@link CloudControllerConstants#PUBLIC_IP_PROPERTY}
- *
- * @param ip
- * @param serviceCtxt
- */
- private void appendToPublicIpProperty(String ip, ServiceContext serviceCtxt) {
- String ipStr = serviceCtxt
- .getProperty(CloudControllerConstants.PUBLIC_IP_PROPERTY);
- if (ip != null && !"".equals(ip)) {
- serviceCtxt.setProperty(
- CloudControllerConstants.PUBLIC_IP_PROPERTY,
- ("".equals(ipStr) ? "" : ipStr
- + CloudControllerConstants.ENTRY_SEPARATOR)
- + ip);
- }
- }
/**
* Persist data in registry.
@@ -506,25 +479,6 @@ public class CloudControllerServiceImpl implements CloudControllerService {
return clusterId + memberId.toString();
}
- private Cartridge loadCartridge(String cartridgeType,
- List<Cartridge> cartridges) {
-
- for (Cartridge cartridge : cartridges) {
- if (cartridge.getType().equals(cartridgeType)) {
- return cartridge;
- }
- }
-
- return null;
- }
-
- private void reloadPayload(Cartridge cartridge, byte[] payload) {
- for (IaasProvider iaas : cartridge.getIaases()) {
- iaas.setPayload(payload);
- }
-
- }
-
@Override
public void terminateInstance(String memberId) throws InvalidMemberException, InvalidCartridgeTypeException,
IllegalArgumentException{
@@ -646,7 +600,7 @@ public class CloudControllerServiceImpl implements CloudControllerService {
terminate(iaas, nodeId, ctxt);
// log information
- logTermination(nodeId, ctxt);
+ logTermination(ctxt);
} catch (Exception e) {
String msg =
@@ -851,76 +805,6 @@ public class CloudControllerServiceImpl implements CloudControllerService {
}
- public int getPendingInstanceCount(String clusterId) {
- int pendingInstanceCount = 0;
-
- ServiceContext subjectedSerCtxt = dataHolder
- .getServiceContextFromDomain(clusterId);
-
- if (subjectedSerCtxt != null
- && subjectedSerCtxt.getCartridgeType() != null) {
-
- // load cartridge
- subjectedSerCtxt.setCartridge(loadCartridge(subjectedSerCtxt
- .getCartridgeType(),
- dataHolder.getCartridges()));
-
- if (subjectedSerCtxt.getCartridge() == null) {
- return pendingInstanceCount;
- }
-
- List<IaasProvider> iaases = subjectedSerCtxt.getCartridge()
- .getIaases();
-
- for (IaasProvider iaas : iaases) {
-
- ComputeService computeService = iaas.getComputeService();
-
- IaasContext ctxt;
- if ((ctxt = subjectedSerCtxt.getIaasContext(iaas.getType())) == null) {
- ctxt = subjectedSerCtxt.addIaasContext(iaas.getType());
- }
-
- // get list of node Ids which are belong to this domain- sub
- // domain
- List<String> nodeIds = ctxt.getNodeIds();
-
- if (nodeIds.isEmpty()) {
- log.debug("Zero nodes spawned in the IaaS "
- + iaas.getType() + " of domain: " + clusterId);
- continue;
- }
-
- // get all the nodes spawned by this IaasContext
- Set<? extends ComputeMetadata> set = computeService.listNodes();
-
- // traverse through all nodes of this ComputeService object
- for (ComputeMetadata aSet : set) {
- NodeMetadataImpl nodeMetadata = (NodeMetadataImpl) aSet;
-
- // if this node belongs to the requested domain
- if (nodeIds.contains(nodeMetadata.getId())) {
-
- // get the status of the node
- Status nodeStatus = nodeMetadata.getStatus();
-
- // count nodes that are in pending state
- if (nodeStatus.equals(Status.PENDING)) {
- pendingInstanceCount++;
- }
- }
-
- }
- }
- }
-
- log.debug("Pending instance count of domain '" + clusterId
- + " is "
- + pendingInstanceCount);
-
- return pendingInstanceCount;
-
- }
/**
* A helper method to terminate an instance.
@@ -953,7 +837,7 @@ public class CloudControllerServiceImpl implements CloudControllerService {
return iaasTemp;
}
- private void logTermination(String nodeId, MemberContext ctxt) {
+ private void logTermination(MemberContext ctxt) {
// get the ip of the terminated node
// String ip = ctxt.getPublicIp(nodeId);
@@ -971,7 +855,7 @@ public class CloudControllerServiceImpl implements CloudControllerService {
// serviceCtxt.setProperty(ipProp, newIpStr.length() == 0 ? "" : newIpStr
// .substring(0, newIpStr.length() - 1).toString());
//updating the topology
- TopologyBuilder.handleMemberTerminated(ctxt.getCartridgeType(), ctxt.getClusterId(), nodeId);
+ TopologyBuilder.handleMemberTerminated(ctxt.getCartridgeType(), ctxt.getClusterId(), ctxt.getMemberId());
// remove the reference
// ctxt.removeNodeIdToPublicIp(nodeId);
@@ -1033,7 +917,6 @@ public class CloudControllerServiceImpl implements CloudControllerService {
String cartridgeType = registrant.getCartridgeType();
String clusterId = registrant.getClusterId();
String payload = registrant.getPayload();
- String hostName = registrant.getHostName();
if(cartridgeType == null || clusterId == null || payload == null) {
String msg = "Null Argument/s detected: Cartridge type: "+cartridgeType+", Cluster Id: "+clusterId+", Payload: "+payload;
@@ -1052,61 +935,6 @@ public class CloudControllerServiceImpl implements CloudControllerService {
dataHolder.addClusterContext(new ClusterContext(clusterId, cartridgeType, payload));
TopologyBuilder.handleClusterCreated(registrant);
-// // create a ServiceContext dynamically
-// ServiceContext newServiceCtxt = new ServiceContext();
-// newServiceCtxt.setClusterId(clusterId);
-// //newServiceCtxt.setSubDomainName(subDomain);
-// newServiceCtxt.setTenantRange(registrant.getTenantRange());
-// newServiceCtxt.setHostName(registrant.getHostName());
-// newServiceCtxt.setAutoScalerPolicyName(registrant.getAutoScalerPolicyName());
-// newServiceCtxt.setPayload(new StringBuilder(registrant.getPayload()));
-// Properties properties = registrant.getProperties();
-// String cartridgeType = registrant.getCartridgeType();
-//
-// if (properties != null && properties.getProperties() != null) {
-// // add properties
-// for (Property property : properties.getProperties()) {
-// if (property != null && property.getName() != null) {
-// newServiceCtxt.setProperty(property.getName(),
-// property.getValue());
-// }
-// }
-// }
-//
-// newServiceCtxt.setCartridgeType(cartridgeType);
-//
-// for (Cartridge cartridge : dataHolder
-// .getCartridges()) {
-// if (cartridge.getType().equals(cartridgeType)) {
-// newServiceCtxt.setCartridge(cartridge);
-// break;
-// }
-// }
-//
-// if (newServiceCtxt.getCartridge() == null) {
-// String msg = "Registration failed - Unregistered Cartridge type: "
-// + cartridgeType;
-// log.error(msg);
-// throw new UnregisteredCartridgeException(msg);
-// }
-// // persist
-// String uniqueName = clusterId + "-"
-// + UUID.randomUUID() + ".xml";
-// newServiceCtxt.setPayloadFile("/tmp/" + CloudControllerConstants.PAYLOAD_NAME + ".zip");
-// newServiceCtxt.generatePayload();
-// dataHolder.addServiceContext(newServiceCtxt);
-// // notify consumer by adding services
-// TopologyBuilder.handleClusterCreated(newServiceCtxt);
-// try {
-// FileUtils.writeStringToFile(new File(CloudControllerConstants.SERVICES_DIR + uniqueName),
-// newServiceCtxt.toXml());
-// } catch (IOException e) {
-// log.error("couldn't write the service definition", e);
-// throw new CloudControllerException("couldn't write the service definition", e);
-// }
-// log.info("Service successfully registered! Domain - " + clusterId
-// + ", Cartridge type - " + cartridgeType);
-
return true;
}
@@ -1131,17 +959,6 @@ public class CloudControllerServiceImpl implements CloudControllerService {
return cartridgeTypes;
}
- /*private String checkSubDomain(String subDomainName) {
- // if sub domain is null, we assume it as default one.
- if (subDomainName == null || "null".equalsIgnoreCase(subDomainName)) {
- subDomainName = Constants.DEFAULT_SUB_DOMAIN;
- log.debug("Sub domain is null, hence using the default value : "
- + subDomainName);
- }
-
- return subDomainName;
- }*/
-
@Override
public CartridgeInfo getCartridgeInfo(String cartridgeType)
throws UnregisteredCartridgeException {
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/c883ee2a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/persist/Deserializer.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/persist/Deserializer.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/persist/Deserializer.java
index ef983b9..0deb947 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/persist/Deserializer.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/persist/Deserializer.java
@@ -59,8 +59,10 @@ public class Deserializer {
log.error("Failed to deserialize the file at "+filePath , e);
throw e;
- } finally{
- objIn.close();
+ } finally {
+ if (objIn != null) {
+ objIn.close();
+ }
}
return obj;
@@ -75,18 +77,20 @@ public class Deserializer {
*/
public static Object deserializeFromByteArray(byte[] bytes) throws Exception {
- ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
- ObjectInput in = null;
- try {
- in = new ObjectInputStream(bis);
- Object o = in.readObject();
-
- return o;
-
- } finally {
- bis.close();
- in.close();
- }
+ ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
+ ObjectInput in = null;
+ try {
+ in = new ObjectInputStream(bis);
+ Object o = in.readObject();
+
+ return o;
+
+ } finally {
+ bis.close();
+ if (in != null) {
+ in.close();
+ }
+ }
}
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/c883ee2a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/persist/Serializer.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/persist/Serializer.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/persist/Serializer.java
index 48ac4c7..e2d1137 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/persist/Serializer.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/persist/Serializer.java
@@ -32,7 +32,8 @@ public class Serializer {
public static void serializeToFile(Object serializableObj, String filePath) throws IOException {
File outFile = new File(filePath);
- ObjectOutput ObjOut = null;
+ ObjectOutput objOut = null;
+ FileOutputStream fileOutputStream = null;
try {
@@ -41,9 +42,9 @@ public class Serializer {
} else{
log.debug("Serialization file is already existing at "+filePath);
}
-
- ObjOut = new ObjectOutputStream(new FileOutputStream(outFile));
- ObjOut.writeObject(serializableObj);
+ fileOutputStream = new FileOutputStream(outFile);
+ objOut = new ObjectOutputStream(fileOutputStream);
+ objOut.writeObject(serializableObj);
} catch (IOException e) {
log.error("Failed to serialize the object "+serializableObj.toString()
@@ -51,7 +52,12 @@ public class Serializer {
throw e;
} finally{
- ObjOut.close();
+ if(objOut != null) {
+ objOut.close();
+ }
+ if(fileOutputStream != null) {
+ fileOutputStream.close();
+ }
}
}
@@ -72,10 +78,12 @@ public class Serializer {
return bos.toByteArray();
- } finally {
- out.close();
- bos.close();
- }
+ } finally {
+ if (out != null) {
+ out.close();
+ }
+ bos.close();
+ }
}
@@ -95,10 +103,12 @@ public class Serializer {
return bos.toByteArray();
- } finally {
- out.close();
- bos.close();
- }
+ } finally {
+ if (out != null) {
+ out.close();
+ }
+ bos.close();
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/c883ee2a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/ClusterContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/ClusterContext.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/ClusterContext.java
index 5f2805f..01cef44 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/ClusterContext.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/ClusterContext.java
@@ -18,13 +18,16 @@
*/
package org.apache.stratos.cloud.controller.pojo;
+import java.io.Serializable;
+
/**
* Holds runtime data of a Cluster.
* @author nirmal
*
*/
-public class ClusterContext {
+public class ClusterContext implements Serializable{
+ private static final long serialVersionUID = 4830667953031229223L;
// cluster id
private String clusterId;
// cartridge type
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/c883ee2a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/DataPublisherConfig.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/DataPublisherConfig.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/DataPublisherConfig.java
index 9e35926..34e7f04 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/DataPublisherConfig.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/DataPublisherConfig.java
@@ -18,14 +18,17 @@
*/
package org.apache.stratos.cloud.controller.pojo;
+import java.io.Serializable;
+
import org.apache.stratos.cloud.controller.util.CloudControllerConstants;
/**
* @author nirmal
*
*/
-public class DataPublisherConfig {
+public class DataPublisherConfig implements Serializable{
+ private static final long serialVersionUID = -2097472019584151205L;
private String bamUsername = CloudControllerConstants.DEFAULT_BAM_SERVER_USER_NAME;
private String bamPassword = CloudControllerConstants.DEFAULT_BAM_SERVER_PASSWORD;
private String dataPublisherCron = CloudControllerConstants.PUB_CRON_EXPRESSION;
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/c883ee2a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/Host.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/Host.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/Host.java
deleted file mode 100644
index f8d586b..0000000
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/Host.java
+++ /dev/null
@@ -1,73 +0,0 @@
-package org.apache.stratos.cloud.controller.pojo;
-
-import org.jclouds.compute.ComputeService;
-import org.jclouds.compute.domain.Template;
-
-import java.util.HashMap;
-import java.util.Map;
-
-public class Host extends Zone {
- private String id;
- private String type;
- private Map<String, String> properties = new HashMap<String, String>();
-
- private transient ComputeService computeService;
-
- private transient Template template;
-
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public String getType() {
- return type;
- }
-
- public void setType(String type) {
- this.type = type;
- }
-
- public Map<String, String> getProperties() {
- return properties;
- }
-
- public void setProperties(Map<String, String> properties) {
- this.properties = properties;
- }
-
- public void setProperty(String key, String value) {
-
- if (key != null && value != null) {
- getProperties().put(key, value);
- }
- }
-
- public String getProperty(String key) {
- if(getProperties().get(key) != null) {
- return getProperties().get(key);
- } else {
- return super.getProperty(key);
- }
- }
-
- public ComputeService getComputeService() {
- return computeService;
- }
-
- public void setComputeService(ComputeService computeService) {
- this.computeService = computeService;
- }
-
- public Template getTemplate() {
- return template;
- }
-
- public void setTemplate(Template template) {
- this.template = template;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/c883ee2a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/IaasContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/IaasContext.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/IaasContext.java
deleted file mode 100644
index b5d8e95..0000000
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/IaasContext.java
+++ /dev/null
@@ -1,162 +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.pojo;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.jclouds.compute.domain.NodeMetadata;
-
-/**
- *
- * Holds runtime data of an IaaS
- */
-public class IaasContext implements Serializable{
-
- private static final long serialVersionUID = 3370272526949562217L;
-
- private String type;
-
- private List<String> nodeIds;
-
- /**
- * Key - node id
- * Value - public ip
- */
- private Map<String, String> nodeToPublicIp;
-
- /**
- * Key - node id
- * Value - NodeMetadata object which has information on this node.
- */
- private transient Map<String, NodeMetadata> nodes;
-
- private List<String> toBeRemovedNodeIds;
-
- public IaasContext(String iaasType) {
- this.type = iaasType;
- nodeToPublicIp = new HashMap<String, String>();
- nodeIds = new ArrayList<String>();
- nodes = new HashMap<String, NodeMetadata>();
- toBeRemovedNodeIds = new ArrayList<String>();
- }
-
- public Map<String, String> getNodeToPublicIp() {
- return nodeToPublicIp;
- }
-
- public Map<String, NodeMetadata> getNodes() {
- return nodes;
- }
-
- public void setToBeRemovedNodeIds(List<String> list) {
- this.toBeRemovedNodeIds = list;
- }
-
- public List<String> getAllNodeIds() {
- List<String> allNodeIds = new ArrayList<String>(nodeIds);
- allNodeIds.addAll(toBeRemovedNodeIds);
- return allNodeIds;
- }
-
- public List<String> getNodeIds() {
- return nodeIds;
- }
-
- public List<String> getToBeRemovedNodeIds() {
- return toBeRemovedNodeIds;
- }
-
- public boolean didISpawn(String nodeId) {
- if(nodeIds.contains(nodeId) || toBeRemovedNodeIds.contains(nodeId)){
- return true;
- }
- return false;
- }
-
- public void addNodeId(String nodeId) {
- nodeIds.add(nodeId);
- }
-
- public void addNodeToPublicIp(String nodeId, String publicIp) {
- nodeToPublicIp.put(nodeId, publicIp);
- }
-
- public void addToBeRemovedNodeId(String nodeId) {
- toBeRemovedNodeIds.add(nodeId);
- }
-
- public void removeNodeId(String nodeId) {
- if(nodeIds.remove(nodeId)){
- toBeRemovedNodeIds.add(nodeId);
- }
- }
-
- public void removeToBeRemovedNodeId(String nodeId) {
- toBeRemovedNodeIds.remove(nodeId);
- }
-
- public void setNodeIds(List<String> nodeIds) {
- this.nodeIds = nodeIds;
- }
-
- public String lastlySpawnedNode() {
- return nodeIds.get(nodeIds.size()-1);
- }
-
- public void addNodeMetadata(NodeMetadata node) {
- if(nodes == null){
- nodes = new HashMap<String, NodeMetadata>();
- }
- nodes.put(node.getId(), node);
- }
-
- public void removeNodeMetadata(NodeMetadata node) {
- if (nodes != null) {
- nodes.remove(node.getId());
- }
- }
-
- public void removeNodeIdToPublicIp(String nodeId){
- nodeToPublicIp.remove(nodeId);
- }
-
- public NodeMetadata getNode(String nodeId) {
- if(nodes == null) {
- return null;
- }
- return nodes.get(nodeId);
- }
-
- public String getPublicIp(String nodeId){
- return nodeToPublicIp.get(nodeId);
- }
-
- public String getType() {
- return type;
- }
-
- public void setType(String type) {
- this.type = type;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/c883ee2a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/IaasProvider.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/IaasProvider.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/IaasProvider.java
index bffd6cf..449e2d9 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/IaasProvider.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/IaasProvider.java
@@ -25,7 +25,6 @@ import org.jclouds.compute.domain.Template;
import java.io.Serializable;
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
/**
@@ -41,8 +40,6 @@ public class IaasProvider implements Serializable{
*/
private String type;
- private List<Region> listOfRegions;
-
/**
* Fully qualified class name of an implementation of {@link org.apache.stratos.cloud.controller.interfaces.Iaas}
*/
@@ -250,22 +247,4 @@ public class IaasProvider implements Serializable{
// toBeRemovedNodeIds = new ArrayList<String>();
}
- /**
- * Partition the IaaS using different region
- */
- public List<Region> getListOfRegions() {
- return listOfRegions;
- }
-
- public void setListOfRegions(List<Region> listOfRegions) {
- this.listOfRegions = listOfRegions;
- }
-
- public void addRegion(Region region) {
- this.listOfRegions.add(region);
- }
-
- public void removeRegion(Region region) {
- this.listOfRegions.remove(region);
- }
}