@@ -97,9 +97,39 @@ void deleteCloudStackVolume(CloudStackVolume cloudstackVolume) {
9797 }
9898
9999 @ Override
100- public CloudStackVolume getCloudStackVolume (Map <String , String > cloudStackVolumeMap ) {
101- //TODO
102- return null ;
100+ public CloudStackVolume getCloudStackVolume (Map <String , String > values ) {
101+ s_logger .info ("getCloudStackVolume : fetching Igroup with params {} " , values );
102+ if (values == null || values .isEmpty ()) {
103+ s_logger .error ("getCloudStackVolume: get Igroup failed. Invalid request: {}" , values );
104+ throw new CloudRuntimeException ("getCloudStackVolume : get Igroup Failed, invalid request" );
105+ }
106+ String svmName = values .get (Constants .SVM_DOT_NAME );
107+ String lunName = values .get (Constants .NAME );
108+ if (svmName == null || lunName == null || svmName .isEmpty () || lunName .isEmpty ()) {
109+ s_logger .error ("getCloudStackVolume: get Igroup failed. Invalid svm:{} or igroup name: {}" , svmName , lunName );
110+ throw new CloudRuntimeException ("getCloudStackVolume : Fget Igroup failed, invalid request" );
111+ }
112+ try {
113+ // Get AuthHeader
114+ String authHeader = Utility .generateAuthHeader (storage .getUsername (), storage .getPassword ());
115+ // get Igroup
116+ Map <String , Object > queryParams = Map .of (Constants .SVM_DOT_NAME , svmName , Constants .NAME , lunName );
117+ OntapResponse <Lun > lunResponse = sanFeignClient .getLunResponse (authHeader , queryParams );
118+ if (lunResponse == null || lunResponse .getRecords () == null || lunResponse .getRecords ().size () == 0 ) {
119+ s_logger .error ("getCloudStackVolume: Failed to fetch Igroup" );
120+ throw new CloudRuntimeException ("getCloudStackVolume: Failed to fetch Igroup" );
121+ }
122+ Lun lun = lunResponse .getRecords ().get (0 );
123+ s_logger .debug ("getCloudStackVolume: Lun Details : {}" , lun );
124+ s_logger .info ("getCloudStackVolume: Fetched the Lun successfully. LunName: {}" , lun .getName ());
125+
126+ CloudStackVolume cloudStackVolume = new CloudStackVolume ();
127+ cloudStackVolume .setLun (lun );
128+ return cloudStackVolume ;
129+ } catch (Exception e ) {
130+ s_logger .error ("Exception occurred while fetching Lun. Exception: {}" , e .getMessage ());
131+ throw new CloudRuntimeException ("Failed to fetch Lun details: " + e .getMessage ());
132+ }
103133 }
104134
105135 @ Override
@@ -152,7 +182,7 @@ public AccessGroup getAccessGroup(Map<String, String> values) {
152182 String igroupName = values .get (Constants .IGROUP_DOT_NAME );
153183 if (svmName == null || igroupName == null || svmName .isEmpty () || igroupName .isEmpty ()) {
154184 s_logger .error ("getAccessGroup: get Igroup failed. Invalid svm:{} or igroup name: {}" , svmName , igroupName );
155- throw new CloudRuntimeException ("getAccessGroup : Fget Igroup failed , invalid request" );
185+ throw new CloudRuntimeException ("getAccessGroup : Failed to get Igroup , invalid request" );
156186 }
157187 try {
158188 // Get AuthHeader
@@ -166,7 +196,7 @@ public AccessGroup getAccessGroup(Map<String, String> values) {
166196 }
167197 Igroup igroup = igroupResponse .getRecords ().get (0 );
168198 s_logger .debug ("getAccessGroup: Igroup Details : {}" , igroup );
169- s_logger .info ("getAccessGroup: Fetched the Igroup successfully. LunName : {}" , igroup .getName ());
199+ s_logger .info ("getAccessGroup: Fetched the Igroup successfully. IgroupName : {}" , igroup .getName ());
170200
171201 AccessGroup accessGroup = new AccessGroup ();
172202 accessGroup .setIgroup (igroup );
@@ -200,7 +230,7 @@ public void enableLogicalAccess(Map<String, String> values) {
200230 s_logger .debug ("enableLogicalAccess: LunMap created successfully. LunMap: {}" , lunMap );
201231 s_logger .info ("enableLogicalAccess: LunMap created successfully." );
202232 } catch (Exception e ) {
203- s_logger .error ("Exception occurred while creating LunMap: {}. Exception: {}" , e .getMessage ());
233+ s_logger .error ("Exception occurred while creating LunMap: {}. Exception: {}" , e .getMessage (), e );
204234 throw new CloudRuntimeException ("Failed to create LunMap: " + e .getMessage ());
205235 }
206236 }
@@ -220,7 +250,7 @@ public void disableLogicalAccess(Map<String, String> values) {
220250 sanFeignClient .deleteLunMap (authHeader , lunUUID , igroupUUID );
221251 s_logger .info ("disableLogicalAccess: LunMap deleted successfully." );
222252 } catch (Exception e ) {
223- s_logger .error ("Exception occurred while deleting LunMap: {}. Exception: {}" , e .getMessage ());
253+ s_logger .error ("Exception occurred while deleting LunMap: {}. Exception: {}" , e .getMessage (), e );
224254 throw new CloudRuntimeException ("Failed to delete LunMap: " + e .getMessage ());
225255 }
226256 }
0 commit comments