Search in sources :

Example 1 with ExternalLocationInfo

use of org.ovirt.engine.core.common.businessentities.ExternalLocationInfo in project ovirt-engine by oVirt.

the class LocationInfoHelper method prepareLocationInfoForVdsCommand.

public static Map<String, Object> prepareLocationInfoForVdsCommand(LocationInfo locationInfo) {
    if (locationInfo instanceof ExternalLocationInfo) {
        ExternalLocationInfo info = (ExternalLocationInfo) locationInfo;
        if (ConnectionMethod.HTTP.equals(info.getConnectionMethod())) {
            HttpLocationInfo httpInfo = (HttpLocationInfo) info;
            Map<String, Object> infoMap = new HashMap<>();
            infoMap.put("method", "http");
            infoMap.put("url", httpInfo.getUrl());
            infoMap.put("headers", httpInfo.getHeaders());
            return infoMap;
        }
    }
    if (locationInfo instanceof VdsmImageLocationInfo) {
        VdsmImageLocationInfo info = (VdsmImageLocationInfo) locationInfo;
        Map<String, Object> infoMap = new HashMap<>();
        infoMap.put("endpoint_type", "div");
        infoMap.put("sd_id", info.getStorageDomainId().toString());
        infoMap.put("img_id", info.getImageGroupId().toString());
        infoMap.put("vol_id", info.getImageId().toString());
        if (info.getGeneration() != null) {
            infoMap.put("generation", info.getGeneration());
        }
        return infoMap;
    }
    throw new RuntimeException("Unsupported location info");
}
Also used : HashMap(java.util.HashMap) HttpLocationInfo(org.ovirt.engine.core.common.businessentities.HttpLocationInfo) ExternalLocationInfo(org.ovirt.engine.core.common.businessentities.ExternalLocationInfo) VdsmImageLocationInfo(org.ovirt.engine.core.common.businessentities.VdsmImageLocationInfo)

Aggregations

HashMap (java.util.HashMap)1 ExternalLocationInfo (org.ovirt.engine.core.common.businessentities.ExternalLocationInfo)1 HttpLocationInfo (org.ovirt.engine.core.common.businessentities.HttpLocationInfo)1 VdsmImageLocationInfo (org.ovirt.engine.core.common.businessentities.VdsmImageLocationInfo)1