You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ra...@apache.org on 2015/11/29 20:25:55 UTC
[24/28] stratos git commit: Fix formatting. Move acquireRad/WriteLock
out of try block.
Fix formatting. Move acquireRad/WriteLock out of try block.
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/a9ed3c55
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/a9ed3c55
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/a9ed3c55
Branch: refs/heads/stratos-4.1.x
Commit: a9ed3c55f3483142485ae35cb515933d656d5900
Parents: 179120d
Author: Akila Perera <ra...@gmail.com>
Authored: Mon Nov 30 00:20:29 2015 +0530
Committer: Akila Perera <ra...@gmail.com>
Committed: Mon Nov 30 00:33:47 2015 +0530
----------------------------------------------------------------------
.../messaging/topology/TopologyBuilder.java | 66 +++++++++-----------
1 file changed, 29 insertions(+), 37 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/a9ed3c55/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java
index d0a21d1..109cf30 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java
@@ -69,8 +69,8 @@ public class TopologyBuilder {
if (cartridgeList == null) {
throw new RuntimeException("Cartridge list is empty");
}
+ TopologyHolder.acquireWriteLock();
try {
- TopologyHolder.acquireWriteLock();
for (Cartridge cartridge : cartridgeList) {
if (!topology.serviceExists(cartridge.getType())) {
ServiceType serviceType = cartridge.isMultiTenant() ?
@@ -126,8 +126,8 @@ public class TopologyBuilder {
throw new RuntimeException(String.format("Service %s does not exist", cartridge.getType()));
}
if (service.getClusters().size() == 0) {
+ TopologyHolder.acquireWriteLock();
try {
- TopologyHolder.acquireWriteLock();
topology.removeService(cartridge.getType());
TopologyHolder.updateTopology(topology);
} finally {
@@ -149,8 +149,8 @@ public class TopologyBuilder {
for (Cluster cluster : appClusters) {
Service service = topology.getService(cluster.getServiceName());
if (service == null) {
- throw new RuntimeException("Service " + cluster.getServiceName()
- + " not found in topology, unable to create cluster");
+ throw new RuntimeException(
+ "Service " + cluster.getServiceName() + " not found in topology, unable to create cluster");
}
service.addCluster(cluster);
log.info("Cluster created: [cluster] " + cluster.getClusterId());
@@ -312,8 +312,8 @@ public class TopologyBuilder {
throw new RuntimeException(String.format("Cluster %s does not exist for service %s", ctxt.getClusterId(),
ctxt.getCartridgeType()));
}
+ TopologyHolder.acquireWriteLock();
try {
- TopologyHolder.acquireWriteLock();
Cluster cluster = service.removeCluster(ctxt.getClusterId());
deploymentPolicy = cluster.getDeploymentPolicyName();
TopologyHolder.updateTopology(topology);
@@ -344,8 +344,8 @@ public class TopologyBuilder {
if (cluster.memberExists(memberId)) {
throw new RuntimeException(String.format("Member %s already exists", memberId));
}
+ TopologyHolder.acquireWriteLock();
try {
- TopologyHolder.acquireWriteLock();
Member member = new Member(service.getServiceName(), clusterId, memberId, clusterInstanceId,
networkPartitionId, partitionId, memberContext.getLoadBalancingIPType(), initTime);
member.setStatus(MemberStatus.Created);
@@ -396,9 +396,8 @@ public class TopologyBuilder {
if (member == null) {
throw new RuntimeException(String.format("Member %s does not exist", memberContext.getMemberId()));
}
+ TopologyHolder.acquireWriteLock();
try {
- TopologyHolder.acquireWriteLock();
-
// Set instance id returned by the IaaS
member.setInstanceId(memberContext.getInstanceId());
// Set ip addresses
@@ -493,9 +492,8 @@ public class TopologyBuilder {
throw new RuntimeException(
String.format("Member %s does not exist", instanceStartedEvent.getMemberId()));
}
-
+ TopologyHolder.acquireWriteLock();
try {
- TopologyHolder.acquireWriteLock();
// try update lifecycle state
if (!member.isStateTransitionValid(MemberStatus.Starting)) {
log.error("Invalid State Transition from " + member.getStatus() + " to " +
@@ -564,8 +562,8 @@ public class TopologyBuilder {
// grouping - set grouid
//TODO
memberActivatedEvent.setApplicationId(null);
+ TopologyHolder.acquireWriteLock();
try {
- TopologyHolder.acquireWriteLock();
// try update lifecycle state
if (!member.isStateTransitionValid(MemberStatus.Active)) {
log.error("Invalid state transition from [" + member.getStatus() + "] to [" +
@@ -665,9 +663,8 @@ public class TopologyBuilder {
instanceReadyToShutdownEvent.getNetworkPartitionId(), instanceReadyToShutdownEvent.getPartitionId());
//member ReadyToShutDown state change time
Long timestamp = null;
+ TopologyHolder.acquireWriteLock();
try {
- TopologyHolder.acquireWriteLock();
-
if (!member.isStateTransitionValid(MemberStatus.ReadyToShutDown)) {
throw new RuntimeException("Invalid State Transition from " + member.getStatus() + " to " +
MemberStatus.ReadyToShutDown);
@@ -723,8 +720,8 @@ public class TopologyBuilder {
instanceMaintenanceModeEvent.getServiceName(), instanceMaintenanceModeEvent.getClusterId(),
instanceMaintenanceModeEvent.getClusterInstanceId(), instanceMaintenanceModeEvent.getMemberId(),
instanceMaintenanceModeEvent.getNetworkPartitionId(), instanceMaintenanceModeEvent.getPartitionId());
+ TopologyHolder.acquireWriteLock();
try {
- TopologyHolder.acquireWriteLock();
// try update lifecycle state
if (!member.isStateTransitionValid(MemberStatus.In_Maintenance)) {
throw new RuntimeException(
@@ -769,15 +766,15 @@ public class TopologyBuilder {
String clusterAlias = CloudControllerUtil.getAliasFromClusterId(clusterId);
Member member = cluster.getMember(memberId);
if (member == null) {
- throw new RuntimeException((String.format("Member %s does not exist", memberId)));
+ throw new RuntimeException((String.format("Member [member-id] %s does not exist", memberId)));
}
String clusterInstanceId = member.getClusterInstanceId();
//member terminated time
Long timestamp = null;
+ TopologyHolder.acquireWriteLock();
try {
- TopologyHolder.acquireWriteLock();
properties = member.getProperties();
cluster.removeMember(member);
TopologyHolder.updateTopology(topology);
@@ -804,7 +801,6 @@ public class TopologyBuilder {
public static void handleClusterActivatedEvent(
ClusterStatusClusterActivatedEvent clusterStatusClusterActivatedEvent) throws RegistryException {
-
Topology topology = TopologyHolder.getTopology();
Service service = topology.getService(clusterStatusClusterActivatedEvent.getServiceName());
//update the status of the cluster
@@ -830,12 +826,10 @@ public class TopologyBuilder {
ClusterInstanceActivatedEvent clusterInstanceActivatedEvent = new ClusterInstanceActivatedEvent(
clusterStatusClusterActivatedEvent.getAppId(), clusterStatusClusterActivatedEvent.getServiceName(),
clusterStatusClusterActivatedEvent.getClusterId(), clusterStatusClusterActivatedEvent.getInstanceId());
+ TopologyHolder.acquireWriteLock();
try {
- TopologyHolder.acquireWriteLock();
-
Collection<KubernetesService> kubernetesServices = clusterContext
.getKubernetesServices(clusterStatusClusterActivatedEvent.getInstanceId());
-
if ((kubernetesServices != null) && (kubernetesServices.size() > 0)) {
try {
// Generate access URLs for kubernetes services
@@ -850,28 +844,28 @@ public class TopologyBuilder {
// Using type URI since only http, https, ftp, file, jar protocols are
// supported in URL
int port = kubernetesService.getPort();
- if(cluster.getLoadBalancerIps().size() > 0) {
+ if (cluster.getLoadBalancerIps().size() > 0) {
// Load balancer ips have been provided, need to use proxy port
port = findProxyPort(applicationId, clusterId, kubernetesService.getPortName());
}
- URI accessURL = new URI(kubernetesService.getProtocol(), null, hostname,
- port, null, null, null);
+ URI accessURL = new URI(kubernetesService.getProtocol(), null, hostname, port, null,
+ null, null);
cluster.addAccessUrl(clusterStatusClusterActivatedEvent.getInstanceId(),
accessURL.toString());
clusterInstanceActivatedEvent.addAccessUrl(accessURL.toString());
}
}
}
- if(cluster.getLoadBalancerIps().size() == 0) {
+ if (cluster.getLoadBalancerIps().size() == 0) {
// Load balancer ips not given, use node public ips as load balancer ips
List<String> nodePublicIpsList = new ArrayList<>();
nodePublicIpsList.addAll(nodePublicIps);
cluster.setLoadBalancerIps(nodePublicIpsList);
clusterInstanceActivatedEvent.setLoadBalancerIps(nodePublicIpsList);
}
- log.info(String.format("Access URLs generated for kubernetes services: [application] %s " +
- "[cluster] %s [access-urls] %s",
- applicationId, clusterId, clusterInstanceActivatedEvent.getAccessUrls()));
+ log.info(String.format("Access URLs generated for kubernetes services: [application] %s "
+ + "[cluster] %s [access-urls] %s", applicationId, clusterId,
+ clusterInstanceActivatedEvent.getAccessUrls()));
} catch (URISyntaxException e) {
log.error("Could not generate access URLs for Kubernetes services", e);
}
@@ -881,8 +875,8 @@ public class TopologyBuilder {
getClusterPortMappings(applicationId, clusterId);
for (ClusterPortMapping portMapping : portMappings) {
for (String hostname : cluster.getHostNames()) {
- URI accessURL = new URI(portMapping.getProtocol(), null, hostname,
- portMapping.getPort(), null, null, null);
+ URI accessURL = new URI(portMapping.getProtocol(), null, hostname, portMapping.getPort(),
+ null, null, null);
cluster.addAccessUrl(clusterStatusClusterActivatedEvent.getInstanceId(),
accessURL.toString());
clusterInstanceActivatedEvent.addAccessUrl(accessURL.toString());
@@ -924,13 +918,14 @@ public class TopologyBuilder {
private static int findProxyPort(String applicationId, String clusterId, String portName) {
List<ClusterPortMapping> portMappings = CloudControllerContext.getInstance().
getClusterPortMappings(applicationId, clusterId);
- for(ClusterPortMapping portMapping : portMappings) {
- if(portMapping.getName().equals(portName)) {
+ for (ClusterPortMapping portMapping : portMappings) {
+ if (portMapping.getName().equals(portName)) {
return portMapping.getProxyPort();
}
}
- throw new RuntimeException(String.format("Port mapping not found: [application] %s [cluster] %s " +
- "[port-name] %s", applicationId, clusterId, portName));
+ throw new RuntimeException(
+ String.format("Port mapping not found: [application] %s [cluster] %s " + "[port-name] %s",
+ applicationId, clusterId, portName));
}
public static void handleClusterInactivateEvent(ClusterStatusClusterInactivateEvent clusterInactivateEvent)
@@ -953,8 +948,8 @@ public class TopologyBuilder {
ClusterInstanceInactivateEvent clusterInactivatedEvent1 = new ClusterInstanceInactivateEvent(
clusterInactivateEvent.getAppId(), clusterInactivateEvent.getServiceName(),
clusterInactivateEvent.getClusterId(), clusterInactivateEvent.getInstanceId());
+ TopologyHolder.acquireWriteLock();
try {
- TopologyHolder.acquireWriteLock();
ClusterInstance context = cluster.getInstanceContexts(clusterInactivateEvent.getInstanceId());
if (context == null) {
throw new RuntimeException("Cluster Instance Context is not found for [cluster] " +
@@ -1024,14 +1019,11 @@ public class TopologyBuilder {
} finally {
TopologyHolder.releaseWriteLock();
}
-
}
public static void handleClusterTerminatingEvent(ClusterStatusClusterTerminatingEvent event)
throws RegistryException {
-
TopologyHolder.acquireWriteLock();
-
try {
Topology topology = TopologyHolder.getTopology();
Cluster cluster = topology.getService(event.getServiceName()).