Package org.apache.stratos.messaging.domain.topology

Examples of org.apache.stratos.messaging.domain.topology.Member


                    log.warn(String.format("Cluster does not exist: [service] %s [cluster] %s",
                            event.getServiceName(), event.getClusterId()));
                }
                return false;
            }
            Member member = cluster.getMember(event.getMemberId());
            if (member == null) {
                if (log.isWarnEnabled()) {
                    log.warn(String.format("Member does not exist: [service] %s [cluster] %s [member] %s",
                            event.getServiceName(),
                            event.getClusterId(),
                            event.getMemberId()));
                }
                return false;
            }

            // Apply member filter
            if(TopologyMemberFilter.getInstance().isActive()) {
                if(TopologyMemberFilter.getInstance().lbClusterIdExcluded(member.getLbClusterId())) {
                    if (log.isDebugEnabled()) {
                        log.debug(String.format("Member is excluded: [lb-cluster-id] %s", member.getLbClusterId()));
                    }
                    return false;
                }
            }

            if (member.getStatus() == MemberStatus.Suspended) {
                if (log.isWarnEnabled()) {
                    log.warn(String.format("Member already suspended: [service] %s [cluster] %s [member] %s",
                            event.getServiceName(),
                            event.getClusterId(),
                            event.getMemberId()));
                }
            } else {
             
              // Apply changes to the topology
              member.setStatus(MemberStatus.Suspended);
             
              if (log.isInfoEnabled()) {
                log.info(String.format("Member suspended: [service] %s [cluster] %s [member] %s",
                    event.getServiceName(),
                    event.getClusterId(),
View Full Code Here


                    log.warn(String.format("Cluster does not exist: [service] %s [cluster] %s",
                            event.getServiceName(), event.getClusterId()));
                }
                return false;
            }
            Member member = cluster.getMember(event.getMemberId());
            if (member == null) {
                if (log.isWarnEnabled()) {
                    log.warn(String.format("Member does not exist: [service] %s [cluster] %s [member] %s",
                            event.getServiceName(),
                            event.getClusterId(),
                            event.getMemberId()));
                }
                return false;
            }

            // Apply member filter
            if(TopologyMemberFilter.getInstance().isActive()) {
                if(TopologyMemberFilter.getInstance().lbClusterIdExcluded(member.getLbClusterId())) {
                    if (log.isDebugEnabled()) {
                        log.debug(String.format("Member is excluded: [lb-cluster-id] %s", member.getLbClusterId()));
                    }
                    return false;
                }
            }

            if (member.getStatus() == MemberStatus.Activated) {
                if (log.isWarnEnabled()) {
                    log.warn(String.format("Member already activated: [service] %s [cluster] %s [member] %s",
                            event.getServiceName(),
                            event.getClusterId(),
                            event.getMemberId()));
                }
            } else {
             
              // Apply changes to the topology
              member.addPorts(event.getPorts());
              member.setMemberIp(event.getMemberIp());
              member.setStatus(MemberStatus.Activated);
             
              if (log.isInfoEnabled()) {
                log.info(String.format("Member activated: [service] %s [cluster] %s [member] %s",
                    event.getServiceName(),
                    event.getClusterId(),
View Full Code Here

                    log.warn(String.format("Cluster does not exist: [service] %s [cluster] %s",
                            event.getServiceName(), event.getClusterId()));
                }
                return false;
            }
            Member member = cluster.getMember(event.getMemberId());
            if (member == null) {
                if (log.isWarnEnabled()) {
                    log.warn(String.format("Member does not exist: [service] %s [cluster] %s [member] %s",
                            event.getServiceName(),
                            event.getClusterId(),
                            event.getMemberId()));
                }
                return false;
            }

            // Apply member filter
            if(TopologyMemberFilter.getInstance().isActive()) {
                if(TopologyMemberFilter.getInstance().lbClusterIdExcluded(member.getLbClusterId())) {
                    if (log.isDebugEnabled()) {
                        log.debug(String.format("Member is excluded: [lb-cluster-id] %s", member.getLbClusterId()));
                    }
                    return false;
                }
            }

            if (member.getStatus() == MemberStatus.Starting) {
                if (log.isWarnEnabled()) {
                    log.warn(String.format("Member already started: [service] %s [cluster] %s [member] %s",
                            event.getServiceName(),
                            event.getClusterId(),
                            event.getMemberId()));
                }
            } else {
             
              // Apply changes to the topology
              member.setStatus(MemberStatus.Starting);
             
              if (log.isInfoEnabled()) {
                log.info(String.format("Member started: [service] %s [cluster] %s [member] %s",
                    event.getServiceName(),
                    event.getClusterId(),
View Full Code Here

                    log.warn(String.format("Cluster does not exist: [service] %s [cluster] %s",
                            event.getServiceName(), event.getClusterId()));
                }
                return false;
            }
            Member member = cluster.getMember(event.getMemberId());
            if(member != null) {
                // Apply member filter
                if(TopologyMemberFilter.getInstance().isActive()) {
                    if(TopologyMemberFilter.getInstance().lbClusterIdExcluded(member.getLbClusterId())) {
                        if (log.isDebugEnabled()) {
                            log.debug(String.format("Member is excluded: [lb-cluster-id] %s", member.getLbClusterId()));
                        }
                        return false;
                    }
                }
            }
View Full Code Here

    }


    private LoadAverage findLoadAverage(String memberId) {
//        String memberId = event.getProperties().get("member_id");
        Member member = findMember(memberId);
       
        if(null == member){
          if(log.isDebugEnabled()) {
                log.debug(String.format("Member not found in the Topology: [member] %s", memberId));
            }
          return null;
        }
        String clusterId = member.getClusterId();

        AutoscalerContext asCtx = AutoscalerContext.getInstance();
        AbstractMonitor monitor;

        if(asCtx.monitorExist(clusterId)){
            monitor = asCtx.getMonitor(clusterId);
        }else if(asCtx.lbMonitorExist(clusterId)){
            monitor = asCtx.getLBMonitor(clusterId);
        }else{
            if(log.isDebugEnabled()){
                log.debug(String.format("A cluster monitor is not found in autoscaler context [cluster] %s", clusterId));
            }
            return null;
        }
        String networkPartitionId = findNetworkPartitionId(memberId);
        MemberStatsContext memberStatsContext = monitor.getNetworkPartitionCtxt(networkPartitionId)
                        .getPartitionCtxt(member.getPartitionId())
                        .getMemberStatsContext(memberId);
        if(null == memberStatsContext){
            if(log.isDebugEnabled()) {
               log.debug(String.format("Member context is not available for : [member] %s", memberId));
            }
            return null;
        }
        else if(!member.isActive()){
            if(log.isDebugEnabled()){
                log.debug(String.format("Member activated event has not received for the member %s. Therefore ignoring" +
                        " the health stat", memberId));
            }
            return null;
View Full Code Here

        return loadAverage;
    }

    private MemoryConsumption findMemoryConsumption(String memberId) {
//        String memberId = event.getProperties().get("member_id");
        Member member = findMember(memberId);
       
        if(null == member){
          if(log.isDebugEnabled()) {
                log.debug(String.format("Member not found in the Topology : [member] %s", memberId));
            }
          return null;
        }
        String clusterId = member.getClusterId();
        AbstractMonitor monitor = AutoscalerContext.getInstance().getMonitor(member.getClusterId());
        if(null == monitor){

            monitor = AutoscalerContext.getInstance().getLBMonitor(member.getClusterId());
            if(null == monitor){
                if(log.isDebugEnabled()) {
                   log.debug(String.format("Cluster monitor is not available for : [member] %s", memberId));
                }
            }
            return null;
        }

        String networkPartitionId = findNetworkPartitionId(memberId);
        MemberStatsContext memberStatsContext = monitor.getNetworkPartitionCtxt(networkPartitionId)
                        .getPartitionCtxt(member.getPartitionId())
                        .getMemberStatsContext(memberId);
        if(null == memberStatsContext){
            if(log.isDebugEnabled()) {
               log.debug(String.format("Member context is not available for : [member] %s", memberId));
            }
            return null;
        }else if(!member.isActive()){
            if(log.isDebugEnabled()){
                log.debug(String.format("Member activated event has not received for the member %s. Therefore ignoring" +
                        " the health stat", memberId));
            }
            return null;
View Full Code Here

          }
         
          NetworkPartitionContext nwPartitionCtxt;
            try{
              TopologyManager.acquireReadLock();
              Member member = findMember(memberId);
             
              if(null == member){
                return;
              }
                if(!member.isActive()){
                    if(log.isDebugEnabled()){
                        log.debug(String.format("Member activated event has not received for the member %s. Therefore ignoring" +
                                " the member fault health stat", memberId));
                    }
                    return;
View Full Code Here

                        try {
                            // re-check the state; another thread might have acquired the write lock and modified
                            if (cluster.memberExists(memberTerminatedEvent.getMemberId())) {
                                // remove the member from the cluster
                                Member terminatedMember = cluster.getMember(memberTerminatedEvent.getMemberId());
                                cluster.removeMember(terminatedMember);
                                if (log.isDebugEnabled()) {
                                    log.debug("Removed the terminated member with id " + memberTerminatedEvent.getMemberId() + " from the cluster");
                                }
                            }
View Full Code Here

        String targetHost = extractTargetHost(synCtx);
        if (!requestDelegator.isTargetHostValid(targetHost)) {
            throwSynapseException(synCtx, 404, String.format("Unknown host name %s", targetHost));
        }

        Member member = null;
        if (LoadBalancerConfiguration.getInstance().isMultiTenancyEnabled()) {
            // Try to find next member from multi-tenant cluster map
            if (log.isDebugEnabled()) {
                log.debug("Multi-tenancy enabled, scanning URL for tenant...");
            }
            String url = extractUrl(synCtx);
            int tenantId = scanUrlForTenantId(url);
            if (tenantExists(tenantId)) {
                member = requestDelegator.findNextMemberFromTenantId(targetHost, tenantId);
            } else {
                // Multi-tenant cluster not found, try single tenant
                member = requestDelegator.findNextMemberFromHostName(targetHost);
            }
        } else {
            // Find next member from single tenant cluster map
            member = requestDelegator.findNextMemberFromHostName(targetHost);
        }

        if (member == null)
            return null;

        // Create Axi2 member object
        String transport = extractTransport(synCtx);
        Port transportPort = member.getPort(transport);
        if (transportPort == null) {
            if (log.isErrorEnabled()) {
                log.error(String.format("Port not found for transport %s in member %s", transport, member.getMemberId()));
            }
            throwSynapseException(synCtx, 500, "Internal server error");
        }

        int memberPort = transportPort.getValue();
        org.apache.axis2.clustering.Member axis2Member = new org.apache.axis2.clustering.Member(getMemberIp(synCtx, member), memberPort);
        axis2Member.setDomain(member.getClusterId());
        Port httpPort = member.getPort("http");
        if (httpPort != null)
            axis2Member.setHttpPort(httpPort.getValue());
        Port httpsPort = member.getPort("https");
        if (httpsPort != null)
            axis2Member.setHttpsPort(httpsPort.getValue());
        axis2Member.setActive(member.isActive());
        // Set cluster id and partition id in message context
        axis2Member.getProperties().setProperty(Constants.CLUSTER_ID, member.getClusterId());
        return axis2Member;
    }
View Full Code Here

public class RoundRobinAlgorithmTest {

    @Test
    public final void testRoundRobinAlgorithm() {
        List<Member> members = new ArrayList<Member>();
        Member member = new Member("service1", "cluster1", "np1", "p1", "m1");
        member.setStatus(MemberStatus.Activated);
        members.add(member);

        member = new Member("service1", "cluster1", "np1", "p1", "m2");
        member.setStatus(MemberStatus.Activated);
        members.add(member);

        member = new Member("service1", "cluster1", "np1", "p1", "m3");
        member.setStatus(MemberStatus.Activated);
        members.add(member);

        RoundRobin algorithm = new RoundRobin();
        algorithm.setMembers(members);

        AlgorithmContext algorithmContext = new AlgorithmContext("service1", "cluster1");
        Member nextMember = algorithm.getNextMember(algorithmContext);
        Assert.assertEquals("Expected member not found", true, "m1".equals(nextMember.getMemberId()));

        nextMember = algorithm.getNextMember(algorithmContext);
        Assert.assertEquals("Expected member not found", true, "m2".equals(nextMember.getMemberId()));

        nextMember = algorithm.getNextMember(algorithmContext);
        Assert.assertEquals("Expected member not found", true, "m3".equals(nextMember.getMemberId()));

        nextMember = algorithm.getNextMember(algorithmContext);
        Assert.assertEquals("Expected member not found", true, "m1".equals(nextMember.getMemberId()));
    }
View Full Code Here

TOP

Related Classes of org.apache.stratos.messaging.domain.topology.Member

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.