question: public void processVolumeExpansion ( StorageSystem storageSystem , URI storagePoolURI , URI volumeId , CIMArgument [ ] outArgs ) throws Exception { StringBuilder logMsgBuilder = new StringBuilder ( String . format ( "Processing volume expansion - " ) ) ; CimConnection connection = _cimConnection . getConnection ( storageSystem ) ; WBEMClient client = connection . getCimClient ( ) ; StoragePool storagePool = _dbClient . queryObject ( StoragePool . class , storagePoolURI ) ; StringMap reservationMap = storagePool . getReservedCapacityMap ( ) ; reservationMap . remove ( volumeId . toString ( ) ) ; updateStoragePoolCapacity ( client , storagePool ) ; _dbClient . persistObject ( storagePool ) ; Volume volume = _dbClient . queryObject ( Volume . class , volumeId ) ; CIMObjectPath volumePath = ( CIMObjectPath ) _cimPath . getFromOutputArgs ( outArgs , IBMSmisConstants . CP_THE_ELEMENT ) ; boolean isSuccess = false ; if ( volumePath != null ) { CIMInstance volumeInstance = client . getInstance ( volumePath , true , false , null ) ; if ( volumeInstance != null ) { isSuccess = true ; volume . setProvisionedCapacity ( getProvisionedCapacityInformation ( volumeInstance ) ) ; volume . setAllocatedCapacity ( getAllocatedCapacityInformation ( client , volumeInstance ) ) ; _dbClient . persistObject ( volume ) ; logMsgBuilder . append ( String . format ( "%n   Capacity: %s, Provisioned capacity: %s, Allocated Capacity: %s" , volume . getCapacity ( ) , volume . getProvisionedCapacity ( ) , volume . getAllocatedCapacity ( ) ) ) ; } } if ( ! isSuccess ) { UnsignedInteger32 returnCoede = ( UnsignedInteger32 ) _cimPath . getFromOutputArgs ( outArgs , IBMSmisConstants . CP_RETURN_CODE ) ; logMsgBuilder . append ( "\n" ) ; logMsgBuilder . append ( String . format ( "Failed to expand volume: %s with return code: %s" , volume . getId ( ) , returnCoede . toString ( ) ) ) ; } _log . info ( logMsgBuilder . toString ( ) ) ; }
target:  Update DB with SMI-S output.