@Override
public ImmutableList<ServiceDescriptor> getServiceInventory(Iterable<SlotStatus> allSlotStatus)
{
ImmutableList.Builder<ServiceDescriptor> newDescriptors = ImmutableList.builder();
for (SlotStatus slotStatus : allSlotStatus) {
if (slotStatus.getSelf() == null) {
continue;
}
List<ServiceDescriptor> serviceDescriptors = getServiceInventory(slotStatus);
if (serviceDescriptors == null) {
continue;
}
for (ServiceDescriptor serviceDescriptor : serviceDescriptors) {
newDescriptors.add(new ServiceDescriptor(null,
slotStatus.getId().toString(),
serviceDescriptor.getType(),
serviceDescriptor.getPool(),
slotStatus.getLocation(),
slotStatus.getState() == SlotLifecycleState.RUNNING ? ServiceState.RUNNING : ServiceState.STOPPED,
interpolateProperties(serviceDescriptor.getProperties(), slotStatus)));
}
}
return newDescriptors.build();
}