question: private void discoverHost ( HostSystem hostSystem , Host targetHost , HostStateChange changes ) { HostSystemConnectionState connectionState = getConnectionState ( hostSystem ) ; if ( connectionState == HostSystemConnectionState . connected ) { List < Initiator > oldInitiators = new ArrayList < Initiator > ( ) ; List < Initiator > addedInitiators = new ArrayList < Initiator > ( ) ; discoverConnectedHostInitiators ( hostSystem , targetHost , oldInitiators , addedInitiators ) ; if ( ! oldInitiators . isEmpty ( ) || ! addedInitiators . isEmpty ( ) ) { Collection < URI > oldInitiatorIds = Lists . newArrayList ( Collections2 . transform ( oldInitiators , CommonTransformerFunctions . fctnDataObjectToID ( ) ) ) ; changes . setOldInitiators ( oldInitiatorIds ) ; Collection < URI > addedInitiatorIds = Lists . newArrayList ( Collections2 . transform ( addedInitiators , CommonTransformerFunctions . fctnDataObjectToID ( ) ) ) ; changes . setNewInitiators ( addedInitiatorIds ) ; } } else { if ( connectionState == HostSystemConnectionState . disconnected ) { throw new IllegalStateException ( "Host is disconnected" ) ; } else if ( connectionState == HostSystemConnectionState . notResponding ) { throw new IllegalStateException ( "Host is not responding" ) ; } else { throw new IllegalStateException ( "Could not determine host connection state" ) ; } } }
target:  Discover Exs host and its IpIterfaces and Initiators.