@@ -131,7 +131,7 @@ public void deleteCloudStackVolume(CloudStackVolume cloudstackVolume) {
131131 }
132132
133133 @ Override
134- public void copyCloudStackVolume (CloudStackVolume cloudstackVolume ) {
134+ public CloudStackVolume copyCloudStackVolume (CloudStackVolume cloudstackVolume ) {
135135 if (cloudstackVolume == null || cloudstackVolume .getLun () == null ) {
136136 s_logger .error ("copyCloudStackVolume: Lun clone creation failed. Invalid request: {}" , cloudstackVolume );
137137 throw new CloudRuntimeException ("copyCloudStackVolume : Failed to create Lun clone, invalid request" );
@@ -142,15 +142,18 @@ public void copyCloudStackVolume(CloudStackVolume cloudstackVolume) {
142142 // Get AuthHeader
143143 String authHeader = Utility .generateAuthHeader (storage .getUsername (), storage .getPassword ());
144144 // Create URI for lun clone creation
145- Lun lunCloneRequest = cloudstackVolume .getLun ();
146- Lun .Clone clone = new Lun .Clone ();
147- Lun .Source source = new Lun .Source ();
148- source .setName (cloudstackVolume .getLun ().getName ());
149- clone .setSource (source );
150- lunCloneRequest .setClone (clone );
151- String lunCloneName = cloudstackVolume .getLun ().getName () + "_clone" ;
152- lunCloneRequest .setName (lunCloneName );
153- sanFeignClient .createLun (authHeader , true , lunCloneRequest );
145+ OntapResponse <Lun > clonedLun = sanFeignClient .createLun (authHeader , true , cloudstackVolume .getLun ());
146+ if (clonedLun == null || clonedLun .getRecords () == null || clonedLun .getRecords ().size () == 0 ) {
147+ s_logger .error ("copyCloudStackVolume: LUN cloned failed for Lun {}" , cloudstackVolume .getLun ().getName ());
148+ throw new CloudRuntimeException ("Failed to create Lun clone: " + cloudstackVolume .getLun ().getName ());
149+ }
150+ Lun lun = clonedLun .getRecords ().get (0 );
151+ s_logger .debug ("copyCloudStackVolume: LUN cloned created successfully. Lun: {}" , lun );
152+ s_logger .info ("copyCloudStackVolume: LUN cloned created successfully. LunName: {}" , lun .getName ());
153+
154+ CloudStackVolume createdCloudStackVolume = new CloudStackVolume ();
155+ createdCloudStackVolume .setLun (lun );
156+ return createdCloudStackVolume ;
154157 } catch (FeignException e ) {
155158 s_logger .error ("FeignException occurred while creating Lun clone: {}, Status: {}, Exception: {}" , cloudstackVolume .getLun ().getName (), e .status (), e .getMessage ());
156159 throw new CloudRuntimeException ("Failed to create Lun clone: " + e .getMessage ());
@@ -161,19 +164,17 @@ public void copyCloudStackVolume(CloudStackVolume cloudstackVolume) {
161164 }
162165
163166 @ Override
164- public CloudStackVolume getCloudStackVolume (Map < String , String > values ) {
167+ public CloudStackVolume getCloudStackVolume (CloudStackVolume cloudStackVolumeRequest ) {
165168 s_logger .info ("getCloudStackVolume : fetching Lun" );
166- s_logger .debug ("getCloudStackVolume : fetching Lun with params {} " , values );
167- if (values == null || values .isEmpty ()) {
168- s_logger .error ("getCloudStackVolume: get Lun failed. Invalid request: {}" , values );
169+ s_logger .debug ("getCloudStackVolume : CloudStackVolumeRequest {} " , cloudStackVolumeRequest );
170+ if (cloudStackVolumeRequest == null || cloudStackVolumeRequest .getLun () == null || cloudStackVolumeRequest .getLun ().getSvm () == null
171+ || cloudStackVolumeRequest .getLun ().getSvm ().getName () == null || cloudStackVolumeRequest .getLun ().getSvm ().getName ().isEmpty ()
172+ || cloudStackVolumeRequest .getLun ().getName () == null || cloudStackVolumeRequest .getLun ().getName ().isEmpty ()) {
173+ s_logger .error ("getCloudStackVolume: get Lun failed. Invalid request: {}" , cloudStackVolumeRequest );
169174 throw new CloudRuntimeException ("getCloudStackVolume : get Lun Failed, invalid request" );
170175 }
171- String svmName = values .get (Constants .SVM_DOT_NAME );
172- String lunName = values .get (Constants .NAME );
173- if (svmName == null || lunName == null || svmName .isEmpty () || lunName .isEmpty ()) {
174- s_logger .error ("getCloudStackVolume: get Lun failed. Invalid svm:{} or Lun name: {}" , svmName , lunName );
175- throw new CloudRuntimeException ("getCloudStackVolume : Failed to get Lun, invalid request" );
176- }
176+ String svmName = cloudStackVolumeRequest .getLun ().getSvm ().getName ();
177+ String lunName = cloudStackVolumeRequest .getLun ().getName ();
177178 try {
178179 String authHeader = Utility .generateAuthHeader (storage .getUsername (), storage .getPassword ());
179180 Map <String , Object > queryParams = Map .of (Constants .SVM_DOT_NAME , svmName , Constants .NAME , lunName );
@@ -410,19 +411,17 @@ public AccessGroup updateAccessGroup(AccessGroup accessGroup) {
410411 }
411412
412413 @ Override
413- public AccessGroup getAccessGroup (Map < String , String > values ) {
414+ public AccessGroup getAccessGroup (AccessGroup accessGroupRequest ) {
414415 s_logger .info ("getAccessGroup : fetch Igroup" );
415- s_logger .debug ("getAccessGroup : fetching Igroup with params {} " , values );
416- if (values == null || values .isEmpty ()) {
417- s_logger .error ("getAccessGroup: get Igroup failed. Invalid request: {}" , values );
416+ s_logger .debug ("getAccessGroup : accessGroupRequest params {} " , accessGroupRequest );
417+ if (accessGroupRequest == null || accessGroupRequest .getIgroup () == null
418+ || accessGroupRequest .getIgroup ().getName () == null || accessGroupRequest .getIgroup ().getName ().isEmpty () || accessGroupRequest .getIgroup ().getSvm () == null
419+ || accessGroupRequest .getIgroup ().getSvm ().getName () == null || accessGroupRequest .getIgroup ().getSvm ().getName ().isEmpty ()) {
420+ s_logger .error ("getAccessGroup: get Igroup failed. Invalid request: {}" , accessGroupRequest );
418421 throw new CloudRuntimeException ("getAccessGroup : get Igroup Failed, invalid request" );
419422 }
420- String svmName = values .get (Constants .SVM_DOT_NAME );
421- String igroupName = values .get (Constants .NAME );
422- if (svmName == null || igroupName == null || svmName .isEmpty () || igroupName .isEmpty ()) {
423- s_logger .error ("getAccessGroup: get Igroup failed. Invalid svm:{} or igroup name: {}" , svmName , igroupName );
424- throw new CloudRuntimeException ("getAccessGroup : Failed to get Igroup, invalid request" );
425- }
423+ String svmName = accessGroupRequest .getIgroup ().getSvm ().getName ();
424+ String igroupName = accessGroupRequest .getIgroup ().getName ();
426425 try {
427426 String authHeader = Utility .generateAuthHeader (storage .getUsername (), storage .getPassword ());
428427 Map <String , Object > queryParams = Map .of (Constants .SVM_DOT_NAME , svmName , Constants .NAME , igroupName , Constants .FIELDS , Constants .INITIATORS );
@@ -613,34 +612,29 @@ public String ensureLunMapped(String svmName, String lunName, String accessGroup
613612 }
614613
615614 @ Override
616- public boolean validateInitiatorInAccessGroup (String hostInitiator , String svmName , String accessGroupName ) {
617- s_logger .info ("validateInitiatorInAccessGroup: Validating initiator [{}] is in igroup [{}] on SVM [{}] " , hostInitiator , accessGroupName , svmName );
615+ public boolean validateInitiatorInAccessGroup (String hostInitiator , AccessGroup accessGroup ) {
616+ s_logger .info ("validateInitiatorInAccessGroup: Validating initiator [{}] is in igroup" , hostInitiator );
618617
619618 if (hostInitiator == null || hostInitiator .isEmpty ()) {
620619 s_logger .warn ("validateInitiatorInAccessGroup: host initiator is null or empty" );
621620 return false ;
622621 }
623622
624- Map <String , String > getAccessGroupMap = Map .of (
625- Constants .NAME , accessGroupName ,
626- Constants .SVM_DOT_NAME , svmName
627- );
628- AccessGroup accessGroup = getAccessGroup (getAccessGroupMap );
629- if (accessGroup == null || accessGroup .getIgroup () == null ) {
630- s_logger .warn ("validateInitiatorInAccessGroup: iGroup [{}] not found on SVM [{}]" , accessGroupName , svmName );
623+ if (accessGroup == null || accessGroup .getIgroup () == null || accessGroup .getIgroup ().getName () == null || accessGroup .getIgroup ().getName ().isEmpty ()) {
624+ s_logger .warn ("validateInitiatorInAccessGroup: Invalid access group provided for validation" );
631625 return false ;
632626 }
633627
634628 Igroup igroup = accessGroup .getIgroup ();
635629 if (igroup .getInitiators () != null ) {
636630 for (Initiator initiator : igroup .getInitiators ()) {
637631 if (initiator .getName ().equalsIgnoreCase (hostInitiator )) {
638- s_logger .info ("validateInitiatorInAccessGroup: Initiator [{}] validated successfully in igroup [{}]" , hostInitiator , accessGroupName );
632+ s_logger .info ("validateInitiatorInAccessGroup: Initiator [{}] validated successfully in igroup [{}]" , hostInitiator , igroup . getName () );
639633 return true ;
640634 }
641635 }
642636 }
643- s_logger .warn ("validateInitiatorInAccessGroup: Initiator [{}] NOT found in igroup [{}]" , hostInitiator , accessGroupName );
637+ s_logger .warn ("validateInitiatorInAccessGroup: Initiator [{}] NOT found in igroup [{}]" , hostInitiator , igroup . getName () );
644638 return false ;
645639 }
646640}
0 commit comments