package com.sequenceiq.cloudbreak.converter.spi; import static com.sequenceiq.cloudbreak.cloud.model.Platform.platform; import java.util.Collections; import java.util.Map; import javax.inject.Inject; import org.springframework.stereotype.Component; import com.sequenceiq.cloudbreak.cloud.model.CloudCredential; import com.sequenceiq.cloudbreak.domain.Credential; import com.sequenceiq.cloudbreak.domain.json.Json; import com.sequenceiq.cloudbreak.service.stack.resource.definition.credential.CredentialDefinitionService; @Component public class CredentialToCloudCredentialConverter { private static final String CREDENTIAL_ID = "id"; @Inject private CredentialDefinitionService definitionService; public CloudCredential convert(Credential credential) { if (credential == null) { return null; } Json attributes = credential.getAttributes(); Map<String, Object> fields = attributes == null ? Collections.emptyMap() : attributes.getMap(); fields = definitionService.revertProperties(platform(credential.cloudPlatform()), fields); fields.put(CREDENTIAL_ID, credential.getId()); return new CloudCredential(credential.getId(), credential.getName(), credential.getPublicKey(), credential.getLoginUserName(), fields); } }