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();

Reply via email to