/** * Update the Gslb Agent attached to the Gslb application that the lbvserver is bound to * * @param vServerIP */ private void updateGslbVAppAgent(String vServerIP, Integer vServerPort) { // the gslb vApp that this lbvserver is bound to VirtualApplication gslb = lbvServerVIPToGslbVAppMap.get(vServerIP); // if (logger.isDebugEnabled()) logger.info( logPrefix + "LB virtual server at VIP " + vServerIP + " on target " + target.getNameOrAddress() + " is bound to GSLB " + gslb.toVMTString()); // port for the GSLB service gslb.setPort(vServerPort); // gslb agent for this target GslbServiceAgent lbAgent = NetScalerUtil.getTargetAgent(gslb, target); if (lbAgent == null) { logger.warn("null gslb service agent for gslb " + gslb.toVMTString()); // TODO: create it ? } NetScalerGslbServiceAgentDiscExt lbAgentDiscExt = (NetScalerGslbServiceAgentDiscExt) lbAgent.getDiscoveryExtension(); Map<String, String> vipToServiceName = lbAgentDiscExt.getVipToLbServiceName(); if (vipToServiceName == null) { vipToServiceName = new HashMap<String, String>(); lbAgentDiscExt.setVipToLbServiceName(vipToServiceName); } vipToServiceName.put(vServerIP, lbvserver_ip2serviceName.get(vServerIP)); Map<String, Map<String, String>> vipToAppServices = lbAgentDiscExt.getVipToAppServices(); if (vipToAppServices == null) { vipToAppServices = new HashMap<String, Map<String, String>>(); lbAgentDiscExt.setVipToAppServices(vipToAppServices); } vipToAppServices.put(vServerIP, ip2NameIPPort); if (logger.isDebugEnabled()) { logger.debug( logPrefix + " added vipToServiceName Map : " + lbAgentDiscExt.getVipToLbServiceName() + " for " + lbAgent.toVMTString()); logger.debug( logPrefix + " added vipToAppServices Map : " + lbAgentDiscExt.getVipToAppServices() + " for " + lbAgent.toVMTString()); } // create IP objects for the app service endpoints. for (String ip : ip2NameIPPort.keySet()) { IP serviceIP = DiscoveryUtil.createOrGetIPObj(ip, logPrefix); if (logger.isDebugEnabled()) logger.debug( target.getNameOrAddress() + " created IP : " + serviceIP.toVMTString() + " for " + ip + " :: Name/IP/Port : " + ip2NameIPPort.get(ip)); } }