2727import java .net .URLDecoder ;
2828import java .net .UnknownHostException ;
2929import java .nio .file .Files ;
30- import java .sql .PreparedStatement ;
31- import java .sql .ResultSet ;
3230import java .util .ArrayList ;
3331import java .util .Arrays ;
3432import java .util .Collection ;
220218import com .cloud .org .Grouping .AllocationState ;
221219import com .cloud .resource .ResourceManager ;
222220import com .cloud .resource .ResourceState ;
223- import com .cloud .server .ConfigurationServer ;
224221import com .cloud .server .ManagementServer ;
225222import com .cloud .server .ManagementService ;
226223import com .cloud .server .StatsCollector ;
227- import com .cloud .service .dao .ServiceOfferingDetailsDao ;
228224import com .cloud .storage .Storage .ImageFormat ;
229225import com .cloud .storage .Storage .StoragePoolType ;
230226import com .cloud .storage .Volume .Type ;
@@ -358,8 +354,6 @@ public class StorageManagerImpl extends ManagerBase implements StorageManager, C
358354 @ Inject
359355 SnapshotDataFactory snapshotFactory ;
360356 @ Inject
361- ConfigurationServer _configServer ;
362- @ Inject
363357 DataStoreManager _dataStoreMgr ;
364358 @ Inject
365359 DataStoreProviderManager _dataStoreProviderMgr ;
@@ -376,8 +370,6 @@ public class StorageManagerImpl extends ManagerBase implements StorageManager, C
376370 @ Inject
377371 SnapshotService _snapshotService ;
378372 @ Inject
379- public StorageService storageService ;
380- @ Inject
381373 StoragePoolTagsDao _storagePoolTagsDao ;
382374 @ Inject
383375 StoragePoolAndAccessGroupMapDao _storagePoolAccessGroupMapDao ;
@@ -386,8 +378,6 @@ public class StorageManagerImpl extends ManagerBase implements StorageManager, C
386378 @ Inject
387379 DiskOfferingDetailsDao _diskOfferingDetailsDao ;
388380 @ Inject
389- ServiceOfferingDetailsDao _serviceOfferingDetailsDao ;
390- @ Inject
391381 VsphereStoragePolicyDao _vsphereStoragePolicyDao ;
392382 @ Inject
393383 private AnnotationDao annotationDao ;
@@ -416,22 +406,10 @@ public class StorageManagerImpl extends ManagerBase implements StorageManager, C
416406 @ Inject
417407 ResourceManager _resourceMgr ;
418408 @ Inject
419- StorageManager storageManager ;
420- @ Inject
421409 ManagementService managementService ;
422410 @ Inject
423411 JsInterpreterHelper jsInterpreterHelper ;
424412
425- protected List <StoragePoolDiscoverer > _discoverers ;
426-
427- public List <StoragePoolDiscoverer > getDiscoverers () {
428- return _discoverers ;
429- }
430-
431- public void setDiscoverers (List <StoragePoolDiscoverer > discoverers ) {
432- _discoverers = discoverers ;
433- }
434-
435413 protected GenericSearchBuilder <StoragePoolHostVO , Long > UpHostsInPoolSearch ;
436414 protected SearchBuilder <VMInstanceVO > StoragePoolSearch ;
437415 protected SearchBuilder <StoragePoolVO > LocalStorageSearch ;
@@ -449,44 +427,6 @@ public void setDiscoverers(List<StoragePoolDiscoverer> discoverers) {
449427
450428 private static final String NFS_MOUNT_OPTIONS_INCORRECT = "An incorrect mount option was specified" ;
451429
452- public boolean share (VMInstanceVO vm , List <VolumeVO > vols , HostVO host , boolean cancelPreviousShare ) throws StorageUnavailableException {
453-
454- // if pool is in maintenance and it is the ONLY pool available; reject
455- List <VolumeVO > rootVolForGivenVm = volumeDao .findByInstanceAndType (vm .getId (), Type .ROOT );
456- if (rootVolForGivenVm != null && rootVolForGivenVm .size () > 0 ) {
457- boolean isPoolAvailable = isPoolAvailable (rootVolForGivenVm .get (0 ).getPoolId ());
458- if (!isPoolAvailable ) {
459- throw new StorageUnavailableException ("Can not share " + vm , rootVolForGivenVm .get (0 ).getPoolId ());
460- }
461- }
462-
463- // this check is done for maintenance mode for primary storage
464- // if any one of the volume is unusable, we return false
465- // if we return false, the allocator will try to switch to another PS if
466- // available
467- for (VolumeVO vol : vols ) {
468- if (vol .getRemoved () != null ) {
469- logger .warn ("Volume: {} is removed, cannot share on this instance: {}" , vol , vm );
470- // not ok to share
471- return false ;
472- }
473- }
474- // ok to share
475- return true ;
476- }
477-
478- private boolean isPoolAvailable (Long poolId ) {
479- // get list of all pools
480- List <StoragePoolVO > pools = _storagePoolDao .listAll ();
481-
482- // if no pools or 1 pool which is in maintenance
483- if (pools == null || pools .size () == 0 || (pools .size () == 1 && pools .get (0 ).getStatus ().equals (StoragePoolStatus .Maintenance ))) {
484- return false ;
485- } else {
486- return true ;
487- }
488- }
489-
490430 protected void enableDefaultDatastoreDownloadRedirectionForExistingInstallations () {
491431 if (!configDepot .isNewConfig (DataStoreDownloadFollowRedirects )) {
492432 logger .trace ("{} is not a new configuration, skipping updating its value" ,
@@ -502,29 +442,6 @@ protected void enableDefaultDatastoreDownloadRedirectionForExistingInstallations
502442 }
503443 }
504444
505- @ Override
506- public List <StoragePoolVO > ListByDataCenterHypervisor (long datacenterId , HypervisorType type ) {
507- List <StoragePoolVO > pools = _storagePoolDao .listByDataCenterId (datacenterId );
508- List <StoragePoolVO > retPools = new ArrayList <>();
509- for (StoragePoolVO pool : pools ) {
510- if (pool .getStatus () != StoragePoolStatus .Up ) {
511- continue ;
512- }
513- if (pool .getScope () == ScopeType .ZONE ) {
514- if (pool .getHypervisor () != null && pool .getHypervisor () == type ) {
515- retPools .add (pool );
516- }
517- } else {
518- ClusterVO cluster = _clusterDao .findById (pool .getClusterId ());
519- if (type == cluster .getHypervisorType ()) {
520- retPools .add (pool );
521- }
522- }
523- }
524- Collections .shuffle (retPools );
525- return retPools ;
526- }
527-
528445 @ Override
529446 public boolean isLocalStorageActiveOnHost (Long hostId ) {
530447 List <StoragePoolHostVO > storagePoolHostRefs = _storagePoolHostDao .listByHostId (hostId );
@@ -615,31 +532,6 @@ public boolean canPoolProvideStorageStats(StoragePool pool) {
615532 return storeDriver instanceof PrimaryDataStoreDriver && ((PrimaryDataStoreDriver )storeDriver ).canProvideStorageStats ();
616533 }
617534
618- @ Override
619- public boolean poolProvidesCustomStorageStats (StoragePool pool ) {
620- DataStoreProvider storeProvider = _dataStoreProviderMgr .getDataStoreProvider (pool .getStorageProviderName ());
621- DataStoreDriver storeDriver = storeProvider .getDataStoreDriver ();
622- return storeDriver instanceof PrimaryDataStoreDriver && ((PrimaryDataStoreDriver )storeDriver ).poolProvidesCustomStorageStats ();
623- }
624-
625- @ Override
626- public Map <String , String > getCustomStorageStats (StoragePool pool ) {
627- if (pool == null ) {
628- return null ;
629- }
630-
631- if (!pool .isManaged ()) {
632- return null ;
633- }
634-
635- DataStoreProvider storeProvider = _dataStoreProviderMgr .getDataStoreProvider (pool .getStorageProviderName ());
636- DataStoreDriver storeDriver = storeProvider .getDataStoreDriver ();
637- if (storeDriver instanceof PrimaryDataStoreDriver ) {
638- return ((PrimaryDataStoreDriver )storeDriver ).getCustomStorageStats (pool );
639- }
640- return null ;
641- }
642-
643535 @ Override
644536 public Answer getVolumeStats (StoragePool pool , Command cmd ) {
645537 DataStoreProvider storeProvider = _dataStoreProviderMgr .getDataStoreProvider (pool .getStorageProviderName ());
@@ -661,35 +553,6 @@ public Answer getVolumeStats(StoragePool pool, Command cmd) {
661553 return new GetVolumeStatsAnswer (getVolumeStatsCommand , "" , statEntry );
662554 }
663555
664- public Long chooseHostForStoragePool (StoragePoolVO poolVO , List <Long > avoidHosts , boolean sendToVmResidesOn , Long vmId ) {
665- if (sendToVmResidesOn ) {
666- if (vmId != null ) {
667- VMInstanceVO vmInstance = _vmInstanceDao .findById (vmId );
668- if (vmInstance != null ) {
669- Long hostId = vmInstance .getHostId ();
670- if (hostId != null && !avoidHosts .contains (vmInstance .getHostId ())) {
671- return hostId ;
672- }
673- }
674- }
675- /*
676- * Can't find the vm where host resides on(vm is destroyed? or
677- * volume is detached from vm), randomly choose a host to send the
678- * cmd
679- */
680- }
681- List <StoragePoolHostVO > poolHosts = _storagePoolHostDao .listByHostStatus (poolVO .getId (), Status .Up );
682- Collections .shuffle (poolHosts );
683- if (poolHosts != null && poolHosts .size () > 0 ) {
684- for (StoragePoolHostVO sphvo : poolHosts ) {
685- if (!avoidHosts .contains (sphvo .getHostId ())) {
686- return sphvo .getHostId ();
687- }
688- }
689- }
690- return null ;
691- }
692-
693556 @ Override
694557 public boolean configure (String name , Map <String , Object > params ) {
695558 Map <String , String > configs = _configDao .getConfiguration ("management-server" , params );
@@ -2415,48 +2278,6 @@ private void handleManagedStorage(Volume volume) {
24152278 }
24162279 }
24172280
2418- @ DB
2419- List <Long > findAllVolumeIdInSnapshotTable (Long storeId ) {
2420- String sql = "SELECT volume_id from snapshots, snapshot_store_ref WHERE snapshots.id = snapshot_store_ref.snapshot_id and store_id=? GROUP BY volume_id" ;
2421- List <Long > list = new ArrayList <>();
2422- try {
2423- TransactionLegacy txn = TransactionLegacy .currentTxn ();
2424- ResultSet rs = null ;
2425- PreparedStatement pstmt = null ;
2426- pstmt = txn .prepareAutoCloseStatement (sql );
2427- pstmt .setLong (1 , storeId );
2428- rs = pstmt .executeQuery ();
2429- while (rs .next ()) {
2430- list .add (rs .getLong (1 ));
2431- }
2432- return list ;
2433- } catch (Exception e ) {
2434- logger .debug ("failed to get all volumes who has snapshots in secondary storage " + storeId + " due to " + e .getMessage ());
2435- return null ;
2436- }
2437-
2438- }
2439-
2440- List <String > findAllSnapshotForVolume (Long volumeId ) {
2441- String sql = "SELECT backup_snap_id FROM snapshots WHERE volume_id=? and backup_snap_id is not NULL" ;
2442- try {
2443- TransactionLegacy txn = TransactionLegacy .currentTxn ();
2444- ResultSet rs = null ;
2445- PreparedStatement pstmt = null ;
2446- pstmt = txn .prepareAutoCloseStatement (sql );
2447- pstmt .setLong (1 , volumeId );
2448- rs = pstmt .executeQuery ();
2449- List <String > list = new ArrayList <>();
2450- while (rs .next ()) {
2451- list .add (rs .getString (1 ));
2452- }
2453- return list ;
2454- } catch (Exception e ) {
2455- logger .debug ("failed to get all snapshots for a volume " + volumeId + " due to " + e .getMessage ());
2456- return null ;
2457- }
2458- }
2459-
24602281 @ Override
24612282 @ DB
24622283 public void cleanupSecondaryStorage (boolean recurring ) {
@@ -2540,18 +2361,6 @@ public void cleanupSecondaryStorage(boolean recurring) {
25402361 }
25412362 }
25422363
2543- @ Override
2544- public String getPrimaryStorageNameLabel (VolumeVO volume ) {
2545- Long poolId = volume .getPoolId ();
2546-
2547- // poolId is null only if volume is destroyed, which has been checked
2548- // before.
2549- assert poolId != null ;
2550- StoragePoolVO primaryDataStoreVO = _storagePoolDao .findById (poolId );
2551- assert primaryDataStoreVO != null ;
2552- return primaryDataStoreVO .getUuid ();
2553- }
2554-
25552364 @ Override
25562365 @ DB
25572366 @ ActionEvent (eventType = EventTypes .EVENT_MAINTENANCE_PREPARE_PRIMARY_STORAGE ,
@@ -2986,8 +2795,6 @@ public Pair<Boolean, String> checkIfReadyVolumeFitsInStoragePoolWithStorageAcces
29862795 }
29872796
29882797 if (CollectionUtils .isNotEmpty (srcStorageAccessGroups ) && CollectionUtils .isNotEmpty (destStorageAccessGroups )) {
2989- List <String > intersection = new ArrayList <>(srcStorageAccessGroups );
2990- intersection .retainAll (destStorageAccessGroups );
29912798
29922799 if (ArrayUtils .isNotEmpty (hostStorageAccessGroups )) {
29932800 boolean hasSrcCommon = srcStorageAccessGroups .stream ()
@@ -3363,25 +3170,14 @@ public boolean canHostPrepareStoragePoolAccess(Host host, StoragePool pool) {
33633170 return storeDriver instanceof PrimaryDataStoreDriver && ((PrimaryDataStoreDriver )storeDriver ).canHostPrepareStoragePoolAccess (host , pool );
33643171 }
33653172
3366- @ Override
3367- public boolean canDisconnectHostFromStoragePool (Host host , StoragePool pool ) {
3368- if (pool == null || !pool .isManaged ()) {
3369- return true ;
3370- }
3371-
3372- DataStoreProvider storeProvider = _dataStoreProviderMgr .getDataStoreProvider (pool .getStorageProviderName ());
3373- DataStoreDriver storeDriver = storeProvider .getDataStoreDriver ();
3374- return storeDriver instanceof PrimaryDataStoreDriver && ((PrimaryDataStoreDriver )storeDriver ).canDisconnectHostFromStoragePool (host , pool );
3375- }
3376-
33773173 @ Override
33783174 @ DB
33793175 public Host getHost (long hostId ) {
33803176 return _hostDao .findById (hostId );
33813177 }
33823178
33833179 @ Override
3384- public Host updateSecondaryStorage (long secStorageId , String newUrl ) {
3180+ public void updateSecondaryStorage (long secStorageId , String newUrl ) {
33853181 HostVO secHost = _hostDao .findById (secStorageId );
33863182 if (secHost == null ) {
33873183 throw new InvalidParameterValueException ("Can not find out the secondary storage id: " + secStorageId );
@@ -3428,7 +3224,6 @@ public Host updateSecondaryStorage(long secStorageId, String newUrl) {
34283224 secHost .setGuid (newUrl );
34293225 secHost .setName (newUrl );
34303226 _hostDao .update (secHost .getId (), secHost );
3431- return secHost ;
34323227 }
34333228
34343229 @ Override
0 commit comments