You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwhisk.apache.org by md...@apache.org on 2018/07/03 20:20:53 UTC
[incubator-openwhisk] 07/19: Scala-isms and more code cleanup.
This is an automated email from the ASF dual-hosted git repository.
mdeuser pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-openwhisk.git
commit c63a4f53274002bb9de8c59c7e0735049358bd67
Author: Rodric Rabbah <ro...@gmail.com>
AuthorDate: Fri Jun 8 16:06:08 2018 -0400
Scala-isms and more code cleanup.
---
tests/src/test/scala/common/rest/WskRest.scala | 198 ++++++++++++-------------
1 file changed, 94 insertions(+), 104 deletions(-)
diff --git a/tests/src/test/scala/common/rest/WskRest.scala b/tests/src/test/scala/common/rest/WskRest.scala
index a4cc09f..a4d7ac6 100644
--- a/tests/src/test/scala/common/rest/WskRest.scala
+++ b/tests/src/test/scala/common/rest/WskRest.scala
@@ -72,7 +72,6 @@ import common.WskProps
import whisk.core.entity.ByteSize
import whisk.utils.retry
import javax.net.ssl._
-
import com.typesafe.sslconfig.akka.AkkaSSLConfig
import java.nio.charset.StandardCharsets
import java.security.KeyStore
@@ -89,11 +88,11 @@ object SSL {
lazy val httpsConfig = loadConfigOrThrow[HttpsConfig]("whisk.controller.https")
- def keyManagers(clientAuth: Boolean) = {
+ def keyManagers(clientAuth: Boolean): Array[KeyManager] = {
if (clientAuth)
keyManagersForClientAuth
else
- Array[KeyManager]()
+ Array.empty
}
def keyManagersForClientAuth: Array[KeyManager] = {
@@ -110,7 +109,7 @@ object SSL {
class IgnoreX509TrustManager extends X509TrustManager {
def checkClientTrusted(chain: Array[X509Certificate], authType: String) = ()
def checkServerTrusted(chain: Array[X509Certificate], authType: String) = ()
- def getAcceptedIssuers = Array[X509Certificate]()
+ def getAcceptedIssuers: Array[X509Certificate] = Array.empty
}
val context = SSLContext.getInstance("TLS")
@@ -177,11 +176,9 @@ trait ListOrGetFromCollectionRest extends BaseListOrGetFromCollection {
else Path(s"$basePath/namespaces/$nspace/$noun/$name/")
} getOrElse Path(s"$basePath/namespaces/${wp.namespace}/$noun")
- val paramMap = Map[String, String]() ++ { Map("skip" -> "0", "docs" -> true.toString) } ++ {
- limit map { l =>
- Map("limit" -> l.toString)
- } getOrElse Map[String, String]()
- }
+ val paramMap: Map[String, String] = Map("skip" -> "0", "docs" -> true.toString) ++
+ limit.map(l => Map("limit" -> l.toString)).getOrElse(Map.empty)
+
val resp = requestEntity(GET, entPath, paramMap)
val r = new RestResult(resp.status, getRespData(resp))
validateStatusCode(expectedExitCode, r.statusCode.intValue)
@@ -283,8 +280,8 @@ class WskRestAction
kind: Option[String] = None, // one of docker, copy, sequence or none for autoselect else an explicit type
main: Option[String] = None,
docker: Option[String] = None,
- parameters: Map[String, JsValue] = Map(),
- annotations: Map[String, JsValue] = Map(),
+ parameters: Map[String, JsValue] = Map.empty,
+ annotations: Map[String, JsValue] = Map.empty,
parameterFile: Option[String] = None,
annotationFile: Option[String] = None,
timeout: Option[Duration] = None,
@@ -375,11 +372,11 @@ class WskRestAction
val exec = execByKind ++ {
main map { m =>
Map("main" -> m.toJson)
- } getOrElse Map[String, JsValue]()
+ } getOrElse Map.empty
} ++ {
docker map { d =>
Map("kind" -> "blackbox".toJson, "image" -> d.toJson)
- } getOrElse Map[String, JsValue]()
+ } getOrElse Map.empty
}
val bodyHead = Map("name" -> name.toJson, "namespace" -> namespace.toJson)
@@ -405,37 +402,37 @@ class WskRestAction
case Some(k) if (k == "sequence" || k == "native") => {
Map("exec" -> exec.toJson)
}
- case _ => Map[String, JsValue]()
+ case _ => Map.empty
}
} ++ {
shared map { s =>
Map("publish" -> s.toJson)
- } getOrElse Map[String, JsValue]()
+ } getOrElse Map.empty
} ++ {
if (inputParams.size > 0) {
Map("parameters" -> params.toJson)
- } else Map[String, JsValue]()
+ } else Map.empty
} ++ {
if (inputAnnos.size > 0) {
Map("annotations" -> inputAnnos.toJson)
- } else Map[String, JsValue]()
+ } else Map.empty
}
} else {
bodyHead ++ Map("exec" -> exec.toJson, "parameters" -> params.toJson, "annotations" -> annos.toJson)
}
- val limits = Map[String, JsValue]() ++ {
+ val limits: Map[String, JsValue] = {
timeout map { t =>
Map("timeout" -> t.toMillis.toJson)
- } getOrElse Map[String, JsValue]()
+ } getOrElse Map.empty
} ++ {
logsize map { log =>
Map("logs" -> log.toMB.toJson)
- } getOrElse Map[String, JsValue]()
+ } getOrElse Map.empty
} ++ {
memory map { m =>
Map("memory" -> m.toMB.toJson)
- } getOrElse Map[String, JsValue]()
+ } getOrElse Map.empty
}
val bodyContent =
@@ -453,7 +450,7 @@ class WskRestAction
}
override def invoke(name: String,
- parameters: Map[String, JsValue] = Map(),
+ parameters: Map[String, JsValue] = Map.empty,
parameterFile: Option[String] = None,
blocking: Boolean = false,
result: Boolean = false,
@@ -479,8 +476,8 @@ class WskRestTrigger
* if the code is anything but DONTCARE_EXIT, assert the code is as expected
*/
override def create(name: String,
- parameters: Map[String, JsValue] = Map(),
- annotations: Map[String, JsValue] = Map(),
+ parameters: Map[String, JsValue] = Map.empty,
+ annotations: Map[String, JsValue] = Map.empty,
parameterFile: Option[String] = None,
annotationFile: Option[String] = None,
feed: Option[String] = None,
@@ -531,7 +528,7 @@ class WskRestTrigger
"triggerName" -> s"/$ns/$triggerName".toJson,
"authKey" -> s"${wp.authKey}".toJson)
body = body ++ parameters
- val resp = requestEntity(POST, path, paramMap, Some(body.toJson.toString()))
+ val resp = requestEntity(POST, path, paramMap, Some(body.toJson.toString))
val resultInvoke = new RestResult(resp.status, getRespData(resp))
if ((expectedExitCode != DONTCARE_EXIT) && (expectedExitCode != ANY_ERROR_EXIT))
expectedExitCode shouldBe resultInvoke.statusCode.intValue
@@ -557,7 +554,7 @@ class WskRestTrigger
* if the code is anything but DONTCARE_EXIT, assert the code is as expected
*/
override def fire(name: String,
- parameters: Map[String, JsValue] = Map(),
+ parameters: Map[String, JsValue] = Map.empty,
parameterFile: Option[String] = None,
expectedExitCode: Int = Accepted.intValue)(implicit wp: WskProps): RestResult = {
val path = getNamePath(noun, name)
@@ -567,7 +564,7 @@ class WskRestTrigger
} getOrElse parameters
val resp =
if (params.size == 0) requestEntity(POST, path)
- else requestEntity(POST, path, body = Some(params.toJson.toString()))
+ else requestEntity(POST, path, body = Some(params.toJson.toString))
new RestResult(resp.status.intValue, getRespData(resp))
}
}
@@ -593,7 +590,7 @@ class WskRestRule
override def create(name: String,
trigger: String,
action: String,
- annotations: Map[String, JsValue] = Map(),
+ annotations: Map[String, JsValue] = Map.empty,
shared: Option[Boolean] = None,
update: Boolean = false,
expectedExitCode: Int = SUCCESS_EXIT)(implicit wp: WskProps): RestResult = {
@@ -702,15 +699,15 @@ class WskRestActivation extends RunWskRestCmd with HasActivationRest with WaitFo
var paramMap = Map("skip" -> "0", "docs" -> docs.toString) ++ {
limit map { l =>
Map("limit" -> l.toString)
- } getOrElse Map[String, String]()
+ } getOrElse Map.empty
} ++ {
filter map { f =>
Map("name" -> f.toString)
- } getOrElse Map[String, String]()
+ } getOrElse Map.empty
} ++ {
since map { s =>
- Map("since" -> s.toEpochMilli().toString)
- } getOrElse Map[String, String]()
+ Map("since" -> s.toEpochMilli.toString)
+ } getOrElse Map.empty
}
val resp = requestEntity(GET, entityPath, paramMap)
new RestResult(resp.status, getRespData(resp))
@@ -723,10 +720,7 @@ class WskRestActivation extends RunWskRestCmd with HasActivationRest with WaitFo
* @return sequence of activations
*/
def idsActivation(rr: RestResult): Seq[String] = {
- val list = rr.getBodyListJsObject()
- var result = Seq[String]()
- list.foreach((obj: JsObject) => result = result :+ (RestResult.getField(obj, "activationId").toString))
- result
+ rr.getBodyListJsObject.map(r => RestResult.getField(r, "activationId").toString)
}
/**
@@ -787,7 +781,7 @@ class WskRestActivation extends RunWskRestCmd with HasActivationRest with WaitFo
} match {
case Success(ids) => ids
case Failure(PartialResult(ids)) => ids
- case _ => Seq()
+ case _ => Seq.empty
}
}
@@ -898,7 +892,7 @@ class WskRestNamespace extends RunWskRestCmd with BaseNamespace {
*/
override def whois()(implicit wskprops: WskProps): String = {
val ns = list().getBodyListString
- if (ns.size > 0) ns(0).toString() else ""
+ if (ns.size > 0) ns(0).toString else ""
}
}
@@ -918,8 +912,8 @@ class WskRestPackage
* if the code is anything but DONTCARE_EXIT, assert the code is as expected
*/
override def create(name: String,
- parameters: Map[String, JsValue] = Map(),
- annotations: Map[String, JsValue] = Map(),
+ parameters: Map[String, JsValue] = Map.empty,
+ annotations: Map[String, JsValue] = Map.empty,
parameterFile: Option[String] = None,
annotationFile: Option[String] = None,
shared: Option[Boolean] = None,
@@ -967,8 +961,8 @@ class WskRestPackage
*/
override def bind(provider: String,
name: String,
- parameters: Map[String, JsValue] = Map(),
- annotations: Map[String, JsValue] = Map(),
+ parameters: Map[String, JsValue] = Map.empty,
+ annotations: Map[String, JsValue] = Map.empty,
expectedExitCode: Int = OK.intValue)(implicit wp: WskProps): RestResult = {
val params = convertMapIntoKeyValue(parameters)
val annos = convertMapIntoKeyValue(annotations)
@@ -1011,39 +1005,37 @@ class WskRestApi extends RunWskRestCmd with BaseApi {
val actionAuthKey = wp.authKey
val testaction = Some(
new ApiAction(name = actionName, namespace = ns, backendUrl = actionUrl, authkey = actionAuthKey))
- val parms = Map[String, JsValue]() ++ { Map("namespace" -> ns.toJson) } ++ {
+ val parms = Map("namespace" -> ns.toJson) ++ {
basepath map { b =>
Map("gatewayBasePath" -> b.toJson)
- } getOrElse Map[String, JsValue]()
+ } getOrElse Map.empty
} ++ {
relpath map { r =>
Map("gatewayPath" -> r.toJson)
- } getOrElse Map[String, JsValue]()
+ } getOrElse Map.empty
} ++ {
operation map { o =>
Map("gatewayMethod" -> o.toJson)
- } getOrElse Map[String, JsValue]()
+ } getOrElse Map.empty
} ++ {
apiname map { an =>
Map("apiName" -> an.toJson)
- } getOrElse Map[String, JsValue]()
+ } getOrElse Map.empty
} ++ {
testaction map { a =>
Map("action" -> a.toJson)
- } getOrElse Map[String, JsValue]()
+ } getOrElse Map.empty
} ++ {
swagger map { s =>
val swaggerFile = FileUtils.readFileToString(new File(s), StandardCharsets.UTF_8)
Map("swagger" -> swaggerFile.toJson)
- } getOrElse Map[String, JsValue]()
+ } getOrElse Map.empty
}
val spaceguid = if (wp.authKey.contains(":")) wp.authKey.split(":")(0) else wp.authKey
val parm = Map[String, JsValue]("apidoc" -> JsObject(parms)) ++ {
- responsetype map { r =>
- Map("responsetype" -> r.toJson)
- } getOrElse Map[String, JsValue]()
+ responsetype.map(r => Map("responsetype" -> r.toJson)).getOrElse(Map.empty)
} ++ {
Map("accesstoken" -> wp.authKey.toJson)
} ++ {
@@ -1062,20 +1054,18 @@ class WskRestApi extends RunWskRestCmd with BaseApi {
swagger match {
case Some(swaggerFile) => {
var file = ""
- val fileName = swaggerFile.toString()
+ val fileName = swaggerFile.toString
try {
file = FileUtils.readFileToString(new File(fileName), StandardCharsets.UTF_8)
} catch {
case e: Throwable =>
return new RestResult(
NotFound,
- JsObject("error" -> s"Error reading swagger file '$fileName'".toJson).toString())
+ JsObject("error" -> s"Error reading swagger file '$fileName'".toJson).toString)
}
val parms = Map("namespace" -> s"${wp.namespace}".toJson, "swagger" -> file.toJson)
val parm = Map[String, JsValue]("apidoc" -> JsObject(parms)) ++ {
- responsetype map { r =>
- Map("responsetype" -> r.toJson)
- } getOrElse Map[String, JsValue]()
+ responsetype.map(r => Map("responsetype" -> r.toJson)).getOrElse(Map.empty)
} ++ {
Map("accesstoken" -> wp.authKey.toJson)
} ++ {
@@ -1114,32 +1104,31 @@ class WskRestApi extends RunWskRestCmd with BaseApi {
expectedExitCode: Int = SUCCESS_EXIT,
cliCfgFile: Option[String] = None)(implicit wp: WskProps): RestResult = {
- val parms = Map[String, JsValue]() ++ {
+ val parms = {
basepathOrApiName map { b =>
Map("basepath" -> b.toJson)
- } getOrElse Map[String, JsValue]()
+ } getOrElse Map.empty
} ++ {
relpath map { r =>
Map("relpath" -> r.toJson)
- } getOrElse Map[String, JsValue]()
+ } getOrElse Map.empty
} ++ {
operation map { o =>
Map("operation" -> o.toJson)
- } getOrElse Map[String, JsValue]()
+ } getOrElse Map.empty
} ++ {
Map("accesstoken" -> wp.authKey.toJson)
} ++ {
Map("spaceguid" -> wp.authKey.split(":")(0).toJson)
}
- val rr = invokeAction(
+ invokeAction(
name = "apimgmt/getApi",
parameters = parms,
blocking = true,
result = true,
web = true,
expectedExitCode = OK.intValue)(wp)
- rr
}
/**
@@ -1154,24 +1143,23 @@ class WskRestApi extends RunWskRestCmd with BaseApi {
expectedExitCode: Int = SUCCESS_EXIT,
cliCfgFile: Option[String] = None,
format: Option[String] = None)(implicit wp: WskProps): RestResult = {
- val parms = Map[String, JsValue]() ++ {
+ val parms = {
basepathOrApiName map { b =>
Map("basepath" -> b.toJson)
- } getOrElse Map[String, JsValue]()
+ } getOrElse Map.empty
} ++ {
Map("accesstoken" -> wp.authKey.toJson)
} ++ {
Map("spaceguid" -> wp.authKey.split(":")(0).toJson)
}
- val result = invokeAction(
+ invokeAction(
name = "apimgmt/getApi",
parameters = parms,
blocking = true,
result = true,
web = true,
expectedExitCode = OK.intValue)(wp)
- result
}
/**
@@ -1185,16 +1173,14 @@ class WskRestApi extends RunWskRestCmd with BaseApi {
operation: Option[String] = None,
expectedExitCode: Int = SUCCESS_EXIT,
cliCfgFile: Option[String] = None)(implicit wp: WskProps): RestResult = {
- val parms = Map[String, JsValue]() ++ {
- Map("basepath" -> basepathOrApiName.toJson)
- } ++ {
+ val parms = Map("basepath" -> basepathOrApiName.toJson) ++ {
relpath map { r =>
Map("relpath" -> r.toJson)
- } getOrElse Map[String, JsValue]()
+ } getOrElse Map.empty
} ++ {
operation map { o =>
Map("operation" -> o.toJson)
- } getOrElse Map[String, JsValue]()
+ } getOrElse Map.empty
} ++ {
Map("accesstoken" -> wp.authKey.toJson)
} ++ {
@@ -1222,8 +1208,8 @@ class RunWskRestCmd() extends FlatSpec with Matchers with ScalaFutures with WskA
val basePath = Path("/api/v1")
val systemNamespace = "whisk.system"
- val sslConfig = AkkaSSLConfig().mapSettings { s =>
- s.withHostnameVerifierClass(classOf[AcceptAllHostNameVerifier].asInstanceOf[Class[HostnameVerifier]])
+ val sslConfig = AkkaSSLConfig().mapSettings {
+ _.withHostnameVerifierClass(classOf[AcceptAllHostNameVerifier].asInstanceOf[Class[HostnameVerifier]])
}
val connectionContext = new HttpsConnectionContext(SSL.nonValidatingContext(), Some(sslConfig))
@@ -1231,11 +1217,10 @@ class RunWskRestCmd() extends FlatSpec with Matchers with ScalaFutures with WskA
def isStatusCodeExpected(expectedExitCode: Int, statusCode: Int): Boolean = {
if ((expectedExitCode != DONTCARE_EXIT) && (expectedExitCode != ANY_ERROR_EXIT))
statusCode == expectedExitCode
- else
- true
+ else true
}
- def validateStatusCode(expectedExitCode: Int, statusCode: Int) = {
+ def validateStatusCode(expectedExitCode: Int, statusCode: Int): Unit = {
if ((expectedExitCode != DONTCARE_EXIT) && (expectedExitCode != ANY_ERROR_EXIT))
if (!isStatusCodeExpected(expectedExitCode, statusCode)) {
statusCode shouldBe expectedExitCode
@@ -1248,12 +1233,14 @@ class RunWskRestCmd() extends FlatSpec with Matchers with ScalaFutures with WskA
def getExt(filePath: String)(implicit wp: WskProps) = {
val sep = "."
- if (filePath.contains(sep)) filePath.substring(filePath.lastIndexOf(sep), filePath.length())
+ if (filePath.contains(sep)) filePath.substring(filePath.lastIndexOf(sep), filePath.length)
else ""
}
- def requestEntity(method: HttpMethod, path: Path, params: Map[String, String] = Map(), body: Option[String] = None)(
- implicit wp: WskProps): HttpResponse = {
+ def requestEntity(method: HttpMethod,
+ path: Path,
+ params: Map[String, String] = Map.empty,
+ body: Option[String] = None)(implicit wp: WskProps): HttpResponse = {
val creds = getBasicHttpCredentials(wp)
@@ -1286,18 +1273,18 @@ class RunWskRestCmd() extends FlatSpec with Matchers with ScalaFutures with WskA
}
}
- def getParamsAnnos(parameters: Map[String, JsValue] = Map(),
- annotations: Map[String, JsValue] = Map(),
+ def getParamsAnnos(parameters: Map[String, JsValue] = Map.empty,
+ annotations: Map[String, JsValue] = Map.empty,
parameterFile: Option[String] = None,
annotationFile: Option[String] = None,
feed: Option[String] = None,
web: Option[String] = None): (Array[JsValue], Array[JsValue]) = {
- val params = parameterFile map { pf =>
- convertStringIntoKeyValue(pf)
- } getOrElse convertMapIntoKeyValue(parameters)
- val annos = annotationFile map { af =>
- convertStringIntoKeyValue(af, feed, web)
- } getOrElse convertMapIntoKeyValue(annotations, feed, web)
+ val params = parameterFile.map(convertStringIntoKeyValue(_)).getOrElse(convertMapIntoKeyValue(parameters))
+
+ val annos = annotationFile
+ .map(convertStringIntoKeyValue(_, feed, web))
+ .getOrElse(convertMapIntoKeyValue(annotations, feed, web))
+
(params, annos)
}
@@ -1312,16 +1299,17 @@ class RunWskRestCmd() extends FlatSpec with Matchers with ScalaFutures with WskA
def convertMapIntoKeyValue(params: Map[String, JsValue],
feed: Option[String] = None,
web: Option[String] = None,
- oldParams: List[JsObject] = List[JsObject]()): Array[JsValue] = {
+ oldParams: List[JsObject] = List.empty): Array[JsValue] = {
val newParams =
params
.map { case (key, value) => JsObject("key" -> key.toJson, "value" -> value) } ++ feed.map(f =>
JsObject("key" -> "feed".toJson, "value" -> f.toJson))
- val paramsList =
+ val paramsList = {
if (newParams.nonEmpty) newParams
- else
- oldParams
+ else oldParams
+ }
+
val webOpt = web.map {
case "true" | "yes" =>
Seq(
@@ -1339,16 +1327,18 @@ class RunWskRestCmd() extends FlatSpec with Matchers with ScalaFutures with WskA
JsObject("key" -> "raw-http".toJson, "value" -> true.toJson),
JsObject("key" -> "final".toJson, "value" -> true.toJson))
case _ =>
- Seq()
+ Seq.empty
}
- (webOpt map { web =>
- paramsList ++ web
- } getOrElse paramsList).toArray
+
+ webOpt
+ .map(paramsList ++ _)
+ .getOrElse(paramsList)
+ .toArray
}
def entityName(name: String)(implicit wp: WskProps) = {
val sep = "/"
- if (name.startsWith(sep)) name.substring(name.indexOf(sep, name.indexOf(sep) + 1) + 1, name.length())
+ if (name.startsWith(sep)) name.substring(name.indexOf(sep, name.indexOf(sep) + 1) + 1, name.length)
else name
}
@@ -1390,7 +1380,7 @@ class RunWskRestCmd() extends FlatSpec with Matchers with ScalaFutures with WskA
}
def invokeAction(name: String,
- parameters: Map[String, JsValue] = Map(),
+ parameters: Map[String, JsValue] = Map.empty,
parameterFile: Option[String] = None,
blocking: Boolean = false,
result: Boolean = false,
@@ -1403,19 +1393,19 @@ class RunWskRestCmd() extends FlatSpec with Matchers with ScalaFutures with WskA
val paramMap = Map("blocking" -> blocking.toString, "result" -> result.toString)
val input = parameterFile map { pf =>
Some(FileUtils.readFileToString(new File(pf), StandardCharsets.UTF_8))
- } getOrElse Some(parameters.toJson.toString())
+ } getOrElse Some(parameters.toJson.toString)
val resp = requestEntity(POST, path, paramMap, input)
- val r = new RestResult(resp.status.intValue, getRespData(resp), blocking)
+ val rr = new RestResult(resp.status.intValue, getRespData(resp), blocking)
// If the statusCode does not not equal to expectedExitCode, it is acceptable that the statusCode
// equals to 200 for the case that either blocking or result is set to true.
- if (!isStatusCodeExpected(expectedExitCode, r.statusCode.intValue)) {
+ if (!isStatusCodeExpected(expectedExitCode, rr.statusCode.intValue)) {
if (blocking || result) {
- validateStatusCode(OK.intValue, r.statusCode.intValue)
+ validateStatusCode(OK.intValue, rr.statusCode.intValue)
} else {
- r.statusCode.intValue shouldBe expectedExitCode
+ rr.statusCode.intValue shouldBe expectedExitCode
}
}
- r
+ rr
}
}