You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by al...@apache.org on 2014/02/06 01:36:55 UTC
[2/2] git commit: updated refs/heads/master to e51d472
External UUID control support for PublicIpAddress/RemoteAccessVpn/PortForwardingRule/S2SVpnGateway/S2SVpnConnection
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/4305d817
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/4305d817
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/4305d817
Branch: refs/heads/master
Commit: 4305d817ba035a15208b859280147a37b07b1c52
Parents: 75757e9
Author: Alena Prokharchyk <al...@citrix.com>
Authored: Wed Feb 5 14:17:33 2014 -0800
Committer: Alena Prokharchyk <al...@citrix.com>
Committed: Wed Feb 5 15:56:40 2014 -0800
----------------------------------------------------------------------
api/src/com/cloud/event/EventTypes.java | 4 +
api/src/com/cloud/network/NetworkService.java | 2 +
.../com/cloud/network/rules/RulesService.java | 2 +
.../network/vpn/RemoteAccessVpnService.java | 5 +
.../cloud/network/vpn/Site2SiteVpnService.java | 4 +
.../command/user/address/UpdateIPAddrCmd.java | 122 +++++++++++++++++++
.../firewall/UpdatePortForwardingRuleCmd.java | 32 +++--
.../UpdateApplicationLoadBalancerCmd.java | 3 +-
.../loadbalancer/UpdateLoadBalancerRuleCmd.java | 3 +-
.../user/vpn/UpdateRemoteAccessVpnCmd.java | 102 ++++++++++++++++
.../user/vpn/UpdateVpnConnectionCmd.java | 90 ++++++++++++++
.../command/user/vpn/UpdateVpnGatewayCmd.java | 89 ++++++++++++++
.../Site2SiteVpnConnectionResponse.java | 5 +-
client/tomcatconf/commands.properties.in | 5 +
.../cloud/network/dao/RemoteAccessVpnVO.java | 4 +
.../network/dao/Site2SiteVpnConnectionVO.java | 4 +
.../network/dao/Site2SiteVpnGatewayVO.java | 4 +
.../com/cloud/network/NetworkServiceImpl.java | 23 ++++
.../cloud/network/rules/RulesManagerImpl.java | 20 ++-
.../network/vpn/RemoteAccessVpnManagerImpl.java | 26 +++-
.../network/vpn/Site2SiteVpnManagerImpl.java | 42 ++++++-
.../com/cloud/server/ManagementServerImpl.java | 13 +-
.../com/cloud/vpc/MockNetworkManagerImpl.java | 10 +-
.../cloud/vpc/MockSite2SiteVpnManagerImpl.java | 15 ++-
24 files changed, 602 insertions(+), 27 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4305d817/api/src/com/cloud/event/EventTypes.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/event/EventTypes.java b/api/src/com/cloud/event/EventTypes.java
index 51f8f1b..7dd8772 100755
--- a/api/src/com/cloud/event/EventTypes.java
+++ b/api/src/com/cloud/event/EventTypes.java
@@ -102,6 +102,7 @@ public class EventTypes {
// Network Events
public static final String EVENT_NET_IP_ASSIGN = "NET.IPASSIGN";
public static final String EVENT_NET_IP_RELEASE = "NET.IPRELEASE";
+ public static final String EVENT_NET_IP_UPDATE = "NET.IPUPDATE";
public static final String EVENT_PORTABLE_IP_ASSIGN = "PORTABLE.IPASSIGN";
public static final String EVENT_PORTABLE_IP_RELEASE = "PORTABLE.IPRELEASE";
public static final String EVENT_NET_RULE_ADD = "NET.RULEADD";
@@ -286,16 +287,19 @@ public class EventTypes {
// VPN
public static final String EVENT_REMOTE_ACCESS_VPN_CREATE = "VPN.REMOTE.ACCESS.CREATE";
public static final String EVENT_REMOTE_ACCESS_VPN_DESTROY = "VPN.REMOTE.ACCESS.DESTROY";
+ public static final String EVENT_REMOTE_ACCESS_VPN_UPDATE = "VPN.REMOTE.ACCESS.UPDATE";
public static final String EVENT_VPN_USER_ADD = "VPN.USER.ADD";
public static final String EVENT_VPN_USER_REMOVE = "VPN.USER.REMOVE";
public static final String EVENT_S2S_VPN_GATEWAY_CREATE = "VPN.S2S.VPN.GATEWAY.CREATE";
public static final String EVENT_S2S_VPN_GATEWAY_DELETE = "VPN.S2S.VPN.GATEWAY.DELETE";
+ public static final String EVENT_S2S_VPN_GATEWAY_UPDATE = "VPN.S2S.VPN.GATEWAY.UPDATE";
public static final String EVENT_S2S_VPN_CUSTOMER_GATEWAY_CREATE = "VPN.S2S.CUSTOMER.GATEWAY.CREATE";
public static final String EVENT_S2S_VPN_CUSTOMER_GATEWAY_DELETE = "VPN.S2S.CUSTOMER.GATEWAY.DELETE";
public static final String EVENT_S2S_VPN_CUSTOMER_GATEWAY_UPDATE = "VPN.S2S.CUSTOMER.GATEWAY.UPDATE";
public static final String EVENT_S2S_VPN_CONNECTION_CREATE = "VPN.S2S.CONNECTION.CREATE";
public static final String EVENT_S2S_VPN_CONNECTION_DELETE = "VPN.S2S.CONNECTION.DELETE";
public static final String EVENT_S2S_VPN_CONNECTION_RESET = "VPN.S2S.CONNECTION.RESET";
+ public static final String EVENT_S2S_VPN_CONNECTION_UPDATE = "VPN.S2S.CONNECTION.UPDATE";
// Network
public static final String EVENT_NETWORK_RESTART = "NETWORK.RESTART";
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4305d817/api/src/com/cloud/network/NetworkService.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/network/NetworkService.java b/api/src/com/cloud/network/NetworkService.java
index d7d8546..072a27d 100755
--- a/api/src/com/cloud/network/NetworkService.java
+++ b/api/src/com/cloud/network/NetworkService.java
@@ -176,4 +176,6 @@ public interface NetworkService {
List<? extends Nic> listNics(ListNicsCmd listNicsCmd);
Map<Network.Capability, String> getNetworkOfferingServiceCapabilities(NetworkOffering offering, Service service);
+
+ IpAddress updateIP(Long id, String customId);
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4305d817/api/src/com/cloud/network/rules/RulesService.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/network/rules/RulesService.java b/api/src/com/cloud/network/rules/RulesService.java
index 39329d5..1bd9cfe 100644
--- a/api/src/com/cloud/network/rules/RulesService.java
+++ b/api/src/com/cloud/network/rules/RulesService.java
@@ -80,4 +80,6 @@ public interface RulesService {
boolean disableStaticNat(long ipId) throws ResourceUnavailableException, NetworkRuleConflictException, InsufficientAddressCapacityException;
+ PortForwardingRule updatePortForwardingRule(long id, String customId);
+
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4305d817/api/src/com/cloud/network/vpn/RemoteAccessVpnService.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/network/vpn/RemoteAccessVpnService.java b/api/src/com/cloud/network/vpn/RemoteAccessVpnService.java
index ac9649b..1183211 100644
--- a/api/src/com/cloud/network/vpn/RemoteAccessVpnService.java
+++ b/api/src/com/cloud/network/vpn/RemoteAccessVpnService.java
@@ -52,4 +52,9 @@ public interface RemoteAccessVpnService {
List<? extends RemoteAccessVpn> listRemoteAccessVpns(long networkId);
RemoteAccessVpn getRemoteAccessVpn(long vpnAddrId);
+
+ RemoteAccessVpn getRemoteAccessVpnById(long vpnId);
+
+ RemoteAccessVpn updateRemoteAccessVpn(long id, String customId);
+
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4305d817/api/src/com/cloud/network/vpn/Site2SiteVpnService.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/network/vpn/Site2SiteVpnService.java b/api/src/com/cloud/network/vpn/Site2SiteVpnService.java
index bfc5e25..7b76b3a 100644
--- a/api/src/com/cloud/network/vpn/Site2SiteVpnService.java
+++ b/api/src/com/cloud/network/vpn/Site2SiteVpnService.java
@@ -63,4 +63,8 @@ public interface Site2SiteVpnService {
Pair<List<? extends Site2SiteVpnConnection>, Integer> searchForVpnConnections(ListVpnConnectionsCmd listVpnConnectionsCmd);
Site2SiteCustomerGateway updateCustomerGateway(UpdateVpnCustomerGatewayCmd updateVpnCustomerGatewayCmd);
+
+ Site2SiteVpnConnection updateVpnConnection(long id, String customId);
+
+ Site2SiteVpnGateway updateVpnGateway(Long id, String customId);
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4305d817/api/src/org/apache/cloudstack/api/command/user/address/UpdateIPAddrCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/address/UpdateIPAddrCmd.java b/api/src/org/apache/cloudstack/api/command/user/address/UpdateIPAddrCmd.java
new file mode 100644
index 0000000..b45bf94
--- /dev/null
+++ b/api/src/org/apache/cloudstack/api/command/user/address/UpdateIPAddrCmd.java
@@ -0,0 +1,122 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package org.apache.cloudstack.api.command.user.address;
+
+import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiConstants;
+import org.apache.cloudstack.api.BaseAsyncCustomIdCmd;
+import org.apache.cloudstack.api.Parameter;
+import org.apache.cloudstack.api.ServerApiException;
+import org.apache.cloudstack.api.response.AccountResponse;
+import org.apache.cloudstack.api.response.IPAddressResponse;
+import org.apache.log4j.Logger;
+
+import com.cloud.event.EventTypes;
+import com.cloud.exception.ConcurrentOperationException;
+import com.cloud.exception.InsufficientCapacityException;
+import com.cloud.exception.InvalidParameterValueException;
+import com.cloud.exception.NetworkRuleConflictException;
+import com.cloud.exception.ResourceAllocationException;
+import com.cloud.exception.ResourceUnavailableException;
+import com.cloud.network.IpAddress;
+import com.cloud.user.Account;
+
+@APICommand(name = "updatePublicIpAddress", description = "Updates an ip address", responseObject = IPAddressResponse.class)
+public class UpdateIPAddrCmd extends BaseAsyncCustomIdCmd {
+ public static final Logger s_logger = Logger.getLogger(UpdateIPAddrCmd.class.getName());
+ private static final String s_name = "updateipaddressresponse";
+
+ /////////////////////////////////////////////////////
+ //////////////// API parameters /////////////////////
+ /////////////////////////////////////////////////////
+
+ @Parameter(name = ApiConstants.ID, type = CommandType.UUID, entityType = IPAddressResponse.class, required = true, description = "the id of the public ip address"
+ + " to update")
+ private Long id;
+ // unexposed parameter needed for events logging
+ @Parameter(name = ApiConstants.ACCOUNT_ID, type = CommandType.UUID, entityType = AccountResponse.class, expose = false)
+ private Long ownerId;
+
+ /////////////////////////////////////////////////////
+ /////////////////// Accessors ///////////////////////
+ /////////////////////////////////////////////////////
+ @Override
+ public String getCommandName() {
+ return s_name;
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+
+ /////////////////////////////////////////////////////
+ /////////////// API Implementation///////////////////
+ /////////////////////////////////////////////////////
+ @Override
+ public String getEventType() {
+ return EventTypes.EVENT_NET_IP_UPDATE;
+ }
+
+ @Override
+ public String getEventDescription() {
+ return ("Updating ip address with id=" + id);
+ }
+
+ @Override
+ public long getEntityOwnerId() {
+ if (ownerId == null) {
+ IpAddress ip = getIpAddress(id);
+ if (ip == null) {
+ throw new InvalidParameterValueException("Unable to find ip address by id=" + id);
+ }
+ ownerId = ip.getAccountId();
+ }
+
+ if (ownerId == null) {
+ return Account.ACCOUNT_ID_SYSTEM;
+ }
+ return ownerId;
+ }
+
+ private IpAddress getIpAddress(long id) {
+ IpAddress ip = _entityMgr.findById(IpAddress.class, id);
+
+ if (ip == null) {
+ throw new InvalidParameterValueException("Unable to find ip address by id=" + id);
+ } else {
+ return ip;
+ }
+ }
+
+ @Override
+ public void checkUuid() {
+ if (this.getCustomId() != null) {
+ _uuidMgr.checkUuid(this.getCustomId(), IpAddress.class);
+ }
+ }
+
+ @Override
+ public void execute() throws ResourceUnavailableException, InsufficientCapacityException, ServerApiException, ConcurrentOperationException, ResourceAllocationException,
+ NetworkRuleConflictException {
+
+ IpAddress result = _networkService.updateIP(getId(), this.getCustomId());
+ IPAddressResponse ipResponse = _responseGenerator.createIPAddressResponse(result);
+ ipResponse.setResponseName(getCommandName());
+ setResponseObject(ipResponse);
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4305d817/api/src/org/apache/cloudstack/api/command/user/firewall/UpdatePortForwardingRuleCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/firewall/UpdatePortForwardingRuleCmd.java b/api/src/org/apache/cloudstack/api/command/user/firewall/UpdatePortForwardingRuleCmd.java
index d7e380f..a7bb7e3 100644
--- a/api/src/org/apache/cloudstack/api/command/user/firewall/UpdatePortForwardingRuleCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/firewall/UpdatePortForwardingRuleCmd.java
@@ -16,52 +16,54 @@
// under the License.
package org.apache.cloudstack.api.command.user.firewall;
-import org.apache.log4j.Logger;
-
import org.apache.cloudstack.api.APICommand;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.BaseAsyncCmd;
+import org.apache.cloudstack.api.BaseAsyncCustomIdCmd;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.response.FirewallRuleResponse;
import org.apache.cloudstack.api.response.IPAddressResponse;
import org.apache.cloudstack.api.response.UserVmResponse;
+import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.network.IpAddress;
+import com.cloud.network.rules.FirewallRule;
+import com.cloud.network.rules.PortForwardingRule;
import com.cloud.user.Account;
@APICommand(name = "updatePortForwardingRule",
responseObject = FirewallRuleResponse.class,
- description = "Updates a port forwarding rule. Only the private port and the virtual machine can be updated.")
-public class UpdatePortForwardingRuleCmd extends BaseAsyncCmd {
+ description = "Updates a port forwarding rule")
+public class UpdatePortForwardingRuleCmd extends BaseAsyncCustomIdCmd {
public static final Logger s_logger = Logger.getLogger(UpdatePortForwardingRuleCmd.class.getName());
private static final String s_name = "updateportforwardingruleresponse";
/////////////////////////////////////////////////////
//////////////// API parameters /////////////////////
/////////////////////////////////////////////////////
+ @Parameter(name = ApiConstants.ID, type = CommandType.UUID, entityType = FirewallRuleResponse.class, required = true, description = "the ID of the port forwarding rule")
+ private Long id;
@Parameter(name = ApiConstants.PRIVATE_IP, type = CommandType.STRING, description = "the private IP address of the port forwarding rule")
private String privateIp;
- @Parameter(name = ApiConstants.PRIVATE_PORT, type = CommandType.STRING, required = true, description = "the private port of the port forwarding rule")
+ @Parameter(name = ApiConstants.PRIVATE_PORT, type = CommandType.STRING, description = "the private port of the port forwarding rule")
private String privatePort;
@Parameter(name = ApiConstants.PROTOCOL,
type = CommandType.STRING,
- required = true,
description = "the protocol for the port fowarding rule. Valid values are TCP or UDP.")
private String protocol;
@Parameter(name = ApiConstants.IP_ADDRESS_ID,
type = CommandType.UUID,
entityType = IPAddressResponse.class,
- required = true,
description = "the IP address id of the port forwarding rule")
private Long publicIpId;
- @Parameter(name = ApiConstants.PUBLIC_PORT, type = CommandType.STRING, required = true, description = "the public port of the port forwarding rule")
+ @Parameter(name = ApiConstants.PUBLIC_PORT, type = CommandType.STRING, description = "the public port of the port forwarding rule")
private String publicPort;
@Parameter(name = ApiConstants.VIRTUAL_MACHINE_ID,
@@ -129,7 +131,21 @@ public class UpdatePortForwardingRuleCmd extends BaseAsyncCmd {
}
@Override
+ public void checkUuid() {
+ if (this.getCustomId() != null) {
+ _uuidMgr.checkUuid(this.getCustomId(), FirewallRule.class);
+ }
+ }
+
+ @Override
public void execute() {
+ PortForwardingRule rule = _rulesService.updatePortForwardingRule(id, this.getCustomId());
+ FirewallRuleResponse fwResponse = new FirewallRuleResponse();
+ if (rule != null) {
+ fwResponse = _responseGenerator.createPortForwardingRuleResponse(rule);
+ setResponseObject(fwResponse);
+ }
+ fwResponse.setResponseName(getCommandName());
//FIXME: PortForwardingRule result = _mgr.updatePortForwardingRule(this);
// if (result != null) {
// FirewallRuleResponse response = _responseGenerator.createFirewallRuleResponse(result);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4305d817/api/src/org/apache/cloudstack/api/command/user/loadbalancer/UpdateApplicationLoadBalancerCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/loadbalancer/UpdateApplicationLoadBalancerCmd.java b/api/src/org/apache/cloudstack/api/command/user/loadbalancer/UpdateApplicationLoadBalancerCmd.java
index 5f89692..4a82ce1 100644
--- a/api/src/org/apache/cloudstack/api/command/user/loadbalancer/UpdateApplicationLoadBalancerCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/loadbalancer/UpdateApplicationLoadBalancerCmd.java
@@ -28,6 +28,7 @@ import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.exception.InvalidParameterValueException;
+import com.cloud.network.rules.FirewallRule;
@APICommand(name = "updateLoadBalancer", description = "Updates a Load Balancer", responseObject = ApplicationLoadBalancerResponse.class, since = "4.4.0")
public class UpdateApplicationLoadBalancerCmd extends BaseAsyncCustomIdCmd {
@@ -89,7 +90,7 @@ public class UpdateApplicationLoadBalancerCmd extends BaseAsyncCustomIdCmd {
@Override
public void checkUuid() {
if (this.getCustomId() != null) {
- _uuidMgr.checkUuid(this.getCustomId(), ApplicationLoadBalancerRule.class);
+ _uuidMgr.checkUuid(this.getCustomId(), FirewallRule.class);
}
}
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4305d817/api/src/org/apache/cloudstack/api/command/user/loadbalancer/UpdateLoadBalancerRuleCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/loadbalancer/UpdateLoadBalancerRuleCmd.java b/api/src/org/apache/cloudstack/api/command/user/loadbalancer/UpdateLoadBalancerRuleCmd.java
index f408756..3a9a03c 100644
--- a/api/src/org/apache/cloudstack/api/command/user/loadbalancer/UpdateLoadBalancerRuleCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/loadbalancer/UpdateLoadBalancerRuleCmd.java
@@ -30,6 +30,7 @@ import org.apache.log4j.Logger;
import com.cloud.event.EventTypes;
import com.cloud.exception.InvalidParameterValueException;
+import com.cloud.network.rules.FirewallRule;
import com.cloud.network.rules.LoadBalancer;
import com.cloud.user.Account;
@@ -136,7 +137,7 @@ public class UpdateLoadBalancerRuleCmd extends BaseAsyncCustomIdCmd {
@Override
public void checkUuid() {
if (this.getCustomId() != null) {
- _uuidMgr.checkUuid(this.getCustomId(), LoadBalancer.class);
+ _uuidMgr.checkUuid(this.getCustomId(), FirewallRule.class);
}
}
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4305d817/api/src/org/apache/cloudstack/api/command/user/vpn/UpdateRemoteAccessVpnCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/vpn/UpdateRemoteAccessVpnCmd.java b/api/src/org/apache/cloudstack/api/command/user/vpn/UpdateRemoteAccessVpnCmd.java
new file mode 100644
index 0000000..e275faf
--- /dev/null
+++ b/api/src/org/apache/cloudstack/api/command/user/vpn/UpdateRemoteAccessVpnCmd.java
@@ -0,0 +1,102 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package org.apache.cloudstack.api.command.user.vpn;
+
+import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiConstants;
+import org.apache.cloudstack.api.BaseAsyncCustomIdCmd;
+import org.apache.cloudstack.api.Parameter;
+import org.apache.cloudstack.api.response.AccountResponse;
+import org.apache.cloudstack.api.response.RemoteAccessVpnResponse;
+import org.apache.log4j.Logger;
+
+import com.cloud.event.EventTypes;
+import com.cloud.exception.InvalidParameterValueException;
+import com.cloud.network.RemoteAccessVpn;
+
+@APICommand(name = "updateRemoteAccessVpn", description = "Updates remote access vpn", responseObject = RemoteAccessVpnResponse.class, since = "4.4")
+public class UpdateRemoteAccessVpnCmd extends BaseAsyncCustomIdCmd {
+ public static final Logger s_logger = Logger.getLogger(UpdateRemoteAccessVpnCmd.class.getName());
+
+ private static final String s_name = "updateremoteaccessvpnresponse";
+
+ /////////////////////////////////////////////////////
+ //////////////// API parameters /////////////////////
+ /////////////////////////////////////////////////////
+
+ @Parameter(name = ApiConstants.ID, type = CommandType.UUID, required = true, entityType = RemoteAccessVpnResponse.class, description = "id of the remote access vpn")
+ private Long id;
+
+ // unexposed parameter needed for events logging
+ @Parameter(name = ApiConstants.ACCOUNT_ID, type = CommandType.UUID, entityType = AccountResponse.class, expose = false)
+ private Long ownerId;
+
+ /////////////////////////////////////////////////////
+ /////////////////// Accessors ///////////////////////
+ /////////////////////////////////////////////////////
+
+ public Long getId() {
+ return id;
+ }
+
+ @Override
+ public String getCommandName() {
+ return s_name;
+ }
+
+ @Override
+ public long getEntityOwnerId() {
+ if (ownerId == null) {
+ RemoteAccessVpn vpnEntity = _ravService.getRemoteAccessVpnById(id);
+ if (vpnEntity != null)
+ return vpnEntity.getAccountId();
+
+ throw new InvalidParameterValueException("The specified id is invalid");
+ }
+ return ownerId;
+ }
+
+ @Override
+ public String getEventDescription() {
+ return "Updating remote access vpn id=" + id;
+ }
+
+ @Override
+ public String getEventType() {
+ return EventTypes.EVENT_REMOTE_ACCESS_VPN_UPDATE;
+ }
+
+ /////////////////////////////////////////////////////
+ /////////////// API Implementation///////////////////
+ /////////////////////////////////////////////////////
+
+ @Override
+ public void execute() {
+ RemoteAccessVpn result = _ravService.updateRemoteAccessVpn(id, this.getCustomId());
+ RemoteAccessVpnResponse response = _responseGenerator.createRemoteAccessVpnResponse(result);
+ response.setResponseName(getCommandName());
+ this.setResponseObject(response);
+
+ }
+
+ @Override
+ public void checkUuid() {
+ if (this.getCustomId() != null) {
+ _uuidMgr.checkUuid(this.getCustomId(), RemoteAccessVpn.class);
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4305d817/api/src/org/apache/cloudstack/api/command/user/vpn/UpdateVpnConnectionCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/vpn/UpdateVpnConnectionCmd.java b/api/src/org/apache/cloudstack/api/command/user/vpn/UpdateVpnConnectionCmd.java
new file mode 100644
index 0000000..5fee7a2
--- /dev/null
+++ b/api/src/org/apache/cloudstack/api/command/user/vpn/UpdateVpnConnectionCmd.java
@@ -0,0 +1,90 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package org.apache.cloudstack.api.command.user.vpn;
+
+import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiConstants;
+import org.apache.cloudstack.api.BaseAsyncCustomIdCmd;
+import org.apache.cloudstack.api.Parameter;
+import org.apache.cloudstack.api.response.Site2SiteVpnConnectionResponse;
+import org.apache.log4j.Logger;
+
+import com.cloud.event.EventTypes;
+import com.cloud.network.Site2SiteVpnConnection;
+import com.cloud.user.Account;
+
+@APICommand(name = "updateVpnConnection", description = "Updates site to site vpn connection", responseObject = Site2SiteVpnConnectionResponse.class, since = "4.4")
+public class UpdateVpnConnectionCmd extends BaseAsyncCustomIdCmd {
+ public static final Logger s_logger = Logger.getLogger(UpdateVpnConnectionCmd.class.getName());
+
+ private static final String s_name = "updatevpnconnectionresponse";
+
+ /////////////////////////////////////////////////////
+ //////////////// API parameters /////////////////////
+ /////////////////////////////////////////////////////
+ @Parameter(name = ApiConstants.ID, type = CommandType.UUID, entityType = Site2SiteVpnConnectionResponse.class, required = true, description = "id of vpn connection")
+ private Long id;
+
+ /////////////////////////////////////////////////////
+ /////////////////// Accessors ///////////////////////
+ /////////////////////////////////////////////////////
+ public Long getId() {
+ return id;
+ }
+ /////////////////////////////////////////////////////
+ /////////////// API Implementation///////////////////
+ /////////////////////////////////////////////////////
+
+ @Override
+ public String getCommandName() {
+ return s_name;
+ }
+
+ @Override
+ public long getEntityOwnerId() {
+ Site2SiteVpnConnection conn = _entityMgr.findById(Site2SiteVpnConnection.class, getId());
+ if (conn != null) {
+ return conn.getAccountId();
+ }
+ return Account.ACCOUNT_ID_SYSTEM;
+ }
+
+ @Override
+ public String getEventDescription() {
+ return "Updating site-to-site VPN connection id= " + id;
+ }
+
+ @Override
+ public String getEventType() {
+ return EventTypes.EVENT_S2S_VPN_CONNECTION_UPDATE;
+ }
+
+ @Override
+ public void execute() {
+ Site2SiteVpnConnection result = _s2sVpnService.updateVpnConnection(id, this.getCustomId());
+ Site2SiteVpnConnectionResponse response = _responseGenerator.createSite2SiteVpnConnectionResponse(result);
+ response.setResponseName(getCommandName());
+ setResponseObject(response);
+ }
+
+ @Override
+ public void checkUuid() {
+ if (this.getCustomId() != null) {
+ _uuidMgr.checkUuid(this.getCustomId(), Site2SiteVpnConnection.class);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4305d817/api/src/org/apache/cloudstack/api/command/user/vpn/UpdateVpnGatewayCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/vpn/UpdateVpnGatewayCmd.java b/api/src/org/apache/cloudstack/api/command/user/vpn/UpdateVpnGatewayCmd.java
new file mode 100644
index 0000000..30c56b4
--- /dev/null
+++ b/api/src/org/apache/cloudstack/api/command/user/vpn/UpdateVpnGatewayCmd.java
@@ -0,0 +1,89 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package org.apache.cloudstack.api.command.user.vpn;
+
+import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiConstants;
+import org.apache.cloudstack.api.BaseAsyncCustomIdCmd;
+import org.apache.cloudstack.api.Parameter;
+import org.apache.cloudstack.api.response.Site2SiteVpnGatewayResponse;
+import org.apache.log4j.Logger;
+
+import com.cloud.event.EventTypes;
+import com.cloud.network.Site2SiteVpnGateway;
+import com.cloud.user.Account;
+
+@APICommand(name = "updateVpnGateway", description = "Updates site to site vpn local gateway", responseObject = Site2SiteVpnGatewayResponse.class, since = "4.4")
+public class UpdateVpnGatewayCmd extends BaseAsyncCustomIdCmd {
+ public static final Logger s_logger = Logger.getLogger(UpdateVpnGatewayCmd.class.getName());
+
+ private static final String s_name = "updatevpngatewayresponse";
+
+ /////////////////////////////////////////////////////
+ //////////////// API parameters /////////////////////
+ /////////////////////////////////////////////////////
+ @Parameter(name = ApiConstants.ID, type = CommandType.UUID, entityType = Site2SiteVpnGatewayResponse.class, required = true, description = "id of customer gateway")
+ private Long id;
+
+ /////////////////////////////////////////////////////
+ /////////////////// Accessors ///////////////////////
+ /////////////////////////////////////////////////////
+ public Long getId() {
+ return id;
+ }
+
+ @Override
+ public String getCommandName() {
+ return s_name;
+ }
+
+ @Override
+ public long getEntityOwnerId() {
+ Site2SiteVpnGateway gw = _entityMgr.findById(Site2SiteVpnGateway.class, getId());
+ if (gw != null) {
+ return gw.getAccountId();
+ }
+ return Account.ACCOUNT_ID_SYSTEM;
+ }
+
+ @Override
+ public String getEventDescription() {
+ return "Update site-to-site VPN gateway id= " + id;
+ }
+
+ @Override
+ public String getEventType() {
+ return EventTypes.EVENT_S2S_VPN_GATEWAY_UPDATE;
+ }
+
+ /////////////////////////////////////////////////////
+ /////////////// API Implementation///////////////////
+ /////////////////////////////////////////////////////
+ @Override
+ public void execute() {
+ Site2SiteVpnGateway result = _s2sVpnService.updateVpnGateway(id, this.getCustomId());
+ Site2SiteVpnGatewayResponse response = _responseGenerator.createSite2SiteVpnGatewayResponse(result);
+ response.setResponseName(getCommandName());
+ }
+
+ @Override
+ public void checkUuid() {
+ if (this.getCustomId() != null) {
+ _uuidMgr.checkUuid(this.getCustomId(), Site2SiteVpnGateway.class);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4305d817/api/src/org/apache/cloudstack/api/response/Site2SiteVpnConnectionResponse.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/response/Site2SiteVpnConnectionResponse.java b/api/src/org/apache/cloudstack/api/response/Site2SiteVpnConnectionResponse.java
index 423b6cd..f025b52 100644
--- a/api/src/org/apache/cloudstack/api/response/Site2SiteVpnConnectionResponse.java
+++ b/api/src/org/apache/cloudstack/api/response/Site2SiteVpnConnectionResponse.java
@@ -18,20 +18,19 @@ package org.apache.cloudstack.api.response;
import java.util.Date;
-import com.google.gson.annotations.SerializedName;
-
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.BaseResponse;
import org.apache.cloudstack.api.EntityReference;
import com.cloud.network.Site2SiteVpnConnection;
import com.cloud.serializer.Param;
+import com.google.gson.annotations.SerializedName;
@EntityReference(value = Site2SiteVpnConnection.class)
@SuppressWarnings("unused")
public class Site2SiteVpnConnectionResponse extends BaseResponse implements ControlledEntityResponse {
@SerializedName(ApiConstants.ID)
- @Param(description = "the vpn gateway ID")
+ @Param(description = "the connection ID")
private String id;
@SerializedName(ApiConstants.S2S_VPN_GATEWAY_ID)
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4305d817/client/tomcatconf/commands.properties.in
----------------------------------------------------------------------
diff --git a/client/tomcatconf/commands.properties.in b/client/tomcatconf/commands.properties.in
index 2992eea..879c58d 100644
--- a/client/tomcatconf/commands.properties.in
+++ b/client/tomcatconf/commands.properties.in
@@ -137,6 +137,7 @@ listDedicatedGuestVlanRanges=1
associateIpAddress=15
disassociateIpAddress=15
listPublicIpAddresses=15
+updatePublicIpAddress=15
#### firewall commands
listPortForwardingRules=15
@@ -349,6 +350,8 @@ listHypervisors=15
createRemoteAccessVpn=15
deleteRemoteAccessVpn=15
listRemoteAccessVpns=15
+updateRemoteAccessVpn=15
+
addVpnUser=15
removeVpnUser=15
@@ -501,6 +504,8 @@ resetVpnConnection=15
listVpnCustomerGateways=15
listVpnGateways=15
listVpnConnections=15
+updateVpnConnection=15
+updateVpnGateway=15
#### router commands
createVirtualRouterElement=7
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4305d817/engine/schema/src/com/cloud/network/dao/RemoteAccessVpnVO.java
----------------------------------------------------------------------
diff --git a/engine/schema/src/com/cloud/network/dao/RemoteAccessVpnVO.java b/engine/schema/src/com/cloud/network/dao/RemoteAccessVpnVO.java
index 54ae9b2..c892949 100644
--- a/engine/schema/src/com/cloud/network/dao/RemoteAccessVpnVO.java
+++ b/engine/schema/src/com/cloud/network/dao/RemoteAccessVpnVO.java
@@ -148,4 +148,8 @@ public class RemoteAccessVpnVO implements RemoteAccessVpn {
public Long getVpcId() {
return vpcId;
}
+
+ public void setUuid(String uuid) {
+ this.uuid = uuid;
+ }
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4305d817/engine/schema/src/com/cloud/network/dao/Site2SiteVpnConnectionVO.java
----------------------------------------------------------------------
diff --git a/engine/schema/src/com/cloud/network/dao/Site2SiteVpnConnectionVO.java b/engine/schema/src/com/cloud/network/dao/Site2SiteVpnConnectionVO.java
index 96a4c2d..7f1d0aa 100644
--- a/engine/schema/src/com/cloud/network/dao/Site2SiteVpnConnectionVO.java
+++ b/engine/schema/src/com/cloud/network/dao/Site2SiteVpnConnectionVO.java
@@ -155,4 +155,8 @@ public class Site2SiteVpnConnectionVO implements Site2SiteVpnConnection, Interna
public void setPassive(boolean passive) {
this.passive = passive;
}
+
+ public void setUuid(String uuid) {
+ this.uuid = uuid;
+ }
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4305d817/engine/schema/src/com/cloud/network/dao/Site2SiteVpnGatewayVO.java
----------------------------------------------------------------------
diff --git a/engine/schema/src/com/cloud/network/dao/Site2SiteVpnGatewayVO.java b/engine/schema/src/com/cloud/network/dao/Site2SiteVpnGatewayVO.java
index 3a16bcd..5e8c6b6 100644
--- a/engine/schema/src/com/cloud/network/dao/Site2SiteVpnGatewayVO.java
+++ b/engine/schema/src/com/cloud/network/dao/Site2SiteVpnGatewayVO.java
@@ -112,4 +112,8 @@ public class Site2SiteVpnGatewayVO implements Site2SiteVpnGateway {
public long getAccountId() {
return accountId;
}
+
+ public void setUuid(String uuid) {
+ this.uuid = uuid;
+ }
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4305d817/server/src/com/cloud/network/NetworkServiceImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/NetworkServiceImpl.java b/server/src/com/cloud/network/NetworkServiceImpl.java
index c786426..bcadd69 100755
--- a/server/src/com/cloud/network/NetworkServiceImpl.java
+++ b/server/src/com/cloud/network/NetworkServiceImpl.java
@@ -4034,4 +4034,27 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
this._networkGurus = networkGurus;
}
+ @Override
+ @ActionEvent(eventType = EventTypes.EVENT_NET_IP_UPDATE, eventDescription = "updating public ip address", async = true)
+ public IpAddress updateIP(Long id, String customId) {
+ Account caller = CallContext.current().getCallingAccount();
+ IPAddressVO ipVO = _ipAddressDao.findById(id);
+ if (ipVO == null) {
+ throw new InvalidParameterValueException("Unable to find ip address by id");
+ }
+
+ // verify permissions
+ if (ipVO.getAllocatedToAccountId() != null) {
+ _accountMgr.checkAccess(caller, null, true, ipVO);
+ } else if (caller.getType() != Account.ACCOUNT_TYPE_ADMIN) {
+ throw new PermissionDeniedException("Only Root admin can update non-allocated ip addresses");
+ }
+
+ if (customId != null) {
+ ipVO.setUuid(customId);
+ }
+ _ipAddressDao.update(id, ipVO);
+ return _ipAddressDao.findById(id);
+ }
+
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4305d817/server/src/com/cloud/network/rules/RulesManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/rules/RulesManagerImpl.java b/server/src/com/cloud/network/rules/RulesManagerImpl.java
index 69be58f..2fa72a7 100755
--- a/server/src/com/cloud/network/rules/RulesManagerImpl.java
+++ b/server/src/com/cloud/network/rules/RulesManagerImpl.java
@@ -25,11 +25,10 @@ import java.util.Set;
import javax.ejb.Local;
import javax.inject.Inject;
-import org.apache.log4j.Logger;
-
import org.apache.cloudstack.api.command.user.firewall.ListPortForwardingRulesCmd;
import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
+import org.apache.log4j.Logger;
import com.cloud.configuration.ConfigurationManager;
import com.cloud.domain.dao.DomainDao;
@@ -1484,4 +1483,21 @@ public class RulesManagerImpl extends ManagerBase implements RulesManager, Rules
}
return result;
}
+
+ @Override
+ @ActionEvent(eventType = EventTypes.EVENT_NET_RULE_MODIFY, eventDescription = "updating forwarding rule", async = true)
+ public PortForwardingRule updatePortForwardingRule(long id, String customId) {
+ Account caller = CallContext.current().getCallingAccount();
+ PortForwardingRuleVO rule = _portForwardingDao.findById(id);
+ if (rule == null) {
+ throw new InvalidParameterValueException("Unable to find " + id);
+ }
+ _accountMgr.checkAccess(caller, null, true, rule);
+
+ if (customId != null) {
+ rule.setUuid(customId);
+ }
+ _portForwardingDao.update(id, rule);
+ return _portForwardingDao.findById(id);
+ }
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4305d817/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java b/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java
index ef4cccd..0b33ae3 100755
--- a/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java
+++ b/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java
@@ -25,18 +25,18 @@ import javax.ejb.Local;
import javax.inject.Inject;
import javax.naming.ConfigurationException;
-import org.apache.log4j.Logger;
-
import org.apache.cloudstack.api.command.user.vpn.ListRemoteAccessVpnsCmd;
import org.apache.cloudstack.api.command.user.vpn.ListVpnUsersCmd;
import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.framework.config.ConfigKey;
import org.apache.cloudstack.framework.config.Configurable;
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
+import org.apache.log4j.Logger;
import com.cloud.configuration.Config;
import com.cloud.domain.DomainVO;
import com.cloud.domain.dao.DomainDao;
+import com.cloud.event.ActionEvent;
import com.cloud.event.EventTypes;
import com.cloud.event.UsageEventUtils;
import com.cloud.event.dao.UsageEventDao;
@@ -696,6 +696,11 @@ public class RemoteAccessVpnManagerImpl extends ManagerBase implements RemoteAcc
return _remoteAccessVpnDao.findByPublicIpAddress(vpnAddrId);
}
+ @Override
+ public RemoteAccessVpn getRemoteAccessVpnById(long vpnId) {
+ return _remoteAccessVpnDao.findById(vpnId);
+ }
+
public List<RemoteAccessVPNServiceProvider> getRemoteAccessVPNServiceProviders() {
List<RemoteAccessVPNServiceProvider> result = new ArrayList<RemoteAccessVPNServiceProvider>();
for (Iterator<RemoteAccessVPNServiceProvider> e = _vpnServiceProviders.iterator(); e.hasNext();) {
@@ -723,4 +728,21 @@ public class RemoteAccessVpnManagerImpl extends ManagerBase implements RemoteAcc
this._vpnServiceProviders = vpnServiceProviders;
}
+ @Override
+ @ActionEvent(eventType = EventTypes.EVENT_REMOTE_ACCESS_VPN_UPDATE, eventDescription = "updating remote access vpn", async = true)
+ public RemoteAccessVpn updateRemoteAccessVpn(long id, String customId) {
+ final RemoteAccessVpnVO vpn = _remoteAccessVpnDao.findById(id);
+ if (vpn == null) {
+ throw new InvalidParameterValueException("Can't find remote access vpn by id " + id);
+ }
+
+ _accountMgr.checkAccess(CallContext.current().getCallingAccount(), null, true, vpn);
+ if (customId != null) {
+ vpn.setUuid(customId);
+ }
+
+ _remoteAccessVpnDao.update(vpn.getId(), vpn);
+ return _remoteAccessVpnDao.findById(id);
+ }
+
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4305d817/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java b/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java
index d068ca0..2f6ad6c 100644
--- a/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java
+++ b/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java
@@ -24,9 +24,6 @@ import javax.ejb.Local;
import javax.inject.Inject;
import javax.naming.ConfigurationException;
-import org.apache.log4j.Logger;
-import org.springframework.stereotype.Component;
-
import org.apache.cloudstack.api.command.user.vpn.CreateVpnConnectionCmd;
import org.apache.cloudstack.api.command.user.vpn.CreateVpnCustomerGatewayCmd;
import org.apache.cloudstack.api.command.user.vpn.CreateVpnGatewayCmd;
@@ -40,6 +37,8 @@ import org.apache.cloudstack.api.command.user.vpn.ResetVpnConnectionCmd;
import org.apache.cloudstack.api.command.user.vpn.UpdateVpnCustomerGatewayCmd;
import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
+import org.apache.log4j.Logger;
+import org.springframework.stereotype.Component;
import com.cloud.configuration.Config;
import com.cloud.event.ActionEvent;
@@ -783,4 +782,41 @@ public class Site2SiteVpnManagerImpl extends ManagerBase implements Site2SiteVpn
public void setS2sProviders(List<Site2SiteVpnServiceProvider> s2sProviders) {
this._s2sProviders = s2sProviders;
}
+
+ @Override
+ @ActionEvent(eventType = EventTypes.EVENT_S2S_VPN_CONNECTION_UPDATE, eventDescription = "creating s2s vpn gateway", async = true)
+ public Site2SiteVpnConnection updateVpnConnection(long id, String customId) {
+ Account caller = CallContext.current().getCallingAccount();
+ Site2SiteVpnConnectionVO conn = _vpnConnectionDao.findById(id);
+ if (conn == null) {
+ throw new InvalidParameterValueException("Fail to find site to site VPN connection " + id);
+ }
+
+ _accountMgr.checkAccess(caller, null, false, conn);
+ if (customId != null) {
+ conn.setUuid(customId);
+ }
+
+ _vpnConnectionDao.update(id, conn);
+ return _vpnConnectionDao.findById(id);
+ }
+
+ @Override
+ @ActionEvent(eventType = EventTypes.EVENT_S2S_VPN_GATEWAY_UPDATE, eventDescription = "updating s2s vpn gateway", async = true)
+ public Site2SiteVpnGateway updateVpnGateway(Long id, String customId) {
+ Account caller = CallContext.current().getCallingAccount();
+
+ Site2SiteVpnGatewayVO vpnGateway = _vpnGatewayDao.findById(id);
+ if (vpnGateway == null) {
+ throw new InvalidParameterValueException("Fail to find vpn gateway with " + id);
+ }
+
+ _accountMgr.checkAccess(caller, null, false, vpnGateway);
+ if (customId != null) {
+ vpnGateway.setUuid(customId);
+ }
+ _vpnGatewayDao.update(id, vpnGateway);
+ return _vpnGatewayDao.findById(id);
+
+ }
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4305d817/server/src/com/cloud/server/ManagementServerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/server/ManagementServerImpl.java b/server/src/com/cloud/server/ManagementServerImpl.java
index ad4e760..2a08ddc4 100755
--- a/server/src/com/cloud/server/ManagementServerImpl.java
+++ b/server/src/com/cloud/server/ManagementServerImpl.java
@@ -40,9 +40,6 @@ import javax.crypto.spec.SecretKeySpec;
import javax.inject.Inject;
import javax.naming.ConfigurationException;
-import org.apache.commons.codec.binary.Base64;
-import org.apache.log4j.Logger;
-
import org.apache.cloudstack.acl.ControlledEntity;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.affinity.AffinityGroupProcessor;
@@ -221,6 +218,7 @@ import org.apache.cloudstack.api.command.user.account.ListProjectAccountsCmd;
import org.apache.cloudstack.api.command.user.address.AssociateIPAddrCmd;
import org.apache.cloudstack.api.command.user.address.DisassociateIPAddrCmd;
import org.apache.cloudstack.api.command.user.address.ListPublicIpAddressesCmd;
+import org.apache.cloudstack.api.command.user.address.UpdateIPAddrCmd;
import org.apache.cloudstack.api.command.user.affinitygroup.CreateAffinityGroupCmd;
import org.apache.cloudstack.api.command.user.affinitygroup.DeleteAffinityGroupCmd;
import org.apache.cloudstack.api.command.user.affinitygroup.ListAffinityGroupTypesCmd;
@@ -436,7 +434,10 @@ import org.apache.cloudstack.api.command.user.vpn.ListVpnGatewaysCmd;
import org.apache.cloudstack.api.command.user.vpn.ListVpnUsersCmd;
import org.apache.cloudstack.api.command.user.vpn.RemoveVpnUserCmd;
import org.apache.cloudstack.api.command.user.vpn.ResetVpnConnectionCmd;
+import org.apache.cloudstack.api.command.user.vpn.UpdateRemoteAccessVpnCmd;
+import org.apache.cloudstack.api.command.user.vpn.UpdateVpnConnectionCmd;
import org.apache.cloudstack.api.command.user.vpn.UpdateVpnCustomerGatewayCmd;
+import org.apache.cloudstack.api.command.user.vpn.UpdateVpnGatewayCmd;
import org.apache.cloudstack.api.command.user.zone.ListZonesByCmd;
import org.apache.cloudstack.config.Configuration;
import org.apache.cloudstack.context.CallContext;
@@ -454,6 +455,8 @@ import org.apache.cloudstack.storage.datastore.db.ImageStoreVO;
import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
import org.apache.cloudstack.utils.identity.ManagementServerNode;
+import org.apache.commons.codec.binary.Base64;
+import org.apache.log4j.Logger;
import com.cloud.agent.AgentManager;
import com.cloud.agent.api.GetVncPortAnswer;
@@ -2857,6 +2860,10 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
cmdList.add(UpdateFirewallRuleCmd.class);
cmdList.add(UpdateNetworkACLListCmd.class);
cmdList.add(UpdateApplicationLoadBalancerCmd.class);
+ cmdList.add(UpdateIPAddrCmd.class);
+ cmdList.add(UpdateRemoteAccessVpnCmd.class);
+ cmdList.add(UpdateVpnConnectionCmd.class);
+ cmdList.add(UpdateVpnGatewayCmd.class);
return cmdList;
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4305d817/server/test/com/cloud/vpc/MockNetworkManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/vpc/MockNetworkManagerImpl.java b/server/test/com/cloud/vpc/MockNetworkManagerImpl.java
index 32beb0b..68390f8 100644
--- a/server/test/com/cloud/vpc/MockNetworkManagerImpl.java
+++ b/server/test/com/cloud/vpc/MockNetworkManagerImpl.java
@@ -25,8 +25,6 @@ import javax.ejb.Local;
import javax.inject.Inject;
import javax.naming.ConfigurationException;
-import org.apache.log4j.Logger;
-import org.springframework.stereotype.Component;
import org.apache.cloudstack.acl.ControlledEntity.ACLType;
import org.apache.cloudstack.api.command.admin.network.DedicateGuestVlanRangeCmd;
import org.apache.cloudstack.api.command.admin.network.ListDedicatedGuestVlanRangesCmd;
@@ -36,6 +34,8 @@ import org.apache.cloudstack.api.command.user.network.ListNetworksCmd;
import org.apache.cloudstack.api.command.user.network.RestartNetworkCmd;
import org.apache.cloudstack.api.command.user.vm.ListNicsCmd;
import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
+import org.apache.log4j.Logger;
+import org.springframework.stereotype.Component;
import com.cloud.deploy.DataCenterDeployment;
import com.cloud.deploy.DeployDestination;
@@ -857,4 +857,10 @@ public class MockNetworkManagerImpl extends ManagerBase implements NetworkOrches
}
+ @Override
+ public IpAddress updateIP(Long id, String customId) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4305d817/server/test/com/cloud/vpc/MockSite2SiteVpnManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/vpc/MockSite2SiteVpnManagerImpl.java b/server/test/com/cloud/vpc/MockSite2SiteVpnManagerImpl.java
index b02e1a4..3815ed1 100644
--- a/server/test/com/cloud/vpc/MockSite2SiteVpnManagerImpl.java
+++ b/server/test/com/cloud/vpc/MockSite2SiteVpnManagerImpl.java
@@ -22,8 +22,6 @@ import java.util.Map;
import javax.ejb.Local;
import javax.naming.ConfigurationException;
-import org.springframework.stereotype.Component;
-
import org.apache.cloudstack.api.command.user.vpn.CreateVpnConnectionCmd;
import org.apache.cloudstack.api.command.user.vpn.CreateVpnCustomerGatewayCmd;
import org.apache.cloudstack.api.command.user.vpn.CreateVpnGatewayCmd;
@@ -35,6 +33,7 @@ import org.apache.cloudstack.api.command.user.vpn.ListVpnCustomerGatewaysCmd;
import org.apache.cloudstack.api.command.user.vpn.ListVpnGatewaysCmd;
import org.apache.cloudstack.api.command.user.vpn.ResetVpnConnectionCmd;
import org.apache.cloudstack.api.command.user.vpn.UpdateVpnCustomerGatewayCmd;
+import org.springframework.stereotype.Component;
import com.cloud.exception.NetworkRuleConflictException;
import com.cloud.exception.ResourceUnavailableException;
@@ -259,4 +258,16 @@ public class MockSite2SiteVpnManagerImpl extends ManagerBase implements Site2Sit
}
+ @Override
+ public Site2SiteVpnConnection updateVpnConnection(long id, String customId) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public Site2SiteVpnGateway updateVpnGateway(Long id, String customId) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
}