Attaching the diff for DefaultExtensionHandler.java between 4.1.0 and 4.0.0
(--- 4.0.0, +++ 4.1.0)
Thanks
Martin
From: Martin Eppel (meppel)
Sent: Tuesday, March 17, 2015 11:21 AM
To: [email protected]
Subject: DISCUSS: JIRA STRATOS-697support in 4.1 ?
I noticed that the code which resolved the JIRA STRATOS-697 seems to be missing
in 4.1. This JIRA supports clustering and WKA member handling in Stratos.
I am not sure if it is still required or not ?
STRATOS-697 introduced in the JCA the class DefaultExtensionHandler.java which
is there in 4.0.0 and 4.1.0 . However, some code in DefaultExtensionHandleris
missing in 4.1, for instance:
In 4.0.0 DefaultExtensionHandler references lb enhancements ( missing in 4.1):
...
String lbClusterId =
cluster.getMember(memberActivatedEvent.getMemberId()).getLbClusterId();
...
// check whether member activated event is received from the same cluster,
lbcluster or service group
if
(ExtensionUtils.isRelevantMemberEvent(memberActivatedEvent.getServiceName(),
memberActivatedEvent.getClusterId(), lbClusterId)) {
Map<String, String> env = new HashMap<String, String>();
env.put("STRATOS_MEMBER_ACTIVATED_MEMBER_IP",
memberActivatedEvent.getMemberIp());
env.put("STRATOS_MEMBER_ACTIVATED_MEMBER_ID",
memberActivatedEvent.getMemberId());
env.put("STRATOS_MEMBER_ACTIVATED_CLUSTER_ID",
memberActivatedEvent.getClusterId());
env.put("STRATOS_MEMBER_ACTIVATED_LB_CLUSTER_ID", lbClusterId);
...
In ExtensionUtils.java
...
public static boolean isRelevantMemberEvent(String serviceName, String
clusterId, String lbClusterId) {
...
In think the question is if code changes for JIRA STRATOS-697 are still need to
be supported in 4.1 or not and were missed to be ported to 4.1 or were
implemented differently - same question might apply to JPA ?
Thanks
Martin
diff --git
a/./components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/extensions/DefaultExtensionHandler.java
b/../../cisco_stratos/stratos/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/extensions/DefaultExtensionHandler.java
index e861819..421deb0 100644
---
a/./components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/extensions/DefaultExtensionHandler.java
+++
b/../../cisco_stratos/stratos/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/extensions/DefaultExtensionHandler.java
@@ -21,6 +21,7 @@ package org.apache.stratos.cartridge.agent.extensions;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
+
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -37,14 +38,14 @@ import
org.apache.stratos.messaging.event.instance.notifier.ArtifactUpdatedEvent
import
org.apache.stratos.messaging.event.instance.notifier.InstanceCleanupClusterEvent;
import
org.apache.stratos.messaging.event.instance.notifier.InstanceCleanupMemberEvent;
import org.apache.stratos.messaging.event.tenant.CompleteTenantEvent;
-import org.apache.stratos.messaging.event.tenant.SubscriptionDomainAddedEvent;
-import
org.apache.stratos.messaging.event.tenant.SubscriptionDomainRemovedEvent;
+import
org.apache.stratos.messaging.event.application.signup.ApplicationSignUpRemovedEvent;
+import
org.apache.stratos.messaging.event.domain.mapping.DomainMappingAddedEvent;
+import
org.apache.stratos.messaging.event.domain.mapping.DomainMappingRemovedEvent;
+import org.apache.stratos.messaging.event.tenant.TenantSubscribedEvent;
+import org.apache.stratos.messaging.event.tenant.TenantUnSubscribedEvent;
import org.apache.stratos.messaging.event.topology.*;
import org.apache.stratos.messaging.message.receiver.tenant.TenantManager;
-import org.apache.stratos.messaging.message.receiver.topology.TopologyManager;
-import org.wso2.andes.util.Serial;
-import java.io.File;
import java.lang.reflect.Type;
import java.util.*;
@@ -58,7 +59,6 @@ public class DefaultExtensionHandler implements
ExtensionHandler {
}.getType();
private static final Type serviceType = new
TypeToken<Collection<Service>>() {
}.getType();
- private final ArrayList<Member> wkMembers = new ArrayList<Member>();
@Override
public void onInstanceStartedEvent() {
@@ -66,6 +66,13 @@ public class DefaultExtensionHandler implements
ExtensionHandler {
if (log.isDebugEnabled()) {
log.debug("Processing instance started event...");
}
+
+ if (CartridgeAgentConfiguration.getInstance().isMultitenant()) {
+ ExtensionUtils.executeCopyArtifactsExtension(
+ CartridgeAgentConfiguration.getInstance().getAppPath()
+ "/repository/deployment/server/",
+ CartridgeAgentConstants.SUPERTENANT_TEMP_PATH);
+ }
+
Map<String, String> env = new HashMap<String, String>();
ExtensionUtils.executeInstanceStartedExtension(env);
} catch (Exception e) {
@@ -103,6 +110,7 @@ public class DefaultExtensionHandler implements
ExtensionHandler {
if (log.isInfoEnabled()) {
log.info("Executing git checkout");
}
+
RepositoryInformation repoInformation = new
RepositoryInformation();
repoInformation.setRepoUsername(repoUsername);
if (repoPassword == null) {
@@ -110,6 +118,7 @@ public class DefaultExtensionHandler implements
ExtensionHandler {
} else {
repoInformation.setRepoPassword(repoPassword);
}
+
repoInformation.setRepoUrl(repoURL);
repoInformation.setRepoPath(localRepoPath);
repoInformation.setTenantId(tenantId);
@@ -120,6 +129,7 @@ public class DefaultExtensionHandler implements
ExtensionHandler {
} catch (Exception e) {
log.error(e);
}
+
Map<String, String> env = new HashMap<String, String>();
env.put("STRATOS_ARTIFACT_UPDATED_CLUSTER_ID",
artifactUpdatedEvent.getClusterId());
env.put("STRATOS_ARTIFACT_UPDATED_TENANT_ID",
artifactUpdatedEvent.getTenantId());
@@ -129,7 +139,7 @@ public class DefaultExtensionHandler implements
ExtensionHandler {
env.put("STRATOS_ARTIFACT_UPDATED_STATUS",
artifactUpdatedEvent.getStatus());
ExtensionUtils.executeArtifactsUpdatedExtension(env);
- if (!cloneExists) {
+ if (!cloneExists && !isMultitenant) {
// Executed git clone, publish instance activated event
CartridgeAgentEventPublisher.publishInstanceActivatedEvent();
}
@@ -158,7 +168,7 @@ public class DefaultExtensionHandler implements
ExtensionHandler {
log.info("Artifact updating task enabled, update interval: " +
artifactUpdateInterval + "s");
if (autoCommit) {
log.info("Auto Commit is turned on ");
- } else {
+ } else {
log.info("Auto Commit is turned off ");
}
@@ -173,15 +183,6 @@ public class DefaultExtensionHandler implements
ExtensionHandler {
} else {
log.info("Artifact updating task disabled");
}
-
- // If supert tenant temp app path is available,
- // copy the artifacts to carbon server's deployment path
- String src = CartridgeAgentConstants.SUPERTENANT_TEMP_PATH;
- if (new File(src).exists() && tenantId.equals("-1234")) {
- ExtensionUtils.executeCopyArtifactsExtension(src,
-
CartridgeAgentConfiguration.getInstance().getAppPath()+
"/repository/deployment/server/");
- }
-
}
}
@@ -222,7 +223,6 @@ public class DefaultExtensionHandler implements
ExtensionHandler {
CartridgeAgentEventPublisher.publishInstanceReadyToShutdownEvent();
}
-
@Override
public void onMemberActivatedEvent(MemberActivatedEvent
memberActivatedEvent) {
if (log.isInfoEnabled()) {
@@ -235,95 +235,20 @@ public class DefaultExtensionHandler implements
ExtensionHandler {
log.debug("Member activated event msg:" + msg);
}
- boolean isConsistent =
ExtensionUtils.checkTopologyConsistency(memberActivatedEvent.getServiceName(),
+ boolean memberInitialized =
ExtensionUtils.checkTopologyConsistency(memberActivatedEvent.getServiceName(),
memberActivatedEvent.getClusterId(),
memberActivatedEvent.getMemberId());
- if (!isConsistent) {
+ if (!memberInitialized) {
if (log.isErrorEnabled()) {
- log.error("Topology is inconsistent...failed to execute member
activated event");
+ log.error("Member has not initialized. Failed to execute
member activated event");
}
return;
}
+
+ Map<String, String> env = new HashMap<String, String>();
- Topology topology = TopologyManager.getTopology();
- Service service =
topology.getService(memberActivatedEvent.getServiceName());
- Cluster cluster =
service.getCluster(memberActivatedEvent.getClusterId());
- String lbClusterId =
cluster.getMember(memberActivatedEvent.getMemberId()).getLbClusterId();
- Member member = cluster.getMember(memberActivatedEvent.getMemberId());
-
- // check whether member activated event is received from the same
cluster, lbcluster or service group
- if
(ExtensionUtils.isRelevantMemberEvent(memberActivatedEvent.getServiceName(),
memberActivatedEvent.getClusterId(), lbClusterId)) {
- Map<String, String> env = new HashMap<String, String>();
- env.put("STRATOS_MEMBER_ACTIVATED_MEMBER_IP",
memberActivatedEvent.getMemberIp());
- env.put("STRATOS_MEMBER_ACTIVATED_MEMBER_ID",
memberActivatedEvent.getMemberId());
- env.put("STRATOS_MEMBER_ACTIVATED_CLUSTER_ID",
memberActivatedEvent.getClusterId());
- env.put("STRATOS_MEMBER_ACTIVATED_LB_CLUSTER_ID", lbClusterId);
- env.put("STRATOS_MEMBER_ACTIVATED_NETWORK_PARTITION_ID",
memberActivatedEvent.getNetworkPartitionId());
- env.put("STRATOS_MEMBER_ACTIVATED_SERVICE_NAME",
memberActivatedEvent.getServiceName());
-
- Collection<Port> ports = memberActivatedEvent.getPorts();
- String ports_str = "";
- for (Port port : ports) {
- ports_str += port.getProtocol() + "," + port.getValue() + ","
+ port.getProxy() + "|";
- }
- env.put("STRATOS_MEMBER_ACTIVATED_PORTS", ports_str);
-
- Collection<Member> members = cluster.getMembers();
- env.put("STRATOS_MEMBER_ACTIVATED_MEMBER_LIST_JSON",
gson.toJson(members, memberType));
- String[] memberIps = ExtensionUtils.getLbMemberIp(lbClusterId);
- if (memberIps != null && memberIps.length > 1) {
- env.put("STRATOS_MEMBER_ACTIVATED_LB_IP", memberIps[0]);
- env.put("STRATOS_MEMBER_ACTIVATED_LB_PUBLIC_IP", memberIps[1]);
- }
- env.put("STRATOS_TOPOLOGY_JSON",
gson.toJson(topology.getServices(), serviceType));
- ExtensionUtils.addProperties(service.getProperties(), env,
"MEMBER_ACTIVATED_SERVICE_PROPERTY");
- ExtensionUtils.addProperties(cluster.getProperties(), env,
"MEMBER_ACTIVATED_CLUSTER_PROPERTY");
- ExtensionUtils.addProperties(member.getProperties(), env,
"MEMBER_ACTIVATED_MEMBER_PROPERTY");
-
- // if clustering is enabled check activated member is WK member
- String flagClustering =
CartridgeAgentConfiguration.getInstance().getIsClustered();
-
- // if WK member is re-spawned, update axis2.xml
- if (member.getProperties() != null &&
"true".equals(member.getProperties().getProperty(CartridgeAgentConstants.CLUSTERING_PRIMARY_KEY))
&&
- flagClustering != null &&
"true".equals(flagClustering.toLowerCase())){
- if(log.isDebugEnabled()) {
- log.debug(" If WK member is re-spawned, update
axis2.xml ");
- }
- boolean hasWKIpChanged = true;
- for (Member m : this.wkMembers){
- if
(m.getMemberIp().equals(memberActivatedEvent.getMemberIp())){
- hasWKIpChanged = false;
- }
- }
- if(log.isDebugEnabled()) {
- log.debug(" hasWKIpChanged " + hasWKIpChanged);
- }
- int minCount =
Integer.parseInt(CartridgeAgentConfiguration.getInstance().getMinCount());
- boolean isWKMemberGroupReady = isWKMemberGroupReady(env,
minCount);
- if(log.isDebugEnabled()) {
- log.debug("minCount " + minCount);
- log.debug("isWKMemberGroupReady " +
isWKMemberGroupReady);
- }
- if (hasWKIpChanged && isWKMemberGroupReady){
- if(log.isDebugEnabled()) {
- log.debug("Setting env var STRATOS_UPDATE_WK_IP
to true");
- }
- env.put("STRATOS_UPDATE_WK_IP", "true");
- }
- }
- if(log.isDebugEnabled()) {
- log.debug("Setting env var STRATOS_CLUSTERING to " +
flagClustering);
- }
- env.put("STRATOS_CLUSTERING", flagClustering);
- env.put("STRATOS_WK_MEMBER_COUNT",
CartridgeAgentConfiguration.getInstance().getMinCount());
- ExtensionUtils.executeMemberActivatedExtension(env);
- } else {
- if (log.isDebugEnabled()) {
- log.debug("Member activated event is not relevant...skipping
agent extension");
- }
- }
+ ExtensionUtils.executeMemberActivatedExtension(env);
}
-
-
+
@Override
public void onCompleteTopologyEvent(CompleteTopologyEvent
completeTopologyEvent) {
if (log.isDebugEnabled()) {
@@ -333,7 +258,15 @@ public class DefaultExtensionHandler implements
ExtensionHandler {
String serviceNameInPayload =
CartridgeAgentConfiguration.getInstance().getServiceName();
String clusterIdInPayload =
CartridgeAgentConfiguration.getInstance().getClusterId();
String memberIdInPayload =
CartridgeAgentConfiguration.getInstance().getMemberId();
- ExtensionUtils.checkTopologyConsistency(serviceNameInPayload,
clusterIdInPayload, memberIdInPayload);
+
+
+ boolean isConsistent =
ExtensionUtils.checkTopologyConsistency(serviceNameInPayload,
clusterIdInPayload, memberIdInPayload);
+ if (!isConsistent) {
+ // if this member isn't there in the complete topology
+ return;
+ } else {
+ CartridgeAgentConfiguration.getInstance().setInitialized(true);
+ }
Topology topology = completeTopologyEvent.getTopology();
Service service = topology.getService(serviceNameInPayload);
@@ -346,6 +279,46 @@ public class DefaultExtensionHandler implements
ExtensionHandler {
}
@Override
+ public void onMemberInitializedEvent(MemberInitializedEvent
memberInitializedEvent) {
+ if (log.isDebugEnabled()) {
+ log.debug("Member initialized event received");
+ }
+ String serviceNameInPayload =
CartridgeAgentConfiguration.getInstance().getServiceName();
+ String clusterIdInPayload =
CartridgeAgentConfiguration.getInstance().getClusterId();
+ String memberIdInPayload =
CartridgeAgentConfiguration.getInstance().getMemberId();
+
+ Member activatedMember =
ExtensionUtils.getMemberFromTopology(serviceNameInPayload, clusterIdInPayload,
memberIdInPayload);
+ if (activatedMember == null) {
+ // if this member isn't there in the complete topology
+ if (log.isDebugEnabled()) {
+ log.debug("Member does not exist in topology, or not in
initialized state.");
+ }
+ } else {
+ if (log.isDebugEnabled()) {
+ log.debug("Member has initialized, topology is consistent,
agent is initialized");
+ }
+
+ CartridgeAgentConfiguration.getInstance().setInitialized(true);
+ }
+ }
+
+ @Override
+ public void onMemberCreatedEvent(MemberCreatedEvent memberCreatedEvent) {
+ // listen to this just to get updated faster about the member
initialization
+ if (log.isDebugEnabled()) {
+ log.debug("Instance Spawned event received");
+ }
+ String serviceNameInPayload =
CartridgeAgentConfiguration.getInstance().getServiceName();
+ String clusterIdInPayload =
CartridgeAgentConfiguration.getInstance().getClusterId();
+ String memberIdInPayload =
CartridgeAgentConfiguration.getInstance().getMemberId();
+
+ boolean memberInitialized =
ExtensionUtils.checkTopologyConsistency(serviceNameInPayload,
clusterIdInPayload, memberIdInPayload);
+ if (memberInitialized) {
+ CartridgeAgentConfiguration.getInstance().setInitialized(true);
+ }
+ }
+
+ @Override
public void onCompleteTenantEvent(CompleteTenantEvent completeTenantEvent)
{
if (log.isDebugEnabled()) {
log.debug("Complete tenant event received");
@@ -371,50 +344,18 @@ public class DefaultExtensionHandler implements
ExtensionHandler {
log.debug("Member terminated event msg:" + msg);
}
- boolean isConsistent =
ExtensionUtils.checkTopologyConsistency(memberTerminatedEvent.getServiceName(),
+ boolean memberInitialized =
ExtensionUtils.checkTopologyConsistency(memberTerminatedEvent.getServiceName(),
memberTerminatedEvent.getClusterId(),
memberTerminatedEvent.getMemberId());
- if (!isConsistent) {
+ if (!memberInitialized) {
if (log.isErrorEnabled()) {
- log.error("Topology is inconsistent...failed to execute member
terminated event");
+ log.error("Member has not initialized. Failed to execute
member terminated event");
}
return;
}
+
+ Map<String, String> env = new HashMap<String, String>();
- Topology topology = TopologyManager.getTopology();
- Service service =
topology.getService(memberTerminatedEvent.getServiceName());
- Cluster cluster =
service.getCluster(memberTerminatedEvent.getClusterId());
- Member terminatedMember =
cluster.getMember(memberTerminatedEvent.getMemberId());
- String lbClusterId =
cluster.getMember(memberTerminatedEvent.getClusterId()).getLbClusterId();
-
- // check whether terminated member is within the same cluster, LB
cluster or service group
- if
(ExtensionUtils.isRelevantMemberEvent(memberTerminatedEvent.getServiceName(),
- memberTerminatedEvent.getClusterId(), lbClusterId)) {
-
- Collection<Member> members = cluster.getMembers();
- Map<String, String> env = new HashMap<String, String>();
- env.put("STRATOS_MEMBER_TERMINATED_MEMBER_IP",
terminatedMember.getMemberIp());
- env.put("STRATOS_MEMBER_TERMINATED_MEMBER_ID",
memberTerminatedEvent.getMemberId());
- env.put("STRATOS_MEMBER_TERMINATED_CLUSTER_ID",
memberTerminatedEvent.getClusterId());
- env.put("STRATOS_MEMBER_TERMINATED_LB_CLUSTER_ID", lbClusterId);
- env.put("STRATOS_MEMBER_TERMINATED_NETWORK_PARTITION_ID",
memberTerminatedEvent.getNetworkPartitionId());
- env.put("STRATOS_MEMBER_TERMINATED_SERVICE_NAME",
memberTerminatedEvent.getServiceName());
- env.put("STRATOS_MEMBER_TERMINATED_MEMBER_LIST_JSON",
gson.toJson(members, memberType));
- env.put("STRATOS_TOPOLOGY_JSON",
gson.toJson(topology.getServices(), serviceType));
- String[] memberIps = ExtensionUtils.getLbMemberIp(lbClusterId);
- if (memberIps != null && memberIps.length > 1) {
- env.put("STRATOS_MEMBER_TERMINATED_LB_IP", memberIps[0]);
- env.put("STRATOS_MEMBER_TERMINATED_LB_PUBLIC_IP",
memberIps[1]);
- }
-
- ExtensionUtils.addProperties(service.getProperties(), env,
"MEMBER_TERMINATED_SERVICE_PROPERTY");
- ExtensionUtils.addProperties(cluster.getProperties(), env,
"MEMBER_TERMINATED_CLUSTER_PROPERTY");
- ExtensionUtils.addProperties(terminatedMember.getProperties(),
env, "MEMBER_TERMINATED_MEMBER_PROPERTY");
- ExtensionUtils.executeMemberTerminatedExtension(env);
- } else {
- if (log.isDebugEnabled()) {
- log.debug("Member terminated event is not relevant...skipping
agent extension");
- }
- }
+ ExtensionUtils.executeMemberTerminatedExtension(env);
}
@Override
@@ -429,49 +370,18 @@ public class DefaultExtensionHandler implements
ExtensionHandler {
log.debug("Member suspended event msg:" + msg);
}
- boolean isConsistent =
ExtensionUtils.checkTopologyConsistency(memberSuspendedEvent.getServiceName(),
+ boolean memberInitialized =
ExtensionUtils.checkTopologyConsistency(memberSuspendedEvent.getServiceName(),
memberSuspendedEvent.getClusterId(),
memberSuspendedEvent.getMemberId());
- if (!isConsistent) {
+ if (!memberInitialized) {
if (log.isErrorEnabled()) {
- log.error("Topology is inconsistent...failed to execute member
suspended event");
+ log.error("Member has not initialized. Failed to execute
member suspended event");
}
return;
}
+
+ Map<String, String> env = new HashMap<String, String>();
- String clusterId = memberSuspendedEvent.getClusterId();
- Topology topology = TopologyManager.getTopology();
- Service service =
topology.getService(memberSuspendedEvent.getServiceName());
- Cluster cluster =
service.getCluster(memberSuspendedEvent.getClusterId());
- Member suspendedMember =
cluster.getMember(memberSuspendedEvent.getMemberId());
- String lbClusterId =
cluster.getMember(memberSuspendedEvent.getClusterId()).getLbClusterId();
-
- // check whether new member is in the same member cluster or LB
cluster of this instance
- if
(ExtensionUtils.isRelevantMemberEvent(memberSuspendedEvent.getServiceName(),
- memberSuspendedEvent.getClusterId(), lbClusterId)) {
- Collection<Member> members = cluster.getMembers();
- Map<String, String> env = new HashMap<String, String>();
- env.put("STRATOS_MEMBER_SUSPENDED_MEMBER_IP",
suspendedMember.getMemberIp());
- env.put("STRATOS_MEMBER_SUSPENDED_MEMBER_ID",
memberSuspendedEvent.getMemberId());
- env.put("STRATOS_MEMBER_SUSPENDED_CLUSTER_ID",
memberSuspendedEvent.getClusterId());
- env.put("STRATOS_MEMBER_SUSPENDED_LB_CLUSTER_ID", lbClusterId);
- env.put("STRATOS_MEMBER_SUSPENDED_NETWORK_PARTITION_ID",
memberSuspendedEvent.getNetworkPartitionId());
- env.put("STRATOS_MEMBER_SUSPENDED_SERVICE_NAME",
memberSuspendedEvent.getServiceName());
- env.put("STRATOS_MEMBER_SUSPENDED_MEMBER_LIST_JSON",
gson.toJson(members, memberType));
- env.put("STRATOS_TOPOLOGY_JSON",
gson.toJson(topology.getServices(), serviceType));
- String[] memberIps = ExtensionUtils.getLbMemberIp(lbClusterId);
- if (memberIps != null && memberIps.length > 1) {
- env.put("STRATOS_MEMBER_SUSPENDED_LB_IP", memberIps[0]);
- env.put("STRATOS_MEMBER_SUSPENDED_LB_PUBLIC_IP", memberIps[1]);
- }
- ExtensionUtils.addProperties(service.getProperties(), env,
"MEMBER_SUSPENDED_SERVICE_PROPERTY");
- ExtensionUtils.addProperties(cluster.getProperties(), env,
"MEMBER_SUSPENDED_CLUSTER_PROPERTY");
- ExtensionUtils.addProperties(suspendedMember.getProperties(), env,
"MEMBER_SUSPENDED_MEMBER_PROPERTY");
- ExtensionUtils.executeMemberSuspendedExtension(env);
- } else {
- if (log.isDebugEnabled()) {
- log.debug("Member suspended event is not relevant...skipping
agent extension");
- }
- }
+ ExtensionUtils.executeMemberSuspendedExtension(env);
}
@Override
@@ -486,373 +396,18 @@ public class DefaultExtensionHandler implements
ExtensionHandler {
log.debug("Member started event msg:" + msg);
}
- boolean isConsistent =
ExtensionUtils.checkTopologyConsistency(memberStartedEvent.getServiceName(),
+ boolean memberInitialized =
ExtensionUtils.checkTopologyConsistency(memberStartedEvent.getServiceName(),
memberStartedEvent.getClusterId(),
memberStartedEvent.getMemberId());
- if (!isConsistent) {
+ if (!memberInitialized) {
if (log.isErrorEnabled()) {
- log.error("Topology is inconsistent...failed to execute member
started event");
+ log.error("Member has not initialized. Failed to execute
member started event");
}
return;
}
- String clusterId = memberStartedEvent.getClusterId();
- Topology topology = TopologyManager.getTopology();
- Service service =
topology.getService(memberStartedEvent.getServiceName());
- Cluster cluster =
service.getCluster(memberStartedEvent.getClusterId());
- Member startedMember =
cluster.getMember(memberStartedEvent.getMemberId());
- String lbClusterId =
cluster.getMember(memberStartedEvent.getMemberId()).getLbClusterId();
-
- // check whether new member is in the same member cluster or LB
cluster of this instance
- if
(ExtensionUtils.isRelevantMemberEvent(memberStartedEvent.getServiceName(),
- memberStartedEvent.getClusterId(), lbClusterId)) {
- Collection<Member> members = cluster.getMembers();
- Map<String, String> env = new HashMap<String, String>();
- env.put("STRATOS_MEMBER_STARTED_MEMBER_IP",
startedMember.getMemberIp());
- env.put("STRATOS_MEMBER_STARTED_MEMBER_ID",
memberStartedEvent.getMemberId());
- env.put("STRATOS_MEMBER_STARTED_CLUSTER_ID",
memberStartedEvent.getClusterId());
- env.put("STRATOS_MEMBER_STARTED_LB_CLUSTER_ID", lbClusterId);
- env.put("STRATOS_MEMBER_STARTED_NETWORK_PARTITION_ID",
memberStartedEvent.getNetworkPartitionId());
- env.put("STRATOS_MEMBER_STARTED_SERVICE_NAME",
memberStartedEvent.getServiceName());
- env.put("STRATOS_MEMBER_STARTED_MEMBER_LIST_JSON",
gson.toJson(members, memberType));
- env.put("STRATOS_MEMBER_STARTED_TOPOLOGY_JSON",
gson.toJson(topology.getServices(), serviceType));
- String[] memberIps = ExtensionUtils.getLbMemberIp(lbClusterId);
- if (memberIps != null && memberIps.length > 1) {
- env.put("STRATOS_MEMBER_STARTED_LB_IP", memberIps[0]);
- env.put("STRATOS_MEMBER_STARTED_LB_PUBLIC_IP", memberIps[1]);
- }
- ExtensionUtils.addProperties(service.getProperties(), env,
"MEMBER_STARTED_SERVICE_PROPERTY");
- ExtensionUtils.addProperties(cluster.getProperties(), env,
"MEMBER_STARTED_CLUSTER_PROPERTY");
- ExtensionUtils.addProperties(startedMember.getProperties(), env,
"MEMBER_STARTED_MEMBER_PROPERTY");
- ExtensionUtils.executeMemberStartedExtension(env);
- } else {
- if (log.isDebugEnabled()) {
- log.debug("Member started event is not relevant...skipping
agent extension");
- }
- }
- }
-
- private boolean isWKMemberGroupReady(Map<String, String> envParameters,
int minCount) {
- Topology topology = TopologyManager.getTopology();
- if (topology == null || !topology.isInitialized()) {
- return false;
- }
- String serviceGroupInPayload =
CartridgeAgentConfiguration.getInstance().getServiceGroup();
- if (serviceGroupInPayload != null) {
- envParameters.put("STRATOS_SERVICE_GROUP", serviceGroupInPayload);
- }
-
- // clustering logic for apimanager
- if (serviceGroupInPayload != null &&
serviceGroupInPayload.equals("apim")) {
-
- // handle apistore and publisher case
- if
(CartridgeAgentConfiguration.getInstance().getServiceName().equals("apistore")
||
-
CartridgeAgentConfiguration.getInstance().getServiceName().equals("publisher"))
{
-
- Collection<Cluster> apistoreClusterCollection =
topology.getService("apistore").getClusters();
- Collection<Cluster> publisherClusterCollection =
topology.getService("publisher").getClusters();
-
- List<Member> apistoreMemberList = new ArrayList<Member>();
- for (Member member :
apistoreClusterCollection.iterator().next().getMembers()) {
- if (member.getStatus().equals(MemberStatus.Starting) ||
member.getStatus().equals(MemberStatus.Activated)) {
- apistoreMemberList.add(member);
- this.wkMembers.add(member);
- }
- }
- if (apistoreMemberList.isEmpty()) {
- if (log.isDebugEnabled()) {
- log.debug("API Store members not yet created");
- }
- return false;
- }
- Member apistoreMember = apistoreMemberList.get(0);
- envParameters.put("STRATOS_WK_APISTORE_MEMBER_IP",
apistoreMember.getMemberIp());
- if (log.isDebugEnabled()) {
- log.debug("STRATOS_WK_APISTORE_MEMBER_IP: " +
apistoreMember.getMemberIp());
- }
-
- List<Member> publisherMemberList = new ArrayList<Member>();
- for (Member member :
publisherClusterCollection.iterator().next().getMembers()) {
- if (member.getStatus().equals(MemberStatus.Starting) ||
member.getStatus().equals(MemberStatus.Activated)) {
- publisherMemberList.add(member);
- this.wkMembers.add(member);
- }
- }
- if (publisherMemberList.isEmpty()) {
- if (log.isDebugEnabled()) {
- log.debug("API Publisher members not yet created");
- }
- return false;
- }
- Member publisherMember = publisherMemberList.get(0);
- envParameters.put("STRATOS_WK_PUBLISHER_MEMBER_IP",
publisherMember.getMemberIp());
- if (log.isDebugEnabled()) {
- log.debug("STRATOS_WK_PUBLISHER_MEMBER_IP: " +
publisherMember.getMemberIp());
- }
-
- return true;
-
- } else if
(CartridgeAgentConfiguration.getInstance().getServiceName().equals("gatewaymgt")
||
-
CartridgeAgentConfiguration.getInstance().getServiceName().equals("gateway")) {
-
- if (CartridgeAgentConfiguration.getInstance().getDeployment()
!= null) {
- // check if deployment is Manager Worker separated
- if
(CartridgeAgentConfiguration.getInstance().getDeployment().equalsIgnoreCase(CartridgeAgentConstants.DEPLOYMENT_MANAGER)
||
-
CartridgeAgentConfiguration.getInstance().getDeployment().equalsIgnoreCase(CartridgeAgentConstants.DEPLOYMENT_WORKER))
{
-
- log.info("Deployment pattern for the node: " +
CartridgeAgentConfiguration.getInstance().getDeployment());
- envParameters.put("DEPLOYMENT",
CartridgeAgentConfiguration.getInstance().getDeployment());
- // check if WKA members of Manager Worker separated
deployment is ready
- return isManagerWorkerWKAGroupReady(envParameters);
- }
- }
-
-
- } else if
(CartridgeAgentConfiguration.getInstance().getServiceName().equals("keymanager"))
{
- return true;
- }
- } else {
-
- if (CartridgeAgentConfiguration.getInstance().getDeployment() !=
null) {
- // check if deployment is Manager Worker separated
- if
(CartridgeAgentConfiguration.getInstance().getDeployment().equalsIgnoreCase(CartridgeAgentConstants.DEPLOYMENT_MANAGER)
||
-
CartridgeAgentConfiguration.getInstance().getDeployment().equalsIgnoreCase(CartridgeAgentConstants.DEPLOYMENT_WORKER))
{
-
- log.info("Deployment pattern for the node: " +
CartridgeAgentConfiguration.getInstance().getDeployment());
- envParameters.put("DEPLOYMENT",
CartridgeAgentConfiguration.getInstance().getDeployment());
- // check if WKA members of Manager Worker separated
deployment is ready
- return isManagerWorkerWKAGroupReady(envParameters);
- }
- }
-
- String serviceNameInPayload =
CartridgeAgentConfiguration.getInstance().getServiceName();
- String clusterIdInPayload =
CartridgeAgentConfiguration.getInstance().getClusterId();
- Service service = topology.getService(serviceNameInPayload);
- Cluster cluster = service.getCluster(clusterIdInPayload);
-
- List<Member> wkMembers = new ArrayList<Member>();
- for (Member member : cluster.getMembers()) {
- if (member.getProperties() != null &&
- member.getProperties().containsKey("PRIMARY") &&
-
member.getProperties().getProperty("PRIMARY").toLowerCase().equals("true") &&
- (member.getStatus().equals(MemberStatus.Starting) ||
member.getStatus().equals(MemberStatus.Activated))
- ) {
- wkMembers.add(member);
- this.wkMembers.add(member);
- if (log.isDebugEnabled()) {
- log.debug("Found WKA: STRATOS_WK_MEMBER_IP: " +
member.getMemberIp());
- }
- }
- }
- if (wkMembers.size() >= minCount) {
- int idx = 0;
- for (Member member : wkMembers) {
- envParameters.put("STRATOS_WK_MEMBER_" + idx + "_IP",
member.getMemberIp());
- if (log.isDebugEnabled()) {
- log.debug("STRATOS_WK_MEMBER_" + idx + "_IP: " +
member.getMemberIp());
- }
- idx++;
- }
- return true;
- }
- }
- return false;
- }
-
- // generic worker manager separated clustering logic
- private boolean isManagerWorkerWKAGroupReady (Map<String, String>
envParameters) {
-
- // for this, we need both manager cluster service name and worker
cluster service name
- String managerServiceName =
CartridgeAgentConfiguration.getInstance().getManagerServiceName();
- String workerServiceName =
CartridgeAgentConfiguration.getInstance().getWorkerServiceName();
-
- // managerServiceName and workerServiceName both should not be null
/empty
- if (managerServiceName == null || managerServiceName.isEmpty()) {
- log.error("Manager service name [ "+ managerServiceName +" ] is
invalid");
- return false;
- }
- if (workerServiceName == null || workerServiceName.isEmpty()) {
- log.error("Worker service name [ "+ workerServiceName +" ] is
invalid");
- return false;
- }
-
- boolean minManagerInstancesAvailable = false;
- boolean minWorkerInstancesAvailable = false;
-
- TopologyManager.acquireReadLock();
-
- try {
- Service managerService =
TopologyManager.getTopology().getService(managerServiceName);
- Service workerService =
TopologyManager.getTopology().getService(workerServiceName);
-
- if (managerService == null) {
- log.warn("Service [ "+managerServiceName+" ] is not found");
- return false;
- }
-
- if (workerService == null) {
- log.warn("Service [ "+workerServiceName+" ] is not found");
- return false;
- }
-
- // manager clusters
- Collection<Cluster> managerClusters = managerService.getClusters();
- if (managerClusters == null || managerClusters.isEmpty()) {
- log.warn("No clusters found for service [ "+
managerServiceName + " ]");
- return false;
- }
-
- int managerMinInstanceCount = 1;
- boolean managerMinInstanceCountFound = false;
-
- List<Member> managerWkaMembers = new ArrayList<Member>();
- for (Member member :
managerClusters.iterator().next().getMembers()) {
-
- if (member.getProperties() != null &&
member.getProperties().containsKey("PRIMARY") &&
-
member.getProperties().getProperty("PRIMARY").toLowerCase().equals("true") &&
- (member.getStatus().equals(MemberStatus.Starting)
|| member.getStatus().equals(MemberStatus.Activated))) {
-
- managerWkaMembers.add(member);
- this.wkMembers.add(member);
-
- // get the min instance count
- if (!managerMinInstanceCountFound) {
- managerMinInstanceCount =
getMinInstanceCountFromMemberProperties(member);
- managerMinInstanceCountFound = true;
- log.info("Manager min instance count: " +
managerMinInstanceCount);
-
- }
- }
- }
-
- if (managerWkaMembers.size() >= managerMinInstanceCount) {
- minManagerInstancesAvailable = true;
- int idx = 0;
- for (Member member : managerWkaMembers) {
- envParameters.put("STRATOS_WK_MANAGER_MEMBER_" + idx +
"_IP", member.getMemberIp());
- if(log.isDebugEnabled()) {
- log.debug("STRATOS_WK_MANAGER_MEMBER_" + idx + "_IP: "
+ member.getMemberIp());
- }
- idx++;
- }
-
- envParameters.put("STRATOS_WK_MANAGER_MEMBER_COUNT",
Integer.toString(managerMinInstanceCount));
- }
-
- // If all the manager members are non primary and is greate than
or equal to mincount,
- // minManagerInstancesAvailable should be true
- boolean allManagersNonPrimary = true;
- for (Member member :
managerClusters.iterator().next().getMembers()) {
-
- // get the min instance count
- if (!managerMinInstanceCountFound) {
- managerMinInstanceCount =
getMinInstanceCountFromMemberProperties(member);
- managerMinInstanceCountFound = true;
- log.info("Manager min instance count when
allManagersNonPrimary true : " + managerMinInstanceCount);
- }
-
- if (member.getProperties() != null &&
member.getProperties().containsKey("PRIMARY") &&
-
member.getProperties().getProperty("PRIMARY").toLowerCase().equals("true") ) {
- allManagersNonPrimary = false;
- break;
- }
- }
- if(log.isDebugEnabled()){
- log.debug(" allManagerNonPrimary & managerMinInstanceCount ["
- + allManagersNonPrimary + "], [" +
managerMinInstanceCount+"] ");
- }
- if (allManagersNonPrimary && managerClusters.size() >=
managerMinInstanceCount) {
- minManagerInstancesAvailable = true;
- }
-
- // worker cluster
- Collection<Cluster> workerClusters = workerService.getClusters();
- if (workerClusters == null || workerClusters.isEmpty()) {
- log.warn("No clusters found for service [ "+ workerServiceName
+ " ]");
- return false;
- }
-
- int workerMinInstanceCount = 1;
- boolean workerMinInstanceCountFound = false;
-
- List<Member> workerWkaMembers = new ArrayList<Member>();
- for (Member member :
workerClusters.iterator().next().getMembers()) {
- if (log.isDebugEnabled()) {
- log.debug("Checking member : " + member.getMemberId());
- }
- if (member.getProperties() != null &&
- member.getProperties().containsKey("PRIMARY") &&
-
member.getProperties().getProperty("PRIMARY").toLowerCase().equals("true") &&
- (member.getStatus().equals(MemberStatus.Starting) ||
member.getStatus().equals(MemberStatus.Activated))) {
- if (log.isDebugEnabled()) {
- log.debug("Added worker member " +
member.getMemberId());
- }
- workerWkaMembers.add(member);
- this.wkMembers.add(member);
-
- // get the min instance count
- if (!workerMinInstanceCountFound) {
- workerMinInstanceCount =
getMinInstanceCountFromMemberProperties(member);
- workerMinInstanceCountFound = true;
- if (log.isDebugEnabled()) {
- log.debug("Worker min instance count: " +
workerMinInstanceCount);
- }
- }
- }
- }
-
- if (workerWkaMembers.size() >= workerMinInstanceCount) {
- minWorkerInstancesAvailable = true;
- int idx = 0;
- for (Member member : workerWkaMembers) {
- envParameters.put("STRATOS_WK_WORKER_MEMBER_" + idx +
"_IP", member.getMemberIp());
- if (log.isDebugEnabled()) {
- log.debug("STRATOS_WK_WORKER_MEMBER_" + idx + "_IP: "
+ member.getMemberIp());
- }
- idx++;
- }
-
- envParameters.put("STRATOS_WK_WORKER_MEMBER_COUNT",
Integer.toString(workerMinInstanceCount));
- }
-
- } finally {
- TopologyManager.releaseReadLock();
- }
-
- if (log.isDebugEnabled()) {
- log.debug(" Returnning values minManagerInstancesAvailable &&
minWorkerInstancesAvailable [" +
- minManagerInstancesAvailable + "], ["+
minWorkerInstancesAvailable+"] ");
- }
- return (minManagerInstancesAvailable && minWorkerInstancesAvailable);
- }
-
-
- private int getMinInstanceCountFromMemberProperties (Member member) {
-
- // default value is 1
- int minInstanceCount = 1;
-
- if(member.getProperties().containsKey("MIN_COUNT")) {
- minInstanceCount =
Integer.parseInt(member.getProperties().getProperty("MIN_COUNT"));
- }
-
- return minInstanceCount;
- }
-
- private void waitForWKMembers(Map<String, String> envParameters) {
- int minCount =
Integer.parseInt(CartridgeAgentConfiguration.getInstance().getMinCount());
- boolean isWKMemberGroupReady = false;
- while (!isWKMemberGroupReady) {
- if (log.isInfoEnabled()) {
- log.info(String.format("Waiting for %d well known members...",
minCount));
- }
- try {
- Thread.sleep(5000);
- } catch (InterruptedException e) {
- }
+
+ Map<String, String> env = new HashMap<String, String>();
- TopologyManager.acquireReadLock();
- isWKMemberGroupReady = isWKMemberGroupReady(envParameters,
minCount);
- TopologyManager.releaseReadLock();
- }
+ ExtensionUtils.executeMemberStartedExtension(env);
}
@Override
@@ -867,51 +422,18 @@ public class DefaultExtensionHandler implements
ExtensionHandler {
String clusterIdInPayload =
CartridgeAgentConfiguration.getInstance().getClusterId();
String memberIdInPayload =
CartridgeAgentConfiguration.getInstance().getMemberId();
- try {
- TopologyManager.acquireReadLock();
- boolean isConsistent =
ExtensionUtils.checkTopologyConsistency(serviceNameInPayload,
- clusterIdInPayload, memberIdInPayload);
- if (!isConsistent) {
- if (log.isErrorEnabled()) {
- log.error("Topology is inconsistent...failed to execute
start server event");
- }
- return;
- }
- Topology topology = TopologyManager.getTopology();
- Service service = topology.getService(serviceNameInPayload);
- Cluster cluster = service.getCluster(clusterIdInPayload);
-
- // store environment variable parameters to be passed to extension
shell script
- Map<String, String> env = new HashMap<String, String>();
-
- // if clustering is enabled wait until all well known members have
started
- String flagClustering =
CartridgeAgentConfiguration.getInstance().getIsClustered();
- if (flagClustering != null &&
flagClustering.toLowerCase().equals("true")) {
- env.put("STRATOS_CLUSTERING", "true");
- env.put("STRATOS_WK_MEMBER_COUNT",
CartridgeAgentConfiguration.getInstance().getMinCount());
- if
(CartridgeAgentConfiguration.getInstance().getIsPrimary().toLowerCase().equals("true"))
{
- env.put("STRATOS_PRIMARY", "true");
- } else {
- env.put("STRATOS_PRIMARY", "false");
- }
- TopologyManager.releaseReadLock();
- waitForWKMembers(env);
- if (log.isInfoEnabled()) {
- log.info(String.format("All well known members have
started! Resuming start server extension..."));
- }
- TopologyManager.acquireReadLock();
- }
-
- env.put("STRATOS_TOPOLOGY_JSON",
gson.toJson(topology.getServices(), serviceType));
- env.put("STRATOS_MEMBER_LIST_JSON",
gson.toJson(cluster.getMembers(), memberType));
- ExtensionUtils.executeStartServersExtension(env);
- } catch (Exception e) {
+ boolean isConsistent =
ExtensionUtils.checkTopologyConsistency(serviceNameInPayload,
+ clusterIdInPayload, memberIdInPayload);
+ if (!isConsistent) {
if (log.isErrorEnabled()) {
- log.error("Error processing start servers event", e);
+ log.error("Topology is inconsistent...Failed to execute start
server event");
}
- } finally {
- TopologyManager.releaseReadLock();
+ return;
}
+
+ Map<String, String> env = new HashMap<String, String>();
+
+ ExtensionUtils.executeStartServersExtension(env);
}
@Override
@@ -920,30 +442,32 @@ public class DefaultExtensionHandler implements
ExtensionHandler {
}
@Override
- public void onSubscriptionDomainAddedEvent(SubscriptionDomainAddedEvent
subscriptionDomainAddedEvent) {
- String tenantDomain =
findTenantDomain(subscriptionDomainAddedEvent.getTenantId());
+ public void onDomainMappingAddedEvent(DomainMappingAddedEvent
domainMappingAddedEvent) {
+ String tenantDomain =
findTenantDomain(domainMappingAddedEvent.getTenantId());
if (log.isInfoEnabled()) {
- log.info(String.format("Subscription domain added event received:
[tenant-id] %d [tenant-domain] %s " +
+ log.info(String.format("Domain mapping added event received:
[tenant-id] %d [tenant-domain] %s " +
"[domain-name] %s [application-context] %s",
- subscriptionDomainAddedEvent.getTenantId(),
+ domainMappingAddedEvent.getTenantId(),
tenantDomain,
- subscriptionDomainAddedEvent.getDomainName(),
- subscriptionDomainAddedEvent.getApplicationContext()
+ domainMappingAddedEvent.getDomainName(),
+ domainMappingAddedEvent.getContextPath()
));
}
if (log.isDebugEnabled()) {
- String msg = gson.toJson(subscriptionDomainAddedEvent);
- log.debug("Subscription domain added event msg:" + msg);
+ String msg = gson.toJson(domainMappingAddedEvent);
+ log.debug("Domain mapping added event msg:" + msg);
}
Map<String, String> env = new HashMap<String, String>();
- env.put("STRATOS_SUBSCRIPTION_SERVICE_NAME",
subscriptionDomainAddedEvent.getServiceName());
- env.put("STRATOS_SUBSCRIPTION_DOMAIN_NAME",
subscriptionDomainAddedEvent.getDomainName());
- env.put("STRATOS_SUBSCRIPTION_TENANT_ID",
Integer.toString(subscriptionDomainAddedEvent.getTenantId()));
+ env.put("STRATOS_SUBSCRIPTION_APPLICATION_ID",
domainMappingAddedEvent.getApplicationId());
+ env.put("STRATOS_SUBSCRIPTION_SERVICE_NAME",
domainMappingAddedEvent.getServiceName());
+ env.put("STRATOS_SUBSCRIPTION_DOMAIN_NAME",
domainMappingAddedEvent.getDomainName());
+ env.put("STRATOS_SUBSCRIPTION_CLUSTER_ID",
domainMappingAddedEvent.getClusterId());
+ env.put("STRATOS_SUBSCRIPTION_TENANT_ID",
Integer.toString(domainMappingAddedEvent.getTenantId()));
env.put("STRATOS_SUBSCRIPTION_TENANT_DOMAIN", tenantDomain);
- env.put("STRATOS_SUBSCRIPTION_APPLICATION_CONTEXT",
subscriptionDomainAddedEvent.getApplicationContext());
- ExtensionUtils.executeSubscriptionDomainAddedExtension(env);
+ env.put("STRATOS_SUBSCRIPTION_CONTEXT_PATH",
domainMappingAddedEvent.getContextPath());
+ ExtensionUtils.executeDomainMappingAddedExtension(env);
}
private String findTenantDomain(int tenantId) {
@@ -960,10 +484,10 @@ public class DefaultExtensionHandler implements
ExtensionHandler {
}
@Override
- public void
onSubscriptionDomainRemovedEvent(SubscriptionDomainRemovedEvent
subscriptionDomainRemovedEvent) {
+ public void onDomainMappingRemovedEvent(DomainMappingRemovedEvent
subscriptionDomainRemovedEvent) {
String tenantDomain =
findTenantDomain(subscriptionDomainRemovedEvent.getTenantId());
if (log.isInfoEnabled()) {
- log.info(String.format("Subscription domain removed event
received: [tenant-id] %d [tenant-domain] %s " +
+ log.info(String.format("Domain mapping removed event received:
[tenant-id] %d [tenant-domain] %s " +
"[domain-name] %s",
subscriptionDomainRemovedEvent.getTenantId(),
tenantDomain,
@@ -973,15 +497,17 @@ public class DefaultExtensionHandler implements
ExtensionHandler {
if (log.isDebugEnabled()) {
String msg = gson.toJson(subscriptionDomainRemovedEvent);
- log.debug("Subscription domain removed event msg:" + msg);
+ log.debug("Domain mapping removed event msg:" + msg);
}
Map<String, String> env = new HashMap<String, String>();
+ env.put("STRATOS_SUBSCRIPTION_APPLICATION_ID",
subscriptionDomainRemovedEvent.getApplicationId());
env.put("STRATOS_SUBSCRIPTION_SERVICE_NAME",
subscriptionDomainRemovedEvent.getServiceName());
env.put("STRATOS_SUBSCRIPTION_DOMAIN_NAME",
subscriptionDomainRemovedEvent.getDomainName());
+ env.put("STRATOS_SUBSCRIPTION_CLUSTER_ID",
subscriptionDomainRemovedEvent.getClusterId());
env.put("STRATOS_SUBSCRIPTION_TENANT_ID",
Integer.toString(subscriptionDomainRemovedEvent.getTenantId()));
env.put("STRATOS_SUBSCRIPTION_TENANT_DOMAIN", tenantDomain);
- ExtensionUtils.executeSubscriptionDomainRemovedExtension(env);
+ ExtensionUtils.executeDomainMappingRemovedExtension(env);
}
@Override
@@ -989,4 +515,63 @@ public class DefaultExtensionHandler implements
ExtensionHandler {
ExtensionUtils.executeCopyArtifactsExtension(src, des);
}
+ @Override
+ public void onTenantSubscribedEvent(TenantSubscribedEvent
tenantSubscribedEvent) {
+ if (log.isInfoEnabled()) {
+ log.info(String.format("Tenant subscribed event received: [tenant]
%s [service] %s [cluster] %s",
+ tenantSubscribedEvent.getTenantId(),
tenantSubscribedEvent.getServiceName(),
+ tenantSubscribedEvent.getClusterIds())
+ );
+ }
+
+ if (log.isDebugEnabled()) {
+ String msg = gson.toJson(tenantSubscribedEvent);
+ log.debug("Tenant subscribed event msg:" + msg);
+ }
+ Map<String, String> env = new HashMap<String, String>();
+ ExtensionUtils.executeTenantSubscribedExtension(env);
+ }
+
+ @Override
+ public void onTenantUnSubscribedEvent(TenantUnSubscribedEvent
tenantUnSubscribedEvent) {
+ if (log.isInfoEnabled()) {
+ log.info(String.format("Tenant unsubscribed event received:
[tenant] %s [service] %s [cluster] %s",
+ tenantUnSubscribedEvent.getTenantId(),
tenantUnSubscribedEvent.getServiceName(),
+ tenantUnSubscribedEvent.getClusterIds()));
+ }
+
+ if (log.isDebugEnabled()) {
+ String msg = gson.toJson(tenantUnSubscribedEvent);
+ log.debug("Tenant unsubscribed event msg:" + msg);
+ }
+
+ try {
+ if
(CartridgeAgentConfiguration.getInstance().getServiceName().equals(tenantUnSubscribedEvent.getServiceName()))
{
+
GitBasedArtifactRepository.getInstance().removeRepo(tenantUnSubscribedEvent.getTenantId());
+ }
+ } catch (Exception e) {
+ log.error(e);
+ }
+ Map<String, String> env = new HashMap<String, String>();
+ ExtensionUtils.executeTenantUnSubscribedExtension(env);
+ }
+
+ //ApplicationSignUpRemovedEvent
+ @Override
+ public void onApplicationSignUpRemovedEvent(ApplicationSignUpRemovedEvent
applicationSignUpRemovedEvent) {
+ if (log.isInfoEnabled()) {
+ log.info(String.format("applicationSignUpRemovedEvent event
received: [appId] %s [tenantId] %s ",
+ applicationSignUpRemovedEvent.getApplicationId(),
applicationSignUpRemovedEvent.getTenantId()));
+ }
+
+ try {
+ if
(CartridgeAgentConfiguration.getInstance().getApplicationId().equals(applicationSignUpRemovedEvent.getApplicationId()))
{
+
GitBasedArtifactRepository.getInstance().removeRepo(applicationSignUpRemovedEvent.getTenantId());
+ }
+ } catch (Exception e) {
+ log.error(e);
+ }
+
+ }
+
}
\ No newline at end of file