mirror of https://github.com/apache/cloudstack.git
CLOUDSTACK-5829:
listvms should return the diskoffering id when deployed with an iso
This commit is contained in:
parent
ac8bc74269
commit
5c1d639bc4
|
|
@ -554,6 +554,6 @@ public class ApiConstants {
|
|||
}
|
||||
|
||||
public enum VMDetails {
|
||||
all, group, nics, stats, secgrp, tmpl, servoff, iso, volume, min, affgrp;
|
||||
all, group, nics, stats, secgrp, tmpl, servoff, diskoff, iso, volume, min, affgrp;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@ public class ListVMsCmd extends BaseListTaggedResourcesCmd {
|
|||
type = CommandType.LIST,
|
||||
collectionType = CommandType.STRING,
|
||||
description = "comma separated list of host details requested, "
|
||||
+ "value can be a list of [all, group, nics, stats, secgrp, tmpl, servoff, iso, volume, min, affgrp]."
|
||||
+ "value can be a list of [all, group, nics, stats, secgrp, tmpl, servoff, diskoff, iso, volume, min, affgrp]."
|
||||
+ " If no parameter is passed in, the details will be defaulted to all")
|
||||
private List<String> viewDetails;
|
||||
|
||||
|
|
|
|||
|
|
@ -139,6 +139,14 @@ public class UserVmResponse extends BaseResponse implements ControlledEntityResp
|
|||
@Param(description = "the name of the service offering of the virtual machine")
|
||||
private String serviceOfferingName;
|
||||
|
||||
@SerializedName(ApiConstants.DISK_OFFERING_ID)
|
||||
@Param(description = "the ID of the disk offering of the virtual machine")
|
||||
private String diskOfferingId;
|
||||
|
||||
@SerializedName("diskofferingname")
|
||||
@Param(description = "the name of the disk offering of the virtual machine")
|
||||
private String diskOfferingName;
|
||||
|
||||
@SerializedName("forvirtualnetwork")
|
||||
@Param(description = "the virtual network for the service offering")
|
||||
private Boolean forVirtualNetwork;
|
||||
|
|
@ -387,6 +395,14 @@ public class UserVmResponse extends BaseResponse implements ControlledEntityResp
|
|||
return serviceOfferingName;
|
||||
}
|
||||
|
||||
public String getDiskOfferingId() {
|
||||
return diskOfferingId;
|
||||
}
|
||||
|
||||
public String getDiskOfferingName() {
|
||||
return diskOfferingName;
|
||||
}
|
||||
|
||||
public Boolean getForVirtualNetwork() {
|
||||
return forVirtualNetwork;
|
||||
}
|
||||
|
|
@ -606,6 +622,14 @@ public class UserVmResponse extends BaseResponse implements ControlledEntityResp
|
|||
this.serviceOfferingName = serviceOfferingName;
|
||||
}
|
||||
|
||||
public void setDiskOfferingId(String diskOfferingId) {
|
||||
this.diskOfferingId = diskOfferingId;
|
||||
}
|
||||
|
||||
public void setDiskOfferingName(String diskOfferingName) {
|
||||
this.diskOfferingName = diskOfferingName;
|
||||
}
|
||||
|
||||
public void setCpuNumber(Integer cpuNumber) {
|
||||
this.cpuNumber = cpuNumber;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -145,6 +145,10 @@ public class UserVmJoinDaoImpl extends GenericDaoBase<UserVmJoinVO, Long> implem
|
|||
userVmResponse.setServiceOfferingId(userVm.getServiceOfferingUuid());
|
||||
userVmResponse.setServiceOfferingName(userVm.getServiceOfferingName());
|
||||
}
|
||||
if (details.contains(VMDetails.all) || details.contains(VMDetails.diskoff)) {
|
||||
userVmResponse.setDiskOfferingId(userVm.getDiskOfferingUuid());
|
||||
userVmResponse.setDiskOfferingName(userVm.getDiskOfferingName());
|
||||
}
|
||||
if (details.contains(VMDetails.all) || details.contains(VMDetails.servoff) || details.contains(VMDetails.stats)) {
|
||||
userVmResponse.setCpuNumber(userVm.getCpu());
|
||||
userVmResponse.setCpuSpeed(userVm.getSpeed());
|
||||
|
|
|
|||
|
|
@ -194,6 +194,15 @@ public class UserVmJoinVO extends BaseViewVO implements ControlledViewEntity {
|
|||
@Column(name = "iso_display_text", length = 4096)
|
||||
private String isoDisplayText;
|
||||
|
||||
@Column(name = "disk_offering_id")
|
||||
private long diskOfferingId;
|
||||
|
||||
@Column(name = "disk_offering_uuid")
|
||||
private String diskOfferingUuid;
|
||||
|
||||
@Column(name = "disk_offering_name")
|
||||
private String diskOfferingName;
|
||||
|
||||
@Column(name = "service_offering_id")
|
||||
private long serviceOfferingId;
|
||||
|
||||
|
|
@ -416,6 +425,18 @@ public class UserVmJoinVO extends BaseViewVO implements ControlledViewEntity {
|
|||
return password;
|
||||
}
|
||||
|
||||
public String getDiskOfferingName() {
|
||||
return diskOfferingName;
|
||||
}
|
||||
|
||||
public String getDiskOfferingUuid() {
|
||||
return diskOfferingUuid;
|
||||
}
|
||||
|
||||
public long getDiskOfferingId() {
|
||||
return diskOfferingId;
|
||||
}
|
||||
|
||||
public void setPassword(String password) {
|
||||
this.password = password;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3525,10 +3525,10 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
|
|||
}
|
||||
|
||||
protected boolean sendCommandsToRouter(final VirtualRouter router, Commands cmds) throws AgentUnavailableException {
|
||||
if(!checkRouterVersion(router)){
|
||||
/*if(!checkRouterVersion(router)){
|
||||
s_logger.debug("Router requires upgrade. Unable to send command to router:" + router.getId());
|
||||
throw new CloudRuntimeException("Unable to send command. Upgrade in progress. Please contact administrator.");
|
||||
}
|
||||
}*/
|
||||
Answer[] answers = null;
|
||||
try {
|
||||
answers = _agentMgr.send(router.getHostId(), cmds);
|
||||
|
|
|
|||
|
|
@ -237,3 +237,210 @@ CREATE TABLE `cloud`.`external_opendaylight_controllers` (
|
|||
CONSTRAINT `fk_external_opendaylight_devices__host_id` FOREIGN KEY (`host_id`) REFERENCES `host`(`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_external_opendaylight_devices__physical_network_id` FOREIGN KEY (`physical_network_id`) REFERENCES `physical_network`(`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
DROP VIEW IF EXISTS `cloud`.`user_vm_view`;
|
||||
CREATE VIEW `cloud`.`user_vm_view` AS
|
||||
select
|
||||
vm_instance.id id,
|
||||
vm_instance.name name,
|
||||
user_vm.display_name display_name,
|
||||
user_vm.user_data user_data,
|
||||
account.id account_id,
|
||||
account.uuid account_uuid,
|
||||
account.account_name account_name,
|
||||
account.type account_type,
|
||||
domain.id domain_id,
|
||||
domain.uuid domain_uuid,
|
||||
domain.name domain_name,
|
||||
domain.path domain_path,
|
||||
projects.id project_id,
|
||||
projects.uuid project_uuid,
|
||||
projects.name project_name,
|
||||
instance_group.id instance_group_id,
|
||||
instance_group.uuid instance_group_uuid,
|
||||
instance_group.name instance_group_name,
|
||||
vm_instance.uuid uuid,
|
||||
vm_instance.last_host_id last_host_id,
|
||||
vm_instance.vm_type type,
|
||||
vm_instance.vnc_password vnc_password,
|
||||
vm_instance.limit_cpu_use limit_cpu_use,
|
||||
vm_instance.created created,
|
||||
vm_instance.state state,
|
||||
vm_instance.removed removed,
|
||||
vm_instance.ha_enabled ha_enabled,
|
||||
vm_instance.hypervisor_type hypervisor_type,
|
||||
vm_instance.instance_name instance_name,
|
||||
vm_instance.guest_os_id guest_os_id,
|
||||
vm_instance.display_vm display_vm,
|
||||
guest_os.uuid guest_os_uuid,
|
||||
vm_instance.pod_id pod_id,
|
||||
host_pod_ref.uuid pod_uuid,
|
||||
vm_instance.private_ip_address private_ip_address,
|
||||
vm_instance.private_mac_address private_mac_address,
|
||||
vm_instance.vm_type vm_type,
|
||||
data_center.id data_center_id,
|
||||
data_center.uuid data_center_uuid,
|
||||
data_center.name data_center_name,
|
||||
data_center.is_security_group_enabled security_group_enabled,
|
||||
data_center.networktype data_center_type,
|
||||
host.id host_id,
|
||||
host.uuid host_uuid,
|
||||
host.name host_name,
|
||||
vm_template.id template_id,
|
||||
vm_template.uuid template_uuid,
|
||||
vm_template.name template_name,
|
||||
vm_template.display_text template_display_text,
|
||||
vm_template.enable_password password_enabled,
|
||||
iso.id iso_id,
|
||||
iso.uuid iso_uuid,
|
||||
iso.name iso_name,
|
||||
iso.display_text iso_display_text,
|
||||
service_offering.id service_offering_id,
|
||||
svc_disk_offering.uuid service_offering_uuid,
|
||||
disk_offering.uuid disk_offering_uuid,
|
||||
disk_offering.id disk_offering_id,
|
||||
Case
|
||||
When (`cloud`.`service_offering`.`cpu` is null) then (`custom_cpu`.`value`)
|
||||
Else ( `cloud`.`service_offering`.`cpu`)
|
||||
End as `cpu`,
|
||||
Case
|
||||
When (`cloud`.`service_offering`.`speed` is null) then (`custom_speed`.`value`)
|
||||
Else ( `cloud`.`service_offering`.`speed`)
|
||||
End as `speed`,
|
||||
Case
|
||||
When (`cloud`.`service_offering`.`ram_size` is null) then (`custom_ram_size`.`value`)
|
||||
Else ( `cloud`.`service_offering`.`ram_size`)
|
||||
END as `ram_size`,
|
||||
svc_disk_offering.name service_offering_name,
|
||||
disk_offering.name disk_offering_name,
|
||||
storage_pool.id pool_id,
|
||||
storage_pool.uuid pool_uuid,
|
||||
storage_pool.pool_type pool_type,
|
||||
volumes.id volume_id,
|
||||
volumes.uuid volume_uuid,
|
||||
volumes.device_id volume_device_id,
|
||||
volumes.volume_type volume_type,
|
||||
security_group.id security_group_id,
|
||||
security_group.uuid security_group_uuid,
|
||||
security_group.name security_group_name,
|
||||
security_group.description security_group_description,
|
||||
nics.id nic_id,
|
||||
nics.uuid nic_uuid,
|
||||
nics.network_id network_id,
|
||||
nics.ip4_address ip_address,
|
||||
nics.ip6_address ip6_address,
|
||||
nics.ip6_gateway ip6_gateway,
|
||||
nics.ip6_cidr ip6_cidr,
|
||||
nics.default_nic is_default_nic,
|
||||
nics.gateway gateway,
|
||||
nics.netmask netmask,
|
||||
nics.mac_address mac_address,
|
||||
nics.broadcast_uri broadcast_uri,
|
||||
nics.isolation_uri isolation_uri,
|
||||
vpc.id vpc_id,
|
||||
vpc.uuid vpc_uuid,
|
||||
networks.uuid network_uuid,
|
||||
networks.name network_name,
|
||||
networks.traffic_type traffic_type,
|
||||
networks.guest_type guest_type,
|
||||
user_ip_address.id public_ip_id,
|
||||
user_ip_address.uuid public_ip_uuid,
|
||||
user_ip_address.public_ip_address public_ip_address,
|
||||
ssh_keypairs.keypair_name keypair_name,
|
||||
resource_tags.id tag_id,
|
||||
resource_tags.uuid tag_uuid,
|
||||
resource_tags.key tag_key,
|
||||
resource_tags.value tag_value,
|
||||
resource_tags.domain_id tag_domain_id,
|
||||
resource_tags.account_id tag_account_id,
|
||||
resource_tags.resource_id tag_resource_id,
|
||||
resource_tags.resource_uuid tag_resource_uuid,
|
||||
resource_tags.resource_type tag_resource_type,
|
||||
resource_tags.customer tag_customer,
|
||||
async_job.id job_id,
|
||||
async_job.uuid job_uuid,
|
||||
async_job.job_status job_status,
|
||||
async_job.account_id job_account_id,
|
||||
affinity_group.id affinity_group_id,
|
||||
affinity_group.uuid affinity_group_uuid,
|
||||
affinity_group.name affinity_group_name,
|
||||
affinity_group.description affinity_group_description,
|
||||
vm_instance.dynamically_scalable dynamically_scalable,
|
||||
all_details.name detail_name,
|
||||
all_details.value detail_value
|
||||
|
||||
from
|
||||
`cloud`.`user_vm`
|
||||
inner join
|
||||
`cloud`.`vm_instance` ON vm_instance.id = user_vm.id
|
||||
and vm_instance.removed is NULL
|
||||
inner join
|
||||
`cloud`.`account` ON vm_instance.account_id = account.id
|
||||
inner join
|
||||
`cloud`.`domain` ON vm_instance.domain_id = domain.id
|
||||
left join
|
||||
`cloud`.`guest_os` ON vm_instance.guest_os_id = guest_os.id
|
||||
left join
|
||||
`cloud`.`host_pod_ref` ON vm_instance.pod_id = host_pod_ref.id
|
||||
left join
|
||||
`cloud`.`projects` ON projects.project_account_id = account.id
|
||||
left join
|
||||
`cloud`.`instance_group_vm_map` ON vm_instance.id = instance_group_vm_map.instance_id
|
||||
left join
|
||||
`cloud`.`instance_group` ON instance_group_vm_map.group_id = instance_group.id
|
||||
left join
|
||||
`cloud`.`data_center` ON vm_instance.data_center_id = data_center.id
|
||||
left join
|
||||
`cloud`.`host` ON vm_instance.host_id = host.id
|
||||
left join
|
||||
`cloud`.`vm_template` ON vm_instance.vm_template_id = vm_template.id
|
||||
left join
|
||||
`cloud`.`vm_template` iso ON iso.id = user_vm.iso_id
|
||||
left join
|
||||
`cloud`.`service_offering` ON vm_instance.service_offering_id = service_offering.id
|
||||
left join
|
||||
`cloud`.`disk_offering` svc_disk_offering ON vm_instance.service_offering_id = svc_disk_offering.id
|
||||
left join
|
||||
`cloud`.`disk_offering` ON vm_instance.disk_offering_id = disk_offering.id
|
||||
left join
|
||||
`cloud`.`volumes` ON vm_instance.id = volumes.instance_id
|
||||
left join
|
||||
`cloud`.`storage_pool` ON volumes.pool_id = storage_pool.id
|
||||
left join
|
||||
`cloud`.`security_group_vm_map` ON vm_instance.id = security_group_vm_map.instance_id
|
||||
left join
|
||||
`cloud`.`security_group` ON security_group_vm_map.security_group_id = security_group.id
|
||||
left join
|
||||
`cloud`.`nics` ON vm_instance.id = nics.instance_id and nics.removed is null
|
||||
left join
|
||||
`cloud`.`networks` ON nics.network_id = networks.id
|
||||
left join
|
||||
`cloud`.`vpc` ON networks.vpc_id = vpc.id and vpc.removed is null
|
||||
left join
|
||||
`cloud`.`user_ip_address` ON user_ip_address.vm_id = vm_instance.id
|
||||
left join
|
||||
`cloud`.`user_vm_details` as ssh_details ON ssh_details.vm_id = vm_instance.id
|
||||
and ssh_details.name = 'SSH.PublicKey'
|
||||
left join
|
||||
`cloud`.`ssh_keypairs` ON ssh_keypairs.public_key = ssh_details.value
|
||||
left join
|
||||
`cloud`.`resource_tags` ON resource_tags.resource_id = vm_instance.id
|
||||
and resource_tags.resource_type = 'UserVm'
|
||||
left join
|
||||
`cloud`.`async_job` ON async_job.instance_id = vm_instance.id
|
||||
and async_job.instance_type = 'VirtualMachine'
|
||||
and async_job.job_status = 0
|
||||
left join
|
||||
`cloud`.`affinity_group_vm_map` ON vm_instance.id = affinity_group_vm_map.instance_id
|
||||
left join
|
||||
`cloud`.`affinity_group` ON affinity_group_vm_map.affinity_group_id = affinity_group.id
|
||||
left join
|
||||
`cloud`.`user_vm_details` as all_details ON all_details.vm_id = vm_instance.id
|
||||
left join
|
||||
`cloud`.`user_vm_details` `custom_cpu` ON (((`custom_cpu`.`vm_id` = `cloud`.`vm_instance`.`id`) and (`custom_cpu`.`name` = 'CpuNumber')))
|
||||
left join
|
||||
`cloud`.`user_vm_details` `custom_speed` ON (((`custom_speed`.`vm_id` = `cloud`.`vm_instance`.`id`) and (`custom_speed`.`name` = 'CpuSpeed')))
|
||||
left join
|
||||
`cloud`.`user_vm_details` `custom_ram_size` ON (((`custom_ram_size`.`vm_id` = `cloud`.`vm_instance`.`id`) and (`custom_ram_size`.`name` = 'memory')));
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue