@POST @Consumes({MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON}) @Produces({MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON}) @Path("/discover-array-affinity") @CheckPermission(roles={Role.TENANT_ADMIN}) public TaskList discoverArrayAffinityForHosts(ArrayAffinityHostParam param){
  List<URI> hostIds=param.getHosts();
  ArgValidator.checkFieldNotEmpty(hostIds,"hosts");
  for (  URI hostId : hostIds) {
    ArgValidator.checkFieldUriType(hostId,Host.class,"host");
    queryObject(Host.class,hostId,true);
  }
  return createHostArrayAffinityTasks(hostIds);
}

@ POST @ Consumes ( { MediaType . APPLICATION_XML , MediaType . APPLICATION_JSON } ) @ Produces ( { MediaType . APPLICATION_XML , MediaType . APPLICATION_JSON } ) @ Path ( "/discover-array-affinity" ) @ CheckPermission ( roles = { Role . TENANT_ADMIN } ) public TaskList discoverArrayAffinityForHosts ( ArrayAffinityHostParam param ) { List < URI > hostIds = param . getHosts ( ) ; ArgValidator . checkFieldNotEmpty ( hostIds , "hosts" ) ; for ( URI hostId : hostIds ) { ArgValidator . checkFieldUriType ( hostId , Host . class , "host" ) ; queryObject ( Host . class , hostId , true ) ; } return createHostArrayAffinityTasks ( hostIds ) ; }
discovers the array affinity information on all supported storage systems for the given hosts . this is an asynchronous call .
