This is an automated email from the ASF dual-hosted git repository. sureshanaparti pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/cloudstack.git
commit bf70566c2c5b4abb423b603daeaf738833ee6872 Merge: a6567f3 8adb8df Author: Suresh Kumar Anaparti <[email protected]> AuthorDate: Wed Feb 2 17:30:21 2022 +0530 Merge branch '4.16' into main .../diagnostics/CopyToSecondaryStorageCommand.java | 8 ++- .../com/cloud/vm/VirtualMachineManagerImpl.java | 7 ++- .../com/cloud/storage/dao/DiskOfferingDao.java | 2 + .../com/cloud/storage/dao/DiskOfferingDaoImpl.java | 10 ++++ .../storage/image/NfsImageStoreDriverImpl.java | 22 ++------ .../xenserver/resource/CitrixResourceBase.java | 35 +++++++++---- .../resource/XenServerStorageProcessor.java | 18 ++++--- .../resource/Xenserver625StorageProcessor.java | 55 +++++++++++--------- .../xenserver/resource/CitrixResourceBaseTest.java | 33 ++++++++++++ .../vm/hypervisor/xenserver/cloud-plugin-storage | 4 ++ scripts/vm/hypervisor/xenserver/vmopsSnapshot | 13 +++-- .../api/query/dao/DiskOfferingJoinDaoImpl.java | 14 ++--- .../java/com/cloud/network/NetworkServiceImpl.java | 39 ++++++++------ .../com/cloud/storage/VolumeApiServiceImpl.java | 60 ++++++++++++++++------ .../diagnostics/DiagnosticsServiceImpl.java | 4 +- .../SecondaryStorageManagerImpl.java | 4 +- ui/src/components/view/DetailSettings.vue | 45 +++++++++------- ui/src/config/section/network.js | 2 +- ui/src/views/storage/UploadLocalVolume.vue | 58 +++++++++++++++++++-- 19 files changed, 300 insertions(+), 133 deletions(-) diff --cc engine/schema/src/main/java/com/cloud/storage/dao/DiskOfferingDaoImpl.java index 435474e,ce52b0e..78b2a54 --- a/engine/schema/src/main/java/com/cloud/storage/dao/DiskOfferingDaoImpl.java +++ b/engine/schema/src/main/java/com/cloud/storage/dao/DiskOfferingDaoImpl.java @@@ -141,6 -175,18 +141,16 @@@ public class DiskOfferingDaoImpl extend } @Override + public List<DiskOfferingVO> findCustomDiskOfferings() { + SearchBuilder<DiskOfferingVO> sb = createSearchBuilder(); - sb.and("type", sb.entity().getType(), SearchCriteria.Op.EQ); + sb.and("customized", sb.entity().isCustomized(), SearchCriteria.Op.EQ); + sb.done(); + SearchCriteria<DiskOfferingVO> sc = sb.create(); + sc.setParameters("customized", true); - sc.setParameters("type", DiskOffering.Type.Disk.toString()); + return listBy(sc); + } + + @Override public boolean remove(Long id) { DiskOfferingVO diskOffering = createForUpdate(); diskOffering.setRemoved(new Date()); diff --cc plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java index c3987fd,19625a2..fffbd80 --- a/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java +++ b/plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java @@@ -1904,8 -1915,10 +1915,10 @@@ public abstract class CitrixResourceBas final Map<String, String> details = vmSpec.getDetails(); if (details != null) { final String platformstring = details.get(VmDetailConstants.PLATFORM); + final String coresPerSocket = details.get(VmDetailConstants.CPU_CORE_PER_SOCKET); if (platformstring != null && !platformstring.isEmpty()) { - final Map<String, String> platform = StringUtils.stringToMap(platformstring); + final Map<String, String> platform = com.cloud.utils.StringUtils.stringToMap(platformstring); + syncPlatformAndCoresPerSocketSettings(coresPerSocket, platform); vm.setPlatform(conn, platform); } else { final String timeoffset = details.get(VmDetailConstants.TIME_OFFSET); @@@ -5671,8 -5684,8 +5684,8 @@@ URI uri = new URI(secondaryStorageUrl); secondaryStorageMountPath = uri.getHost() + ":" + uri.getPath(); localDir = BASE_MOUNT_POINT_ON_REMOTE + UUID.nameUUIDFromBytes(secondaryStorageMountPath.getBytes()); - String mountPoint = mountNfs(conn, secondaryStorageMountPath, localDir); + String mountPoint = mountNfs(conn, secondaryStorageMountPath, localDir, nfsVersion); - if (org.apache.commons.lang.StringUtils.isBlank(mountPoint)) { + if (StringUtils.isBlank(mountPoint)) { return new CopyToSecondaryStorageAnswer(cmd, false, "Could not mount secondary storage " + secondaryStorageMountPath + " on host " + localDir); } diff --cc server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java index 2f10c78,35de68b..ce7f35a --- a/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java +++ b/server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java @@@ -328,8 -315,9 +329,10 @@@ public class VolumeApiServiceImpl exten private final StateMachine2<Volume.State, Volume.Event, Volume> _volStateMachine; private static final Set<Volume.State> STATES_VOLUME_CANNOT_BE_DESTROYED = new HashSet<>(Arrays.asList(Volume.State.Destroy, Volume.State.Expunging, Volume.State.Expunged, Volume.State.Allocated)); + private static final long GiB_TO_BYTES = 1024 * 1024 * 1024; + private static final String CUSTOM_DISK_OFFERING_UNIQUE_NAME = "Cloud.com-Custom"; + protected VolumeApiServiceImpl() { _volStateMachine = Volume.State.getStateMachine(); _gson = GsonHelper.getGsonLogger();
