Skip to content

Commit 01ab9f3

Browse files
committed
re-add display flag
1 parent da389a1 commit 01ab9f3

6 files changed

Lines changed: 28 additions & 23 deletions

File tree

engine/schema/src/main/java/com/cloud/storage/GuestOSVO.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,9 @@ public class GuestOSVO implements GuestOS {
5757
@Column(name = "is_user_defined")
5858
private boolean isUserDefined;
5959

60+
@Column(name = "display", updatable = true, nullable = false)
61+
protected boolean display = true;
62+
6063
@Override
6164
public long getId() {
6265
return id;
@@ -120,4 +123,12 @@ public boolean getIsUserDefined() {
120123
public void setIsUserDefined(boolean isUserDefined) {
121124
this.isUserDefined = isUserDefined;
122125
}
126+
127+
public boolean isDisplay() {
128+
return display;
129+
}
130+
131+
public void setDisplay(boolean display) {
132+
this.display = display;
133+
}
123134
}

engine/schema/src/main/java/com/cloud/upgrade/GuestOsMapper.java

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -72,19 +72,17 @@ private void makeNormative(GuestOSVO guestOSVO, Set<GuestOSVO> setOfGuestOSes) {
7272
for (GuestOSVO oldGuestOs : setOfGuestOSes) {
7373
List<GuestOSHypervisorVO> mappings = guestOSHypervisorDao.listByGuestOsId(oldGuestOs.getId());
7474
copyMappings(guestOSVO, mappings);
75-
// // find VMs
76-
// // // for each VM
77-
// // // // set the guest_os_id to the one to keep
78-
// // find templates
79-
// // // for each template
80-
// // // // set the guest_os_id to the one to keep
81-
// // mark as removed
82-
75+
makeHidden(oldGuestOs);
8376
}
8477
// set the lower id as not user defined, if that was not the premise anyway
8578

8679
}
8780

81+
private void makeHidden(GuestOSVO guestOSVO) {
82+
guestOSVO.setDisplay(false);
83+
guestOSDao.update(guestOSVO.getId(),guestOSVO);
84+
}
85+
8886
private void copyMappings(GuestOSVO guestOSVO, List<GuestOSHypervisorVO> mappings) {
8987
for (GuestOSHypervisorVO mapping : mappings) {
9088
if (null == guestOSHypervisorDao.findByOsIdAndHypervisor(guestOSVO.getId(), mapping.getHypervisorType(), mapping.getHypervisorVersion())) {

engine/schema/src/main/resources/META-INF/db/schema-41720to41800.sql

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1568,4 +1568,6 @@ UPDATE
15681568
SET
15691569
usage_type = 22
15701570
WHERE
1571-
usage_type = 24 AND usage_display like '% io write';
1571+
usage_type = 24 AND usage_display like '% io write';
1572+
1573+
CALL `cloud`.`IDEMPOTENT_ADD_COLUMN`('cloud.guest_os', 'display', 'tinyint(1) DEFAULT ''1'' COMMENT ''should this guest_os be shown to the end user'' ');

engine/schema/src/main/resources/META-INF/db/schema-41800to41810.sql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,4 @@ WHERE so.default_use = 1 AND so.vm_type IN ('domainrouter', 'secondarystoragevm'
3939

4040
-- fix erronous commas in guest_os names
4141
UPDATE `cloud`.`guest_os_hypervisor` SET guest_os_name = 'rhel9_64Guest' WHERE guest_os_name = 'rhel9_64Guest,';
42+
CALL `cloud`.`IDEMPOTENT_ADD_COLUMN`('cloud.guest_os', 'display', 'tinyint(1) DEFAULT ''1'' COMMENT ''should this guest_os be shown to the end user'' ');

server/src/main/java/com/cloud/api/ApiResponseHelper.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3636,7 +3636,6 @@ public GuestOSResponse createGuestOSResponse(GuestOS guestOS) {
36363636
if (category != null) {
36373637
response.setOsCategoryId(category.getUuid());
36383638
}
3639-
// TODO: create details find utility and add the details to the response
36403639

36413640
response.setObjectName("ostype");
36423641
return response;

server/src/main/java/com/cloud/server/ManagementServerImpl.java

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2796,21 +2796,15 @@ public GuestOS addGuestOs(final AddGuestOsCmd cmd) {
27962796
guestOsVo.setDisplayName(displayName);
27972797
guestOsVo.setName(name);
27982798
guestOsVo.setIsUserDefined(true);
2799+
guestOsVo.setDisplay(cmd.getForDisplay() == null ? true : cmd.getForDisplay());
27992800
final GuestOS guestOsPersisted = _guestOSDao.persist(guestOsVo);
28002801

2801-
Map<String, String> details = cmd.getDetails();
2802-
Boolean forDisplay = cmd.getForDisplay();
2803-
persistGuestOsDetails(forDisplay, details, guestOsPersisted.getId());
2802+
persistGuestOsDetails(cmd.getDetails(), guestOsPersisted.getId());
28042803

28052804
return guestOsPersisted;
28062805
}
28072806

2808-
private void persistGuestOsDetails(Boolean forDisplay, Map<String, String> details, long guestOsPersistedId) {
2809-
if (Boolean.FALSE.equals(forDisplay)) {
2810-
details.put("display", Boolean.FALSE.toString());
2811-
} else {
2812-
details.put("display", Boolean.TRUE.toString());
2813-
}
2807+
private void persistGuestOsDetails(Map<String, String> details, long guestOsPersistedId) {
28142808
for (Object key : details.keySet()) {
28152809
_guestOsDetailsDao.addDetail(guestOsPersistedId, (String)key, details.get(key), false);
28162810
}
@@ -2839,10 +2833,7 @@ public GuestOS updateGuestOs(final UpdateGuestOsCmd cmd) {
28392833
throw new InvalidParameterValueException("Unable to modify system defined guest OS");
28402834
}
28412835

2842-
2843-
Map<String, String> details = cmd.getDetails();
2844-
Boolean forDisplay = cmd.getForDisplay();
2845-
persistGuestOsDetails(forDisplay, details, id);
2836+
persistGuestOsDetails(cmd.getDetails(), id);
28462837

28472838
//Check if update is needed
28482839
if (displayName.equals(guestOsHandle.getDisplayName())) {
@@ -2856,6 +2847,9 @@ public GuestOS updateGuestOs(final UpdateGuestOsCmd cmd) {
28562847
}
28572848
final GuestOSVO guestOs = _guestOSDao.createForUpdate(id);
28582849
guestOs.setDisplayName(displayName);
2850+
if (cmd.getForDisplay() != null) {
2851+
guestOs.setDisplay(cmd.getForDisplay());
2852+
}
28592853
if (_guestOSDao.update(id, guestOs)) {
28602854
return _guestOSDao.findById(id);
28612855
} else {

0 commit comments

Comments
 (0)