
prerna.util.git.reactors.BrowseAssetReactor Maven / Gradle / Ivy
The newest version!
package prerna.util.git.reactors;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import prerna.reactor.AbstractReactor;
import prerna.sablecc2.om.PixelDataType;
import prerna.sablecc2.om.PixelOperationType;
import prerna.sablecc2.om.ReactorKeysEnum;
import prerna.sablecc2.om.nounmeta.NounMetadata;
import prerna.util.AssetUtility;
import prerna.util.Constants;
import prerna.util.Utility;
import prerna.util.git.GitAssetUtils;
public class BrowseAssetReactor extends AbstractReactor {
// pulls the latest for this project / asset
// the asset is basically the folder where it sits
// this can be used enroute in a pipeline
private static Logger classLogger = LogManager.getLogger(BrowseAssetReactor.class);
public BrowseAssetReactor() {
this.keysToGet = new String[] { ReactorKeysEnum.FILE_PATH.getKey(), ReactorKeysEnum.SPACE.getKey() };
}
@Override
public NounMetadata execute() {
organizeKeys();
String space = this.keyValue.get(this.keysToGet[1]);
String assetFolder = AssetUtility.getAssetBasePath(this.insight, space, false);
String replacer = "";
// specific folder to browse
String locFolder = assetFolder;
if (keyValue.containsKey(keysToGet[0])) {
locFolder = assetFolder + "/" + Utility.normalizePath( keyValue.get(keysToGet[0]));
locFolder = locFolder.replaceAll("\\\\", "/");
}
// set the context here
if(!keyValue.containsKey(keysToGet[0]) && space != null) {
try {
this.insight.setContext(space);
//if we have a chroot, mount the project for that user.
if (Boolean.parseBoolean(Utility.getDIHelperProperty(Constants.CHROOT_ENABLE))) {
//get the app_root folder for the project
this.insight.getUser().getUserSymlinkHelper().symlinkFolder(assetFolder);
}
} catch(IllegalArgumentException e) {
// ignore
}
}
File dirFile = new File(assetFolder + "/" + locFolder);
if(!dirFile.exists()) {
// if this file doesn't exist.. it has not been cloned yet. so clone and then go into it
cloneRepo(locFolder, assetFolder);
}
List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy