Skip to content

Commit

Permalink
Merge branch 'develop' of https://github.com/bwsw/cs-entities into CS…
Browse files Browse the repository at this point in the history
…EN-88

# Conflicts:
#	src/it/scala/com/bwsw/cloudstack/entities/events/VmEventsRetrievingTest.scala
#	src/it/scala/com/bwsw/cloudstack/entities/requests/account/AccountCreateRequestIntegrationTestSuite.scala
#	src/it/scala/com/bwsw/cloudstack/entities/requests/account/AccountFindRequestIntegrationTestSuite.scala
#	src/it/scala/com/bwsw/cloudstack/entities/requests/tag/TagCreateRequestIntegrationTestSuite.scala
#	src/it/scala/com/bwsw/cloudstack/entities/requests/tag/TagFindRequestIntegrationTestSuite.scala
#	src/it/scala/com/bwsw/cloudstack/entities/requests/user/UserCreateRequestIntegrationTestSuite.scala
#	src/it/scala/com/bwsw/cloudstack/entities/requests/user/UserFindRequestIntegrationTestSuite.scala
#	src/it/scala/com/bwsw/cloudstack/entities/requests/vm/VmCreateRequestIntegrationTestSuite.scala
#	src/it/scala/com/bwsw/cloudstack/entities/requests/vm/VmFindRequestIntegrationTestSuite.scala
#	src/it/scala/com/bwsw/cloudstack/entities/util/dao/DomainDao.scala
#	src/it/scala/com/bwsw/cloudstack/entities/util/dao/ServiceOfferingDao.scala
#	src/it/scala/com/bwsw/cloudstack/entities/util/dao/TemplateDao.scala
#	src/it/scala/com/bwsw/cloudstack/entities/util/dao/ZoneDao.scala
#	src/main/scala/com/bwsw/cloudstack/entities/dao/AccountDao.scala
#	src/main/scala/com/bwsw/cloudstack/entities/dao/TagDao.scala
#	src/main/scala/com/bwsw/cloudstack/entities/dao/UserDao.scala
#	src/main/scala/com/bwsw/cloudstack/entities/dao/VirtualMachineDao.scala
#	src/main/scala/com/bwsw/cloudstack/entities/requests/template/TemplateFindRequest.scala
#	src/test/scala/com/bwsw/cloudstack/entities/dao/AccountDaoTestSuite.scala
#	src/test/scala/com/bwsw/cloudstack/entities/dao/TagDaoTestSuite.scala
#	src/test/scala/com/bwsw/cloudstack/entities/dao/UserDaoTestSuite.scala
#	src/test/scala/com/bwsw/cloudstack/entities/dao/VirtualMachineDaoTestSuite.scala
  • Loading branch information
MedvedevBW committed Feb 6, 2018
2 parents a4fa061 + 4a8b7a4 commit 262c154
Show file tree
Hide file tree
Showing 51 changed files with 374 additions and 188 deletions.
9 changes: 6 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ It based on the extensible request builders which simplify creating CloudStack r

Add the following to your `build.sbt`
```scala
libraryDependencies += "com.bwsw" %% "cs-entities" % "4.9.3"
libraryDependencies += "com.bwsw" %% "cs-entities" % "4.10.3-NP"
```
## Getting Started
1. Create Executor instance with specified parameters to interact with Apache CloudStack server. \
Expand Down Expand Up @@ -58,16 +58,19 @@ Run tests: `sbt test`
### Integration tests

1. Add local environment variables:
* `CS_PORT` - host of Apache CloudStack simulator server, for example - "8888"
* `KAFKA_HOST` - host of Kafka, for example - localhost
* `CS_PORT` - port of Apache CloudStack simulator server, for example - "8888"
* `CS_HOST` - host of Apache CloudStack simulator server, by default - "localhost"
* `KAFKA_HOST` - host of Kafka, for example - "localhost"
* `KAFKA_PORT` - port of Kafka, for example - "9092"
* `KAFKA_TOPIC` - kafka topic containing cloudstack events

2. Run Apache CloudStack simulator in docker container:
```bash
docker run -d --rm --name spotify-kafka --tty=true -p 2181:2181 -p $KAFKA_PORT:$KAFKA_PORT --env ADVERTISED_HOST=$KAFKA_HOST --env ADVERTISED_PORT=$KAFKA_PORT spotify/kafka

docker run --rm -e KAFKA_HOST="${KAFKA_HOST}" \
-e KAFKA_PORT="${KAFKA_PORT}" \
-e KAFKA_TOPIC="${KAFKA_TOPIC}" \
--name cloudstack-kafka-sim -d -p $CS_PORT:$CS_PORT bwsw/cs-simulator-kafka:4.10.3-NP
```

Expand Down
2 changes: 1 addition & 1 deletion build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ lazy val root = (project in file("."))
.settings(
name := "cs-entities",
organization := "com.bwsw",
version := "4.9.3",
version := "4.10.3-NP",
scalaVersion := "2.12.4",
libraryDependencies ++= Seq(
"br.com.autonomiccs" % "apache-cloudstack-java-client" % "1.0.5",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@ class AccountEventsRetrievingTest extends FlatSpec with TestEntities with Before
val consumer = new Consumer(kafkaEndpoint, kafkaTopic)
consumer.assignToEnd()

executor.executeRequest(accountCreateRequest.request)
executor.executeRequest(accountDeleteRequest.request)
executor.executeRequest(accountCreateRequest.getRequest)
executor.executeRequest(accountDeleteRequest.getRequest)

Thread.sleep(sleepInterval)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ class UserEventsRetrievingTest extends FlatSpec with TestEntities with BeforeAnd
val consumer = new Consumer(kafkaEndpoint, kafkaTopic)
consumer.assignToEnd()

executor.executeRequest(userCreateRequest.request)
executor.executeRequest(userCreateRequest.getRequest)

Thread.sleep(sleepInterval)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,9 @@ class VmEventsRetrievingTest extends FlatSpec with TestEntities with BeforeAndAf
val consumer = new Consumer(kafkaEndpoint, kafkaTopic)
consumer.assignToEnd()

val vmId = mapper.deserialize[VirtualMachineCreateResponse](executor.executeRequest(vmCreateRequest.request)).vm.id
val vmId = mapper.deserialize[VirtualMachineCreateResponse](executor.executeRequest(vmCreateRequest.getRequest)).vm.id
val vmDeleteRequest = new VmDeleteRequest(vmId)
executor.executeRequest(vmDeleteRequest.request)
executor.executeRequest(vmDeleteRequest.getRequest)

Thread.sleep(sleepInterval)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ class AccountCreateRequestIntegrationTestSuite extends FlatSpec with TestEntitie
password = password,
username = userName
)
val request = new AccountCreateRequest(settings).request
val request = new AccountCreateRequest(settings).getRequest

checkAccountCreation(request, settings)
}
Expand All @@ -60,7 +60,7 @@ class AccountCreateRequestIntegrationTestSuite extends FlatSpec with TestEntitie
val timeZone = TimeZone.getTimeZone("GMT+7:00")
val accountRole = (4, "User")

val domainCreateRequest = new DomainCreateRequest(domainName).request
val domainCreateRequest = new DomainCreateRequest(domainName).getRequest
val newDomainId = mapper.deserialize[DomainCreateResponse](executor.executeRequest(domainCreateRequest)).domainEntity.domain.id

val accountCreateSettings = Settings(
Expand All @@ -81,7 +81,7 @@ class AccountCreateRequestIntegrationTestSuite extends FlatSpec with TestEntitie
.withTimeZone(timeZone)
.withUserId(userId)

val actualAccount = mapper.deserialize[AccountCreateResponse](executor.executeRequest(accountCreateRequest.request)).accountEntity.account
val actualAccount = mapper.deserialize[AccountCreateResponse](executor.executeRequest(accountCreateRequest.getRequest)).accountEntity.account

val expectedAccount = Account(
id = accountId,
Expand All @@ -104,7 +104,7 @@ class AccountCreateRequestIntegrationTestSuite extends FlatSpec with TestEntitie

assert(actualAccount == expectedAccount)

val testRequest = new AccountFindRequest().request
val testRequest = new AccountFindRequest().getRequest

assert(checkPasswordCorrectness(accountCreateSettings.username, accountCreateSettings.password, s"/$domainName", testRequest))

Expand All @@ -123,7 +123,7 @@ class AccountCreateRequestIntegrationTestSuite extends FlatSpec with TestEntitie
password = password,
username = userName
)
val request = new AccountCreateRequest(settings).request.addParameter(incorrectParameter, ParameterValues.DUMMY_VALUE)
val request = new AccountCreateRequest(settings).getRequest.addParameter(incorrectParameter, ParameterValues.DUMMY_VALUE)

checkAccountCreation(request, settings)
}
Expand All @@ -140,7 +140,7 @@ class AccountCreateRequestIntegrationTestSuite extends FlatSpec with TestEntitie
testAccount.users.head.username == settings.username
)

val testRequest = new AccountFindRequest().request
val testRequest = new AccountFindRequest().getRequest

assert(checkPasswordCorrectness(settings.username, settings.password, "/", testRequest))
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ import scala.util.{Failure, Success, Try}
class AccountFindRequestIntegrationTestSuite extends FlatSpec with TestEntities {
it should "retrieve json string if request contains only default parameters" in {
val accountFindRequest = new AccountFindRequest
val response = mapper.deserialize[AccountFindResponse](executor.executeRequest(accountFindRequest.request))
val response = mapper.deserialize[AccountFindResponse](executor.executeRequest(accountFindRequest.getRequest))

assert(response.isInstanceOf[AccountFindResponse])
}
Expand All @@ -56,22 +56,22 @@ class AccountFindRequestIntegrationTestSuite extends FlatSpec with TestEntities
it should "return an empty list of accounts if entity with a specified value of name parameter does not exist" in {
val name = UUID.randomUUID().toString
val accountFindRequest = new AccountFindRequest().withName(name)
val response = mapper.deserialize[AccountFindResponse](executor.executeRequest(accountFindRequest.request))
val response = mapper.deserialize[AccountFindResponse](executor.executeRequest(accountFindRequest.getRequest))

assert(response.entityList.entities.isEmpty)
}

it should "retrieve json string if request contains default parameters and parameter with incorrect key" in {
val incorrectParameterKey = UUID.randomUUID().toString
val request = new AccountFindRequest().request.addParameter(incorrectParameterKey, ParameterValues.DUMMY_VALUE)
val request = new AccountFindRequest().getRequest.addParameter(incorrectParameterKey, ParameterValues.DUMMY_VALUE)
val response = mapper.deserialize[AccountFindResponse](executor.executeRequest(request))

assert(response.isInstanceOf[AccountFindResponse])
}

private def tryExecuteRequest(request: Request): Boolean = {
Try {
executor.executeRequest(request.request)
executor.executeRequest(request.getRequest)
} match {
case Success(_) => false
case Failure(e: ApacheCloudStackClientRequestRuntimeException) =>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ class TagCreateRequestIntegrationTestSuite extends fixture.FlatSpec with TestEnt
password = "passwd",
username = s"username $userId"
)
val userCreateRequest = new UserCreateRequest(userCreationSettings).withId(userId).request
val userCreateRequest = new UserCreateRequest(userCreationSettings).withId(userId).getRequest
mapper.deserialize[UserCreateResponse](executor.executeRequest(userCreateRequest))

val theFixture = FixtureParam(resourceIds)
Expand All @@ -63,7 +63,7 @@ class TagCreateRequestIntegrationTestSuite extends fixture.FlatSpec with TestEnt
resourceIds = fixture.resourceIds,
tags = expectedTags
)
val request = new TagCreateRequest(settings).request
val request = new TagCreateRequest(settings).getRequest
executor.executeRequest(request)

checkTagCreation(settings, expectedTags)
Expand All @@ -78,14 +78,14 @@ class TagCreateRequestIntegrationTestSuite extends fixture.FlatSpec with TestEnt
resourceIds = fixture.resourceIds,
tags = expectedTags
)
val request = new TagCreateRequest(settings).request.addParameter(incorrectParameter, DUMMY_VALUE)
val request = new TagCreateRequest(settings).getRequest.addParameter(incorrectParameter, DUMMY_VALUE)
executor.executeRequest(request)

checkTagCreation(settings, expectedTags)
}

private def checkTagCreation(settings: TagCreateRequest.Settings, expectedTags: List[Tag]): Unit = {
val tagFindRequest = new TagFindRequest().withResource(settings.resourceIds.head).request
val tagFindRequest = new TagFindRequest().withResource(settings.resourceIds.head).getRequest
val tags = mapper.deserialize[TagTestFindResponse](executor.executeRequest(tagFindRequest)).tags.maybeTags

assert(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ import scala.util.{Failure, Success, Try}
class TagFindRequestIntegrationTestSuite extends FlatSpec with TestEntities {
it should "retrieve json string if request contains only default parameters" in {
val tagFindRequest = new TagFindRequest
val response = mapper.deserialize[TagFindResponse](executor.executeRequest(tagFindRequest.request))
val response = mapper.deserialize[TagFindResponse](executor.executeRequest(tagFindRequest.getRequest))

assert(response.isInstanceOf[TagFindResponse])
}
Expand Down Expand Up @@ -85,21 +85,21 @@ class TagFindRequestIntegrationTestSuite extends FlatSpec with TestEntities {

it should "retrieve json string if request contains default parameters and parameter with incorrect key" in {
val incorrectParameterKey = UUID.randomUUID().toString
val request = new TagFindRequest().request.addParameter(incorrectParameterKey, ParameterValues.DUMMY_VALUE)
val request = new TagFindRequest().getRequest.addParameter(incorrectParameterKey, ParameterValues.DUMMY_VALUE)
val response = mapper.deserialize[TagFindResponse](executor.executeRequest(request))

assert(response.isInstanceOf[TagFindResponse])
}

private def checkEmptyResponse(request: Request) = {
val response = mapper.deserialize[TagFindResponse](executor.executeRequest(request.request))
val response = mapper.deserialize[TagFindResponse](executor.executeRequest(request.getRequest))

assert(response.entityList.entities.isEmpty)
}

private def tryExecuteRequest(request: Request): Boolean = {
Try {
executor.executeRequest(request.request)
executor.executeRequest(request.getRequest)
} match {
case Success(_) => false
case Failure(e: ApacheCloudStackClientRequestRuntimeException) =>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ class UserCreateRequestIntegrationTestSuite extends FlatSpec with TestEntities {
password = password,
username = userName
)
val request = new UserCreateRequest(settings).request
val request = new UserCreateRequest(settings).getRequest

checkUserCreation(request, settings)
}
Expand All @@ -60,7 +60,7 @@ class UserCreateRequestIntegrationTestSuite extends FlatSpec with TestEntities {
val password = UUID.randomUUID().toString
val timeZone = TimeZone.getTimeZone("GMT+7:00")

val domainCreateRequest = new DomainCreateRequest(domainName).request
val domainCreateRequest = new DomainCreateRequest(domainName).getRequest
val newDomainId = mapper.deserialize[DomainCreateResponse](executor.executeRequest(domainCreateRequest)).domainEntity.domain.id

val accountCreateRequest = new AccountCreateRequest(
Expand All @@ -74,7 +74,7 @@ class UserCreateRequestIntegrationTestSuite extends FlatSpec with TestEntities {
)
).withName(accountName).withDomain(newDomainId).withId(accountId)

executor.executeRequest(accountCreateRequest.request)
executor.executeRequest(accountCreateRequest.getRequest)

val settings = UserCreateRequest.Settings(
accountName = accountName,
Expand All @@ -98,11 +98,11 @@ class UserCreateRequestIntegrationTestSuite extends FlatSpec with TestEntities {
timezone = Some(timeZone.getID)
)

val actualUser = mapper.deserialize[UserCreateResponse](executor.executeRequest(userCreateRequest.request)).userEntity.user
val actualUser = mapper.deserialize[UserCreateResponse](executor.executeRequest(userCreateRequest.getRequest)).userEntity.user

assert(actualUser == expectedUser)

val testRequest = new UserFindRequest().request
val testRequest = new UserFindRequest().getRequest

assert(checkPasswordCorrectness(settings.username, settings.password, s"/$domainName", testRequest))

Expand All @@ -121,7 +121,7 @@ class UserCreateRequestIntegrationTestSuite extends FlatSpec with TestEntities {
password = password,
username = userName
)
val request = new UserCreateRequest(settings).request.addParameter(incorrectParameter, ParameterValues.DUMMY_VALUE)
val request = new UserCreateRequest(settings).getRequest.addParameter(incorrectParameter, ParameterValues.DUMMY_VALUE)

checkUserCreation(request, settings)
}
Expand All @@ -138,7 +138,7 @@ class UserCreateRequestIntegrationTestSuite extends FlatSpec with TestEntities {
actualUser.username == settings.username
)

val testRequest = new UserFindRequest().request
val testRequest = new UserFindRequest().getRequest

assert(checkPasswordCorrectness(settings.username, settings.password, "/", testRequest))
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ import scala.util.{Failure, Success, Try}
class UserFindRequestIntegrationTestSuite extends FlatSpec with TestEntities {
it should "retrieve json string if request contains only default parameters" in {
val userFindRequest = new UserFindRequest
val response = mapper.deserialize[UserFindResponse](executor.executeRequest(userFindRequest.request))
val response = mapper.deserialize[UserFindResponse](executor.executeRequest(userFindRequest.getRequest))

assert(response.isInstanceOf[UserFindResponse])
}
Expand Down Expand Up @@ -64,22 +64,22 @@ class UserFindRequestIntegrationTestSuite extends FlatSpec with TestEntities {
it should "return an empty list of users if entity with a specified value of name parameter does not exist" in {
val name = UUID.randomUUID().toString
val userFindRequest = new UserFindRequest().withName(name)
val response = mapper.deserialize[UserFindResponse](executor.executeRequest(userFindRequest.request))
val response = mapper.deserialize[UserFindResponse](executor.executeRequest(userFindRequest.getRequest))

assert(response.entityList.entities.isEmpty)
}

it should "retrieve json string if request contains default parameters and parameter with incorrect key" in {
val incorrectParameterKey = UUID.randomUUID().toString
val request = new UserFindRequest().request.addParameter(incorrectParameterKey, ParameterValues.DUMMY_VALUE)
val request = new UserFindRequest().getRequest.addParameter(incorrectParameterKey, ParameterValues.DUMMY_VALUE)
val response = mapper.deserialize[UserFindResponse](executor.executeRequest(request))

assert(response.isInstanceOf[UserFindResponse])
}

private def tryExecuteRequest(request: Request): Boolean = {
Try {
executor.executeRequest(request.request)
executor.executeRequest(request.getRequest)
} match {
case Success(_) => false
case Failure(e: ApacheCloudStackClientRequestRuntimeException) =>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,25 +36,25 @@ class VmCreateRequestIntegrationTestSuite extends FlatSpec with TestEntities {
it should "create a vm using a request which contains only required parameters" in {
val vmCreateRequest = new VmCreateRequest(VmCreateRequest.Settings(serviceOfferingId, templateId, zoneId))

checkVmCreation(vmCreateRequest.request)
checkVmCreation(vmCreateRequest.getRequest)
}

it should "create a vm using a request which contains the required and optional parameters" in {
val domainId = retrievedAdminDomainId
val accountFindRequest = new AccountFindRequest().withDomain(domainId)
val accountName = mapper.deserialize[AccountFindResponse](
executor.executeRequest(accountFindRequest.request)
executor.executeRequest(accountFindRequest.getRequest)
).entityList.entities.get.head.name

val vmCreateRequest = new VmCreateRequest(VmCreateRequest.Settings(serviceOfferingId, templateId, zoneId))
.withDomainAccount(accountName, domainId)
val response = executor.executeRequest(vmCreateRequest.request)
val response = executor.executeRequest(vmCreateRequest.getRequest)

val vmId = mapper.deserialize[VirtualMachineCreateResponse](response).vm.id

val vmFindRequest = new VmFindRequest().withId(vmId)

val actualVm = mapper.deserialize[VirtualMachineFindResponse](executor.executeRequest(vmFindRequest.request))
val actualVm = mapper.deserialize[VirtualMachineFindResponse](executor.executeRequest(vmFindRequest.getRequest))
.entityList.entities.get.head
val expectedVm = VirtualMachine(vmId, zoneId, templateId, serviceOfferingId, accountName, domainId)

Expand All @@ -65,9 +65,11 @@ class VmCreateRequestIntegrationTestSuite extends FlatSpec with TestEntities {
val incorrectParameter = UUID.randomUUID().toString
val request = new VmCreateRequest(
VmCreateRequest.Settings(serviceOfferingId, templateId, zoneId)
).request.addParameter(incorrectParameter, ParameterValues.DUMMY_VALUE)
)

checkVmCreation(request)
request.addParameter(incorrectParameter, ParameterValues.DUMMY_VALUE)

checkVmCreation(request.getRequest)
}

private def checkVmCreation(request: ApacheCloudStackRequest): Unit = {
Expand All @@ -77,7 +79,7 @@ class VmCreateRequestIntegrationTestSuite extends FlatSpec with TestEntities {

val vmFindRequest = new VmFindRequest().withId(vmId)

val actualVm = mapper.deserialize[VirtualMachineFindResponse](executor.executeRequest(vmFindRequest.request))
val actualVm = mapper.deserialize[VirtualMachineFindResponse](executor.executeRequest(vmFindRequest.getRequest))
.entityList.entities.get.head

assert(actualVm.id == vmId &&
Expand Down
Loading

0 comments on commit 262c154

Please sign in to comment.