correctly setting ComputeService and Template
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/469b8c6a Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/469b8c6a Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/469b8c6a Branch: refs/heads/master Commit: 469b8c6a0842486d66ee5c9168a01f696587d2b3 Parents: 56f573e Author: Nirmal Fernando <[email protected]> Authored: Tue Feb 11 19:50:03 2014 +0530 Committer: Nirmal Fernando <[email protected]> Committed: Tue Feb 11 19:50:03 2014 +0530 ---------------------------------------------------------------------- .../axiom/parser/CartridgeConfigParser.java | 384 ------------------- .../parser/CloudControllerConfigParser.java | 2 +- .../impl/CloudControllerServiceImpl.java | 12 +- .../cloud/controller/pojo/IaasProvider.java | 2 +- .../controller/util/CloudControllerUtil.java | 46 ++- .../OpenstackNovaPartitionValidator.java | 2 +- 6 files changed, 47 insertions(+), 401 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/469b8c6a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/axiom/parser/CartridgeConfigParser.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/axiom/parser/CartridgeConfigParser.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/axiom/parser/CartridgeConfigParser.java deleted file mode 100644 index 911adc0..0000000 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/axiom/parser/CartridgeConfigParser.java +++ /dev/null @@ -1,384 +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.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.runtime.FasterLookUpDataHolder; -import org.apache.stratos.cloud.controller.util.CloudControllerConstants; - -/** - * Parse the cartridge definition files. - * @author nirmal - * - */ -public class CartridgeConfigParser { - private static final Log log = LogFactory.getLog(CartridgeConfigParser.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); - } - - 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/469b8c6a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/axiom/parser/CloudControllerConfigParser.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/axiom/parser/CloudControllerConfigParser.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/axiom/parser/CloudControllerConfigParser.java index 0179ce2..455602f 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/axiom/parser/CloudControllerConfigParser.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/axiom/parser/CloudControllerConfigParser.java @@ -76,7 +76,7 @@ public class CloudControllerConfigParser { } for (OMNode node : nodeList) { - iaasProviders.add(IaasProviderConfigParser.getIaasProvider(FILE_NAME, elt, node, iaasProviders)); + iaasProviders.add(IaasProviderConfigParser.getIaasProvider(FILE_NAME, elt, node, null)); } } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/469b8c6a/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 3432703..a6abb18 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 @@ -139,7 +139,7 @@ public class CloudControllerServiceImpl implements CloudControllerService { } for (IaasProvider iaasProvider : iaases) { - CloudControllerUtil.setIaas(iaasProvider); + CloudControllerUtil.getIaas(iaasProvider); } // TODO transaction begins @@ -262,7 +262,7 @@ public class CloudControllerServiceImpl implements CloudControllerService { log.debug("Iaas is null of Iaas Provider: "+type+". Trying to build IaaS..."); } try { - iaas = CloudControllerUtil.setIaas(iaasProvider); + iaas = CloudControllerUtil.getIaas(iaasProvider); } catch (InvalidIaasProviderException e) { String msg ="Instance start up failed. "+memberContext.toString()+ "Unable to build Iaas of this IaasProvider [Provider] : " + type; @@ -357,7 +357,7 @@ public class CloudControllerServiceImpl implements CloudControllerService { if(iaas == null) { try { - iaas = CloudControllerUtil.setIaas(iaasProvider); + iaas = CloudControllerUtil.getIaas(iaasProvider); } catch (InvalidIaasProviderException e) { String msg = "Iaas could not be loaded from : "+iaasProvider; log.fatal(msg, e); @@ -799,7 +799,7 @@ public class CloudControllerServiceImpl implements CloudControllerService { if (iaas == null) { try { - iaas = CloudControllerUtil.setIaas(iaasProvider); + iaas = CloudControllerUtil.getIaas(iaasProvider); } catch (InvalidIaasProviderException e) { String msg = "Instance termination failed. " +ctxt.toString() + @@ -1028,7 +1028,7 @@ public class CloudControllerServiceImpl implements CloudControllerService { if (iaas == null) { try { - iaas = CloudControllerUtil.setIaas(iaasProvider); + iaas = CloudControllerUtil.getIaas(iaasProvider); } catch (InvalidIaasProviderException e) { String msg = "Invalid Partition - " + partition.toString() + @@ -1085,7 +1085,7 @@ public class CloudControllerServiceImpl implements CloudControllerService { if (iaas == null) { try { - iaas = CloudControllerUtil.setIaas(iaasProvider); + iaas = CloudControllerUtil.getIaas(iaasProvider); } catch (InvalidIaasProviderException e) { String msg = "Invalid Partition - " + partition.toString() + http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/469b8c6a/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 307611d..5c4c4ed 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 @@ -210,7 +210,7 @@ public class IaasProvider implements Serializable{ public Iaas getIaas() { if (iaas == null) { try { - iaas = CloudControllerUtil.setIaas(this); + iaas = CloudControllerUtil.getIaas(this); } catch (InvalidIaasProviderException e) { return null; } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/469b8c6a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java index 580b9a9..9358441 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java @@ -24,6 +24,7 @@ import org.apache.stratos.cloud.controller.deployment.partition.Partition; import org.apache.stratos.cloud.controller.exception.CloudControllerException; import org.apache.stratos.cloud.controller.exception.InvalidIaasProviderException; import org.apache.stratos.cloud.controller.interfaces.Iaas; +import org.apache.stratos.cloud.controller.jcloud.ComputeServiceBuilderUtil; import org.apache.stratos.cloud.controller.persist.Deserializer; import org.apache.stratos.cloud.controller.pojo.AppType; import org.apache.stratos.cloud.controller.pojo.Cartridge; @@ -203,21 +204,34 @@ public class CloudControllerUtil { public static Iaas setIaas(IaasProvider iaasProvider) throws InvalidIaasProviderException { - Iaas iaas; + Iaas iaas = loadIaas(iaasProvider); + try { - Constructor<?> c = Class.forName(iaasProvider.getClassName()) - .getConstructor(IaasProvider.class); - iaas = (Iaas) c.newInstance(iaasProvider); + iaas.buildComputeServiceAndTemplate(); + iaasProvider.setIaas(iaas); + return iaas; } catch (Exception e) { - String msg = "Class [" + iaasProvider.getClassName() - + "] which represents the iaas of type: [" - + iaasProvider.getType() + "] has failed to instantiate."; + String msg = "Unable to build the jclouds object for iaas " + + "of type: " + iaasProvider.getType(); log.error(msg, e); throw new InvalidIaasProviderException(msg, e); } + } + + public static Iaas getIaas(IaasProvider iaasProvider) throws InvalidIaasProviderException { + if(iaasProvider.getImage() != null) { + return setIaas(iaasProvider); + } else { + return setDefaultIaas(iaasProvider); + } + } + + public static Iaas setDefaultIaas(IaasProvider iaasProvider) throws InvalidIaasProviderException { + + Iaas iaas = loadIaas(iaasProvider); try { - iaas.buildComputeServiceAndTemplate(); + ComputeServiceBuilderUtil.buildDefaultComputeService(iaasProvider); iaasProvider.setIaas(iaas); return iaas; } catch (Exception e) { @@ -227,6 +241,22 @@ public class CloudControllerUtil { throw new InvalidIaasProviderException(msg, e); } } + + private static Iaas loadIaas(IaasProvider iaasProvider) + throws InvalidIaasProviderException { + try { + Constructor<?> c = Class.forName(iaasProvider.getClassName()) + .getConstructor(IaasProvider.class); + Iaas iaas = (Iaas) c.newInstance(iaasProvider); + return iaas; + } catch (Exception e) { + String msg = "Class [" + iaasProvider.getClassName() + + "] which represents the iaas of type: [" + + iaasProvider.getType() + "] has failed to instantiate."; + log.error(msg, e); + throw new InvalidIaasProviderException(msg, e); + } + } public static List<Object> getKeysFromValue(Map<?, ?> hm, Object value) { List<Object> list = new ArrayList<Object>(); http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/469b8c6a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/validate/OpenstackNovaPartitionValidator.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/validate/OpenstackNovaPartitionValidator.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/validate/OpenstackNovaPartitionValidator.java index f2b9c54..1df0887 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/validate/OpenstackNovaPartitionValidator.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/validate/OpenstackNovaPartitionValidator.java @@ -61,7 +61,7 @@ public class OpenstackNovaPartitionValidator implements PartitionValidator { iaas.isValidRegion(region); IaasProvider updatedIaasProvider = new IaasProvider(iaasProvider); - Iaas updatedIaas = CloudControllerUtil.setIaas(updatedIaasProvider); + Iaas updatedIaas = CloudControllerUtil.getIaas(updatedIaasProvider); updatedIaas.setIaasProvider(updatedIaasProvider); if (properties.containsKey(Scope.host.toString())) {
