diff --git a/api/src/com/cloud/api/commands/CreateIpForwardingRuleCmd.java b/api/src/com/cloud/api/commands/CreateIpForwardingRuleCmd.java index 098fce762ab..a57c09070df 100644 --- a/api/src/com/cloud/api/commands/CreateIpForwardingRuleCmd.java +++ b/api/src/com/cloud/api/commands/CreateIpForwardingRuleCmd.java @@ -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; } } diff --git a/api/src/com/cloud/api/commands/CreatePortForwardingRuleCmd.java b/api/src/com/cloud/api/commands/CreatePortForwardingRuleCmd.java index e4483956df1..4faabbee75b 100644 --- a/api/src/com/cloud/api/commands/CreatePortForwardingRuleCmd.java +++ b/api/src/com/cloud/api/commands/CreatePortForwardingRuleCmd.java @@ -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; } } diff --git a/api/src/com/cloud/api/commands/CreateRemoteAccessVpnCmd.java b/api/src/com/cloud/api/commands/CreateRemoteAccessVpnCmd.java index c6ccca9fd10..84674a3e948 100644 --- a/api/src/com/cloud/api/commands/CreateRemoteAccessVpnCmd.java +++ b/api/src/com/cloud/api/commands/CreateRemoteAccessVpnCmd.java @@ -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; } } diff --git a/api/src/com/cloud/api/commands/DeleteIpForwardingRuleCmd.java b/api/src/com/cloud/api/commands/DeleteIpForwardingRuleCmd.java index 12da3295f77..9427dc283f4 100644 --- a/api/src/com/cloud/api/commands/DeleteIpForwardingRuleCmd.java +++ b/api/src/com/cloud/api/commands/DeleteIpForwardingRuleCmd.java @@ -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(); } } diff --git a/api/src/com/cloud/api/commands/DeletePortForwardingRuleCmd.java b/api/src/com/cloud/api/commands/DeletePortForwardingRuleCmd.java index 92421daeb5c..45a67f6b5ee 100644 --- a/api/src/com/cloud/api/commands/DeletePortForwardingRuleCmd.java +++ b/api/src/com/cloud/api/commands/DeletePortForwardingRuleCmd.java @@ -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(); } } diff --git a/api/src/com/cloud/api/commands/DeleteRemoteAccessVpnCmd.java b/api/src/com/cloud/api/commands/DeleteRemoteAccessVpnCmd.java index 93969979e79..8077b941cd0 100644 --- a/api/src/com/cloud/api/commands/DeleteRemoteAccessVpnCmd.java +++ b/api/src/com/cloud/api/commands/DeleteRemoteAccessVpnCmd.java @@ -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(); } } diff --git a/api/src/com/cloud/api/commands/DisableStaticNatCmd.java b/api/src/com/cloud/api/commands/DisableStaticNatCmd.java index 2c779a63aa6..258cbd6b021 100644 --- a/api/src/com/cloud/api/commands/DisableStaticNatCmd.java +++ b/api/src/com/cloud/api/commands/DisableStaticNatCmd.java @@ -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; } } diff --git a/api/src/com/cloud/api/commands/RestartNetworkCmd.java b/api/src/com/cloud/api/commands/RestartNetworkCmd.java index e619573e3bc..9bf86959831 100644 --- a/api/src/com/cloud/api/commands/RestartNetworkCmd.java +++ b/api/src/com/cloud/api/commands/RestartNetworkCmd.java @@ -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; + } } diff --git a/api/src/com/cloud/network/vpn/RemoteAccessVpnService.java b/api/src/com/cloud/network/vpn/RemoteAccessVpnService.java index c854ab865e8..96ddb018ac5 100644 --- a/api/src/com/cloud/network/vpn/RemoteAccessVpnService.java +++ b/api/src/com/cloud/network/vpn/RemoteAccessVpnService.java @@ -42,5 +42,7 @@ public interface RemoteAccessVpnService { List searchForVpnUsers(ListVpnUsersCmd cmd); List listRemoteAccessVpns(long networkId); + + RemoteAccessVpn getRemoteAccessVpn(long vpnId); } diff --git a/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java b/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java index 5fb03faf1ff..3c355250e54 100644 --- a/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java +++ b/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java @@ -580,5 +580,10 @@ public class RemoteAccessVpnManagerImpl implements RemoteAccessVpnService, Manag public List listRemoteAccessVpns(long networkId) { return _remoteAccessVpnDao.listByNetworkId(networkId); } + + @Override + public RemoteAccessVpn getRemoteAccessVpn(long vpnId) { + return _remoteAccessVpnDao.findById(vpnId); + } }