mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
wip changes
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
This commit is contained in:
parent
7721126076
commit
5988884bd1
@ -35,8 +35,6 @@ import com.cloud.vm.VirtualMachine;
|
||||
@DiscriminatorValue(value = "Service")
|
||||
@PrimaryKeyJoinColumn(name = "id")
|
||||
public class ServiceOfferingVO extends DiskOfferingVO implements ServiceOffering {
|
||||
@Column(name = "domain_id")
|
||||
Long domainId;
|
||||
|
||||
@Column(name = "cpu")
|
||||
private Integer cpu;
|
||||
@ -77,6 +75,9 @@ public class ServiceOfferingVO extends DiskOfferingVO implements ServiceOffering
|
||||
@Column(name = "deployment_planner")
|
||||
private String deploymentPlanner = null;
|
||||
|
||||
@Column(name = "domain_id")
|
||||
private Long domainId = null;
|
||||
|
||||
// This is a delayed load value. If the value is null,
|
||||
// then this field has not been loaded yet.
|
||||
// Call service offering dao to load it.
|
||||
@ -110,7 +111,6 @@ public class ServiceOfferingVO extends DiskOfferingVO implements ServiceOffering
|
||||
public ServiceOfferingVO(String name, Integer cpu, Integer ramSize, Integer speed, Integer rateMbps, Integer multicastRateMbps, boolean offerHA, boolean limitCpuUse,
|
||||
boolean volatileVm, String displayText, ProvisioningType provisioningType, boolean useLocalStorage, boolean recreatable, String tags, boolean systemUse, VirtualMachine.Type vmType, Long domainId) {
|
||||
super(name, displayText, provisioningType, false, tags, recreatable, useLocalStorage, systemUse, true);
|
||||
this.domainId = domainId;
|
||||
this.cpu = cpu;
|
||||
this.ramSize = ramSize;
|
||||
this.speed = speed;
|
||||
@ -183,7 +183,6 @@ public class ServiceOfferingVO extends DiskOfferingVO implements ServiceOffering
|
||||
offering.isCustomizedIops()== null ? false:offering.isCustomizedIops(),
|
||||
offering.getMinIops(),
|
||||
offering.getMaxIops());
|
||||
domainId = offering.getDomainId();
|
||||
cpu = offering.getCpu();
|
||||
ramSize = offering.getRamSize();
|
||||
speed = offering.getSpeed();
|
||||
@ -198,6 +197,7 @@ public class ServiceOfferingVO extends DiskOfferingVO implements ServiceOffering
|
||||
|
||||
@Override
|
||||
public Long getDomainId() {
|
||||
// TODO: get rid of me
|
||||
return domainId;
|
||||
}
|
||||
|
||||
|
||||
@ -20,5 +20,104 @@
|
||||
--;
|
||||
|
||||
-- Move domain_id to disk offering details and drop the domain_id column
|
||||
INSERT INTO `cloud`.`disk_offering_details` (offering_id, name, value) SELECT id, 'domainids', domain_id FROM `cloud`.`disk_offering` WHERE domain_id IS NOT NULL;
|
||||
INSERT INTO `cloud`.`disk_offering_details` (offering_id, name, value) SELECT id, 'domainid', domain_id FROM `cloud`.`disk_offering` WHERE domain_id IS NOT NULL;
|
||||
ALTER TABLE `cloud`.`disk_offering` DROP COLUMN `domain_id`;
|
||||
|
||||
-- Disk offering with multi-domains and multi-zones
|
||||
DROP VIEW IF EXISTS `cloud`.`disk_offering_view`;
|
||||
CREATE VIEW `cloud`.`disk_offering_view` AS
|
||||
select
|
||||
disk_offering.id,
|
||||
disk_offering.uuid,
|
||||
disk_offering.name,
|
||||
disk_offering.display_text,
|
||||
disk_offering.provisioning_type,
|
||||
disk_offering.disk_size,
|
||||
disk_offering.min_iops,
|
||||
disk_offering.max_iops,
|
||||
disk_offering.created,
|
||||
disk_offering.tags,
|
||||
disk_offering.customized,
|
||||
disk_offering.customized_iops,
|
||||
disk_offering.removed,
|
||||
disk_offering.use_local_storage,
|
||||
disk_offering.system_use,
|
||||
disk_offering.hv_ss_reserve,
|
||||
disk_offering.bytes_read_rate,
|
||||
disk_offering.bytes_write_rate,
|
||||
disk_offering.iops_read_rate,
|
||||
disk_offering.iops_write_rate,
|
||||
disk_offering.cache_mode,
|
||||
disk_offering.sort_key,
|
||||
disk_offering.type,
|
||||
disk_offering.display_offering,
|
||||
disk_offering.state,
|
||||
GROUP_CONCAT(domain_details.value) AS domain_id,
|
||||
GROUP_CONCAT(domain.uuid) AS domain_uuid,
|
||||
GROUP_CONCAT(domain.name) AS domain_name,
|
||||
GROUP_CONCAT(domain.path) AS domain_path,
|
||||
GROUP_CONCAT(zone_details.value) AS zone_id,
|
||||
GROUP_CONCAT(zone.uuid) AS zone_uuid,
|
||||
GROUP_CONCAT(zone.name) AS zone_name
|
||||
from
|
||||
`cloud`.`disk_offering`
|
||||
left join
|
||||
`cloud`.`disk_offering_details` AS `domain_details` ON `domain_details`.`offering_id` = `disk_offering`.`id` AND `domain_details`.`name`='domainid'
|
||||
left join
|
||||
`cloud`.`domain` AS `domain` ON `domain`.`id` = `domain_details`.`value`
|
||||
left join
|
||||
`cloud`.`disk_offering_details` AS `zone_details` ON `zone_details`.`offering_id` = `disk_offering`.`id` AND `zone_details`.`name`='zoneid'
|
||||
left join
|
||||
`cloud`.`data_center` AS `zone` ON `zone`.`id` = `zone_details`.`value`
|
||||
where
|
||||
disk_offering.state='ACTIVE' GROUP BY id;
|
||||
|
||||
-- Service offering with multi-domains and multi-zones
|
||||
DROP VIEW IF EXISTS `cloud`.`service_offering_view`;
|
||||
CREATE VIEW `cloud`.`service_offering_view` AS
|
||||
select
|
||||
service_offering.id,
|
||||
disk_offering.uuid,
|
||||
disk_offering.name,
|
||||
disk_offering.display_text,
|
||||
disk_offering.provisioning_type,
|
||||
disk_offering.created,
|
||||
disk_offering.tags,
|
||||
disk_offering.removed,
|
||||
disk_offering.use_local_storage,
|
||||
disk_offering.system_use,
|
||||
disk_offering.customized_iops,
|
||||
disk_offering.min_iops,
|
||||
disk_offering.max_iops,
|
||||
disk_offering.hv_ss_reserve,
|
||||
disk_offering.bytes_read_rate,
|
||||
disk_offering.bytes_write_rate,
|
||||
disk_offering.iops_read_rate,
|
||||
disk_offering.iops_write_rate,
|
||||
disk_offering.cache_mode,
|
||||
service_offering.cpu,
|
||||
service_offering.speed,
|
||||
service_offering.ram_size,
|
||||
service_offering.nw_rate,
|
||||
service_offering.mc_rate,
|
||||
service_offering.ha_enabled,
|
||||
service_offering.limit_cpu_use,
|
||||
service_offering.host_tag,
|
||||
service_offering.default_use,
|
||||
service_offering.vm_type,
|
||||
service_offering.sort_key,
|
||||
service_offering.is_volatile,
|
||||
service_offering.deployment_planner,
|
||||
disk_offering.domain_id,
|
||||
disk_offering.domain_uuid,
|
||||
disk_offering.domain_name,
|
||||
disk_offering.domain_path,
|
||||
disk_offering.zone_id,
|
||||
disk_offering.zone_uuid,
|
||||
disk_offering.zone_name
|
||||
from
|
||||
`cloud`.`service_offering`
|
||||
inner join
|
||||
`cloud`.`disk_offering_view` AS `disk_offering` ON service_offering.id = disk_offering.id
|
||||
where
|
||||
disk_offering.state='Active';
|
||||
|
||||
@ -36,9 +36,6 @@ import com.cloud.vm.VirtualMachine;
|
||||
@DiscriminatorValue(value = "Service")
|
||||
@PrimaryKeyJoinColumn(name = "id")
|
||||
public class ServiceOfferingVO extends DiskOfferingVO implements ServiceOffering {
|
||||
@Column(name = "domain_id")
|
||||
Long domainId;
|
||||
|
||||
@Column(name = "cpu")
|
||||
private Integer cpu;
|
||||
|
||||
@ -107,7 +104,6 @@ public class ServiceOfferingVO extends DiskOfferingVO implements ServiceOffering
|
||||
boolean volatileVm, String displayText, ProvisioningType provisioningType, boolean useLocalStorage, boolean recreatable, String tags, boolean systemUse,
|
||||
VirtualMachine.Type vmType, Long domainId) {
|
||||
super(name, displayText, provisioningType, false, tags, recreatable, useLocalStorage, systemUse, true);
|
||||
this.domainId = domainId;
|
||||
this.cpu = cpu;
|
||||
this.ramSize = ramSize;
|
||||
this.speed = speed;
|
||||
@ -139,7 +135,6 @@ public class ServiceOfferingVO extends DiskOfferingVO implements ServiceOffering
|
||||
super(offering.getId(), offering.getName(), offering.getDisplayText(), offering.getProvisioningType(), false, offering.getTags(), offering.isRecreatable(),
|
||||
offering.isUseLocalStorage(), offering.isSystemUse(), true, offering.isCustomizedIops() == null ? false : offering.isCustomizedIops(),
|
||||
offering.getMinIops(), offering.getMaxIops());
|
||||
domainId = offering.getDomainId();
|
||||
cpu = offering.getCpu();
|
||||
ramSize = offering.getRamSize();
|
||||
speed = offering.getSpeed();
|
||||
@ -233,7 +228,7 @@ public class ServiceOfferingVO extends DiskOfferingVO implements ServiceOffering
|
||||
|
||||
@Override
|
||||
public Long getDomainId() {
|
||||
return domainId;
|
||||
return null;
|
||||
}
|
||||
|
||||
public void setHostTag(String hostTag) {
|
||||
|
||||
@ -33,7 +33,6 @@ import org.apache.cloudstack.affinity.AffinityGroup;
|
||||
import org.apache.cloudstack.affinity.AffinityGroupResponse;
|
||||
import org.apache.cloudstack.affinity.dao.AffinityGroupDao;
|
||||
import org.apache.cloudstack.api.ApiCommandJobType;
|
||||
import org.apache.cloudstack.api.ApiConstants;
|
||||
import org.apache.cloudstack.api.ApiConstants.DomainDetails;
|
||||
import org.apache.cloudstack.api.ApiConstants.HostDetails;
|
||||
import org.apache.cloudstack.api.ApiConstants.VMDetails;
|
||||
@ -72,7 +71,6 @@ import org.apache.cloudstack.framework.jobs.dao.AsyncJobDao;
|
||||
import org.apache.cloudstack.resourcedetail.dao.DiskOfferingDetailsDao;
|
||||
import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
|
||||
import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
|
||||
import org.apache.commons.collections.MapUtils;
|
||||
|
||||
import com.cloud.agent.api.VgpuTypesInfo;
|
||||
import com.cloud.api.query.dao.AccountJoinDao;
|
||||
@ -1913,29 +1911,7 @@ public class ApiDBUtils {
|
||||
}
|
||||
|
||||
public static DiskOfferingResponse newDiskOfferingResponse(DiskOfferingJoinVO offering) {
|
||||
DiskOfferingResponse diskOfferingResponse = s_diskOfferingJoinDao.newDiskOfferingResponse(offering);
|
||||
if (diskOfferingResponse != null) {
|
||||
Map<String, String> details = s_diskOfferingDetailsDao.listDetailsKeyPairs(offering.getId());
|
||||
if (MapUtils.isNotEmpty(details)) {
|
||||
// Domains
|
||||
String[] domainIds = details.getOrDefault(ApiConstants.DOMAIN_ID_LIST, "").split(",");
|
||||
final Map<String, String> domains = new HashMap<>();
|
||||
for (DomainVO domain : s_domainDao.list(domainIds)) {
|
||||
domains.put(domain.getName(), domain.getUuid());
|
||||
}
|
||||
diskOfferingResponse.setDomain(String.join(", ", domains.keySet()));
|
||||
diskOfferingResponse.setDomainId(String.join(", ", domains.values()));
|
||||
// Zones
|
||||
String[] zoneIds = details.getOrDefault(ApiConstants.ZONE_ID_LIST, "").split(",");
|
||||
final Map<String, String> zones = new HashMap<>();
|
||||
for (DataCenterVO zone : s_zoneDao.list(zoneIds)) {
|
||||
zones.put(zone.getName(), zone.getUuid());
|
||||
}
|
||||
diskOfferingResponse.setZone(String.join(", ", zones.keySet()));
|
||||
diskOfferingResponse.setZoneId(String.join(", ", zones.values()));
|
||||
}
|
||||
}
|
||||
return diskOfferingResponse;
|
||||
return s_diskOfferingJoinDao.newDiskOfferingResponse(offering);
|
||||
}
|
||||
|
||||
public static DiskOfferingJoinVO newDiskOfferingView(DiskOffering offering) {
|
||||
|
||||
@ -64,6 +64,10 @@ public class DiskOfferingJoinDaoImpl extends GenericDaoBase<DiskOfferingJoinVO,
|
||||
diskOfferingResponse.setMaxIops(offering.getMaxIops());
|
||||
|
||||
diskOfferingResponse.setDisplayOffering(offering.isDisplayOffering());
|
||||
diskOfferingResponse.setDomainId(offering.getDomainUuid());
|
||||
diskOfferingResponse.setDomain(offering.getDomainPath());
|
||||
diskOfferingResponse.setZoneId(offering.getZoneUuid());
|
||||
diskOfferingResponse.setZone(offering.getZoneName());
|
||||
|
||||
diskOfferingResponse.setTags(offering.getTags());
|
||||
diskOfferingResponse.setCustomized(offering.isCustomized());
|
||||
|
||||
@ -67,8 +67,9 @@ public class ServiceOfferingJoinDaoImpl extends GenericDaoBase<ServiceOfferingJo
|
||||
offeringResponse.setLimitCpuUse(offering.isLimitCpuUse());
|
||||
offeringResponse.setVolatileVm(offering.getVolatileVm());
|
||||
offeringResponse.setTags(offering.getTags());
|
||||
offeringResponse.setDomain(offering.getDomainName());
|
||||
offeringResponse.setDomainId(offering.getDomainUuid());
|
||||
//TODO: get domain for offering from details table
|
||||
//offeringResponse.setDomain(offering.getDomainName());
|
||||
//offeringResponse.setDomainId(offering.getDomainUuid());
|
||||
offeringResponse.setNetworkRate(offering.getRateMbps());
|
||||
offeringResponse.setHostTag(offering.getHostTag());
|
||||
offeringResponse.setDeploymentPlanner(offering.getDeploymentPlanner());
|
||||
|
||||
@ -20,12 +20,15 @@ import java.util.Date;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.EnumType;
|
||||
import javax.persistence.Enumerated;
|
||||
import javax.persistence.Id;
|
||||
import javax.persistence.Table;
|
||||
|
||||
import org.apache.cloudstack.api.Identity;
|
||||
import org.apache.cloudstack.api.InternalIdentity;
|
||||
|
||||
import com.cloud.offering.DiskOffering;
|
||||
import com.cloud.offering.DiskOffering.Type;
|
||||
import com.cloud.storage.Storage;
|
||||
import com.cloud.utils.db.GenericDao;
|
||||
@ -128,9 +131,34 @@ public class DiskOfferingJoinVO extends BaseViewVO implements InternalIdentity,
|
||||
@Column(name = GenericDao.REMOVED_COLUMN)
|
||||
private Date removed;
|
||||
|
||||
@Column(name = "domain_id")
|
||||
private String domainId = null;
|
||||
|
||||
@Column(name = "domain_uuid")
|
||||
private String domainUuid = null;
|
||||
|
||||
@Column(name = "domain_name")
|
||||
private String domainName = null;
|
||||
|
||||
@Column(name = "domain_path")
|
||||
private String domainPath = null;
|
||||
|
||||
@Column(name = "zone_id")
|
||||
private String zoneId = null;
|
||||
|
||||
@Column(name = "zone_uuid")
|
||||
private String zoneUuid = null;
|
||||
|
||||
@Column(name = "zone_name")
|
||||
private String zoneName = null;
|
||||
|
||||
@Column(name = "display_offering")
|
||||
boolean displayOffering;
|
||||
|
||||
@Enumerated(EnumType.STRING)
|
||||
@Column(name = "state")
|
||||
DiskOffering.State state;
|
||||
|
||||
public DiskOfferingJoinVO() {
|
||||
}
|
||||
|
||||
@ -251,4 +279,68 @@ public class DiskOfferingJoinVO extends BaseViewVO implements InternalIdentity,
|
||||
public Long getIopsWriteRateMax() { return iopsWriteRateMax; }
|
||||
|
||||
public Long getIopsWriteRateMaxLength() { return iopsWriteRateMaxLength; }
|
||||
|
||||
public String getDomainId() {
|
||||
return domainId;
|
||||
}
|
||||
|
||||
public void setDomainId(String domainId) {
|
||||
this.domainId = domainId;
|
||||
}
|
||||
|
||||
public String getDomainUuid() {
|
||||
return domainUuid;
|
||||
}
|
||||
|
||||
public void setDomainUuid(String domainUuid) {
|
||||
this.domainUuid = domainUuid;
|
||||
}
|
||||
|
||||
public String getDomainName() {
|
||||
return domainName;
|
||||
}
|
||||
|
||||
public void setDomainName(String domainName) {
|
||||
this.domainName = domainName;
|
||||
}
|
||||
|
||||
public String getDomainPath() {
|
||||
return domainPath;
|
||||
}
|
||||
|
||||
public void setDomainPath(String domainPath) {
|
||||
this.domainPath = domainPath;
|
||||
}
|
||||
|
||||
public String getZoneId() {
|
||||
return zoneId;
|
||||
}
|
||||
|
||||
public void setZoneId(String zoneId) {
|
||||
this.zoneId = zoneId;
|
||||
}
|
||||
|
||||
public String getZoneUuid() {
|
||||
return zoneUuid;
|
||||
}
|
||||
|
||||
public void setZoneUuid(String zoneUuid) {
|
||||
this.zoneUuid = zoneUuid;
|
||||
}
|
||||
|
||||
public String getZoneName() {
|
||||
return zoneName;
|
||||
}
|
||||
|
||||
public void setZoneName(String zoneName) {
|
||||
this.zoneName = zoneName;
|
||||
}
|
||||
|
||||
public DiskOffering.State getState() {
|
||||
return state;
|
||||
}
|
||||
|
||||
public void setState(DiskOffering.State state) {
|
||||
this.state = state;
|
||||
}
|
||||
}
|
||||
|
||||
@ -23,11 +23,10 @@ import javax.persistence.Entity;
|
||||
import javax.persistence.Id;
|
||||
import javax.persistence.Table;
|
||||
|
||||
import com.cloud.storage.Storage;
|
||||
|
||||
import org.apache.cloudstack.api.Identity;
|
||||
import org.apache.cloudstack.api.InternalIdentity;
|
||||
|
||||
import com.cloud.storage.Storage;
|
||||
import com.cloud.utils.db.GenericDao;
|
||||
|
||||
@Entity
|
||||
@ -221,10 +220,6 @@ public class ServiceOfferingJoinVO extends BaseViewVO implements InternalIdentit
|
||||
return domainName;
|
||||
}
|
||||
|
||||
public String getDomainPath() {
|
||||
return domainPath;
|
||||
}
|
||||
|
||||
public Boolean isCustomizedIops() {
|
||||
return customizedIops;
|
||||
}
|
||||
|
||||
@ -37,6 +37,16 @@ import javax.xml.parsers.ParserConfigurationException;
|
||||
import javax.xml.parsers.SAXParser;
|
||||
import javax.xml.parsers.SAXParserFactory;
|
||||
|
||||
import org.apache.cloudstack.utils.security.DigestHelper;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.apache.log4j.xml.DOMConfigurator;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Node;
|
||||
import org.w3c.dom.NodeList;
|
||||
import org.xml.sax.Attributes;
|
||||
import org.xml.sax.SAXException;
|
||||
import org.xml.sax.helpers.DefaultHandler;
|
||||
|
||||
import com.cloud.host.Status;
|
||||
import com.cloud.service.ServiceOfferingVO;
|
||||
import com.cloud.service.dao.ServiceOfferingDaoImpl;
|
||||
@ -52,15 +62,6 @@ import com.cloud.utils.db.TransactionCallbackWithExceptionNoReturn;
|
||||
import com.cloud.utils.db.TransactionLegacy;
|
||||
import com.cloud.utils.db.TransactionStatus;
|
||||
import com.cloud.utils.net.NfsUtils;
|
||||
import org.apache.cloudstack.utils.security.DigestHelper;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.apache.log4j.xml.DOMConfigurator;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Node;
|
||||
import org.w3c.dom.NodeList;
|
||||
import org.xml.sax.Attributes;
|
||||
import org.xml.sax.SAXException;
|
||||
import org.xml.sax.helpers.DefaultHandler;
|
||||
|
||||
public class DatabaseConfig {
|
||||
private static final Logger s_logger = Logger.getLogger(DatabaseConfig.class.getName());
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user