mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
Refactoring to remove duplicate code. (#3152)
Make use of Java 8 default implementation in interfaces, to remove code duplication between XxxCmd and XxxCmdAsAdmin. Refactor checkFormat by pre-calculating the supported extensions. Also make use of this in ImageStoreUtil. Makes it easier to add new file and compression formats.
This commit is contained in:
parent
e3d70b7dcc
commit
7a27e35a61
@ -26,8 +26,6 @@ import org.apache.cloudstack.api.InternalIdentity;
|
|||||||
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
||||||
import com.cloud.storage.Storage.ImageFormat;
|
import com.cloud.storage.Storage.ImageFormat;
|
||||||
import com.cloud.storage.Storage.TemplateType;
|
import com.cloud.storage.Storage.TemplateType;
|
||||||
import com.cloud.storage.Volume.Event;
|
|
||||||
import com.cloud.storage.Volume.State;
|
|
||||||
import com.cloud.utils.fsm.StateMachine2;
|
import com.cloud.utils.fsm.StateMachine2;
|
||||||
import com.cloud.utils.fsm.StateObject;
|
import com.cloud.utils.fsm.StateObject;
|
||||||
|
|
||||||
|
|||||||
@ -16,34 +16,14 @@
|
|||||||
// under the License.
|
// under the License.
|
||||||
package org.apache.cloudstack.api;
|
package org.apache.cloudstack.api;
|
||||||
|
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import com.cloud.exception.InvalidParameterValueException;
|
|
||||||
|
|
||||||
public abstract class BaseListTaggedResourcesCmd extends BaseListProjectAndAccountResourcesCmd implements IBaseListTaggedResourcesCmd {
|
public abstract class BaseListTaggedResourcesCmd extends BaseListProjectAndAccountResourcesCmd implements IBaseListTaggedResourcesCmd {
|
||||||
@Parameter(name = ApiConstants.TAGS, type = CommandType.MAP, description = "List resources by tags (key/value pairs)")
|
@Parameter(name = ApiConstants.TAGS, type = CommandType.MAP, description = "List resources by tags (key/value pairs)")
|
||||||
private Map tags;
|
private Map tags;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, String> getTags() {
|
public Map<String, String> getTags() {
|
||||||
Map<String, String> tagsMap = null;
|
return TaggedResources.parseKeyValueMap(tags, false);
|
||||||
if (tags != null && !tags.isEmpty()) {
|
|
||||||
tagsMap = new HashMap<String, String>();
|
|
||||||
Collection<?> servicesCollection = tags.values();
|
|
||||||
Iterator<?> iter = servicesCollection.iterator();
|
|
||||||
while (iter.hasNext()) {
|
|
||||||
HashMap<String, String> services = (HashMap<String, String>)iter.next();
|
|
||||||
String key = services.get("key");
|
|
||||||
String value = services.get("value");
|
|
||||||
if (value == null) {
|
|
||||||
throw new InvalidParameterValueException("No value is passed in for key " + key);
|
|
||||||
}
|
|
||||||
tagsMap.put(key, value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return tagsMap;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -21,16 +21,16 @@ import java.util.List;
|
|||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
|
import org.apache.cloudstack.api.command.ResponseViewProvider;
|
||||||
import org.apache.cloudstack.api.response.TemplatePermissionsResponse;
|
import org.apache.cloudstack.api.response.TemplatePermissionsResponse;
|
||||||
|
|
||||||
import com.cloud.template.VirtualMachineTemplate;
|
import com.cloud.template.VirtualMachineTemplate;
|
||||||
import com.cloud.user.Account;
|
import com.cloud.user.Account;
|
||||||
|
|
||||||
public abstract class BaseListTemplateOrIsoPermissionsCmd extends BaseCmd {
|
public abstract class BaseListTemplateOrIsoPermissionsCmd extends BaseCmd implements ResponseViewProvider {
|
||||||
public Logger logger = getLogger();
|
public Logger logger = getLogger();
|
||||||
protected static final String s_name = "listtemplatepermissionsresponse";
|
protected static final String s_name = "listtemplatepermissionsresponse";
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////
|
||||||
//////////////// API parameters /////////////////////
|
//////////////// API parameters /////////////////////
|
||||||
/////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////
|
||||||
@ -76,6 +76,10 @@ public abstract class BaseListTemplateOrIsoPermissionsCmd extends BaseCmd {
|
|||||||
return "templateOrIso";
|
return "templateOrIso";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute() {
|
||||||
|
executeWithView(getResponseView());
|
||||||
|
}
|
||||||
|
|
||||||
protected void executeWithView(ResponseView view) {
|
protected void executeWithView(ResponseView view) {
|
||||||
List<String> accountNames = _templateService.listTemplatePermissions(this);
|
List<String> accountNames = _templateService.listTemplatePermissions(this);
|
||||||
|
|||||||
@ -0,0 +1,72 @@
|
|||||||
|
// 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;
|
||||||
|
|
||||||
|
import static java.util.stream.Collectors.groupingBy;
|
||||||
|
import static java.util.stream.Collectors.mapping;
|
||||||
|
import static java.util.stream.Collectors.toList;
|
||||||
|
import static java.util.stream.Collectors.toMap;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.function.Function;
|
||||||
|
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
|
import org.apache.commons.collections.MapUtils;
|
||||||
|
|
||||||
|
import com.cloud.exception.InvalidParameterValueException;
|
||||||
|
|
||||||
|
public abstract class TaggedResources {
|
||||||
|
@Nullable
|
||||||
|
public static Map<String, String> parseKeyValueMap(Map map, boolean allowNullValues) {
|
||||||
|
Map<String, String> result = null;
|
||||||
|
if (MapUtils.isNotEmpty(map)) {
|
||||||
|
Map<Integer, Map<String, String>> typedMap = map;
|
||||||
|
result = typedMap.values()
|
||||||
|
.stream()
|
||||||
|
.collect(toMap(
|
||||||
|
t -> t.get("key"),
|
||||||
|
t -> getValue(t, allowNullValues)
|
||||||
|
));
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
public static Map<String, List<String>> groupBy(Map map, String keyField, String valueField) {
|
||||||
|
Map<String, List<String>> result = null;
|
||||||
|
if (MapUtils.isNotEmpty(map)) {
|
||||||
|
final Function<Map<String, String>, String> key = entry -> entry.get(keyField);
|
||||||
|
final Function<Map<String, String>, String> value = entry -> entry.get(valueField);
|
||||||
|
Map<Integer, Map<String, String>> typedMap = (Map<Integer, Map<String, String>>) map;
|
||||||
|
result = typedMap.values()
|
||||||
|
.stream()
|
||||||
|
.collect(groupingBy(key, mapping(value, toList())));
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String getValue(Map<String, String> tagEntry, boolean allowNullValues) {
|
||||||
|
String value = tagEntry.get("value");
|
||||||
|
if (value == null && !allowNullValues) {
|
||||||
|
throw new InvalidParameterValueException("No value is passed in for key " + tagEntry.get("key"));
|
||||||
|
}
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,26 @@
|
|||||||
|
///
|
||||||
|
// 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;
|
||||||
|
|
||||||
|
import org.apache.cloudstack.api.ResponseObject;
|
||||||
|
|
||||||
|
public interface ResponseViewProvider {
|
||||||
|
ResponseObject.ResponseView getResponseView();
|
||||||
|
}
|
||||||
@ -0,0 +1,29 @@
|
|||||||
|
///
|
||||||
|
// 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.admin;
|
||||||
|
|
||||||
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
|
import org.apache.cloudstack.api.command.user.UserCmd;
|
||||||
|
|
||||||
|
public interface AdminCmd extends UserCmd {
|
||||||
|
default ResponseView getResponseView() {
|
||||||
|
return ResponseView.Full;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -19,48 +19,13 @@ package org.apache.cloudstack.api.command.admin.address;
|
|||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ApiErrorCode;
|
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.command.admin.AdminCmd;
|
||||||
import org.apache.cloudstack.api.command.user.address.AssociateIPAddrCmd;
|
import org.apache.cloudstack.api.command.user.address.AssociateIPAddrCmd;
|
||||||
import org.apache.cloudstack.api.response.IPAddressResponse;
|
import org.apache.cloudstack.api.response.IPAddressResponse;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
|
||||||
|
|
||||||
import com.cloud.exception.ConcurrentOperationException;
|
|
||||||
import com.cloud.exception.InsufficientCapacityException;
|
|
||||||
import com.cloud.exception.ResourceAllocationException;
|
|
||||||
import com.cloud.exception.ResourceUnavailableException;
|
|
||||||
import com.cloud.network.IpAddress;
|
|
||||||
|
|
||||||
@APICommand(name = "associateIpAddress", description = "Acquires and associates a public IP to an account.", responseObject = IPAddressResponse.class, responseView = ResponseView.Full,
|
@APICommand(name = "associateIpAddress", description = "Acquires and associates a public IP to an account.", responseObject = IPAddressResponse.class, responseView = ResponseView.Full,
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||||
public class AssociateIPAddrCmdByAdmin extends AssociateIPAddrCmd {
|
public class AssociateIPAddrCmdByAdmin extends AssociateIPAddrCmd implements AdminCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(AssociateIPAddrCmdByAdmin.class.getName());
|
public static final Logger s_logger = Logger.getLogger(AssociateIPAddrCmdByAdmin.class.getName());
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute() throws ResourceUnavailableException, ResourceAllocationException,
|
|
||||||
ConcurrentOperationException, InsufficientCapacityException {
|
|
||||||
CallContext.current().setEventDetails("Ip Id: " + getEntityId());
|
|
||||||
|
|
||||||
IpAddress result = null;
|
|
||||||
|
|
||||||
if (getVpcId() != null) {
|
|
||||||
result = _vpcService.associateIPToVpc(getEntityId(), getVpcId());
|
|
||||||
} else if (getNetworkId() != null) {
|
|
||||||
result = _networkService.associateIPToNetwork(getEntityId(), getNetworkId());
|
|
||||||
}
|
|
||||||
|
|
||||||
if (result != null) {
|
|
||||||
IPAddressResponse ipResponse = _responseGenerator.createIPAddressResponse(ResponseView.Full, result);
|
|
||||||
ipResponse.setResponseName(getCommandName());
|
|
||||||
setResponseObject(ipResponse);
|
|
||||||
} else {
|
|
||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to assign ip address");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,39 +16,14 @@
|
|||||||
// under the License.
|
// under the License.
|
||||||
package org.apache.cloudstack.api.command.admin.address;
|
package org.apache.cloudstack.api.command.admin.address;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
|
import org.apache.cloudstack.api.command.admin.AdminCmd;
|
||||||
import org.apache.cloudstack.api.command.user.address.ListPublicIpAddressesCmd;
|
import org.apache.cloudstack.api.command.user.address.ListPublicIpAddressesCmd;
|
||||||
import org.apache.cloudstack.api.response.IPAddressResponse;
|
import org.apache.cloudstack.api.response.IPAddressResponse;
|
||||||
import org.apache.cloudstack.api.response.ListResponse;
|
|
||||||
|
|
||||||
import com.cloud.network.IpAddress;
|
import com.cloud.network.IpAddress;
|
||||||
import com.cloud.utils.Pair;
|
|
||||||
|
|
||||||
@APICommand(name = "listPublicIpAddresses", description = "Lists all public ip addresses", responseObject = IPAddressResponse.class, responseView = ResponseView.Full,
|
@APICommand(name = "listPublicIpAddresses", description = "Lists all public ip addresses", responseObject = IPAddressResponse.class, responseView = ResponseView.Full,
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false, entityType = {IpAddress.class})
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false, entityType = {IpAddress.class})
|
||||||
public class ListPublicIpAddressesCmdByAdmin extends ListPublicIpAddressesCmd {
|
public class ListPublicIpAddressesCmdByAdmin extends ListPublicIpAddressesCmd implements AdminCmd {}
|
||||||
public static final Logger s_logger = Logger.getLogger(ListPublicIpAddressesCmdByAdmin.class.getName());
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute(){
|
|
||||||
Pair<List<? extends IpAddress>, Integer> result = _mgr.searchForIPAddresses(this);
|
|
||||||
ListResponse<IPAddressResponse> response = new ListResponse<IPAddressResponse>();
|
|
||||||
List<IPAddressResponse> ipAddrResponses = new ArrayList<IPAddressResponse>();
|
|
||||||
for (IpAddress ipAddress : result.first()) {
|
|
||||||
IPAddressResponse ipResponse = _responseGenerator.createIPAddressResponse(ResponseView.Full, ipAddress);
|
|
||||||
ipResponse.setObjectName("publicipaddress");
|
|
||||||
ipAddrResponses.add(ipResponse);
|
|
||||||
}
|
|
||||||
|
|
||||||
response.setResponses(ipAddrResponses, result.second());
|
|
||||||
response.setResponseName(getCommandName());
|
|
||||||
setResponseObject(response);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|||||||
@ -16,23 +16,14 @@
|
|||||||
// under the License.
|
// under the License.
|
||||||
package org.apache.cloudstack.api.command.admin.affinitygroup;
|
package org.apache.cloudstack.api.command.admin.affinitygroup;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.EnumSet;
|
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ApiConstants.VMDetails;
|
|
||||||
import org.apache.cloudstack.api.ApiErrorCode;
|
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.command.admin.AdminCmd;
|
||||||
import org.apache.cloudstack.api.command.user.affinitygroup.UpdateVMAffinityGroupCmd;
|
import org.apache.cloudstack.api.command.user.affinitygroup.UpdateVMAffinityGroupCmd;
|
||||||
import org.apache.cloudstack.api.response.UserVmResponse;
|
import org.apache.cloudstack.api.response.UserVmResponse;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
|
||||||
|
|
||||||
import com.cloud.exception.InsufficientCapacityException;
|
|
||||||
import com.cloud.exception.ResourceUnavailableException;
|
|
||||||
import com.cloud.uservm.UserVm;
|
|
||||||
import com.cloud.vm.VirtualMachine;
|
import com.cloud.vm.VirtualMachine;
|
||||||
|
|
||||||
|
|
||||||
@ -41,27 +32,6 @@ import com.cloud.vm.VirtualMachine;
|
|||||||
entityType = {VirtualMachine.class},
|
entityType = {VirtualMachine.class},
|
||||||
requestHasSensitiveInfo = false,
|
requestHasSensitiveInfo = false,
|
||||||
responseHasSensitiveInfo = true)
|
responseHasSensitiveInfo = true)
|
||||||
public class UpdateVMAffinityGroupCmdByAdmin extends UpdateVMAffinityGroupCmd {
|
public class UpdateVMAffinityGroupCmdByAdmin extends UpdateVMAffinityGroupCmd implements AdminCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(UpdateVMAffinityGroupCmdByAdmin.class.getName());
|
public static final Logger s_logger = Logger.getLogger(UpdateVMAffinityGroupCmdByAdmin.class.getName());
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute() throws ResourceUnavailableException,
|
|
||||||
InsufficientCapacityException, ServerApiException {
|
|
||||||
CallContext.current().setEventDetails("Vm Id: "+getId());
|
|
||||||
UserVm result = _affinityGroupService.updateVMAffinityGroups(getId(), getAffinityGroupIdList());
|
|
||||||
ArrayList<VMDetails> dc = new ArrayList<VMDetails>();
|
|
||||||
dc.add(VMDetails.valueOf("affgrp"));
|
|
||||||
EnumSet<VMDetails> details = EnumSet.copyOf(dc);
|
|
||||||
|
|
||||||
if (result != null){
|
|
||||||
UserVmResponse response = _responseGenerator.createUserVmResponse(ResponseView.Full, "virtualmachine", details, result).get(0);
|
|
||||||
response.setResponseName(getCommandName());
|
|
||||||
setResponseObject(response);
|
|
||||||
} else {
|
|
||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to update vm's affinity groups");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -28,6 +28,7 @@ import org.apache.cloudstack.api.ApiConstants.DomainDetails;
|
|||||||
import org.apache.cloudstack.api.BaseListCmd;
|
import org.apache.cloudstack.api.BaseListCmd;
|
||||||
import org.apache.cloudstack.api.Parameter;
|
import org.apache.cloudstack.api.Parameter;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
|
import org.apache.cloudstack.api.command.user.UserCmd;
|
||||||
import org.apache.cloudstack.api.response.DomainResponse;
|
import org.apache.cloudstack.api.response.DomainResponse;
|
||||||
import org.apache.cloudstack.api.response.ListResponse;
|
import org.apache.cloudstack.api.response.ListResponse;
|
||||||
|
|
||||||
@ -36,7 +37,7 @@ import com.cloud.exception.InvalidParameterValueException;
|
|||||||
|
|
||||||
@APICommand(name = "listDomains", description = "Lists domains and provides detailed information for listed domains", responseObject = DomainResponse.class, responseView = ResponseView.Restricted, entityType = {Domain.class},
|
@APICommand(name = "listDomains", description = "Lists domains and provides detailed information for listed domains", responseObject = DomainResponse.class, responseView = ResponseView.Restricted, entityType = {Domain.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||||
public class ListDomainsCmd extends BaseListCmd {
|
public class ListDomainsCmd extends BaseListCmd implements UserCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(ListDomainsCmd.class.getName());
|
public static final Logger s_logger = Logger.getLogger(ListDomainsCmd.class.getName());
|
||||||
|
|
||||||
private static final String s_name = "listdomainsresponse";
|
private static final String s_name = "listdomainsresponse";
|
||||||
|
|||||||
@ -18,11 +18,11 @@ package org.apache.cloudstack.api.command.admin.domain;
|
|||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
|
import org.apache.cloudstack.api.command.admin.AdminCmd;
|
||||||
import org.apache.cloudstack.api.response.DomainResponse;
|
import org.apache.cloudstack.api.response.DomainResponse;
|
||||||
|
|
||||||
import com.cloud.domain.Domain;
|
import com.cloud.domain.Domain;
|
||||||
|
|
||||||
@APICommand(name = "listDomains", description = "Lists domains and provides detailed information for listed domains", responseObject = DomainResponse.class, responseView = ResponseView.Full, entityType = {Domain.class},
|
@APICommand(name = "listDomains", description = "Lists domains and provides detailed information for listed domains", responseObject = DomainResponse.class, responseView = ResponseView.Full, entityType = {Domain.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||||
public class ListDomainsCmdByAdmin extends ListDomainsCmd {
|
public class ListDomainsCmdByAdmin extends ListDomainsCmd implements AdminCmd {}
|
||||||
}
|
|
||||||
|
|||||||
@ -16,39 +16,12 @@
|
|||||||
// under the License.
|
// under the License.
|
||||||
package org.apache.cloudstack.api.command.admin.iso;
|
package org.apache.cloudstack.api.command.admin.iso;
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ApiErrorCode;
|
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.command.admin.AdminCmd;
|
||||||
import org.apache.cloudstack.api.command.user.iso.AttachIsoCmd;
|
import org.apache.cloudstack.api.command.user.iso.AttachIsoCmd;
|
||||||
import org.apache.cloudstack.api.command.user.vm.DeployVMCmd;
|
|
||||||
import org.apache.cloudstack.api.response.UserVmResponse;
|
import org.apache.cloudstack.api.response.UserVmResponse;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
|
||||||
|
|
||||||
import com.cloud.uservm.UserVm;
|
|
||||||
|
|
||||||
@APICommand(name = "attachIso", description = "Attaches an ISO to a virtual machine.", responseObject = UserVmResponse.class, responseView = ResponseView.Full,
|
@APICommand(name = "attachIso", description = "Attaches an ISO to a virtual machine.", responseObject = UserVmResponse.class, responseView = ResponseView.Full,
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
||||||
public class AttachIsoCmdByAdmin extends AttachIsoCmd {
|
public class AttachIsoCmdByAdmin extends AttachIsoCmd implements AdminCmd { }
|
||||||
public static final Logger s_logger = Logger.getLogger(AttachIsoCmdByAdmin.class.getName());
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute(){
|
|
||||||
CallContext.current().setEventDetails("Vm Id: " +getVirtualMachineId()+ " ISO Id: "+getId());
|
|
||||||
boolean result = _templateService.attachIso(id, virtualMachineId);
|
|
||||||
if (result) {
|
|
||||||
UserVm userVm = _responseGenerator.findUserVmById(virtualMachineId);
|
|
||||||
if (userVm != null) {
|
|
||||||
UserVmResponse response = _responseGenerator.createUserVmResponse(ResponseView.Full, "virtualmachine", userVm).get(0);
|
|
||||||
response.setResponseName(DeployVMCmd.getResultObjectName());
|
|
||||||
setResponseObject(response);
|
|
||||||
} else {
|
|
||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to attach iso");
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to attach iso");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@ -16,33 +16,12 @@
|
|||||||
// under the License.
|
// under the License.
|
||||||
package org.apache.cloudstack.api.command.admin.iso;
|
package org.apache.cloudstack.api.command.admin.iso;
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ApiErrorCode;
|
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.command.admin.AdminCmd;
|
||||||
import org.apache.cloudstack.api.command.user.iso.DetachIsoCmd;
|
import org.apache.cloudstack.api.command.user.iso.DetachIsoCmd;
|
||||||
import org.apache.cloudstack.api.command.user.vm.DeployVMCmd;
|
|
||||||
import org.apache.cloudstack.api.response.UserVmResponse;
|
import org.apache.cloudstack.api.response.UserVmResponse;
|
||||||
|
|
||||||
import com.cloud.uservm.UserVm;
|
|
||||||
|
|
||||||
@APICommand(name = "detachIso", description = "Detaches any ISO file (if any) currently attached to a virtual machine.", responseObject = UserVmResponse.class, responseView = ResponseView.Full,
|
@APICommand(name = "detachIso", description = "Detaches any ISO file (if any) currently attached to a virtual machine.", responseObject = UserVmResponse.class, responseView = ResponseView.Full,
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
||||||
public class DetachIsoCmdByAdmin extends DetachIsoCmd {
|
public class DetachIsoCmdByAdmin extends DetachIsoCmd implements AdminCmd {}
|
||||||
public static final Logger s_logger = Logger.getLogger(DetachIsoCmdByAdmin.class.getName());
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute(){
|
|
||||||
boolean result = _templateService.detachIso(virtualMachineId);
|
|
||||||
if (result) {
|
|
||||||
UserVm userVm = _entityMgr.findById(UserVm.class, virtualMachineId);
|
|
||||||
UserVmResponse response = _responseGenerator.createUserVmResponse(ResponseView.Full, "virtualmachine", userVm).get(0);
|
|
||||||
response.setResponseName(DeployVMCmd.getResultObjectName());
|
|
||||||
setResponseObject(response);
|
|
||||||
} else {
|
|
||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to detach iso");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@ -18,16 +18,14 @@ package org.apache.cloudstack.api.command.admin.iso;
|
|||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
|
import org.apache.cloudstack.api.command.admin.AdminCmd;
|
||||||
import org.apache.cloudstack.api.command.user.iso.ListIsoPermissionsCmd;
|
import org.apache.cloudstack.api.command.user.iso.ListIsoPermissionsCmd;
|
||||||
import org.apache.cloudstack.api.response.TemplatePermissionsResponse;
|
import org.apache.cloudstack.api.response.TemplatePermissionsResponse;
|
||||||
|
|
||||||
@APICommand(name = "listIsoPermissions", description = "List iso visibility and all accounts that have permissions to view this iso.", responseObject = TemplatePermissionsResponse.class, responseView = ResponseView.Full,
|
@APICommand(name = "listIsoPermissions",
|
||||||
|
description = "List iso visibility and all accounts that have permissions to view this iso.",
|
||||||
|
responseObject = TemplatePermissionsResponse.class,
|
||||||
|
responseView = ResponseView.Full,
|
||||||
requestHasSensitiveInfo = false,
|
requestHasSensitiveInfo = false,
|
||||||
responseHasSensitiveInfo = false)
|
responseHasSensitiveInfo = false)
|
||||||
public class ListIsoPermissionsCmdByAdmin extends ListIsoPermissionsCmd {
|
public class ListIsoPermissionsCmdByAdmin extends ListIsoPermissionsCmd implements AdminCmd {}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute() {
|
|
||||||
executeWithView(ResponseView.Full);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@ -18,10 +18,11 @@ package org.apache.cloudstack.api.command.admin.iso;
|
|||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
|
import org.apache.cloudstack.api.command.admin.AdminCmd;
|
||||||
import org.apache.cloudstack.api.command.user.iso.ListIsosCmd;
|
import org.apache.cloudstack.api.command.user.iso.ListIsosCmd;
|
||||||
import org.apache.cloudstack.api.response.TemplateResponse;
|
import org.apache.cloudstack.api.response.TemplateResponse;
|
||||||
|
|
||||||
@APICommand(name = "listIsos", description = "Lists all available ISO files.", responseObject = TemplateResponse.class, responseView = ResponseView.Full,
|
@APICommand(name = "listIsos", description = "Lists all available ISO files.", responseObject = TemplateResponse.class, responseView = ResponseView.Full,
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||||
public class ListIsosCmdByAdmin extends ListIsosCmd {
|
public class ListIsosCmdByAdmin extends ListIsosCmd implements AdminCmd {
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,39 +16,11 @@
|
|||||||
// under the License.
|
// under the License.
|
||||||
package org.apache.cloudstack.api.command.admin.iso;
|
package org.apache.cloudstack.api.command.admin.iso;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ApiErrorCode;
|
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
|
||||||
import org.apache.cloudstack.api.command.user.iso.RegisterIsoCmd;
|
import org.apache.cloudstack.api.command.user.iso.RegisterIsoCmd;
|
||||||
import org.apache.cloudstack.api.response.ListResponse;
|
|
||||||
import org.apache.cloudstack.api.response.TemplateResponse;
|
import org.apache.cloudstack.api.response.TemplateResponse;
|
||||||
|
|
||||||
import com.cloud.exception.ResourceAllocationException;
|
|
||||||
import com.cloud.template.VirtualMachineTemplate;
|
|
||||||
|
|
||||||
@APICommand(name = "registerIso", responseObject = TemplateResponse.class, description = "Registers an existing ISO into the CloudStack Cloud.", responseView = ResponseView.Full,
|
@APICommand(name = "registerIso", responseObject = TemplateResponse.class, description = "Registers an existing ISO into the CloudStack Cloud.", responseView = ResponseView.Full,
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||||
public class RegisterIsoCmdByAdmin extends RegisterIsoCmd {
|
public class RegisterIsoCmdByAdmin extends RegisterIsoCmd {}
|
||||||
public static final Logger s_logger = Logger.getLogger(RegisterIsoCmdByAdmin.class.getName());
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute() throws ResourceAllocationException{
|
|
||||||
VirtualMachineTemplate template = _templateService.registerIso(this);
|
|
||||||
if (template != null) {
|
|
||||||
ListResponse<TemplateResponse> response = new ListResponse<TemplateResponse>();
|
|
||||||
List<TemplateResponse> templateResponses = _responseGenerator.createIsoResponses(ResponseView.Full, template, zoneId, false);
|
|
||||||
response.setResponses(templateResponses);
|
|
||||||
response.setResponseName(getCommandName());
|
|
||||||
setResponseObject(response);
|
|
||||||
} else {
|
|
||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to register iso");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@ -16,31 +16,11 @@
|
|||||||
// under the License.
|
// under the License.
|
||||||
package org.apache.cloudstack.api.command.admin.iso;
|
package org.apache.cloudstack.api.command.admin.iso;
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ApiErrorCode;
|
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
|
||||||
import org.apache.cloudstack.api.command.user.iso.UpdateIsoCmd;
|
import org.apache.cloudstack.api.command.user.iso.UpdateIsoCmd;
|
||||||
import org.apache.cloudstack.api.response.TemplateResponse;
|
import org.apache.cloudstack.api.response.TemplateResponse;
|
||||||
|
|
||||||
import com.cloud.template.VirtualMachineTemplate;
|
|
||||||
|
|
||||||
@APICommand(name = "updateIso", description = "Updates an ISO file.", responseObject = TemplateResponse.class, responseView = ResponseView.Full,
|
@APICommand(name = "updateIso", description = "Updates an ISO file.", responseObject = TemplateResponse.class, responseView = ResponseView.Full,
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||||
public class UpdateIsoCmdByAdmin extends UpdateIsoCmd {
|
public class UpdateIsoCmdByAdmin extends UpdateIsoCmd {}
|
||||||
public static final Logger s_logger = Logger.getLogger(UpdateIsoCmdByAdmin.class.getName());
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute(){
|
|
||||||
VirtualMachineTemplate result = _templateService.updateTemplate(this);
|
|
||||||
if (result != null) {
|
|
||||||
TemplateResponse response = _responseGenerator.createTemplateUpdateResponse(ResponseView.Full, result);
|
|
||||||
response.setResponseName(getCommandName());
|
|
||||||
setResponseObject(response);
|
|
||||||
} else {
|
|
||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to update iso");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@ -16,79 +16,14 @@
|
|||||||
// under the License.
|
// under the License.
|
||||||
package org.apache.cloudstack.api.command.admin.loadbalancer;
|
package org.apache.cloudstack.api.command.admin.loadbalancer;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import org.apache.cloudstack.api.command.admin.AdminCmd;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import com.cloud.vm.VirtualMachine;
|
|
||||||
import org.apache.cloudstack.api.response.LoadBalancerRuleVmMapResponse;
|
import org.apache.cloudstack.api.response.LoadBalancerRuleVmMapResponse;
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.command.user.loadbalancer.ListLoadBalancerRuleInstancesCmd;
|
import org.apache.cloudstack.api.command.user.loadbalancer.ListLoadBalancerRuleInstancesCmd;
|
||||||
import org.apache.cloudstack.api.response.ListResponse;
|
|
||||||
import org.apache.cloudstack.api.response.UserVmResponse;
|
|
||||||
|
|
||||||
import com.cloud.uservm.UserVm;
|
|
||||||
import com.cloud.utils.Pair;
|
|
||||||
|
|
||||||
@APICommand(name = "listLoadBalancerRuleInstances", description = "List all virtual machine instances that are assigned to a load balancer rule.", responseObject = LoadBalancerRuleVmMapResponse.class, responseView = ResponseView.Full,
|
@APICommand(name = "listLoadBalancerRuleInstances", description = "List all virtual machine instances that are assigned to a load balancer rule.", responseObject = LoadBalancerRuleVmMapResponse.class, responseView = ResponseView.Full,
|
||||||
requestHasSensitiveInfo = false,
|
requestHasSensitiveInfo = false,
|
||||||
responseHasSensitiveInfo = true)
|
responseHasSensitiveInfo = true)
|
||||||
public class ListLoadBalancerRuleInstancesCmdByAdmin extends ListLoadBalancerRuleInstancesCmd {
|
public class ListLoadBalancerRuleInstancesCmdByAdmin extends ListLoadBalancerRuleInstancesCmd implements AdminCmd {}
|
||||||
public static final Logger s_logger = Logger.getLogger (ListLoadBalancerRuleInstancesCmdByAdmin.class.getName());
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute(){
|
|
||||||
Pair<List<? extends UserVm>, List<String>> vmServiceMap = _lbService.listLoadBalancerInstances(this);
|
|
||||||
List<? extends UserVm> result = vmServiceMap.first();
|
|
||||||
List<String> serviceStates = vmServiceMap.second();
|
|
||||||
|
|
||||||
|
|
||||||
if (!isListLbVmip()) {
|
|
||||||
// list lb instances
|
|
||||||
ListResponse<UserVmResponse> response = new ListResponse<UserVmResponse>();
|
|
||||||
List<UserVmResponse> vmResponses = new ArrayList<UserVmResponse>();
|
|
||||||
if (result != null) {
|
|
||||||
vmResponses = _responseGenerator.createUserVmResponse(ResponseView.Restricted, "loadbalancerruleinstance", result.toArray(new UserVm[result.size()]));
|
|
||||||
|
|
||||||
|
|
||||||
for (int i = 0; i < result.size(); i++) {
|
|
||||||
vmResponses.get(i).setServiceState(serviceStates.get(i));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
response.setResponses(vmResponses);
|
|
||||||
response.setResponseName(getCommandName());
|
|
||||||
setResponseObject(response);
|
|
||||||
|
|
||||||
} else {
|
|
||||||
ListResponse<LoadBalancerRuleVmMapResponse> lbRes = new ListResponse<LoadBalancerRuleVmMapResponse>();
|
|
||||||
|
|
||||||
List<UserVmResponse> vmResponses = new ArrayList<UserVmResponse>();
|
|
||||||
List<LoadBalancerRuleVmMapResponse> listlbVmRes = new ArrayList<LoadBalancerRuleVmMapResponse>();
|
|
||||||
|
|
||||||
if (result != null) {
|
|
||||||
vmResponses = _responseGenerator.createUserVmResponse(ResponseView.Full, "loadbalancerruleinstance", result.toArray(new UserVm[result.size()]));
|
|
||||||
|
|
||||||
List<String> ipaddr = null;
|
|
||||||
|
|
||||||
for (int i=0;i<result.size(); i++) {
|
|
||||||
LoadBalancerRuleVmMapResponse lbRuleVmIpResponse = new LoadBalancerRuleVmMapResponse();
|
|
||||||
vmResponses.get(i).setServiceState(serviceStates.get(i));
|
|
||||||
lbRuleVmIpResponse.setUserVmResponse(vmResponses.get(i));
|
|
||||||
//get vm id from the uuid
|
|
||||||
VirtualMachine lbvm = _entityMgr.findByUuid(VirtualMachine.class, vmResponses.get(i).getId());
|
|
||||||
lbRuleVmIpResponse.setIpAddr(_lbService.listLbVmIpAddress(getId(), lbvm.getId()));
|
|
||||||
lbRuleVmIpResponse.setObjectName("lbrulevmidip");
|
|
||||||
listlbVmRes.add(lbRuleVmIpResponse);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
lbRes.setResponseName(getCommandName());
|
|
||||||
lbRes.setResponses(listlbVmRes);
|
|
||||||
setResponseObject(lbRes);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@ -20,21 +20,17 @@ import org.apache.log4j.Logger;
|
|||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ApiConstants;
|
import org.apache.cloudstack.api.ApiConstants;
|
||||||
import org.apache.cloudstack.api.ApiErrorCode;
|
|
||||||
import org.apache.cloudstack.api.Parameter;
|
import org.apache.cloudstack.api.Parameter;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.command.admin.AdminCmd;
|
||||||
import org.apache.cloudstack.api.command.user.network.CreateNetworkCmd;
|
import org.apache.cloudstack.api.command.user.network.CreateNetworkCmd;
|
||||||
import org.apache.cloudstack.api.response.NetworkResponse;
|
import org.apache.cloudstack.api.response.NetworkResponse;
|
||||||
|
|
||||||
import com.cloud.exception.ConcurrentOperationException;
|
|
||||||
import com.cloud.exception.InsufficientCapacityException;
|
|
||||||
import com.cloud.exception.ResourceAllocationException;
|
|
||||||
import com.cloud.network.Network;
|
import com.cloud.network.Network;
|
||||||
|
|
||||||
@APICommand(name = "createNetwork", description = "Creates a network", responseObject = NetworkResponse.class, responseView = ResponseView.Full, entityType = {Network.class},
|
@APICommand(name = "createNetwork", description = "Creates a network", responseObject = NetworkResponse.class, responseView = ResponseView.Full, entityType = {Network.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||||
public class CreateNetworkCmdByAdmin extends CreateNetworkCmd {
|
public class CreateNetworkCmdByAdmin extends CreateNetworkCmd implements AdminCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(CreateNetworkCmdByAdmin.class.getName());
|
public static final Logger s_logger = Logger.getLogger(CreateNetworkCmdByAdmin.class.getName());
|
||||||
|
|
||||||
@Parameter(name=ApiConstants.VLAN, type=CommandType.STRING, description="the ID or VID of the network")
|
@Parameter(name=ApiConstants.VLAN, type=CommandType.STRING, description="the ID or VID of the network")
|
||||||
@ -67,21 +63,4 @@ public class CreateNetworkCmdByAdmin extends CreateNetworkCmd {
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/////////////////////////////////////////////////////
|
|
||||||
/////////////// API Implementation///////////////////
|
|
||||||
/////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
@Override
|
|
||||||
// an exception thrown by createNetwork() will be caught by the dispatcher.
|
|
||||||
public void execute() throws InsufficientCapacityException, ConcurrentOperationException, ResourceAllocationException{
|
|
||||||
Network result = _networkService.createGuestNetwork(this);
|
|
||||||
if (result != null) {
|
|
||||||
NetworkResponse response = _responseGenerator.createNetworkResponse(ResponseView.Full, result);
|
|
||||||
response.setResponseName(getCommandName());
|
|
||||||
setResponseObject(response);
|
|
||||||
}else {
|
|
||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to create network");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,36 +16,14 @@
|
|||||||
// under the License.
|
// under the License.
|
||||||
package org.apache.cloudstack.api.command.admin.network;
|
package org.apache.cloudstack.api.command.admin.network;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
|
import org.apache.cloudstack.api.command.admin.AdminCmd;
|
||||||
import org.apache.cloudstack.api.command.user.network.ListNetworksCmd;
|
import org.apache.cloudstack.api.command.user.network.ListNetworksCmd;
|
||||||
import org.apache.cloudstack.api.response.ListResponse;
|
|
||||||
import org.apache.cloudstack.api.response.NetworkResponse;
|
import org.apache.cloudstack.api.response.NetworkResponse;
|
||||||
|
|
||||||
import com.cloud.network.Network;
|
import com.cloud.network.Network;
|
||||||
import com.cloud.utils.Pair;
|
|
||||||
|
|
||||||
@APICommand(name = "listNetworks", description = "Lists all available networks.", responseObject = NetworkResponse.class, responseView = ResponseView.Full, entityType = {Network.class},
|
@APICommand(name = "listNetworks", description = "Lists all available networks.", responseObject = NetworkResponse.class, responseView = ResponseView.Full, entityType = {Network.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||||
public class ListNetworksCmdByAdmin extends ListNetworksCmd {
|
public class ListNetworksCmdByAdmin extends ListNetworksCmd implements AdminCmd {}
|
||||||
public static final Logger s_logger = Logger.getLogger(ListNetworksCmdByAdmin.class.getName());
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute(){
|
|
||||||
Pair<List<? extends Network>, Integer> networks = _networkService.searchForNetworks(this);
|
|
||||||
ListResponse<NetworkResponse> response = new ListResponse<NetworkResponse>();
|
|
||||||
List<NetworkResponse> networkResponses = new ArrayList<NetworkResponse>();
|
|
||||||
for (Network network : networks.first()) {
|
|
||||||
NetworkResponse networkResponse = _responseGenerator.createNetworkResponse(ResponseView.Full, network);
|
|
||||||
networkResponses.add(networkResponse);
|
|
||||||
}
|
|
||||||
response.setResponses(networkResponses, networks.second());
|
|
||||||
response.setResponseName(getCommandName());
|
|
||||||
setResponseObject(response);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@ -18,24 +18,17 @@ package org.apache.cloudstack.api.command.admin.network;
|
|||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ApiConstants;
|
import org.apache.cloudstack.api.ApiConstants;
|
||||||
import org.apache.cloudstack.api.ApiErrorCode;
|
|
||||||
import org.apache.cloudstack.api.Parameter;
|
import org.apache.cloudstack.api.Parameter;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.command.admin.AdminCmd;
|
||||||
import org.apache.cloudstack.api.command.user.network.UpdateNetworkCmd;
|
import org.apache.cloudstack.api.command.user.network.UpdateNetworkCmd;
|
||||||
import org.apache.cloudstack.api.response.NetworkResponse;
|
import org.apache.cloudstack.api.response.NetworkResponse;
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
|
|
||||||
import com.cloud.exception.ConcurrentOperationException;
|
|
||||||
import com.cloud.exception.InsufficientCapacityException;
|
|
||||||
import com.cloud.exception.InvalidParameterValueException;
|
|
||||||
import com.cloud.network.Network;
|
import com.cloud.network.Network;
|
||||||
|
|
||||||
@APICommand(name = "updateNetwork", description = "Updates a network", responseObject = NetworkResponse.class, responseView = ResponseView.Full, entityType = {Network.class},
|
@APICommand(name = "updateNetwork", description = "Updates a network", responseObject = NetworkResponse.class, responseView = ResponseView.Full, entityType = {Network.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||||
public class UpdateNetworkCmdByAdmin extends UpdateNetworkCmd {
|
public class UpdateNetworkCmdByAdmin extends UpdateNetworkCmd implements AdminCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(UpdateNetworkCmdByAdmin.class.getName());
|
|
||||||
|
|
||||||
@Parameter(name= ApiConstants.HIDE_IP_ADDRESS_USAGE, type=CommandType.BOOLEAN, description="when true ip address usage for the network will not be exported by the listUsageRecords API")
|
@Parameter(name= ApiConstants.HIDE_IP_ADDRESS_USAGE, type=CommandType.BOOLEAN, description="when true ip address usage for the network will not be exported by the listUsageRecords API")
|
||||||
private Boolean hideIpAddressUsage;
|
private Boolean hideIpAddressUsage;
|
||||||
|
|
||||||
@ -45,22 +38,4 @@ public class UpdateNetworkCmdByAdmin extends UpdateNetworkCmd {
|
|||||||
}
|
}
|
||||||
return hideIpAddressUsage;
|
return hideIpAddressUsage;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute() throws InsufficientCapacityException, ConcurrentOperationException{
|
|
||||||
Network network = _networkService.getNetwork(id);
|
|
||||||
if (network == null) {
|
|
||||||
throw new InvalidParameterValueException("Couldn't find network by id");
|
|
||||||
}
|
|
||||||
|
|
||||||
Network result = _networkService.updateGuestNetwork(this);
|
|
||||||
if (result != null) {
|
|
||||||
NetworkResponse response = _responseGenerator.createNetworkResponse(ResponseView.Full, result);
|
|
||||||
response.setResponseName(getCommandName());
|
|
||||||
setResponseObject(response);
|
|
||||||
} else {
|
|
||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to update network");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,58 +16,12 @@
|
|||||||
// under the License.
|
// under the License.
|
||||||
package org.apache.cloudstack.api.command.admin.template;
|
package org.apache.cloudstack.api.command.admin.template;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ApiErrorCode;
|
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
|
||||||
import org.apache.cloudstack.api.command.user.template.CopyTemplateCmd;
|
import org.apache.cloudstack.api.command.user.template.CopyTemplateCmd;
|
||||||
import org.apache.cloudstack.api.response.TemplateResponse;
|
import org.apache.cloudstack.api.response.TemplateResponse;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
|
||||||
|
|
||||||
import com.cloud.exception.ResourceAllocationException;
|
|
||||||
import com.cloud.exception.StorageUnavailableException;
|
|
||||||
import com.cloud.template.VirtualMachineTemplate;
|
|
||||||
|
|
||||||
@APICommand(name = "copyTemplate", description = "Copies a template from one zone to another.", responseObject = TemplateResponse.class, responseView = ResponseView.Full,
|
@APICommand(name = "copyTemplate", description = "Copies a template from one zone to another.", responseObject = TemplateResponse.class, responseView = ResponseView.Full,
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||||
public class CopyTemplateCmdByAdmin extends CopyTemplateCmd {
|
public class CopyTemplateCmdByAdmin extends CopyTemplateCmd {}
|
||||||
public static final Logger s_logger = Logger.getLogger(CopyTemplateCmdByAdmin.class.getName());
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute() throws ResourceAllocationException{
|
|
||||||
try {
|
|
||||||
if (destZoneId == null && (destZoneIds == null || destZoneIds.size() == 0))
|
|
||||||
throw new ServerApiException(ApiErrorCode.PARAM_ERROR,
|
|
||||||
"Either destzoneid or destzoneids parameters have to be specified.");
|
|
||||||
|
|
||||||
if (destZoneId != null && destZoneIds != null && destZoneIds.size() != 0)
|
|
||||||
throw new ServerApiException(ApiErrorCode.PARAM_ERROR,
|
|
||||||
"Both destzoneid and destzoneids cannot be specified at the same time.");
|
|
||||||
|
|
||||||
CallContext.current().setEventDetails(getEventDescription());
|
|
||||||
VirtualMachineTemplate template = _templateService.copyTemplate(this);
|
|
||||||
|
|
||||||
if (template != null){
|
|
||||||
List<TemplateResponse> listResponse = _responseGenerator.createTemplateResponses(ResponseView.Full, template,
|
|
||||||
getDestinationZoneIds(), false);
|
|
||||||
TemplateResponse response = new TemplateResponse();
|
|
||||||
if (listResponse != null && !listResponse.isEmpty()) {
|
|
||||||
response = listResponse.get(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
response.setResponseName(getCommandName());
|
|
||||||
setResponseObject(response);
|
|
||||||
} else {
|
|
||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to copy template");
|
|
||||||
}
|
|
||||||
} catch (StorageUnavailableException ex) {
|
|
||||||
s_logger.warn("Exception: ", ex);
|
|
||||||
throw new ServerApiException(ApiErrorCode.RESOURCE_UNAVAILABLE_ERROR, ex.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|||||||
@ -16,50 +16,13 @@
|
|||||||
// under the License.
|
// under the License.
|
||||||
package org.apache.cloudstack.api.command.admin.template;
|
package org.apache.cloudstack.api.command.admin.template;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import com.cloud.storage.Snapshot;
|
|
||||||
import com.cloud.storage.Volume;
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ApiErrorCode;
|
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.command.admin.AdminCmd;
|
||||||
import org.apache.cloudstack.api.command.user.template.CreateTemplateCmd;
|
import org.apache.cloudstack.api.command.user.template.CreateTemplateCmd;
|
||||||
import org.apache.cloudstack.api.response.TemplateResponse;
|
import org.apache.cloudstack.api.response.TemplateResponse;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
|
||||||
|
|
||||||
import com.cloud.template.VirtualMachineTemplate;
|
|
||||||
|
|
||||||
@APICommand(name = "createTemplate", responseObject = TemplateResponse.class, description = "Creates a template of a virtual machine. " + "The virtual machine must be in a STOPPED state. "
|
@APICommand(name = "createTemplate", responseObject = TemplateResponse.class, description = "Creates a template of a virtual machine. " + "The virtual machine must be in a STOPPED state. "
|
||||||
+ "A template created from this command is automatically designated as a private template visible to the account that created it.", responseView = ResponseView.Full,
|
+ "A template created from this command is automatically designated as a private template visible to the account that created it.", responseView = ResponseView.Full,
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||||
public class CreateTemplateCmdByAdmin extends CreateTemplateCmd {
|
public class CreateTemplateCmdByAdmin extends CreateTemplateCmd implements AdminCmd {}
|
||||||
public static final Logger s_logger = Logger.getLogger(CreateTemplateCmdByAdmin.class.getName());
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute() {
|
|
||||||
CallContext.current().setEventDetails("Template Id: " + getEntityUuid()+((getSnapshotId() == null) ? " from volume Id: " + this._uuidMgr.getUuid(Volume.class, getVolumeId()) : " from snapshot Id: " + this._uuidMgr.getUuid(Snapshot.class, getSnapshotId())));
|
|
||||||
VirtualMachineTemplate template = null;
|
|
||||||
template = _templateService.createPrivateTemplate(this);
|
|
||||||
|
|
||||||
if (template != null){
|
|
||||||
List<TemplateResponse> templateResponses;
|
|
||||||
if (isBareMetal()) {
|
|
||||||
templateResponses = _responseGenerator.createTemplateResponses(ResponseView.Full, template.getId(), vmId);
|
|
||||||
} else {
|
|
||||||
templateResponses = _responseGenerator.createTemplateResponses(ResponseView.Full, template.getId(), snapshotId, volumeId, false);
|
|
||||||
}
|
|
||||||
TemplateResponse response = new TemplateResponse();
|
|
||||||
if (templateResponses != null && !templateResponses.isEmpty()) {
|
|
||||||
response = templateResponses.get(0);
|
|
||||||
}
|
|
||||||
response.setResponseName(getCommandName());
|
|
||||||
setResponseObject(response);
|
|
||||||
} else {
|
|
||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to create private template");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@ -18,17 +18,11 @@ package org.apache.cloudstack.api.command.admin.template;
|
|||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
|
import org.apache.cloudstack.api.command.admin.AdminCmd;
|
||||||
import org.apache.cloudstack.api.command.user.template.ListTemplatePermissionsCmd;
|
import org.apache.cloudstack.api.command.user.template.ListTemplatePermissionsCmd;
|
||||||
import org.apache.cloudstack.api.response.TemplatePermissionsResponse;
|
import org.apache.cloudstack.api.response.TemplatePermissionsResponse;
|
||||||
|
|
||||||
@APICommand(name = "listTemplatePermissions", description = "List template visibility and all accounts that have permissions to view this template.", responseObject = TemplatePermissionsResponse.class, responseView = ResponseView.Full,
|
@APICommand(name = "listTemplatePermissions", description = "List template visibility and all accounts that have permissions to view this template.", responseObject = TemplatePermissionsResponse.class, responseView = ResponseView.Full,
|
||||||
requestHasSensitiveInfo = false,
|
requestHasSensitiveInfo = false,
|
||||||
responseHasSensitiveInfo = false)
|
responseHasSensitiveInfo = false)
|
||||||
public class ListTemplatePermissionsCmdByAdmin extends ListTemplatePermissionsCmd {
|
public class ListTemplatePermissionsCmdByAdmin extends ListTemplatePermissionsCmd implements AdminCmd {}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute() {
|
|
||||||
executeWithView(ResponseView.Full);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|||||||
@ -18,6 +18,7 @@ package org.apache.cloudstack.api.command.admin.template;
|
|||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
|
import org.apache.cloudstack.api.command.admin.AdminCmd;
|
||||||
import org.apache.cloudstack.api.command.user.template.ListTemplatesCmd;
|
import org.apache.cloudstack.api.command.user.template.ListTemplatesCmd;
|
||||||
import org.apache.cloudstack.api.response.TemplateResponse;
|
import org.apache.cloudstack.api.response.TemplateResponse;
|
||||||
|
|
||||||
@ -25,6 +26,6 @@ import com.cloud.template.VirtualMachineTemplate;
|
|||||||
|
|
||||||
@APICommand(name = "listTemplates", description = "List all public, private, and privileged templates.", responseObject = TemplateResponse.class, entityType = {VirtualMachineTemplate.class}, responseView = ResponseView.Full,
|
@APICommand(name = "listTemplates", description = "List all public, private, and privileged templates.", responseObject = TemplateResponse.class, entityType = {VirtualMachineTemplate.class}, responseView = ResponseView.Full,
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||||
public class ListTemplatesCmdByAdmin extends ListTemplatesCmd {
|
public class ListTemplatesCmdByAdmin extends ListTemplatesCmd implements AdminCmd {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,46 +16,11 @@
|
|||||||
// under the License.
|
// under the License.
|
||||||
package org.apache.cloudstack.api.command.admin.template;
|
package org.apache.cloudstack.api.command.admin.template;
|
||||||
|
|
||||||
import java.net.URISyntaxException;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ApiErrorCode;
|
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
|
||||||
import org.apache.cloudstack.api.command.user.template.RegisterTemplateCmd;
|
import org.apache.cloudstack.api.command.user.template.RegisterTemplateCmd;
|
||||||
import org.apache.cloudstack.api.response.ListResponse;
|
|
||||||
import org.apache.cloudstack.api.response.TemplateResponse;
|
import org.apache.cloudstack.api.response.TemplateResponse;
|
||||||
|
|
||||||
import com.cloud.exception.ResourceAllocationException;
|
|
||||||
import com.cloud.template.VirtualMachineTemplate;
|
|
||||||
|
|
||||||
@APICommand(name = "registerTemplate", description = "Registers an existing template into the CloudStack cloud.", responseObject = TemplateResponse.class, responseView = ResponseView.Full,
|
@APICommand(name = "registerTemplate", description = "Registers an existing template into the CloudStack cloud.", responseObject = TemplateResponse.class, responseView = ResponseView.Full,
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||||
public class RegisterTemplateCmdByAdmin extends RegisterTemplateCmd {
|
public class RegisterTemplateCmdByAdmin extends RegisterTemplateCmd {}
|
||||||
public static final Logger s_logger = Logger.getLogger(RegisterTemplateCmdByAdmin.class.getName());
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute() throws ResourceAllocationException{
|
|
||||||
try {
|
|
||||||
validateParameters();
|
|
||||||
|
|
||||||
VirtualMachineTemplate template = _templateService.registerTemplate(this);
|
|
||||||
if (template != null){
|
|
||||||
ListResponse<TemplateResponse> response = new ListResponse<TemplateResponse>();
|
|
||||||
List<TemplateResponse> templateResponses = _responseGenerator.createTemplateResponses(ResponseView.Full, template,
|
|
||||||
zoneIds, false);
|
|
||||||
response.setResponses(templateResponses);
|
|
||||||
response.setResponseName(getCommandName());
|
|
||||||
setResponseObject(response);
|
|
||||||
} else {
|
|
||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to register template");
|
|
||||||
}
|
|
||||||
} catch (URISyntaxException ex1) {
|
|
||||||
s_logger.info(ex1);
|
|
||||||
throw new ServerApiException(ApiErrorCode.PARAM_ERROR, ex1.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@ -16,33 +16,12 @@
|
|||||||
// under the License.
|
// under the License.
|
||||||
package org.apache.cloudstack.api.command.admin.template;
|
package org.apache.cloudstack.api.command.admin.template;
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ApiErrorCode;
|
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.command.admin.AdminCmd;
|
||||||
import org.apache.cloudstack.api.command.user.template.UpdateTemplateCmd;
|
import org.apache.cloudstack.api.command.user.template.UpdateTemplateCmd;
|
||||||
import org.apache.cloudstack.api.response.TemplateResponse;
|
import org.apache.cloudstack.api.response.TemplateResponse;
|
||||||
|
|
||||||
import com.cloud.template.VirtualMachineTemplate;
|
|
||||||
|
|
||||||
@APICommand(name = "updateTemplate", description = "Updates attributes of a template.", responseObject = TemplateResponse.class, responseView = ResponseView.Full,
|
@APICommand(name = "updateTemplate", description = "Updates attributes of a template.", responseObject = TemplateResponse.class, responseView = ResponseView.Full,
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||||
public class UpdateTemplateCmdByAdmin extends UpdateTemplateCmd {
|
public class UpdateTemplateCmdByAdmin extends UpdateTemplateCmd implements AdminCmd {}
|
||||||
public static final Logger s_logger = Logger.getLogger(UpdateTemplateCmdByAdmin.class.getName());
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute(){
|
|
||||||
VirtualMachineTemplate result = _templateService.updateTemplate(this);
|
|
||||||
if (result != null) {
|
|
||||||
TemplateResponse response = _responseGenerator.createTemplateUpdateResponse(ResponseView.Full, result);
|
|
||||||
response.setObjectName("template");
|
|
||||||
response.setTemplateType(result.getTemplateType().toString());//Template can be either USER or ROUTING type
|
|
||||||
response.setResponseName(getCommandName());
|
|
||||||
setResponseObject(response);
|
|
||||||
} else {
|
|
||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to update template");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@ -16,43 +16,15 @@
|
|||||||
// under the License.
|
// under the License.
|
||||||
package org.apache.cloudstack.api.command.admin.vm;
|
package org.apache.cloudstack.api.command.admin.vm;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.EnumSet;
|
|
||||||
|
|
||||||
import com.cloud.network.Network;
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ApiConstants.VMDetails;
|
|
||||||
import org.apache.cloudstack.api.ApiErrorCode;
|
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.command.admin.AdminCmd;
|
||||||
import org.apache.cloudstack.api.command.user.vm.AddNicToVMCmd;
|
import org.apache.cloudstack.api.command.user.vm.AddNicToVMCmd;
|
||||||
import org.apache.cloudstack.api.response.UserVmResponse;
|
import org.apache.cloudstack.api.response.UserVmResponse;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
|
||||||
|
|
||||||
import com.cloud.uservm.UserVm;
|
|
||||||
import com.cloud.vm.VirtualMachine;
|
import com.cloud.vm.VirtualMachine;
|
||||||
|
|
||||||
|
|
||||||
@APICommand(name = "addNicToVirtualMachine", description = "Adds VM to specified network by creating a NIC", responseObject = UserVmResponse.class, responseView = ResponseView.Full, entityType = {VirtualMachine.class},
|
@APICommand(name = "addNicToVirtualMachine", description = "Adds VM to specified network by creating a NIC", responseObject = UserVmResponse.class, responseView = ResponseView.Full, entityType = {VirtualMachine.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
||||||
public class AddNicToVMCmdByAdmin extends AddNicToVMCmd {
|
public class AddNicToVMCmdByAdmin extends AddNicToVMCmd implements AdminCmd {}
|
||||||
public static final Logger s_logger = Logger.getLogger(AddNicToVMCmdByAdmin.class);
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute(){
|
|
||||||
CallContext.current().setEventDetails("Vm Id: " + this._uuidMgr.getUuid(VirtualMachine.class, getVmId()) + " Network Id: " + this._uuidMgr.getUuid(Network.class, getNetworkId()));
|
|
||||||
UserVm result = _userVmService.addNicToVirtualMachine(this);
|
|
||||||
ArrayList<VMDetails> dc = new ArrayList<VMDetails>();
|
|
||||||
dc.add(VMDetails.valueOf("nics"));
|
|
||||||
EnumSet<VMDetails> details = EnumSet.copyOf(dc);
|
|
||||||
if (result != null){
|
|
||||||
UserVmResponse response = _responseGenerator.createUserVmResponse(ResponseView.Full, "virtualmachine", details, result).get(0);
|
|
||||||
response.setResponseName(getCommandName());
|
|
||||||
setResponseObject(response);
|
|
||||||
} else {
|
|
||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to add NIC to vm. Refer to server logs for details.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@ -23,26 +23,20 @@ import org.apache.cloudstack.api.response.PodResponse;
|
|||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ApiErrorCode;
|
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.command.admin.AdminCmd;
|
||||||
import org.apache.cloudstack.api.command.user.vm.DeployVMCmd;
|
import org.apache.cloudstack.api.command.user.vm.DeployVMCmd;
|
||||||
import org.apache.cloudstack.api.response.UserVmResponse;
|
import org.apache.cloudstack.api.response.UserVmResponse;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
|
||||||
|
|
||||||
import com.cloud.exception.ConcurrentOperationException;
|
|
||||||
import com.cloud.exception.InsufficientCapacityException;
|
|
||||||
import com.cloud.exception.InsufficientServerCapacityException;
|
|
||||||
import com.cloud.exception.ResourceUnavailableException;
|
|
||||||
import com.cloud.uservm.UserVm;
|
|
||||||
import com.cloud.vm.VirtualMachine;
|
import com.cloud.vm.VirtualMachine;
|
||||||
|
|
||||||
|
|
||||||
@APICommand(name = "deployVirtualMachine", description = "Creates and automatically starts a virtual machine based on a service offering, disk offering, and template.", responseObject = UserVmResponse.class, responseView = ResponseView.Full, entityType = {VirtualMachine.class},
|
@APICommand(name = "deployVirtualMachine", description = "Creates and automatically starts a virtual machine based on a service offering, disk offering, and template.", responseObject = UserVmResponse.class, responseView = ResponseView.Full, entityType = {VirtualMachine.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
||||||
public class DeployVMCmdByAdmin extends DeployVMCmd {
|
public class DeployVMCmdByAdmin extends DeployVMCmd implements AdminCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(DeployVMCmdByAdmin.class.getName());
|
public static final Logger s_logger = Logger.getLogger(DeployVMCmdByAdmin.class.getName());
|
||||||
|
|
||||||
|
|
||||||
@Parameter(name = ApiConstants.POD_ID, type = CommandType.UUID, entityType = PodResponse.class, description = "destination Pod ID to deploy the VM to - parameter available for root admin only", since = "4.13")
|
@Parameter(name = ApiConstants.POD_ID, type = CommandType.UUID, entityType = PodResponse.class, description = "destination Pod ID to deploy the VM to - parameter available for root admin only", since = "4.13")
|
||||||
private Long podId;
|
private Long podId;
|
||||||
|
|
||||||
@ -56,43 +50,4 @@ public class DeployVMCmdByAdmin extends DeployVMCmd {
|
|||||||
public Long getClusterId() {
|
public Long getClusterId() {
|
||||||
return clusterId;
|
return clusterId;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute(){
|
|
||||||
UserVm result;
|
|
||||||
|
|
||||||
if (getStartVm()) {
|
|
||||||
try {
|
|
||||||
CallContext.current().setEventDetails("Vm Id: " + getEntityUuid());
|
|
||||||
result = _userVmService.startVirtualMachine(this);
|
|
||||||
} catch (ResourceUnavailableException ex) {
|
|
||||||
s_logger.warn("Exception: ", ex);
|
|
||||||
throw new ServerApiException(ApiErrorCode.RESOURCE_UNAVAILABLE_ERROR, ex.getMessage());
|
|
||||||
} catch (ConcurrentOperationException ex) {
|
|
||||||
s_logger.warn("Exception: ", ex);
|
|
||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, ex.getMessage());
|
|
||||||
} catch (InsufficientCapacityException ex) {
|
|
||||||
StringBuilder message = new StringBuilder(ex.getMessage());
|
|
||||||
if (ex instanceof InsufficientServerCapacityException) {
|
|
||||||
if(((InsufficientServerCapacityException)ex).isAffinityApplied()){
|
|
||||||
message.append(", Please check the affinity groups provided, there may not be sufficient capacity to follow them");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
s_logger.info(ex);
|
|
||||||
s_logger.info(message.toString(), ex);
|
|
||||||
throw new ServerApiException(ApiErrorCode.INSUFFICIENT_CAPACITY_ERROR, message.toString());
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
result = _userVmService.getUserVm(getEntityId());
|
|
||||||
}
|
|
||||||
|
|
||||||
if (result != null) {
|
|
||||||
UserVmResponse response = _responseGenerator.createUserVmResponse(ResponseView.Full, "virtualmachine", result).get(0);
|
|
||||||
response.setResponseName(getCommandName());
|
|
||||||
setResponseObject(response);
|
|
||||||
} else {
|
|
||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to deploy vm");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,45 +16,15 @@
|
|||||||
// under the License.
|
// under the License.
|
||||||
package org.apache.cloudstack.api.command.admin.vm;
|
package org.apache.cloudstack.api.command.admin.vm;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ApiErrorCode;
|
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.command.admin.AdminCmd;
|
||||||
import org.apache.cloudstack.api.command.user.vm.DestroyVMCmd;
|
import org.apache.cloudstack.api.command.user.vm.DestroyVMCmd;
|
||||||
import org.apache.cloudstack.api.response.UserVmResponse;
|
import org.apache.cloudstack.api.response.UserVmResponse;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
|
||||||
|
|
||||||
import com.cloud.exception.ConcurrentOperationException;
|
|
||||||
import com.cloud.exception.ResourceUnavailableException;
|
|
||||||
import com.cloud.uservm.UserVm;
|
|
||||||
import com.cloud.vm.VirtualMachine;
|
import com.cloud.vm.VirtualMachine;
|
||||||
|
|
||||||
@APICommand(name = "destroyVirtualMachine", description = "Destroys a virtual machine. Once destroyed, only the administrator can recover it.", responseObject = UserVmResponse.class, responseView = ResponseView.Full, entityType = {VirtualMachine.class},
|
@APICommand(name = "destroyVirtualMachine", description = "Destroys a virtual machine. Once destroyed, only the administrator can recover it.", responseObject = UserVmResponse.class, responseView = ResponseView.Full, entityType = {VirtualMachine.class},
|
||||||
requestHasSensitiveInfo = false,
|
requestHasSensitiveInfo = false,
|
||||||
responseHasSensitiveInfo = true)
|
responseHasSensitiveInfo = true)
|
||||||
public class DestroyVMCmdByAdmin extends DestroyVMCmd {
|
public class DestroyVMCmdByAdmin extends DestroyVMCmd implements AdminCmd {}
|
||||||
public static final Logger s_logger = Logger.getLogger(DestroyVMCmdByAdmin.class.getName());
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute() throws ResourceUnavailableException, ConcurrentOperationException{
|
|
||||||
CallContext.current().setEventDetails("Vm Id: "+this._uuidMgr.getUuid(VirtualMachine.class, getId()));
|
|
||||||
UserVm result = _userVmService.destroyVm(this);
|
|
||||||
|
|
||||||
UserVmResponse response = new UserVmResponse();
|
|
||||||
if (result != null) {
|
|
||||||
List<UserVmResponse> responses = _responseGenerator.createUserVmResponse(ResponseView.Full, "virtualmachine", result);
|
|
||||||
if (responses != null && !responses.isEmpty()) {
|
|
||||||
response = responses.get(0);
|
|
||||||
}
|
|
||||||
response.setResponseName("virtualmachine");
|
|
||||||
setResponseObject(response);
|
|
||||||
} else {
|
|
||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to destroy vm");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@ -22,6 +22,7 @@ import org.apache.cloudstack.api.APICommand;
|
|||||||
import org.apache.cloudstack.api.ApiConstants;
|
import org.apache.cloudstack.api.ApiConstants;
|
||||||
import org.apache.cloudstack.api.Parameter;
|
import org.apache.cloudstack.api.Parameter;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
|
import org.apache.cloudstack.api.command.admin.AdminCmd;
|
||||||
import org.apache.cloudstack.api.command.user.vm.ListVMsCmd;
|
import org.apache.cloudstack.api.command.user.vm.ListVMsCmd;
|
||||||
import org.apache.cloudstack.api.response.HostResponse;
|
import org.apache.cloudstack.api.response.HostResponse;
|
||||||
import org.apache.cloudstack.api.response.PodResponse;
|
import org.apache.cloudstack.api.response.PodResponse;
|
||||||
@ -32,7 +33,7 @@ import com.cloud.vm.VirtualMachine;
|
|||||||
|
|
||||||
@APICommand(name = "listVirtualMachines", description = "List the virtual machines owned by the account.", responseObject = UserVmResponse.class, responseView = ResponseView.Full, entityType = {VirtualMachine.class},
|
@APICommand(name = "listVirtualMachines", description = "List the virtual machines owned by the account.", responseObject = UserVmResponse.class, responseView = ResponseView.Full, entityType = {VirtualMachine.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
||||||
public class ListVMsCmdByAdmin extends ListVMsCmd {
|
public class ListVMsCmdByAdmin extends ListVMsCmd implements AdminCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(ListVMsCmdByAdmin.class.getName());
|
public static final Logger s_logger = Logger.getLogger(ListVMsCmdByAdmin.class.getName());
|
||||||
|
|
||||||
/////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////
|
||||||
|
|||||||
@ -16,38 +16,14 @@
|
|||||||
// under the License.
|
// under the License.
|
||||||
package org.apache.cloudstack.api.command.admin.vm;
|
package org.apache.cloudstack.api.command.admin.vm;
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ApiErrorCode;
|
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.command.admin.AdminCmd;
|
||||||
import org.apache.cloudstack.api.command.user.vm.RebootVMCmd;
|
import org.apache.cloudstack.api.command.user.vm.RebootVMCmd;
|
||||||
import org.apache.cloudstack.api.response.UserVmResponse;
|
import org.apache.cloudstack.api.response.UserVmResponse;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
|
||||||
|
|
||||||
import com.cloud.exception.InsufficientCapacityException;
|
|
||||||
import com.cloud.exception.ResourceUnavailableException;
|
|
||||||
import com.cloud.uservm.UserVm;
|
|
||||||
import com.cloud.vm.VirtualMachine;
|
import com.cloud.vm.VirtualMachine;
|
||||||
|
|
||||||
@APICommand(name = "rebootVirtualMachine", description = "Reboots a virtual machine.", responseObject = UserVmResponse.class, responseView = ResponseView.Full, entityType = {VirtualMachine.class},
|
@APICommand(name = "rebootVirtualMachine", description = "Reboots a virtual machine.", responseObject = UserVmResponse.class, responseView = ResponseView.Full, entityType = {VirtualMachine.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
||||||
public class RebootVMCmdByAdmin extends RebootVMCmd {
|
public class RebootVMCmdByAdmin extends RebootVMCmd implements AdminCmd {}
|
||||||
public static final Logger s_logger = Logger.getLogger(RebootVMCmdByAdmin.class.getName());
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute() throws ResourceUnavailableException, InsufficientCapacityException{
|
|
||||||
CallContext.current().setEventDetails("Vm Id: "+this._uuidMgr.getUuid(VirtualMachine.class, getId()));
|
|
||||||
UserVm result;
|
|
||||||
result = _userVmService.rebootVirtualMachine(this);
|
|
||||||
|
|
||||||
if (result !=null){
|
|
||||||
UserVmResponse response = _responseGenerator.createUserVmResponse(ResponseView.Full, "virtualmachine", result).get(0);
|
|
||||||
response.setResponseName(getCommandName());
|
|
||||||
setResponseObject(response);
|
|
||||||
} else {
|
|
||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to reboot vm instance");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@ -16,42 +16,14 @@
|
|||||||
// under the License.
|
// under the License.
|
||||||
package org.apache.cloudstack.api.command.admin.vm;
|
package org.apache.cloudstack.api.command.admin.vm;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.EnumSet;
|
|
||||||
|
|
||||||
import com.cloud.vm.Nic;
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ApiConstants.VMDetails;
|
|
||||||
import org.apache.cloudstack.api.ApiErrorCode;
|
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.command.admin.AdminCmd;
|
||||||
import org.apache.cloudstack.api.command.user.vm.RemoveNicFromVMCmd;
|
import org.apache.cloudstack.api.command.user.vm.RemoveNicFromVMCmd;
|
||||||
import org.apache.cloudstack.api.response.UserVmResponse;
|
import org.apache.cloudstack.api.response.UserVmResponse;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
|
||||||
|
|
||||||
import com.cloud.uservm.UserVm;
|
|
||||||
import com.cloud.vm.VirtualMachine;
|
import com.cloud.vm.VirtualMachine;
|
||||||
|
|
||||||
@APICommand(name = "removeNicFromVirtualMachine", description = "Removes VM from specified network by deleting a NIC", responseObject = UserVmResponse.class, responseView = ResponseView.Full, entityType = {VirtualMachine.class},
|
@APICommand(name = "removeNicFromVirtualMachine", description = "Removes VM from specified network by deleting a NIC", responseObject = UserVmResponse.class, responseView = ResponseView.Full, entityType = {VirtualMachine.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
||||||
public class RemoveNicFromVMCmdByAdmin extends RemoveNicFromVMCmd {
|
public class RemoveNicFromVMCmdByAdmin extends RemoveNicFromVMCmd implements AdminCmd {}
|
||||||
public static final Logger s_logger = Logger.getLogger(RemoveNicFromVMCmdByAdmin.class);
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute(){
|
|
||||||
CallContext.current().setEventDetails("Vm Id: "+this._uuidMgr.getUuid(VirtualMachine.class, getVmId()) + " Nic Id: " + this._uuidMgr.getUuid(Nic.class, getNicId()));
|
|
||||||
UserVm result = _userVmService.removeNicFromVirtualMachine(this);
|
|
||||||
ArrayList<VMDetails> dc = new ArrayList<VMDetails>();
|
|
||||||
dc.add(VMDetails.valueOf("nics"));
|
|
||||||
EnumSet<VMDetails> details = EnumSet.copyOf(dc);
|
|
||||||
if (result != null){
|
|
||||||
UserVmResponse response = _responseGenerator.createUserVmResponse(ResponseView.Full, "virtualmachine", details, result).get(0);
|
|
||||||
response.setResponseName(getCommandName());
|
|
||||||
setResponseObject(response);
|
|
||||||
} else {
|
|
||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to remove NIC from vm, see error log for details");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@ -16,41 +16,16 @@
|
|||||||
// under the License.
|
// under the License.
|
||||||
package org.apache.cloudstack.api.command.admin.vm;
|
package org.apache.cloudstack.api.command.admin.vm;
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ApiErrorCode;
|
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.command.admin.AdminCmd;
|
||||||
import org.apache.cloudstack.api.command.user.vm.ResetVMPasswordCmd;
|
import org.apache.cloudstack.api.command.user.vm.ResetVMPasswordCmd;
|
||||||
import org.apache.cloudstack.api.response.UserVmResponse;
|
import org.apache.cloudstack.api.response.UserVmResponse;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
|
||||||
|
|
||||||
import com.cloud.exception.InsufficientCapacityException;
|
|
||||||
import com.cloud.exception.ResourceUnavailableException;
|
|
||||||
import com.cloud.uservm.UserVm;
|
|
||||||
import com.cloud.vm.VirtualMachine;
|
import com.cloud.vm.VirtualMachine;
|
||||||
|
|
||||||
@APICommand(name = "resetPasswordForVirtualMachine", responseObject=UserVmResponse.class, description="Resets the password for virtual machine. " +
|
@APICommand(name = "resetPasswordForVirtualMachine", responseObject=UserVmResponse.class, description="Resets the password for virtual machine. " +
|
||||||
"The virtual machine must be in a \"Stopped\" state and the template must already " +
|
"The virtual machine must be in a \"Stopped\" state and the template must already " +
|
||||||
"support this feature for this command to take effect. [async]", responseView = ResponseView.Full, entityType = {VirtualMachine.class},
|
"support this feature for this command to take effect. [async]", responseView = ResponseView.Full, entityType = {VirtualMachine.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
||||||
public class ResetVMPasswordCmdByAdmin extends ResetVMPasswordCmd {
|
public class ResetVMPasswordCmdByAdmin extends ResetVMPasswordCmd implements AdminCmd {}
|
||||||
public static final Logger s_logger = Logger.getLogger(ResetVMPasswordCmdByAdmin.class.getName());
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute() throws ResourceUnavailableException, InsufficientCapacityException{
|
|
||||||
password = _mgr.generateRandomPassword();
|
|
||||||
CallContext.current().setEventDetails("Vm Id: "+getId());
|
|
||||||
UserVm result = _userVmService.resetVMPassword(this, password);
|
|
||||||
if (result != null){
|
|
||||||
UserVmResponse response = _responseGenerator.createUserVmResponse(ResponseView.Full, "virtualmachine", result).get(0);
|
|
||||||
response.setResponseName(getCommandName());
|
|
||||||
setResponseObject(response);
|
|
||||||
} else {
|
|
||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to reset vm password");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@ -17,43 +17,15 @@
|
|||||||
|
|
||||||
package org.apache.cloudstack.api.command.admin.vm;
|
package org.apache.cloudstack.api.command.admin.vm;
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ApiErrorCode;
|
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.command.admin.AdminCmd;
|
||||||
import org.apache.cloudstack.api.command.user.vm.ResetVMSSHKeyCmd;
|
import org.apache.cloudstack.api.command.user.vm.ResetVMSSHKeyCmd;
|
||||||
import org.apache.cloudstack.api.response.UserVmResponse;
|
import org.apache.cloudstack.api.response.UserVmResponse;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
|
||||||
|
|
||||||
import com.cloud.exception.InsufficientCapacityException;
|
|
||||||
import com.cloud.exception.ResourceUnavailableException;
|
|
||||||
import com.cloud.uservm.UserVm;
|
|
||||||
import com.cloud.vm.VirtualMachine;
|
import com.cloud.vm.VirtualMachine;
|
||||||
|
|
||||||
@APICommand(name = "resetSSHKeyForVirtualMachine", responseObject = UserVmResponse.class, description = "Resets the SSH Key for virtual machine. " +
|
@APICommand(name = "resetSSHKeyForVirtualMachine", responseObject = UserVmResponse.class, description = "Resets the SSH Key for virtual machine. " +
|
||||||
"The virtual machine must be in a \"Stopped\" state. [async]", responseView = ResponseView.Full, entityType = {VirtualMachine.class},
|
"The virtual machine must be in a \"Stopped\" state. [async]", responseView = ResponseView.Full, entityType = {VirtualMachine.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
||||||
public class ResetVMSSHKeyCmdByAdmin extends ResetVMSSHKeyCmd {
|
public class ResetVMSSHKeyCmdByAdmin extends ResetVMSSHKeyCmd implements AdminCmd {}
|
||||||
|
|
||||||
public static final Logger s_logger = Logger.getLogger(ResetVMSSHKeyCmdByAdmin.class.getName());
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute() throws ResourceUnavailableException,
|
|
||||||
InsufficientCapacityException {
|
|
||||||
|
|
||||||
CallContext.current().setEventDetails("Vm Id: " + getId());
|
|
||||||
UserVm result = _userVmService.resetVMSSHKey(this);
|
|
||||||
|
|
||||||
if (result != null) {
|
|
||||||
UserVmResponse response = _responseGenerator.createUserVmResponse(ResponseView.Full, "virtualmachine", result).get(0);
|
|
||||||
response.setResponseName(getCommandName());
|
|
||||||
setResponseObject(response);
|
|
||||||
} else {
|
|
||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to reset vm SSHKey");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|||||||
@ -16,42 +16,15 @@
|
|||||||
// under the License.
|
// under the License.
|
||||||
package org.apache.cloudstack.api.command.admin.vm;
|
package org.apache.cloudstack.api.command.admin.vm;
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ApiErrorCode;
|
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.command.admin.AdminCmd;
|
||||||
import org.apache.cloudstack.api.command.user.vm.RestoreVMCmd;
|
import org.apache.cloudstack.api.command.user.vm.RestoreVMCmd;
|
||||||
import org.apache.cloudstack.api.response.UserVmResponse;
|
import org.apache.cloudstack.api.response.UserVmResponse;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
|
||||||
|
|
||||||
import com.cloud.exception.ConcurrentOperationException;
|
|
||||||
import com.cloud.exception.InsufficientCapacityException;
|
|
||||||
import com.cloud.exception.ResourceAllocationException;
|
|
||||||
import com.cloud.exception.ResourceUnavailableException;
|
|
||||||
import com.cloud.uservm.UserVm;
|
|
||||||
import com.cloud.vm.VirtualMachine;
|
import com.cloud.vm.VirtualMachine;
|
||||||
|
|
||||||
@APICommand(name = "restoreVirtualMachine", description = "Restore a VM to original template/ISO or new template/ISO", responseObject = UserVmResponse.class, since = "3.0.0", responseView = ResponseView.Full, entityType = {VirtualMachine.class},
|
@APICommand(name = "restoreVirtualMachine", description = "Restore a VM to original template/ISO or new template/ISO", responseObject = UserVmResponse.class, since = "3.0.0", responseView = ResponseView.Full, entityType = {VirtualMachine.class},
|
||||||
requestHasSensitiveInfo = false,
|
requestHasSensitiveInfo = false,
|
||||||
responseHasSensitiveInfo = true)
|
responseHasSensitiveInfo = true)
|
||||||
public class RestoreVMCmdByAdmin extends RestoreVMCmd {
|
public class RestoreVMCmdByAdmin extends RestoreVMCmd implements AdminCmd {}
|
||||||
public static final Logger s_logger = Logger.getLogger(RestoreVMCmdByAdmin.class);
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute() throws ResourceUnavailableException, InsufficientCapacityException, ServerApiException, ConcurrentOperationException,
|
|
||||||
ResourceAllocationException {
|
|
||||||
UserVm result;
|
|
||||||
CallContext.current().setEventDetails("Vm Id: " + this._uuidMgr.getUuid(VirtualMachine.class, getVmId()));
|
|
||||||
result = _userVmService.restoreVM(this);
|
|
||||||
if (result != null) {
|
|
||||||
UserVmResponse response = _responseGenerator.createUserVmResponse(ResponseView.Full, "virtualmachine", result).get(0);
|
|
||||||
response.setResponseName(getCommandName());
|
|
||||||
setResponseObject(response);
|
|
||||||
} else {
|
|
||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to restore vm " + getVmId());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|||||||
@ -16,56 +16,15 @@
|
|||||||
// under the License.
|
// under the License.
|
||||||
package org.apache.cloudstack.api.command.admin.vm;
|
package org.apache.cloudstack.api.command.admin.vm;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ApiErrorCode;
|
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.command.admin.AdminCmd;
|
||||||
import org.apache.cloudstack.api.command.user.vm.ScaleVMCmd;
|
import org.apache.cloudstack.api.command.user.vm.ScaleVMCmd;
|
||||||
import org.apache.cloudstack.api.response.SuccessResponse;
|
import org.apache.cloudstack.api.response.SuccessResponse;
|
||||||
import org.apache.cloudstack.api.response.UserVmResponse;
|
|
||||||
|
|
||||||
import com.cloud.exception.ConcurrentOperationException;
|
|
||||||
import com.cloud.exception.ManagementServerException;
|
|
||||||
import com.cloud.exception.ResourceUnavailableException;
|
|
||||||
import com.cloud.exception.VirtualMachineMigrationException;
|
|
||||||
import com.cloud.uservm.UserVm;
|
|
||||||
import com.cloud.vm.VirtualMachine;
|
import com.cloud.vm.VirtualMachine;
|
||||||
|
|
||||||
|
|
||||||
@APICommand(name = "scaleVirtualMachine", description = "Scales the virtual machine to a new service offering.", responseObject = SuccessResponse.class, responseView = ResponseView.Full, entityType = {VirtualMachine.class},
|
@APICommand(name = "scaleVirtualMachine", description = "Scales the virtual machine to a new service offering.", responseObject = SuccessResponse.class, responseView = ResponseView.Full, entityType = {VirtualMachine.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||||
public class ScaleVMCmdByAdmin extends ScaleVMCmd {
|
public class ScaleVMCmdByAdmin extends ScaleVMCmd implements AdminCmd {}
|
||||||
public static final Logger s_logger = Logger.getLogger(ScaleVMCmdByAdmin.class.getName());
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute(){
|
|
||||||
UserVm result;
|
|
||||||
try {
|
|
||||||
result = _userVmService.upgradeVirtualMachine(this);
|
|
||||||
} catch (ResourceUnavailableException ex) {
|
|
||||||
s_logger.warn("Exception: ", ex);
|
|
||||||
throw new ServerApiException(ApiErrorCode.RESOURCE_UNAVAILABLE_ERROR, ex.getMessage());
|
|
||||||
} catch (ConcurrentOperationException ex) {
|
|
||||||
s_logger.warn("Exception: ", ex);
|
|
||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, ex.getMessage());
|
|
||||||
} catch (ManagementServerException ex) {
|
|
||||||
s_logger.warn("Exception: ", ex);
|
|
||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, ex.getMessage());
|
|
||||||
} catch (VirtualMachineMigrationException ex) {
|
|
||||||
s_logger.warn("Exception: ", ex);
|
|
||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, ex.getMessage());
|
|
||||||
}
|
|
||||||
if (result != null){
|
|
||||||
List<UserVmResponse> responseList = _responseGenerator.createUserVmResponse(ResponseView.Full, "virtualmachine", result);
|
|
||||||
UserVmResponse response = responseList.get(0);
|
|
||||||
response.setResponseName(getCommandName());
|
|
||||||
setResponseObject(response);
|
|
||||||
} else {
|
|
||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to scale vm");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -16,67 +16,14 @@
|
|||||||
// under the License.
|
// under the License.
|
||||||
package org.apache.cloudstack.api.command.admin.vm;
|
package org.apache.cloudstack.api.command.admin.vm;
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ApiErrorCode;
|
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.command.admin.AdminCmd;
|
||||||
import org.apache.cloudstack.api.command.user.vm.StartVMCmd;
|
import org.apache.cloudstack.api.command.user.vm.StartVMCmd;
|
||||||
import org.apache.cloudstack.api.response.UserVmResponse;
|
import org.apache.cloudstack.api.response.UserVmResponse;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
|
||||||
|
|
||||||
import com.cloud.exception.ConcurrentOperationException;
|
|
||||||
import com.cloud.exception.InsufficientCapacityException;
|
|
||||||
import com.cloud.exception.InsufficientServerCapacityException;
|
|
||||||
import com.cloud.exception.ResourceAllocationException;
|
|
||||||
import com.cloud.exception.ResourceUnavailableException;
|
|
||||||
import com.cloud.exception.StorageUnavailableException;
|
|
||||||
import com.cloud.uservm.UserVm;
|
|
||||||
import com.cloud.utils.exception.ExecutionException;
|
|
||||||
import com.cloud.vm.VirtualMachine;
|
import com.cloud.vm.VirtualMachine;
|
||||||
|
|
||||||
@APICommand(name = "startVirtualMachine", responseObject = UserVmResponse.class, description = "Starts a virtual machine.", responseView = ResponseView.Full, entityType = {VirtualMachine.class},
|
@APICommand(name = "startVirtualMachine", responseObject = UserVmResponse.class, description = "Starts a virtual machine.", responseView = ResponseView.Full, entityType = {VirtualMachine.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
||||||
public class StartVMCmdByAdmin extends StartVMCmd {
|
public class StartVMCmdByAdmin extends StartVMCmd implements AdminCmd {}
|
||||||
public static final Logger s_logger = Logger.getLogger(StartVMCmdByAdmin.class.getName());
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute() throws ResourceUnavailableException, ResourceAllocationException {
|
|
||||||
try {
|
|
||||||
CallContext.current().setEventDetails("Vm Id: " + this._uuidMgr.getUuid(VirtualMachine.class, getId()));
|
|
||||||
|
|
||||||
UserVm result ;
|
|
||||||
result = _userVmService.startVirtualMachine(this);
|
|
||||||
|
|
||||||
if (result != null) {
|
|
||||||
UserVmResponse response = _responseGenerator.createUserVmResponse(ResponseView.Full, "virtualmachine", result).get(0);
|
|
||||||
response.setResponseName(getCommandName());
|
|
||||||
setResponseObject(response);
|
|
||||||
} else {
|
|
||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to start a vm");
|
|
||||||
}
|
|
||||||
} catch (ConcurrentOperationException ex) {
|
|
||||||
s_logger.warn("Exception: ", ex);
|
|
||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, ex.getMessage());
|
|
||||||
} catch (StorageUnavailableException ex) {
|
|
||||||
s_logger.warn("Exception: ", ex);
|
|
||||||
throw new ServerApiException(ApiErrorCode.RESOURCE_UNAVAILABLE_ERROR, ex.getMessage());
|
|
||||||
} catch (ExecutionException ex) {
|
|
||||||
s_logger.warn("Exception: ", ex);
|
|
||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, ex.getMessage());
|
|
||||||
} catch (InsufficientCapacityException ex) {
|
|
||||||
StringBuilder message = new StringBuilder(ex.getMessage());
|
|
||||||
if (ex instanceof InsufficientServerCapacityException) {
|
|
||||||
if (((InsufficientServerCapacityException) ex).isAffinityApplied()) {
|
|
||||||
message.append(", Please check the affinity groups provided, there may not be sufficient capacity to follow them");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
s_logger.info(ex);
|
|
||||||
s_logger.info(message.toString(), ex);
|
|
||||||
throw new ServerApiException(ApiErrorCode.INSUFFICIENT_CAPACITY_ERROR, message.toString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|||||||
@ -16,40 +16,14 @@
|
|||||||
// under the License.
|
// under the License.
|
||||||
package org.apache.cloudstack.api.command.admin.vm;
|
package org.apache.cloudstack.api.command.admin.vm;
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ApiErrorCode;
|
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.command.admin.AdminCmd;
|
||||||
import org.apache.cloudstack.api.command.user.vm.StopVMCmd;
|
import org.apache.cloudstack.api.command.user.vm.StopVMCmd;
|
||||||
import org.apache.cloudstack.api.response.UserVmResponse;
|
import org.apache.cloudstack.api.response.UserVmResponse;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
|
||||||
|
|
||||||
import com.cloud.exception.ConcurrentOperationException;
|
|
||||||
import com.cloud.uservm.UserVm;
|
|
||||||
import com.cloud.vm.VirtualMachine;
|
import com.cloud.vm.VirtualMachine;
|
||||||
|
|
||||||
@APICommand(name = "stopVirtualMachine", responseObject = UserVmResponse.class, description = "Stops a virtual machine.", responseView = ResponseView.Full, entityType = {VirtualMachine.class},
|
@APICommand(name = "stopVirtualMachine", responseObject = UserVmResponse.class, description = "Stops a virtual machine.", responseView = ResponseView.Full, entityType = {VirtualMachine.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
||||||
public class StopVMCmdByAdmin extends StopVMCmd {
|
public class StopVMCmdByAdmin extends StopVMCmd implements AdminCmd {}
|
||||||
public static final Logger s_logger = Logger.getLogger(StopVMCmdByAdmin.class.getName());
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute() throws ServerApiException, ConcurrentOperationException {
|
|
||||||
CallContext.current().setEventDetails("Vm Id: " + this._uuidMgr.getUuid(VirtualMachine.class, getId()));
|
|
||||||
UserVm result;
|
|
||||||
|
|
||||||
result = _userVmService.stopVirtualMachine(getId(), isForced());
|
|
||||||
|
|
||||||
if (result != null) {
|
|
||||||
UserVmResponse response = _responseGenerator.createUserVmResponse(ResponseView.Full, "virtualmachine", result).get(0);
|
|
||||||
response.setResponseName(getCommandName());
|
|
||||||
setResponseObject(response);
|
|
||||||
} else {
|
|
||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to stop vm");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@ -16,43 +16,14 @@
|
|||||||
// under the License.
|
// under the License.
|
||||||
package org.apache.cloudstack.api.command.admin.vm;
|
package org.apache.cloudstack.api.command.admin.vm;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.EnumSet;
|
|
||||||
|
|
||||||
import com.cloud.vm.Nic;
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ApiConstants.VMDetails;
|
|
||||||
import org.apache.cloudstack.api.ApiErrorCode;
|
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.command.admin.AdminCmd;
|
||||||
import org.apache.cloudstack.api.command.user.vm.UpdateDefaultNicForVMCmd;
|
import org.apache.cloudstack.api.command.user.vm.UpdateDefaultNicForVMCmd;
|
||||||
import org.apache.cloudstack.api.response.UserVmResponse;
|
import org.apache.cloudstack.api.response.UserVmResponse;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
|
||||||
|
|
||||||
import com.cloud.uservm.UserVm;
|
|
||||||
import com.cloud.vm.VirtualMachine;
|
import com.cloud.vm.VirtualMachine;
|
||||||
|
|
||||||
@APICommand(name = "updateDefaultNicForVirtualMachine", description = "Changes the default NIC on a VM", responseObject = UserVmResponse.class, responseView = ResponseView.Full, entityType = {VirtualMachine.class},
|
@APICommand(name = "updateDefaultNicForVirtualMachine", description = "Changes the default NIC on a VM", responseObject = UserVmResponse.class, responseView = ResponseView.Full, entityType = {VirtualMachine.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
||||||
public class UpdateDefaultNicForVMCmdByAdmin extends UpdateDefaultNicForVMCmd {
|
public class UpdateDefaultNicForVMCmdByAdmin extends UpdateDefaultNicForVMCmd implements AdminCmd {}
|
||||||
public static final Logger s_logger = Logger.getLogger(UpdateDefaultNicForVMCmdByAdmin.class);
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute(){
|
|
||||||
CallContext.current().setEventDetails("Vm Id: "+this._uuidMgr.getUuid(VirtualMachine.class, getVmId()) + " Nic Id: " + this._uuidMgr.getUuid(Nic.class, getNicId()));
|
|
||||||
UserVm result = _userVmService.updateDefaultNicForVirtualMachine(this);
|
|
||||||
ArrayList<VMDetails> dc = new ArrayList<VMDetails>();
|
|
||||||
dc.add(VMDetails.valueOf("nics"));
|
|
||||||
EnumSet<VMDetails> details = EnumSet.copyOf(dc);
|
|
||||||
if (result != null){
|
|
||||||
UserVmResponse response = _responseGenerator.createUserVmResponse(ResponseView.Full, "virtualmachine", details, result).get(0);
|
|
||||||
response.setResponseName(getCommandName());
|
|
||||||
setResponseObject(response);
|
|
||||||
} else {
|
|
||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to set default nic for VM. Refer to server logs for details.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@ -16,19 +16,12 @@
|
|||||||
// under the License.
|
// under the License.
|
||||||
package org.apache.cloudstack.api.command.admin.vm;
|
package org.apache.cloudstack.api.command.admin.vm;
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ApiErrorCode;
|
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.command.admin.AdminCmd;
|
||||||
import org.apache.cloudstack.api.command.user.vm.UpdateVMCmd;
|
import org.apache.cloudstack.api.command.user.vm.UpdateVMCmd;
|
||||||
import org.apache.cloudstack.api.response.UserVmResponse;
|
import org.apache.cloudstack.api.response.UserVmResponse;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
|
||||||
|
|
||||||
import com.cloud.exception.InsufficientCapacityException;
|
|
||||||
import com.cloud.exception.ResourceUnavailableException;
|
|
||||||
import com.cloud.uservm.UserVm;
|
|
||||||
import com.cloud.vm.VirtualMachine;
|
import com.cloud.vm.VirtualMachine;
|
||||||
|
|
||||||
|
|
||||||
@ -36,20 +29,4 @@ import com.cloud.vm.VirtualMachine;
|
|||||||
"new properties to take effect. UpdateVirtualMachine does not first check whether the VM is stopped. " +
|
"new properties to take effect. UpdateVirtualMachine does not first check whether the VM is stopped. " +
|
||||||
"Therefore, stop the VM manually before issuing this call.", responseObject = UserVmResponse.class, responseView = ResponseView.Full, entityType = {VirtualMachine.class},
|
"Therefore, stop the VM manually before issuing this call.", responseObject = UserVmResponse.class, responseView = ResponseView.Full, entityType = {VirtualMachine.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
||||||
public class UpdateVMCmdByAdmin extends UpdateVMCmd {
|
public class UpdateVMCmdByAdmin extends UpdateVMCmd implements AdminCmd {}
|
||||||
public static final Logger s_logger = Logger.getLogger(UpdateVMCmdByAdmin.class.getName());
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute() throws ResourceUnavailableException,
|
|
||||||
InsufficientCapacityException, ServerApiException {
|
|
||||||
CallContext.current().setEventDetails("Vm Id: "+this._uuidMgr.getUuid(VirtualMachine.class, getId()));
|
|
||||||
UserVm result = _userVmService.updateVirtualMachine(this);
|
|
||||||
if (result != null){
|
|
||||||
UserVmResponse response = _responseGenerator.createUserVmResponse(ResponseView.Full, "virtualmachine", result).get(0);
|
|
||||||
response.setResponseName(getCommandName());
|
|
||||||
setResponseObject(response);
|
|
||||||
} else {
|
|
||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to update vm");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@ -16,46 +16,16 @@
|
|||||||
// under the License.
|
// under the License.
|
||||||
package org.apache.cloudstack.api.command.admin.vm;
|
package org.apache.cloudstack.api.command.admin.vm;
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ApiErrorCode;
|
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.command.admin.AdminCmd;
|
||||||
import org.apache.cloudstack.api.command.user.vm.UpgradeVMCmd;
|
import org.apache.cloudstack.api.command.user.vm.UpgradeVMCmd;
|
||||||
import org.apache.cloudstack.api.response.UserVmResponse;
|
import org.apache.cloudstack.api.response.UserVmResponse;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
|
||||||
|
|
||||||
import com.cloud.exception.InvalidParameterValueException;
|
|
||||||
import com.cloud.exception.ResourceAllocationException;
|
|
||||||
import com.cloud.offering.ServiceOffering;
|
|
||||||
import com.cloud.uservm.UserVm;
|
|
||||||
import com.cloud.vm.VirtualMachine;
|
import com.cloud.vm.VirtualMachine;
|
||||||
|
|
||||||
@APICommand(name = "changeServiceForVirtualMachine", responseObject=UserVmResponse.class, description="Changes the service offering for a virtual machine. " +
|
@APICommand(name = "changeServiceForVirtualMachine", responseObject=UserVmResponse.class, description="Changes the service offering for a virtual machine. " +
|
||||||
"The virtual machine must be in a \"Stopped\" state for " +
|
"The virtual machine must be in a \"Stopped\" state for " +
|
||||||
"this command to take effect.", responseView = ResponseView.Full, entityType = {VirtualMachine.class},
|
"this command to take effect.", responseView = ResponseView.Full, entityType = {VirtualMachine.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
||||||
public class UpgradeVMCmdByAdmin extends UpgradeVMCmd {
|
public class UpgradeVMCmdByAdmin extends UpgradeVMCmd implements AdminCmd {}
|
||||||
public static final Logger s_logger = Logger.getLogger(UpgradeVMCmdByAdmin.class.getName());
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute() throws ResourceAllocationException{
|
|
||||||
CallContext.current().setEventDetails("Vm Id: "+this._uuidMgr.getUuid(VirtualMachine.class, getId()));
|
|
||||||
|
|
||||||
ServiceOffering serviceOffering = _entityMgr.findById(ServiceOffering.class, serviceOfferingId);
|
|
||||||
if (serviceOffering == null) {
|
|
||||||
throw new InvalidParameterValueException("Unable to find service offering: " + serviceOfferingId);
|
|
||||||
}
|
|
||||||
|
|
||||||
UserVm result = _userVmService.upgradeVirtualMachine(this);
|
|
||||||
if (result != null){
|
|
||||||
UserVmResponse response = _responseGenerator.createUserVmResponse(ResponseView.Full, "virtualmachine", result).get(0);
|
|
||||||
response.setResponseName(getCommandName());
|
|
||||||
setResponseObject(response);
|
|
||||||
} else {
|
|
||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to upgrade vm");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@ -16,44 +16,12 @@
|
|||||||
// under the License.
|
// under the License.
|
||||||
package org.apache.cloudstack.api.command.admin.vmsnapshot;
|
package org.apache.cloudstack.api.command.admin.vmsnapshot;
|
||||||
|
|
||||||
import java.util.logging.Logger;
|
|
||||||
|
|
||||||
import com.cloud.vm.snapshot.VMSnapshot;
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ApiErrorCode;
|
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.command.admin.AdminCmd;
|
||||||
import org.apache.cloudstack.api.command.user.vmsnapshot.RevertToVMSnapshotCmd;
|
import org.apache.cloudstack.api.command.user.vmsnapshot.RevertToVMSnapshotCmd;
|
||||||
import org.apache.cloudstack.api.response.UserVmResponse;
|
import org.apache.cloudstack.api.response.UserVmResponse;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
|
||||||
|
|
||||||
import com.cloud.exception.ConcurrentOperationException;
|
|
||||||
import com.cloud.exception.InsufficientCapacityException;
|
|
||||||
import com.cloud.exception.ResourceAllocationException;
|
|
||||||
import com.cloud.exception.ResourceUnavailableException;
|
|
||||||
import com.cloud.uservm.UserVm;
|
|
||||||
|
|
||||||
@APICommand(name = "revertToVMSnapshot", description = "Revert VM from a vmsnapshot.", responseObject = UserVmResponse.class, since = "4.2.0", responseView = ResponseView.Full,
|
@APICommand(name = "revertToVMSnapshot", description = "Revert VM from a vmsnapshot.", responseObject = UserVmResponse.class, since = "4.2.0", responseView = ResponseView.Full,
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
||||||
public class RevertToVMSnapshotCmdByAdmin extends RevertToVMSnapshotCmd {
|
public class RevertToVMSnapshotCmdByAdmin extends RevertToVMSnapshotCmd implements AdminCmd {}
|
||||||
public static final Logger s_logger = Logger
|
|
||||||
.getLogger(RevertToVMSnapshotCmdByAdmin.class.getName());
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute() throws ResourceUnavailableException, InsufficientCapacityException, ResourceAllocationException, ConcurrentOperationException {
|
|
||||||
CallContext.current().setEventDetails(
|
|
||||||
"vmsnapshot id: " + this._uuidMgr.getUuid(VMSnapshot.class, getVmSnapShotId()));
|
|
||||||
UserVm result = _vmSnapshotService.revertToSnapshot(getVmSnapShotId());
|
|
||||||
if (result != null) {
|
|
||||||
UserVmResponse response = _responseGenerator.createUserVmResponse(ResponseView.Full,
|
|
||||||
"virtualmachine", result).get(0);
|
|
||||||
response.setResponseName(getCommandName());
|
|
||||||
setResponseObject(response);
|
|
||||||
} else {
|
|
||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR,"Failed to revert VM snapshot");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|||||||
@ -16,34 +16,14 @@
|
|||||||
// under the License.
|
// under the License.
|
||||||
package org.apache.cloudstack.api.command.admin.volume;
|
package org.apache.cloudstack.api.command.admin.volume;
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ApiErrorCode;
|
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.command.admin.AdminCmd;
|
||||||
import org.apache.cloudstack.api.command.user.volume.AttachVolumeCmd;
|
import org.apache.cloudstack.api.command.user.volume.AttachVolumeCmd;
|
||||||
import org.apache.cloudstack.api.response.VolumeResponse;
|
import org.apache.cloudstack.api.response.VolumeResponse;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
|
||||||
|
|
||||||
import com.cloud.storage.Volume;
|
|
||||||
import com.cloud.vm.VirtualMachine;
|
import com.cloud.vm.VirtualMachine;
|
||||||
|
|
||||||
@APICommand(name = "attachVolume", description = "Attaches a disk volume to a virtual machine.", responseObject = VolumeResponse.class, responseView = ResponseView.Full, entityType = {VirtualMachine.class},
|
@APICommand(name = "attachVolume", description = "Attaches a disk volume to a virtual machine.", responseObject = VolumeResponse.class, responseView = ResponseView.Full, entityType = {VirtualMachine.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||||
public class AttachVolumeCmdByAdmin extends AttachVolumeCmd {
|
public class AttachVolumeCmdByAdmin extends AttachVolumeCmd implements AdminCmd {}
|
||||||
public static final Logger s_logger = Logger.getLogger(AttachVolumeCmdByAdmin.class.getName());
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute(){
|
|
||||||
CallContext.current().setEventDetails("Volume Id: "+this._uuidMgr.getUuid(Volume.class, getId())+" VmId: "+this._uuidMgr.getUuid(VirtualMachine.class, getVirtualMachineId()));
|
|
||||||
Volume result = _volumeService.attachVolumeToVM(this);
|
|
||||||
if (result != null) {
|
|
||||||
VolumeResponse response = _responseGenerator.createVolumeResponse(ResponseView.Full, result);
|
|
||||||
response.setResponseName(getCommandName());
|
|
||||||
setResponseObject(response);
|
|
||||||
} else {
|
|
||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to attach volume");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@ -16,49 +16,16 @@
|
|||||||
// under the License.
|
// under the License.
|
||||||
package org.apache.cloudstack.api.command.admin.volume;
|
package org.apache.cloudstack.api.command.admin.volume;
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ApiErrorCode;
|
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.command.admin.AdminCmd;
|
||||||
import org.apache.cloudstack.api.command.user.volume.CreateVolumeCmd;
|
import org.apache.cloudstack.api.command.user.volume.CreateVolumeCmd;
|
||||||
import org.apache.cloudstack.api.response.VolumeResponse;
|
import org.apache.cloudstack.api.response.VolumeResponse;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
|
||||||
|
|
||||||
import com.cloud.storage.Snapshot;
|
|
||||||
import com.cloud.storage.Volume;
|
import com.cloud.storage.Volume;
|
||||||
import com.cloud.vm.VirtualMachine;
|
import com.cloud.vm.VirtualMachine;
|
||||||
|
|
||||||
@APICommand(name = "createVolume", responseObject = VolumeResponse.class, description = "Creates a disk volume from a disk offering. This disk volume must still be attached to a virtual machine to make use of it.", responseView = ResponseView.Full, entityType = {
|
@APICommand(name = "createVolume", responseObject = VolumeResponse.class, description = "Creates a disk volume from a disk offering. This disk volume must still be attached to a virtual machine to make use of it.", responseView = ResponseView.Full, entityType = {
|
||||||
Volume.class, VirtualMachine.class},
|
Volume.class, VirtualMachine.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||||
public class CreateVolumeCmdByAdmin extends CreateVolumeCmd {
|
public class CreateVolumeCmdByAdmin extends CreateVolumeCmd implements AdminCmd {}
|
||||||
public static final Logger s_logger = Logger.getLogger(CreateVolumeCmdByAdmin.class.getName());
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute(){
|
|
||||||
CallContext.current().setEventDetails("Volume Id: "+ getEntityUuid() + ((getSnapshotId() == null) ? "" : " from snapshot: " + this._uuidMgr.getUuid(Snapshot.class, getSnapshotId())));
|
|
||||||
Volume volume = _volumeService.createVolume(this);
|
|
||||||
if (volume != null) {
|
|
||||||
VolumeResponse response = _responseGenerator.createVolumeResponse(ResponseView.Full, volume);
|
|
||||||
//FIXME - have to be moved to ApiResponseHelper
|
|
||||||
if (getSnapshotId() != null) {
|
|
||||||
Snapshot snap = _entityMgr.findById(Snapshot.class, getSnapshotId());
|
|
||||||
if (snap != null) {
|
|
||||||
response.setSnapshotId(snap.getUuid()); // if the volume was
|
|
||||||
// created from a
|
|
||||||
// snapshot,
|
|
||||||
// snapshotId will
|
|
||||||
// be set so we pass
|
|
||||||
// it back in the
|
|
||||||
// response
|
|
||||||
}
|
|
||||||
}
|
|
||||||
response.setResponseName(getCommandName());
|
|
||||||
setResponseObject(response);
|
|
||||||
} else {
|
|
||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to create a volume");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@ -16,35 +16,14 @@
|
|||||||
// under the License.
|
// under the License.
|
||||||
package org.apache.cloudstack.api.command.admin.volume;
|
package org.apache.cloudstack.api.command.admin.volume;
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ApiErrorCode;
|
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.command.admin.AdminCmd;
|
||||||
import org.apache.cloudstack.api.command.user.volume.DetachVolumeCmd;
|
import org.apache.cloudstack.api.command.user.volume.DetachVolumeCmd;
|
||||||
import org.apache.cloudstack.api.response.VolumeResponse;
|
import org.apache.cloudstack.api.response.VolumeResponse;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
|
||||||
|
|
||||||
import com.cloud.storage.Volume;
|
|
||||||
import com.cloud.vm.VirtualMachine;
|
import com.cloud.vm.VirtualMachine;
|
||||||
|
|
||||||
@APICommand(name = "detachVolume", description = "Detaches a disk volume from a virtual machine.", responseObject = VolumeResponse.class, responseView = ResponseView.Full, entityType = {VirtualMachine.class},
|
@APICommand(name = "detachVolume", description = "Detaches a disk volume from a virtual machine.", responseObject = VolumeResponse.class, responseView = ResponseView.Full, entityType = {VirtualMachine.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||||
public class DetachVolumeCmdByAdmin extends DetachVolumeCmd {
|
public class DetachVolumeCmdByAdmin extends DetachVolumeCmd implements AdminCmd {}
|
||||||
public static final Logger s_logger = Logger.getLogger(DetachVolumeCmdByAdmin.class.getName());
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute(){
|
|
||||||
CallContext.current().setEventDetails(getEventDescription());
|
|
||||||
Volume result = _volumeService.detachVolumeFromVM(this);
|
|
||||||
if (result != null){
|
|
||||||
VolumeResponse response = _responseGenerator.createVolumeResponse(ResponseView.Full, result);
|
|
||||||
response.setResponseName("volume");
|
|
||||||
setResponseObject(response);
|
|
||||||
} else {
|
|
||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to detach volume");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@ -18,6 +18,7 @@ package org.apache.cloudstack.api.command.admin.volume;
|
|||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
|
import org.apache.cloudstack.api.command.admin.AdminCmd;
|
||||||
import org.apache.cloudstack.api.command.user.volume.ListVolumesCmd;
|
import org.apache.cloudstack.api.command.user.volume.ListVolumesCmd;
|
||||||
import org.apache.cloudstack.api.response.VolumeResponse;
|
import org.apache.cloudstack.api.response.VolumeResponse;
|
||||||
|
|
||||||
@ -25,6 +26,4 @@ import com.cloud.storage.Volume;
|
|||||||
|
|
||||||
@APICommand(name = "listVolumes", description = "Lists all volumes.", responseObject = VolumeResponse.class, responseView = ResponseView.Full, entityType = {
|
@APICommand(name = "listVolumes", description = "Lists all volumes.", responseObject = VolumeResponse.class, responseView = ResponseView.Full, entityType = {
|
||||||
Volume.class}, requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
Volume.class}, requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||||
public class ListVolumesCmdByAdmin extends ListVolumesCmd {
|
public class ListVolumesCmdByAdmin extends ListVolumesCmd implements AdminCmd {}
|
||||||
|
|
||||||
}
|
|
||||||
|
|||||||
@ -17,9 +17,8 @@
|
|||||||
package org.apache.cloudstack.api.command.admin.volume;
|
package org.apache.cloudstack.api.command.admin.volume;
|
||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ApiErrorCode;
|
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.command.admin.AdminCmd;
|
||||||
import org.apache.cloudstack.api.command.user.volume.MigrateVolumeCmd;
|
import org.apache.cloudstack.api.command.user.volume.MigrateVolumeCmd;
|
||||||
import org.apache.cloudstack.api.response.VolumeResponse;
|
import org.apache.cloudstack.api.response.VolumeResponse;
|
||||||
|
|
||||||
@ -27,18 +26,4 @@ import com.cloud.storage.Volume;
|
|||||||
|
|
||||||
@APICommand(name = "migrateVolume", description = "Migrate volume", responseObject = VolumeResponse.class, since = "3.0.0", responseView = ResponseView.Full, entityType = {
|
@APICommand(name = "migrateVolume", description = "Migrate volume", responseObject = VolumeResponse.class, since = "3.0.0", responseView = ResponseView.Full, entityType = {
|
||||||
Volume.class}, requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
Volume.class}, requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||||
public class MigrateVolumeCmdByAdmin extends MigrateVolumeCmd {
|
public class MigrateVolumeCmdByAdmin extends MigrateVolumeCmd implements AdminCmd {}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute() {
|
|
||||||
Volume result = _volumeService.migrateVolume(this);
|
|
||||||
if (result != null) {
|
|
||||||
VolumeResponse response = _responseGenerator.createVolumeResponse(ResponseView.Full, result);
|
|
||||||
response.setResponseName(getCommandName());
|
|
||||||
setResponseObject(response);
|
|
||||||
} else {
|
|
||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to migrate volume");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|||||||
@ -17,40 +17,14 @@
|
|||||||
package org.apache.cloudstack.api.command.admin.volume;
|
package org.apache.cloudstack.api.command.admin.volume;
|
||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ApiErrorCode;
|
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.command.admin.AdminCmd;
|
||||||
import org.apache.cloudstack.api.command.user.volume.ResizeVolumeCmd;
|
import org.apache.cloudstack.api.command.user.volume.ResizeVolumeCmd;
|
||||||
import org.apache.cloudstack.api.response.VolumeResponse;
|
import org.apache.cloudstack.api.response.VolumeResponse;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
|
||||||
|
|
||||||
import com.cloud.exception.InvalidParameterValueException;
|
|
||||||
import com.cloud.exception.ResourceAllocationException;
|
|
||||||
import com.cloud.storage.Volume;
|
import com.cloud.storage.Volume;
|
||||||
|
|
||||||
|
|
||||||
@APICommand(name = "resizeVolume", description = "Resizes a volume", responseObject = VolumeResponse.class, responseView = ResponseView.Full, entityType = {Volume.class},
|
@APICommand(name = "resizeVolume", description = "Resizes a volume", responseObject = VolumeResponse.class, responseView = ResponseView.Full, entityType = {Volume.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||||
public class ResizeVolumeCmdByAdmin extends ResizeVolumeCmd {
|
public class ResizeVolumeCmdByAdmin extends ResizeVolumeCmd implements AdminCmd {}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute() throws ResourceAllocationException{
|
|
||||||
Volume volume = null;
|
|
||||||
try {
|
|
||||||
CallContext.current().setEventDetails("Volume Id: " + this._uuidMgr.getUuid(Volume.class, getEntityId()) + " to size " + getSize() + "G");
|
|
||||||
volume = _volumeService.resizeVolume(this);
|
|
||||||
} catch (InvalidParameterValueException ex) {
|
|
||||||
s_logger.info(ex.getMessage());
|
|
||||||
throw new ServerApiException(ApiErrorCode.UNSUPPORTED_ACTION_ERROR, ex.getMessage());
|
|
||||||
}
|
|
||||||
|
|
||||||
if (volume != null) {
|
|
||||||
VolumeResponse response = _responseGenerator.createVolumeResponse(ResponseView.Full, volume);
|
|
||||||
//FIXME - have to be moved to ApiResponseHelper
|
|
||||||
response.setResponseName(getCommandName());
|
|
||||||
setResponseObject(response);
|
|
||||||
} else {
|
|
||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to resize volume");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@ -17,30 +17,13 @@
|
|||||||
package org.apache.cloudstack.api.command.admin.volume;
|
package org.apache.cloudstack.api.command.admin.volume;
|
||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ApiErrorCode;
|
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.command.admin.AdminCmd;
|
||||||
import org.apache.cloudstack.api.command.user.volume.UpdateVolumeCmd;
|
import org.apache.cloudstack.api.command.user.volume.UpdateVolumeCmd;
|
||||||
import org.apache.cloudstack.api.response.VolumeResponse;
|
import org.apache.cloudstack.api.response.VolumeResponse;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
|
||||||
|
|
||||||
import com.cloud.storage.Volume;
|
import com.cloud.storage.Volume;
|
||||||
|
|
||||||
@APICommand(name = "updateVolume", description = "Updates the volume.", responseObject = VolumeResponse.class, responseView = ResponseView.Full, entityType = {Volume.class},
|
@APICommand(name = "updateVolume", description = "Updates the volume.", responseObject = VolumeResponse.class, responseView = ResponseView.Full, entityType = {Volume.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||||
public class UpdateVolumeCmdByAdmin extends UpdateVolumeCmd {
|
public class UpdateVolumeCmdByAdmin extends UpdateVolumeCmd implements AdminCmd {}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute(){
|
|
||||||
CallContext.current().setEventDetails("Volume Id: "+this._uuidMgr.getUuid(Volume.class, getId()));
|
|
||||||
Volume result = _volumeService.updateVolume(getId(), getPath(), getState(), getStorageId(), getDisplayVolume(),
|
|
||||||
getCustomId(), getEntityOwnerId(), getChainInfo());
|
|
||||||
if (result != null) {
|
|
||||||
VolumeResponse response = _responseGenerator.createVolumeResponse(ResponseView.Full, result);
|
|
||||||
response.setResponseName(getCommandName());
|
|
||||||
setResponseObject(response);
|
|
||||||
} else {
|
|
||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to update volume");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@ -16,43 +16,14 @@
|
|||||||
// under the License.
|
// under the License.
|
||||||
package org.apache.cloudstack.api.command.admin.volume;
|
package org.apache.cloudstack.api.command.admin.volume;
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ApiErrorCode;
|
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.command.admin.AdminCmd;
|
||||||
import org.apache.cloudstack.api.command.user.volume.UploadVolumeCmd;
|
import org.apache.cloudstack.api.command.user.volume.UploadVolumeCmd;
|
||||||
import org.apache.cloudstack.api.response.VolumeResponse;
|
import org.apache.cloudstack.api.response.VolumeResponse;
|
||||||
|
|
||||||
import com.cloud.exception.ConcurrentOperationException;
|
|
||||||
import com.cloud.exception.InsufficientCapacityException;
|
|
||||||
import com.cloud.exception.NetworkRuleConflictException;
|
|
||||||
import com.cloud.exception.ResourceAllocationException;
|
|
||||||
import com.cloud.exception.ResourceUnavailableException;
|
|
||||||
import com.cloud.storage.Volume;
|
import com.cloud.storage.Volume;
|
||||||
|
|
||||||
@APICommand(name = "uploadVolume", description = "Uploads a data disk.", responseObject = VolumeResponse.class, responseView = ResponseView.Full, entityType = {Volume.class},
|
@APICommand(name = "uploadVolume", description = "Uploads a data disk.", responseObject = VolumeResponse.class, responseView = ResponseView.Full, entityType = {Volume.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||||
public class UploadVolumeCmdByAdmin extends UploadVolumeCmd {
|
public class UploadVolumeCmdByAdmin extends UploadVolumeCmd implements AdminCmd {}
|
||||||
public static final Logger s_logger = Logger.getLogger(UploadVolumeCmdByAdmin.class.getName());
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute() throws ResourceUnavailableException,
|
|
||||||
InsufficientCapacityException, ServerApiException,
|
|
||||||
ConcurrentOperationException, ResourceAllocationException,
|
|
||||||
NetworkRuleConflictException {
|
|
||||||
|
|
||||||
Volume volume = _volumeService.uploadVolume(this);
|
|
||||||
if (volume != null){
|
|
||||||
VolumeResponse response = _responseGenerator.createVolumeResponse(ResponseView.Full, volume);
|
|
||||||
response.setResponseName(getCommandName());
|
|
||||||
setResponseObject(response);
|
|
||||||
} else {
|
|
||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to upload volume");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|||||||
@ -16,54 +16,14 @@
|
|||||||
// under the License.
|
// under the License.
|
||||||
package org.apache.cloudstack.api.command.admin.vpc;
|
package org.apache.cloudstack.api.command.admin.vpc;
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ApiConstants;
|
|
||||||
import org.apache.cloudstack.api.ApiErrorCode;
|
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.command.admin.AdminCmd;
|
||||||
import org.apache.cloudstack.api.command.user.vpc.CreateVPCCmd;
|
import org.apache.cloudstack.api.command.user.vpc.CreateVPCCmd;
|
||||||
import org.apache.cloudstack.api.response.VpcResponse;
|
import org.apache.cloudstack.api.response.VpcResponse;
|
||||||
|
|
||||||
import com.cloud.exception.ConcurrentOperationException;
|
|
||||||
import com.cloud.exception.InsufficientCapacityException;
|
|
||||||
import com.cloud.exception.ResourceUnavailableException;
|
|
||||||
import com.cloud.network.vpc.Vpc;
|
import com.cloud.network.vpc.Vpc;
|
||||||
|
|
||||||
@APICommand(name = "createVPC", description = "Creates a VPC", responseObject = VpcResponse.class, responseView = ResponseView.Full, entityType = {Vpc.class},
|
@APICommand(name = "createVPC", description = "Creates a VPC", responseObject = VpcResponse.class, responseView = ResponseView.Full, entityType = {Vpc.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||||
public class CreateVPCCmdByAdmin extends CreateVPCCmd {
|
public class CreateVPCCmdByAdmin extends CreateVPCCmd implements AdminCmd {}
|
||||||
public static final Logger s_logger = Logger.getLogger(CreateVPCCmdByAdmin.class.getName());
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute() {
|
|
||||||
Vpc vpc = null;
|
|
||||||
try {
|
|
||||||
if (isStart()) {
|
|
||||||
_vpcService.startVpc(getEntityId(), true);
|
|
||||||
} else {
|
|
||||||
s_logger.debug("Not starting VPC as " + ApiConstants.START + "=false was passed to the API");
|
|
||||||
}
|
|
||||||
vpc = _entityMgr.findById(Vpc.class, getEntityId());
|
|
||||||
} catch (ResourceUnavailableException ex) {
|
|
||||||
s_logger.warn("Exception: ", ex);
|
|
||||||
throw new ServerApiException(ApiErrorCode.RESOURCE_UNAVAILABLE_ERROR, ex.getMessage());
|
|
||||||
} catch (ConcurrentOperationException ex) {
|
|
||||||
s_logger.warn("Exception: ", ex);
|
|
||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, ex.getMessage());
|
|
||||||
} catch (InsufficientCapacityException ex) {
|
|
||||||
s_logger.info(ex);
|
|
||||||
s_logger.trace(ex);
|
|
||||||
throw new ServerApiException(ApiErrorCode.INSUFFICIENT_CAPACITY_ERROR, ex.getMessage());
|
|
||||||
}
|
|
||||||
|
|
||||||
if (vpc != null) {
|
|
||||||
VpcResponse response = _responseGenerator.createVpcResponse(ResponseView.Full, vpc);
|
|
||||||
response.setResponseName(getCommandName());
|
|
||||||
setResponseObject(response);
|
|
||||||
} else {
|
|
||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to create VPC");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@ -16,41 +16,15 @@
|
|||||||
// under the License.
|
// under the License.
|
||||||
package org.apache.cloudstack.api.command.admin.vpc;
|
package org.apache.cloudstack.api.command.admin.vpc;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
|
import org.apache.cloudstack.api.command.admin.AdminCmd;
|
||||||
import org.apache.cloudstack.api.command.user.vpc.ListVPCsCmd;
|
import org.apache.cloudstack.api.command.user.vpc.ListVPCsCmd;
|
||||||
import org.apache.cloudstack.api.response.ListResponse;
|
|
||||||
import org.apache.cloudstack.api.response.VpcResponse;
|
import org.apache.cloudstack.api.response.VpcResponse;
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
|
|
||||||
import com.cloud.network.vpc.Vpc;
|
import com.cloud.network.vpc.Vpc;
|
||||||
import com.cloud.utils.Pair;
|
|
||||||
|
|
||||||
|
|
||||||
@APICommand(name = "listVPCs", description = "Lists VPCs", responseObject = VpcResponse.class, responseView = ResponseView.Full, entityType = {Vpc.class},
|
@APICommand(name = "listVPCs", description = "Lists VPCs", responseObject = VpcResponse.class, responseView = ResponseView.Full, entityType = {Vpc.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||||
public class ListVPCsCmdByAdmin extends ListVPCsCmd {
|
public class ListVPCsCmdByAdmin extends ListVPCsCmd implements AdminCmd {}
|
||||||
public static final Logger s_logger = Logger.getLogger(ListVPCsCmdByAdmin.class.getName());
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute() {
|
|
||||||
Pair<List<? extends Vpc>, Integer> vpcs =
|
|
||||||
_vpcService.listVpcs(getId(), getVpcName(), getDisplayText(), getSupportedServices(), getCidr(), getVpcOffId(), getState(), getAccountName(), getDomainId(),
|
|
||||||
getKeyword(), getStartIndex(), getPageSizeVal(), getZoneId(), isRecursive(), listAll(), getRestartRequired(), getTags(),
|
|
||||||
getProjectId(), getDisplay());
|
|
||||||
ListResponse<VpcResponse> response = new ListResponse<VpcResponse>();
|
|
||||||
List<VpcResponse> vpcResponses = new ArrayList<VpcResponse>();
|
|
||||||
for (Vpc vpc : vpcs.first()) {
|
|
||||||
VpcResponse offeringResponse = _responseGenerator.createVpcResponse(ResponseView.Full, vpc);
|
|
||||||
vpcResponses.add(offeringResponse);
|
|
||||||
}
|
|
||||||
|
|
||||||
response.setResponses(vpcResponses, vpcs.second());
|
|
||||||
response.setResponseName(getCommandName());
|
|
||||||
setResponseObject(response);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|||||||
@ -16,12 +16,9 @@
|
|||||||
// under the License.
|
// under the License.
|
||||||
package org.apache.cloudstack.api.command.admin.vpc;
|
package org.apache.cloudstack.api.command.admin.vpc;
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ApiErrorCode;
|
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.command.admin.AdminCmd;
|
||||||
import org.apache.cloudstack.api.command.user.vpc.UpdateVPCCmd;
|
import org.apache.cloudstack.api.command.user.vpc.UpdateVPCCmd;
|
||||||
import org.apache.cloudstack.api.response.VpcResponse;
|
import org.apache.cloudstack.api.response.VpcResponse;
|
||||||
|
|
||||||
@ -29,20 +26,4 @@ import com.cloud.network.vpc.Vpc;
|
|||||||
|
|
||||||
@APICommand(name = "updateVPC", description = "Updates a VPC", responseObject = VpcResponse.class, responseView = ResponseView.Full, entityType = {Vpc.class},
|
@APICommand(name = "updateVPC", description = "Updates a VPC", responseObject = VpcResponse.class, responseView = ResponseView.Full, entityType = {Vpc.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||||
public class UpdateVPCCmdByAdmin extends UpdateVPCCmd {
|
public class UpdateVPCCmdByAdmin extends UpdateVPCCmd implements AdminCmd {}
|
||||||
public static final Logger s_logger = Logger.getLogger(UpdateVPCCmdByAdmin.class.getName());
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute(){
|
|
||||||
Vpc result = _vpcService.updateVpc(getId(), getVpcName(), getDisplayText(), getCustomId(), isDisplayVpc());
|
|
||||||
if (result != null) {
|
|
||||||
VpcResponse response = _responseGenerator.createVpcResponse(ResponseView.Full, result);
|
|
||||||
response.setResponseName(getCommandName());
|
|
||||||
setResponseObject(response);
|
|
||||||
} else {
|
|
||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to update VPC");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|||||||
@ -18,10 +18,11 @@ package org.apache.cloudstack.api.command.admin.zone;
|
|||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
|
import org.apache.cloudstack.api.command.admin.AdminCmd;
|
||||||
import org.apache.cloudstack.api.command.user.zone.ListZonesCmd;
|
import org.apache.cloudstack.api.command.user.zone.ListZonesCmd;
|
||||||
import org.apache.cloudstack.api.response.ZoneResponse;
|
import org.apache.cloudstack.api.response.ZoneResponse;
|
||||||
|
|
||||||
@APICommand(name = "listZones", description = "Lists zones", responseObject = ZoneResponse.class, responseView = ResponseView.Full,
|
@APICommand(name = "listZones", description = "Lists zones", responseObject = ZoneResponse.class, responseView = ResponseView.Full,
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||||
public class ListZonesCmdByAdmin extends ListZonesCmd {
|
public class ListZonesCmdByAdmin extends ListZonesCmd implements AdminCmd {
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,29 @@
|
|||||||
|
///
|
||||||
|
// 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;
|
||||||
|
|
||||||
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
|
import org.apache.cloudstack.api.command.ResponseViewProvider;
|
||||||
|
|
||||||
|
public interface UserCmd extends ResponseViewProvider {
|
||||||
|
default ResponseView getResponseView() {
|
||||||
|
return ResponseView.Restricted;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -28,6 +28,7 @@ import org.apache.cloudstack.api.ApiConstants.DomainDetails;
|
|||||||
import org.apache.cloudstack.api.BaseListDomainResourcesCmd;
|
import org.apache.cloudstack.api.BaseListDomainResourcesCmd;
|
||||||
import org.apache.cloudstack.api.Parameter;
|
import org.apache.cloudstack.api.Parameter;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
|
import org.apache.cloudstack.api.command.user.UserCmd;
|
||||||
import org.apache.cloudstack.api.response.AccountResponse;
|
import org.apache.cloudstack.api.response.AccountResponse;
|
||||||
import org.apache.cloudstack.api.response.ListResponse;
|
import org.apache.cloudstack.api.response.ListResponse;
|
||||||
|
|
||||||
@ -36,7 +37,7 @@ import com.cloud.user.Account;
|
|||||||
|
|
||||||
@APICommand(name = "listAccounts", description = "Lists accounts and provides detailed account information for listed accounts", responseObject = AccountResponse.class, responseView = ResponseView.Restricted, entityType = {Account.class},
|
@APICommand(name = "listAccounts", description = "Lists accounts and provides detailed account information for listed accounts", responseObject = AccountResponse.class, responseView = ResponseView.Restricted, entityType = {Account.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
||||||
public class ListAccountsCmd extends BaseListDomainResourcesCmd {
|
public class ListAccountsCmd extends BaseListDomainResourcesCmd implements UserCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(ListAccountsCmd.class.getName());
|
public static final Logger s_logger = Logger.getLogger(ListAccountsCmd.class.getName());
|
||||||
private static final String s_name = "listaccountsresponse";
|
private static final String s_name = "listaccountsresponse";
|
||||||
|
|
||||||
|
|||||||
@ -31,6 +31,7 @@ import org.apache.cloudstack.api.BaseCmd;
|
|||||||
import org.apache.cloudstack.api.Parameter;
|
import org.apache.cloudstack.api.Parameter;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.ServerApiException;
|
||||||
|
import org.apache.cloudstack.api.command.user.UserCmd;
|
||||||
import org.apache.cloudstack.api.response.DomainResponse;
|
import org.apache.cloudstack.api.response.DomainResponse;
|
||||||
import org.apache.cloudstack.api.response.IPAddressResponse;
|
import org.apache.cloudstack.api.response.IPAddressResponse;
|
||||||
import org.apache.cloudstack.api.response.NetworkResponse;
|
import org.apache.cloudstack.api.response.NetworkResponse;
|
||||||
@ -63,7 +64,7 @@ import com.cloud.user.Account;
|
|||||||
responseView = ResponseView.Restricted,
|
responseView = ResponseView.Restricted,
|
||||||
requestHasSensitiveInfo = false,
|
requestHasSensitiveInfo = false,
|
||||||
responseHasSensitiveInfo = false)
|
responseHasSensitiveInfo = false)
|
||||||
public class AssociateIPAddrCmd extends BaseAsyncCreateCmd {
|
public class AssociateIPAddrCmd extends BaseAsyncCreateCmd implements UserCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(AssociateIPAddrCmd.class.getName());
|
public static final Logger s_logger = Logger.getLogger(AssociateIPAddrCmd.class.getName());
|
||||||
private static final String s_name = "associateipaddressresponse";
|
private static final String s_name = "associateipaddressresponse";
|
||||||
|
|
||||||
@ -339,7 +340,7 @@ public class AssociateIPAddrCmd extends BaseAsyncCreateCmd {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (result != null) {
|
if (result != null) {
|
||||||
IPAddressResponse ipResponse = _responseGenerator.createIPAddressResponse(ResponseView.Restricted, result);
|
IPAddressResponse ipResponse = _responseGenerator.createIPAddressResponse(getResponseView(), result);
|
||||||
ipResponse.setResponseName(getCommandName());
|
ipResponse.setResponseName(getCommandName());
|
||||||
setResponseObject(ipResponse);
|
setResponseObject(ipResponse);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -28,6 +28,7 @@ import org.apache.cloudstack.api.ApiConstants;
|
|||||||
import org.apache.cloudstack.api.BaseListTaggedResourcesCmd;
|
import org.apache.cloudstack.api.BaseListTaggedResourcesCmd;
|
||||||
import org.apache.cloudstack.api.Parameter;
|
import org.apache.cloudstack.api.Parameter;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
|
import org.apache.cloudstack.api.command.user.UserCmd;
|
||||||
import org.apache.cloudstack.api.response.IPAddressResponse;
|
import org.apache.cloudstack.api.response.IPAddressResponse;
|
||||||
import org.apache.cloudstack.api.response.ListResponse;
|
import org.apache.cloudstack.api.response.ListResponse;
|
||||||
import org.apache.cloudstack.api.response.NetworkResponse;
|
import org.apache.cloudstack.api.response.NetworkResponse;
|
||||||
@ -41,7 +42,7 @@ import com.cloud.utils.Pair;
|
|||||||
|
|
||||||
@APICommand(name = "listPublicIpAddresses", description = "Lists all public IP addresses", responseObject = IPAddressResponse.class, responseView = ResponseView.Restricted,
|
@APICommand(name = "listPublicIpAddresses", description = "Lists all public IP addresses", responseObject = IPAddressResponse.class, responseView = ResponseView.Restricted,
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false, entityType = { IpAddress.class })
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false, entityType = { IpAddress.class })
|
||||||
public class ListPublicIpAddressesCmd extends BaseListTaggedResourcesCmd {
|
public class ListPublicIpAddressesCmd extends BaseListTaggedResourcesCmd implements UserCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(ListPublicIpAddressesCmd.class.getName());
|
public static final Logger s_logger = Logger.getLogger(ListPublicIpAddressesCmd.class.getName());
|
||||||
|
|
||||||
private static final String s_name = "listpublicipaddressesresponse";
|
private static final String s_name = "listpublicipaddressesresponse";
|
||||||
@ -194,7 +195,7 @@ public class ListPublicIpAddressesCmd extends BaseListTaggedResourcesCmd {
|
|||||||
ListResponse<IPAddressResponse> response = new ListResponse<IPAddressResponse>();
|
ListResponse<IPAddressResponse> response = new ListResponse<IPAddressResponse>();
|
||||||
List<IPAddressResponse> ipAddrResponses = new ArrayList<IPAddressResponse>();
|
List<IPAddressResponse> ipAddrResponses = new ArrayList<IPAddressResponse>();
|
||||||
for (IpAddress ipAddress : result.first()) {
|
for (IpAddress ipAddress : result.first()) {
|
||||||
IPAddressResponse ipResponse = _responseGenerator.createIPAddressResponse(ResponseView.Restricted, ipAddress);
|
IPAddressResponse ipResponse = _responseGenerator.createIPAddressResponse(getResponseView(), ipAddress);
|
||||||
ipResponse.setObjectName("publicipaddress");
|
ipResponse.setObjectName("publicipaddress");
|
||||||
ipAddrResponses.add(ipResponse);
|
ipAddrResponses.add(ipResponse);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -34,6 +34,7 @@ import org.apache.cloudstack.api.BaseAsyncCmd;
|
|||||||
import org.apache.cloudstack.api.Parameter;
|
import org.apache.cloudstack.api.Parameter;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.ServerApiException;
|
||||||
|
import org.apache.cloudstack.api.command.user.UserCmd;
|
||||||
import org.apache.cloudstack.api.response.UserVmResponse;
|
import org.apache.cloudstack.api.response.UserVmResponse;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
import org.apache.cloudstack.context.CallContext;
|
||||||
|
|
||||||
@ -53,7 +54,7 @@ import com.cloud.vm.VirtualMachine;
|
|||||||
entityType = {VirtualMachine.class},
|
entityType = {VirtualMachine.class},
|
||||||
requestHasSensitiveInfo = false,
|
requestHasSensitiveInfo = false,
|
||||||
responseHasSensitiveInfo = true)
|
responseHasSensitiveInfo = true)
|
||||||
public class UpdateVMAffinityGroupCmd extends BaseAsyncCmd {
|
public class UpdateVMAffinityGroupCmd extends BaseAsyncCmd implements UserCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(UpdateVMAffinityGroupCmd.class.getName());
|
public static final Logger s_logger = Logger.getLogger(UpdateVMAffinityGroupCmd.class.getName());
|
||||||
private static final String s_name = "updatevirtualmachineresponse";
|
private static final String s_name = "updatevirtualmachineresponse";
|
||||||
|
|
||||||
@ -148,8 +149,8 @@ public class UpdateVMAffinityGroupCmd extends BaseAsyncCmd {
|
|||||||
dc.add(VMDetails.valueOf("affgrp"));
|
dc.add(VMDetails.valueOf("affgrp"));
|
||||||
EnumSet<VMDetails> details = EnumSet.copyOf(dc);
|
EnumSet<VMDetails> details = EnumSet.copyOf(dc);
|
||||||
|
|
||||||
if (result != null){
|
if (result != null) {
|
||||||
UserVmResponse response = _responseGenerator.createUserVmResponse(ResponseView.Restricted, "virtualmachine", details, result).get(0);
|
UserVmResponse response = _responseGenerator.createUserVmResponse(getResponseView(), "virtualmachine", details, result).get(0);
|
||||||
response.setResponseName(getCommandName());
|
response.setResponseName(getCommandName());
|
||||||
setResponseObject(response);
|
setResponseObject(response);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -25,6 +25,7 @@ import org.apache.cloudstack.api.BaseAsyncCmd;
|
|||||||
import org.apache.cloudstack.api.Parameter;
|
import org.apache.cloudstack.api.Parameter;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.ServerApiException;
|
||||||
|
import org.apache.cloudstack.api.command.user.UserCmd;
|
||||||
import org.apache.cloudstack.api.command.user.vm.DeployVMCmd;
|
import org.apache.cloudstack.api.command.user.vm.DeployVMCmd;
|
||||||
import org.apache.cloudstack.api.response.TemplateResponse;
|
import org.apache.cloudstack.api.response.TemplateResponse;
|
||||||
import org.apache.cloudstack.api.response.UserVmResponse;
|
import org.apache.cloudstack.api.response.UserVmResponse;
|
||||||
@ -36,7 +37,7 @@ import com.cloud.uservm.UserVm;
|
|||||||
|
|
||||||
@APICommand(name = "attachIso", description = "Attaches an ISO to a virtual machine.", responseObject = UserVmResponse.class, responseView = ResponseView.Restricted,
|
@APICommand(name = "attachIso", description = "Attaches an ISO to a virtual machine.", responseObject = UserVmResponse.class, responseView = ResponseView.Restricted,
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
||||||
public class AttachIsoCmd extends BaseAsyncCmd {
|
public class AttachIsoCmd extends BaseAsyncCmd implements UserCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(AttachIsoCmd.class.getName());
|
public static final Logger s_logger = Logger.getLogger(AttachIsoCmd.class.getName());
|
||||||
|
|
||||||
private static final String s_name = "attachisoresponse";
|
private static final String s_name = "attachisoresponse";
|
||||||
@ -101,7 +102,7 @@ public class AttachIsoCmd extends BaseAsyncCmd {
|
|||||||
if (result) {
|
if (result) {
|
||||||
UserVm userVm = _responseGenerator.findUserVmById(virtualMachineId);
|
UserVm userVm = _responseGenerator.findUserVmById(virtualMachineId);
|
||||||
if (userVm != null) {
|
if (userVm != null) {
|
||||||
UserVmResponse response = _responseGenerator.createUserVmResponse(ResponseView.Restricted, "virtualmachine", userVm).get(0);
|
UserVmResponse response = _responseGenerator.createUserVmResponse(getResponseView(), "virtualmachine", userVm).get(0);
|
||||||
response.setResponseName(DeployVMCmd.getResultObjectName());
|
response.setResponseName(DeployVMCmd.getResultObjectName());
|
||||||
setResponseObject(response);
|
setResponseObject(response);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -25,6 +25,7 @@ import org.apache.cloudstack.api.BaseAsyncCmd;
|
|||||||
import org.apache.cloudstack.api.Parameter;
|
import org.apache.cloudstack.api.Parameter;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.ServerApiException;
|
||||||
|
import org.apache.cloudstack.api.command.user.UserCmd;
|
||||||
import org.apache.cloudstack.api.command.user.vm.DeployVMCmd;
|
import org.apache.cloudstack.api.command.user.vm.DeployVMCmd;
|
||||||
import org.apache.cloudstack.api.response.UserVmResponse;
|
import org.apache.cloudstack.api.response.UserVmResponse;
|
||||||
|
|
||||||
@ -34,7 +35,7 @@ import com.cloud.uservm.UserVm;
|
|||||||
|
|
||||||
@APICommand(name = "detachIso", description = "Detaches any ISO file (if any) currently attached to a virtual machine.", responseObject = UserVmResponse.class, responseView = ResponseView.Restricted,
|
@APICommand(name = "detachIso", description = "Detaches any ISO file (if any) currently attached to a virtual machine.", responseObject = UserVmResponse.class, responseView = ResponseView.Restricted,
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
||||||
public class DetachIsoCmd extends BaseAsyncCmd {
|
public class DetachIsoCmd extends BaseAsyncCmd implements UserCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(DetachIsoCmd.class.getName());
|
public static final Logger s_logger = Logger.getLogger(DetachIsoCmd.class.getName());
|
||||||
|
|
||||||
private static final String s_name = "detachisoresponse";
|
private static final String s_name = "detachisoresponse";
|
||||||
@ -89,7 +90,7 @@ public class DetachIsoCmd extends BaseAsyncCmd {
|
|||||||
boolean result = _templateService.detachIso(virtualMachineId);
|
boolean result = _templateService.detachIso(virtualMachineId);
|
||||||
if (result) {
|
if (result) {
|
||||||
UserVm userVm = _entityMgr.findById(UserVm.class, virtualMachineId);
|
UserVm userVm = _entityMgr.findById(UserVm.class, virtualMachineId);
|
||||||
UserVmResponse response = _responseGenerator.createUserVmResponse(ResponseView.Restricted, "virtualmachine", userVm).get(0);
|
UserVmResponse response = _responseGenerator.createUserVmResponse(getResponseView(), "virtualmachine", userVm).get(0);
|
||||||
response.setResponseName(DeployVMCmd.getResultObjectName());
|
response.setResponseName(DeployVMCmd.getResultObjectName());
|
||||||
setResponseObject(response);
|
setResponseObject(response);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -21,6 +21,7 @@ import org.apache.log4j.Logger;
|
|||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.BaseListTemplateOrIsoPermissionsCmd;
|
import org.apache.cloudstack.api.BaseListTemplateOrIsoPermissionsCmd;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
|
import org.apache.cloudstack.api.command.user.UserCmd;
|
||||||
import org.apache.cloudstack.api.response.TemplatePermissionsResponse;
|
import org.apache.cloudstack.api.response.TemplatePermissionsResponse;
|
||||||
|
|
||||||
import com.cloud.storage.Storage.ImageFormat;
|
import com.cloud.storage.Storage.ImageFormat;
|
||||||
@ -29,7 +30,7 @@ import com.cloud.template.VirtualMachineTemplate;
|
|||||||
@APICommand(name = "listIsoPermissions", description = "List ISO visibility and all accounts that have permissions to view this ISO.", responseObject = TemplatePermissionsResponse.class, responseView = ResponseView.Restricted,
|
@APICommand(name = "listIsoPermissions", description = "List ISO visibility and all accounts that have permissions to view this ISO.", responseObject = TemplatePermissionsResponse.class, responseView = ResponseView.Restricted,
|
||||||
requestHasSensitiveInfo = false,
|
requestHasSensitiveInfo = false,
|
||||||
responseHasSensitiveInfo = false)
|
responseHasSensitiveInfo = false)
|
||||||
public class ListIsoPermissionsCmd extends BaseListTemplateOrIsoPermissionsCmd {
|
public class ListIsoPermissionsCmd extends BaseListTemplateOrIsoPermissionsCmd implements UserCmd {
|
||||||
protected String getResponseName() {
|
protected String getResponseName() {
|
||||||
return "listisopermissionsresponse";
|
return "listisopermissionsresponse";
|
||||||
}
|
}
|
||||||
@ -48,9 +49,4 @@ public class ListIsoPermissionsCmd extends BaseListTemplateOrIsoPermissionsCmd {
|
|||||||
protected boolean templateIsCorrectType(VirtualMachineTemplate template) {
|
protected boolean templateIsCorrectType(VirtualMachineTemplate template) {
|
||||||
return template.getFormat().equals(ImageFormat.ISO);
|
return template.getFormat().equals(ImageFormat.ISO);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute() {
|
|
||||||
executeWithView(ResponseView.Restricted);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -24,6 +24,7 @@ import org.apache.cloudstack.api.ApiConstants;
|
|||||||
import org.apache.cloudstack.api.BaseListTaggedResourcesCmd;
|
import org.apache.cloudstack.api.BaseListTaggedResourcesCmd;
|
||||||
import org.apache.cloudstack.api.Parameter;
|
import org.apache.cloudstack.api.Parameter;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
|
import org.apache.cloudstack.api.command.user.UserCmd;
|
||||||
import org.apache.cloudstack.api.response.ListResponse;
|
import org.apache.cloudstack.api.response.ListResponse;
|
||||||
import org.apache.cloudstack.api.response.TemplateResponse;
|
import org.apache.cloudstack.api.response.TemplateResponse;
|
||||||
import org.apache.cloudstack.api.response.ZoneResponse;
|
import org.apache.cloudstack.api.response.ZoneResponse;
|
||||||
@ -34,7 +35,7 @@ import com.cloud.user.Account;
|
|||||||
|
|
||||||
@APICommand(name = "listIsos", description = "Lists all available ISO files.", responseObject = TemplateResponse.class, responseView = ResponseView.Restricted,
|
@APICommand(name = "listIsos", description = "Lists all available ISO files.", responseObject = TemplateResponse.class, responseView = ResponseView.Restricted,
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||||
public class ListIsosCmd extends BaseListTaggedResourcesCmd {
|
public class ListIsosCmd extends BaseListTaggedResourcesCmd implements UserCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(ListIsosCmd.class.getName());
|
public static final Logger s_logger = Logger.getLogger(ListIsosCmd.class.getName());
|
||||||
|
|
||||||
private static final String s_name = "listisosresponse";
|
private static final String s_name = "listisosresponse";
|
||||||
|
|||||||
@ -25,6 +25,7 @@ import org.apache.cloudstack.api.BaseCmd;
|
|||||||
import org.apache.cloudstack.api.Parameter;
|
import org.apache.cloudstack.api.Parameter;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.ServerApiException;
|
||||||
|
import org.apache.cloudstack.api.command.user.UserCmd;
|
||||||
import org.apache.cloudstack.api.response.DomainResponse;
|
import org.apache.cloudstack.api.response.DomainResponse;
|
||||||
import org.apache.cloudstack.api.response.GuestOSResponse;
|
import org.apache.cloudstack.api.response.GuestOSResponse;
|
||||||
import org.apache.cloudstack.api.response.ListResponse;
|
import org.apache.cloudstack.api.response.ListResponse;
|
||||||
@ -39,7 +40,7 @@ import com.cloud.template.VirtualMachineTemplate;
|
|||||||
|
|
||||||
@APICommand(name = "registerIso", responseObject = TemplateResponse.class, description = "Registers an existing ISO into the CloudStack Cloud.", responseView = ResponseView.Restricted,
|
@APICommand(name = "registerIso", responseObject = TemplateResponse.class, description = "Registers an existing ISO into the CloudStack Cloud.", responseView = ResponseView.Restricted,
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||||
public class RegisterIsoCmd extends BaseCmd {
|
public class RegisterIsoCmd extends BaseCmd implements UserCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(RegisterIsoCmd.class.getName());
|
public static final Logger s_logger = Logger.getLogger(RegisterIsoCmd.class.getName());
|
||||||
|
|
||||||
private static final String s_name = "registerisoresponse";
|
private static final String s_name = "registerisoresponse";
|
||||||
@ -210,7 +211,7 @@ public class RegisterIsoCmd extends BaseCmd {
|
|||||||
VirtualMachineTemplate template = _templateService.registerIso(this);
|
VirtualMachineTemplate template = _templateService.registerIso(this);
|
||||||
if (template != null) {
|
if (template != null) {
|
||||||
ListResponse<TemplateResponse> response = new ListResponse<TemplateResponse>();
|
ListResponse<TemplateResponse> response = new ListResponse<TemplateResponse>();
|
||||||
List<TemplateResponse> templateResponses = _responseGenerator.createIsoResponses(ResponseView.Restricted, template, zoneId, false);
|
List<TemplateResponse> templateResponses = _responseGenerator.createIsoResponses(getResponseView(), template, zoneId, false);
|
||||||
response.setResponses(templateResponses);
|
response.setResponses(templateResponses);
|
||||||
response.setResponseName(getCommandName());
|
response.setResponseName(getCommandName());
|
||||||
setResponseObject(response);
|
setResponseObject(response);
|
||||||
|
|||||||
@ -23,6 +23,7 @@ import org.apache.cloudstack.api.ApiErrorCode;
|
|||||||
import org.apache.cloudstack.api.BaseUpdateTemplateOrIsoCmd;
|
import org.apache.cloudstack.api.BaseUpdateTemplateOrIsoCmd;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.ServerApiException;
|
||||||
|
import org.apache.cloudstack.api.command.user.UserCmd;
|
||||||
import org.apache.cloudstack.api.response.TemplateResponse;
|
import org.apache.cloudstack.api.response.TemplateResponse;
|
||||||
|
|
||||||
import com.cloud.template.VirtualMachineTemplate;
|
import com.cloud.template.VirtualMachineTemplate;
|
||||||
@ -30,7 +31,7 @@ import com.cloud.user.Account;
|
|||||||
|
|
||||||
@APICommand(name = "updateIso", description = "Updates an ISO file.", responseObject = TemplateResponse.class, responseView = ResponseView.Restricted,
|
@APICommand(name = "updateIso", description = "Updates an ISO file.", responseObject = TemplateResponse.class, responseView = ResponseView.Restricted,
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||||
public class UpdateIsoCmd extends BaseUpdateTemplateOrIsoCmd {
|
public class UpdateIsoCmd extends BaseUpdateTemplateOrIsoCmd implements UserCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(UpdateIsoCmd.class.getName());
|
public static final Logger s_logger = Logger.getLogger(UpdateIsoCmd.class.getName());
|
||||||
private static final String s_name = "updateisoresponse";
|
private static final String s_name = "updateisoresponse";
|
||||||
|
|
||||||
@ -71,7 +72,7 @@ public class UpdateIsoCmd extends BaseUpdateTemplateOrIsoCmd {
|
|||||||
public void execute() {
|
public void execute() {
|
||||||
VirtualMachineTemplate result = _templateService.updateTemplate(this);
|
VirtualMachineTemplate result = _templateService.updateTemplate(this);
|
||||||
if (result != null) {
|
if (result != null) {
|
||||||
TemplateResponse response = _responseGenerator.createTemplateUpdateResponse(ResponseView.Restricted, result);
|
TemplateResponse response = _responseGenerator.createTemplateUpdateResponse(getResponseView(), result);
|
||||||
response.setResponseName(getCommandName());
|
response.setResponseName(getCommandName());
|
||||||
setResponseObject(response);
|
setResponseObject(response);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -20,6 +20,8 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import com.cloud.vm.VirtualMachine;
|
import com.cloud.vm.VirtualMachine;
|
||||||
|
|
||||||
|
import org.apache.cloudstack.api.command.user.UserCmd;
|
||||||
import org.apache.cloudstack.api.response.LoadBalancerRuleVmMapResponse;
|
import org.apache.cloudstack.api.response.LoadBalancerRuleVmMapResponse;
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
@ -38,7 +40,7 @@ import com.cloud.utils.Pair;
|
|||||||
@APICommand(name = "listLoadBalancerRuleInstances", description = "List all virtual machine instances that are assigned to a load balancer rule.", responseObject = LoadBalancerRuleVmMapResponse.class, responseView = ResponseView.Restricted,
|
@APICommand(name = "listLoadBalancerRuleInstances", description = "List all virtual machine instances that are assigned to a load balancer rule.", responseObject = LoadBalancerRuleVmMapResponse.class, responseView = ResponseView.Restricted,
|
||||||
requestHasSensitiveInfo = false,
|
requestHasSensitiveInfo = false,
|
||||||
responseHasSensitiveInfo = true)
|
responseHasSensitiveInfo = true)
|
||||||
public class ListLoadBalancerRuleInstancesCmd extends BaseListCmd {
|
public class ListLoadBalancerRuleInstancesCmd extends BaseListCmd implements UserCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(ListLoadBalancerRuleInstancesCmd.class.getName());
|
public static final Logger s_logger = Logger.getLogger(ListLoadBalancerRuleInstancesCmd.class.getName());
|
||||||
|
|
||||||
private static final String s_name = "listloadbalancerruleinstancesresponse";
|
private static final String s_name = "listloadbalancerruleinstancesresponse";
|
||||||
@ -121,7 +123,7 @@ public class ListLoadBalancerRuleInstancesCmd extends BaseListCmd {
|
|||||||
List<LoadBalancerRuleVmMapResponse> listlbVmRes = new ArrayList<LoadBalancerRuleVmMapResponse>();
|
List<LoadBalancerRuleVmMapResponse> listlbVmRes = new ArrayList<LoadBalancerRuleVmMapResponse>();
|
||||||
|
|
||||||
if (result != null) {
|
if (result != null) {
|
||||||
vmResponses = _responseGenerator.createUserVmResponse(ResponseView.Full, "loadbalancerruleinstance", result.toArray(new UserVm[result.size()]));
|
vmResponses = _responseGenerator.createUserVmResponse(getResponseView(), "loadbalancerruleinstance", result.toArray(new UserVm[result.size()]));
|
||||||
|
|
||||||
|
|
||||||
List<String> ipaddr = null;
|
List<String> ipaddr = null;
|
||||||
|
|||||||
@ -26,6 +26,7 @@ import org.apache.cloudstack.api.BaseCmd;
|
|||||||
import org.apache.cloudstack.api.Parameter;
|
import org.apache.cloudstack.api.Parameter;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.ServerApiException;
|
||||||
|
import org.apache.cloudstack.api.command.user.UserCmd;
|
||||||
import org.apache.cloudstack.api.response.DomainResponse;
|
import org.apache.cloudstack.api.response.DomainResponse;
|
||||||
import org.apache.cloudstack.api.response.NetworkACLResponse;
|
import org.apache.cloudstack.api.response.NetworkACLResponse;
|
||||||
import org.apache.cloudstack.api.response.NetworkOfferingResponse;
|
import org.apache.cloudstack.api.response.NetworkOfferingResponse;
|
||||||
@ -47,7 +48,7 @@ import com.cloud.utils.net.NetUtils;
|
|||||||
|
|
||||||
@APICommand(name = "createNetwork", description = "Creates a network", responseObject = NetworkResponse.class, responseView = ResponseView.Restricted, entityType = {Network.class},
|
@APICommand(name = "createNetwork", description = "Creates a network", responseObject = NetworkResponse.class, responseView = ResponseView.Restricted, entityType = {Network.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||||
public class CreateNetworkCmd extends BaseCmd {
|
public class CreateNetworkCmd extends BaseCmd implements UserCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(CreateNetworkCmd.class.getName());
|
public static final Logger s_logger = Logger.getLogger(CreateNetworkCmd.class.getName());
|
||||||
|
|
||||||
private static final String s_name = "createnetworkresponse";
|
private static final String s_name = "createnetworkresponse";
|
||||||
@ -310,7 +311,7 @@ public class CreateNetworkCmd extends BaseCmd {
|
|||||||
void execute() throws InsufficientCapacityException, ConcurrentOperationException, ResourceAllocationException {
|
void execute() throws InsufficientCapacityException, ConcurrentOperationException, ResourceAllocationException {
|
||||||
Network result = _networkService.createGuestNetwork(this);
|
Network result = _networkService.createGuestNetwork(this);
|
||||||
if (result != null) {
|
if (result != null) {
|
||||||
NetworkResponse response = _responseGenerator.createNetworkResponse(ResponseView.Restricted, result);
|
NetworkResponse response = _responseGenerator.createNetworkResponse(getResponseView(), result);
|
||||||
response.setResponseName(getCommandName());
|
response.setResponseName(getCommandName());
|
||||||
setResponseObject(response);
|
setResponseObject(response);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -27,6 +27,7 @@ import org.apache.cloudstack.api.ApiConstants;
|
|||||||
import org.apache.cloudstack.api.BaseListTaggedResourcesCmd;
|
import org.apache.cloudstack.api.BaseListTaggedResourcesCmd;
|
||||||
import org.apache.cloudstack.api.Parameter;
|
import org.apache.cloudstack.api.Parameter;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
|
import org.apache.cloudstack.api.command.user.UserCmd;
|
||||||
import org.apache.cloudstack.api.response.ListResponse;
|
import org.apache.cloudstack.api.response.ListResponse;
|
||||||
import org.apache.cloudstack.api.response.NetworkResponse;
|
import org.apache.cloudstack.api.response.NetworkResponse;
|
||||||
import org.apache.cloudstack.api.response.PhysicalNetworkResponse;
|
import org.apache.cloudstack.api.response.PhysicalNetworkResponse;
|
||||||
@ -38,7 +39,7 @@ import com.cloud.utils.Pair;
|
|||||||
|
|
||||||
@APICommand(name = "listNetworks", description = "Lists all available networks.", responseObject = NetworkResponse.class, responseView = ResponseView.Restricted, entityType = {Network.class},
|
@APICommand(name = "listNetworks", description = "Lists all available networks.", responseObject = NetworkResponse.class, responseView = ResponseView.Restricted, entityType = {Network.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||||
public class ListNetworksCmd extends BaseListTaggedResourcesCmd {
|
public class ListNetworksCmd extends BaseListTaggedResourcesCmd implements UserCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(ListNetworksCmd.class.getName());
|
public static final Logger s_logger = Logger.getLogger(ListNetworksCmd.class.getName());
|
||||||
private static final String s_name = "listnetworksresponse";
|
private static final String s_name = "listnetworksresponse";
|
||||||
|
|
||||||
@ -164,7 +165,7 @@ public class ListNetworksCmd extends BaseListTaggedResourcesCmd {
|
|||||||
ListResponse<NetworkResponse> response = new ListResponse<NetworkResponse>();
|
ListResponse<NetworkResponse> response = new ListResponse<NetworkResponse>();
|
||||||
List<NetworkResponse> networkResponses = new ArrayList<NetworkResponse>();
|
List<NetworkResponse> networkResponses = new ArrayList<NetworkResponse>();
|
||||||
for (Network network : networks.first()) {
|
for (Network network : networks.first()) {
|
||||||
NetworkResponse networkResponse = _responseGenerator.createNetworkResponse(ResponseView.Restricted, network);
|
NetworkResponse networkResponse = _responseGenerator.createNetworkResponse(getResponseView(), network);
|
||||||
networkResponses.add(networkResponse);
|
networkResponses.add(networkResponse);
|
||||||
}
|
}
|
||||||
response.setResponses(networkResponses, networks.second());
|
response.setResponses(networkResponses, networks.second());
|
||||||
|
|||||||
@ -27,6 +27,7 @@ import org.apache.cloudstack.api.BaseAsyncCustomIdCmd;
|
|||||||
import org.apache.cloudstack.api.Parameter;
|
import org.apache.cloudstack.api.Parameter;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.ServerApiException;
|
||||||
|
import org.apache.cloudstack.api.command.user.UserCmd;
|
||||||
import org.apache.cloudstack.api.response.NetworkOfferingResponse;
|
import org.apache.cloudstack.api.response.NetworkOfferingResponse;
|
||||||
import org.apache.cloudstack.api.response.NetworkResponse;
|
import org.apache.cloudstack.api.response.NetworkResponse;
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
@ -40,7 +41,7 @@ import com.cloud.offering.NetworkOffering;
|
|||||||
|
|
||||||
@APICommand(name = "updateNetwork", description = "Updates a network", responseObject = NetworkResponse.class, responseView = ResponseView.Restricted, entityType = {Network.class},
|
@APICommand(name = "updateNetwork", description = "Updates a network", responseObject = NetworkResponse.class, responseView = ResponseView.Restricted, entityType = {Network.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||||
public class UpdateNetworkCmd extends BaseAsyncCustomIdCmd {
|
public class UpdateNetworkCmd extends BaseAsyncCustomIdCmd implements UserCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(UpdateNetworkCmd.class.getName());
|
public static final Logger s_logger = Logger.getLogger(UpdateNetworkCmd.class.getName());
|
||||||
|
|
||||||
private static final String s_name = "updatenetworkresponse";
|
private static final String s_name = "updatenetworkresponse";
|
||||||
@ -162,7 +163,7 @@ public class UpdateNetworkCmd extends BaseAsyncCustomIdCmd {
|
|||||||
|
|
||||||
Network result = _networkService.updateGuestNetwork(this);
|
Network result = _networkService.updateGuestNetwork(this);
|
||||||
if (result != null) {
|
if (result != null) {
|
||||||
NetworkResponse response = _responseGenerator.createNetworkResponse(ResponseView.Restricted, result);
|
NetworkResponse response = _responseGenerator.createNetworkResponse(getResponseView(), result);
|
||||||
response.setResponseName(getCommandName());
|
response.setResponseName(getCommandName());
|
||||||
setResponseObject(response);
|
setResponseObject(response);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -17,10 +17,7 @@
|
|||||||
package org.apache.cloudstack.api.command.user.project;
|
package org.apache.cloudstack.api.command.user.project;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.EnumSet;
|
import java.util.EnumSet;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -31,6 +28,7 @@ import org.apache.cloudstack.api.ApiConstants;
|
|||||||
import org.apache.cloudstack.api.ApiConstants.DomainDetails;
|
import org.apache.cloudstack.api.ApiConstants.DomainDetails;
|
||||||
import org.apache.cloudstack.api.BaseListAccountResourcesCmd;
|
import org.apache.cloudstack.api.BaseListAccountResourcesCmd;
|
||||||
import org.apache.cloudstack.api.Parameter;
|
import org.apache.cloudstack.api.Parameter;
|
||||||
|
import org.apache.cloudstack.api.TaggedResources;
|
||||||
import org.apache.cloudstack.api.response.ListResponse;
|
import org.apache.cloudstack.api.response.ListResponse;
|
||||||
import org.apache.cloudstack.api.response.ProjectResponse;
|
import org.apache.cloudstack.api.response.ProjectResponse;
|
||||||
|
|
||||||
@ -97,22 +95,7 @@ public class ListProjectsCmd extends BaseListAccountResourcesCmd {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Map<String, String> getTags() {
|
public Map<String, String> getTags() {
|
||||||
Map<String, String> tagsMap = null;
|
return TaggedResources.parseKeyValueMap(tags, false);
|
||||||
if (tags != null && !tags.isEmpty()) {
|
|
||||||
tagsMap = new HashMap<String, String>();
|
|
||||||
Collection<?> servicesCollection = tags.values();
|
|
||||||
Iterator<?> iter = servicesCollection.iterator();
|
|
||||||
while (iter.hasNext()) {
|
|
||||||
HashMap<String, String> services = (HashMap<String, String>)iter.next();
|
|
||||||
String key = services.get("key");
|
|
||||||
String value = services.get("value");
|
|
||||||
if (value == null) {
|
|
||||||
throw new InvalidParameterValueException("No value is passed in for key " + key);
|
|
||||||
}
|
|
||||||
tagsMap.put(key, value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return tagsMap;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public EnumSet<DomainDetails> getDetails() throws InvalidParameterValueException {
|
public EnumSet<DomainDetails> getDetails() throws InvalidParameterValueException {
|
||||||
|
|||||||
@ -17,9 +17,6 @@
|
|||||||
|
|
||||||
package org.apache.cloudstack.api.command.user.tag;
|
package org.apache.cloudstack.api.command.user.tag;
|
||||||
|
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -31,6 +28,7 @@ import org.apache.cloudstack.api.ApiErrorCode;
|
|||||||
import org.apache.cloudstack.api.BaseAsyncCmd;
|
import org.apache.cloudstack.api.BaseAsyncCmd;
|
||||||
import org.apache.cloudstack.api.Parameter;
|
import org.apache.cloudstack.api.Parameter;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.ServerApiException;
|
||||||
|
import org.apache.cloudstack.api.TaggedResources;
|
||||||
import org.apache.cloudstack.api.response.SuccessResponse;
|
import org.apache.cloudstack.api.response.SuccessResponse;
|
||||||
|
|
||||||
import com.cloud.event.EventTypes;
|
import com.cloud.event.EventTypes;
|
||||||
@ -74,19 +72,7 @@ public class CreateTagsCmd extends BaseAsyncCmd {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Map<String, String> getTags() {
|
public Map<String, String> getTags() {
|
||||||
Map<String, String> tagsMap = null;
|
return TaggedResources.parseKeyValueMap(tag, true);
|
||||||
if (!tag.isEmpty()) {
|
|
||||||
tagsMap = new HashMap<String, String>();
|
|
||||||
Collection<?> servicesCollection = tag.values();
|
|
||||||
Iterator<?> iter = servicesCollection.iterator();
|
|
||||||
while (iter.hasNext()) {
|
|
||||||
HashMap<String, String> services = (HashMap<String, String>)iter.next();
|
|
||||||
String key = services.get("key");
|
|
||||||
String value = services.get("value");
|
|
||||||
tagsMap.put(key, value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return tagsMap;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> getResourceIds() {
|
public List<String> getResourceIds() {
|
||||||
|
|||||||
@ -30,6 +30,7 @@ import org.apache.cloudstack.api.BaseAsyncCmd;
|
|||||||
import org.apache.cloudstack.api.Parameter;
|
import org.apache.cloudstack.api.Parameter;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.ServerApiException;
|
||||||
|
import org.apache.cloudstack.api.command.user.UserCmd;
|
||||||
import org.apache.cloudstack.api.response.TemplateResponse;
|
import org.apache.cloudstack.api.response.TemplateResponse;
|
||||||
import org.apache.cloudstack.api.response.ZoneResponse;
|
import org.apache.cloudstack.api.response.ZoneResponse;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
import org.apache.cloudstack.context.CallContext;
|
||||||
@ -42,7 +43,7 @@ import com.cloud.user.Account;
|
|||||||
|
|
||||||
@APICommand(name = "copyTemplate", description = "Copies a template from one zone to another.", responseObject = TemplateResponse.class, responseView = ResponseView.Restricted,
|
@APICommand(name = "copyTemplate", description = "Copies a template from one zone to another.", responseObject = TemplateResponse.class, responseView = ResponseView.Restricted,
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||||
public class CopyTemplateCmd extends BaseAsyncCmd {
|
public class CopyTemplateCmd extends BaseAsyncCmd implements UserCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(CopyTemplateCmd.class.getName());
|
public static final Logger s_logger = Logger.getLogger(CopyTemplateCmd.class.getName());
|
||||||
private static final String s_name = "copytemplateresponse";
|
private static final String s_name = "copytemplateresponse";
|
||||||
|
|
||||||
@ -178,7 +179,7 @@ public class CopyTemplateCmd extends BaseAsyncCmd {
|
|||||||
VirtualMachineTemplate template = _templateService.copyTemplate(this);
|
VirtualMachineTemplate template = _templateService.copyTemplate(this);
|
||||||
|
|
||||||
if (template != null){
|
if (template != null){
|
||||||
List<TemplateResponse> listResponse = _responseGenerator.createTemplateResponses(ResponseView.Restricted,
|
List<TemplateResponse> listResponse = _responseGenerator.createTemplateResponses(getResponseView(),
|
||||||
template, getDestinationZoneIds(), false);
|
template, getDestinationZoneIds(), false);
|
||||||
TemplateResponse response = new TemplateResponse();
|
TemplateResponse response = new TemplateResponse();
|
||||||
if (listResponse != null && !listResponse.isEmpty()) {
|
if (listResponse != null && !listResponse.isEmpty()) {
|
||||||
|
|||||||
@ -21,6 +21,7 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.apache.cloudstack.acl.SecurityChecker;
|
import org.apache.cloudstack.acl.SecurityChecker;
|
||||||
|
import org.apache.cloudstack.api.command.user.UserCmd;
|
||||||
import org.apache.cloudstack.api.response.GuestOSResponse;
|
import org.apache.cloudstack.api.response.GuestOSResponse;
|
||||||
import org.apache.cloudstack.api.response.SnapshotResponse;
|
import org.apache.cloudstack.api.response.SnapshotResponse;
|
||||||
import org.apache.cloudstack.api.response.TemplateResponse;
|
import org.apache.cloudstack.api.response.TemplateResponse;
|
||||||
@ -53,7 +54,7 @@ import com.cloud.user.Account;
|
|||||||
@APICommand(name = "createTemplate", responseObject = TemplateResponse.class, description = "Creates a template of a virtual machine. " + "The virtual machine must be in a STOPPED state. "
|
@APICommand(name = "createTemplate", responseObject = TemplateResponse.class, description = "Creates a template of a virtual machine. " + "The virtual machine must be in a STOPPED state. "
|
||||||
+ "A template created from this command is automatically designated as a private template visible to the account that created it.", responseView = ResponseView.Restricted,
|
+ "A template created from this command is automatically designated as a private template visible to the account that created it.", responseView = ResponseView.Restricted,
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||||
public class CreateTemplateCmd extends BaseAsyncCreateCmd {
|
public class CreateTemplateCmd extends BaseAsyncCreateCmd implements UserCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(CreateTemplateCmd.class.getName());
|
public static final Logger s_logger = Logger.getLogger(CreateTemplateCmd.class.getName());
|
||||||
private static final String s_name = "createtemplateresponse";
|
private static final String s_name = "createtemplateresponse";
|
||||||
|
|
||||||
@ -301,15 +302,14 @@ public class CreateTemplateCmd extends BaseAsyncCreateCmd {
|
|||||||
public void execute() {
|
public void execute() {
|
||||||
CallContext.current().setEventDetails(
|
CallContext.current().setEventDetails(
|
||||||
"Template Id: " + getEntityUuid() + ((getSnapshotId() == null) ? " from volume Id: " + this._uuidMgr.getUuid(Volume.class, getVolumeId()) : " from snapshot Id: " + this._uuidMgr.getUuid(Snapshot.class, getSnapshotId())));
|
"Template Id: " + getEntityUuid() + ((getSnapshotId() == null) ? " from volume Id: " + this._uuidMgr.getUuid(Volume.class, getVolumeId()) : " from snapshot Id: " + this._uuidMgr.getUuid(Snapshot.class, getSnapshotId())));
|
||||||
VirtualMachineTemplate template = null;
|
VirtualMachineTemplate template = _templateService.createPrivateTemplate(this);
|
||||||
template = _templateService.createPrivateTemplate(this);
|
|
||||||
|
|
||||||
if (template != null) {
|
if (template != null) {
|
||||||
List<TemplateResponse> templateResponses;
|
List<TemplateResponse> templateResponses;
|
||||||
if (isBareMetal()) {
|
if (isBareMetal()) {
|
||||||
templateResponses = _responseGenerator.createTemplateResponses(ResponseView.Restricted, template.getId(), vmId);
|
templateResponses = _responseGenerator.createTemplateResponses(getResponseView(), template.getId(), vmId);
|
||||||
} else {
|
} else {
|
||||||
templateResponses = _responseGenerator.createTemplateResponses(ResponseView.Restricted, template.getId(), snapshotId, volumeId, false);
|
templateResponses = _responseGenerator.createTemplateResponses(getResponseView(), template.getId(), snapshotId, volumeId, false);
|
||||||
}
|
}
|
||||||
TemplateResponse response = new TemplateResponse();
|
TemplateResponse response = new TemplateResponse();
|
||||||
if (templateResponses != null && !templateResponses.isEmpty()) {
|
if (templateResponses != null && !templateResponses.isEmpty()) {
|
||||||
|
|||||||
@ -21,6 +21,7 @@ import org.apache.log4j.Logger;
|
|||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.BaseListTemplateOrIsoPermissionsCmd;
|
import org.apache.cloudstack.api.BaseListTemplateOrIsoPermissionsCmd;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
|
import org.apache.cloudstack.api.command.user.UserCmd;
|
||||||
import org.apache.cloudstack.api.response.TemplatePermissionsResponse;
|
import org.apache.cloudstack.api.response.TemplatePermissionsResponse;
|
||||||
|
|
||||||
import com.cloud.storage.Storage.ImageFormat;
|
import com.cloud.storage.Storage.ImageFormat;
|
||||||
@ -29,7 +30,7 @@ import com.cloud.template.VirtualMachineTemplate;
|
|||||||
@APICommand(name = "listTemplatePermissions", description = "List template visibility and all accounts that have permissions to view this template.", responseObject = TemplatePermissionsResponse.class, responseView = ResponseView.Restricted,
|
@APICommand(name = "listTemplatePermissions", description = "List template visibility and all accounts that have permissions to view this template.", responseObject = TemplatePermissionsResponse.class, responseView = ResponseView.Restricted,
|
||||||
requestHasSensitiveInfo = false,
|
requestHasSensitiveInfo = false,
|
||||||
responseHasSensitiveInfo = false)
|
responseHasSensitiveInfo = false)
|
||||||
public class ListTemplatePermissionsCmd extends BaseListTemplateOrIsoPermissionsCmd {
|
public class ListTemplatePermissionsCmd extends BaseListTemplateOrIsoPermissionsCmd implements UserCmd {
|
||||||
protected String getResponseName() {
|
protected String getResponseName() {
|
||||||
return "listtemplatepermissionsresponse";
|
return "listtemplatepermissionsresponse";
|
||||||
}
|
}
|
||||||
@ -49,9 +50,4 @@ public class ListTemplatePermissionsCmd extends BaseListTemplateOrIsoPermissions
|
|||||||
return !template.getFormat().equals(ImageFormat.ISO);
|
return !template.getFormat().equals(ImageFormat.ISO);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute() {
|
|
||||||
executeWithView(ResponseView.Restricted);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -25,6 +25,7 @@ import org.apache.cloudstack.api.ApiConstants;
|
|||||||
import org.apache.cloudstack.api.BaseListTaggedResourcesCmd;
|
import org.apache.cloudstack.api.BaseListTaggedResourcesCmd;
|
||||||
import org.apache.cloudstack.api.Parameter;
|
import org.apache.cloudstack.api.Parameter;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
|
import org.apache.cloudstack.api.command.user.UserCmd;
|
||||||
import org.apache.cloudstack.api.response.ListResponse;
|
import org.apache.cloudstack.api.response.ListResponse;
|
||||||
import org.apache.cloudstack.api.response.TemplateResponse;
|
import org.apache.cloudstack.api.response.TemplateResponse;
|
||||||
import org.apache.cloudstack.api.response.ZoneResponse;
|
import org.apache.cloudstack.api.response.ZoneResponse;
|
||||||
@ -36,7 +37,7 @@ import com.cloud.user.Account;
|
|||||||
|
|
||||||
@APICommand(name = "listTemplates", description = "List all public, private, and privileged templates.", responseObject = TemplateResponse.class, entityType = {VirtualMachineTemplate.class}, responseView = ResponseView.Restricted,
|
@APICommand(name = "listTemplates", description = "List all public, private, and privileged templates.", responseObject = TemplateResponse.class, entityType = {VirtualMachineTemplate.class}, responseView = ResponseView.Restricted,
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||||
public class ListTemplatesCmd extends BaseListTaggedResourcesCmd {
|
public class ListTemplatesCmd extends BaseListTaggedResourcesCmd implements UserCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(ListTemplatesCmd.class.getName());
|
public static final Logger s_logger = Logger.getLogger(ListTemplatesCmd.class.getName());
|
||||||
|
|
||||||
private static final String s_name = "listtemplatesresponse";
|
private static final String s_name = "listtemplatesresponse";
|
||||||
|
|||||||
@ -31,6 +31,7 @@ import org.apache.cloudstack.api.BaseCmd;
|
|||||||
import org.apache.cloudstack.api.Parameter;
|
import org.apache.cloudstack.api.Parameter;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.ServerApiException;
|
||||||
|
import org.apache.cloudstack.api.command.user.UserCmd;
|
||||||
import org.apache.cloudstack.api.response.DomainResponse;
|
import org.apache.cloudstack.api.response.DomainResponse;
|
||||||
import org.apache.cloudstack.api.response.GuestOSResponse;
|
import org.apache.cloudstack.api.response.GuestOSResponse;
|
||||||
import org.apache.cloudstack.api.response.ListResponse;
|
import org.apache.cloudstack.api.response.ListResponse;
|
||||||
@ -45,7 +46,7 @@ import com.cloud.template.VirtualMachineTemplate;
|
|||||||
|
|
||||||
@APICommand(name = "registerTemplate", description = "Registers an existing template into the CloudStack cloud. ", responseObject = TemplateResponse.class, responseView = ResponseView.Restricted,
|
@APICommand(name = "registerTemplate", description = "Registers an existing template into the CloudStack cloud. ", responseObject = TemplateResponse.class, responseView = ResponseView.Restricted,
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||||
public class RegisterTemplateCmd extends BaseCmd {
|
public class RegisterTemplateCmd extends BaseCmd implements UserCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(RegisterTemplateCmd.class.getName());
|
public static final Logger s_logger = Logger.getLogger(RegisterTemplateCmd.class.getName());
|
||||||
|
|
||||||
private static final String s_name = "registertemplateresponse";
|
private static final String s_name = "registertemplateresponse";
|
||||||
@ -304,7 +305,7 @@ public class RegisterTemplateCmd extends BaseCmd {
|
|||||||
VirtualMachineTemplate template = _templateService.registerTemplate(this);
|
VirtualMachineTemplate template = _templateService.registerTemplate(this);
|
||||||
if (template != null) {
|
if (template != null) {
|
||||||
ListResponse<TemplateResponse> response = new ListResponse<TemplateResponse>();
|
ListResponse<TemplateResponse> response = new ListResponse<TemplateResponse>();
|
||||||
List<TemplateResponse> templateResponses = _responseGenerator.createTemplateResponses(ResponseView.Restricted,
|
List<TemplateResponse> templateResponses = _responseGenerator.createTemplateResponses(getResponseView(),
|
||||||
template, getZoneIds(), false);
|
template, getZoneIds(), false);
|
||||||
response.setResponses(templateResponses);
|
response.setResponses(templateResponses);
|
||||||
response.setResponseName(getCommandName());
|
response.setResponseName(getCommandName());
|
||||||
|
|||||||
@ -23,6 +23,7 @@ import org.apache.cloudstack.api.ApiErrorCode;
|
|||||||
import org.apache.cloudstack.api.BaseUpdateTemplateOrIsoCmd;
|
import org.apache.cloudstack.api.BaseUpdateTemplateOrIsoCmd;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.ServerApiException;
|
||||||
|
import org.apache.cloudstack.api.command.user.UserCmd;
|
||||||
import org.apache.cloudstack.api.response.TemplateResponse;
|
import org.apache.cloudstack.api.response.TemplateResponse;
|
||||||
|
|
||||||
import com.cloud.template.VirtualMachineTemplate;
|
import com.cloud.template.VirtualMachineTemplate;
|
||||||
@ -30,7 +31,7 @@ import com.cloud.user.Account;
|
|||||||
|
|
||||||
@APICommand(name = "updateTemplate", description = "Updates attributes of a template.", responseObject = TemplateResponse.class, responseView = ResponseView.Restricted,
|
@APICommand(name = "updateTemplate", description = "Updates attributes of a template.", responseObject = TemplateResponse.class, responseView = ResponseView.Restricted,
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||||
public class UpdateTemplateCmd extends BaseUpdateTemplateOrIsoCmd {
|
public class UpdateTemplateCmd extends BaseUpdateTemplateOrIsoCmd implements UserCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(UpdateTemplateCmd.class.getName());
|
public static final Logger s_logger = Logger.getLogger(UpdateTemplateCmd.class.getName());
|
||||||
private static final String s_name = "updatetemplateresponse";
|
private static final String s_name = "updatetemplateresponse";
|
||||||
|
|
||||||
@ -70,7 +71,7 @@ public class UpdateTemplateCmd extends BaseUpdateTemplateOrIsoCmd {
|
|||||||
public void execute() {
|
public void execute() {
|
||||||
VirtualMachineTemplate result = _templateService.updateTemplate(this);
|
VirtualMachineTemplate result = _templateService.updateTemplate(this);
|
||||||
if (result != null) {
|
if (result != null) {
|
||||||
TemplateResponse response = _responseGenerator.createTemplateUpdateResponse(ResponseView.Restricted, result);
|
TemplateResponse response = _responseGenerator.createTemplateUpdateResponse(getResponseView(), result);
|
||||||
response.setObjectName("template");
|
response.setObjectName("template");
|
||||||
response.setTemplateType(result.getTemplateType().toString());//Template can be either USER or ROUTING type
|
response.setTemplateType(result.getTemplateType().toString());//Template can be either USER or ROUTING type
|
||||||
response.setResponseName(getCommandName());
|
response.setResponseName(getCommandName());
|
||||||
|
|||||||
@ -35,6 +35,7 @@ import org.apache.cloudstack.api.BaseAsyncCmd;
|
|||||||
import org.apache.cloudstack.api.Parameter;
|
import org.apache.cloudstack.api.Parameter;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.ServerApiException;
|
||||||
|
import org.apache.cloudstack.api.command.user.UserCmd;
|
||||||
import org.apache.cloudstack.api.response.NetworkResponse;
|
import org.apache.cloudstack.api.response.NetworkResponse;
|
||||||
import org.apache.cloudstack.api.response.UserVmResponse;
|
import org.apache.cloudstack.api.response.UserVmResponse;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
import org.apache.cloudstack.context.CallContext;
|
||||||
@ -49,7 +50,7 @@ import com.cloud.vm.VirtualMachine;
|
|||||||
|
|
||||||
@APICommand(name = "addNicToVirtualMachine", description = "Adds VM to specified network by creating a NIC", responseObject = UserVmResponse.class, responseView = ResponseView.Restricted, entityType = {VirtualMachine.class},
|
@APICommand(name = "addNicToVirtualMachine", description = "Adds VM to specified network by creating a NIC", responseObject = UserVmResponse.class, responseView = ResponseView.Restricted, entityType = {VirtualMachine.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
||||||
public class AddNicToVMCmd extends BaseAsyncCmd {
|
public class AddNicToVMCmd extends BaseAsyncCmd implements UserCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(AddNicToVMCmd.class);
|
public static final Logger s_logger = Logger.getLogger(AddNicToVMCmd.class);
|
||||||
private static final String s_name = "addnictovirtualmachineresponse";
|
private static final String s_name = "addnictovirtualmachineresponse";
|
||||||
|
|
||||||
@ -164,7 +165,7 @@ public class AddNicToVMCmd extends BaseAsyncCmd {
|
|||||||
dc.add(VMDetails.valueOf("nics"));
|
dc.add(VMDetails.valueOf("nics"));
|
||||||
EnumSet<VMDetails> details = EnumSet.copyOf(dc);
|
EnumSet<VMDetails> details = EnumSet.copyOf(dc);
|
||||||
if (result != null){
|
if (result != null){
|
||||||
UserVmResponse response = _responseGenerator.createUserVmResponse(ResponseView.Restricted, "virtualmachine", details, result).get(0);
|
UserVmResponse response = _responseGenerator.createUserVmResponse(getResponseView(), "virtualmachine", details, result).get(0);
|
||||||
response.setResponseName(getCommandName());
|
response.setResponseName(getCommandName());
|
||||||
setResponseObject(response);
|
setResponseObject(response);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -24,6 +24,10 @@ import java.util.LinkedHashMap;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
import org.apache.cloudstack.acl.RoleType;
|
import org.apache.cloudstack.acl.RoleType;
|
||||||
import org.apache.cloudstack.affinity.AffinityGroupResponse;
|
import org.apache.cloudstack.affinity.AffinityGroupResponse;
|
||||||
import org.apache.cloudstack.api.ACL;
|
import org.apache.cloudstack.api.ACL;
|
||||||
@ -35,6 +39,7 @@ import org.apache.cloudstack.api.BaseAsyncCreateCustomIdCmd;
|
|||||||
import org.apache.cloudstack.api.Parameter;
|
import org.apache.cloudstack.api.Parameter;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.ServerApiException;
|
||||||
|
import org.apache.cloudstack.api.command.user.UserCmd;
|
||||||
import org.apache.cloudstack.api.response.DiskOfferingResponse;
|
import org.apache.cloudstack.api.response.DiskOfferingResponse;
|
||||||
import org.apache.cloudstack.api.response.DomainResponse;
|
import org.apache.cloudstack.api.response.DomainResponse;
|
||||||
import org.apache.cloudstack.api.response.HostResponse;
|
import org.apache.cloudstack.api.response.HostResponse;
|
||||||
@ -47,7 +52,6 @@ import org.apache.cloudstack.api.response.UserVmResponse;
|
|||||||
import org.apache.cloudstack.api.response.ZoneResponse;
|
import org.apache.cloudstack.api.response.ZoneResponse;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
import org.apache.cloudstack.context.CallContext;
|
||||||
import org.apache.commons.collections.MapUtils;
|
import org.apache.commons.collections.MapUtils;
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
|
|
||||||
import com.cloud.event.EventTypes;
|
import com.cloud.event.EventTypes;
|
||||||
import com.cloud.exception.ConcurrentOperationException;
|
import com.cloud.exception.ConcurrentOperationException;
|
||||||
@ -68,7 +72,7 @@ import com.cloud.vm.VirtualMachine;
|
|||||||
|
|
||||||
@APICommand(name = "deployVirtualMachine", description = "Creates and automatically starts a virtual machine based on a service offering, disk offering, and template.", responseObject = UserVmResponse.class, responseView = ResponseView.Restricted, entityType = {VirtualMachine.class},
|
@APICommand(name = "deployVirtualMachine", description = "Creates and automatically starts a virtual machine based on a service offering, disk offering, and template.", responseObject = UserVmResponse.class, responseView = ResponseView.Restricted, entityType = {VirtualMachine.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
||||||
public class DeployVMCmd extends BaseAsyncCreateCustomIdCmd implements SecurityGroupAction {
|
public class DeployVMCmd extends BaseAsyncCreateCustomIdCmd implements SecurityGroupAction, UserCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(DeployVMCmd.class.getName());
|
public static final Logger s_logger = Logger.getLogger(DeployVMCmd.class.getName());
|
||||||
|
|
||||||
private static final String s_name = "deployvirtualmachineresponse";
|
private static final String s_name = "deployvirtualmachineresponse";
|
||||||
@ -341,32 +345,8 @@ public class DeployVMCmd extends BaseAsyncCreateCustomIdCmd implements SecurityG
|
|||||||
Iterator iter = ipsCollection.iterator();
|
Iterator iter = ipsCollection.iterator();
|
||||||
while (iter.hasNext()) {
|
while (iter.hasNext()) {
|
||||||
HashMap<String, String> ips = (HashMap<String, String>)iter.next();
|
HashMap<String, String> ips = (HashMap<String, String>)iter.next();
|
||||||
Long networkId;
|
Long networkId = getNetworkIdFomIpMap(ips);
|
||||||
Network network = _networkService.getNetwork(ips.get("networkid"));
|
IpAddresses addrs = getIpAddressesFromIpMap(ips);
|
||||||
if (network != null) {
|
|
||||||
networkId = network.getId();
|
|
||||||
} else {
|
|
||||||
try {
|
|
||||||
networkId = Long.parseLong(ips.get("networkid"));
|
|
||||||
} catch (NumberFormatException e) {
|
|
||||||
throw new InvalidParameterValueException("Unable to translate and find entity with networkId: " + ips.get("networkid"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
String requestedIp = ips.get("ip");
|
|
||||||
String requestedIpv6 = ips.get("ipv6");
|
|
||||||
String requestedMac = ips.get("mac");
|
|
||||||
if (requestedIpv6 != null) {
|
|
||||||
requestedIpv6 = NetUtils.standardizeIp6Address(requestedIpv6);
|
|
||||||
}
|
|
||||||
if (requestedMac != null) {
|
|
||||||
if(!NetUtils.isValidMac(requestedMac)) {
|
|
||||||
throw new InvalidParameterValueException("Mac address is not valid: " + requestedMac);
|
|
||||||
} else if(!NetUtils.isUnicastMac(requestedMac)) {
|
|
||||||
throw new InvalidParameterValueException("Mac address is not unicast: " + requestedMac);
|
|
||||||
}
|
|
||||||
requestedMac = NetUtils.standardizeMacAddress(requestedMac);
|
|
||||||
}
|
|
||||||
IpAddresses addrs = new IpAddresses(requestedIp, requestedIpv6, requestedMac);
|
|
||||||
ipToNetworkMap.put(networkId, addrs);
|
ipToNetworkMap.put(networkId, addrs);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -374,6 +354,42 @@ public class DeployVMCmd extends BaseAsyncCreateCustomIdCmd implements SecurityG
|
|||||||
return ipToNetworkMap;
|
return ipToNetworkMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
|
private IpAddresses getIpAddressesFromIpMap(HashMap<String, String> ips) {
|
||||||
|
String requestedIp = ips.get("ip");
|
||||||
|
String requestedIpv6 = ips.get("ipv6");
|
||||||
|
String requestedMac = ips.get("mac");
|
||||||
|
if (requestedIpv6 != null) {
|
||||||
|
requestedIpv6 = NetUtils.standardizeIp6Address(requestedIpv6);
|
||||||
|
}
|
||||||
|
if (requestedMac != null) {
|
||||||
|
if(!NetUtils.isValidMac(requestedMac)) {
|
||||||
|
throw new InvalidParameterValueException("Mac address is not valid: " + requestedMac);
|
||||||
|
} else if(!NetUtils.isUnicastMac(requestedMac)) {
|
||||||
|
throw new InvalidParameterValueException("Mac address is not unicast: " + requestedMac);
|
||||||
|
}
|
||||||
|
requestedMac = NetUtils.standardizeMacAddress(requestedMac);
|
||||||
|
}
|
||||||
|
return new IpAddresses(requestedIp, requestedIpv6, requestedMac);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nonnull
|
||||||
|
private Long getNetworkIdFomIpMap(HashMap<String, String> ips) {
|
||||||
|
Long networkId;
|
||||||
|
final String networkid = ips.get("networkid");
|
||||||
|
Network network = _networkService.getNetwork(networkid);
|
||||||
|
if (network != null) {
|
||||||
|
networkId = network.getId();
|
||||||
|
} else {
|
||||||
|
try {
|
||||||
|
networkId = Long.parseLong(networkid);
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
throw new InvalidParameterValueException("Unable to translate and find entity with networkId: " + networkid);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return networkId;
|
||||||
|
}
|
||||||
|
|
||||||
public String getIpAddress() {
|
public String getIpAddress() {
|
||||||
return ipAddress;
|
return ipAddress;
|
||||||
}
|
}
|
||||||
@ -573,7 +589,7 @@ public class DeployVMCmd extends BaseAsyncCreateCustomIdCmd implements SecurityG
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (result != null) {
|
if (result != null) {
|
||||||
UserVmResponse response = _responseGenerator.createUserVmResponse(ResponseView.Restricted, "virtualmachine", result).get(0);
|
UserVmResponse response = _responseGenerator.createUserVmResponse(getResponseView(), "virtualmachine", result).get(0);
|
||||||
response.setResponseName(getCommandName());
|
response.setResponseName(getCommandName());
|
||||||
setResponseObject(response);
|
setResponseObject(response);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -30,6 +30,7 @@ import org.apache.cloudstack.api.BaseAsyncCmd;
|
|||||||
import org.apache.cloudstack.api.Parameter;
|
import org.apache.cloudstack.api.Parameter;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.ServerApiException;
|
||||||
|
import org.apache.cloudstack.api.command.user.UserCmd;
|
||||||
import org.apache.cloudstack.api.response.UserVmResponse;
|
import org.apache.cloudstack.api.response.UserVmResponse;
|
||||||
import org.apache.cloudstack.api.response.VolumeResponse;
|
import org.apache.cloudstack.api.response.VolumeResponse;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
import org.apache.cloudstack.context.CallContext;
|
||||||
@ -44,7 +45,7 @@ import com.cloud.vm.VirtualMachine;
|
|||||||
@APICommand(name = "destroyVirtualMachine", description = "Destroys a virtual machine.", responseObject = UserVmResponse.class, responseView = ResponseView.Restricted, entityType = {VirtualMachine.class},
|
@APICommand(name = "destroyVirtualMachine", description = "Destroys a virtual machine.", responseObject = UserVmResponse.class, responseView = ResponseView.Restricted, entityType = {VirtualMachine.class},
|
||||||
requestHasSensitiveInfo = false,
|
requestHasSensitiveInfo = false,
|
||||||
responseHasSensitiveInfo = true)
|
responseHasSensitiveInfo = true)
|
||||||
public class DestroyVMCmd extends BaseAsyncCmd {
|
public class DestroyVMCmd extends BaseAsyncCmd implements UserCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(DestroyVMCmd.class.getName());
|
public static final Logger s_logger = Logger.getLogger(DestroyVMCmd.class.getName());
|
||||||
|
|
||||||
private static final String s_name = "destroyvirtualmachineresponse";
|
private static final String s_name = "destroyvirtualmachineresponse";
|
||||||
@ -137,7 +138,7 @@ public class DestroyVMCmd extends BaseAsyncCmd {
|
|||||||
|
|
||||||
UserVmResponse response = new UserVmResponse();
|
UserVmResponse response = new UserVmResponse();
|
||||||
if (result != null) {
|
if (result != null) {
|
||||||
List<UserVmResponse> responses = _responseGenerator.createUserVmResponse(ResponseView.Restricted, "virtualmachine", result);
|
List<UserVmResponse> responses = _responseGenerator.createUserVmResponse(getResponseView(), "virtualmachine", result);
|
||||||
if (responses != null && !responses.isEmpty()) {
|
if (responses != null && !responses.isEmpty()) {
|
||||||
response = responses.get(0);
|
response = responses.get(0);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -20,6 +20,7 @@ import java.util.ArrayList;
|
|||||||
import java.util.EnumSet;
|
import java.util.EnumSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.cloudstack.api.command.user.UserCmd;
|
||||||
import org.apache.cloudstack.api.response.UserResponse;
|
import org.apache.cloudstack.api.response.UserResponse;
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
@ -51,7 +52,7 @@ import com.cloud.vm.VirtualMachine;
|
|||||||
|
|
||||||
@APICommand(name = "listVirtualMachines", description = "List the virtual machines owned by the account.", responseObject = UserVmResponse.class, responseView = ResponseView.Restricted, entityType = {VirtualMachine.class},
|
@APICommand(name = "listVirtualMachines", description = "List the virtual machines owned by the account.", responseObject = UserVmResponse.class, responseView = ResponseView.Restricted, entityType = {VirtualMachine.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
||||||
public class ListVMsCmd extends BaseListTaggedResourcesCmd {
|
public class ListVMsCmd extends BaseListTaggedResourcesCmd implements UserCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(ListVMsCmd.class.getName());
|
public static final Logger s_logger = Logger.getLogger(ListVMsCmd.class.getName());
|
||||||
|
|
||||||
private static final String s_name = "listvirtualmachinesresponse";
|
private static final String s_name = "listvirtualmachinesresponse";
|
||||||
|
|||||||
@ -28,6 +28,7 @@ import org.apache.cloudstack.api.BaseAsyncCmd;
|
|||||||
import org.apache.cloudstack.api.Parameter;
|
import org.apache.cloudstack.api.Parameter;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.ServerApiException;
|
||||||
|
import org.apache.cloudstack.api.command.user.UserCmd;
|
||||||
import org.apache.cloudstack.api.response.UserVmResponse;
|
import org.apache.cloudstack.api.response.UserVmResponse;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
import org.apache.cloudstack.context.CallContext;
|
||||||
|
|
||||||
@ -40,7 +41,7 @@ import com.cloud.vm.VirtualMachine;
|
|||||||
|
|
||||||
@APICommand(name = "rebootVirtualMachine", description = "Reboots a virtual machine.", responseObject = UserVmResponse.class, responseView = ResponseView.Restricted, entityType = {VirtualMachine.class},
|
@APICommand(name = "rebootVirtualMachine", description = "Reboots a virtual machine.", responseObject = UserVmResponse.class, responseView = ResponseView.Restricted, entityType = {VirtualMachine.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
||||||
public class RebootVMCmd extends BaseAsyncCmd {
|
public class RebootVMCmd extends BaseAsyncCmd implements UserCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(RebootVMCmd.class.getName());
|
public static final Logger s_logger = Logger.getLogger(RebootVMCmd.class.getName());
|
||||||
private static final String s_name = "rebootvirtualmachineresponse";
|
private static final String s_name = "rebootvirtualmachineresponse";
|
||||||
|
|
||||||
@ -105,7 +106,7 @@ public class RebootVMCmd extends BaseAsyncCmd {
|
|||||||
UserVm result;
|
UserVm result;
|
||||||
result = _userVmService.rebootVirtualMachine(this);
|
result = _userVmService.rebootVirtualMachine(this);
|
||||||
if (result !=null){
|
if (result !=null){
|
||||||
UserVmResponse response = _responseGenerator.createUserVmResponse(ResponseView.Restricted, "virtualmachine", result).get(0);
|
UserVmResponse response = _responseGenerator.createUserVmResponse(getResponseView(), "virtualmachine", result).get(0);
|
||||||
response.setResponseName(getCommandName());
|
response.setResponseName(getCommandName());
|
||||||
setResponseObject(response);
|
setResponseObject(response);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -32,6 +32,7 @@ import org.apache.cloudstack.api.BaseAsyncCmd;
|
|||||||
import org.apache.cloudstack.api.Parameter;
|
import org.apache.cloudstack.api.Parameter;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.ServerApiException;
|
||||||
|
import org.apache.cloudstack.api.command.user.UserCmd;
|
||||||
import org.apache.cloudstack.api.response.NicResponse;
|
import org.apache.cloudstack.api.response.NicResponse;
|
||||||
import org.apache.cloudstack.api.response.UserVmResponse;
|
import org.apache.cloudstack.api.response.UserVmResponse;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
import org.apache.cloudstack.context.CallContext;
|
||||||
@ -43,7 +44,7 @@ import com.cloud.vm.VirtualMachine;
|
|||||||
|
|
||||||
@APICommand(name = "removeNicFromVirtualMachine", description = "Removes VM from specified network by deleting a NIC", responseObject = UserVmResponse.class, responseView = ResponseView.Restricted, entityType = {VirtualMachine.class},
|
@APICommand(name = "removeNicFromVirtualMachine", description = "Removes VM from specified network by deleting a NIC", responseObject = UserVmResponse.class, responseView = ResponseView.Restricted, entityType = {VirtualMachine.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
||||||
public class RemoveNicFromVMCmd extends BaseAsyncCmd {
|
public class RemoveNicFromVMCmd extends BaseAsyncCmd implements UserCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(RemoveNicFromVMCmd.class);
|
public static final Logger s_logger = Logger.getLogger(RemoveNicFromVMCmd.class);
|
||||||
private static final String s_name = "removenicfromvirtualmachineresponse";
|
private static final String s_name = "removenicfromvirtualmachineresponse";
|
||||||
|
|
||||||
@ -110,7 +111,7 @@ public class RemoveNicFromVMCmd extends BaseAsyncCmd {
|
|||||||
dc.add(VMDetails.valueOf("nics"));
|
dc.add(VMDetails.valueOf("nics"));
|
||||||
EnumSet<VMDetails> details = EnumSet.copyOf(dc);
|
EnumSet<VMDetails> details = EnumSet.copyOf(dc);
|
||||||
if (result != null){
|
if (result != null){
|
||||||
UserVmResponse response = _responseGenerator.createUserVmResponse(ResponseView.Restricted, "virtualmachine", details, result).get(0);
|
UserVmResponse response = _responseGenerator.createUserVmResponse(getResponseView(), "virtualmachine", details, result).get(0);
|
||||||
response.setResponseName(getCommandName());
|
response.setResponseName(getCommandName());
|
||||||
setResponseObject(response);
|
setResponseObject(response);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -28,6 +28,7 @@ import org.apache.cloudstack.api.BaseAsyncCmd;
|
|||||||
import org.apache.cloudstack.api.Parameter;
|
import org.apache.cloudstack.api.Parameter;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.ServerApiException;
|
||||||
|
import org.apache.cloudstack.api.command.user.UserCmd;
|
||||||
import org.apache.cloudstack.api.response.UserVmResponse;
|
import org.apache.cloudstack.api.response.UserVmResponse;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
import org.apache.cloudstack.context.CallContext;
|
||||||
|
|
||||||
@ -42,7 +43,7 @@ import com.cloud.vm.VirtualMachine;
|
|||||||
"The virtual machine must be in a \"Stopped\" state and the template must already " +
|
"The virtual machine must be in a \"Stopped\" state and the template must already " +
|
||||||
"support this feature for this command to take effect. [async]", responseView = ResponseView.Restricted, entityType = {VirtualMachine.class},
|
"support this feature for this command to take effect. [async]", responseView = ResponseView.Restricted, entityType = {VirtualMachine.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
||||||
public class ResetVMPasswordCmd extends BaseAsyncCmd {
|
public class ResetVMPasswordCmd extends BaseAsyncCmd implements UserCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(ResetVMPasswordCmd.class.getName());
|
public static final Logger s_logger = Logger.getLogger(ResetVMPasswordCmd.class.getName());
|
||||||
|
|
||||||
private static final String s_name = "resetpasswordforvirtualmachineresponse";
|
private static final String s_name = "resetpasswordforvirtualmachineresponse";
|
||||||
@ -121,7 +122,7 @@ public class ResetVMPasswordCmd extends BaseAsyncCmd {
|
|||||||
CallContext.current().setEventDetails("Vm Id: " + getId());
|
CallContext.current().setEventDetails("Vm Id: " + getId());
|
||||||
UserVm result = _userVmService.resetVMPassword(this, password);
|
UserVm result = _userVmService.resetVMPassword(this, password);
|
||||||
if (result != null){
|
if (result != null){
|
||||||
UserVmResponse response = _responseGenerator.createUserVmResponse(ResponseView.Restricted, "virtualmachine", result).get(0);
|
UserVmResponse response = _responseGenerator.createUserVmResponse(getResponseView(), "virtualmachine", result).get(0);
|
||||||
response.setResponseName(getCommandName());
|
response.setResponseName(getCommandName());
|
||||||
setResponseObject(response);
|
setResponseObject(response);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -29,6 +29,7 @@ import org.apache.cloudstack.api.BaseAsyncCmd;
|
|||||||
import org.apache.cloudstack.api.Parameter;
|
import org.apache.cloudstack.api.Parameter;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.ServerApiException;
|
||||||
|
import org.apache.cloudstack.api.command.user.UserCmd;
|
||||||
import org.apache.cloudstack.api.response.DomainResponse;
|
import org.apache.cloudstack.api.response.DomainResponse;
|
||||||
import org.apache.cloudstack.api.response.ProjectResponse;
|
import org.apache.cloudstack.api.response.ProjectResponse;
|
||||||
import org.apache.cloudstack.api.response.UserVmResponse;
|
import org.apache.cloudstack.api.response.UserVmResponse;
|
||||||
@ -44,7 +45,7 @@ import com.cloud.vm.VirtualMachine;
|
|||||||
@APICommand(name = "resetSSHKeyForVirtualMachine", responseObject = UserVmResponse.class, description = "Resets the SSH Key for virtual machine. " +
|
@APICommand(name = "resetSSHKeyForVirtualMachine", responseObject = UserVmResponse.class, description = "Resets the SSH Key for virtual machine. " +
|
||||||
"The virtual machine must be in a \"Stopped\" state. [async]", responseView = ResponseView.Restricted, entityType = {VirtualMachine.class},
|
"The virtual machine must be in a \"Stopped\" state. [async]", responseView = ResponseView.Restricted, entityType = {VirtualMachine.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
||||||
public class ResetVMSSHKeyCmd extends BaseAsyncCmd {
|
public class ResetVMSSHKeyCmd extends BaseAsyncCmd implements UserCmd {
|
||||||
|
|
||||||
public static final Logger s_logger = Logger.getLogger(ResetVMSSHKeyCmd.class.getName());
|
public static final Logger s_logger = Logger.getLogger(ResetVMSSHKeyCmd.class.getName());
|
||||||
|
|
||||||
@ -143,7 +144,7 @@ public class ResetVMSSHKeyCmd extends BaseAsyncCmd {
|
|||||||
UserVm result = _userVmService.resetVMSSHKey(this);
|
UserVm result = _userVmService.resetVMSSHKey(this);
|
||||||
|
|
||||||
if (result != null) {
|
if (result != null) {
|
||||||
UserVmResponse response = _responseGenerator.createUserVmResponse(ResponseView.Restricted, "virtualmachine", result).get(0);
|
UserVmResponse response = _responseGenerator.createUserVmResponse(getResponseView(), "virtualmachine", result).get(0);
|
||||||
response.setResponseName(getCommandName());
|
response.setResponseName(getCommandName());
|
||||||
setResponseObject(response);
|
setResponseObject(response);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -27,6 +27,7 @@ import org.apache.cloudstack.api.BaseAsyncCmd;
|
|||||||
import org.apache.cloudstack.api.Parameter;
|
import org.apache.cloudstack.api.Parameter;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.ServerApiException;
|
||||||
|
import org.apache.cloudstack.api.command.user.UserCmd;
|
||||||
import org.apache.cloudstack.api.response.TemplateResponse;
|
import org.apache.cloudstack.api.response.TemplateResponse;
|
||||||
import org.apache.cloudstack.api.response.UserVmResponse;
|
import org.apache.cloudstack.api.response.UserVmResponse;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
import org.apache.cloudstack.context.CallContext;
|
||||||
@ -43,7 +44,7 @@ import com.cloud.vm.VirtualMachine;
|
|||||||
@APICommand(name = "restoreVirtualMachine", description = "Restore a VM to original template/ISO or new template/ISO", responseObject = UserVmResponse.class, since = "3.0.0", responseView = ResponseView.Restricted, entityType = {VirtualMachine.class},
|
@APICommand(name = "restoreVirtualMachine", description = "Restore a VM to original template/ISO or new template/ISO", responseObject = UserVmResponse.class, since = "3.0.0", responseView = ResponseView.Restricted, entityType = {VirtualMachine.class},
|
||||||
requestHasSensitiveInfo = false,
|
requestHasSensitiveInfo = false,
|
||||||
responseHasSensitiveInfo = true)
|
responseHasSensitiveInfo = true)
|
||||||
public class RestoreVMCmd extends BaseAsyncCmd {
|
public class RestoreVMCmd extends BaseAsyncCmd implements UserCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(RestoreVMCmd.class);
|
public static final Logger s_logger = Logger.getLogger(RestoreVMCmd.class);
|
||||||
private static final String s_name = "restorevmresponse";
|
private static final String s_name = "restorevmresponse";
|
||||||
|
|
||||||
@ -75,7 +76,7 @@ public class RestoreVMCmd extends BaseAsyncCmd {
|
|||||||
CallContext.current().setEventDetails("Vm Id: " + this._uuidMgr.getUuid(VirtualMachine.class, getVmId()));
|
CallContext.current().setEventDetails("Vm Id: " + this._uuidMgr.getUuid(VirtualMachine.class, getVmId()));
|
||||||
result = _userVmService.restoreVM(this);
|
result = _userVmService.restoreVM(this);
|
||||||
if (result != null) {
|
if (result != null) {
|
||||||
UserVmResponse response = _responseGenerator.createUserVmResponse(ResponseView.Restricted, "virtualmachine", result).get(0);
|
UserVmResponse response = _responseGenerator.createUserVmResponse(getResponseView(), "virtualmachine", result).get(0);
|
||||||
response.setResponseName(getCommandName());
|
response.setResponseName(getCommandName());
|
||||||
setResponseObject(response);
|
setResponseObject(response);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -35,6 +35,7 @@ import org.apache.cloudstack.api.BaseCmd;
|
|||||||
import org.apache.cloudstack.api.Parameter;
|
import org.apache.cloudstack.api.Parameter;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.ServerApiException;
|
||||||
|
import org.apache.cloudstack.api.command.user.UserCmd;
|
||||||
import org.apache.cloudstack.api.response.ServiceOfferingResponse;
|
import org.apache.cloudstack.api.response.ServiceOfferingResponse;
|
||||||
import org.apache.cloudstack.api.response.SuccessResponse;
|
import org.apache.cloudstack.api.response.SuccessResponse;
|
||||||
import org.apache.cloudstack.api.response.UserVmResponse;
|
import org.apache.cloudstack.api.response.UserVmResponse;
|
||||||
@ -51,7 +52,7 @@ import com.cloud.vm.VirtualMachine;
|
|||||||
|
|
||||||
@APICommand(name = "scaleVirtualMachine", description = "Scales the virtual machine to a new service offering.", responseObject = SuccessResponse.class, responseView = ResponseView.Restricted, entityType = {VirtualMachine.class},
|
@APICommand(name = "scaleVirtualMachine", description = "Scales the virtual machine to a new service offering.", responseObject = SuccessResponse.class, responseView = ResponseView.Restricted, entityType = {VirtualMachine.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||||
public class ScaleVMCmd extends BaseAsyncCmd {
|
public class ScaleVMCmd extends BaseAsyncCmd implements UserCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(ScaleVMCmd.class.getName());
|
public static final Logger s_logger = Logger.getLogger(ScaleVMCmd.class.getName());
|
||||||
private static final String s_name = "scalevirtualmachineresponse";
|
private static final String s_name = "scalevirtualmachineresponse";
|
||||||
|
|
||||||
@ -152,7 +153,7 @@ public class ScaleVMCmd extends BaseAsyncCmd {
|
|||||||
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, ex.getMessage());
|
throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, ex.getMessage());
|
||||||
}
|
}
|
||||||
if (result != null){
|
if (result != null){
|
||||||
List<UserVmResponse> responseList = _responseGenerator.createUserVmResponse(ResponseView.Restricted, "virtualmachine", result);
|
List<UserVmResponse> responseList = _responseGenerator.createUserVmResponse(getResponseView(), "virtualmachine", result);
|
||||||
UserVmResponse response = responseList.get(0);
|
UserVmResponse response = responseList.get(0);
|
||||||
response.setResponseName(getCommandName());
|
response.setResponseName(getCommandName());
|
||||||
setResponseObject(response);
|
setResponseObject(response);
|
||||||
|
|||||||
@ -31,6 +31,7 @@ import org.apache.cloudstack.api.BaseAsyncCmd;
|
|||||||
import org.apache.cloudstack.api.Parameter;
|
import org.apache.cloudstack.api.Parameter;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.ServerApiException;
|
||||||
|
import org.apache.cloudstack.api.command.user.UserCmd;
|
||||||
import org.apache.cloudstack.api.response.HostResponse;
|
import org.apache.cloudstack.api.response.HostResponse;
|
||||||
import org.apache.cloudstack.api.response.UserVmResponse;
|
import org.apache.cloudstack.api.response.UserVmResponse;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
import org.apache.cloudstack.context.CallContext;
|
||||||
@ -49,7 +50,7 @@ import com.cloud.vm.VirtualMachine;
|
|||||||
|
|
||||||
@APICommand(name = "startVirtualMachine", responseObject = UserVmResponse.class, description = "Starts a virtual machine.", responseView = ResponseView.Restricted, entityType = {VirtualMachine.class},
|
@APICommand(name = "startVirtualMachine", responseObject = UserVmResponse.class, description = "Starts a virtual machine.", responseView = ResponseView.Restricted, entityType = {VirtualMachine.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
||||||
public class StartVMCmd extends BaseAsyncCmd {
|
public class StartVMCmd extends BaseAsyncCmd implements UserCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(StartVMCmd.class.getName());
|
public static final Logger s_logger = Logger.getLogger(StartVMCmd.class.getName());
|
||||||
|
|
||||||
private static final String s_name = "startvirtualmachineresponse";
|
private static final String s_name = "startvirtualmachineresponse";
|
||||||
@ -161,7 +162,7 @@ public class StartVMCmd extends BaseAsyncCmd {
|
|||||||
result = _userVmService.startVirtualMachine(this);
|
result = _userVmService.startVirtualMachine(this);
|
||||||
|
|
||||||
if (result != null) {
|
if (result != null) {
|
||||||
UserVmResponse response = _responseGenerator.createUserVmResponse(ResponseView.Restricted, "virtualmachine", result).get(0);
|
UserVmResponse response = _responseGenerator.createUserVmResponse(getResponseView(), "virtualmachine", result).get(0);
|
||||||
response.setResponseName(getCommandName());
|
response.setResponseName(getCommandName());
|
||||||
setResponseObject(response);
|
setResponseObject(response);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -28,6 +28,7 @@ import org.apache.cloudstack.api.BaseAsyncCmd;
|
|||||||
import org.apache.cloudstack.api.Parameter;
|
import org.apache.cloudstack.api.Parameter;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.ServerApiException;
|
||||||
|
import org.apache.cloudstack.api.command.user.UserCmd;
|
||||||
import org.apache.cloudstack.api.response.UserVmResponse;
|
import org.apache.cloudstack.api.response.UserVmResponse;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
import org.apache.cloudstack.context.CallContext;
|
||||||
|
|
||||||
@ -39,7 +40,7 @@ import com.cloud.vm.VirtualMachine;
|
|||||||
|
|
||||||
@APICommand(name = "stopVirtualMachine", responseObject = UserVmResponse.class, description = "Stops a virtual machine.", responseView = ResponseView.Restricted, entityType = {VirtualMachine.class},
|
@APICommand(name = "stopVirtualMachine", responseObject = UserVmResponse.class, description = "Stops a virtual machine.", responseView = ResponseView.Restricted, entityType = {VirtualMachine.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
||||||
public class StopVMCmd extends BaseAsyncCmd {
|
public class StopVMCmd extends BaseAsyncCmd implements UserCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(StopVMCmd.class.getName());
|
public static final Logger s_logger = Logger.getLogger(StopVMCmd.class.getName());
|
||||||
|
|
||||||
private static final String s_name = "stopvirtualmachineresponse";
|
private static final String s_name = "stopvirtualmachineresponse";
|
||||||
@ -121,7 +122,7 @@ public class StopVMCmd extends BaseAsyncCmd {
|
|||||||
result = _userVmService.stopVirtualMachine(getId(), isForced());
|
result = _userVmService.stopVirtualMachine(getId(), isForced());
|
||||||
|
|
||||||
if (result != null) {
|
if (result != null) {
|
||||||
UserVmResponse response = _responseGenerator.createUserVmResponse(ResponseView.Restricted, "virtualmachine", result).get(0);
|
UserVmResponse response = _responseGenerator.createUserVmResponse(getResponseView(), "virtualmachine", result).get(0);
|
||||||
response.setResponseName(getCommandName());
|
response.setResponseName(getCommandName());
|
||||||
setResponseObject(response);
|
setResponseObject(response);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -32,6 +32,7 @@ import org.apache.cloudstack.api.BaseAsyncCmd;
|
|||||||
import org.apache.cloudstack.api.Parameter;
|
import org.apache.cloudstack.api.Parameter;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.ServerApiException;
|
||||||
|
import org.apache.cloudstack.api.command.user.UserCmd;
|
||||||
import org.apache.cloudstack.api.response.NicResponse;
|
import org.apache.cloudstack.api.response.NicResponse;
|
||||||
import org.apache.cloudstack.api.response.UserVmResponse;
|
import org.apache.cloudstack.api.response.UserVmResponse;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
import org.apache.cloudstack.context.CallContext;
|
||||||
@ -43,7 +44,7 @@ import com.cloud.vm.VirtualMachine;
|
|||||||
|
|
||||||
@APICommand(name = "updateDefaultNicForVirtualMachine", description = "Changes the default NIC on a VM", responseObject = UserVmResponse.class, responseView = ResponseView.Restricted, entityType = {VirtualMachine.class},
|
@APICommand(name = "updateDefaultNicForVirtualMachine", description = "Changes the default NIC on a VM", responseObject = UserVmResponse.class, responseView = ResponseView.Restricted, entityType = {VirtualMachine.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
||||||
public class UpdateDefaultNicForVMCmd extends BaseAsyncCmd {
|
public class UpdateDefaultNicForVMCmd extends BaseAsyncCmd implements UserCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(UpdateDefaultNicForVMCmd.class);
|
public static final Logger s_logger = Logger.getLogger(UpdateDefaultNicForVMCmd.class);
|
||||||
private static final String s_name = "updatedefaultnicforvirtualmachineresponse";
|
private static final String s_name = "updatedefaultnicforvirtualmachineresponse";
|
||||||
|
|
||||||
@ -111,7 +112,7 @@ public class UpdateDefaultNicForVMCmd extends BaseAsyncCmd {
|
|||||||
dc.add(VMDetails.valueOf("nics"));
|
dc.add(VMDetails.valueOf("nics"));
|
||||||
EnumSet<VMDetails> details = EnumSet.copyOf(dc);
|
EnumSet<VMDetails> details = EnumSet.copyOf(dc);
|
||||||
if (result != null){
|
if (result != null){
|
||||||
UserVmResponse response = _responseGenerator.createUserVmResponse(ResponseView.Restricted, "virtualmachine", details, result).get(0);
|
UserVmResponse response = _responseGenerator.createUserVmResponse(getResponseView(), "virtualmachine", details, result).get(0);
|
||||||
response.setResponseName(getCommandName());
|
response.setResponseName(getCommandName());
|
||||||
setResponseObject(response);
|
setResponseObject(response);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -33,6 +33,7 @@ import org.apache.cloudstack.api.BaseCustomIdCmd;
|
|||||||
import org.apache.cloudstack.api.Parameter;
|
import org.apache.cloudstack.api.Parameter;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.ServerApiException;
|
||||||
|
import org.apache.cloudstack.api.command.user.UserCmd;
|
||||||
import org.apache.cloudstack.api.response.GuestOSResponse;
|
import org.apache.cloudstack.api.response.GuestOSResponse;
|
||||||
import org.apache.cloudstack.api.response.SecurityGroupResponse;
|
import org.apache.cloudstack.api.response.SecurityGroupResponse;
|
||||||
import org.apache.cloudstack.api.response.UserVmResponse;
|
import org.apache.cloudstack.api.response.UserVmResponse;
|
||||||
@ -49,7 +50,7 @@ import com.cloud.vm.VirtualMachine;
|
|||||||
"new properties to take effect. UpdateVirtualMachine does not first check whether the VM is stopped. " +
|
"new properties to take effect. UpdateVirtualMachine does not first check whether the VM is stopped. " +
|
||||||
"Therefore, stop the VM manually before issuing this call.", responseObject = UserVmResponse.class, responseView = ResponseView.Restricted, entityType = {VirtualMachine.class},
|
"Therefore, stop the VM manually before issuing this call.", responseObject = UserVmResponse.class, responseView = ResponseView.Restricted, entityType = {VirtualMachine.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
||||||
public class UpdateVMCmd extends BaseCustomIdCmd implements SecurityGroupAction {
|
public class UpdateVMCmd extends BaseCustomIdCmd implements SecurityGroupAction, UserCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(UpdateVMCmd.class.getName());
|
public static final Logger s_logger = Logger.getLogger(UpdateVMCmd.class.getName());
|
||||||
private static final String s_name = "updatevirtualmachineresponse";
|
private static final String s_name = "updatevirtualmachineresponse";
|
||||||
|
|
||||||
@ -259,7 +260,7 @@ public class UpdateVMCmd extends BaseCustomIdCmd implements SecurityGroupAction
|
|||||||
CallContext.current().setEventDetails("Vm Id: " + this._uuidMgr.getUuid(VirtualMachine.class, getId()));
|
CallContext.current().setEventDetails("Vm Id: " + this._uuidMgr.getUuid(VirtualMachine.class, getId()));
|
||||||
UserVm result = _userVmService.updateVirtualMachine(this);
|
UserVm result = _userVmService.updateVirtualMachine(this);
|
||||||
if (result != null){
|
if (result != null){
|
||||||
UserVmResponse response = _responseGenerator.createUserVmResponse(ResponseView.Restricted, "virtualmachine", result).get(0);
|
UserVmResponse response = _responseGenerator.createUserVmResponse(getResponseView(), "virtualmachine", result).get(0);
|
||||||
response.setResponseName(getCommandName());
|
response.setResponseName(getCommandName());
|
||||||
setResponseObject(response);
|
setResponseObject(response);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -32,6 +32,7 @@ import org.apache.cloudstack.api.BaseCmd;
|
|||||||
import org.apache.cloudstack.api.Parameter;
|
import org.apache.cloudstack.api.Parameter;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.ServerApiException;
|
||||||
|
import org.apache.cloudstack.api.command.user.UserCmd;
|
||||||
import org.apache.cloudstack.api.response.ServiceOfferingResponse;
|
import org.apache.cloudstack.api.response.ServiceOfferingResponse;
|
||||||
import org.apache.cloudstack.api.response.UserVmResponse;
|
import org.apache.cloudstack.api.response.UserVmResponse;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
import org.apache.cloudstack.context.CallContext;
|
||||||
@ -47,7 +48,7 @@ import com.cloud.vm.VirtualMachine;
|
|||||||
"The virtual machine must be in a \"Stopped\" state for " +
|
"The virtual machine must be in a \"Stopped\" state for " +
|
||||||
"this command to take effect.", responseView = ResponseView.Restricted, entityType = {VirtualMachine.class},
|
"this command to take effect.", responseView = ResponseView.Restricted, entityType = {VirtualMachine.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
||||||
public class UpgradeVMCmd extends BaseCmd {
|
public class UpgradeVMCmd extends BaseCmd implements UserCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(UpgradeVMCmd.class.getName());
|
public static final Logger s_logger = Logger.getLogger(UpgradeVMCmd.class.getName());
|
||||||
private static final String s_name = "changeserviceforvirtualmachineresponse";
|
private static final String s_name = "changeserviceforvirtualmachineresponse";
|
||||||
|
|
||||||
@ -129,7 +130,7 @@ public class UpgradeVMCmd extends BaseCmd {
|
|||||||
UserVm result = _userVmService.upgradeVirtualMachine(this);
|
UserVm result = _userVmService.upgradeVirtualMachine(this);
|
||||||
|
|
||||||
if (result != null){
|
if (result != null){
|
||||||
UserVmResponse response = _responseGenerator.createUserVmResponse(ResponseView.Restricted, "virtualmachine", result).get(0);
|
UserVmResponse response = _responseGenerator.createUserVmResponse(getResponseView(), "virtualmachine", result).get(0);
|
||||||
response.setResponseName(getCommandName());
|
response.setResponseName(getCommandName());
|
||||||
setResponseObject(response);
|
setResponseObject(response);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -27,6 +27,7 @@ import org.apache.cloudstack.api.BaseAsyncCmd;
|
|||||||
import org.apache.cloudstack.api.Parameter;
|
import org.apache.cloudstack.api.Parameter;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.ServerApiException;
|
||||||
|
import org.apache.cloudstack.api.command.user.UserCmd;
|
||||||
import org.apache.cloudstack.api.response.UserVmResponse;
|
import org.apache.cloudstack.api.response.UserVmResponse;
|
||||||
import org.apache.cloudstack.api.response.VMSnapshotResponse;
|
import org.apache.cloudstack.api.response.VMSnapshotResponse;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
import org.apache.cloudstack.context.CallContext;
|
||||||
@ -42,7 +43,7 @@ import com.cloud.vm.snapshot.VMSnapshot;
|
|||||||
|
|
||||||
@APICommand(name = "revertToVMSnapshot", description = "Revert VM from a vmsnapshot.", responseObject = UserVmResponse.class, since = "4.2.0", responseView = ResponseView.Restricted,
|
@APICommand(name = "revertToVMSnapshot", description = "Revert VM from a vmsnapshot.", responseObject = UserVmResponse.class, since = "4.2.0", responseView = ResponseView.Restricted,
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
|
||||||
public class RevertToVMSnapshotCmd extends BaseAsyncCmd {
|
public class RevertToVMSnapshotCmd extends BaseAsyncCmd implements UserCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(RevertToVMSnapshotCmd.class.getName());
|
public static final Logger s_logger = Logger.getLogger(RevertToVMSnapshotCmd.class.getName());
|
||||||
private static final String s_name = "reverttovmsnapshotresponse";
|
private static final String s_name = "reverttovmsnapshotresponse";
|
||||||
|
|
||||||
@ -77,7 +78,7 @@ public class RevertToVMSnapshotCmd extends BaseAsyncCmd {
|
|||||||
CallContext.current().setEventDetails("vmsnapshot id: " + this._uuidMgr.getUuid(VMSnapshot.class, getVmSnapShotId()));
|
CallContext.current().setEventDetails("vmsnapshot id: " + this._uuidMgr.getUuid(VMSnapshot.class, getVmSnapShotId()));
|
||||||
UserVm result = _vmSnapshotService.revertToSnapshot(getVmSnapShotId());
|
UserVm result = _vmSnapshotService.revertToSnapshot(getVmSnapShotId());
|
||||||
if (result != null) {
|
if (result != null) {
|
||||||
UserVmResponse response = _responseGenerator.createUserVmResponse(ResponseView.Restricted,
|
UserVmResponse response = _responseGenerator.createUserVmResponse(getResponseView(),
|
||||||
"virtualmachine", result).get(0);
|
"virtualmachine", result).get(0);
|
||||||
response.setResponseName(getCommandName());
|
response.setResponseName(getCommandName());
|
||||||
setResponseObject(response);
|
setResponseObject(response);
|
||||||
|
|||||||
@ -16,17 +16,16 @@
|
|||||||
// under the License.
|
// under the License.
|
||||||
package org.apache.cloudstack.api.command.user.volume;
|
package org.apache.cloudstack.api.command.user.volume;
|
||||||
|
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
import org.apache.cloudstack.api.APICommand;
|
import org.apache.cloudstack.api.APICommand;
|
||||||
import org.apache.cloudstack.api.ApiConstants;
|
import org.apache.cloudstack.api.ApiConstants;
|
||||||
import org.apache.cloudstack.api.BaseAsyncCmd;
|
import org.apache.cloudstack.api.BaseAsyncCmd;
|
||||||
import org.apache.cloudstack.api.Parameter;
|
import org.apache.cloudstack.api.Parameter;
|
||||||
|
import org.apache.cloudstack.api.TaggedResources;
|
||||||
import org.apache.cloudstack.api.response.SuccessResponse;
|
import org.apache.cloudstack.api.response.SuccessResponse;
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
|
|
||||||
import com.cloud.event.EventTypes;
|
import com.cloud.event.EventTypes;
|
||||||
import com.cloud.server.ResourceTag;
|
import com.cloud.server.ResourceTag;
|
||||||
@ -58,19 +57,7 @@ public class AddResourceDetailCmd extends BaseAsyncCmd {
|
|||||||
/////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////
|
||||||
|
|
||||||
public Map getDetails() {
|
public Map getDetails() {
|
||||||
Map<String, String> detailsMap = null;
|
return TaggedResources.parseKeyValueMap(details, true);
|
||||||
if (!details.isEmpty()) {
|
|
||||||
detailsMap = new HashMap<String, String>();
|
|
||||||
Collection<?> servicesCollection = details.values();
|
|
||||||
Iterator<?> iter = servicesCollection.iterator();
|
|
||||||
while (iter.hasNext()) {
|
|
||||||
HashMap<String, String> services = (HashMap<String, String>)iter.next();
|
|
||||||
String key = services.get("key");
|
|
||||||
String value = services.get("value");
|
|
||||||
detailsMap.put(key, value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return detailsMap;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public ResourceTag.ResourceObjectType getResourceType() {
|
public ResourceTag.ResourceObjectType getResourceType() {
|
||||||
|
|||||||
@ -28,6 +28,7 @@ import org.apache.cloudstack.api.ApiErrorCode;
|
|||||||
import org.apache.cloudstack.api.Parameter;
|
import org.apache.cloudstack.api.Parameter;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.ServerApiException;
|
||||||
|
import org.apache.cloudstack.api.command.user.UserCmd;
|
||||||
import org.apache.cloudstack.api.response.UserVmResponse;
|
import org.apache.cloudstack.api.response.UserVmResponse;
|
||||||
import org.apache.cloudstack.api.response.VolumeResponse;
|
import org.apache.cloudstack.api.response.VolumeResponse;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
import org.apache.cloudstack.context.CallContext;
|
||||||
@ -39,7 +40,7 @@ import com.cloud.vm.VirtualMachine;
|
|||||||
|
|
||||||
@APICommand(name = "attachVolume", description = "Attaches a disk volume to a virtual machine.", responseObject = VolumeResponse.class, responseView = ResponseView.Restricted, entityType = {VirtualMachine.class},
|
@APICommand(name = "attachVolume", description = "Attaches a disk volume to a virtual machine.", responseObject = VolumeResponse.class, responseView = ResponseView.Restricted, entityType = {VirtualMachine.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||||
public class AttachVolumeCmd extends BaseAsyncCmd {
|
public class AttachVolumeCmd extends BaseAsyncCmd implements UserCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(AttachVolumeCmd.class.getName());
|
public static final Logger s_logger = Logger.getLogger(AttachVolumeCmd.class.getName());
|
||||||
private static final String s_name = "attachvolumeresponse";
|
private static final String s_name = "attachvolumeresponse";
|
||||||
|
|
||||||
@ -119,7 +120,7 @@ public class AttachVolumeCmd extends BaseAsyncCmd {
|
|||||||
CallContext.current().setEventDetails("Volume Id: " + this._uuidMgr.getUuid(Volume.class, getId()) + " VmId: " + this._uuidMgr.getUuid(VirtualMachine.class, getVirtualMachineId()));
|
CallContext.current().setEventDetails("Volume Id: " + this._uuidMgr.getUuid(Volume.class, getId()) + " VmId: " + this._uuidMgr.getUuid(VirtualMachine.class, getVirtualMachineId()));
|
||||||
Volume result = _volumeService.attachVolumeToVM(this);
|
Volume result = _volumeService.attachVolumeToVM(this);
|
||||||
if (result != null) {
|
if (result != null) {
|
||||||
VolumeResponse response = _responseGenerator.createVolumeResponse(ResponseView.Restricted, result);
|
VolumeResponse response = _responseGenerator.createVolumeResponse(getResponseView(), result);
|
||||||
response.setResponseName(getCommandName());
|
response.setResponseName(getCommandName());
|
||||||
setResponseObject(response);
|
setResponseObject(response);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -28,6 +28,7 @@ import org.apache.cloudstack.api.BaseCmd;
|
|||||||
import org.apache.cloudstack.api.Parameter;
|
import org.apache.cloudstack.api.Parameter;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.ServerApiException;
|
||||||
|
import org.apache.cloudstack.api.command.user.UserCmd;
|
||||||
import org.apache.cloudstack.api.response.DiskOfferingResponse;
|
import org.apache.cloudstack.api.response.DiskOfferingResponse;
|
||||||
import org.apache.cloudstack.api.response.DomainResponse;
|
import org.apache.cloudstack.api.response.DomainResponse;
|
||||||
import org.apache.cloudstack.api.response.ProjectResponse;
|
import org.apache.cloudstack.api.response.ProjectResponse;
|
||||||
@ -46,7 +47,7 @@ import com.cloud.vm.VirtualMachine;
|
|||||||
@APICommand(name = "createVolume", responseObject = VolumeResponse.class, description = "Creates a disk volume from a disk offering. This disk volume must still be attached to a virtual machine to make use of it.", responseView = ResponseView.Restricted, entityType = {
|
@APICommand(name = "createVolume", responseObject = VolumeResponse.class, description = "Creates a disk volume from a disk offering. This disk volume must still be attached to a virtual machine to make use of it.", responseView = ResponseView.Restricted, entityType = {
|
||||||
Volume.class, VirtualMachine.class},
|
Volume.class, VirtualMachine.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||||
public class CreateVolumeCmd extends BaseAsyncCreateCustomIdCmd {
|
public class CreateVolumeCmd extends BaseAsyncCreateCustomIdCmd implements UserCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(CreateVolumeCmd.class.getName());
|
public static final Logger s_logger = Logger.getLogger(CreateVolumeCmd.class.getName());
|
||||||
private static final String s_name = "createvolumeresponse";
|
private static final String s_name = "createvolumeresponse";
|
||||||
|
|
||||||
@ -223,7 +224,7 @@ public class CreateVolumeCmd extends BaseAsyncCreateCustomIdCmd {
|
|||||||
CallContext.current().setEventDetails("Volume Id: " + getEntityUuid() + ((getSnapshotId() == null) ? "" : " from snapshot: " + this._uuidMgr.getUuid(Snapshot.class, getSnapshotId())));
|
CallContext.current().setEventDetails("Volume Id: " + getEntityUuid() + ((getSnapshotId() == null) ? "" : " from snapshot: " + this._uuidMgr.getUuid(Snapshot.class, getSnapshotId())));
|
||||||
Volume volume = _volumeService.createVolume(this);
|
Volume volume = _volumeService.createVolume(this);
|
||||||
if (volume != null) {
|
if (volume != null) {
|
||||||
VolumeResponse response = _responseGenerator.createVolumeResponse(ResponseView.Restricted, volume);
|
VolumeResponse response = _responseGenerator.createVolumeResponse(getResponseView(), volume);
|
||||||
//FIXME - have to be moved to ApiResponseHelper
|
//FIXME - have to be moved to ApiResponseHelper
|
||||||
if (getSnapshotId() != null) {
|
if (getSnapshotId() != null) {
|
||||||
Snapshot snap = _entityMgr.findById(Snapshot.class, getSnapshotId());
|
Snapshot snap = _entityMgr.findById(Snapshot.class, getSnapshotId());
|
||||||
|
|||||||
@ -28,6 +28,7 @@ import org.apache.cloudstack.api.ApiErrorCode;
|
|||||||
import org.apache.cloudstack.api.Parameter;
|
import org.apache.cloudstack.api.Parameter;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.ServerApiException;
|
||||||
|
import org.apache.cloudstack.api.command.user.UserCmd;
|
||||||
import org.apache.cloudstack.api.response.UserVmResponse;
|
import org.apache.cloudstack.api.response.UserVmResponse;
|
||||||
import org.apache.cloudstack.api.response.VolumeResponse;
|
import org.apache.cloudstack.api.response.VolumeResponse;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
import org.apache.cloudstack.context.CallContext;
|
||||||
@ -40,7 +41,7 @@ import com.cloud.vm.VirtualMachine;
|
|||||||
|
|
||||||
@APICommand(name = "detachVolume", description = "Detaches a disk volume from a virtual machine.", responseObject = VolumeResponse.class, responseView = ResponseView.Restricted, entityType = {VirtualMachine.class},
|
@APICommand(name = "detachVolume", description = "Detaches a disk volume from a virtual machine.", responseObject = VolumeResponse.class, responseView = ResponseView.Restricted, entityType = {VirtualMachine.class},
|
||||||
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||||
public class DetachVolumeCmd extends BaseAsyncCmd {
|
public class DetachVolumeCmd extends BaseAsyncCmd implements UserCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(DetachVolumeCmd.class.getName());
|
public static final Logger s_logger = Logger.getLogger(DetachVolumeCmd.class.getName());
|
||||||
private static final String s_name = "detachvolumeresponse";
|
private static final String s_name = "detachvolumeresponse";
|
||||||
|
|
||||||
@ -143,7 +144,7 @@ public class DetachVolumeCmd extends BaseAsyncCmd {
|
|||||||
CallContext.current().setEventDetails(getEventDescription());
|
CallContext.current().setEventDetails(getEventDescription());
|
||||||
Volume result = _volumeService.detachVolumeFromVM(this);
|
Volume result = _volumeService.detachVolumeFromVM(this);
|
||||||
if (result != null){
|
if (result != null){
|
||||||
VolumeResponse response = _responseGenerator.createVolumeResponse(ResponseView.Restricted, result);
|
VolumeResponse response = _responseGenerator.createVolumeResponse(getResponseView(), result);
|
||||||
response.setResponseName("volume");
|
response.setResponseName("volume");
|
||||||
setResponseObject(response);
|
setResponseObject(response);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -25,6 +25,7 @@ import org.apache.cloudstack.api.ApiConstants;
|
|||||||
import org.apache.cloudstack.api.BaseListTaggedResourcesCmd;
|
import org.apache.cloudstack.api.BaseListTaggedResourcesCmd;
|
||||||
import org.apache.cloudstack.api.Parameter;
|
import org.apache.cloudstack.api.Parameter;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
|
import org.apache.cloudstack.api.command.user.UserCmd;
|
||||||
import org.apache.cloudstack.api.response.ClusterResponse;
|
import org.apache.cloudstack.api.response.ClusterResponse;
|
||||||
import org.apache.cloudstack.api.response.DiskOfferingResponse;
|
import org.apache.cloudstack.api.response.DiskOfferingResponse;
|
||||||
import org.apache.cloudstack.api.response.HostResponse;
|
import org.apache.cloudstack.api.response.HostResponse;
|
||||||
@ -40,7 +41,7 @@ import com.cloud.storage.Volume;
|
|||||||
|
|
||||||
@APICommand(name = "listVolumes", description = "Lists all volumes.", responseObject = VolumeResponse.class, responseView = ResponseView.Restricted, entityType = {
|
@APICommand(name = "listVolumes", description = "Lists all volumes.", responseObject = VolumeResponse.class, responseView = ResponseView.Restricted, entityType = {
|
||||||
Volume.class}, requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
Volume.class}, requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||||
public class ListVolumesCmd extends BaseListTaggedResourcesCmd {
|
public class ListVolumesCmd extends BaseListTaggedResourcesCmd implements UserCmd {
|
||||||
public static final Logger s_logger = Logger.getLogger(ListVolumesCmd.class.getName());
|
public static final Logger s_logger = Logger.getLogger(ListVolumesCmd.class.getName());
|
||||||
|
|
||||||
private static final String s_name = "listvolumesresponse";
|
private static final String s_name = "listvolumesresponse";
|
||||||
|
|||||||
@ -24,6 +24,7 @@ import org.apache.cloudstack.api.BaseAsyncCmd;
|
|||||||
import org.apache.cloudstack.api.Parameter;
|
import org.apache.cloudstack.api.Parameter;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.ServerApiException;
|
||||||
|
import org.apache.cloudstack.api.command.user.UserCmd;
|
||||||
import org.apache.cloudstack.api.response.StoragePoolResponse;
|
import org.apache.cloudstack.api.response.StoragePoolResponse;
|
||||||
import org.apache.cloudstack.api.response.VolumeResponse;
|
import org.apache.cloudstack.api.response.VolumeResponse;
|
||||||
|
|
||||||
@ -33,7 +34,7 @@ import com.cloud.user.Account;
|
|||||||
|
|
||||||
@APICommand(name = "migrateVolume", description = "Migrate volume", responseObject = VolumeResponse.class, since = "3.0.0", responseView = ResponseView.Restricted, entityType = {
|
@APICommand(name = "migrateVolume", description = "Migrate volume", responseObject = VolumeResponse.class, since = "3.0.0", responseView = ResponseView.Restricted, entityType = {
|
||||||
Volume.class}, requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
Volume.class}, requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
|
||||||
public class MigrateVolumeCmd extends BaseAsyncCmd {
|
public class MigrateVolumeCmd extends BaseAsyncCmd implements UserCmd {
|
||||||
private static final String s_name = "migratevolumeresponse";
|
private static final String s_name = "migratevolumeresponse";
|
||||||
|
|
||||||
/////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////
|
||||||
@ -112,7 +113,7 @@ public class MigrateVolumeCmd extends BaseAsyncCmd {
|
|||||||
|
|
||||||
result = _volumeService.migrateVolume(this);
|
result = _volumeService.migrateVolume(this);
|
||||||
if (result != null) {
|
if (result != null) {
|
||||||
VolumeResponse response = _responseGenerator.createVolumeResponse(ResponseView.Restricted, result);
|
VolumeResponse response = _responseGenerator.createVolumeResponse(getResponseView(), result);
|
||||||
response.setResponseName(getCommandName());
|
response.setResponseName(getCommandName());
|
||||||
setResponseObject(response);
|
setResponseObject(response);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user