mirror of
https://github.com/apache/cloudstack.git
synced 2025-11-03 04:12:31 +01:00
Bug 12777 - Add storage network configuration into CloudStack
polish API per Alena's review
This commit is contained in:
parent
391f3e8b30
commit
5ea56cdfeb
@ -28,7 +28,7 @@ public class CreateStorageNetworkIpRangeCmd extends BaseAsyncCmd {
|
|||||||
//////////////// API parameters /////////////////////
|
//////////////// API parameters /////////////////////
|
||||||
/////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////
|
||||||
@IdentityMapper(entityTableName="host_pod_ref")
|
@IdentityMapper(entityTableName="host_pod_ref")
|
||||||
@Parameter(name=ApiConstants.POD_ID, type=CommandType.LONG, description="UUID of pod where the ip range belongs to")
|
@Parameter(name=ApiConstants.POD_ID, type=CommandType.LONG, required=true, description="UUID of pod where the ip range belongs to")
|
||||||
private Long podId;
|
private Long podId;
|
||||||
|
|
||||||
@Parameter(name=ApiConstants.START_IP, type=CommandType.STRING, required=true, description="the beginning IP address")
|
@Parameter(name=ApiConstants.START_IP, type=CommandType.STRING, required=true, description="the beginning IP address")
|
||||||
@ -37,12 +37,8 @@ public class CreateStorageNetworkIpRangeCmd extends BaseAsyncCmd {
|
|||||||
@Parameter(name=ApiConstants.END_IP, type=CommandType.STRING, description="the ending IP address")
|
@Parameter(name=ApiConstants.END_IP, type=CommandType.STRING, description="the ending IP address")
|
||||||
private String endIp;
|
private String endIp;
|
||||||
|
|
||||||
@Parameter(name=ApiConstants.VLAN, type=CommandType.INTEGER, description="Optional. the vlan the ip range sits on")
|
@Parameter(name = ApiConstants.VLAN, type = CommandType.INTEGER, description = "Optional. The vlan the ip range sits on, default to Null when it is not specificed which means you network is not on any Vlan. This is mainly for Vmware as other hypervisors can directly reterive bridge from pyhsical network traffic type table")
|
||||||
private Integer vlan;
|
private Integer vlan;
|
||||||
|
|
||||||
@IdentityMapper(entityTableName="data_center")
|
|
||||||
@Parameter(name=ApiConstants.ZONE_ID, type=CommandType.LONG, description="The uuid of zone")
|
|
||||||
private Long zoneId;
|
|
||||||
|
|
||||||
@Parameter(name=ApiConstants.NETMASK, type=CommandType.STRING, required=true, description="the netmask for storage network")
|
@Parameter(name=ApiConstants.NETMASK, type=CommandType.STRING, required=true, description="the netmask for storage network")
|
||||||
private String netmask;
|
private String netmask;
|
||||||
@ -66,11 +62,7 @@ public class CreateStorageNetworkIpRangeCmd extends BaseAsyncCmd {
|
|||||||
public Integer getVlan() {
|
public Integer getVlan() {
|
||||||
return vlan;
|
return vlan;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Long getZoneId() {
|
|
||||||
return zoneId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getNetmask() {
|
public String getNetmask() {
|
||||||
return netmask;
|
return netmask;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -49,6 +49,7 @@ public class ListTrafficTypeImplementorsCmd extends BaseListCmd {
|
|||||||
TrafficTypeImplementorResponse p = new TrafficTypeImplementorResponse();
|
TrafficTypeImplementorResponse p = new TrafficTypeImplementorResponse();
|
||||||
p.setTrafficType(r.first().toString());
|
p.setTrafficType(r.first().toString());
|
||||||
p.setImplementor(r.second());
|
p.setImplementor(r.second());
|
||||||
|
p.setObjectName("traffictypeimplementorresponse");
|
||||||
responses.add(p);
|
responses.add(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -19,7 +19,7 @@ import com.cloud.exception.ResourceAllocationException;
|
|||||||
import com.cloud.exception.ResourceUnavailableException;
|
import com.cloud.exception.ResourceUnavailableException;
|
||||||
import com.cloud.user.Account;
|
import com.cloud.user.Account;
|
||||||
|
|
||||||
@Implementation(description="Creates a Storage network IP range.", responseObject=UpdateStorageNetworkIpRangeCmd.class)
|
@Implementation(description="Update a Storage network IP range, only allowed when no IPs in this range have been allocated.", responseObject=UpdateStorageNetworkIpRangeCmd.class)
|
||||||
public class UpdateStorageNetworkIpRangeCmd extends BaseAsyncCmd {
|
public class UpdateStorageNetworkIpRangeCmd extends BaseAsyncCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(UpdateStorageNetworkIpRangeCmd.class);
|
public static final Logger s_logger = Logger.getLogger(UpdateStorageNetworkIpRangeCmd.class);
|
||||||
private static final String s_name = "updatestoragenetworkiprangeresponse";
|
private static final String s_name = "updatestoragenetworkiprangeresponse";
|
||||||
@ -28,7 +28,7 @@ public class UpdateStorageNetworkIpRangeCmd extends BaseAsyncCmd {
|
|||||||
//////////////// API parameters /////////////////////
|
//////////////// API parameters /////////////////////
|
||||||
/////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////
|
||||||
@IdentityMapper(entityTableName="dc_storage_network_ip_range")
|
@IdentityMapper(entityTableName="dc_storage_network_ip_range")
|
||||||
@Parameter(name=ApiConstants.ID, type=CommandType.LONG, description="UUID of storage network ip range")
|
@Parameter(name=ApiConstants.ID, type=CommandType.LONG, required=true, description="UUID of storage network ip range")
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
@Parameter(name=ApiConstants.START_IP, type=CommandType.STRING, description="the beginning IP address")
|
@Parameter(name=ApiConstants.START_IP, type=CommandType.STRING, description="the beginning IP address")
|
||||||
|
|||||||
@ -3246,6 +3246,7 @@ public class ApiResponseHelper implements ResponseGenerator {
|
|||||||
response.setPodUuid(result.getPodUuid());
|
response.setPodUuid(result.getPodUuid());
|
||||||
response.setZoneUuid(result.getZoneUuid());
|
response.setZoneUuid(result.getZoneUuid());
|
||||||
response.setNetworkUuid(result.getNetworkUuid());
|
response.setNetworkUuid(result.getNetworkUuid());
|
||||||
|
response.setObjectName("storagenetworkiprange");
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -185,7 +185,6 @@ public class StorageNetworkManagerImpl implements StorageNetworkManager, Storage
|
|||||||
@Override
|
@Override
|
||||||
@DB
|
@DB
|
||||||
public StorageNetworkIpRange createIpRange(CreateStorageNetworkIpRangeCmd cmd) throws SQLException {
|
public StorageNetworkIpRange createIpRange(CreateStorageNetworkIpRangeCmd cmd) throws SQLException {
|
||||||
Long zoneId = cmd.getZoneId();
|
|
||||||
Long podId = cmd.getPodId();
|
Long podId = cmd.getPodId();
|
||||||
String startIp = cmd.getStartIp();
|
String startIp = cmd.getStartIp();
|
||||||
String endIp = cmd.getEndIp();
|
String endIp = cmd.getEndIp();
|
||||||
@ -200,6 +199,12 @@ public class StorageNetworkManagerImpl implements StorageNetworkManager, Storage
|
|||||||
throw new CloudRuntimeException("Invalid netmask:" + netmask);
|
throw new CloudRuntimeException("Invalid netmask:" + netmask);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HostPodVO pod = _podDao.findById(podId);
|
||||||
|
if (pod == null) {
|
||||||
|
throw new CloudRuntimeException("Cannot find pod " + podId);
|
||||||
|
}
|
||||||
|
Long zoneId = pod.getDataCenterId();
|
||||||
|
|
||||||
List<NetworkVO> nws = _networkDao.listByZoneAndTrafficType(zoneId, TrafficType.Storage);
|
List<NetworkVO> nws = _networkDao.listByZoneAndTrafficType(zoneId, TrafficType.Storage);
|
||||||
if (nws.size() == 0) {
|
if (nws.size() == 0) {
|
||||||
throw new CloudRuntimeException("Cannot find storage network in zone " + zoneId);
|
throw new CloudRuntimeException("Cannot find storage network in zone " + zoneId);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user