package org.opentosca.csarrepo.service; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.opentosca.csarrepo.exception.PersistenceException; import org.opentosca.csarrepo.model.CsarFile; import org.opentosca.csarrepo.model.WineryServer; import org.opentosca.csarrepo.model.repository.CsarFileRepository; import org.opentosca.csarrepo.model.repository.WineryServerRepository; import org.opentosca.csarrepo.util.WineryApiClient; public class ExportToWineryService extends AbstractService { private boolean succeded = false; private static final Logger LOGGER = LogManager.getLogger(ExportToWineryService.class); public ExportToWineryService(long userId, long wineryId, long fileId) { super(userId); CsarFile csarFile = null; WineryServer wineryServer = null; // load and validate file CsarFileRepository csarFileRepo = new CsarFileRepository(); try { csarFile = csarFileRepo.getbyId(fileId); } catch (PersistenceException e) { this.addError("loading file info failed"); } // load and validate winery server WineryServerRepository wineryServerRepo = new WineryServerRepository(); try { wineryServer = wineryServerRepo.getbyId(wineryId); } catch (PersistenceException e) { this.addError("loading winery failed"); } if (this.hasErrors()) { // validation errors --> return return; } // winery and csar file exist --> upload WineryApiClient client = new WineryApiClient(wineryServer.getAddress()); try { client.uploadToWinery(csarFile); this.succeded = true; } catch (Exception e) { this.addError("Upload failed"); this.addError(e.getMessage()); LOGGER.error("Failed to push to winery"); } } public boolean getResult() { this.logInvalidResultAccess("getReult"); return this.succeded; } }