#####Get Views The user may query for all of the deployed views. Note that views are a top level resources (they are not sub-resources of a cluster).
GET http://<server>:8080/api/v1/views/
{
"href" : "http://<server>:8080/api/v1/views/",
"items" : [
{
"href" : "http://<server>:8080/api/v1/views/FILES",
"ViewInfo" : {
"view_name" : "FILES"
}
},
{
"href" : "http://<server>:8080/api/v1/views/HELLO_WORLD",
"ViewInfo" : {
"view_name" : "HELLO_WORLD"
}
}
]
}
#####Get View To get a specific view, request it by name. Note that the response shows all of the versions of the view as sub-resources.
GET http://<server>:8080/api/v1/views/FILES/
{
"href" : "http://<server>:8080/api/v1/views/FILES/",
"ViewInfo" : {
"view_name" : "FILES"
},
"versions" : [
{
"href" : "http://<server>:8080/api/v1/views/FILES/versions/0.1.0",
"ViewVersionInfo" : {
"version" : "0.1.0",
"view_name" : "FILES"
}
}
]
}
#####Get Versions The user may request all of the versions of a named view.
GET http://<server>:8080/api/v1/views/FILES/versions/
{
"href" : "http://<server>:8080/api/v1/views/FILES/versions/",
"items" : [
{
"href" : "http://<server>:8080/api/v1/views/FILES/versions/0.1.0",
"ViewVersionInfo" : {
"version" : "0.1.0",
"view_name" : "FILES"
}
}
]
}
#####Get Version A specific version can be requested. Note that all of the instances of the view version are included in the response.
GET http://<server>:8080/api/v1/views/FILES/versions/0.1.0/
{
"href" : "http://<server>:8080/api/v1/views/FILES/versions/0.1.0/",
"ViewVersionInfo" : {
"archive" : "/var/lib/ambari-server/resources/views/work/FILES{0.1.0}",
"label" : "Files",
"parameters" : [
{
"name" : "dataworker.defaultFs",
"description" : "FileSystem URI",
"required" : true
},
{
"name" : "dataworker.username",
"description" : "The username (defaults to ViewContext username)",
"required" : false
}
],
"version" : "0.1.0",
"view_name" : "FILES"
},
"instances" : [
{
"href" : "http://<server>:8080/api/v1/views/FILES/versions/0.1.0/instances/FILES_1",
"ViewInstanceInfo" : {
"instance_name" : "FILES_1",
"version" : "0.1.0",
"view_name" : "FILES"
}
}
]
}
#####Get Instances The user may request all of the instances of a view.
GET http://<server>:8080/api/v1/views/FILES/versions/0.1.0/instances/
{
"href" : "http://<server>:8080/api/v1/views/FILES/versions/0.1.0/instances/",
"items" : [
{
"href" : "http://<server>:8080/api/v1/views/FILES/versions/0.1.0/instances/FILES_1",
"ViewInstanceInfo" : {
"instance_name" : "FILES_1",
"version" : "0.1.0",
"view_name" : "FILES"
}
}
]
}
#####Get Instance A specific view instance may be requested by specifying its name. Note that the instance resources are listed as sub-resources.
GET http://<server>:8080/api/v1/views/FILES/versions/0.1.0/instances/FILES_1
{
"href" : "http://<server>:8080/api/v1/views/FILES/versions/0.1.0/instances/FILES_1",
"ViewInstanceInfo" : {
"context_path" : "/views/FILES/0.1.0/FILES_1",
"instance_name" : "FILES_1",
"version" : "0.1.0",
"view_name" : "FILES",
"instance_data" : { },
"properties" : {
"dataworker.defaultFs" : "hdfs://<server>:8020"
}
},
"resources" : [
{
"href" : "http://<server>:8080/api/v1/views/FILES/versions/0.1.0/instances/FILES_1/resources/files",
"instance_name" : "FILES_1",
"name" : "files",
"version" : "0.1.0",
"view_name" : "FILES"
}
]
}
#####Create Instance New view instances may be created through the API.
POST http://<server>:8080/api/v1/views/FILES/versions/0.1.0/instances/FILES_2
#####Update Instance The properties of a view instance may be updated through the API.
PUT http://<server>:8080/api/v1/views/FILES/versions/0.1.0/instances/FILES_2
[{
"ViewInstanceInfo" : {
"properties" : {
"dataworker.defaultFs" : "hdfs://MyServer:8020"
}
}
}]
#####Delete Instance A view instances may be deleted through the API.
DELETE http://<server>:8080/api/v1/views/FILES/versions/0.1.0/instances/FILES_2
#####Resources A view resource may be accessed through the REST API. The href for each view resource can be found in a request for the parent view instance. The resource endpoints and behavior depends on the implementation of the JAX-RS annotated service class specified for the resource element in the view.xml.
GET http://<server>:8080/api/v1/views/FILES/versions/0.1.0/instances/FILES_1/resources/files/fileops/listdir?path=%2F
[{"path":"/app-logs","replication":0,"isDirectory":true,"len":0,"owner":"yarn","group":"hadoop","permission":"-rwxrwxrwx","accessTime":0,"modificationTime":1400006792122,"blockSize":0},{"path":"/mapred","replication":0,"isDirectory":true,"len":0,"owner":"mapred","group":"hdfs","permission":"-rwxr-xr-x","accessTime":0,"modificationTime":1400006653817,"blockSize":0},{"path":"/mr-history","replication":0,"isDirectory":true,"len":0,"owner":"hdfs","group":"hdfs","permission":"-rwxr-xr-x","accessTime":0,"modificationTime":1400006653822,"blockSize":0},{"path":"/tmp","replication":0,"isDirectory":true,"len":0,"owner":"hdfs","group":"hdfs","permission":"-rwxrwxrwx","accessTime":0,"modificationTime":1400006720415,"blockSize":0},{"path":"/user","replication":0,"isDirectory":true,"len":0,"owner":"hdfs","group":"hdfs","permission":"-rwxr-xr-x","accessTime":0,"modificationTime":1400006610050,"blockSize":0}]
#####Managed Resources Any managed resources for a view may also be accessed through the REST API. Note that instances of a managed resource appear as sub-resources of an instance under the plural name specified for the resource in the view.xml. In this example, a list of managed resources named 'scripts' is included in the response for the view instance …
GET http://<server>:8080/api/v1/views/PIG/versions/0.1.0/instances/INSTANCE_1
{
"href" : "http://<server>:8080/api/v1/views/PIG/versions/0.1.0/instances/INSTANCE_1",
"ViewInstanceInfo" : {
"context_path" : "/views/PIG/0.1.0/INSTANCE_1",
"instance_name" : "INSTANCE_1",
"version" : "0.1.0",
"view_name" : "PIG",
"instance_data" : { },
"properties" : {
…
}
},
"resources" : [ ],
"scripts" : [
{
"href" : "http://<server>:8080/api/v1/views/PIG/versions/0.1.0/instances/INSTANCE_1/scripts/script1",
"id" : "script1",
"instance_name" : "INSTANCE_1",
"version" : "0.1.0",
"view_name" : "PIG"
},
{
"href" : "http://<server>:8080/api/v1/views/FILES/versions/0.1.0/instances/INSTANCE_1/scripts/script2",
"id" : "script2",
"instance_name" : "INSTANCE_1",
"version" : "0.1.0",
"view_name" : "PIG"
},
…
]
}
To get a single managed resource …
GET http://<server>:8080/api/v1/views/PIG/versions/0.1.0/instances/INSTANCE_1/scripts/script1
{
"href" : "http://<server>:8080/api/v1/views/PIG/versions/0.1.0/instances/INSTANCE_1/scripts/script1",
"id" : "script1",
"pigScript" : "… ",
"pythonScript" : "… ",
"templetonArguments" : "… ",
"dateCreated" : … ,
"owner" : "… ",
"instance_name" : "INSTANCE_1",
"version" : "0.1.0",
"view_name" : "PIG"
}
Because the resource is managed through the Ambari API framework, it may be queried using partial response and query predicates. For example …
GET http://<server>:8080/api/v1/views/PIG/versions/0.1.0/instances/INSTANCE_1/scripts?fields=pythonScript&owner=jsmith