aboutsummaryrefslogtreecommitdiff
path: root/core/src/main/scala/org/apache
diff options
context:
space:
mode:
authorJakob Odersky <jodersky@gmail.com>2016-03-29 11:10:15 -0700
committerAndrew Or <andrew@databricks.com>2016-03-29 11:10:15 -0700
commitd26c42982c18da8fb1b21c9eb75aef9364d1b992 (patch)
treeed608c7adf20465afd691d1aa80c3b46c924ceea /core/src/main/scala/org/apache
parent15c0b0006b3d04434b505210df541aeb28a51de8 (diff)
downloadspark-d26c42982c18da8fb1b21c9eb75aef9364d1b992.tar.gz
spark-d26c42982c18da8fb1b21c9eb75aef9364d1b992.tar.bz2
spark-d26c42982c18da8fb1b21c9eb75aef9364d1b992.zip
[SPARK-10570][CORE] Add version info to json api
Add a new api endpoint `/api/v1/version` to retrieve various version info. This PR only adds support for finding the current spark version, however other version info such as jvm or scala versions can easily be added. Author: Jakob Odersky <jodersky@gmail.com> Closes #10760 from jodersky/SPARK-10570.
Diffstat (limited to 'core/src/main/scala/org/apache')
-rw-r--r--core/src/main/scala/org/apache/spark/status/api/v1/ApiRootResource.scala6
-rw-r--r--core/src/main/scala/org/apache/spark/status/api/v1/VersionResource.scala30
-rw-r--r--core/src/main/scala/org/apache/spark/status/api/v1/api.scala3
3 files changed, 39 insertions, 0 deletions
diff --git a/core/src/main/scala/org/apache/spark/status/api/v1/ApiRootResource.scala b/core/src/main/scala/org/apache/spark/status/api/v1/ApiRootResource.scala
index 50b6ba67e9..ba9cd711f1 100644
--- a/core/src/main/scala/org/apache/spark/status/api/v1/ApiRootResource.scala
+++ b/core/src/main/scala/org/apache/spark/status/api/v1/ApiRootResource.scala
@@ -177,6 +177,12 @@ private[v1] class ApiRootResource extends UIRootFromServletContext {
@PathParam("attemptId") attemptId: String): EventLogDownloadResource = {
new EventLogDownloadResource(uiRoot, appId, Some(attemptId))
}
+
+ @Path("version")
+ def getVersion(): VersionResource = {
+ new VersionResource(uiRoot)
+ }
+
}
private[spark] object ApiRootResource {
diff --git a/core/src/main/scala/org/apache/spark/status/api/v1/VersionResource.scala b/core/src/main/scala/org/apache/spark/status/api/v1/VersionResource.scala
new file mode 100644
index 0000000000..673da1ce36
--- /dev/null
+++ b/core/src/main/scala/org/apache/spark/status/api/v1/VersionResource.scala
@@ -0,0 +1,30 @@
+/*
+ * 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.spark.status.api.v1
+
+import javax.ws.rs._
+import javax.ws.rs.core.MediaType
+
+@Produces(Array(MediaType.APPLICATION_JSON))
+private[v1] class VersionResource(ui: UIRoot) {
+
+ @GET
+ def getVersionInfo(): VersionInfo = new VersionInfo(
+ org.apache.spark.SPARK_VERSION
+ )
+
+}
diff --git a/core/src/main/scala/org/apache/spark/status/api/v1/api.scala b/core/src/main/scala/org/apache/spark/status/api/v1/api.scala
index 909dd0c07e..d43868bbcb 100644
--- a/core/src/main/scala/org/apache/spark/status/api/v1/api.scala
+++ b/core/src/main/scala/org/apache/spark/status/api/v1/api.scala
@@ -237,3 +237,6 @@ class AccumulableInfo private[spark](
val name: String,
val update: Option[String],
val value: String)
+
+class VersionInfo private[spark](
+ val spark: String)