package com.sequenceiq.cloudbreak.cloud.openstack.auth;
import javax.inject.Inject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import com.sequenceiq.cloudbreak.cloud.Authenticator;
import com.sequenceiq.cloudbreak.cloud.context.AuthenticatedContext;
import com.sequenceiq.cloudbreak.cloud.context.CloudContext;
import com.sequenceiq.cloudbreak.cloud.model.CloudCredential;
import com.sequenceiq.cloudbreak.cloud.model.Platform;
import com.sequenceiq.cloudbreak.cloud.model.Variant;
import com.sequenceiq.cloudbreak.cloud.openstack.common.OpenStackConstants;
@Service
public class OpenStackAuthenticator implements Authenticator {
private static final Logger LOGGER = LoggerFactory.getLogger(OpenStackAuthenticator.class);
@Inject
private OpenStackClient openStackClient;
@Override
public Platform platform() {
return OpenStackConstants.OPENSTACK_PLATFORM;
}
@Override
public Variant variant() {
return Variant.EMPTY;
}
@Override
public AuthenticatedContext authenticate(CloudContext cloudContext, CloudCredential cloudCredential) {
LOGGER.info("Authenticating to openstack ...");
return openStackClient.createAuthenticatedContext(cloudContext, cloudCredential);
}
}