diff --git a/README.md b/README.md index 0712650..4bffe85 100644 --- a/README.md +++ b/README.md @@ -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. \ @@ -58,9 +58,11 @@ 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 @@ -68,6 +70,7 @@ Run tests: `sbt test` 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 ``` diff --git a/build.sbt b/build.sbt index 5b6f7f0..71f0a85 100644 --- a/build.sbt +++ b/build.sbt @@ -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", diff --git a/src/it/scala/com/bwsw/cloudstack/entities/events/AccountEventsRetrievingTest.scala b/src/it/scala/com/bwsw/cloudstack/entities/events/AccountEventsRetrievingTest.scala index 903e6e7..b74936d 100644 --- a/src/it/scala/com/bwsw/cloudstack/entities/events/AccountEventsRetrievingTest.scala +++ b/src/it/scala/com/bwsw/cloudstack/entities/events/AccountEventsRetrievingTest.scala @@ -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) diff --git a/src/it/scala/com/bwsw/cloudstack/entities/events/UserEventsRetrievingTest.scala b/src/it/scala/com/bwsw/cloudstack/entities/events/UserEventsRetrievingTest.scala index 88955e7..e511611 100644 --- a/src/it/scala/com/bwsw/cloudstack/entities/events/UserEventsRetrievingTest.scala +++ b/src/it/scala/com/bwsw/cloudstack/entities/events/UserEventsRetrievingTest.scala @@ -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) diff --git a/src/it/scala/com/bwsw/cloudstack/entities/events/VmEventsRetrievingTest.scala b/src/it/scala/com/bwsw/cloudstack/entities/events/VmEventsRetrievingTest.scala index 96c8818..19e9345 100644 --- a/src/it/scala/com/bwsw/cloudstack/entities/events/VmEventsRetrievingTest.scala +++ b/src/it/scala/com/bwsw/cloudstack/entities/events/VmEventsRetrievingTest.scala @@ -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) diff --git a/src/it/scala/com/bwsw/cloudstack/entities/requests/account/AccountCreateRequestIntegrationTestSuite.scala b/src/it/scala/com/bwsw/cloudstack/entities/requests/account/AccountCreateRequestIntegrationTestSuite.scala index 12d1df3..86c9282 100644 --- a/src/it/scala/com/bwsw/cloudstack/entities/requests/account/AccountCreateRequestIntegrationTestSuite.scala +++ b/src/it/scala/com/bwsw/cloudstack/entities/requests/account/AccountCreateRequestIntegrationTestSuite.scala @@ -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) } @@ -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( @@ -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, @@ -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)) @@ -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) } @@ -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)) } diff --git a/src/it/scala/com/bwsw/cloudstack/entities/requests/account/AccountFindRequestIntegrationTestSuite.scala b/src/it/scala/com/bwsw/cloudstack/entities/requests/account/AccountFindRequestIntegrationTestSuite.scala index 960d7d5..7ac60bf 100644 --- a/src/it/scala/com/bwsw/cloudstack/entities/requests/account/AccountFindRequestIntegrationTestSuite.scala +++ b/src/it/scala/com/bwsw/cloudstack/entities/requests/account/AccountFindRequestIntegrationTestSuite.scala @@ -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]) } @@ -56,14 +56,14 @@ 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]) @@ -71,7 +71,7 @@ class AccountFindRequestIntegrationTestSuite extends FlatSpec with TestEntities private def tryExecuteRequest(request: Request): Boolean = { Try { - executor.executeRequest(request.request) + executor.executeRequest(request.getRequest) } match { case Success(_) => false case Failure(e: ApacheCloudStackClientRequestRuntimeException) => diff --git a/src/it/scala/com/bwsw/cloudstack/entities/requests/tag/TagCreateRequestIntegrationTestSuite.scala b/src/it/scala/com/bwsw/cloudstack/entities/requests/tag/TagCreateRequestIntegrationTestSuite.scala index fde2731..d79aa7e 100644 --- a/src/it/scala/com/bwsw/cloudstack/entities/requests/tag/TagCreateRequestIntegrationTestSuite.scala +++ b/src/it/scala/com/bwsw/cloudstack/entities/requests/tag/TagCreateRequestIntegrationTestSuite.scala @@ -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) @@ -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) @@ -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( diff --git a/src/it/scala/com/bwsw/cloudstack/entities/requests/tag/TagFindRequestIntegrationTestSuite.scala b/src/it/scala/com/bwsw/cloudstack/entities/requests/tag/TagFindRequestIntegrationTestSuite.scala index 8aaff22..f8b7994 100644 --- a/src/it/scala/com/bwsw/cloudstack/entities/requests/tag/TagFindRequestIntegrationTestSuite.scala +++ b/src/it/scala/com/bwsw/cloudstack/entities/requests/tag/TagFindRequestIntegrationTestSuite.scala @@ -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]) } @@ -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) => diff --git a/src/it/scala/com/bwsw/cloudstack/entities/requests/user/UserCreateRequestIntegrationTestSuite.scala b/src/it/scala/com/bwsw/cloudstack/entities/requests/user/UserCreateRequestIntegrationTestSuite.scala index 1ba6ec6..5f3e966 100644 --- a/src/it/scala/com/bwsw/cloudstack/entities/requests/user/UserCreateRequestIntegrationTestSuite.scala +++ b/src/it/scala/com/bwsw/cloudstack/entities/requests/user/UserCreateRequestIntegrationTestSuite.scala @@ -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) } @@ -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( @@ -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, @@ -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)) @@ -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) } @@ -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)) } diff --git a/src/it/scala/com/bwsw/cloudstack/entities/requests/user/UserFindRequestIntegrationTestSuite.scala b/src/it/scala/com/bwsw/cloudstack/entities/requests/user/UserFindRequestIntegrationTestSuite.scala index 8da2189..895d578 100644 --- a/src/it/scala/com/bwsw/cloudstack/entities/requests/user/UserFindRequestIntegrationTestSuite.scala +++ b/src/it/scala/com/bwsw/cloudstack/entities/requests/user/UserFindRequestIntegrationTestSuite.scala @@ -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]) } @@ -64,14 +64,14 @@ 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]) @@ -79,7 +79,7 @@ class UserFindRequestIntegrationTestSuite extends FlatSpec with TestEntities { private def tryExecuteRequest(request: Request): Boolean = { Try { - executor.executeRequest(request.request) + executor.executeRequest(request.getRequest) } match { case Success(_) => false case Failure(e: ApacheCloudStackClientRequestRuntimeException) => diff --git a/src/it/scala/com/bwsw/cloudstack/entities/requests/vm/VmCreateRequestIntegrationTestSuite.scala b/src/it/scala/com/bwsw/cloudstack/entities/requests/vm/VmCreateRequestIntegrationTestSuite.scala index 618b4bd..86a9a88 100644 --- a/src/it/scala/com/bwsw/cloudstack/entities/requests/vm/VmCreateRequestIntegrationTestSuite.scala +++ b/src/it/scala/com/bwsw/cloudstack/entities/requests/vm/VmCreateRequestIntegrationTestSuite.scala @@ -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) @@ -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 = { @@ -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 && diff --git a/src/it/scala/com/bwsw/cloudstack/entities/requests/vm/VmFindRequestIntegrationTestSuite.scala b/src/it/scala/com/bwsw/cloudstack/entities/requests/vm/VmFindRequestIntegrationTestSuite.scala index 829815a..cfcd2ba 100644 --- a/src/it/scala/com/bwsw/cloudstack/entities/requests/vm/VmFindRequestIntegrationTestSuite.scala +++ b/src/it/scala/com/bwsw/cloudstack/entities/requests/vm/VmFindRequestIntegrationTestSuite.scala @@ -32,7 +32,7 @@ import scala.util.{Failure, Success, Try} class VmFindRequestIntegrationTestSuite extends FlatSpec with TestEntities { it should "retrieve json string if request contains only default parameters" in { val vmFindRequest = new VmFindRequest - val response = mapper.deserialize[VirtualMachineFindResponse](executor.executeRequest(vmFindRequest.request)) + val response = mapper.deserialize[VirtualMachineFindResponse](executor.executeRequest(vmFindRequest.getRequest)) assert(response.isInstanceOf[VirtualMachineFindResponse]) } @@ -87,7 +87,7 @@ class VmFindRequestIntegrationTestSuite 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 VmFindRequest().request.addParameter(incorrectParameterKey, ParameterValues.DUMMY_VALUE) + val request = new VmFindRequest().getRequest.addParameter(incorrectParameterKey, ParameterValues.DUMMY_VALUE) val response = mapper.deserialize[VirtualMachineFindResponse](executor.executeRequest(request)) assert(response.isInstanceOf[VirtualMachineFindResponse]) @@ -95,7 +95,7 @@ class VmFindRequestIntegrationTestSuite extends FlatSpec with TestEntities { private def tryExecuteRequest(request: Request): Boolean = { Try { - executor.executeRequest(request.request) + executor.executeRequest(request.getRequest) } match { case Success(_) => false case Failure(e: ApacheCloudStackClientRequestRuntimeException) => diff --git a/src/it/scala/com/bwsw/cloudstack/entities/util/dao/DomainDao.scala b/src/it/scala/com/bwsw/cloudstack/entities/util/dao/DomainDao.scala index 0596e13..3dbf281 100644 --- a/src/it/scala/com/bwsw/cloudstack/entities/util/dao/DomainDao.scala +++ b/src/it/scala/com/bwsw/cloudstack/entities/util/dao/DomainDao.scala @@ -27,5 +27,5 @@ import com.bwsw.cloudstack.entities.responses.domain.{Domain, DomainFindResponse class DomainDao (executor: Executor, mapper: JsonMapper) extends GenericDao[DomainFindResponse, Domain](executor, mapper) { protected type F = DomainFindRequest - override def find(request: F)(implicit m: Manifest[DomainFindResponse]): Iterable[Domain] = super.find(request) + override def find[R <: F](request: R)(implicit m: Manifest[DomainFindResponse]): Iterable[Domain] = super.find(request) } diff --git a/src/it/scala/com/bwsw/cloudstack/entities/util/dao/ServiceOfferingDao.scala b/src/it/scala/com/bwsw/cloudstack/entities/util/dao/ServiceOfferingDao.scala index 0cb9250..f9da2cd 100644 --- a/src/it/scala/com/bwsw/cloudstack/entities/util/dao/ServiceOfferingDao.scala +++ b/src/it/scala/com/bwsw/cloudstack/entities/util/dao/ServiceOfferingDao.scala @@ -27,5 +27,5 @@ import com.bwsw.cloudstack.entities.responses.serviceoffering.{ServiceOffering, class ServiceOfferingDao(executor: Executor, mapper: JsonMapper) extends GenericDao[ServiceOfferingFindResponse, ServiceOffering](executor, mapper) { protected type F = ServiceOfferingFindRequest - override def find(request: ServiceOfferingFindRequest)(implicit m: Manifest[ServiceOfferingFindResponse]): Iterable[ServiceOffering] = super.find(request) + override def find[R <: F](request: R)(implicit m: Manifest[ServiceOfferingFindResponse]): Iterable[ServiceOffering] = super.find(request) } diff --git a/src/it/scala/com/bwsw/cloudstack/entities/util/dao/TemplateDao.scala b/src/it/scala/com/bwsw/cloudstack/entities/util/dao/TemplateDao.scala index d2547ab..49cf06f 100644 --- a/src/it/scala/com/bwsw/cloudstack/entities/util/dao/TemplateDao.scala +++ b/src/it/scala/com/bwsw/cloudstack/entities/util/dao/TemplateDao.scala @@ -27,5 +27,5 @@ import com.bwsw.cloudstack.entities.responses.template.{Template, TemplateFindRe class TemplateDao(executor: Executor, mapper: JsonMapper) extends GenericDao[TemplateFindResponse, Template](executor, mapper) { protected type F = TemplateFindRequest - override def find(request: TemplateFindRequest)(implicit m: Manifest[TemplateFindResponse]): Iterable[Template] = super.find(request) + override def find[R <: F](request: R)(implicit m: Manifest[TemplateFindResponse]): Iterable[Template] = super.find(request) } diff --git a/src/it/scala/com/bwsw/cloudstack/entities/util/dao/ZoneDao.scala b/src/it/scala/com/bwsw/cloudstack/entities/util/dao/ZoneDao.scala index bab4c43..81da901 100644 --- a/src/it/scala/com/bwsw/cloudstack/entities/util/dao/ZoneDao.scala +++ b/src/it/scala/com/bwsw/cloudstack/entities/util/dao/ZoneDao.scala @@ -27,5 +27,5 @@ import com.bwsw.cloudstack.entities.responses.zone.{Zone, ZoneFindResponse} class ZoneDao(executor: Executor, mapper: JsonMapper) extends GenericDao[ZoneFindResponse, Zone](executor, mapper) { protected type F = ZoneFindRequest - override def find(request: F)(implicit m: Manifest[ZoneFindResponse]): Iterable[Zone] = super.find(request) + override def find[R <: F](request: R)(implicit m: Manifest[ZoneFindResponse]): Iterable[Zone] = super.find(request) } diff --git a/src/main/scala/com/bwsw/cloudstack/entities/dao/AccountDao.scala b/src/main/scala/com/bwsw/cloudstack/entities/dao/AccountDao.scala index f26a89b..9148d4c 100644 --- a/src/main/scala/com/bwsw/cloudstack/entities/dao/AccountDao.scala +++ b/src/main/scala/com/bwsw/cloudstack/entities/dao/AccountDao.scala @@ -41,7 +41,7 @@ class AccountDao(executor: Executor, mapper: JsonMapper) extends GenericDao[Acco * * @param request see: [[AccountCreateRequest]] */ - override def create(request: C): Unit = { + override def create[R <: C](request: R): Unit = { Try { super.create(request) } match { @@ -58,7 +58,7 @@ class AccountDao(executor: Executor, mapper: JsonMapper) extends GenericDao[Acco * * @param request see: [[AccountFindRequest]] */ - override def find(request: F)(implicit m: Manifest[AccountFindResponse]): List[Account] = { + override def find[R <: F](request: R)(implicit m: Manifest[AccountFindResponse]): List[Account] = { logger.trace(s"find(request: $request)") val accounts = Try { super.find(request).toList diff --git a/src/main/scala/com/bwsw/cloudstack/entities/dao/GenericDao.scala b/src/main/scala/com/bwsw/cloudstack/entities/dao/GenericDao.scala index 685765d..bd20576 100644 --- a/src/main/scala/com/bwsw/cloudstack/entities/dao/GenericDao.scala +++ b/src/main/scala/com/bwsw/cloudstack/entities/dao/GenericDao.scala @@ -30,14 +30,14 @@ abstract class GenericDao[A <: EntityFindResponse, T <: Entity](protected val ex protected type F <: Request protected type C <: Request - def create(request: C): Unit = { + def create[R <: C](request: R): Unit = { logger.trace(s"create(request: $request)") - executor.executeRequest(request.request) + executor.executeRequest(request.getRequest) } - def find(request: F)(implicit m: Manifest[A]): Iterable[T] = { + def find[R <: F](request: R)(implicit m: Manifest[A]): Iterable[T] = { logger.trace(s"find(request: $request)") - val response = executor.executeRequest(request.request) + val response = executor.executeRequest(request.getRequest) mapper.deserialize[A](response).entityList.entities.getOrElse(List.empty[T]).asInstanceOf[Iterable[T]] } } diff --git a/src/main/scala/com/bwsw/cloudstack/entities/dao/TagDao.scala b/src/main/scala/com/bwsw/cloudstack/entities/dao/TagDao.scala index 1c68b49..8e54e33 100644 --- a/src/main/scala/com/bwsw/cloudstack/entities/dao/TagDao.scala +++ b/src/main/scala/com/bwsw/cloudstack/entities/dao/TagDao.scala @@ -41,7 +41,7 @@ class TagDao(executor: Executor, mapper: JsonMapper) extends GenericDao[TagFindR * * @param request see: [[TagCreateRequest]] */ - override def create(request: C): Unit = { + override def create[R <: C](request: R): Unit = { Try { super.create(request) } match { @@ -58,7 +58,7 @@ class TagDao(executor: Executor, mapper: JsonMapper) extends GenericDao[TagFindR * * @param request see: [[TagFindRequest]] */ - override def find(request: F)(implicit m: Manifest[TagFindResponse]): Set[Tag] = { + override def find[R <: F](request: R)(implicit m: Manifest[TagFindResponse]): Set[Tag] = { logger.trace(s"find(request: $request)") val tags = Try { super.find(request).toSet diff --git a/src/main/scala/com/bwsw/cloudstack/entities/dao/UserDao.scala b/src/main/scala/com/bwsw/cloudstack/entities/dao/UserDao.scala index 5d43c55..801945b 100644 --- a/src/main/scala/com/bwsw/cloudstack/entities/dao/UserDao.scala +++ b/src/main/scala/com/bwsw/cloudstack/entities/dao/UserDao.scala @@ -41,7 +41,7 @@ class UserDao(executor: Executor, mapper: JsonMapper) extends GenericDao[UserFin * * @param request see: [[UserCreateRequest]] */ - override def create(request: C): Unit = { + override def create[R <: C](request: R): Unit = { Try { super.create(request) } match { @@ -58,7 +58,7 @@ class UserDao(executor: Executor, mapper: JsonMapper) extends GenericDao[UserFin * * @param request see: [[UserFindRequest]] */ - override def find(request: F)(implicit m: Manifest[UserFindResponse]): List[User] = { + override def find[R <: F](request: R)(implicit m: Manifest[UserFindResponse]): List[User] = { logger.trace(s"find(request: $request)") val users = Try { super.find(request).toList diff --git a/src/main/scala/com/bwsw/cloudstack/entities/dao/VirtualMachineDao.scala b/src/main/scala/com/bwsw/cloudstack/entities/dao/VirtualMachineDao.scala index 41780e4..83197d4 100644 --- a/src/main/scala/com/bwsw/cloudstack/entities/dao/VirtualMachineDao.scala +++ b/src/main/scala/com/bwsw/cloudstack/entities/dao/VirtualMachineDao.scala @@ -43,7 +43,7 @@ class VirtualMachineDao(executor: Executor, mapper: JsonMapper) * * @param request see: [[VmCreateRequest]] */ - override def create(request: C): Unit = { + override def create[R <: C](request: R): Unit = { Try { super.create(request) } match { @@ -60,7 +60,7 @@ class VirtualMachineDao(executor: Executor, mapper: JsonMapper) * * @param request see: [[VmFindRequest]] */ - override def find(request: F)(implicit m: Manifest[VirtualMachineFindResponse]): List[VirtualMachine] = { + override def find[R <: F](request: R)(implicit m: Manifest[VirtualMachineFindResponse]): List[VirtualMachine] = { logger.trace(s"find(request: $request)") val virtualMachines = Try { super.find(request).toList diff --git a/src/main/scala/com/bwsw/cloudstack/entities/requests/Request.scala b/src/main/scala/com/bwsw/cloudstack/entities/requests/Request.scala index 68a15e3..93521f5 100644 --- a/src/main/scala/com/bwsw/cloudstack/entities/requests/Request.scala +++ b/src/main/scala/com/bwsw/cloudstack/entities/requests/Request.scala @@ -21,7 +21,15 @@ package com.bwsw.cloudstack.entities.requests import br.com.autonomiccs.apacheCloudStack.client.ApacheCloudStackRequest trait Request { - protected[entities] val request: ApacheCloudStackRequest + protected val request: ApacheCloudStackRequest + + def getRequest: ApacheCloudStackRequest = { + request + } + + def addParameter(name: String, value: Any): Unit ={ + request.addParameter(name, value) + } override def toString: String = { request.toString diff --git a/src/main/scala/com/bwsw/cloudstack/entities/requests/account/AccountCreateRequest.scala b/src/main/scala/com/bwsw/cloudstack/entities/requests/account/AccountCreateRequest.scala index 88d8b82..6a368a0 100644 --- a/src/main/scala/com/bwsw/cloudstack/entities/requests/account/AccountCreateRequest.scala +++ b/src/main/scala/com/bwsw/cloudstack/entities/requests/account/AccountCreateRequest.scala @@ -34,7 +34,7 @@ import com.bwsw.cloudstack.entities.requests.Request */ class AccountCreateRequest(settings: AccountCreateRequest.Settings) extends Request { - override protected[entities] val request = new ApacheCloudStackRequest(Commands.CREATE_ACCOUNT) + override protected val request = new ApacheCloudStackRequest(Commands.CREATE_ACCOUNT) .addParameter(RESPONSE, ParameterValues.JSON) .addParameter(ACCOUNT_TYPE, settings._type.numericValue) .addParameter(EMAIL, settings.email) diff --git a/src/main/scala/com/bwsw/cloudstack/entities/requests/account/AccountDeleteRequest.scala b/src/main/scala/com/bwsw/cloudstack/entities/requests/account/AccountDeleteRequest.scala index ebd3138..d5a445d 100644 --- a/src/main/scala/com/bwsw/cloudstack/entities/requests/account/AccountDeleteRequest.scala +++ b/src/main/scala/com/bwsw/cloudstack/entities/requests/account/AccountDeleteRequest.scala @@ -25,7 +25,7 @@ import com.bwsw.cloudstack.entities.requests.Constants.{Commands, ParameterKeys, import com.bwsw.cloudstack.entities.requests.Request class AccountDeleteRequest(id: UUID) extends Request { - override protected[entities] val request: ApacheCloudStackRequest = new ApacheCloudStackRequest(Commands.DELETE_ACCOUNT) + override protected val request: ApacheCloudStackRequest = new ApacheCloudStackRequest(Commands.DELETE_ACCOUNT) .addParameter(ParameterKeys.RESPONSE, ParameterValues.JSON) .addParameter(ParameterKeys.ID, id) } diff --git a/src/main/scala/com/bwsw/cloudstack/entities/requests/account/AccountFindRequest.scala b/src/main/scala/com/bwsw/cloudstack/entities/requests/account/AccountFindRequest.scala index eae6c4d..ec910e7 100644 --- a/src/main/scala/com/bwsw/cloudstack/entities/requests/account/AccountFindRequest.scala +++ b/src/main/scala/com/bwsw/cloudstack/entities/requests/account/AccountFindRequest.scala @@ -29,7 +29,7 @@ import com.bwsw.cloudstack.entities.requests.Request * Class is responsible for building ApacheCloudStackRequest with specified parameters for retrieving account list */ class AccountFindRequest extends Request { - override protected[entities] val request = new ApacheCloudStackRequest(Commands.LIST_ACCOUNTS) + override protected val request = new ApacheCloudStackRequest(Commands.LIST_ACCOUNTS) .addParameter(RESPONSE, ParameterValues.JSON) .addParameter(LIST_ALL, true) diff --git a/src/main/scala/com/bwsw/cloudstack/entities/requests/domain/DomainCreateRequest.scala b/src/main/scala/com/bwsw/cloudstack/entities/requests/domain/DomainCreateRequest.scala index fa996cd..c936a86 100644 --- a/src/main/scala/com/bwsw/cloudstack/entities/requests/domain/DomainCreateRequest.scala +++ b/src/main/scala/com/bwsw/cloudstack/entities/requests/domain/DomainCreateRequest.scala @@ -28,7 +28,7 @@ import com.bwsw.cloudstack.entities.requests.Request * @param name name of creating domain */ class DomainCreateRequest(name: String) extends Request { - override protected[entities] val request: ApacheCloudStackRequest = new ApacheCloudStackRequest(Commands.CREATE_DOMAIN) + override protected val request: ApacheCloudStackRequest = new ApacheCloudStackRequest(Commands.CREATE_DOMAIN) .addParameter(ParameterKeys.RESPONSE, ParameterValues.JSON) .addParameter(ParameterKeys.NAME, name) } diff --git a/src/main/scala/com/bwsw/cloudstack/entities/requests/domain/DomainFindRequest.scala b/src/main/scala/com/bwsw/cloudstack/entities/requests/domain/DomainFindRequest.scala index b16c90a..8afcaca 100644 --- a/src/main/scala/com/bwsw/cloudstack/entities/requests/domain/DomainFindRequest.scala +++ b/src/main/scala/com/bwsw/cloudstack/entities/requests/domain/DomainFindRequest.scala @@ -27,6 +27,6 @@ import com.bwsw.cloudstack.entities.requests.Request * By default it retrieves only domain for client user, you might to add "listAll" parameter for retrieving all domains. */ class DomainFindRequest extends Request { - override protected[entities] val request: ApacheCloudStackRequest = new ApacheCloudStackRequest(Commands.LIST_DOMAINS) + override protected val request: ApacheCloudStackRequest = new ApacheCloudStackRequest(Commands.LIST_DOMAINS) .addParameter(ParameterKeys.RESPONSE, ParameterValues.JSON) } diff --git a/src/main/scala/com/bwsw/cloudstack/entities/requests/serviceoffering/ServiceOfferingFindRequest.scala b/src/main/scala/com/bwsw/cloudstack/entities/requests/serviceoffering/ServiceOfferingFindRequest.scala index 7424aa0..e27e75e 100644 --- a/src/main/scala/com/bwsw/cloudstack/entities/requests/serviceoffering/ServiceOfferingFindRequest.scala +++ b/src/main/scala/com/bwsw/cloudstack/entities/requests/serviceoffering/ServiceOfferingFindRequest.scala @@ -26,7 +26,7 @@ import com.bwsw.cloudstack.entities.requests.Request * Class is responsible for building ApacheCloudStackRequest with specified parameters for retrieving service offering list. */ class ServiceOfferingFindRequest extends Request { - override protected[entities] val request: ApacheCloudStackRequest = new ApacheCloudStackRequest(Commands.LIST_SERVICE_OFFERINGS) + override protected val request: ApacheCloudStackRequest = new ApacheCloudStackRequest(Commands.LIST_SERVICE_OFFERINGS) .addParameter(ParameterKeys.RESPONSE, ParameterValues.JSON) .addParameter(ParameterKeys.LIST_ALL, true) } diff --git a/src/main/scala/com/bwsw/cloudstack/entities/requests/tag/TagCreateRequest.scala b/src/main/scala/com/bwsw/cloudstack/entities/requests/tag/TagCreateRequest.scala index 61660c1..bfac637 100644 --- a/src/main/scala/com/bwsw/cloudstack/entities/requests/tag/TagCreateRequest.scala +++ b/src/main/scala/com/bwsw/cloudstack/entities/requests/tag/TagCreateRequest.scala @@ -33,7 +33,7 @@ import com.bwsw.cloudstack.entities.responses.tag.Tag * @param settings required parameters for tag list creation, more info see AccountCreateRequest.Settings */ class TagCreateRequest(settings: TagCreateRequest.Settings) extends Request { - override protected[entities] val request = new ApacheCloudStackRequest(Commands.CREATE_TAGS) + override protected val request = new ApacheCloudStackRequest(Commands.CREATE_TAGS) .addParameter(RESPONSE, ParameterValues.JSON) .addParameter(RESOURCE_TYPE, settings.resourceType.name) .addParameter(RESOURCE_IDS, settings.resourceIds.mkString(",")) diff --git a/src/main/scala/com/bwsw/cloudstack/entities/requests/tag/TagFindRequest.scala b/src/main/scala/com/bwsw/cloudstack/entities/requests/tag/TagFindRequest.scala index 04afe28..61b386d 100644 --- a/src/main/scala/com/bwsw/cloudstack/entities/requests/tag/TagFindRequest.scala +++ b/src/main/scala/com/bwsw/cloudstack/entities/requests/tag/TagFindRequest.scala @@ -30,7 +30,7 @@ import com.bwsw.cloudstack.entities.requests.Request * Class is responsible for building ApacheCloudStackRequest with specified parameters for retrieving tag list */ class TagFindRequest extends Request { - override protected[entities] val request = new ApacheCloudStackRequest(Commands.LIST_TAGS) + override protected val request = new ApacheCloudStackRequest(Commands.LIST_TAGS) .addParameter(RESPONSE, ParameterValues.JSON) .addParameter(LIST_ALL, true) diff --git a/src/main/scala/com/bwsw/cloudstack/entities/requests/template/TemplateFindRequest.scala b/src/main/scala/com/bwsw/cloudstack/entities/requests/template/TemplateFindRequest.scala index f4e662b..37c7de4 100644 --- a/src/main/scala/com/bwsw/cloudstack/entities/requests/template/TemplateFindRequest.scala +++ b/src/main/scala/com/bwsw/cloudstack/entities/requests/template/TemplateFindRequest.scala @@ -29,7 +29,7 @@ import com.bwsw.cloudstack.entities.requests.template.filters.TemplateFilter * @param templateFilter see [[com.bwsw.cloudstack.entities.requests.template.filters.TemplateFilter]] */ class TemplateFindRequest(templateFilter: TemplateFilter) extends Request { - override protected[entities] val request = new ApacheCloudStackRequest(Commands.LIST_TEMPLATES) + override protected val request = new ApacheCloudStackRequest(Commands.LIST_TEMPLATES) .addParameter(ParameterKeys.RESPONSE, ParameterValues.JSON) .addParameter(ParameterKeys.LIST_ALL, true) .addParameter(ParameterKeys.TEMPLATE_FILTER, templateFilter.name) diff --git a/src/main/scala/com/bwsw/cloudstack/entities/requests/user/UserCreateRequest.scala b/src/main/scala/com/bwsw/cloudstack/entities/requests/user/UserCreateRequest.scala index 9a5a1bf..7e8c260 100644 --- a/src/main/scala/com/bwsw/cloudstack/entities/requests/user/UserCreateRequest.scala +++ b/src/main/scala/com/bwsw/cloudstack/entities/requests/user/UserCreateRequest.scala @@ -31,7 +31,7 @@ import com.bwsw.cloudstack.entities.requests.Request * @param settings required parameters for user creation, more info see UserCreateRequest.Settings */ class UserCreateRequest(settings: UserCreateRequest.Settings) extends Request { - override protected[entities] val request = new ApacheCloudStackRequest(Commands.CREATE_USER) + override protected val request = new ApacheCloudStackRequest(Commands.CREATE_USER) .addParameter(RESPONSE, ParameterValues.JSON) .addParameter(ACCOUNT, settings.accountName) .addParameter(EMAIL, settings.email) diff --git a/src/main/scala/com/bwsw/cloudstack/entities/requests/user/UserFindRequest.scala b/src/main/scala/com/bwsw/cloudstack/entities/requests/user/UserFindRequest.scala index a30ef6a..f2e92fb 100644 --- a/src/main/scala/com/bwsw/cloudstack/entities/requests/user/UserFindRequest.scala +++ b/src/main/scala/com/bwsw/cloudstack/entities/requests/user/UserFindRequest.scala @@ -29,7 +29,7 @@ import com.bwsw.cloudstack.entities.requests.Request * Class is responsible for building ApacheCloudStackRequest with specified parameters for retrieving user list */ class UserFindRequest extends Request { - override protected[entities] val request = new ApacheCloudStackRequest(Commands.LIST_USERS) + override protected val request = new ApacheCloudStackRequest(Commands.LIST_USERS) .addParameter(RESPONSE, ParameterValues.JSON) .addParameter(LIST_ALL, true) diff --git a/src/main/scala/com/bwsw/cloudstack/entities/requests/vm/VmCreateRequest.scala b/src/main/scala/com/bwsw/cloudstack/entities/requests/vm/VmCreateRequest.scala index 09cf374..cc9c0aa 100644 --- a/src/main/scala/com/bwsw/cloudstack/entities/requests/vm/VmCreateRequest.scala +++ b/src/main/scala/com/bwsw/cloudstack/entities/requests/vm/VmCreateRequest.scala @@ -32,7 +32,7 @@ import com.bwsw.cloudstack.entities.requests.Request */ class VmCreateRequest(settings: VmCreateRequest.Settings) extends Request { - override protected[entities] val request: ApacheCloudStackRequest = new ApacheCloudStackRequest(Commands.DEPLOY_VIRTUAL_MACHINE) + override protected val request: ApacheCloudStackRequest = new ApacheCloudStackRequest(Commands.DEPLOY_VIRTUAL_MACHINE) .addParameter(RESPONSE, ParameterValues.JSON) .addParameter(SERVICE_OFFERING_ID, settings.serviceOfferingId) .addParameter(TEMPLATE_ID, settings.templateId) diff --git a/src/main/scala/com/bwsw/cloudstack/entities/requests/vm/VmDeleteRequest.scala b/src/main/scala/com/bwsw/cloudstack/entities/requests/vm/VmDeleteRequest.scala index 2f6965d..783b1b1 100644 --- a/src/main/scala/com/bwsw/cloudstack/entities/requests/vm/VmDeleteRequest.scala +++ b/src/main/scala/com/bwsw/cloudstack/entities/requests/vm/VmDeleteRequest.scala @@ -25,7 +25,7 @@ import com.bwsw.cloudstack.entities.requests.Constants.{Commands, ParameterKeys, import com.bwsw.cloudstack.entities.requests.Request class VmDeleteRequest(id: UUID) extends Request { - override protected[entities] val request: ApacheCloudStackRequest = new ApacheCloudStackRequest(Commands.DELETE_VM) + override protected val request: ApacheCloudStackRequest = new ApacheCloudStackRequest(Commands.DELETE_VM) .addParameter(ParameterKeys.RESPONSE, ParameterValues.JSON) .addParameter(ParameterKeys.ID, id) } diff --git a/src/main/scala/com/bwsw/cloudstack/entities/requests/vm/VmFindRequest.scala b/src/main/scala/com/bwsw/cloudstack/entities/requests/vm/VmFindRequest.scala index b75bf87..6c013a1 100644 --- a/src/main/scala/com/bwsw/cloudstack/entities/requests/vm/VmFindRequest.scala +++ b/src/main/scala/com/bwsw/cloudstack/entities/requests/vm/VmFindRequest.scala @@ -29,7 +29,7 @@ import com.bwsw.cloudstack.entities.requests.Request * Class is responsible for building ApacheCloudStackRequest with specified parameters for retrieving vm list */ class VmFindRequest extends Request { - override protected[entities] val request = new ApacheCloudStackRequest(Commands.LIST_VMS) + override protected val request = new ApacheCloudStackRequest(Commands.LIST_VMS) .addParameter(RESPONSE, ParameterValues.JSON) .addParameter(LIST_ALL, true) diff --git a/src/main/scala/com/bwsw/cloudstack/entities/requests/zone/ZoneFindRequest.scala b/src/main/scala/com/bwsw/cloudstack/entities/requests/zone/ZoneFindRequest.scala index 441bfbc..2525ce1 100644 --- a/src/main/scala/com/bwsw/cloudstack/entities/requests/zone/ZoneFindRequest.scala +++ b/src/main/scala/com/bwsw/cloudstack/entities/requests/zone/ZoneFindRequest.scala @@ -26,7 +26,7 @@ import com.bwsw.cloudstack.entities.requests.Request * Class is responsible for building ApacheCloudStackRequest with specified parameters for retrieving zone list. */ class ZoneFindRequest extends Request { - override protected[entities] val request = new ApacheCloudStackRequest(Commands.LIST_ZONES) + override protected val request = new ApacheCloudStackRequest(Commands.LIST_ZONES) .addParameter(ParameterKeys.RESPONSE, ParameterValues.JSON) .addParameter(ParameterKeys.LIST_ALL, true) diff --git a/src/test/scala/com/bwsw/cloudstack/entities/TestConstants.scala b/src/test/scala/com/bwsw/cloudstack/entities/TestConstants.scala deleted file mode 100644 index 92a8810..0000000 --- a/src/test/scala/com/bwsw/cloudstack/entities/TestConstants.scala +++ /dev/null @@ -1,26 +0,0 @@ -/* -* 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 com.bwsw.cloudstack.entities - -object TestConstants { - object ParameterValues { - val JSON = "json" - val DUMMY_VALUE = "value" - } -} diff --git a/src/test/scala/com/bwsw/cloudstack/entities/dao/AccountDaoTestSuite.scala b/src/test/scala/com/bwsw/cloudstack/entities/dao/AccountDaoTestSuite.scala index 1cc1daf..1405676 100644 --- a/src/test/scala/com/bwsw/cloudstack/entities/dao/AccountDaoTestSuite.scala +++ b/src/test/scala/com/bwsw/cloudstack/entities/dao/AccountDaoTestSuite.scala @@ -36,7 +36,7 @@ class AccountDaoTestSuite extends FlatSpec with TestData { val executor = new Executor(executorSettings, clientCreator){ override def executeRequest(request: ApacheCloudStackRequest): String = { - assert(findRequest.request == request) + assert(findRequest.getRequest == request) Response.getAccountResponseJson(testAccount) } } @@ -49,7 +49,7 @@ class AccountDaoTestSuite extends FlatSpec with TestData { "find" should "return an empty entity list if a response json string does not contain the relevant data" in { val executor = new Executor(executorSettings, clientCreator){ override def executeRequest(request: ApacheCloudStackRequest): String = { - assert(findRequest.request == request) + assert(findRequest.getRequest == request) Response.getResponseWithEmptyAccountList } } @@ -64,7 +64,7 @@ class AccountDaoTestSuite extends FlatSpec with TestData { val statusCode = 431 val executor = new Executor(executorSettings, clientCreator){ override def executeRequest(request: ApacheCloudStackRequest): String = { - assert(findRequest.request == request) + assert(findRequest.getRequest == request) throw new ApacheCloudStackClientRequestRuntimeException(statusCode, "", "") } } @@ -77,7 +77,7 @@ class AccountDaoTestSuite extends FlatSpec with TestData { "find" should "not swallow non-ApacheCloudStackClientRequestRuntimeException" in { val executor = new Executor(executorSettings, clientCreator){ override def executeRequest(request: ApacheCloudStackRequest): String = { - assert(findRequest.request == request) + assert(findRequest.getRequest == request) throw new Exception } } @@ -91,7 +91,7 @@ class AccountDaoTestSuite extends FlatSpec with TestData { val statusCode = 400 val executor = new Executor(executorSettings, clientCreator) { override def executeRequest(request: ApacheCloudStackRequest): String = { - assert(findRequest.request == request) + assert(findRequest.getRequest == request) throw new ApacheCloudStackClientRequestRuntimeException(statusCode, "", "") } } @@ -101,6 +101,27 @@ class AccountDaoTestSuite extends FlatSpec with TestData { assertThrows[ApacheCloudStackClientRequestRuntimeException](accountDao.find(findRequest)) } + "find" should "handle child of AccountFindRequest" in { + val accountId = UUID.randomUUID() + val userId = UUID.randomUUID() + val expectedAccountList = List(Account(accountId, List(User(userId, accountId)))) + + class TestAccountFindRequest extends AccountFindRequest + + val childRequest = new TestAccountFindRequest + + val executor = new Executor(executorSettings, clientCreator){ + override def executeRequest(request: ApacheCloudStackRequest): String = { + assert(childRequest.getRequest == request) + Response.getAccountResponseJson(accountId.toString, userId.toString) + } + } + + val accountDao = new AccountDao(executor, jsonMapper) + + assert(accountDao.find(childRequest) == expectedAccountList) + } + "create" should "submit request to Executor" in { var actualRequests = List.empty[ApacheCloudStackRequest] val createRequest = new AccountCreateRequest(AccountCreateRequest.Settings( @@ -112,7 +133,7 @@ class AccountDaoTestSuite extends FlatSpec with TestData { username = "user" )) - val expectedRequests = List(createRequest.request) + val expectedRequests = List(createRequest.getRequest) val executor = new Executor(executorSettings, clientCreator) { override def executeRequest(request: ApacheCloudStackRequest): String = { @@ -138,7 +159,7 @@ class AccountDaoTestSuite extends FlatSpec with TestData { username = "user" )) - val expectedRequests = List(createRequest.request) + val expectedRequests = List(createRequest.getRequest) val executor = new Executor(executorSettings, clientCreator) { override def executeRequest(request: ApacheCloudStackRequest): String = { @@ -152,4 +173,34 @@ class AccountDaoTestSuite extends FlatSpec with TestData { assertThrows[Exception](accountDao.create(createRequest).isInstanceOf[Unit]) assert(actualRequests == expectedRequests) } + + "create" should "handle child of AccountCreateRequest" in { + var actualRequests = List.empty[ApacheCloudStackRequest] + val createRequestSettings = AccountCreateRequest.Settings( + _type = RootAdmin, + email = "e@e", + firstName = "fn", + lastName = "ln", + password = "passw", + username = "user" + ) + + class TestAccountCreateRequest extends AccountCreateRequest(createRequestSettings) + + val createRequest = new TestAccountCreateRequest + + val expectedRequests = List(createRequest.getRequest) + + val executor = new Executor(executorSettings, clientCreator) { + override def executeRequest(request: ApacheCloudStackRequest): String = { + actualRequests = actualRequests ::: request :: Nil + "" + } + } + + val accountDao = new AccountDao(executor, jsonMapper) + + assert(accountDao.create(createRequest).isInstanceOf[Unit]) + assert(actualRequests == expectedRequests) + } } diff --git a/src/test/scala/com/bwsw/cloudstack/entities/dao/TagDaoTestSuite.scala b/src/test/scala/com/bwsw/cloudstack/entities/dao/TagDaoTestSuite.scala index 5a1c832..3e8553a 100644 --- a/src/test/scala/com/bwsw/cloudstack/entities/dao/TagDaoTestSuite.scala +++ b/src/test/scala/com/bwsw/cloudstack/entities/dao/TagDaoTestSuite.scala @@ -27,19 +27,21 @@ import com.bwsw.cloudstack.entities.requests.tag.types.UserTagType import com.bwsw.cloudstack.entities.requests.tag.{TagCreateRequest, TagFindRequest} import com.bwsw.cloudstack.entities.TestConstants.ParameterValues.DUMMY_VALUE import com.bwsw.cloudstack.entities.responses.tag.Tag +import com.bwsw.cloudstack.entities.responses.Tag import org.scalatest.FlatSpec class TagDaoTestSuite extends FlatSpec with TestData { val findRequest = new TagFindRequest + val dummyValue = "value" "find" should "return non-empty entity set if a response json string contains the relevant data" in { val key = "key" - val expectedTagSet = Set(Tag(key, DUMMY_VALUE)) + val expectedTagSet = Set(Tag(key, dummyValue)) val executor = new Executor(executorSettings, clientCreator){ override def executeRequest(request: ApacheCloudStackRequest): String = { - assert(findRequest.request == request) - Response.getTagResponseJson(key, DUMMY_VALUE) + assert(findRequest.getRequest == request) + Response.getTagResponseJson(key, dummyValue) } } @@ -51,7 +53,7 @@ class TagDaoTestSuite extends FlatSpec with TestData { "find" should "return an empty entity set if a response json string does not contain the relevant data" in { val executor = new Executor(executorSettings, clientCreator){ override def executeRequest(request: ApacheCloudStackRequest): String = { - assert(findRequest.request == request) + assert(findRequest.getRequest == request) Response.getResponseWithEmptyTagList } } @@ -66,7 +68,7 @@ class TagDaoTestSuite extends FlatSpec with TestData { val statusCode = 431 val executor = new Executor(executorSettings, clientCreator){ override def executeRequest(request: ApacheCloudStackRequest): String = { - assert(findRequest.request == request) + assert(findRequest.getRequest == request) throw new ApacheCloudStackClientRequestRuntimeException(statusCode, "", "") } } @@ -79,7 +81,7 @@ class TagDaoTestSuite extends FlatSpec with TestData { "find" should "not swallow non-ApacheCloudStackClientRequestRuntimeException" in { val executor = new Executor(executorSettings, clientCreator){ override def executeRequest(request: ApacheCloudStackRequest): String = { - assert(findRequest.request == request) + assert(findRequest.getRequest == request) throw new Exception } } @@ -93,7 +95,7 @@ class TagDaoTestSuite extends FlatSpec with TestData { val statusCode = 400 val executor = new Executor(executorSettings, clientCreator) { override def executeRequest(request: ApacheCloudStackRequest): String = { - assert(findRequest.request == request) + assert(findRequest.getRequest == request) throw new ApacheCloudStackClientRequestRuntimeException(statusCode, "", "") } } @@ -103,15 +105,35 @@ class TagDaoTestSuite extends FlatSpec with TestData { assertThrows[ApacheCloudStackClientRequestRuntimeException](tagDao.find(findRequest)) } + "find" should "handle child of TagFindRequest" in { + val key = "key" + val expectedTagSet = Set(Tag(key, dummyValue)) + + class TestTagFindRequest extends TagFindRequest + + val tagFindRequest = new TestTagFindRequest + + val executor = new Executor(executorSettings, clientCreator){ + override def executeRequest(request: ApacheCloudStackRequest): String = { + assert(tagFindRequest.getRequest == request) + Response.getTagResponseJson(key, dummyValue) + } + } + + val tagDao = new TagDao(executor, jsonMapper) + + assert(tagDao.find(tagFindRequest) == expectedTagSet) + } + "create" should "submit request to Executor" in { var actualRequests = List.empty[ApacheCloudStackRequest] val createRequest = new TagCreateRequest(TagCreateRequest.Settings( resourceType = UserTagType, resourceIds = Set(UUID.randomUUID(), UUID.randomUUID()), - tags = List(Tag("key", DUMMY_VALUE), Tag("key1", DUMMY_VALUE)) + tags = List(Tag("key", dummyValue), Tag("key1", dummyValue)) )) - val expectedRequests = List(createRequest.request) + val expectedRequests = List(createRequest.getRequest) val executor = new Executor(executorSettings, clientCreator) { override def executeRequest(request: ApacheCloudStackRequest): String = { @@ -131,10 +153,10 @@ class TagDaoTestSuite extends FlatSpec with TestData { val createRequest = new TagCreateRequest(TagCreateRequest.Settings( resourceType = UserTagType, resourceIds = Set(UUID.randomUUID(), UUID.randomUUID()), - tags = List(Tag("key", DUMMY_VALUE), Tag("key1", DUMMY_VALUE)) + tags = List(Tag("key", dummyValue), Tag("key1", dummyValue)) )) - val expectedRequests = List(createRequest.request) + val expectedRequests = List(createRequest.getRequest) val executor = new Executor(executorSettings, clientCreator) { override def executeRequest(request: ApacheCloudStackRequest): String = { @@ -148,4 +170,31 @@ class TagDaoTestSuite extends FlatSpec with TestData { assertThrows[Exception](tagDao.create(createRequest).isInstanceOf[Unit]) assert(actualRequests == expectedRequests) } + + "create" should "handle child of TagCreateRequest" in { + var actualRequests = List.empty[ApacheCloudStackRequest] + val createRequestSettings = TagCreateRequest.Settings( + resourceType = UserTagType, + resourceIds = Set(UUID.randomUUID(), UUID.randomUUID()), + tags = List(Tag("key", dummyValue), Tag("key1", dummyValue)) + ) + + class TestTagCreateRequest extends TagCreateRequest(createRequestSettings) + + val createRequest = new TestTagCreateRequest + + val expectedRequests = List(createRequest.getRequest) + + val executor = new Executor(executorSettings, clientCreator) { + override def executeRequest(request: ApacheCloudStackRequest): String = { + actualRequests = actualRequests ::: request :: Nil + "" + } + } + + val tagDao = new TagDao(executor, jsonMapper) + + assert(tagDao.create(createRequest).isInstanceOf[Unit]) + assert(actualRequests == expectedRequests) + } } diff --git a/src/test/scala/com/bwsw/cloudstack/entities/dao/UserDaoTestSuite.scala b/src/test/scala/com/bwsw/cloudstack/entities/dao/UserDaoTestSuite.scala index cfdbdda..4309665 100644 --- a/src/test/scala/com/bwsw/cloudstack/entities/dao/UserDaoTestSuite.scala +++ b/src/test/scala/com/bwsw/cloudstack/entities/dao/UserDaoTestSuite.scala @@ -33,7 +33,7 @@ class UserDaoTestSuite extends FlatSpec with TestData { val executor = new Executor(executorSettings, clientCreator){ override def executeRequest(request: ApacheCloudStackRequest): String = { - assert(findRequest.request == request) + assert(findRequest.getRequest == request) Response.getUserResponseJson(testUser) } } @@ -46,7 +46,7 @@ class UserDaoTestSuite extends FlatSpec with TestData { "find" should "return an empty entity list if a response json string does not contain the relevant data" in { val executor = new Executor(executorSettings, clientCreator){ override def executeRequest(request: ApacheCloudStackRequest): String = { - assert(findRequest.request == request) + assert(findRequest.getRequest == request) Response.getResponseWithEmptyUserList } } @@ -61,7 +61,7 @@ class UserDaoTestSuite extends FlatSpec with TestData { val statusCode = 431 val executor = new Executor(executorSettings, clientCreator){ override def executeRequest(request: ApacheCloudStackRequest): String = { - assert(findRequest.request == request) + assert(findRequest.getRequest == request) throw new ApacheCloudStackClientRequestRuntimeException(statusCode, "", "") } } @@ -74,7 +74,7 @@ class UserDaoTestSuite extends FlatSpec with TestData { "find" should "not swallow non-ApacheCloudStackClientRequestRuntimeException" in { val executor = new Executor(executorSettings, clientCreator){ override def executeRequest(request: ApacheCloudStackRequest): String = { - assert(findRequest.request == request) + assert(findRequest.getRequest == request) throw new Exception } } @@ -88,7 +88,7 @@ class UserDaoTestSuite extends FlatSpec with TestData { val statusCode = 400 val executor = new Executor(executorSettings, clientCreator) { override def executeRequest(request: ApacheCloudStackRequest): String = { - assert(findRequest.request == request) + assert(findRequest.getRequest == request) throw new ApacheCloudStackClientRequestRuntimeException(statusCode, "", "") } } @@ -98,6 +98,27 @@ class UserDaoTestSuite extends FlatSpec with TestData { assertThrows[ApacheCloudStackClientRequestRuntimeException](userDao.find(findRequest)) } + "find" should "handle child of UserFindRequest" in { + val userId = UUID.randomUUID() + val accountId = UUID.randomUUID() + val expectedUserList = List(User(userId, accountId)) + + class TestUserFindRequest extends UserFindRequest + + val findUserRequest = new TestUserFindRequest + + val executor = new Executor(executorSettings, clientCreator){ + override def executeRequest(request: ApacheCloudStackRequest): String = { + assert(findUserRequest.getRequest == request) + Response.getUserResponseJson(userId.toString, accountId.toString) + } + } + + val userDao = new UserDao(executor, jsonMapper) + + assert(userDao.find(findUserRequest) == expectedUserList) + } + "create" should "submit request to Executor" in { var actualRequests = List.empty[ApacheCloudStackRequest] val createRequest = new UserCreateRequest(UserCreateRequest.Settings( @@ -109,7 +130,7 @@ class UserDaoTestSuite extends FlatSpec with TestData { username = "user" )) - val expectedRequests = List(createRequest.request) + val expectedRequests = List(createRequest.getRequest) val executor = new Executor(executorSettings, clientCreator) { override def executeRequest(request: ApacheCloudStackRequest): String = { @@ -135,7 +156,7 @@ class UserDaoTestSuite extends FlatSpec with TestData { username = "user" )) - val expectedRequests = List(createRequest.request) + val expectedRequests = List(createRequest.getRequest) val executor = new Executor(executorSettings, clientCreator) { override def executeRequest(request: ApacheCloudStackRequest): String = { @@ -149,4 +170,34 @@ class UserDaoTestSuite extends FlatSpec with TestData { assertThrows[Exception](userDao.create(createRequest).isInstanceOf[Unit]) assert(actualRequests == expectedRequests) } + + "create" should "handle child of UserCreateRequest" in { + var actualRequests = List.empty[ApacheCloudStackRequest] + val createRequestSettings = UserCreateRequest.Settings( + accountName = "account", + email = "e@e", + firstName = "fn", + lastName = "ln", + password = "passw", + username = "user" + ) + + class TestUserCreateRequest extends UserCreateRequest(createRequestSettings) + + val createRequest = new TestUserCreateRequest + + val expectedRequests = List(createRequest.getRequest) + + val executor = new Executor(executorSettings, clientCreator) { + override def executeRequest(request: ApacheCloudStackRequest): String = { + actualRequests = actualRequests ::: request :: Nil + "" + } + } + + val userDao = new UserDao(executor, jsonMapper) + + assert(userDao.create(createRequest).isInstanceOf[Unit]) + assert(actualRequests == expectedRequests) + } } diff --git a/src/test/scala/com/bwsw/cloudstack/entities/dao/VirtualMachineDaoTestSuite.scala b/src/test/scala/com/bwsw/cloudstack/entities/dao/VirtualMachineDaoTestSuite.scala index 8987010..d5298b1 100644 --- a/src/test/scala/com/bwsw/cloudstack/entities/dao/VirtualMachineDaoTestSuite.scala +++ b/src/test/scala/com/bwsw/cloudstack/entities/dao/VirtualMachineDaoTestSuite.scala @@ -35,7 +35,7 @@ class VirtualMachineDaoTestSuite extends FlatSpec with TestData { val executor = new Executor(executorSettings, clientCreator){ override def executeRequest(request: ApacheCloudStackRequest): String = { - assert(findRequest.request == request) + assert(findRequest.getRequest == request) Response.getVmResponseJson(testVm) } } @@ -48,7 +48,7 @@ class VirtualMachineDaoTestSuite extends FlatSpec with TestData { "find" should "return an empty entity list if a response json string does not contain the relevant data" in { val executor = new Executor(executorSettings, clientCreator){ override def executeRequest(request: ApacheCloudStackRequest): String = { - assert(findRequest.request == request) + assert(findRequest.getRequest == request) Response.getResponseWithEmptyVmList } } @@ -63,7 +63,7 @@ class VirtualMachineDaoTestSuite extends FlatSpec with TestData { val statusCode = 431 val executor = new Executor(executorSettings, clientCreator){ override def executeRequest(request: ApacheCloudStackRequest): String = { - assert(findRequest.request == request) + assert(findRequest.getRequest == request) throw new ApacheCloudStackClientRequestRuntimeException(statusCode, "", "") } } @@ -76,7 +76,7 @@ class VirtualMachineDaoTestSuite extends FlatSpec with TestData { "find" should "not swallow non-ApacheCloudStackClientRequestRuntimeException" in { val executor = new Executor(executorSettings, clientCreator){ override def executeRequest(request: ApacheCloudStackRequest): String = { - assert(findRequest.request == request) + assert(findRequest.getRequest == request) throw new Exception } } @@ -90,7 +90,7 @@ class VirtualMachineDaoTestSuite extends FlatSpec with TestData { val statusCode = 400 val executor = new Executor(executorSettings, clientCreator) { override def executeRequest(request: ApacheCloudStackRequest): String = { - assert(findRequest.request == request) + assert(findRequest.getRequest == request) throw new ApacheCloudStackClientRequestRuntimeException(statusCode, "", "") } } @@ -100,6 +100,27 @@ class VirtualMachineDaoTestSuite extends FlatSpec with TestData { assertThrows[ApacheCloudStackClientRequestRuntimeException](vmDao.find(findRequest)) } + "find" should "handle child of VmFindRequest" in { + val vmId = UUID.randomUUID() + val accountName = "test" + val domainId = UUID.randomUUID() + val expectedVmList = List(VirtualMachine(vmId, accountName, domainId)) + + class TestVmFindRequest extends VmFindRequest + + val vmFindRequest = new TestVmFindRequest + + val executor = new Executor(executorSettings, clientCreator){ + override def executeRequest(request: ApacheCloudStackRequest): String = { + assert(vmFindRequest.getRequest == request) + Response.getVmResponseJson(vmId.toString, accountName, domainId.toString) + } + } + + val vmDao = new VirtualMachineDao(executor, jsonMapper) + + assert(vmDao.find(vmFindRequest) == expectedVmList) + } "create" should "submit request to Executor" in { var actualRequests = List.empty[ApacheCloudStackRequest] @@ -109,7 +130,7 @@ class VirtualMachineDaoTestSuite extends FlatSpec with TestData { zoneId = UUID.randomUUID() )) - val expectedRequests = List(createRequest.request) + val expectedRequests = List(createRequest.getRequest) val executor = new Executor(executorSettings, clientCreator) { override def executeRequest(request: ApacheCloudStackRequest): String = { @@ -132,7 +153,7 @@ class VirtualMachineDaoTestSuite extends FlatSpec with TestData { zoneId = UUID.randomUUID() )) - val expectedRequests = List(createRequest.request) + val expectedRequests = List(createRequest.getRequest) val executor = new Executor(executorSettings, clientCreator) { override def executeRequest(request: ApacheCloudStackRequest): String = { @@ -146,4 +167,31 @@ class VirtualMachineDaoTestSuite extends FlatSpec with TestData { assertThrows[Exception](vmDao.create(createRequest).isInstanceOf[Unit]) assert(actualRequests == expectedRequests) } + + "create" should "handle child of VmCreateRequest" in { + var actualRequests = List.empty[ApacheCloudStackRequest] + val createRequestSettings = VmCreateRequest.Settings( + serviceOfferingId = UUID.randomUUID(), + templateId = UUID.randomUUID(), + zoneId = UUID.randomUUID() + ) + + class TestVmCreateRequest extends VmCreateRequest(createRequestSettings) + + val createRequest = new TestVmCreateRequest + + val expectedRequests = List(createRequest.getRequest) + + val executor = new Executor(executorSettings, clientCreator) { + override def executeRequest(request: ApacheCloudStackRequest): String = { + actualRequests = actualRequests ::: request :: Nil + "" + } + } + + val vmDao = new VirtualMachineDao(executor, jsonMapper) + + assert(vmDao.create(createRequest).isInstanceOf[Unit]) + assert(actualRequests == expectedRequests) + } } diff --git a/src/test/scala/com/bwsw/cloudstack/entities/requests/account/AccountCreateRequestTestSuite.scala b/src/test/scala/com/bwsw/cloudstack/entities/requests/account/AccountCreateRequestTestSuite.scala index fc57916..bd0cb36 100644 --- a/src/test/scala/com/bwsw/cloudstack/entities/requests/account/AccountCreateRequestTestSuite.scala +++ b/src/test/scala/com/bwsw/cloudstack/entities/requests/account/AccountCreateRequestTestSuite.scala @@ -51,8 +51,8 @@ class AccountCreateRequestTestSuite extends FlatSpec { it should "create a request with predefined and specified (via constructor) parameters" in { val request = new AccountCreateRequest(settings) - assert(request.request.getParameters.asScala.toSet == defaultParameters) - assert(request.request.getCommand == Commands.CREATE_ACCOUNT) + assert(request.getRequest.getParameters.asScala.toSet == defaultParameters) + assert(request.getRequest.getCommand == Commands.CREATE_ACCOUNT) } "withId" should "add id parameter to a request" in { @@ -60,7 +60,7 @@ class AccountCreateRequestTestSuite extends FlatSpec { val expectedParameters = defaultParameters ++ Set(new ApacheCloudStackApiCommandParameter(ACCOUNT_ID, accountId.toString)) val request = new AccountCreateRequest(settings) - assert(request.withId(accountId).request.getParameters.asScala.toSet == expectedParameters) + assert(request.withId(accountId).getRequest.getParameters.asScala.toSet == expectedParameters) } "withTimeZone" should "add time zone parameter to a request" in { @@ -68,7 +68,7 @@ class AccountCreateRequestTestSuite extends FlatSpec { val expectedParameters = defaultParameters ++ Set(new ApacheCloudStackApiCommandParameter(TIMEZONE, timezone)) val request = new AccountCreateRequest(settings) - assert(request.withTimeZone(TimeZone.getTimeZone(timezone)).request.getParameters.asScala.toSet == expectedParameters) + assert(request.withTimeZone(TimeZone.getTimeZone(timezone)).getRequest.getParameters.asScala.toSet == expectedParameters) } "withDomain" should "add domain id parameter to a request" in { @@ -76,7 +76,7 @@ class AccountCreateRequestTestSuite extends FlatSpec { val expectedParameters = defaultParameters ++ Set(new ApacheCloudStackApiCommandParameter(DOMAIN_ID, domainId)) val request = new AccountCreateRequest(settings) - assert(request.withDomain(domainId).request.getParameters.asScala.toSet == expectedParameters) + assert(request.withDomain(domainId).getRequest.getParameters.asScala.toSet == expectedParameters) } "withName" should "add account name parameter to a request" in { @@ -84,7 +84,7 @@ class AccountCreateRequestTestSuite extends FlatSpec { val expectedParameters = defaultParameters ++ Set(new ApacheCloudStackApiCommandParameter(ACCOUNT, accountName)) val request = new AccountCreateRequest(settings) - assert(request.withName(accountName).request.getParameters.asScala.toSet == expectedParameters) + assert(request.withName(accountName).getRequest.getParameters.asScala.toSet == expectedParameters) } "withNetworkDomain" should "add network domain parameter to a request" in { @@ -92,7 +92,7 @@ class AccountCreateRequestTestSuite extends FlatSpec { val expectedParameters = defaultParameters ++ Set(new ApacheCloudStackApiCommandParameter(NETWORK_DOMAIN, networkdomain)) val request = new AccountCreateRequest(settings) - assert(request.withNetworkDomain(networkdomain).request.getParameters.asScala.toSet == expectedParameters) + assert(request.withNetworkDomain(networkdomain).getRequest.getParameters.asScala.toSet == expectedParameters) } "withRole" should "add role id parameter to a request" in { @@ -100,7 +100,7 @@ class AccountCreateRequestTestSuite extends FlatSpec { val expectedParameters = defaultParameters ++ Set(new ApacheCloudStackApiCommandParameter(ROLE_ID, role)) val request = new AccountCreateRequest(settings) - assert(request.withRole(role).request.getParameters.asScala.toSet == expectedParameters) + assert(request.withRole(role).getRequest.getParameters.asScala.toSet == expectedParameters) } "withUserId" should "add user id parameter to a request" in { @@ -108,6 +108,6 @@ class AccountCreateRequestTestSuite extends FlatSpec { val expectedParameters = defaultParameters ++ Set(new ApacheCloudStackApiCommandParameter(USER_ID, userId)) val request = new AccountCreateRequest(settings) - assert(request.withUserId(userId).request.getParameters.asScala.toSet == expectedParameters) + assert(request.withUserId(userId).getRequest.getParameters.asScala.toSet == expectedParameters) } } diff --git a/src/test/scala/com/bwsw/cloudstack/entities/requests/account/AccountFindRequestTestSuite.scala b/src/test/scala/com/bwsw/cloudstack/entities/requests/account/AccountFindRequestTestSuite.scala index 8b766e9..5f503b6 100644 --- a/src/test/scala/com/bwsw/cloudstack/entities/requests/account/AccountFindRequestTestSuite.scala +++ b/src/test/scala/com/bwsw/cloudstack/entities/requests/account/AccountFindRequestTestSuite.scala @@ -36,8 +36,8 @@ class AccountFindRequestTestSuite extends FlatSpec { it should "create a request with predefined parameters" in { val request = new AccountFindRequest - assert(request.request.getParameters.asScala.toSet == defaultParameters) - assert(request.request.getCommand == Commands.LIST_ACCOUNTS) + assert(request.getRequest.getParameters.asScala.toSet == defaultParameters) + assert(request.getRequest.getCommand == Commands.LIST_ACCOUNTS) } "withId" should "add id parameter to a request" in { @@ -45,7 +45,7 @@ class AccountFindRequestTestSuite extends FlatSpec { val expectedParameters = defaultParameters ++ Set(new ApacheCloudStackApiCommandParameter(ID, accountId)) val request = new AccountFindRequest - assert(request.withId(accountId).request.getParameters.asScala.toSet == expectedParameters) + assert(request.withId(accountId).getRequest.getParameters.asScala.toSet == expectedParameters) } "withName" should "add account name parameter to a request" in { @@ -53,7 +53,7 @@ class AccountFindRequestTestSuite extends FlatSpec { val expectedParameters = defaultParameters ++ Set(new ApacheCloudStackApiCommandParameter(NAME, accountName)) val request = new AccountFindRequest - assert(request.withName(accountName).request.getParameters.asScala.toSet == expectedParameters) + assert(request.withName(accountName).getRequest.getParameters.asScala.toSet == expectedParameters) } "withDomain" should "add domain id parameter to a request" in { @@ -61,6 +61,6 @@ class AccountFindRequestTestSuite extends FlatSpec { val expectedParameters = defaultParameters ++ Set(new ApacheCloudStackApiCommandParameter(DOMAIN_ID, domainId)) val request = new AccountFindRequest - assert(request.withDomain(domainId).request.getParameters.asScala.toSet == expectedParameters) + assert(request.withDomain(domainId).getRequest.getParameters.asScala.toSet == expectedParameters) } } diff --git a/src/test/scala/com/bwsw/cloudstack/entities/requests/tag/TagCreateRequestTestSuite.scala b/src/test/scala/com/bwsw/cloudstack/entities/requests/tag/TagCreateRequestTestSuite.scala index 63e8e02..9e888f6 100644 --- a/src/test/scala/com/bwsw/cloudstack/entities/requests/tag/TagCreateRequestTestSuite.scala +++ b/src/test/scala/com/bwsw/cloudstack/entities/requests/tag/TagCreateRequestTestSuite.scala @@ -55,7 +55,7 @@ class TagCreateRequestTestSuite extends FlatSpec { it should "create a request with predefined and specified (via constructor) parameters" in { val request = new TagCreateRequest(TagCreateRequest.Settings(tagType, resourceIds, tagList)) - assert(request.request.getParameters.asScala.toSet == defaultParameters) - assert(request.request.getCommand == Commands.CREATE_TAGS) + assert(request.getRequest.getParameters.asScala.toSet == defaultParameters) + assert(request.getRequest.getCommand == Commands.CREATE_TAGS) } } diff --git a/src/test/scala/com/bwsw/cloudstack/entities/requests/tag/TagFindRequestTestSuite.scala b/src/test/scala/com/bwsw/cloudstack/entities/requests/tag/TagFindRequestTestSuite.scala index 6245464..9f45083 100644 --- a/src/test/scala/com/bwsw/cloudstack/entities/requests/tag/TagFindRequestTestSuite.scala +++ b/src/test/scala/com/bwsw/cloudstack/entities/requests/tag/TagFindRequestTestSuite.scala @@ -21,8 +21,7 @@ package com.bwsw.cloudstack.entities.requests.tag import java.util.UUID import br.com.autonomiccs.apacheCloudStack.client.ApacheCloudStackApiCommandParameter -import com.bwsw.cloudstack.entities.TestConstants.ParameterValues -import com.bwsw.cloudstack.entities.requests.Constants.Commands +import com.bwsw.cloudstack.entities.requests.Constants.{Commands, ParameterValues} import com.bwsw.cloudstack.entities.requests.tag.types.VmTagType import com.bwsw.cloudstack.entities.requests.Constants.ParameterKeys._ import org.scalatest.FlatSpec @@ -38,8 +37,8 @@ class TagFindRequestTestSuite extends FlatSpec { it should "create a request with predefined parameters" in { val request = new TagFindRequest - assert(request.request.getParameters.asScala.toSet == defaultParameters) - assert(request.request.getCommand == Commands.LIST_TAGS) + assert(request.getRequest.getParameters.asScala.toSet == defaultParameters) + assert(request.getRequest.getCommand == Commands.LIST_TAGS) } "withAccountName" should "add an account name parameter to a request" in { @@ -47,7 +46,7 @@ class TagFindRequestTestSuite extends FlatSpec { val expectedParameters = defaultParameters ++ Set(new ApacheCloudStackApiCommandParameter(ACCOUNT, accountName)) val request = new TagFindRequest - assert(request.withAccountName(accountName).request.getParameters.asScala.toSet == expectedParameters) + assert(request.withAccountName(accountName).getRequest.getParameters.asScala.toSet == expectedParameters) } "withDomain" should "add a domain id parameter to a request" in { @@ -55,7 +54,7 @@ class TagFindRequestTestSuite extends FlatSpec { val expectedParameters = defaultParameters ++ Set(new ApacheCloudStackApiCommandParameter(DOMAIN_ID, domainId)) val request = new TagFindRequest - assert(request.withDomain(domainId).request.getParameters.asScala.toSet == expectedParameters) + assert(request.withDomain(domainId).getRequest.getParameters.asScala.toSet == expectedParameters) } "withKey" should "add a key parameter to a request" in { @@ -63,7 +62,7 @@ class TagFindRequestTestSuite extends FlatSpec { val expectedParameters = defaultParameters ++ Set(new ApacheCloudStackApiCommandParameter(KEY, key)) val request = new TagFindRequest - assert(request.withKey(key).request.getParameters.asScala.toSet == expectedParameters) + assert(request.withKey(key).getRequest.getParameters.asScala.toSet == expectedParameters) } "withResource" should "add a resource id parameter to a request" in { @@ -71,7 +70,7 @@ class TagFindRequestTestSuite extends FlatSpec { val expectedParameters = defaultParameters ++ Set(new ApacheCloudStackApiCommandParameter(RESOURCE_ID, resource)) val request = new TagFindRequest - assert(request.withResource(resource).request.getParameters.asScala.toSet == expectedParameters) + assert(request.withResource(resource).getRequest.getParameters.asScala.toSet == expectedParameters) } "withResourceType" should "add a resource type to a request" in { @@ -79,13 +78,14 @@ class TagFindRequestTestSuite extends FlatSpec { val expectedParameters = defaultParameters ++ Set(new ApacheCloudStackApiCommandParameter(RESOURCE_TYPE, resourceType.name)) val request = new TagFindRequest - assert(request.withResourceType(resourceType).request.getParameters.asScala.toSet == expectedParameters) + assert(request.withResourceType(resourceType).getRequest.getParameters.asScala.toSet == expectedParameters) } "withValue" should "add a tag value to a request" in { - val expectedParameters = defaultParameters ++ Set(new ApacheCloudStackApiCommandParameter(VALUE, ParameterValues.DUMMY_VALUE)) + val tagValue = "value" + val expectedParameters = defaultParameters ++ Set(new ApacheCloudStackApiCommandParameter(VALUE, tagValue)) val request = new TagFindRequest - assert(request.withValue(ParameterValues.DUMMY_VALUE).request.getParameters.asScala.toSet == expectedParameters) + assert(request.withValue(tagValue).getRequest.getParameters.asScala.toSet == expectedParameters) } } diff --git a/src/test/scala/com/bwsw/cloudstack/entities/requests/user/UserCreateRequestTestSuite.scala b/src/test/scala/com/bwsw/cloudstack/entities/requests/user/UserCreateRequestTestSuite.scala index 105e5a9..1184d06 100644 --- a/src/test/scala/com/bwsw/cloudstack/entities/requests/user/UserCreateRequestTestSuite.scala +++ b/src/test/scala/com/bwsw/cloudstack/entities/requests/user/UserCreateRequestTestSuite.scala @@ -50,8 +50,8 @@ class UserCreateRequestTestSuite extends FlatSpec { it should "create a request with predefined and specified (via constructor) parameters" in { val request = new UserCreateRequest(settings) - assert(request.request.getParameters.asScala.toSet == defaultParameters) - assert(request.request.getCommand == Commands.CREATE_USER) + assert(request.getRequest.getParameters.asScala.toSet == defaultParameters) + assert(request.getRequest.getCommand == Commands.CREATE_USER) } "withId" should "add id parameter to a request" in { @@ -59,7 +59,7 @@ class UserCreateRequestTestSuite extends FlatSpec { val expectedParameters = defaultParameters ++ Set(new ApacheCloudStackApiCommandParameter(USER_ID, userId.toString)) val request = new UserCreateRequest(settings) - assert(request.withId(userId).request.getParameters.asScala.toSet == expectedParameters) + assert(request.withId(userId).getRequest.getParameters.asScala.toSet == expectedParameters) } "withTimeZone" should "add time zone parameter to a request" in { @@ -67,7 +67,7 @@ class UserCreateRequestTestSuite extends FlatSpec { val expectedParameters = defaultParameters ++ Set(new ApacheCloudStackApiCommandParameter(TIMEZONE, timezone)) val request = new UserCreateRequest(settings) - assert(request.withTimeZone(TimeZone.getTimeZone(timezone)).request.getParameters.asScala.toSet == expectedParameters) + assert(request.withTimeZone(TimeZone.getTimeZone(timezone)).getRequest.getParameters.asScala.toSet == expectedParameters) } "withDomain" should "add domain id parameter to a request" in { @@ -75,6 +75,6 @@ class UserCreateRequestTestSuite extends FlatSpec { val expectedParameters = defaultParameters ++ Set(new ApacheCloudStackApiCommandParameter(DOMAIN_ID, domainId)) val request = new UserCreateRequest(settings) - assert(request.withDomain(domainId).request.getParameters.asScala.toSet == expectedParameters) + assert(request.withDomain(domainId).getRequest.getParameters.asScala.toSet == expectedParameters) } } diff --git a/src/test/scala/com/bwsw/cloudstack/entities/requests/user/UserFindRequestTestSuite.scala b/src/test/scala/com/bwsw/cloudstack/entities/requests/user/UserFindRequestTestSuite.scala index f098211..7276dba 100644 --- a/src/test/scala/com/bwsw/cloudstack/entities/requests/user/UserFindRequestTestSuite.scala +++ b/src/test/scala/com/bwsw/cloudstack/entities/requests/user/UserFindRequestTestSuite.scala @@ -36,8 +36,8 @@ class UserFindRequestTestSuite extends FlatSpec { it should "create a request with predefined parameters" in { val request = new UserFindRequest - assert(request.request.getParameters.asScala.toSet == defaultParameters) - assert(request.request.getCommand == Commands.LIST_USERS) + assert(request.getRequest.getParameters.asScala.toSet == defaultParameters) + assert(request.getRequest.getCommand == Commands.LIST_USERS) } "withId" should "add id parameter to a request" in { @@ -45,7 +45,7 @@ class UserFindRequestTestSuite extends FlatSpec { val expectedParameters = defaultParameters ++ Set(new ApacheCloudStackApiCommandParameter(ID, userId.toString)) val request = new UserFindRequest - assert(request.withId(userId).request.getParameters.asScala.toSet == expectedParameters) + assert(request.withId(userId).getRequest.getParameters.asScala.toSet == expectedParameters) } "withAccountName" should "add account name parameter to a request" in { @@ -53,7 +53,7 @@ class UserFindRequestTestSuite extends FlatSpec { val expectedParameters = defaultParameters ++ Set(new ApacheCloudStackApiCommandParameter(ACCOUNT, accountName)) val request = new UserFindRequest - assert(request.withAccountName(accountName).request.getParameters.asScala.toSet == expectedParameters) + assert(request.withAccountName(accountName).getRequest.getParameters.asScala.toSet == expectedParameters) } "withDomain" should "add domain id parameter to a request" in { @@ -61,7 +61,7 @@ class UserFindRequestTestSuite extends FlatSpec { val expectedParameters = defaultParameters ++ Set(new ApacheCloudStackApiCommandParameter(DOMAIN_ID, domainId)) val request = new UserFindRequest - assert(request.withDomain(domainId).request.getParameters.asScala.toSet == expectedParameters) + assert(request.withDomain(domainId).getRequest.getParameters.asScala.toSet == expectedParameters) } "withName" should "add user name parameter to a request" in { @@ -69,6 +69,6 @@ class UserFindRequestTestSuite extends FlatSpec { val expectedParameters = defaultParameters ++ Set(new ApacheCloudStackApiCommandParameter(USER_NAME, userName)) val request = new UserFindRequest - assert(request.withName(userName).request.getParameters.asScala.toSet == expectedParameters) + assert(request.withName(userName).getRequest.getParameters.asScala.toSet == expectedParameters) } } diff --git a/src/test/scala/com/bwsw/cloudstack/entities/requests/vm/VmCreateRequestTestSuite.scala b/src/test/scala/com/bwsw/cloudstack/entities/requests/vm/VmCreateRequestTestSuite.scala index 7646798..efffe40 100644 --- a/src/test/scala/com/bwsw/cloudstack/entities/requests/vm/VmCreateRequestTestSuite.scala +++ b/src/test/scala/com/bwsw/cloudstack/entities/requests/vm/VmCreateRequestTestSuite.scala @@ -45,8 +45,8 @@ class VmCreateRequestTestSuite extends FlatSpec { it should "create a request with predefined and specified (via constructor) parameters" in { val request = new VmCreateRequest(settings) - assert(request.request.getParameters.asScala.toSet == defaultParameters) - assert(request.request.getCommand == Commands.DEPLOY_VIRTUAL_MACHINE) + assert(request.getRequest.getParameters.asScala.toSet == defaultParameters) + assert(request.getRequest.getCommand == Commands.DEPLOY_VIRTUAL_MACHINE) } "withDomain" should "add a domain id parameter to a request" in { @@ -54,7 +54,7 @@ class VmCreateRequestTestSuite extends FlatSpec { val expectedParameters = defaultParameters ++ Set(new ApacheCloudStackApiCommandParameter(DOMAIN_ID, domainId)) val request = new VmCreateRequest(settings) - assert(request.withDomain(domainId).request.getParameters.asScala.toSet == expectedParameters) + assert(request.withDomain(domainId).getRequest.getParameters.asScala.toSet == expectedParameters) } "withAccountName" should "add an account name parameter to a request" in { @@ -66,6 +66,6 @@ class VmCreateRequestTestSuite extends FlatSpec { ) val request = new VmCreateRequest(settings) - assert(request.withDomainAccount(accountName, domainId).request.getParameters.asScala.toSet == expectedParameters) + assert(request.withDomainAccount(accountName, domainId).getRequest.getParameters.asScala.toSet == expectedParameters) } } diff --git a/src/test/scala/com/bwsw/cloudstack/entities/requests/vm/VmFindRequestTestSuite.scala b/src/test/scala/com/bwsw/cloudstack/entities/requests/vm/VmFindRequestTestSuite.scala index 8615def..26a2ab0 100644 --- a/src/test/scala/com/bwsw/cloudstack/entities/requests/vm/VmFindRequestTestSuite.scala +++ b/src/test/scala/com/bwsw/cloudstack/entities/requests/vm/VmFindRequestTestSuite.scala @@ -36,8 +36,8 @@ class VmFindRequestTestSuite extends FlatSpec { it should "create a request with predefined parameters" in { val request = new VmFindRequest - assert(request.request.getParameters.asScala.toSet == defaultParameters) - assert(request.request.getCommand == Commands.LIST_VMS) + assert(request.getRequest.getParameters.asScala.toSet == defaultParameters) + assert(request.getRequest.getCommand == Commands.LIST_VMS) } "withId" should "add an id parameter to a request" in { @@ -45,7 +45,7 @@ class VmFindRequestTestSuite extends FlatSpec { val expectedParameters = defaultParameters ++ Set(new ApacheCloudStackApiCommandParameter(ID, vmId)) val request = new VmFindRequest - assert(request.withId(vmId).request.getParameters.asScala.toSet == expectedParameters) + assert(request.withId(vmId).getRequest.getParameters.asScala.toSet == expectedParameters) } "withAccountName" should "add an account name parameter to a request" in { @@ -53,7 +53,7 @@ class VmFindRequestTestSuite extends FlatSpec { val expectedParameters = defaultParameters ++ Set(new ApacheCloudStackApiCommandParameter(ACCOUNT, accountName)) val request = new VmFindRequest - assert(request.withAccountName(accountName).request.getParameters.asScala.toSet == expectedParameters) + assert(request.withAccountName(accountName).getRequest.getParameters.asScala.toSet == expectedParameters) } "withDomain" should "add a domain id parameter to a request" in { @@ -61,7 +61,7 @@ class VmFindRequestTestSuite extends FlatSpec { val expectedParameters = defaultParameters ++ Set(new ApacheCloudStackApiCommandParameter(DOMAIN_ID, domainId)) val request = new VmFindRequest - assert(request.withDomain(domainId).request.getParameters.asScala.toSet == expectedParameters) + assert(request.withDomain(domainId).getRequest.getParameters.asScala.toSet == expectedParameters) } "withGroup" should "add a group id parameter to a request" in { @@ -69,7 +69,7 @@ class VmFindRequestTestSuite extends FlatSpec { val expectedParameters = defaultParameters ++ Set(new ApacheCloudStackApiCommandParameter(GROUP_ID, groupId)) val request = new VmFindRequest - assert(request.withGroup(groupId).request.getParameters.asScala.toSet == expectedParameters) + assert(request.withGroup(groupId).getRequest.getParameters.asScala.toSet == expectedParameters) } "withUser" should "add a user id parameter to a request" in { @@ -77,7 +77,7 @@ class VmFindRequestTestSuite extends FlatSpec { val expectedParameters = defaultParameters ++ Set(new ApacheCloudStackApiCommandParameter(USER_ID, userId)) val request = new VmFindRequest - assert(request.withUser(userId).request.getParameters.asScala.toSet == expectedParameters) + assert(request.withUser(userId).getRequest.getParameters.asScala.toSet == expectedParameters) } "withZone" should "add a zone id parameter to a request" in { @@ -85,6 +85,6 @@ class VmFindRequestTestSuite extends FlatSpec { val expectedParameters = defaultParameters ++ Set(new ApacheCloudStackApiCommandParameter(ZONE_ID, zoneId)) val request = new VmFindRequest - assert(request.withZone(zoneId).request.getParameters.asScala.toSet == expectedParameters) + assert(request.withZone(zoneId).getRequest.getParameters.asScala.toSet == expectedParameters) } }