From 5ad41e09aeeb800dea80c86cd76502f1b1b4d004 Mon Sep 17 00:00:00 2001 From: Abhinandan Prateek Date: Sat, 21 May 2011 22:21:12 +0530 Subject: [PATCH] bug 7553: Virtual Router service offering --- api/src/com/cloud/offering/DiskOffering.java | 2 ++ .../com/cloud/offering/ServiceOffering.java | 12 +++++----- .../src/com/cloud/storage/DiskOfferingVO.java | 8 ++++++- .../src/com/cloud/api/ApiResponseHelper.java | 2 +- .../ConfigurationManagerImpl.java | 2 +- .../com/cloud/migration/DiskOffering21VO.java | 13 ++++++++++- .../cloud/migration/ServiceOffering21VO.java | 12 ++-------- .../VirtualNetworkApplianceManagerImpl.java | 2 +- .../cloud/server/ManagementServerImpl.java | 2 +- .../com/cloud/service/ServiceOfferingVO.java | 22 +------------------ .../service/dao/ServiceOfferingDaoImpl.java | 18 +++++++-------- .../storage/dao/DiskOfferingDaoImpl.java | 2 +- setup/db/create-schema.sql | 1 - 13 files changed, 44 insertions(+), 54 deletions(-) diff --git a/api/src/com/cloud/offering/DiskOffering.java b/api/src/com/cloud/offering/DiskOffering.java index 0b4b42e7196..ac651d41dca 100644 --- a/api/src/com/cloud/offering/DiskOffering.java +++ b/api/src/com/cloud/offering/DiskOffering.java @@ -36,6 +36,8 @@ public interface DiskOffering { String getName(); + boolean getSystemUse(); + String getDisplayText(); long getDiskSizeInBytes(); diff --git a/api/src/com/cloud/offering/ServiceOffering.java b/api/src/com/cloud/offering/ServiceOffering.java index 561a8649658..6c93981623e 100755 --- a/api/src/com/cloud/offering/ServiceOffering.java +++ b/api/src/com/cloud/offering/ServiceOffering.java @@ -32,17 +32,17 @@ public interface ServiceOffering { String getTags(); - - /** - * @return Is this a system VM offering? - */ - boolean getIsSystem(); - /** * @return user readable description */ String getName(); + + /** + * @return is this a system service offering + */ + boolean getSystemUse(); + /** * @return # of cpu. */ diff --git a/core/src/com/cloud/storage/DiskOfferingVO.java b/core/src/com/cloud/storage/DiskOfferingVO.java index 049ebb42532..f0b7b0e68e0 100644 --- a/core/src/com/cloud/storage/DiskOfferingVO.java +++ b/core/src/com/cloud/storage/DiskOfferingVO.java @@ -180,8 +180,14 @@ public class DiskOfferingVO implements DiskOffering { this.name = name; } - public boolean isSystemUse() { + + @Override + public boolean getSystemUse() { return systemUse; + } + + public void setSystemUse(boolean systemUse) { + this.systemUse = systemUse; } @Override diff --git a/server/src/com/cloud/api/ApiResponseHelper.java b/server/src/com/cloud/api/ApiResponseHelper.java index b5720e617f5..eca4a53dfeb 100755 --- a/server/src/com/cloud/api/ApiResponseHelper.java +++ b/server/src/com/cloud/api/ApiResponseHelper.java @@ -401,7 +401,7 @@ public class ApiResponseHelper implements ResponseGenerator { ServiceOfferingResponse offeringResponse = new ServiceOfferingResponse(); offeringResponse.setId(offering.getId()); offeringResponse.setName(offering.getName()); - offeringResponse.setIsSystemOffering(offering.getIsSystem()); + offeringResponse.setIsSystemOffering(offering.getSystemUse()); offeringResponse.setDisplayText(offering.getDisplayText()); offeringResponse.setCpuNumber(offering.getCpu()); offeringResponse.setCpuSpeed(offering.getSpeed()); diff --git a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java index 1677ed86c36..8c0abd08bc4 100755 --- a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java +++ b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java @@ -1502,7 +1502,7 @@ public class ConfigurationManagerImpl implements ConfigurationManager, Configura public ServiceOfferingVO createServiceOffering(long userId, boolean isSystem, String name, int cpu, int ramSize, int speed, String displayText, boolean localStorageRequired, boolean offerHA, boolean limitResourceUse, String tags, Long domainId, String hostTag) { tags = cleanupTags(tags); - ServiceOfferingVO offering = new ServiceOfferingVO(name, isSystem, cpu, ramSize, speed, null, null, offerHA, limitResourceUse, displayText, localStorageRequired, false, tags, false, domainId, hostTag); + ServiceOfferingVO offering = new ServiceOfferingVO(name, cpu, ramSize, speed, null, null, offerHA, limitResourceUse, displayText, localStorageRequired, false, tags, isSystem, domainId, hostTag); if ((offering = _serviceOfferingDao.persist(offering)) != null) { UserContext.current().setEventDetails("Service offering id=" + offering.getId()); diff --git a/server/src/com/cloud/migration/DiskOffering21VO.java b/server/src/com/cloud/migration/DiskOffering21VO.java index 4ac7a3dfce1..d59cffe87b0 100644 --- a/server/src/com/cloud/migration/DiskOffering21VO.java +++ b/server/src/com/cloud/migration/DiskOffering21VO.java @@ -85,7 +85,10 @@ public class DiskOffering21VO { @Column(name="use_local_storage") private boolean useLocalStorage; - + + @Column(name="system_use") + protected boolean systemUse; + public DiskOffering21VO() { } @@ -123,6 +126,14 @@ public class DiskOffering21VO { public String getUniqueName() { return uniqueName; + } + + public boolean getSystemUse() { + return systemUse; + } + + public void setSystemUse(boolean systemUse) { + this.systemUse = systemUse; } public boolean getUseLocalStorage() { diff --git a/server/src/com/cloud/migration/ServiceOffering21VO.java b/server/src/com/cloud/migration/ServiceOffering21VO.java index 1745e80c20f..829f7c08c68 100644 --- a/server/src/com/cloud/migration/ServiceOffering21VO.java +++ b/server/src/com/cloud/migration/ServiceOffering21VO.java @@ -58,10 +58,7 @@ public class ServiceOffering21VO extends DiskOffering21VO implements ServiceOffe private Network.GuestIpType guestIpType; @Column(name="host_tag") - private String hostTag; - - @Column(name="is_system") - private boolean isSystem=false; + private String hostTag; protected ServiceOffering21VO() { super(); @@ -82,12 +79,7 @@ public class ServiceOffering21VO extends DiskOffering21VO implements ServiceOffe this(name, cpu, ramSize, speed, rateMbps, multicastRateMbps, offerHA, displayText, guestIpType, useLocalStorage, recreatable, tags); this.hostTag = hostTag; } - - - @Override - public boolean getIsSystem() { - return isSystem; - } + @Override public boolean getOfferHA() { diff --git a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java index c1f0692af01..fad8955e819 100755 --- a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java +++ b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java @@ -357,7 +357,7 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian } // check if it is a system service offering, if yes return with error as it cannot be used for user vms - if (!newServiceOffering.getIsSystem()) { + if (!newServiceOffering.getSystemUse()) { throw new InvalidParameterValueException("Cannot upgrade router vm to a non system service offering " + serviceOfferingId); } diff --git a/server/src/com/cloud/server/ManagementServerImpl.java b/server/src/com/cloud/server/ManagementServerImpl.java index 60bcdd1ae14..b066db40c95 100755 --- a/server/src/com/cloud/server/ManagementServerImpl.java +++ b/server/src/com/cloud/server/ManagementServerImpl.java @@ -2326,7 +2326,7 @@ public class ManagementServerImpl implements ManagementServer { sb.and("state", sb.entity().getState(), SearchCriteria.Op.NEQ); SearchBuilder diskOfferingSearch = _diskOfferingDao.createSearchBuilder(); - diskOfferingSearch.and("systemUse", diskOfferingSearch.entity().isSystemUse(), SearchCriteria.Op.NEQ); + diskOfferingSearch.and("systemUse", diskOfferingSearch.entity().getSystemUse(), SearchCriteria.Op.NEQ); sb.join("diskOfferingSearch", diskOfferingSearch, sb.entity().getDiskOfferingId(), diskOfferingSearch.entity().getId(), JoinBuilder.JoinType.LEFTOUTER); if (((accountId == null) && (domainId != null) && isRecursive)) { diff --git a/server/src/com/cloud/service/ServiceOfferingVO.java b/server/src/com/cloud/service/ServiceOfferingVO.java index 49e29f6b5af..e7faffc6b4b 100644 --- a/server/src/com/cloud/service/ServiceOfferingVO.java +++ b/server/src/com/cloud/service/ServiceOfferingVO.java @@ -56,9 +56,6 @@ public class ServiceOfferingVO extends DiskOfferingVO implements ServiceOffering @Column(name="host_tag") private String hostTag; - - @Column(name="is_system") - private boolean isSystem; protected ServiceOfferingVO() { super(); @@ -89,24 +86,7 @@ public class ServiceOfferingVO extends DiskOfferingVO implements ServiceOffering public ServiceOfferingVO(String name, int cpu, int ramSize, int speed, Integer rateMbps, Integer multicastRateMbps, boolean offerHA, boolean limitResourceUse, String displayText, boolean useLocalStorage, boolean recreatable, String tags, boolean systemUse, Long domainId, String hostTag) { this(name, cpu, ramSize, speed, rateMbps, multicastRateMbps, offerHA, limitResourceUse, displayText, useLocalStorage, recreatable, tags, systemUse, domainId); this.hostTag = hostTag; - } - - - public ServiceOfferingVO(String name, boolean isSystem, int cpu, int ramSize, int speed, Integer rateMbps, Integer multicastRateMbps, boolean offerHA, boolean limitResourceUse, String displayText, boolean useLocalStorage, boolean recreatable, String tags, boolean systemUse, Long domainId, String hostTag) { - this(name, cpu, ramSize, speed, rateMbps, multicastRateMbps, offerHA, limitResourceUse, displayText, useLocalStorage, recreatable, tags, systemUse, domainId); - this.hostTag = hostTag; - this.isSystem = isSystem; - } - - - @Override - public boolean getIsSystem() { - return isSystem; - } - - public void setIsSystemOffering(boolean isSystem) { - this.isSystem = isSystem; - } + } @Override public boolean getOfferHA() { diff --git a/server/src/com/cloud/service/dao/ServiceOfferingDaoImpl.java b/server/src/com/cloud/service/dao/ServiceOfferingDaoImpl.java index a7bf97c10f9..3bdc7da385e 100644 --- a/server/src/com/cloud/service/dao/ServiceOfferingDaoImpl.java +++ b/server/src/com/cloud/service/dao/ServiceOfferingDaoImpl.java @@ -37,7 +37,7 @@ public class ServiceOfferingDaoImpl extends GenericDaoBase UniqueNameSearch; protected final SearchBuilder ServiceOfferingsByDomainIdSearch; - protected final SearchBuilder ServiceOfferingsByDomainIdAndIsSystemSearch; + protected final SearchBuilder ServiceOfferingsByDomainIdAndUseSystemSearch; protected final SearchBuilder ServiceOfferingsByKeywordSearch; protected final SearchBuilder PublicServiceOfferingSearch; @@ -46,22 +46,22 @@ public class ServiceOfferingDaoImpl extends GenericDaoBase findServiceOfferingByDomainIdAndIsSystem(Long domainId, Boolean isSystem){ - SearchCriteria sc = ServiceOfferingsByDomainIdAndIsSystemSearch.create(); + SearchCriteria sc = ServiceOfferingsByDomainIdAndUseSystemSearch.create(); sc.setParameters("domainId", domainId); - sc.setParameters("isSystem", isSystem); + sc.setParameters("system", isSystem); return listBy(sc); } diff --git a/server/src/com/cloud/storage/dao/DiskOfferingDaoImpl.java b/server/src/com/cloud/storage/dao/DiskOfferingDaoImpl.java index e421e9ccf5d..d536a663e1a 100644 --- a/server/src/com/cloud/storage/dao/DiskOfferingDaoImpl.java +++ b/server/src/com/cloud/storage/dao/DiskOfferingDaoImpl.java @@ -54,7 +54,7 @@ public class DiskOfferingDaoImpl extends GenericDaoBase im PublicDiskOfferingSearch = createSearchBuilder(); PublicDiskOfferingSearch.and("domainId", PublicDiskOfferingSearch.entity().getDomainId(), SearchCriteria.Op.NULL); - PublicDiskOfferingSearch.and("system", PublicDiskOfferingSearch.entity().isSystemUse(), SearchCriteria.Op.EQ); + PublicDiskOfferingSearch.and("system", PublicDiskOfferingSearch.entity().getSystemUse(), SearchCriteria.Op.EQ); PublicDiskOfferingSearch.done(); _typeAttr = _allAttributes.get("type"); diff --git a/setup/db/create-schema.sql b/setup/db/create-schema.sql index 777807878f2..351bbd224a2 100755 --- a/setup/db/create-schema.sql +++ b/setup/db/create-schema.sql @@ -1122,7 +1122,6 @@ CREATE TABLE `cloud`.`disk_offering` ( CREATE TABLE `cloud`.`service_offering` ( `id` bigint unsigned NOT NULL, - `is_system` tinyint(1) unsigned NOT NULL DEFAULT 0 COMMENT 'is a system vm offering', `cpu` int(10) unsigned NOT NULL COMMENT '# of cores', `speed` int(10) unsigned NOT NULL COMMENT 'speed per core in mhz', `ram_size` bigint unsigned NOT NULL,