removing PartitionValidatorCallable and its usages
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/519d439f Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/519d439f Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/519d439f Branch: refs/heads/stratos-4.1.x Commit: 519d439f9fc16e05e29f95a2666256956112496e Parents: a437ce9 Author: Isuru Haththotuwa <[email protected]> Authored: Tue Nov 10 07:16:12 2015 +0530 Committer: Isuru Haththotuwa <[email protected]> Committed: Tue Nov 10 13:35:36 2015 +0530 ---------------------------------------------------------------------- .../concurrent/PartitionValidatorCallable.java | 61 -------------------- .../cloud/controller/iaases/ec2/EC2Iaas.java | 4 ++ .../impl/CloudControllerServiceImpl.java | 35 +++++------ .../impl/CloudControllerServiceUtil.java | 2 +- 4 files changed, 20 insertions(+), 82 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/519d439f/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/concurrent/PartitionValidatorCallable.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/concurrent/PartitionValidatorCallable.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/concurrent/PartitionValidatorCallable.java deleted file mode 100644 index e1800ff..0000000 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/concurrent/PartitionValidatorCallable.java +++ /dev/null @@ -1,61 +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.concurrent; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.stratos.cloud.controller.context.CloudControllerContext; -import org.apache.stratos.cloud.controller.domain.Cartridge; -import org.apache.stratos.cloud.controller.domain.IaasProvider; -import org.apache.stratos.cloud.controller.domain.Partition; -import org.apache.stratos.cloud.controller.services.impl.CloudControllerServiceUtil; - -import java.util.concurrent.Callable; - -public class PartitionValidatorCallable implements Callable<IaasProvider> { - - private static final Log log = LogFactory.getLog(PartitionValidatorCallable.class); - private Partition partition; - private Cartridge cartridge; - - public PartitionValidatorCallable(Partition partition, Cartridge cartridge) { - this.partition = partition; - this.cartridge = cartridge; - } - - @Override - public IaasProvider call() throws Exception { - - if (log.isDebugEnabled()) { - log.debug("Partition validation started for " + partition + " of " + cartridge); - } - String provider = partition.getProvider(); - IaasProvider iaasProvider = CloudControllerContext.getInstance().getIaasProvider(cartridge.getType(), provider); - - IaasProvider updatedIaasProvider = - CloudControllerServiceUtil.validatePartitionAndGetIaasProvider(partition, iaasProvider); - - if (log.isDebugEnabled()) { - log.debug("Partition " + partition.toString() + " is validated successfully " + "against the Cartridge: " - + cartridge.getType()); - } - - return updatedIaasProvider; - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/519d439f/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/ec2/EC2Iaas.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/ec2/EC2Iaas.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/ec2/EC2Iaas.java index ab1a31e..17e59a2 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/ec2/EC2Iaas.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/ec2/EC2Iaas.java @@ -117,6 +117,10 @@ public class EC2Iaas extends JcloudsIaas { } } + log.info("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$44 " + iaasInfo.getProperty(CloudControllerConstants.AVAILABILITY_ZONE)); + log.info("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$44 " + template.getLocation().getScope() + .toString() + " & " + template.getLocation().getId()); + // if you wish to auto assign IPs, instance spawning call should be // blocking, but if you // wish to assign IPs manually, it can be non-blocking. http://git-wip-us.apache.org/repos/asf/stratos/blob/519d439f/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java index fa2590c..66af90b 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java @@ -21,7 +21,6 @@ package org.apache.stratos.cloud.controller.services.impl; import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.apache.stratos.cloud.controller.concurrent.PartitionValidatorCallable; import org.apache.stratos.cloud.controller.config.CloudControllerConfig; import org.apache.stratos.cloud.controller.context.CloudControllerContext; import org.apache.stratos.cloud.controller.domain.*; @@ -979,7 +978,6 @@ public class CloudControllerServiceImpl implements CloudControllerService { throw new InvalidCartridgeTypeException(msg); } - Map<String, Future<IaasProvider>> jobList = new HashMap<>(); for (Partition partition : networkPartition.getPartitions()) { if (validatedPartitions != null && validatedPartitions.contains(partition.getId())) { // partition cache hit @@ -990,38 +988,35 @@ public class CloudControllerServiceImpl implements CloudControllerService { continue; } - Callable<IaasProvider> worker = new PartitionValidatorCallable(partition, cartridge); - Future<IaasProvider> job = CloudControllerContext.getInstance().getExecutorService().submit(worker); - jobList.put(partition.getId(), job); - } - - // Retrieve the results of the concurrently performed sanity checks. - for (Entry<String, Future<IaasProvider>> entry : jobList.entrySet()) { - if (entry == null) { - continue; + if (log.isDebugEnabled()) { + log.debug("Partition validation started for " + partition + " of " + cartridge); } - String partitionId = entry.getKey(); - Future<IaasProvider> job = entry.getValue(); + + // cache miss + IaasProvider iaasProvider = CloudControllerContext.getInstance().getIaasProvider + (cartridge.getType(), partition.getProvider()); + IaasProvider updatedIaasProvider = CloudControllerServiceUtil.validatePartitionAndGetIaasProvider(partition, + iaasProvider); + try { - // add to a temporary Map - IaasProvider iaasProvider = job.get(); - if (iaasProvider != null) { - partitionToIaasProviders.put(partitionId, iaasProvider); + if (updatedIaasProvider != null) { + partitionToIaasProviders.put(partition.getId(), updatedIaasProvider); } // add to cache - CloudControllerContext.getInstance().addToCartridgeTypeToPartitionIdMap(cartridgeType, partitionId); - + CloudControllerContext.getInstance().addToCartridgeTypeToPartitionIdMap(cartridgeType, partition.getId()); if (log.isDebugEnabled()) { - log.debug("Partition " + partitionId + " added to the cache against cartridge: " + + log.debug("Partition " + partition.getId() + " added to the cache against " + "cartridge: " + "[cartridge-type] " + cartridgeType); } + } catch (Exception e) { String message = "Could not cache partitions against the cartridge: [cartridge-type] " + cartridgeType; log.error(message, e); throw new InvalidPartitionException(message, e); } + } // if and only if the deployment policy valid http://git-wip-us.apache.org/repos/asf/stratos/blob/519d439f/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceUtil.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceUtil.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceUtil.java index 4edc701..8a415c4 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceUtil.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceUtil.java @@ -75,7 +75,7 @@ public class CloudControllerServiceUtil { throws InvalidPartitionException { if (iaasProvider != null) { // if this is a IaaS based partition - Iaas iaas = iaasProvider.buildIaas(); + Iaas iaas = iaasProvider.getIaas(); PartitionValidator validator = iaas.getPartitionValidator(); validator.setIaasProvider(iaasProvider); Properties partitionProperties = CloudControllerUtil.toJavaUtilProperties(partition.getProperties());
