package com.sequenceiq.cloudbreak.cloud.openstack.metadata; import javax.inject.Inject; import org.openstack4j.api.OSClient; import org.openstack4j.model.compute.Server; import org.springframework.stereotype.Component; import com.sequenceiq.cloudbreak.cloud.model.CloudInstanceMetaData; @Component("cloudInstanceMetadataExtractor") public class PortOrComputeApiMetadataExtractor implements CloudInstanceMetaDataExtractor { @Inject private PortApiExtractor portApiExtractor; @Inject private ComputeApiExtractor computeApiExtractor; @Override public CloudInstanceMetaData extractMetadata(OSClient client, Server server, String instanceId) { if (server.getAddresses().getAddresses().isEmpty()) { return portApiExtractor.extractMetadata(client, server, instanceId); } else { return computeApiExtractor.extractMetadata(client, server, instanceId); } } }