You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by gr...@apache.org on 2015/08/12 23:35:40 UTC

[3/6] incubator-usergrid git commit: USERGRID-871: fix AuditVerify

USERGRID-871: fix AuditVerify


Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/211fe1aa
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/211fe1aa
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/211fe1aa

Branch: refs/heads/two-dot-o-dev
Commit: 211fe1aaa00d4d7951240e6b587ed1be6fb1c0bf
Parents: dc9dafe
Author: Mike Dunker <md...@apigee.com>
Authored: Tue Aug 4 23:58:00 2015 -0700
Committer: Mike Dunker <md...@apigee.com>
Committed: Tue Aug 4 23:58:00 2015 -0700

----------------------------------------------------------------------
 .../datagenerators/FeederGenerator.scala        |  7 ++-
 .../apache/usergrid/helpers/Extractors.scala    | 11 +++-
 .../usergrid/scenarios/AuditScenarios.scala     | 57 ++++++++++----------
 3 files changed, 43 insertions(+), 32 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/211fe1aa/stack/loadtests/src/main/scala/org/apache/usergrid/datagenerators/FeederGenerator.scala
----------------------------------------------------------------------
diff --git a/stack/loadtests/src/main/scala/org/apache/usergrid/datagenerators/FeederGenerator.scala b/stack/loadtests/src/main/scala/org/apache/usergrid/datagenerators/FeederGenerator.scala
index 6b7c76f..55c0bfe 100755
--- a/stack/loadtests/src/main/scala/org/apache/usergrid/datagenerators/FeederGenerator.scala
+++ b/stack/loadtests/src/main/scala/org/apache/usergrid/datagenerators/FeederGenerator.scala
@@ -272,9 +272,12 @@ object FeederGenerator {
       val validEntity = if (line == null) "no" else "yes"
       val array = if (line != null) line.split(",") else null
       val collectionName = if (line != null) array(0) else ""
-      val uuid = if (line != null) array(1) else ""
+      val name = if (line != null) array(1) else ""
+      val uuid = if (line != null) array(2) else ""
+      val modified = if (line != null) array(3) else ""
+      //println(s"$collectionName|$name|$uuid|$modified")
 
-      Map("collectionName" -> collectionName, "uuid" -> uuid, "validEntity" -> validEntity)
+      Map("collectionName" -> collectionName, "name" -> name,  "uuid" -> uuid, "modified" -> modified, "validEntity" -> validEntity)
     }
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/211fe1aa/stack/loadtests/src/main/scala/org/apache/usergrid/helpers/Extractors.scala
----------------------------------------------------------------------
diff --git a/stack/loadtests/src/main/scala/org/apache/usergrid/helpers/Extractors.scala b/stack/loadtests/src/main/scala/org/apache/usergrid/helpers/Extractors.scala
index 8e43368..d93c430 100644
--- a/stack/loadtests/src/main/scala/org/apache/usergrid/helpers/Extractors.scala
+++ b/stack/loadtests/src/main/scala/org/apache/usergrid/helpers/Extractors.scala
@@ -51,13 +51,20 @@ object Extractors {
   }
 
   /**
-   * Will extract the uuids from the get collection response.
+   * Will extract the audit entities from the get collection response.
    */
-  def extractCollectionUuids(saveAsName: String) = {
+  def extractAuditEntities(saveAsName: String) = {
     jsonPath("$.entities[*]").ofType[Map[String,Any]].findAll.transformOption(extract => { extract.orElse(Some(Seq.empty)) }).saveAs(saveAsName)
   }
 
   /**
+   * Will extract the audit entities from the get collection response.
+   */
+  def extractAuditEntity(saveAsName: String) = {
+    jsonPath("$.entities[0]").ofType[Map[String,Any]].findAll.transformOption(extract => { extract.orElse(Some(Seq.empty)) }).saveAs(saveAsName)
+  }
+
+  /**
    * tries to extract the cursor from the session, if it exists, it returns true. if it's the default, returns false
    * @param nameInSession The name of the variable in the session
    * @return

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/211fe1aa/stack/loadtests/src/main/scala/org/apache/usergrid/scenarios/AuditScenarios.scala
----------------------------------------------------------------------
diff --git a/stack/loadtests/src/main/scala/org/apache/usergrid/scenarios/AuditScenarios.scala b/stack/loadtests/src/main/scala/org/apache/usergrid/scenarios/AuditScenarios.scala
index c951dcf..cdaa89b 100644
--- a/stack/loadtests/src/main/scala/org/apache/usergrid/scenarios/AuditScenarios.scala
+++ b/stack/loadtests/src/main/scala/org/apache/usergrid/scenarios/AuditScenarios.scala
@@ -34,7 +34,7 @@ object AuditScenarios {
   val SessionVarCursor: String = "cursor"
   val SessionVarUuid: String = "entityUuid"
   val SessionVarCollectionName: String = "collectionName"
-  val SessionVarCollectionUuids: String = "collectionUuids"
+  val SessionVarCollectionEntities: String = "collectionEntities"
 
   def collectionGetUrl(useCursor: Boolean): String = {
     val searchQuery =
@@ -56,8 +56,8 @@ object AuditScenarios {
     http("GET collections")
       .get(collectionGetUrl(false))
       .headers(Headers.authToken)
-      .check(status.is(200), extractCollectionUuids(SessionVarCollectionUuids),maybeExtractCursor(SessionVarCursor)))
-      .foreach("${" + SessionVarCollectionUuids + "}", "singleResult") {
+      .check(status.is(200),extractAuditEntities(SessionVarCollectionEntities),maybeExtractCursor(SessionVarCursor)))
+      .foreach("${" + SessionVarCollectionEntities + "}", "singleResult") {
         exec(session => {
           val resultObj = session("singleResult").as[Map[String,Any]]
           val uuid = resultObj("uuid").asInstanceOf[String]
@@ -73,8 +73,8 @@ object AuditScenarios {
     http("GET collections")
       .get(collectionGetUrl(true))
       .headers(Headers.authToken)
-      .check(status.is(200), extractCollectionUuids(SessionVarCollectionUuids),maybeExtractCursor(SessionVarCursor)))
-      .foreach("${" + SessionVarCollectionUuids + "}", "singleResult") {
+      .check(status.is(200),extractAuditEntities(SessionVarCollectionEntities),maybeExtractCursor(SessionVarCursor)))
+      .foreach("${" + SessionVarCollectionEntities + "}", "singleResult") {
         exec(session => {
           val resultObj = session("singleResult").as[Map[String,Any]]
           val uuid = resultObj("uuid").asInstanceOf[String]
@@ -110,30 +110,29 @@ object AuditScenarios {
     http("GET collection entity")
       .get("/${collectionName}?ql=uuid=${uuid}")
       .headers(Headers.authToken)
-      .check(status.is(200), jsonPath("$.count").saveAs("count")))
-        .exec(session => {
-          val count = session("count").as[String].toInt
-          val uuid = session("uuid").as[String]
-          val entityName = session("name").as[String]
-          val modified = session("modified").as[Long]
-          val collectionName = session(SessionVarCollectionName).as[String]
+      .check(status.is(200),jsonPath("$.count").optional.saveAs("count"),extractAuditEntities(SessionVarCollectionEntities)))
+      .exec(session => {
+        val count = session("count").as[String].toInt
+        val uuid = session("uuid").as[String]
+        val entityName = session("name").as[String]
+        val modified = session("modified").as[String].toLong
+        val collectionName = session(SessionVarCollectionName).as[String]
 
-          // save items not found
-          if (count < 1) {
-            Settings.addAuditUuid(uuid, collectionName, entityName, modified)
-            Settings.incAuditNotFound()
-            println(s"NOT FOUND: $collectionName.$entityName $uuid")
-          } else if (count > 1) {
-            Settings.addAuditUuid(uuid, collectionName, entityName, modified)
-            Settings.incAuditBadResponse()
-            println(s"INVALID RESPONSE (count=$count): $collectionName.$entityName $uuid")
-          } else {
-            // println(s"FOUND: $collectionName.$entityName $uuid")
-            Settings.incAuditSuccess()
-          }
+        if (count < 1) {
+          Settings.addAuditUuid(uuid, collectionName, entityName, modified)
+          Settings.incAuditNotFound()
+          println(s"NOT FOUND: $collectionName.$entityName $uuid")
+        } else if (count > 1) {
+          Settings.addAuditUuid(uuid, collectionName, entityName, modified)
+          Settings.incAuditBadResponse()
+          println(s"INVALID RESPONSE (count=$count): $collectionName.$entityName $uuid")
+        } else {
+          // println(s"FOUND: $collectionName.$entityName $uuid")
+          Settings.incAuditSuccess()
+        }
 
-          session
-        })
+        session
+      })
 
   val verifyCollections = scenario("Verify collections")
     .exec(injectTokenIntoSession())
@@ -141,7 +140,9 @@ object AuditScenarios {
     .asLongAs(session => session("validEntity").asOption[String].map(validEntity => validEntity != "no").getOrElse[Boolean](true)) {
     feed(FeederGenerator.collectionCsvFeeder)
       .doIf(session => session("validEntity").as[String] == "yes") {
-        exec(getCollectionEntity)
+        tryMax(Settings.retryCount) {
+          exec(getCollectionEntity)
+        }
       }
     }