mirror of
https://github.com/apache/cloudstack.git
synced 2025-11-03 04:12:31 +01:00
added a list method to list ip forwarding rules, optionally list a rule based on its public ip address
This commit is contained in:
parent
020afa6e33
commit
18ff23c839
@ -35,6 +35,7 @@ import com.cloud.api.response.FirewallRuleResponse;
|
||||
import com.cloud.api.response.HostResponse;
|
||||
import com.cloud.api.response.IPAddressResponse;
|
||||
import com.cloud.api.response.InstanceGroupResponse;
|
||||
import com.cloud.api.response.IpForwardingRuleResponse;
|
||||
import com.cloud.api.response.LoadBalancerResponse;
|
||||
import com.cloud.api.response.PodResponse;
|
||||
import com.cloud.api.response.PreallocatedLunResponse;
|
||||
@ -1013,6 +1014,22 @@ public class ApiResponseHelper {
|
||||
return response;
|
||||
}
|
||||
|
||||
public static IpForwardingRuleResponse createIpForwardingRuleResponse(FirewallRuleVO fwRule) {
|
||||
IpForwardingRuleResponse response = new IpForwardingRuleResponse();
|
||||
response.setId(fwRule.getId());
|
||||
response.setPrivatePort(fwRule.getPrivatePort());
|
||||
response.setProtocol(fwRule.getProtocol());
|
||||
response.setPublicPort(fwRule.getPublicPort());
|
||||
response.setPublicIpAddress(fwRule.getPublicIpAddress());
|
||||
if (fwRule.getPublicIpAddress() != null && fwRule.getPrivateIpAddress() != null) {
|
||||
UserVm vm = ApiDBUtils.findUserVmByPublicIpAndGuestIp(fwRule.getPublicIpAddress(), fwRule.getPrivateIpAddress());
|
||||
response.setVirtualMachineId(vm.getId());
|
||||
response.setVirtualMachineName(vm.getHostName());
|
||||
response.setVirtualMachineDisplayName(vm.getDisplayName());
|
||||
}
|
||||
response.setObjectName("ipforwardingrule");
|
||||
return response;
|
||||
}
|
||||
|
||||
|
||||
public static UserVmResponse createUserVm2Response (UserVm userVm) {
|
||||
|
||||
@ -28,6 +28,7 @@ import com.cloud.api.BaseListCmd;
|
||||
import com.cloud.api.Implementation;
|
||||
import com.cloud.api.Parameter;
|
||||
import com.cloud.api.response.FirewallRuleResponse;
|
||||
import com.cloud.api.response.IpForwardingRuleResponse;
|
||||
import com.cloud.api.response.ListResponse;
|
||||
import com.cloud.network.FirewallRuleVO;
|
||||
|
||||
@ -68,12 +69,11 @@ public class ListIpForwardingRulesCmd extends BaseListCmd {
|
||||
@Override
|
||||
public void execute(){
|
||||
List<FirewallRuleVO> result = _mgr.searchForIpForwardingRules(this);
|
||||
ListResponse<FirewallRuleResponse> response = new ListResponse<FirewallRuleResponse>();
|
||||
List<FirewallRuleResponse> fwResponses = new ArrayList<FirewallRuleResponse>();
|
||||
ListResponse<IpForwardingRuleResponse> response = new ListResponse<IpForwardingRuleResponse>();
|
||||
List<IpForwardingRuleResponse> fwResponses = new ArrayList<IpForwardingRuleResponse>();
|
||||
for (FirewallRuleVO rule : result) {
|
||||
FirewallRuleResponse resp = ApiResponseHelper.createFirewallRuleResponse(rule);
|
||||
IpForwardingRuleResponse resp = ApiResponseHelper.createIpForwardingRuleResponse(rule);
|
||||
if (resp != null) {
|
||||
resp.setObjectName("firewallrule");
|
||||
fwResponses.add(resp);
|
||||
}
|
||||
}
|
||||
|
||||
@ -37,10 +37,10 @@ public class FirewallRuleResponse extends BaseResponse {
|
||||
@SerializedName(ApiConstants.VIRTUAL_MACHINE_ID) @Param(description="the VM ID for the port forwarding rule")
|
||||
private Long virtualMachineId;
|
||||
|
||||
@SerializedName("vmname") @Param(description="the VM name for the port forwarding rule")
|
||||
@SerializedName("virtualmachinename") @Param(description="the VM name for the port forwarding rule")
|
||||
private String virtualMachineName;
|
||||
|
||||
@SerializedName("vmdisplayname") @Param(description="the VM display name for the port forwarding rule")
|
||||
@SerializedName("virtualmachinedisplayname") @Param(description="the VM display name for the port forwarding rule")
|
||||
private String virtualMachineDisplayName;
|
||||
|
||||
@SerializedName("publicipaddress") @Param(description="the public ip address for the port forwarding rule")
|
||||
|
||||
112
server/src/com/cloud/api/response/IpForwardingRuleResponse.java
Normal file
112
server/src/com/cloud/api/response/IpForwardingRuleResponse.java
Normal file
@ -0,0 +1,112 @@
|
||||
/**
|
||||
* Copyright (C) 2010 Cloud.com, Inc. All rights reserved.
|
||||
*
|
||||
* This software is licensed under the GNU General Public License v3 or later.
|
||||
*
|
||||
* It is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or any later version.
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
package com.cloud.api.response;
|
||||
|
||||
import com.cloud.api.ApiConstants;
|
||||
import com.cloud.serializer.Param;
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
|
||||
public class IpForwardingRuleResponse extends BaseResponse {
|
||||
@SerializedName(ApiConstants.ID) @Param(description="the ID of the port forwarding rule")
|
||||
private Long id;
|
||||
|
||||
@SerializedName(ApiConstants.PRIVATE_PORT) @Param(description="the private port for the port forwarding rule")
|
||||
private String privatePort;
|
||||
|
||||
@SerializedName(ApiConstants.PROTOCOL) @Param(description="the protocol of the port forwarding rule")
|
||||
private String protocol;
|
||||
|
||||
@SerializedName(ApiConstants.PUBLIC_PORT) @Param(description="the public port for the port forwarding rule")
|
||||
private String publicPort;
|
||||
|
||||
@SerializedName(ApiConstants.VIRTUAL_MACHINE_ID) @Param(description="the VM ID for the port forwarding rule")
|
||||
private Long virtualMachineId;
|
||||
|
||||
@SerializedName("virtualmachinename") @Param(description="the VM name for the port forwarding rule")
|
||||
private String virtualMachineName;
|
||||
|
||||
@SerializedName("virtualmachinedisplayname") @Param(description="the VM display name for the port forwarding rule")
|
||||
private String virtualMachineDisplayName;
|
||||
|
||||
@SerializedName("publicipaddress") @Param(description="the public ip address for the port forwarding rule")
|
||||
private String publicIpAddress;
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getPrivatePort() {
|
||||
return privatePort;
|
||||
}
|
||||
|
||||
public void setPrivatePort(String privatePort) {
|
||||
this.privatePort = privatePort;
|
||||
}
|
||||
|
||||
public String getProtocol() {
|
||||
return protocol;
|
||||
}
|
||||
|
||||
public void setProtocol(String protocol) {
|
||||
this.protocol = protocol;
|
||||
}
|
||||
|
||||
public String getPublicPort() {
|
||||
return publicPort;
|
||||
}
|
||||
|
||||
public void setPublicPort(String publicPort) {
|
||||
this.publicPort = publicPort;
|
||||
}
|
||||
|
||||
public Long getVirtualMachineId() {
|
||||
return virtualMachineId;
|
||||
}
|
||||
|
||||
public void setVirtualMachineId(Long virtualMachineId) {
|
||||
this.virtualMachineId = virtualMachineId;
|
||||
}
|
||||
|
||||
public String getVirtualMachineName() {
|
||||
return virtualMachineName;
|
||||
}
|
||||
|
||||
public void setVirtualMachineName(String virtualMachineName) {
|
||||
this.virtualMachineName = virtualMachineName;
|
||||
}
|
||||
|
||||
public String getVirtualMachineDisplayName() {
|
||||
return virtualMachineDisplayName;
|
||||
}
|
||||
|
||||
public void setVirtualMachineDisplayName(String virtualMachineDisplayName) {
|
||||
this.virtualMachineDisplayName = virtualMachineDisplayName;
|
||||
}
|
||||
|
||||
public String getPublicIpAddress() {
|
||||
return publicIpAddress;
|
||||
}
|
||||
|
||||
public void setPublicIpAddress(String publicIpAddress) {
|
||||
this.publicIpAddress = publicIpAddress;
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user