All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.meridor.perspective.openstack.BaseInstanceOperation Maven / Gradle / Ivy

There is a newer version: 1.3.4.1
Show newest version
package org.meridor.perspective.openstack;

import org.meridor.perspective.backend.storage.ProjectsAware;
import org.meridor.perspective.beans.Instance;
import org.meridor.perspective.beans.MetadataKey;
import org.meridor.perspective.beans.Project;
import org.meridor.perspective.config.Cloud;
import org.meridor.perspective.worker.operation.AbstractInstanceOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public abstract class BaseInstanceOperation extends AbstractInstanceOperation {

    @Autowired
    private ApiProvider apiProvider;

    @Autowired
    private ProjectsAware projectsAware;

    @Override
    protected Api getApi(Cloud cloud, Instance instance) {
        String region = instance.getMetadata().get(MetadataKey.REGION);
        if (region == null) {
            Project project = projectsAware.getProject(instance.getProjectId()).get();
            region = project.getMetadata().get(MetadataKey.REGION);
        }
        return apiProvider.getApi(cloud, region);
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy