private static String getRouterSshControlIp(final NetworkElementCommand cmd) { final String routerIp = cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP); final String routerGuestIp = cmd.getAccessDetail(NetworkElementCommand.ROUTER_GUEST_IP); final String zoneNetworkType = cmd.getAccessDetail(NetworkElementCommand.ZONE_NETWORK_TYPE); if (routerGuestIp != null && zoneNetworkType != null && NetworkType.valueOf(zoneNetworkType) == NetworkType.Basic) { if (s_logger.isDebugEnabled()) { s_logger.debug("In Basic zone mode, use router's guest IP for SSH control. guest IP : " + routerGuestIp); } return routerGuestIp; } if (s_logger.isDebugEnabled()) { s_logger.debug("Use router's private IP for SSH control. IP : " + routerIp); } return routerIp; }
@Override public void setAccessDetail(String name, String value) { handleByAgent = false; super.setAccessDetail(name, value); }
@Override public ExecutionResult prepareCommand(NetworkElementCommand cmd) { // Update IP used to access router cmd.setRouterAccessIp(cmd .getAccessDetail(NetworkElementCommand.ROUTER_IP)); assert cmd.getRouterAccessIp() != null; if (cmd instanceof IpAssocVpcCommand) { return prepareNetworkElementCommand((IpAssocVpcCommand) cmd); } else if (cmd instanceof IpAssocCommand) { return prepareNetworkElementCommand((IpAssocCommand) cmd); } else if (cmd instanceof SetupGuestNetworkCommand) { return prepareNetworkElementCommand((SetupGuestNetworkCommand) cmd); } else if (cmd instanceof SetSourceNatCommand) { return prepareNetworkElementCommand((SetSourceNatCommand) cmd); } return new ExecutionResult(true, null); }
public Answer executeRequest(final NetworkElementCommand cmd) { boolean aggregated = false; String routerName = cmd.getAccessDetail(NetworkElementCommand.ROUTER_NAME); Lock lock; if (_vrLockMap.containsKey(routerName)) { assert cmd.getRouterAccessIp() != null : "Why there is no access IP for VR?"; if (cmd.isQuery()) { return executeQueryCommand(cmd);
@Override public ExecutionResult prepareCommand(final NetworkElementCommand cmd) { //Update IP used to access router cmd.setRouterAccessIp(getRouterSshControlIp(cmd)); assert cmd.getRouterAccessIp() != null; if (cmd instanceof IpAssocVpcCommand) { return prepareNetworkElementCommand((IpAssocVpcCommand)cmd); } else if (cmd instanceof IpAssocCommand) { return prepareNetworkElementCommand((IpAssocCommand)cmd); } else if (cmd instanceof SetSourceNatCommand) { return prepareNetworkElementCommand((SetSourceNatCommand)cmd); } else if (cmd instanceof SetupGuestNetworkCommand) { return prepareNetworkElementCommand((SetupGuestNetworkCommand)cmd); } else if (cmd instanceof SetNetworkACLCommand) { return prepareNetworkElementCommand((SetNetworkACLCommand)cmd); } return new ExecutionResult(true, null); }
for (ConfigItem configItem : cfg) { long startTimestamp = System.currentTimeMillis(); ExecutionResult result = applyConfigToVR(cmd.getRouterAccessIp(), configItem, VRScripts.VR_SCRIPT_EXEC_TIMEOUT); if (s_logger.isDebugEnabled()) { long elapsed = System.currentTimeMillis() - startTimestamp; if (cmd.getAnswersCount() != results.size()) { s_logger.warn("Expected " + cmd.getAnswersCount() + " answers while executing " + cmd.getClass().getSimpleName() + " but received " + results.size());
sb.append("<version>\n" + _cfgVersion + "\n</version>\n"); for (NetworkElementCommand command : queue) { answerCounts += command.getAnswersCount(); List<ConfigItem> cfg = generateCommandCfg(command); if (cfg == null) {
@Override public ExecutionResult prepareCommand(final NetworkElementCommand cmd) { //Update IP used to access router cmd.setRouterAccessIp(cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP)); assert cmd.getRouterAccessIp() != null; if (cmd instanceof IpAssocVpcCommand) { return prepareNetworkElementCommand((IpAssocVpcCommand)cmd); } else if (cmd instanceof IpAssocCommand) { return prepareNetworkElementCommand((IpAssocCommand)cmd); } else if (cmd instanceof SetupGuestNetworkCommand) { return prepareNetworkElementCommand((SetupGuestNetworkCommand)cmd); } else if (cmd instanceof SetSourceNatCommand) { return prepareNetworkElementCommand((SetSourceNatCommand)cmd); } return new ExecutionResult(true, null); }
@Override public ExecutionResult prepareCommand(final NetworkElementCommand cmd) { // Update IP used to access router cmd.setRouterAccessIp(cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP)); assert cmd.getRouterAccessIp() != null; if (cmd instanceof IpAssocVpcCommand) { return prepareNetworkElementCommand((IpAssocVpcCommand)cmd); } else if (cmd instanceof IpAssocCommand) { return prepareNetworkElementCommand((IpAssocCommand)cmd); } else if (cmd instanceof SetupGuestNetworkCommand) { return prepareNetworkElementCommand((SetupGuestNetworkCommand)cmd); } else if (cmd instanceof SetSourceNatCommand) { return prepareNetworkElementCommand((SetSourceNatCommand)cmd); } else if (cmd instanceof SetNetworkACLCommand) { return prepareNetworkElementCommand((SetNetworkACLCommand)cmd); } return new ExecutionResult(true, null); }
@Override public List<ConfigItem> generateConfig(final NetworkElementCommand cmd) { final SetMonitorServiceCommand command = (SetMonitorServiceCommand) cmd; final MonitorService monitorService = new MonitorService(command.getConfiguration(), cmd.getAccessDetail(NetworkElementCommand.ROUTER_MONITORING_ENABLE)); return generateConfigItems(monitorService); }
@Override public void setAccessDetail(final Map<String, String> accessDetails) { handleByAgent = false; super.setAccessDetail(accessDetails); }
final SetNetworkACLCommand command = (SetNetworkACLCommand) cmd; final String privateGw = cmd.getAccessDetail(NetworkElementCommand.VPC_PRIVATE_GATEWAY);
@Override public void setAccessDetail(final Map<String, String> accessDetails) { handleByAgent = false; super.setAccessDetail(accessDetails); }
@Override public List<ConfigItem> generateConfig(final NetworkElementCommand cmd) { final LoadBalancerConfigCommand command = (LoadBalancerConfigCommand) cmd; final LoadBalancerConfigurator cfgtr = new HAProxyConfigurator(); final String[] configuration = cfgtr.generateConfiguration(command); String routerIp = command.getNic().getIp(); if (command.getVpcId() == null) { routerIp = cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP); } final String tmpCfgFilePath = "/etc/haproxy/"; final String tmpCfgFileName = "haproxy.cfg.new." + String.valueOf(System.currentTimeMillis()); final String[][] allRules = cfgtr.generateFwRules(command); final String[] addRules = allRules[LoadBalancerConfigurator.ADD]; final String[] removeRules = allRules[LoadBalancerConfigurator.REMOVE]; final String[] statRules = allRules[LoadBalancerConfigurator.STATS]; final LoadBalancerRule loadBalancerRule = new LoadBalancerRule(configuration, tmpCfgFilePath, tmpCfgFileName, addRules, removeRules, statRules, routerIp); final List<LoadBalancerRule> rules = new LinkedList<LoadBalancerRule>(); rules.add(loadBalancerRule); final LoadBalancerRules configRules = new LoadBalancerRules(rules); return generateConfigItems(configRules); }
@Override public void setAccessDetail(String name, String value) { handleByAgent = false; super.setAccessDetail(name, value); }
public void setAccessDetail(final Map<String, String> details) { if (details == null) { return; } for (final Map.Entry<String, String> detail : details.entrySet()) { if (detail == null) { continue; } setAccessDetail(detail.getKey(), detail.getValue()); } }