mirror of
https://github.com/apache/cloudstack.git
synced 2025-11-02 20:02:29 +01:00
Set domR access details (name, privateIp) for various commands - PF/LB/IPAssoc
This commit is contained in:
parent
769b89b530
commit
b228ae6acb
@ -25,37 +25,21 @@ import com.cloud.agent.api.to.IpAddressTO;
|
||||
*
|
||||
*/
|
||||
public class IPAssocCommand extends RoutingCommand {
|
||||
|
||||
private String routerName;
|
||||
private String routerIp;
|
||||
|
||||
IpAddressTO[] ipAddresses;
|
||||
|
||||
protected IPAssocCommand() {
|
||||
}
|
||||
|
||||
public IPAssocCommand(String routerName, String privateIpAddress, IpAddressTO[] ips) {
|
||||
this.setRouterName(routerName);
|
||||
this.routerIp = privateIpAddress;
|
||||
public IPAssocCommand(IpAddressTO[] ips) {
|
||||
this.ipAddresses = ips;
|
||||
}
|
||||
|
||||
public String getRouterIp() {
|
||||
return routerIp;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean executeInSequence() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public void setRouterName(String routerName) {
|
||||
this.routerName = routerName;
|
||||
}
|
||||
|
||||
public String getRouterName() {
|
||||
return routerName;
|
||||
}
|
||||
|
||||
public IpAddressTO[] getIpAddresses() {
|
||||
return ipAddresses;
|
||||
}
|
||||
|
||||
@ -24,6 +24,9 @@ import com.cloud.agent.api.Command;
|
||||
public abstract class RoutingCommand extends Command {
|
||||
HashMap<String, String> accessDetails = new HashMap<String, String>(0);
|
||||
|
||||
public static final String ROUTER_NAME = "router.name";
|
||||
public static final String ROUTER_IP = "router.ip";
|
||||
|
||||
protected RoutingCommand() {
|
||||
super();
|
||||
}
|
||||
|
||||
@ -48,6 +48,7 @@ import com.cloud.agent.api.routing.DhcpEntryCommand;
|
||||
import com.cloud.agent.api.routing.IPAssocCommand;
|
||||
import com.cloud.agent.api.routing.IpAssocAnswer;
|
||||
import com.cloud.agent.api.routing.LoadBalancerCfgCommand;
|
||||
import com.cloud.agent.api.routing.RoutingCommand;
|
||||
import com.cloud.agent.api.routing.SavePasswordCommand;
|
||||
import com.cloud.agent.api.routing.VmDataCommand;
|
||||
import com.cloud.agent.api.to.IpAddressTO;
|
||||
@ -209,8 +210,10 @@ public class VirtualRoutingResource implements Manager {
|
||||
String[] results = new String[cmd.getIpAddresses().length];
|
||||
int i = 0;
|
||||
String result = null;
|
||||
String routerName = cmd.getAccessDetail(RoutingCommand.ROUTER_NAME);
|
||||
String routerIp = cmd.getAccessDetail(RoutingCommand.ROUTER_IP);
|
||||
for (IpAddressTO ip : ips) {
|
||||
result = assignPublicIpAddress(cmd.getRouterName(), cmd.getRouterIp(), ip.getPublicIp(), ip.isAdd(), ip.isSourceNat(), ip.getVlanId(), ip.getVlanGateway(), ip.getVlanNetmask());
|
||||
result = assignPublicIpAddress(routerName, routerIp, ip.getPublicIp(), ip.isAdd(), ip.isSourceNat(), ip.getVlanId(), ip.getVlanGateway(), ip.getVlanNetmask());
|
||||
if (result != null) {
|
||||
results[i++] = IpAssocAnswer.errorResult;
|
||||
} else {
|
||||
|
||||
@ -126,6 +126,7 @@ import com.cloud.agent.api.routing.IPAssocCommand;
|
||||
import com.cloud.agent.api.routing.IpAssocAnswer;
|
||||
import com.cloud.agent.api.routing.LoadBalancerCfgCommand;
|
||||
import com.cloud.agent.api.routing.RemoteAccessVpnCfgCommand;
|
||||
import com.cloud.agent.api.routing.RoutingCommand;
|
||||
import com.cloud.agent.api.routing.SavePasswordCommand;
|
||||
import com.cloud.agent.api.routing.SetPortForwardingRulesAnswer;
|
||||
import com.cloud.agent.api.routing.SetPortForwardingRulesCommand;
|
||||
@ -171,7 +172,6 @@ import com.cloud.utils.Ternary;
|
||||
import com.cloud.utils.component.ComponentLocator;
|
||||
import com.cloud.utils.exception.CloudRuntimeException;
|
||||
import com.cloud.utils.net.NetUtils;
|
||||
import com.cloud.utils.script.Script;
|
||||
import com.cloud.vm.DiskProfile;
|
||||
import com.cloud.vm.State;
|
||||
import com.cloud.vm.VirtualMachine;
|
||||
@ -191,9 +191,9 @@ import com.xensource.xenapi.SR;
|
||||
import com.xensource.xenapi.Session;
|
||||
import com.xensource.xenapi.Types;
|
||||
import com.xensource.xenapi.Types.BadServerResponse;
|
||||
import com.xensource.xenapi.Types.IpConfigurationMode;
|
||||
import com.xensource.xenapi.Types.VmPowerState;
|
||||
import com.xensource.xenapi.Types.XenAPIException;
|
||||
import com.xensource.xenapi.Types.IpConfigurationMode;
|
||||
import com.xensource.xenapi.VBD;
|
||||
import com.xensource.xenapi.VDI;
|
||||
import com.xensource.xenapi.VIF;
|
||||
@ -933,9 +933,8 @@ public abstract class CitrixResourceBase implements ServerResource {
|
||||
protected SetPortForwardingRulesAnswer execute(SetPortForwardingRulesCommand cmd) {
|
||||
Connection conn = getConnection();
|
||||
String args;
|
||||
String routerIp = cmd.getAccessDetail("router.ip");
|
||||
String routerName = cmd.getAccessDetail("router.name");
|
||||
|
||||
String routerName = cmd.getAccessDetail(RoutingCommand.ROUTER_NAME);
|
||||
String routerIp = cmd.getAccessDetail(RoutingCommand.ROUTER_IP);
|
||||
String[] results = new String[cmd.getRules().length];
|
||||
int i = 0;
|
||||
for (PortForwardingRuleTO rule : cmd.getRules()) {
|
||||
@ -1252,10 +1251,13 @@ public abstract class CitrixResourceBase implements ServerResource {
|
||||
Connection conn = getConnection();
|
||||
String[] results = new String[cmd.getIpAddresses().length];
|
||||
int i = 0;
|
||||
String routerName = cmd.getAccessDetail(RoutingCommand.ROUTER_NAME);
|
||||
String routerIp = cmd.getAccessDetail(RoutingCommand.ROUTER_IP);
|
||||
try {
|
||||
IpAddressTO[] ips = cmd.getIpAddresses();
|
||||
IpAddressTO[] ips = cmd.getIpAddresses();
|
||||
for (IpAddressTO ip : ips) {
|
||||
assignPublicIpAddress(conn, cmd.getRouterName(), cmd.getRouterIp(), ip.getPublicIp(), ip.isAdd(), ip.isFirstIP(), ip.isSourceNat(), ip.getVlanId(),
|
||||
|
||||
assignPublicIpAddress(conn, routerName, routerIp, ip.getPublicIp(), ip.isAdd(), ip.isFirstIP(), ip.isSourceNat(), ip.getVlanId(),
|
||||
ip.getVlanGateway(), ip.getVlanNetmask(), ip.getVifMacAddress(), ip.getGuestIp());
|
||||
results[i++] = ip.getPublicIp() + " - success";
|
||||
}
|
||||
|
||||
@ -52,6 +52,7 @@ import com.cloud.agent.api.routing.DhcpEntryCommand;
|
||||
import com.cloud.agent.api.routing.IPAssocCommand;
|
||||
import com.cloud.agent.api.routing.LoadBalancerConfigCommand;
|
||||
import com.cloud.agent.api.routing.RemoteAccessVpnCfgCommand;
|
||||
import com.cloud.agent.api.routing.RoutingCommand;
|
||||
import com.cloud.agent.api.routing.SavePasswordCommand;
|
||||
import com.cloud.agent.api.routing.SetPortForwardingRulesCommand;
|
||||
import com.cloud.agent.api.routing.VmDataCommand;
|
||||
@ -2040,7 +2041,10 @@ public class DomainRouterManagerImpl implements DomainRouterManager, DomainRoute
|
||||
ipsToSend[i++] = ip;
|
||||
firstIP = false;
|
||||
}
|
||||
cmds.addCommand("IPAssocCommand", new IPAssocCommand(router.getInstanceName(), router.getPrivateIpAddress(), ipsToSend));
|
||||
IPAssocCommand cmd = new IPAssocCommand(ipsToSend);
|
||||
cmd.setAccessDetail(RoutingCommand.ROUTER_IP, router.getPrivateIpAddress());
|
||||
cmd.setAccessDetail(RoutingCommand.ROUTER_NAME, router.getInstanceName());
|
||||
cmds.addCommand("IPAssocCommand", cmd);
|
||||
}
|
||||
return cmds;
|
||||
}
|
||||
@ -2083,6 +2087,7 @@ public class DomainRouterManagerImpl implements DomainRouterManager, DomainRoute
|
||||
Commands cmds = new Commands(OnError.Continue);
|
||||
//We have to resend all already associated ip addresses
|
||||
cmds = getAssociateIPCommands(router, ipAddress, cmds, 0);
|
||||
|
||||
return sendCommandsToRouter(router, cmds);
|
||||
} else if (router.getState() == State.Stopped || router.getState() == State.Stopping){
|
||||
return true;
|
||||
@ -2112,6 +2117,8 @@ public class DomainRouterManagerImpl implements DomainRouterManager, DomainRoute
|
||||
}
|
||||
|
||||
LoadBalancerConfigCommand cmd = new LoadBalancerConfigCommand(lbs);
|
||||
cmd.setAccessDetail(RoutingCommand.ROUTER_IP, router.getPrivateIpAddress());
|
||||
cmd.setAccessDetail(RoutingCommand.ROUTER_NAME, router.getInstanceName());
|
||||
cmds.addCommand(cmd);
|
||||
|
||||
//Send commands to router
|
||||
@ -2129,6 +2136,8 @@ public class DomainRouterManagerImpl implements DomainRouterManager, DomainRoute
|
||||
pfs.add(pf);
|
||||
}
|
||||
SetPortForwardingRulesCommand cmd = new SetPortForwardingRulesCommand(pfs);
|
||||
cmd.setAccessDetail(RoutingCommand.ROUTER_IP, router.getPrivateIpAddress());
|
||||
cmd.setAccessDetail(RoutingCommand.ROUTER_NAME, router.getInstanceName());
|
||||
cmds.addCommand(cmd);
|
||||
|
||||
//Send commands to router
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user