package com.sequenceiq.cloudbreak.cloud.azure; import java.util.Map; import javax.inject.Inject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import com.sequenceiq.cloudbreak.cloud.CredentialConnector; import com.sequenceiq.cloudbreak.cloud.azure.client.AzureClient; import com.sequenceiq.cloudbreak.cloud.context.AuthenticatedContext; import com.sequenceiq.cloudbreak.cloud.context.CloudContext; import com.sequenceiq.cloudbreak.cloud.credential.CredentialNotifier; import com.sequenceiq.cloudbreak.cloud.model.CloudCredentialStatus; import com.sequenceiq.cloudbreak.cloud.model.CredentialStatus; import com.sequenceiq.cloudbreak.cloud.model.ExtendedCloudCredential; @Service public class AzureCredentialConnector implements CredentialConnector { private static final Logger LOGGER = LoggerFactory.getLogger(AzureCredentialConnector.class); @Inject private AzureInteractiveLogin azureInteractiveLogin; @Override public CloudCredentialStatus verify(AuthenticatedContext authenticatedContext) { try { AzureClient client = authenticatedContext.getParameter(AzureClient.class); client.getStorageAccounts().list(); } catch (Exception e) { LOGGER.error(e.getMessage(), e); return new CloudCredentialStatus(authenticatedContext.getCloudCredential(), CredentialStatus.FAILED, e, e.getMessage()); } return new CloudCredentialStatus(authenticatedContext.getCloudCredential(), CredentialStatus.VERIFIED); } @Override public CloudCredentialStatus create(AuthenticatedContext authenticatedContext) { return new CloudCredentialStatus(authenticatedContext.getCloudCredential(), CredentialStatus.CREATED); } @Override public Map<String, String> interactiveLogin(CloudContext cloudContext, ExtendedCloudCredential extendedCloudCredential, CredentialNotifier credentialNotifier) { return azureInteractiveLogin.login(cloudContext, extendedCloudCredential, credentialNotifier); } @Override public CloudCredentialStatus delete(AuthenticatedContext authenticatedContext) { return new CloudCredentialStatus(authenticatedContext.getCloudCredential(), CredentialStatus.DELETED); } }