Sync on network instead of ipAddressId when do create PF/StaticNat/LB rules

This commit is contained in:
alena 2011-02-17 15:49:14 -08:00
parent 96ef94eb37
commit 504ab73ae5
10 changed files with 68 additions and 14 deletions

View File

@ -222,11 +222,19 @@ public class CreateIpForwardingRuleCmd extends BaseAsyncCreateCmd implements Sta
@Override
public String getSyncObjType() {
return BaseAsyncCmd.ipAddressSyncObject;
return BaseAsyncCmd.networkSyncObject;
}
@Override
public Long getSyncObjId() {
return ipAddressId;
return getIp().getAssociatedWithNetworkId();
}
private IpAddress getIp() {
IpAddress ip = _networkService.getIp(ipAddressId);
if (ip == null) {
throw new InvalidParameterValueException("Unable to find ip address by id " + ipAddressId);
}
return ip;
}
}

View File

@ -29,6 +29,7 @@ import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.FirewallRuleResponse;
import com.cloud.event.EventTypes;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.exception.NetworkRuleConflictException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.IpAddress;
@ -228,12 +229,20 @@ public class CreatePortForwardingRuleCmd extends BaseAsyncCreateCmd implements
@Override
public String getSyncObjType() {
return BaseAsyncCmd.ipAddressSyncObject;
return BaseAsyncCmd.networkSyncObject;
}
@Override
public Long getSyncObjId() {
return ipAddressId;
return getIp().getAssociatedWithNetworkId();
}
private IpAddress getIp() {
IpAddress ip = _networkService.getIp(ipAddressId);
if (ip == null) {
throw new InvalidParameterValueException("Unable to find ip address by id " + ipAddressId);
}
return ip;
}
}

View File

@ -29,8 +29,10 @@ import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.RemoteAccessVpnResponse;
import com.cloud.event.EventTypes;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.exception.NetworkRuleConflictException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.IpAddress;
import com.cloud.network.RemoteAccessVpn;
import com.cloud.user.Account;
import com.cloud.user.UserContext;
@ -156,11 +158,19 @@ public class CreateRemoteAccessVpnCmd extends BaseAsyncCreateCmd {
@Override
public String getSyncObjType() {
return BaseAsyncCmd.ipAddressSyncObject;
return BaseAsyncCmd.networkSyncObject;
}
@Override
public Long getSyncObjId() {
return publicIpId;
return getIp().getAssociatedWithNetworkId();
}
private IpAddress getIp() {
IpAddress ip = _networkService.getIp(publicIpId);
if (ip == null) {
throw new InvalidParameterValueException("Unable to find ip address by id " + publicIpId);
}
return ip;
}
}

View File

@ -104,12 +104,12 @@ public class DeleteIpForwardingRuleCmd extends BaseAsyncCmd {
@Override
public String getSyncObjType() {
return BaseAsyncCmd.ipAddressSyncObject;
return BaseAsyncCmd.networkSyncObject;
}
@Override
public Long getSyncObjId() {
return _rulesService.getFirewallRule(id).getSourceIpAddressId();
return _rulesService.getFirewallRule(id).getNetworkId();
}
}

View File

@ -103,11 +103,11 @@ public class DeletePortForwardingRuleCmd extends BaseAsyncCmd {
@Override
public String getSyncObjType() {
return BaseAsyncCmd.ipAddressSyncObject;
return BaseAsyncCmd.networkSyncObject;
}
@Override
public Long getSyncObjId() {
return _rulesService.getPortForwardigRule(id).getSourceIpAddressId();
return _rulesService.getPortForwardigRule(id).getNetworkId();
}
}

View File

@ -82,12 +82,12 @@ public class DeleteRemoteAccessVpnCmd extends BaseAsyncCmd {
@Override
public String getSyncObjType() {
return BaseAsyncCmd.ipAddressSyncObject;
return BaseAsyncCmd.networkSyncObject;
}
@Override
public Long getSyncObjId() {
return publicIpId;
return _ravService.getRemoteAccessVpn(publicIpId).getNetworkId();
}
}

View File

@ -27,6 +27,7 @@ import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.SuccessResponse;
import com.cloud.event.EventTypes;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.IpAddress;
@ -88,11 +89,19 @@ public class DisableStaticNatCmd extends BaseAsyncCmd {
@Override
public String getSyncObjType() {
return BaseAsyncCmd.ipAddressSyncObject;
return BaseAsyncCmd.networkSyncObject;
}
@Override
public Long getSyncObjId() {
return ipAddressId;
return getIp().getAssociatedWithNetworkId();
}
private IpAddress getIp() {
IpAddress ip = _networkService.getIp(ipAddressId);
if (ip == null) {
throw new InvalidParameterValueException("Unable to find ip address by id " + ipAddressId);
}
return ip;
}
}

View File

@ -104,4 +104,15 @@ public class RestartNetworkCmd extends BaseAsyncCmd {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to restart network");
}
}
@Override
public String getSyncObjType() {
return BaseAsyncCmd.networkSyncObject;
}
@Override
public Long getSyncObjId() {
return id;
}
}

View File

@ -42,5 +42,7 @@ public interface RemoteAccessVpnService {
List<? extends VpnUser> searchForVpnUsers(ListVpnUsersCmd cmd);
List<? extends RemoteAccessVpn> listRemoteAccessVpns(long networkId);
RemoteAccessVpn getRemoteAccessVpn(long vpnId);
}

View File

@ -580,5 +580,10 @@ public class RemoteAccessVpnManagerImpl implements RemoteAccessVpnService, Manag
public List<? extends RemoteAccessVpn> listRemoteAccessVpns(long networkId) {
return _remoteAccessVpnDao.listByNetworkId(networkId);
}
@Override
public RemoteAccessVpn getRemoteAccessVpn(long vpnId) {
return _remoteAccessVpnDao.findById(vpnId);
}
}