-
Notifications
You must be signed in to change notification settings - Fork 0
/
webHDFS.xsjs
54 lines (44 loc) · 1.53 KB
/
webHDFS.xsjs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
//import a library for doing PUT & GET to webHDFS
//$.import("HanaHbase","Hbase");
$.import("zzzzzzzzztrial.trial.HadoopHbase1.webHDFS","webHDFS");
var webHDFS = $.zzzzzzztrial.trial.HadoopHbase1.webHDFS.webHDFS; //$.HanaHbase.Hbase;
// full path example (including prefix) /webhdfs/v1/user/admin
var path = $.request.parameters.get("path") || "/user/admin";
var op = $.request.parameters.get("op") || "LISTSTATUS";
var webHDFSResponse;
switch ($.request.method) {
case $.net.http.GET:
if (op == "OPEN") {
webHDFSResponse = webHDFS.GetDownload(path);
//webHDFSResponse = typeof webHDFSResponse.body;
break;
}
else {
webHDFSResponse = webHDFS.GetDirList(path);
break;
}
/*
case $.net.http.PUT:
if ( $.request.headers.get("Content-Type") === 'application/json' ) {
var reqBody = JSON.parse( $.request.body.asString() );
HbaseResponse = Hbase.Put(HbaseTable, rowKey,reqBody);
}
else {
HbaseResponse = {"status": $.request.method + " 'Content-Type' must be 'application/json' "};
}
break; */
default:
webHDFSResponse = {"status": "Method " + $.request.method + " not Defined"};
}
if (op == "OPEN") {
//send the response as application/octet-stream
$.response.contentType = "application/octet-stream"; //trigger download
//Content-Disposition: attachment; filename="picture.png"
//REPO_TEST_LPC.tgz
$.response.setBody(webHDFSResponse.body);
}
else {
// send the response as JSON
$.response.contentType = "application/json";
$.response.setBody(JSON.stringify(webHDFSResponse));
}