package water.api; import static water.util.FSUtils.isHdfs; import static water.util.FSUtils.isS3N; import java.io.File; import java.io.IOException; import hex.glm.GLMModel; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import water.*; import water.persist.PersistHdfs; import water.serial.Model2FileBinarySerializer; import water.serial.Model2HDFSBinarySerializer; import water.util.FSUtils; /** * Created by amy on 12/5/14. */ public class DeleteHDFSDir extends Func{ static final int API_WEAVER = 1; static public DocGen.FieldDoc[] DOC_FIELDS; @API(help = "Path of directory in HDFS to be removed.", required = true, filter = Default.class, json=true, gridable = false) String path; @Override protected void execImpl() { if (isHdfs(path)) deleteHDFSDir(); } private void deleteHDFSDir() { if (FSUtils.isBareS3NBucketWithoutTrailingSlash(path)) { path += "/"; } Path parentDir = new Path(path); try { FileSystem fs = FileSystem.get(parentDir.toUri(), PersistHdfs.CONF); fs.delete(parentDir); } catch( IOException e ) { throw new IllegalArgumentException("Cannot delete file " + path, e); } } }