package com.sequenceiq.cloudbreak.cloud.mock; import java.util.Arrays; import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import com.mashape.unirest.http.Unirest; import com.mashape.unirest.http.exceptions.UnirestException; import com.sequenceiq.cloudbreak.cloud.MetadataCollector; import com.sequenceiq.cloudbreak.cloud.context.AuthenticatedContext; import com.sequenceiq.cloudbreak.cloud.model.CloudInstance; import com.sequenceiq.cloudbreak.cloud.model.CloudResource; import com.sequenceiq.cloudbreak.cloud.model.CloudVmMetaDataStatus; @Service public class MockMetadataCollector implements MetadataCollector { private static final Logger LOGGER = LoggerFactory.getLogger(MockMetadataCollector.class); @Value("${mock.spi.endpoint:https://localhost:9443}") private String mockServerAddress; @Override public List<CloudVmMetaDataStatus> collect(AuthenticatedContext authenticatedContext, List<CloudResource> resources, List<CloudInstance> vms) { try { LOGGER.info("collect metadata from mock spi, server address: " + mockServerAddress); CloudVmMetaDataStatus[] response = Unirest.post(mockServerAddress + "/spi/cloud_metadata_statuses") .body(vms) .asObject(CloudVmMetaDataStatus[].class).getBody(); return Arrays.asList(response); } catch (UnirestException e) { throw new RuntimeException("can't convert to object", e); } } }