mirror of https://github.com/apache/cloudstack.git
1) Created ApiResponseHelper class - all api response objects should be built there.
2) Removed isMirrored tag from the update/create/listDiskOffering commands
This commit is contained in:
parent
b0ab0df4fe
commit
5d4e4be974
|
|
@ -0,0 +1,188 @@
|
|||
/**
|
||||
* 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;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import com.cloud.api.response.AccountResponse;
|
||||
import com.cloud.api.response.DiskOfferingResponse;
|
||||
import com.cloud.api.response.DomainResponse;
|
||||
import com.cloud.api.response.ResourceLimitResponse;
|
||||
import com.cloud.api.response.UserResponse;
|
||||
import com.cloud.configuration.ResourceCount.ResourceType;
|
||||
import com.cloud.configuration.ResourceLimitVO;
|
||||
import com.cloud.domain.DomainVO;
|
||||
import com.cloud.server.Criteria;
|
||||
import com.cloud.storage.DiskOfferingVO;
|
||||
import com.cloud.user.Account;
|
||||
import com.cloud.user.UserAccount;
|
||||
import com.cloud.user.UserStatisticsVO;
|
||||
import com.cloud.uservm.UserVm;
|
||||
import com.cloud.vm.State;
|
||||
|
||||
public class ApiResponseHelper {
|
||||
|
||||
public static UserResponse createUserResponse (UserAccount user) {
|
||||
UserResponse userResponse = new UserResponse();
|
||||
|
||||
userResponse.setAccountName(user.getAccountName());
|
||||
userResponse.setAccountType(user.getType());
|
||||
userResponse.setCreated(user.getCreated());
|
||||
userResponse.setDomainId(user.getDomainId());
|
||||
userResponse.setDomainName(ApiDBUtils.findDomainById(user.getDomainId()).getName());
|
||||
userResponse.setEmail(user.getEmail());
|
||||
userResponse.setFirstname(user.getFirstname());
|
||||
userResponse.setId(user.getId());
|
||||
userResponse.setLastname(user.getLastname());
|
||||
userResponse.setState(user.getState());
|
||||
userResponse.setTimezone(user.getTimezone());
|
||||
userResponse.setUsername(user.getUsername());
|
||||
userResponse.setApiKey(user.getApiKey());
|
||||
userResponse.setSecretKey(user.getSecretKey());
|
||||
|
||||
return userResponse;
|
||||
}
|
||||
|
||||
public static AccountResponse createAccountResponse (Account account) {
|
||||
|
||||
boolean accountIsAdmin = (account.getType() == Account.ACCOUNT_TYPE_ADMIN);
|
||||
AccountResponse accountResponse = new AccountResponse();
|
||||
accountResponse.setId(account.getId());
|
||||
accountResponse.setName(account.getAccountName());
|
||||
accountResponse.setAccountType(account.getType());
|
||||
accountResponse.setDomainId(account.getDomainId());
|
||||
accountResponse.setDomainName(ApiDBUtils.findDomainById(account.getDomainId()).getName());
|
||||
|
||||
//get network stat
|
||||
List<UserStatisticsVO> stats = ApiDBUtils.listUserStatsBy(account.getId());
|
||||
if (stats == null) {
|
||||
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Internal error searching for user stats");
|
||||
}
|
||||
|
||||
long bytesSent = 0;
|
||||
long bytesReceived = 0;
|
||||
for (UserStatisticsVO stat : stats) {
|
||||
long rx = stat.getNetBytesReceived() + stat.getCurrentBytesReceived();
|
||||
long tx = stat.getNetBytesSent() + stat.getCurrentBytesSent();
|
||||
bytesReceived = bytesReceived + Long.valueOf(rx);
|
||||
bytesSent = bytesSent + Long.valueOf(tx);
|
||||
}
|
||||
accountResponse.setBytesReceived(bytesReceived);
|
||||
accountResponse.setBytesSent(bytesSent);
|
||||
|
||||
// Get resource limits and counts
|
||||
|
||||
long vmLimit = ApiDBUtils.findCorrectResourceLimit(ResourceType.user_vm, account.getId());
|
||||
String vmLimitDisplay = (accountIsAdmin || vmLimit == -1) ? "Unlimited" : String.valueOf(vmLimit);
|
||||
long vmTotal = ApiDBUtils.getResourceCount(ResourceType.user_vm, account.getId());
|
||||
String vmAvail = (accountIsAdmin || vmLimit == -1) ? "Unlimited" : String.valueOf(vmLimit - vmTotal);
|
||||
accountResponse.setVmLimit(vmLimitDisplay);
|
||||
accountResponse.setVmTotal(vmTotal);
|
||||
accountResponse.setVmAvailable(vmAvail);
|
||||
|
||||
long ipLimit = ApiDBUtils.findCorrectResourceLimit(ResourceType.public_ip, account.getId());
|
||||
String ipLimitDisplay = (accountIsAdmin || ipLimit == -1) ? "Unlimited" : String.valueOf(ipLimit);
|
||||
long ipTotal = ApiDBUtils.getResourceCount(ResourceType.public_ip, account.getId());
|
||||
String ipAvail = (accountIsAdmin || ipLimit == -1) ? "Unlimited" : String.valueOf(ipLimit - ipTotal);
|
||||
accountResponse.setIpLimit(ipLimitDisplay);
|
||||
accountResponse.setIpTotal(ipTotal);
|
||||
accountResponse.setIpAvailable(ipAvail);
|
||||
|
||||
long volumeLimit = ApiDBUtils.findCorrectResourceLimit(ResourceType.volume, account.getId());
|
||||
String volumeLimitDisplay = (accountIsAdmin || volumeLimit == -1) ? "Unlimited" : String.valueOf(volumeLimit);
|
||||
long volumeTotal = ApiDBUtils.getResourceCount(ResourceType.volume, account.getId());
|
||||
String volumeAvail = (accountIsAdmin || volumeLimit == -1) ? "Unlimited" : String.valueOf(volumeLimit - volumeTotal);
|
||||
accountResponse.setVolumeLimit(volumeLimitDisplay);
|
||||
accountResponse.setVolumeTotal(volumeTotal);
|
||||
accountResponse.setVolumeAvailable(volumeAvail);
|
||||
|
||||
long snapshotLimit = ApiDBUtils.findCorrectResourceLimit(ResourceType.snapshot, account.getId());
|
||||
String snapshotLimitDisplay = (accountIsAdmin || snapshotLimit == -1) ? "Unlimited" : String.valueOf(snapshotLimit);
|
||||
long snapshotTotal = ApiDBUtils.getResourceCount(ResourceType.snapshot, account.getId());
|
||||
String snapshotAvail = (accountIsAdmin || snapshotLimit == -1) ? "Unlimited" : String.valueOf(snapshotLimit - snapshotTotal);
|
||||
accountResponse.setSnapshotLimit(snapshotLimitDisplay);
|
||||
accountResponse.setSnapshotTotal(snapshotTotal);
|
||||
accountResponse.setSnapshotAvailable(snapshotAvail);
|
||||
|
||||
long templateLimit = ApiDBUtils.findCorrectResourceLimit(ResourceType.template, account.getId());
|
||||
String templateLimitDisplay = (accountIsAdmin || templateLimit == -1) ? "Unlimited" : String.valueOf(templateLimit);
|
||||
long templateTotal = ApiDBUtils.getResourceCount(ResourceType.template, account.getId());
|
||||
String templateAvail = (accountIsAdmin || templateLimit == -1) ? "Unlimited" : String.valueOf(templateLimit - templateTotal);
|
||||
accountResponse.setTemplateLimit(templateLimitDisplay);
|
||||
accountResponse.setTemplateTotal(templateTotal);
|
||||
accountResponse.setTemplateAvailable(templateAvail);
|
||||
|
||||
// Get stopped and running VMs
|
||||
int vmStopped = 0;
|
||||
int vmRunning = 0;
|
||||
|
||||
Long[] accountIds = new Long[1];
|
||||
accountIds[0] = account.getId();
|
||||
|
||||
Criteria c1 = new Criteria();
|
||||
c1.addCriteria(Criteria.ACCOUNTID, accountIds);
|
||||
List<? extends UserVm> virtualMachines = ApiDBUtils.searchForUserVMs(c1);
|
||||
|
||||
//get Running/Stopped VMs
|
||||
for (Iterator<? extends UserVm> iter = virtualMachines.iterator(); iter.hasNext();) {
|
||||
// count how many stopped/running vms we have
|
||||
UserVm vm = iter.next();
|
||||
|
||||
if (vm.getState() == State.Stopped) {
|
||||
vmStopped++;
|
||||
} else if (vm.getState() == State.Running) {
|
||||
vmRunning++;
|
||||
}
|
||||
}
|
||||
|
||||
accountResponse.setVmStopped(vmStopped);
|
||||
accountResponse.setVmRunning(vmRunning);
|
||||
|
||||
return accountResponse;
|
||||
}
|
||||
|
||||
public static DomainResponse createDomainResponse (DomainVO domain) {
|
||||
DomainResponse domainResponse = new DomainResponse();
|
||||
domainResponse.setDomainName(domain.getName());
|
||||
domainResponse.setId(domain.getId());
|
||||
domainResponse.setLevel(domain.getLevel());
|
||||
domainResponse.setParentDomainId(domain.getParent());
|
||||
if (domain.getParent() != null) {
|
||||
domainResponse.setParentDomainName(ApiDBUtils.findDomainById(domain.getParent()).getName());
|
||||
}
|
||||
return domainResponse;
|
||||
}
|
||||
|
||||
public static DiskOfferingResponse createDiskOfferingResponse (DiskOfferingVO offering) {
|
||||
DiskOfferingResponse diskOfferingResponse = new DiskOfferingResponse();
|
||||
diskOfferingResponse.setId(offering.getId());
|
||||
diskOfferingResponse.setName(offering.getName());
|
||||
diskOfferingResponse.setDisplayText(offering.getDisplayText());
|
||||
diskOfferingResponse.setCreated(offering.getCreated());
|
||||
diskOfferingResponse.setDiskSize(offering.getDiskSize());
|
||||
if(offering.getDomainId() != null){
|
||||
diskOfferingResponse.setDomain(ApiDBUtils.findDomainById(offering.getDomainId()).getName());
|
||||
diskOfferingResponse.setDomainId(offering.getDomainId());
|
||||
}
|
||||
diskOfferingResponse.setTags(offering.getTags());
|
||||
|
||||
return diskOfferingResponse;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -20,7 +20,7 @@ package com.cloud.api.commands;
|
|||
import org.apache.log4j.Logger;
|
||||
|
||||
import com.cloud.api.ApiConstants;
|
||||
import com.cloud.api.ApiDBUtils;
|
||||
import com.cloud.api.ApiResponseHelper;
|
||||
import com.cloud.api.BaseCmd;
|
||||
import com.cloud.api.Implementation;
|
||||
import com.cloud.api.Parameter;
|
||||
|
|
@ -89,23 +89,13 @@ public class CreateDiskOfferingCmd extends BaseCmd {
|
|||
|
||||
@Override @SuppressWarnings("unchecked")
|
||||
public DiskOfferingResponse getResponse() {
|
||||
DiskOfferingResponse response = new DiskOfferingResponse();
|
||||
DiskOfferingVO responseObject = (DiskOfferingVO)getResponseObject();
|
||||
if (responseObject != null) {
|
||||
response.setId(responseObject.getId());
|
||||
response.setCreated(responseObject.getCreated());
|
||||
response.setDiskSize(responseObject.getDiskSizeInBytes());
|
||||
response.setDisplayText(responseObject.getDisplayText());
|
||||
response.setDomainId(responseObject.getDomainId());
|
||||
response.setDomain(ApiDBUtils.findDomainById(responseObject.getDomainId()).getName());
|
||||
response.setName(responseObject.getName());
|
||||
response.setTags(responseObject.getTags());
|
||||
response.setMirrored(responseObject.isMirrored());
|
||||
DiskOfferingVO offering = (DiskOfferingVO)getResponseObject();
|
||||
if (offering != null) {
|
||||
DiskOfferingResponse response = ApiResponseHelper.createDiskOfferingResponse(offering);
|
||||
response.setResponseName(getName());
|
||||
return response;
|
||||
} else {
|
||||
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to create disk offering");
|
||||
}
|
||||
|
||||
response.setResponseName(getName());
|
||||
return response;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,13 +23,12 @@ import java.util.List;
|
|||
import org.apache.log4j.Logger;
|
||||
|
||||
import com.cloud.api.ApiConstants;
|
||||
import com.cloud.api.ApiDBUtils;
|
||||
import com.cloud.api.ApiResponseHelper;
|
||||
import com.cloud.api.BaseListCmd;
|
||||
import com.cloud.api.Implementation;
|
||||
import com.cloud.api.Parameter;
|
||||
import com.cloud.api.response.DiskOfferingResponse;
|
||||
import com.cloud.api.response.ListResponse;
|
||||
import com.cloud.domain.DomainVO;
|
||||
import com.cloud.storage.DiskOfferingVO;
|
||||
|
||||
@Implementation(method="searchForDiskOfferings", description="Lists all available disk offerings.")
|
||||
|
|
@ -83,17 +82,7 @@ public class ListDiskOfferingsCmd extends BaseListCmd {
|
|||
ListResponse<DiskOfferingResponse> response = new ListResponse<DiskOfferingResponse>();
|
||||
List<DiskOfferingResponse> diskOfferingResponses = new ArrayList<DiskOfferingResponse>();
|
||||
for (DiskOfferingVO offering : offerings) {
|
||||
DiskOfferingResponse diskOffResp = new DiskOfferingResponse();
|
||||
diskOffResp.setCreated(offering.getCreated());
|
||||
diskOffResp.setDiskSize(offering.getDiskSizeInBytes());
|
||||
diskOffResp.setDisplayText(offering.getDisplayText());
|
||||
diskOffResp.setDomainId(offering.getDomainId());
|
||||
diskOffResp.setId(offering.getId());
|
||||
diskOffResp.setName(offering.getName());
|
||||
diskOffResp.setTags(offering.getTags());
|
||||
DomainVO domain = ApiDBUtils.findDomainById(offering.getDomainId());
|
||||
diskOffResp.setDomain(domain.getName());
|
||||
|
||||
DiskOfferingResponse diskOffResp = ApiResponseHelper.createDiskOfferingResponse(offering);
|
||||
diskOffResp.setResponseName("diskoffering");
|
||||
diskOfferingResponses.add(diskOffResp);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,17 +20,12 @@ package com.cloud.api.commands;
|
|||
import org.apache.log4j.Logger;
|
||||
|
||||
import com.cloud.api.ApiConstants;
|
||||
import com.cloud.api.ApiDBUtils;
|
||||
import com.cloud.api.ApiResponseHelper;
|
||||
import com.cloud.api.BaseCmd;
|
||||
import com.cloud.api.Implementation;
|
||||
import com.cloud.api.Parameter;
|
||||
import com.cloud.api.ServerApiException;
|
||||
import com.cloud.api.response.DiskOfferingResponse;
|
||||
import com.cloud.api.response.ServiceOfferingResponse;
|
||||
import com.cloud.api.response.SuccessResponse;
|
||||
import com.cloud.configuration.ConfigurationManager;
|
||||
import com.cloud.offering.NetworkOffering.GuestIpType;
|
||||
import com.cloud.service.ServiceOfferingVO;
|
||||
import com.cloud.storage.DiskOfferingVO;
|
||||
|
||||
@Implementation(method="updateDiskOffering", manager=ConfigurationManager.class, description="Updates a disk offering.")
|
||||
|
|
@ -83,37 +78,10 @@ public class UpdateDiskOfferingCmd extends BaseCmd{
|
|||
return s_name;
|
||||
}
|
||||
|
||||
// @SuppressWarnings("unchecked")
|
||||
// public SuccessResponse getResponse() {
|
||||
// SuccessResponse response = new SuccessResponse();
|
||||
// DiskOfferingVO responseObject = (DiskOfferingVO)getResponseObject();
|
||||
// if (responseObject != null) {
|
||||
// response.setSuccess(Boolean.TRUE);
|
||||
// } else {
|
||||
// throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to update disk offering");
|
||||
// }
|
||||
//
|
||||
// response.setResponseName(getName());
|
||||
// return response;
|
||||
// }
|
||||
//
|
||||
@Override @SuppressWarnings("unchecked")
|
||||
public DiskOfferingResponse getResponse() {
|
||||
DiskOfferingVO offering = (DiskOfferingVO) getResponseObject();
|
||||
|
||||
DiskOfferingResponse response = new DiskOfferingResponse();
|
||||
response.setId(offering.getId());
|
||||
response.setName(offering.getName());
|
||||
response.setDisplayText(offering.getDisplayText());
|
||||
response.setTags(offering.getTags());
|
||||
response.setCreated(offering.getCreated());
|
||||
response.setDiskSize(offering.getDiskSize());
|
||||
if(offering.getDomainId() != null){
|
||||
response.setDomain(ApiDBUtils.findDomainById(offering.getDomainId()).getName());
|
||||
response.setDomainId(offering.getDomainId());
|
||||
}
|
||||
response.setMirrored(offering.isMirrored());
|
||||
response.setTags(offering.getTags());
|
||||
DiskOfferingResponse response = ApiResponseHelper.createDiskOfferingResponse(offering);
|
||||
response.setResponseName(getName());
|
||||
return response;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue