Move adsal into its own subdirectory.
[controller.git] / opendaylight / samples / loadbalancer / src / main / java / org / opendaylight / controller / samples / loadbalancer / policies / RandomLBPolicy.java
diff --git a/opendaylight/samples/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/policies/RandomLBPolicy.java b/opendaylight/samples/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/policies/RandomLBPolicy.java
deleted file mode 100644 (file)
index c169d79..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Copyright IBM Corporation, 2013.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.controller.samples.loadbalancer.policies;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Random;
-
-import org.opendaylight.controller.samples.loadbalancer.ConfigManager;
-import org.opendaylight.controller.samples.loadbalancer.entities.Client;
-import org.opendaylight.controller.samples.loadbalancer.entities.Pool;
-import org.opendaylight.controller.samples.loadbalancer.entities.PoolMember;
-import org.opendaylight.controller.samples.loadbalancer.entities.VIP;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * This class implements the random load balancing policy.
- *
- */
-public class RandomLBPolicy implements ILoadBalancingPolicy {
-
-    /*
-     * Instance logger
-     */
-    private static final Logger rLogger = LoggerFactory.getLogger(RandomLBPolicy.class);
-
-    /*
-     * Reference to the configuration manager. This reference is passed from load balancer
-     * class.
-     */
-    private ConfigManager cmgr;
-
-    /*
-     * Mapping between the client and the pool member that serves all traffic for that client.
-     */
-    private HashMap<Client, PoolMember> clientMemberMap;
-
-    /*
-     * Random generator
-     */
-    Random randomGenerator = null;
-
-    @SuppressWarnings("unused")
-    private RandomLBPolicy(){}
-
-    public RandomLBPolicy(ConfigManager cmgr){
-        this.cmgr = cmgr;
-        this.clientMemberMap = new HashMap<Client, PoolMember>();
-        randomGenerator = new Random();
-    }
-    @Override
-    public String getPoolMemberForClient(Client source, VIP dest){
-
-        rLogger.trace("Received traffic from client : {} for VIP : {} ",source, dest);
-
-        syncWithLoadBalancerData();
-
-        PoolMember pm= null;
-
-        if(this.clientMemberMap.containsKey(source)){
-            pm= this.clientMemberMap.get(source);
-            rLogger.trace("Client {} had sent traffic before,new traffic will be routed to the same pool member {}",source,pm);
-        }else{
-            Pool pool = null;
-            pool = this.cmgr.getPool(dest.getPoolName());
-            int memberNum = this.randomGenerator.nextInt(pool.getAllMembers().size()-1);
-            pm = pool.getAllMembers().get(memberNum);
-            this.clientMemberMap.put(source, pm );
-            rLogger.trace("Network traffic from client {} will be directed to pool member {}",pm);
-        }
-        return pm.getIp();
-    }
-
-    /*
-     * This method does the clean up. Whenever a new client packet arrives with a given VIP,
-     * this method checks the current configuration to see if any pool members have been deleted and
-     * cleans up the metadata stored by this loadbalancing algorithm.
-     */
-    private void syncWithLoadBalancerData(){
-        rLogger.debug("[Client - PoolMember] table before cleanup : {}",this.clientMemberMap.toString());
-
-        ArrayList<Client> removeClient = new ArrayList<Client>();
-
-        if(this.clientMemberMap.size() != 0){
-            for(Client client : this.clientMemberMap.keySet()){
-
-                if(!this.cmgr.memberExists(this.clientMemberMap.get(client).getName(),
-                                                this.clientMemberMap.get(client).getPoolName())){
-                    removeClient.add(client);
-                }
-            }
-        }
-
-        for(Client client : removeClient){
-            this.clientMemberMap.remove(client);
-
-            rLogger.debug("Removed client : {} ",client);
-        }
-        rLogger.debug("[Client - PoolMember] table after cleanup : {}",this.clientMemberMap.toString());
-    }
-
-}