Revert "AMBARI-15829. Files View: Extract the directory viewer UI component so that other views can use it. (dipayanb)"
This reverts commit 281307fceb533c1a557d9972991263546288bb41. Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/6f340ec2 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/6f340ec2 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/6f340ec2 Branch: refs/heads/trunk Commit: 6f340ec2d93332dd7ba6459dbb8f552effa22f5f Parents: f903d17 Author: Alex Antonenko <[email protected]> Authored: Wed Apr 13 16:33:02 2016 +0300 Committer: Alex Antonenko <[email protected]> Committed: Wed Apr 13 16:33:34 2016 +0300 ---------------------------------------------------------------------- contrib/views/commons/README.md | 84 ---- contrib/views/commons/pom.xml | 140 ------ .../MisconfigurationFormattedException.java | 43 -- .../exceptions/NotFoundFormattedException.java | 27 -- .../exceptions/ServiceFormattedException.java | 57 --- .../view/commons/hdfs/FileOperationService.java | 479 ------------------ .../ambari/view/commons/hdfs/HdfsService.java | 160 ------ .../ambari/view/commons/hdfs/UploadService.java | 138 ------ .../ambari/view/commons/hdfs/UserService.java | 106 ---- .../resources/ui/hdfs-directory-viewer/.bowerrc | 4 - .../ui/hdfs-directory-viewer/.editorconfig | 34 -- .../ui/hdfs-directory-viewer/.ember-cli | 27 -- .../ui/hdfs-directory-viewer/.gitignore | 17 - .../ui/hdfs-directory-viewer/.jshintrc | 32 -- .../ui/hdfs-directory-viewer/.npmignore | 30 -- .../ui/hdfs-directory-viewer/.travis.yml | 50 -- .../ui/hdfs-directory-viewer/.watchmanconfig | 21 - .../ui/hdfs-directory-viewer/LICENSE.md | 28 -- .../ui/hdfs-directory-viewer/README.md | 97 ---- .../ui/hdfs-directory-viewer/addon/.gitkeep | 0 .../addon/components/directory-viewer.js | 196 -------- .../templates/components/directory-viewer.hbs | 18 - .../addon/utils/viewer-config.js | 59 --- .../ui/hdfs-directory-viewer/app/.gitkeep | 0 .../app/components/directory-viewer.js | 19 - .../app/utils/viewer-config.js | 19 - .../ui/hdfs-directory-viewer/bower.json | 19 - .../hdfs-directory-viewer/config/ember-try.js | 54 --- .../hdfs-directory-viewer/config/environment.js | 24 - .../ui/hdfs-directory-viewer/ember-cli-build.js | 36 -- .../resources/ui/hdfs-directory-viewer/index.js | 32 -- .../ui/hdfs-directory-viewer/package.json | 51 -- .../ui/hdfs-directory-viewer/testem.json | 12 - .../ui/hdfs-directory-viewer/tests/.jshintrc | 52 -- .../tests/dummy/app/app.js | 36 -- .../tests/dummy/app/components/.gitkeep | 0 .../tests/dummy/app/controllers/.gitkeep | 0 .../tests/dummy/app/controllers/application.js | 32 -- .../tests/dummy/app/helpers/.gitkeep | 0 .../tests/dummy/app/index.html | 43 -- .../tests/dummy/app/models/.gitkeep | 0 .../tests/dummy/app/router.js | 29 -- .../tests/dummy/app/routes/.gitkeep | 0 .../tests/dummy/app/styles/app.css | 23 - .../tests/dummy/app/templates/application.hbs | 36 -- .../dummy/app/templates/components/.gitkeep | 0 .../tests/dummy/app/utils/my-viewer-config.js | 35 -- .../tests/dummy/config/environment.js | 65 --- .../tests/dummy/public/crossdomain.xml | 15 - .../tests/dummy/public/robots.txt | 3 - .../tests/helpers/destroy-app.js | 23 - .../tests/helpers/module-for-acceptance.js | 41 -- .../tests/helpers/resolver.js | 29 -- .../tests/helpers/start-app.js | 36 -- .../ui/hdfs-directory-viewer/tests/index.html | 52 -- .../tests/integration/.gitkeep | 0 .../hdfs-directory-viewer/tests/test-helper.js | 24 - .../hdfs-directory-viewer/tests/unit/.gitkeep | 0 .../ui/hdfs-directory-viewer/vendor/.gitkeep | 0 contrib/views/files/pom.xml | 5 - .../view/filebrowser/DownloadService.java | 8 +- .../view/filebrowser/FileBrowserService.java | 13 +- .../view/filebrowser/FileOperationService.java | 484 +++++++++++++++++++ .../view/filebrowser/FilePreviewService.java | 7 +- .../ambari/view/filebrowser/HdfsService.java | 160 ++++++ .../ambari/view/filebrowser/HelpService.java | 67 ++- .../ambari/view/filebrowser/UploadService.java | 137 ++++++ .../MisconfigurationFormattedException.java | 43 ++ .../utils/NotFoundFormattedException.java | 27 ++ .../utils/ServiceFormattedException.java | 57 +++ .../resources/ui/app/services/file-operation.js | 4 +- .../files/src/main/resources/ui/package.json | 5 - .../view/filebrowser/FilebrowserTest.java | 1 - contrib/views/pom.xml | 1 - 74 files changed, 985 insertions(+), 2721 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/6f340ec2/contrib/views/commons/README.md ---------------------------------------------------------------------- diff --git a/contrib/views/commons/README.md b/contrib/views/commons/README.md deleted file mode 100644 index b956fbd..0000000 --- a/contrib/views/commons/README.md +++ /dev/null @@ -1,84 +0,0 @@ -<!--- -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. ---> - -#Ambari Views Commons Module - -Have this as a dependency in the view which need the functionality. - -This has common code for: - -* HDFS access - -**Note: More to be added later** - -### How to Include it in dependant project - -In the service class for the project use `commons` projects code in the way described in the below example for `files` view. - -```java -package org.apache.ambari.view.filebrowser; - -import javax.ws.rs.Path; - -import org.apache.ambari.view.ViewContext; - -import com.google.inject.Inject; -import org.apache.ambari.view.commons.hdfs.FileOperationService; -import org.apache.ambari.view.commons.hdfs.UploadService; -import org.apache.ambari.view.commons.hdfs.UserService; - -/** - * Root files service - */ -public class FileBrowserService { - - @Inject - ViewContext context; - - /** - * @see UploadService - * @return service - */ - @Path("/upload") - public UploadService upload() { - return new UploadService(context); - } - - /** - * @see org.apache.ambari.view.commons.hdfs.FileOperationService - * @return service - */ - @Path("/fileops") - public FileOperationService fileOps() { - return new FileOperationService(context); - } - - /** - * @see org.apache.ambari.view.commons.hdfs.UserService - * @return service - */ - @Path("/user") - public UserService userService() { return new UserService(context); } - -} -``` - - -####Also, look into the various ember addons that are included in `src/main/resources/ui`. -Currently we have: - -* hdfs-directory-viewer - -**More to be added later** \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ambari/blob/6f340ec2/contrib/views/commons/pom.xml ---------------------------------------------------------------------- diff --git a/contrib/views/commons/pom.xml b/contrib/views/commons/pom.xml deleted file mode 100644 index 5018d46..0000000 --- a/contrib/views/commons/pom.xml +++ /dev/null @@ -1,140 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> - -<project xmlns="http://maven.apache.org/POM/4.0.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - - <modelVersion>4.0.0</modelVersion> - <artifactId>ambari-views-commons</artifactId> - <version>2.0.0.0-SNAPSHOT</version> - <name>Ambari View Commons</name> - - <parent> - <artifactId>ambari-contrib-views</artifactId> - <groupId>org.apache.ambari.contrib.views</groupId> - <version>2.0.0.0-SNAPSHOT</version> - </parent> - - <dependencies> - <dependency> - <groupId>org.apache.ambari.contrib.views</groupId> - <artifactId>ambari-views-utils</artifactId> - <version>2.0.0.0-SNAPSHOT</version> - </dependency> - - <dependency> - <groupId>org.apache.ambari</groupId> - <artifactId>ambari-views</artifactId> - <scope>provided</scope> - </dependency> - - <dependency> - <groupId>org.apache.hadoop</groupId> - <artifactId>hadoop-hdfs</artifactId> - <version>${hadoop.version}</version> - <exclusions> - <exclusion> - <groupId>tomcat</groupId> - <artifactId>jasper-runtime</artifactId> - </exclusion> - </exclusions> - </dependency> - - <dependency> - <groupId>org.apache.hadoop</groupId> - <artifactId>hadoop-common</artifactId> - <version>${hadoop.version}</version> - <exclusions> - <exclusion> - <groupId>tomcat</groupId> - <artifactId>jasper-runtime</artifactId> - </exclusion> - </exclusions> - </dependency> - - <dependency> - <groupId>com.google.inject</groupId> - <artifactId>guice</artifactId> - </dependency> - - <dependency> - <groupId>com.googlecode.json-simple</groupId> - <artifactId>json-simple</artifactId> - </dependency> - - <dependency> - <groupId>com.sun.jersey.contribs</groupId> - <artifactId>jersey-multipart</artifactId> - </dependency> - - <dependency> - <groupId>org.glassfish.jersey.containers</groupId> - <artifactId>jersey-container-servlet</artifactId> - <scope>provided</scope> - </dependency> - - <dependency> - <groupId>commons-io</groupId> - <artifactId>commons-io</artifactId> - <version>2.4</version> - </dependency> - - <!-- Testing --> - <dependency> - <groupId>com.sun.jersey.jersey-test-framework</groupId> - <artifactId>jersey-test-framework-core</artifactId> - <scope>test</scope> - </dependency> - - <dependency> - <groupId>org.apache.hadoop</groupId> - <artifactId>hadoop-minicluster</artifactId> - <version>${hadoop.version}</version> - <scope>test</scope> - </dependency> - - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <scope>test</scope> - </dependency> - - <dependency> - <groupId>org.easymock</groupId> - <artifactId>easymock</artifactId> - <scope>test</scope> - </dependency> - </dependencies> - - <build> - <resources> - <resource> - <directory>src/main/resources/</directory> - <filtering>false</filtering> - <excludes> - <exclude>ui/**</exclude> - </excludes> - </resource> - </resources> - </build> - - <properties> - <ambari.dir>${project.parent.parent.parent.basedir}</ambari.dir> - </properties> -</project> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ambari/blob/6f340ec2/contrib/views/commons/src/main/java/org/apache/ambari/view/commons/exceptions/MisconfigurationFormattedException.java ---------------------------------------------------------------------- diff --git a/contrib/views/commons/src/main/java/org/apache/ambari/view/commons/exceptions/MisconfigurationFormattedException.java b/contrib/views/commons/src/main/java/org/apache/ambari/view/commons/exceptions/MisconfigurationFormattedException.java deleted file mode 100644 index b7ce938..0000000 --- a/contrib/views/commons/src/main/java/org/apache/ambari/view/commons/exceptions/MisconfigurationFormattedException.java +++ /dev/null @@ -1,43 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ambari.view.commons.exceptions; - -import org.json.simple.JSONObject; - -import javax.ws.rs.WebApplicationException; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import java.util.HashMap; - -public class MisconfigurationFormattedException extends WebApplicationException { - private final static int STATUS = 500; - private final static String message = "Parameter \"%s\" is set to null"; - - public MisconfigurationFormattedException(String name) { - super(errorEntity(name)); - } - - protected static Response errorEntity(String name) { - HashMap<String, Object> response = new HashMap<String, Object>(); - response.put("message", String.format(message, name)); - response.put("trace", null); - response.put("status", STATUS); - return Response.status(STATUS).entity(new JSONObject(response)).type(MediaType.APPLICATION_JSON).build(); - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/6f340ec2/contrib/views/commons/src/main/java/org/apache/ambari/view/commons/exceptions/NotFoundFormattedException.java ---------------------------------------------------------------------- diff --git a/contrib/views/commons/src/main/java/org/apache/ambari/view/commons/exceptions/NotFoundFormattedException.java b/contrib/views/commons/src/main/java/org/apache/ambari/view/commons/exceptions/NotFoundFormattedException.java deleted file mode 100644 index a8c51f7..0000000 --- a/contrib/views/commons/src/main/java/org/apache/ambari/view/commons/exceptions/NotFoundFormattedException.java +++ /dev/null @@ -1,27 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ambari.view.commons.exceptions; - -public class NotFoundFormattedException extends ServiceFormattedException { - private final static int STATUS = 404; - - public NotFoundFormattedException(String message, Throwable exception) { - super(message, exception, STATUS); - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/6f340ec2/contrib/views/commons/src/main/java/org/apache/ambari/view/commons/exceptions/ServiceFormattedException.java ---------------------------------------------------------------------- diff --git a/contrib/views/commons/src/main/java/org/apache/ambari/view/commons/exceptions/ServiceFormattedException.java b/contrib/views/commons/src/main/java/org/apache/ambari/view/commons/exceptions/ServiceFormattedException.java deleted file mode 100644 index bb77404..0000000 --- a/contrib/views/commons/src/main/java/org/apache/ambari/view/commons/exceptions/ServiceFormattedException.java +++ /dev/null @@ -1,57 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ambari.view.commons.exceptions; - -import org.apache.commons.lang.exception.ExceptionUtils; -import org.json.simple.JSONObject; - -import javax.ws.rs.WebApplicationException; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import java.security.AccessControlException; -import java.util.HashMap; - -public class ServiceFormattedException extends WebApplicationException { - public ServiceFormattedException(String message, Throwable exception) { - super(errorEntity(message, exception, suggestStatus(exception))); - } - - public ServiceFormattedException(String message, Throwable exception, int status) { - super(errorEntity(message, exception, status)); - } - - private static int suggestStatus(Throwable exception) { - int status = 500; - if (exception instanceof AccessControlException) { - status = 403; - } - return status; - } - - protected static Response errorEntity(String message, Throwable e, int status) { - HashMap<String, Object> response = new HashMap<String, Object>(); - response.put("message", message); - String trace = null; - if (e != null) - trace = ExceptionUtils.getStackTrace(e); - response.put("trace", trace); - response.put("status", status); - return Response.status(status).entity(new JSONObject(response)).type(MediaType.APPLICATION_JSON).build(); - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/6f340ec2/contrib/views/commons/src/main/java/org/apache/ambari/view/commons/hdfs/FileOperationService.java ---------------------------------------------------------------------- diff --git a/contrib/views/commons/src/main/java/org/apache/ambari/view/commons/hdfs/FileOperationService.java b/contrib/views/commons/src/main/java/org/apache/ambari/view/commons/hdfs/FileOperationService.java deleted file mode 100644 index bc3d11d..0000000 --- a/contrib/views/commons/src/main/java/org/apache/ambari/view/commons/hdfs/FileOperationService.java +++ /dev/null @@ -1,479 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ambari.view.commons.hdfs; - -import org.apache.ambari.view.ViewContext; -import org.apache.ambari.view.commons.exceptions.NotFoundFormattedException; -import org.apache.ambari.view.commons.exceptions.ServiceFormattedException; -import org.apache.ambari.view.utils.hdfs.HdfsApi; -import org.apache.ambari.view.utils.hdfs.HdfsApiException; -import org.json.simple.JSONObject; - -import javax.ws.rs.*; -import javax.ws.rs.core.*; -import javax.ws.rs.core.Response.ResponseBuilder; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.ListIterator; - -/** - * File operations service - */ -public class FileOperationService extends HdfsService { - - /** - * Constructor - * @param context View Context instance - */ - public FileOperationService(ViewContext context) { - super(context); - } - - /** - * List dir - * @param path path - * @return response with dir content - */ - @GET - @Path("/listdir") - @Produces(MediaType.APPLICATION_JSON) - public Response listdir(@QueryParam("path") String path) { - try { - JSONObject response = new JSONObject(); - response.put("files", getApi(context).fileStatusToJSON(getApi(context).listdir(path))); - response.put("meta", getApi(context).fileStatusToJSON(getApi(context).getFileStatus(path))); - return Response.ok(response).build(); - } catch (WebApplicationException ex) { - throw ex; - } catch (FileNotFoundException ex) { - throw new NotFoundFormattedException(ex.getMessage(), ex); - } catch (Exception ex) { - throw new ServiceFormattedException(ex.getMessage(), ex); - } - } - - /** - * Rename - * @param request rename request - * @return response with success - */ - @POST - @Path("/rename") - @Consumes(MediaType.APPLICATION_JSON) - @Produces(MediaType.APPLICATION_JSON) - public Response rename(final SrcDstFileRequest request) { - try { - HdfsApi api = getApi(context); - ResponseBuilder result; - if (api.rename(request.src, request.dst)) { - result = Response.ok(getApi(context).fileStatusToJSON(api - .getFileStatus(request.dst))); - } else { - result = Response.ok(new FileOperationResult(false, "Can't move '" + request.src + "' to '" + request.dst + "'")).status(422); - } - return result.build(); - } catch (WebApplicationException ex) { - throw ex; - } catch (Exception ex) { - throw new ServiceFormattedException(ex.getMessage(), ex); - } - } - - /** - * Chmod - * @param request chmod request - * @return response with success - */ - @POST - @Path("/chmod") - @Consumes(MediaType.APPLICATION_JSON) - @Produces(MediaType.APPLICATION_JSON) - public Response chmod(final ChmodRequest request) { - try { - HdfsApi api = getApi(context); - ResponseBuilder result; - if (api.chmod(request.path, request.mode)) { - result = Response.ok(getApi(context).fileStatusToJSON(api - .getFileStatus(request.path))); - } else { - result = Response.ok(new FileOperationResult(false, "Can't chmod '" + request.path + "'")).status(422); - } - return result.build(); - } catch (WebApplicationException ex) { - throw ex; - } catch (Exception ex) { - throw new ServiceFormattedException(ex.getMessage(), ex); - } - } - - /** - * Copy file - * @param request source and destination request - * @return response with success - */ - @POST - @Path("/move") - @Consumes(MediaType.APPLICATION_JSON) - @Produces(MediaType.APPLICATION_JSON) - public Response move(final MultiSrcDstFileRequest request, - @Context HttpHeaders headers, @Context UriInfo ui) { - try { - HdfsApi api = getApi(context); - ResponseBuilder result; - String message = ""; - - List<String> sources = request.sourcePaths; - String destination = request.destinationPath; - if(sources.isEmpty()) { - result = Response.ok(new FileOperationResult(false, "Can't move 0 file/folder to '" + destination + "'")). - status(422); - return result.build(); - } - - int index = 0; - for (String src : sources) { - String fileName = getFileName(src); - String finalDestination = getDestination(destination, fileName); - try { - if (api.rename(src, finalDestination)) { - index ++; - } else { - message = "Failed to move '" + src + "' to '" + finalDestination + "'"; - break; - } - } catch (IOException exception) { - message = exception.getMessage(); - logger.error("Failed to move '{}' to '{}'. Exception: {}", src, finalDestination, - exception.getMessage()); - break; - } - } - if (index == sources.size()) { - result = Response.ok(new FileOperationResult(true)).status(200); - } else { - FileOperationResult errorResult = getFailureFileOperationResult(sources, index, message); - result = Response.ok(errorResult).status(422); - } - return result.build(); - } catch (Exception ex) { - throw new ServiceFormattedException(ex.getMessage(), ex); - } - } - - /** - * Copy file - * @param request source and destination request - * @return response with success - */ - @POST - @Path("/copy") - @Consumes(MediaType.APPLICATION_JSON) - @Produces(MediaType.APPLICATION_JSON) - public Response copy(final MultiSrcDstFileRequest request, - @Context HttpHeaders headers, @Context UriInfo ui) { - try { - HdfsApi api = getApi(context); - ResponseBuilder result; - String message = ""; - - List<String> sources = request.sourcePaths; - String destination = request.destinationPath; - if(sources.isEmpty()) { - result = Response.ok(new FileOperationResult(false, "Can't copy 0 file/folder to '" + destination + "'")). - status(422); - return result.build(); - } - - int index = 0; - for (String src : sources) { - String fileName = getFileName(src); - String finalDestination = getDestination(destination, fileName); - try { - api.copy(src, finalDestination); - index ++; - } catch (IOException|HdfsApiException exception) { - message = exception.getMessage(); - logger.error("Failed to copy '{}' to '{}'. Exception: {}", src, finalDestination, - exception.getMessage()); - break; - } - } - if (index == sources.size()) { - result = Response.ok(new FileOperationResult(true)).status(200); - } else { - FileOperationResult errorResult = getFailureFileOperationResult(sources, index, message); - result = Response.ok(errorResult).status(422); - } - return result.build(); - } catch (Exception ex) { - throw new ServiceFormattedException(ex.getMessage(), ex); - } - } - - /** - * Make directory - * @param request make directory request - * @return response with success - */ - @PUT - @Path("/mkdir") - @Produces(MediaType.APPLICATION_JSON) - public Response mkdir(final MkdirRequest request) { - try{ - HdfsApi api = getApi(context); - ResponseBuilder result; - if (api.mkdir(request.path)) { - result = Response.ok(getApi(context).fileStatusToJSON(api.getFileStatus(request.path))); - } else { - result = Response.ok(new FileOperationResult(false, "Can't create dir '" + request.path + "'")).status(422); - } - return result.build(); - } catch (WebApplicationException ex) { - throw ex; - } catch (Exception ex) { - throw new ServiceFormattedException(ex.getMessage(), ex); - } - } - - /** - * Empty trash - * @return response with success - */ - @DELETE - @Path("/trash/emptyTrash") - @Produces(MediaType.APPLICATION_JSON) - public Response emptyTrash() { - try { - HdfsApi api = getApi(context); - api.emptyTrash(); - return Response.ok(new FileOperationResult(true)).build(); - } catch (WebApplicationException ex) { - throw ex; - } catch (Exception ex) { - throw new ServiceFormattedException(ex.getMessage(), ex); - } - } - - /** - * Move to trash - * @param request remove request - * @return response with success - */ - @DELETE - @Path("/moveToTrash") - @Consumes(MediaType.APPLICATION_JSON) - @Produces(MediaType.APPLICATION_JSON) - public Response moveToTrash(MultiRemoveRequest request) { - try { - ResponseBuilder result; - HdfsApi api = getApi(context); - String trash = api.getTrashDirPath(); - String message = ""; - - if (request.paths.size() == 0) { - result = Response.ok(new FileOperationResult(false, "No path entries provided.")).status(422); - } else { - if (!api.exists(trash)) { - if (!api.mkdir(trash)) { - result = Response.ok(new FileOperationResult(false, "Trash dir does not exists. Can't create dir for " + - "trash '" + trash + "'")).status(422); - return result.build(); - } - } - - int index = 0; - for (MultiRemoveRequest.PathEntry entry : request.paths) { - String trashFilePath = api.getTrashDirPath(entry.path); - try { - if (api.rename(entry.path, trashFilePath)) { - index ++; - } else { - message = "Failed to move '" + entry.path + "' to '" + trashFilePath + "'"; - break; - } - } catch (IOException exception) { - message = exception.getMessage(); - logger.error("Failed to move '{}' to '{}'. Exception: {}", entry.path, trashFilePath, - exception.getMessage()); - break; - } - } - if (index == request.paths.size()) { - result = Response.ok(new FileOperationResult(true)).status(200); - } else { - FileOperationResult errorResult = getFailureFileOperationResult(getPathsFromPathsEntries(request.paths), index, message); - result = Response.ok(errorResult).status(422); - } - } - return result.build(); - } catch (Exception ex) { - throw new ServiceFormattedException(ex.getMessage(), ex); - } - } - - /** - * Remove - * @param request remove request - * @return response with success - */ - @DELETE - @Path("/remove") - @Consumes(MediaType.APPLICATION_JSON) - @Produces(MediaType.APPLICATION_JSON) - public Response remove(MultiRemoveRequest request, @Context HttpHeaders headers, - @Context UriInfo ui) { - try { - HdfsApi api = getApi(context); - ResponseBuilder result; - String message = ""; - if(request.paths.size() == 0) { - result = Response.ok(new FileOperationResult(false, "No path entries provided.")); - } else { - int index = 0; - for (MultiRemoveRequest.PathEntry entry : request.paths) { - try { - if (api.delete(entry.path, entry.recursive)) { - index++; - } else { - message = "Failed to remove '" + entry.path + "'"; - break; - } - } catch (IOException exception) { - message = exception.getMessage(); - logger.error("Failed to remove '{}'. Exception: {}", entry.path, exception.getMessage()); - break; - } - - } - if (index == request.paths.size()) { - result = Response.ok(new FileOperationResult(true)).status(200); - } else { - FileOperationResult errorResult = getFailureFileOperationResult(getPathsFromPathsEntries(request.paths), index, message); - result = Response.ok(errorResult).status(422); - } - } - return result.build(); - } catch (Exception ex) { - throw new ServiceFormattedException(ex.getMessage(), ex); - } - } - - private List<String> getPathsFromPathsEntries(List<MultiRemoveRequest.PathEntry> paths) { - List<String> entries = new ArrayList<>(); - for(MultiRemoveRequest.PathEntry path: paths) { - entries.add(path.path); - } - return entries; - } - - private FileOperationResult getFailureFileOperationResult(List<String> paths, int failedIndex, String message) { - List<String> succeeded = new ArrayList<>(); - List<String> unprocessed = new ArrayList<>(); - List<String> failed = new ArrayList<>(); - ListIterator<String> iter = paths.listIterator(); - while (iter.hasNext()) { - int index = iter.nextIndex(); - String path = iter.next(); - if (index < failedIndex) { - succeeded.add(path); - } else if (index == failedIndex) { - failed.add(path); - } else { - unprocessed.add(path); - } - } - return new FileOperationResult(false, message, succeeded, failed, unprocessed); - } - - private String getDestination(String baseDestination, String fileName) { - if(baseDestination.endsWith("/")) { - return baseDestination + fileName; - } else { - return baseDestination + "/" + fileName; - } - } - - private String getFileName(String srcPath) { - return srcPath.substring(srcPath.lastIndexOf('/') + 1); - } - - - /** - * Wrapper for json mapping of mkdir request - */ - @XmlRootElement - public static class MkdirRequest { - @XmlElement(nillable = false, required = true) - public String path; - } - - /** - * Wrapper for json mapping of chmod request - */ - @XmlRootElement - public static class ChmodRequest { - @XmlElement(nillable = false, required = true) - public String path; - @XmlElement(nillable = false, required = true) - public String mode; - } - - /** - * Wrapper for json mapping of request with - * source and destination - */ - @XmlRootElement - public static class SrcDstFileRequest { - @XmlElement(nillable = false, required = true) - public String src; - @XmlElement(nillable = false, required = true) - public String dst; - } - - /** - * Wrapper for json mapping of request with multiple - * source and destination - */ - @XmlRootElement - public static class MultiSrcDstFileRequest { - @XmlElement(nillable = false, required = true) - public List<String> sourcePaths = new ArrayList<>(); - @XmlElement(nillable = false, required = true) - public String destinationPath; - } - - /** - * Wrapper for json mapping of remove request - */ - @XmlRootElement - public static class MultiRemoveRequest { - @XmlElement(nillable = false, required = true) - public List<PathEntry> paths = new ArrayList<>(); - public static class PathEntry { - @XmlElement(nillable = false, required = true) - public String path; - public boolean recursive; - } - - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/6f340ec2/contrib/views/commons/src/main/java/org/apache/ambari/view/commons/hdfs/HdfsService.java ---------------------------------------------------------------------- diff --git a/contrib/views/commons/src/main/java/org/apache/ambari/view/commons/hdfs/HdfsService.java b/contrib/views/commons/src/main/java/org/apache/ambari/view/commons/hdfs/HdfsService.java deleted file mode 100644 index 91eebcf..0000000 --- a/contrib/views/commons/src/main/java/org/apache/ambari/view/commons/hdfs/HdfsService.java +++ /dev/null @@ -1,160 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ambari.view.commons.hdfs; - -import javax.ws.rs.WebApplicationException; -import javax.xml.bind.annotation.XmlRootElement; - -import org.apache.ambari.view.ViewContext; -import org.apache.ambari.view.commons.exceptions.ServiceFormattedException; -import org.apache.ambari.view.utils.hdfs.HdfsApi; -import org.apache.ambari.view.utils.hdfs.HdfsUtil; -import org.apache.hadoop.security.UserGroupInformation; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.IOException; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * Base Hdfs service - */ -public abstract class HdfsService { - - protected static final Logger logger = LoggerFactory.getLogger(HdfsService.class); - - protected final ViewContext context; - - /** - * Constructor - * @param context View Context instance - */ - public HdfsService(ViewContext context) { - this.context = context; - } - - /** - * Wrapper for json mapping of result of Multi Remove Request - */ - @XmlRootElement - public static class FileOperationResult { - public boolean success; - public String message; - public List<String> succeeded; - public List<String> failed; - public List<String> unprocessed; - - public FileOperationResult(boolean success) { - this.success = success; - } - - public FileOperationResult(boolean success, String message) { - this(success); - this.message = message; - } - - public FileOperationResult(boolean success, String message, List<String> succeeded, List<String> failed, List<String> unprocessed) { - this(success, message); - this.succeeded = succeeded; - this.failed = failed; - this.unprocessed = unprocessed; - } - - } - - private HdfsApi _api = null; - - /** - * Ger HdfsApi instance - * @param context View Context instance - * @return HdfsApi business delegate - */ - public HdfsApi getApi(ViewContext context) { - if (_api == null) { - try { - _api = HdfsUtil.connectToHDFSApi(context); - } catch (Exception ex) { - throw new ServiceFormattedException("HdfsApi connection failed. Check \"webhdfs.url\" property", ex); - } - } - return _api; - } - - private static Map<String, String> getHdfsAuthParams(ViewContext context) { - String auth = context.getProperties().get("webhdfs.auth"); - Map<String, String> params = new HashMap<String, String>(); - if (auth == null || auth.isEmpty()) { - auth = "auth=SIMPLE"; - } - for(String param : auth.split(";")) { - String[] keyvalue = param.split("="); - if (keyvalue.length != 2) { - logger.error("Can not parse authentication param " + param + " in " + auth); - continue; - } - params.put(keyvalue[0], keyvalue[1]); - } - return params; - } - - /** - * Get doAs username to use in HDFS - * @param context View Context instance - * @return user name - */ - public String getDoAsUsername(ViewContext context) { - String username = context.getProperties().get("webhdfs.username"); - if (username == null || username.isEmpty()) - username = context.getUsername(); - return username; - } - - /** - * Checks connection to HDFS - * @param context View Context - */ - public static void hdfsSmokeTest(ViewContext context) { - try { - HdfsApi api = HdfsUtil.connectToHDFSApi(context); - api.getStatus(); - } catch (WebApplicationException ex) { - throw ex; - } catch (Exception ex) { - throw new ServiceFormattedException(ex.getMessage(), ex); - } - } - - /** - * Get proxyuser username to use in HDFS - * @param context View Context instance - * @return user name - */ - public String getRealUsername(ViewContext context) { - String username = context.getProperties().get("webhdfs.proxyuser"); - if (username == null || username.isEmpty()) - try { - username = UserGroupInformation.getCurrentUser().getShortUserName(); - } catch (IOException e) { - throw new ServiceFormattedException("HdfsApi connection failed. Can't get current user", e); - } - return username; - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/6f340ec2/contrib/views/commons/src/main/java/org/apache/ambari/view/commons/hdfs/UploadService.java ---------------------------------------------------------------------- diff --git a/contrib/views/commons/src/main/java/org/apache/ambari/view/commons/hdfs/UploadService.java b/contrib/views/commons/src/main/java/org/apache/ambari/view/commons/hdfs/UploadService.java deleted file mode 100644 index 97253ad..0000000 --- a/contrib/views/commons/src/main/java/org/apache/ambari/view/commons/hdfs/UploadService.java +++ /dev/null @@ -1,138 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ambari.view.commons.hdfs; - -import java.io.IOException; -import java.io.InputStream; -import java.util.zip.ZipEntry; -import java.util.zip.ZipInputStream; - -import javax.ws.rs.*; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; - -import org.apache.ambari.view.ViewContext; -import org.apache.ambari.view.commons.exceptions.ServiceFormattedException; -import org.apache.ambari.view.commons.hdfs.HdfsService; -import org.apache.ambari.view.utils.hdfs.HdfsApi; -import org.apache.hadoop.fs.FSDataOutputStream; - -import com.sun.jersey.core.header.FormDataContentDisposition; -import com.sun.jersey.multipart.FormDataParam; - -/** - * Upload service - */ -public class UploadService extends HdfsService { - - /** - * Constructor - * @param context View Context instance - */ - public UploadService(ViewContext context) { - super(context); - } - - private void uploadFile(final String filePath, InputStream uploadedInputStream) - throws IOException, InterruptedException { - int read; - byte[] chunk = new byte[1024]; - FSDataOutputStream out = null; - try { - out = getApi(context).create(filePath, false); - while ((read = uploadedInputStream.read(chunk)) != -1) { - out.write(chunk, 0, read); - } - } finally { - if (out != null) { - out.close(); - } - } - } - - /** - * Upload file - * @param uploadedInputStream file input stream - * @param contentDisposition content disposition - * @param path path - * @return file status - */ - @PUT - @Consumes(MediaType.MULTIPART_FORM_DATA) - @Produces(MediaType.APPLICATION_JSON) - public Response uploadFile( - @FormDataParam("file") InputStream uploadedInputStream, - @FormDataParam("file") FormDataContentDisposition contentDisposition, - @FormDataParam("path") String path) { - try { - if (!path.endsWith("/")) - path = path + "/"; - String filePath = path + contentDisposition.getFileName(); - uploadFile(filePath, uploadedInputStream); - return Response.ok( - getApi(context).fileStatusToJSON(getApi(context).getFileStatus(filePath))) - .build(); - } catch (WebApplicationException ex) { - throw ex; - } catch (Exception ex) { - throw new ServiceFormattedException(ex.getMessage(), ex); - } - } - - /** - * Upload zip and unpack - * @param uploadedInputStream file input stream - * @param contentDisposition content disposition - * @param path path - * @return files statuses - * @throws IOException - * @throws Exception - */ - @PUT - @Path("/zip") - @Consumes(MediaType.MULTIPART_FORM_DATA) - @Produces(MediaType.APPLICATION_JSON) - public Response uploadZip( - @FormDataParam("file") InputStream uploadedInputStream, - @FormDataParam("file") FormDataContentDisposition contentDisposition, - @FormDataParam("path") String path) { - try { - if (!path.endsWith("/")) - path = path + "/"; - ZipInputStream zip = new ZipInputStream(uploadedInputStream); - ZipEntry ze = zip.getNextEntry(); - HdfsApi api = getApi(context); - while (ze != null) { - String filePath = path + ze.getName(); - if (ze.isDirectory()) { - api.mkdir(filePath); - } else { - uploadFile(filePath, zip); - } - ze = zip.getNextEntry(); - } - return Response.ok(getApi(context).fileStatusToJSON(api.listdir(path))).build(); - } catch (WebApplicationException ex) { - throw ex; - } catch (Exception ex) { - throw new ServiceFormattedException(ex.getMessage(), ex); - } - } - -} http://git-wip-us.apache.org/repos/asf/ambari/blob/6f340ec2/contrib/views/commons/src/main/java/org/apache/ambari/view/commons/hdfs/UserService.java ---------------------------------------------------------------------- diff --git a/contrib/views/commons/src/main/java/org/apache/ambari/view/commons/hdfs/UserService.java b/contrib/views/commons/src/main/java/org/apache/ambari/view/commons/hdfs/UserService.java deleted file mode 100644 index dc303ce..0000000 --- a/contrib/views/commons/src/main/java/org/apache/ambari/view/commons/hdfs/UserService.java +++ /dev/null @@ -1,106 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ambari.view.commons.hdfs; - -import org.apache.ambari.view.ViewContext; -import org.apache.ambari.view.commons.exceptions.NotFoundFormattedException; -import org.apache.ambari.view.commons.exceptions.ServiceFormattedException; -import org.apache.ambari.view.utils.hdfs.HdfsApi; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.WebApplicationException; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import java.io.FileNotFoundException; - -/** - * User related info service - */ -public class UserService extends HdfsService { - - /** - * Constructor - * @param context View Context instance - */ - public UserService(ViewContext context) { - super(context); - } - - /** - * Returns home directory - * @return home directory - */ - @GET - @Path("/home") - @Produces(MediaType.APPLICATION_JSON) - public Response homeDir() { - try { - HdfsApi api = getApi(context); - return Response - .ok(getApi(context).fileStatusToJSON(api.getFileStatus(api.getHomeDir() - .toString()))).build(); - } catch (WebApplicationException ex) { - throw ex; - } catch (Exception ex) { - throw new ServiceFormattedException(ex.getMessage(), ex); - } - } - - /** - * Is trash enabled - * @return is trash enabled - */ - @GET - @Path("/trash/enabled") - @Produces(MediaType.APPLICATION_JSON) - public Response trashEnabled() { - try { - HdfsApi api = getApi(context); - return Response.ok(new FileOperationResult(api.trashEnabled())).build(); - } catch (WebApplicationException ex) { - throw ex; - } catch (Exception ex) { - throw new ServiceFormattedException(ex.getMessage(), ex); - } - } - - /** - * Trash dir - * @return trash dir - */ - @GET - @Path("/trashDir") - @Produces(MediaType.APPLICATION_JSON) - public Response trashdir() { - try { - HdfsApi api = getApi(context); - return Response.ok( - getApi(context).fileStatusToJSON(api.getFileStatus(api.getTrashDir() - .toString()))).build(); - } catch (WebApplicationException ex) { - throw ex; - } catch (FileNotFoundException ex) { - throw new NotFoundFormattedException(ex.getMessage(), ex); - } catch (Exception ex) { - throw new ServiceFormattedException(ex.getMessage(), ex); - } - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/6f340ec2/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/.bowerrc ---------------------------------------------------------------------- diff --git a/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/.bowerrc b/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/.bowerrc deleted file mode 100644 index 959e169..0000000 --- a/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/.bowerrc +++ /dev/null @@ -1,4 +0,0 @@ -{ - "directory": "bower_components", - "analytics": false -} http://git-wip-us.apache.org/repos/asf/ambari/blob/6f340ec2/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/.editorconfig ---------------------------------------------------------------------- diff --git a/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/.editorconfig b/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/.editorconfig deleted file mode 100644 index 47c5438..0000000 --- a/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/.editorconfig +++ /dev/null @@ -1,34 +0,0 @@ -# EditorConfig helps developers define and maintain consistent -# coding styles between different editors and IDEs -# editorconfig.org - -root = true - - -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true -indent_style = space -indent_size = 2 - -[*.js] -indent_style = space -indent_size = 2 - -[*.hbs] -insert_final_newline = false -indent_style = space -indent_size = 2 - -[*.css] -indent_style = space -indent_size = 2 - -[*.html] -indent_style = space -indent_size = 2 - -[*.{diff,md}] -trim_trailing_whitespace = false http://git-wip-us.apache.org/repos/asf/ambari/blob/6f340ec2/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/.ember-cli ---------------------------------------------------------------------- diff --git a/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/.ember-cli b/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/.ember-cli deleted file mode 100644 index 5a339b9..0000000 --- a/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/.ember-cli +++ /dev/null @@ -1,27 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -{ - /** - Ember CLI sends analytics information by default. The data is completely - anonymous, but there are times when you might want to disable this behavior. - - Setting `disableAnalytics` to true will prevent any data from being sent. - */ - "disableAnalytics": false -} http://git-wip-us.apache.org/repos/asf/ambari/blob/6f340ec2/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/.gitignore ---------------------------------------------------------------------- diff --git a/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/.gitignore b/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/.gitignore deleted file mode 100644 index 86fceae..0000000 --- a/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/.gitignore +++ /dev/null @@ -1,17 +0,0 @@ -# See http://help.github.com/ignore-files/ for more about ignoring files. - -# compiled output -/dist -/tmp - -# dependencies -/node_modules -/bower_components - -# misc -/.sass-cache -/connect.lock -/coverage/* -/libpeerconnection.log -npm-debug.log -testem.log http://git-wip-us.apache.org/repos/asf/ambari/blob/6f340ec2/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/.jshintrc ---------------------------------------------------------------------- diff --git a/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/.jshintrc b/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/.jshintrc deleted file mode 100644 index 08096ef..0000000 --- a/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/.jshintrc +++ /dev/null @@ -1,32 +0,0 @@ -{ - "predef": [ - "document", - "window", - "-Promise" - ], - "browser": true, - "boss": true, - "curly": true, - "debug": false, - "devel": true, - "eqeqeq": true, - "evil": true, - "forin": false, - "immed": false, - "laxbreak": false, - "newcap": true, - "noarg": true, - "noempty": false, - "nonew": false, - "nomen": false, - "onevar": false, - "plusplus": false, - "regexp": false, - "undef": true, - "sub": true, - "strict": false, - "white": false, - "eqnull": true, - "esnext": true, - "unused": true -} http://git-wip-us.apache.org/repos/asf/ambari/blob/6f340ec2/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/.npmignore ---------------------------------------------------------------------- diff --git a/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/.npmignore b/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/.npmignore deleted file mode 100644 index fea9ccc..0000000 --- a/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/.npmignore +++ /dev/null @@ -1,30 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -bower_components/ -tests/ -tmp/ -dist/ - -.bowerrc -.editorconfig -.ember-cli -.travis.yml -.npmignore -**/.gitkeep -bower.json -Brocfile.js -testem.json http://git-wip-us.apache.org/repos/asf/ambari/blob/6f340ec2/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/.travis.yml ---------------------------------------------------------------------- diff --git a/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/.travis.yml b/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/.travis.yml deleted file mode 100644 index dbc0990..0000000 --- a/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/.travis.yml +++ /dev/null @@ -1,50 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - ---- -language: node_js -node_js: - - "0.12" - -sudo: false - -cache: - directories: - - node_modules - -env: - - EMBER_TRY_SCENARIO=default - - EMBER_TRY_SCENARIO=ember-release - - EMBER_TRY_SCENARIO=ember-beta - - EMBER_TRY_SCENARIO=ember-canary - -matrix: - fast_finish: true - allow_failures: - - env: EMBER_TRY_SCENARIO=ember-canary - -before_install: - - export PATH=/usr/local/phantomjs-2.0.0/bin:$PATH - - "npm config set spin false" - - "npm install -g npm@^2" - -install: - - npm install -g bower - - npm install - - bower install - -script: - - ember try $EMBER_TRY_SCENARIO test http://git-wip-us.apache.org/repos/asf/ambari/blob/6f340ec2/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/.watchmanconfig ---------------------------------------------------------------------- diff --git a/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/.watchmanconfig b/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/.watchmanconfig deleted file mode 100644 index 6ec27cc..0000000 --- a/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/.watchmanconfig +++ /dev/null @@ -1,21 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -{ - "ignore_dirs": ["tmp", "dist"] -} http://git-wip-us.apache.org/repos/asf/ambari/blob/6f340ec2/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/LICENSE.md ---------------------------------------------------------------------- diff --git a/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/LICENSE.md b/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/LICENSE.md deleted file mode 100644 index c1f9da4..0000000 --- a/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/LICENSE.md +++ /dev/null @@ -1,28 +0,0 @@ -<!--- -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. ---> - -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. - http://git-wip-us.apache.org/repos/asf/ambari/blob/6f340ec2/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/README.md ---------------------------------------------------------------------- diff --git a/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/README.md b/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/README.md deleted file mode 100644 index d383a93..0000000 --- a/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/README.md +++ /dev/null @@ -1,97 +0,0 @@ -<!--- -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0) - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. ---> - -# Hdfs-directory-viewer - -Ember Addon to view the HDFS file system. - -Different Ambari views can use this in their view. Common code should be usable in every view. - -# How to use it - -### Including it in dependant project -Add the following code in package.json of the dependant view - -```javascript -"name": "files", -"ember-addon": { - "paths": [ - "../../../../../commons/src/main/resources/ui/hdfs-directory-viewer" - ] -} -``` - -`paths` is an array which includes all the addons shares in ```commons``` library. The entries should be the relative path to the addon in this ```commons``` repository. - -### Including the UI dependencies in the dependent project -As we are going to include the component using the `ember-addon` config in `package.json` and not by the `ember install` way, the UI dependencies also has to be included in the dependent projects `bower.json` file if not already added. - -``` -"bootstrap": "~3.3.6", -"bootstrap-treeview": "~1.2.0", -"font-awesome": "~4.5.0" -``` - -### Overriding configs in dependant project - -Create a util object in `utils` directory using `ember generate util <object name>` and override it as follows: - -```javascript -import ViewerConfig from 'hdfs-directory-viewer/utils/viewer-config'; - -export default ViewerConfig.extend({ - showOnlyDirectories: true, - - expandIcon: 'fa fa-chevron-right', - collapseIcon: 'fa fa-chevron-down', - - listDirectoryUrl(pathParams) { - return `/api/v1/views/FILES/versions/1.0.0/instances/files/resources/files/fileops/listdir?${pathParams}`; - } -}); -``` - -All the functions and attributes in `hdfs-directory-viewer/utils/viewer-config` can be overriden - -### Passing the object to the view template - -```javascript -import Ember from 'ember'; -import MyViewerConfig from '../utils/my-viewer-config'; - -export default Ember.Controller.extend({ - config: MyViewerConfig.create(), - actions: { - viewerError: function() { - console.log("Failed to fetch the content!!!"); - }, - viewerSelectedPath: function(data) { - console.log(`User selected: path: ${data.path}, isDirectory: ${data.isDirectory}`); - } - } -}); -``` - -```html -... -<div class="directory-viewer-wrap"> - {{directory-viewer - config=config - errorAction="viewerError" - pathSelectAction="viewerSelectedPath" - }} -</div> -... -``` http://git-wip-us.apache.org/repos/asf/ambari/blob/6f340ec2/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/addon/.gitkeep ---------------------------------------------------------------------- diff --git a/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/addon/.gitkeep b/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/addon/.gitkeep deleted file mode 100644 index e69de29..0000000 http://git-wip-us.apache.org/repos/asf/ambari/blob/6f340ec2/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/addon/components/directory-viewer.js ---------------------------------------------------------------------- diff --git a/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/addon/components/directory-viewer.js b/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/addon/components/directory-viewer.js deleted file mode 100644 index 991d122..0000000 --- a/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/addon/components/directory-viewer.js +++ /dev/null @@ -1,196 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import Ember from 'ember'; -import layout from '../templates/components/directory-viewer'; - -export default Ember.Component.extend({ - layout, - config: Ember.Object.create({}), - classNames: ['directory-viewer'], - startPath: '/', - treeData: Ember.A(), - currentPath: Ember.computed.oneWay('startPath'), - currentQueryParam: Ember.computed('currentPath', function() { - return Ember.$.param({path: this.get('currentPath')}); - }), - - startFetch: Ember.on('didInitAttrs', function() { - this.fetchData(); - }), - - - fetchData: function() { - this.listPath(this.get('currentQueryParam')).then( - (response) => { - let list = this.filterDirectoriesIfRequired(response.files); - this.modifyTreeViewData(list); - }, (error) => { - this.sendAction('errorAction', error); - } - ); - }, - - /** - * Makes a XHR call and returns a promise. - */ - listPath: function(params) { - let config = this.get('config'); - let listUrl = config.listDirectoryUrl(params); - let headers = config.getHeaders(); - return Ember.$.ajax(listUrl, { - headers: headers - }); - }, - - filterDirectoriesIfRequired: function(files) { - let showOnlyDirectories = this.get('config.showOnlyDirectories'); - return files.filter((entry) => { - return (!(showOnlyDirectories) || entry.isDirectory); - }); - }, - - modifyTreeViewData: function(response) { - let paths = response.map((entry) => { - let isDirectory = entry.isDirectory; - let icon = isDirectory ? this.get('config.folderIcon') : this.get('config.fileIcon'); - let data = { - path: entry.path, - pathSegment: this.getNameForPath(entry.path), - isDirectory: isDirectory, - icon: icon, - text: this.getNameForPath(entry.path) - }; - if(isDirectory) { - data.nodes = Ember.A(); - } - return data; - }); - - var currentPath = this.get('currentPath'); - var newTreeData = Ember.copy(this.get('treeData'), true); - if(currentPath === '/') { - newTreeData = paths; - } else { - this.insertPathToTreeData(newTreeData, paths, currentPath.substring(1)); - } - - this.set('treeData', newTreeData); - this.send('refreshTreeView'); - }, - - insertPathToTreeData(treeData, paths, pathSegment) { - let firstPathSegment; - if (pathSegment.indexOf('/') !== -1) { - firstPathSegment = pathSegment.substring(0, pathSegment.indexOf('/')); - } else { - firstPathSegment = pathSegment; - } - - if(treeData.length === 0) { - treeData.pushObjects(paths); - } else { - treeData.forEach((entry) => { - entry.state = {}; - if (entry.pathSegment === firstPathSegment) { - entry.state.expanded = true; - if(entry.nodes.length === 0) { - paths.forEach((pathEntry) => { - entry.nodes.push(pathEntry); - }); - } else { - this.insertPathToTreeData(entry.nodes, paths, pathSegment.substring(pathSegment.indexOf('/') + 1)); - } - } else { - this.collapseAll(entry); - } - }); - } - }, - - collapseAll: function(node) { - if (Ember.isNone(node.state)) { - node.state = {}; - } - node.state.expanded = false; - if(!Ember.isNone(node.nodes)) { - node.nodes.forEach((entry) => { - this.collapseAll(entry); - }); - } - }, - - getNameForPath: function(path) { - return path.substring(path.lastIndexOf("/") + 1); - }, - - collapseAllExceptPath: function(pathSegment) { - let collapseAll = function(nodes, pathSegment) { - var firstPathSegment; - if (pathSegment.indexOf('/') !== -1) { - firstPathSegment = pathSegment.substring(0, pathSegment.indexOf('/')); - } else { - firstPathSegment = pathSegment; - } - - nodes.forEach((entry) => { - if (Ember.isNone(entry.state)) { - entry.state = {}; - } - if(firstPathSegment !== entry.pathSegment) { - entry.state.expanded = false; - } else { - entry.state.expanded = true; - collapseAll(entry.nodes, pathSegment.substring(pathSegment.indexOf('/') + 1)); - } - }); - }; - var newTreeData = this.get('treeData'); - collapseAll(newTreeData, pathSegment); - this.set('treeData', newTreeData); - this.send('refreshTreeView'); - }, - - actions: { - refreshTreeView() { - Ember.run.later(() => { - this.$().treeview({ - data: this.get('treeData'), - expandIcon: this.get('config.expandIcon'), - collapseIcon: this.get('config.collapseIcon'), - //emptyIcon: "fa", - showBorder: false, - onNodeSelected: (event, data) => { - this.set('currentPath', data.path); - this.sendAction('pathSelectAction', {path: data.path, isDirectory: data.isDirectory}); - }, - onNodeExpanded: (event, data) => { - this.set('currentPath', data.path); - if (!Ember.isNone(data.nodes) && data.nodes.length === 0) { - var node = this.$().treeview('getNode', data.nodeId); - node.icon = "fa fa-refresh fa-spin"; - this.fetchData(); - } else { - this.collapseAllExceptPath(data.path.substring(1)); - } - } - }); - }); - } - } -}); http://git-wip-us.apache.org/repos/asf/ambari/blob/6f340ec2/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/addon/templates/components/directory-viewer.hbs ---------------------------------------------------------------------- diff --git a/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/addon/templates/components/directory-viewer.hbs b/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/addon/templates/components/directory-viewer.hbs deleted file mode 100644 index 75339c5..0000000 --- a/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/addon/templates/components/directory-viewer.hbs +++ /dev/null @@ -1,18 +0,0 @@ -{{! -* Licensed to the Apache Software Foundation (ASF) under one -* or more contributor license agreements. See the NOTICE file -* distributed with this work for additional information -* regarding copyright ownership. The ASF licenses this file -* to you under the Apache License, Version 2.0 (the -* "License"); you may not use this file except in compliance -* with the License. You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -}} - http://git-wip-us.apache.org/repos/asf/ambari/blob/6f340ec2/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/addon/utils/viewer-config.js ---------------------------------------------------------------------- diff --git a/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/addon/utils/viewer-config.js b/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/addon/utils/viewer-config.js deleted file mode 100644 index 64773c6..0000000 --- a/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/addon/utils/viewer-config.js +++ /dev/null @@ -1,59 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import Ember from 'ember'; - -export default Ember.Object.extend({ - - /** - * Set this to true, if only directory listing is required. - */ - showOnlyDirectories: false, - - /** - * Set this to true, if refresh of current path is required. - */ - showRefreshButton: false, - - /** - * Override these for different Icon. Refer https://github.com/jonmiles/bootstrap-treeview - */ - expandIcon: "fa fa-plus", - collapseIcon: "fa fa-minus", - //Custom - fileIcon: "fa fa-file", - folderIcon: "fa fa-folder", - - /** - * Override to return the headers add to the XHR call made for various operations. - * The Overriding object can also merge its result with the default in this object. - */ - getHeaders() { - return {"X-Requested-By": "ambari"}; - }, - - /** - * Return the URL endpoint for XHR call meant for listing Directories - * @param pathParams - * @returns {string} - */ - listDirectoryUrl(pathParams) { - return `/listdir?${pathParams}`; - } - -}); http://git-wip-us.apache.org/repos/asf/ambari/blob/6f340ec2/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/app/.gitkeep ---------------------------------------------------------------------- diff --git a/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/app/.gitkeep b/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/app/.gitkeep deleted file mode 100644 index e69de29..0000000 http://git-wip-us.apache.org/repos/asf/ambari/blob/6f340ec2/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/app/components/directory-viewer.js ---------------------------------------------------------------------- diff --git a/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/app/components/directory-viewer.js b/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/app/components/directory-viewer.js deleted file mode 100644 index e704ef7..0000000 --- a/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/app/components/directory-viewer.js +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -export { default } from 'hdfs-directory-viewer/components/directory-viewer'; http://git-wip-us.apache.org/repos/asf/ambari/blob/6f340ec2/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/app/utils/viewer-config.js ---------------------------------------------------------------------- diff --git a/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/app/utils/viewer-config.js b/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/app/utils/viewer-config.js deleted file mode 100644 index f175b6c..0000000 --- a/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/app/utils/viewer-config.js +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -export { default } from 'hdfs-directory-viewer/utils/viewer-config'; http://git-wip-us.apache.org/repos/asf/ambari/blob/6f340ec2/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/bower.json ---------------------------------------------------------------------- diff --git a/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/bower.json b/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/bower.json deleted file mode 100644 index f016904..0000000 --- a/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/bower.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "hdfs-directory-viewer", - "dependencies": { - "ember": "2.2.0", - "ember-cli-shims": "0.1.0", - "ember-cli-test-loader": "0.2.2", - "ember-load-initializers": "0.1.7", - "ember-qunit-notifications": "0.1.0", - "jquery": "1.11.3", - "loader.js": "^3.5.0", - "qunit": "~1.20.0", - "bootstrap": "~3.3.6", - "bootstrap-treeview": "~1.2.0", - "font-awesome": "~4.5.0" - }, - "resolutions": { - "ember": "2.2.0" - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/6f340ec2/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/config/ember-try.js ---------------------------------------------------------------------- diff --git a/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/config/ember-try.js b/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/config/ember-try.js deleted file mode 100644 index 252dff2..0000000 --- a/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/config/ember-try.js +++ /dev/null @@ -1,54 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/*jshint node:true*/ -module.exports = { - scenarios: [ - { - name: 'default', - dependencies: { } - }, - { - name: 'ember-release', - dependencies: { - 'ember': 'components/ember#release' - }, - resolutions: { - 'ember': 'release' - } - }, - { - name: 'ember-beta', - dependencies: { - 'ember': 'components/ember#beta' - }, - resolutions: { - 'ember': 'beta' - } - }, - { - name: 'ember-canary', - dependencies: { - 'ember': 'components/ember#canary' - }, - resolutions: { - 'ember': 'canary' - } - } - ] -}; http://git-wip-us.apache.org/repos/asf/ambari/blob/6f340ec2/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/config/environment.js ---------------------------------------------------------------------- diff --git a/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/config/environment.js b/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/config/environment.js deleted file mode 100644 index 4a4b263..0000000 --- a/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/config/environment.js +++ /dev/null @@ -1,24 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/*jshint node:true*/ -'use strict'; - -module.exports = function(/* environment, appConfig */) { - return { }; -}; http://git-wip-us.apache.org/repos/asf/ambari/blob/6f340ec2/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/ember-cli-build.js ---------------------------------------------------------------------- diff --git a/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/ember-cli-build.js b/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/ember-cli-build.js deleted file mode 100644 index f6aac28..0000000 --- a/contrib/views/commons/src/main/resources/ui/hdfs-directory-viewer/ember-cli-build.js +++ /dev/null @@ -1,36 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/*jshint node:true*/ -/* global require, module */ -var EmberAddon = require('ember-cli/lib/broccoli/ember-addon'); - -module.exports = function(defaults) { - var app = new EmberAddon(defaults, { - // Add options here - }); - - /* - This build file specifies the options for the dummy test app of this - addon, located in `/tests/dummy` - This build file does *not* influence how the addon or the app using it - behave. You most likely want to be modifying `./index.js` or app's build file - */ - - return app.toTree(); -};
