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)
+ }
}
}