These tests are run using jclouds.
All tests are written keeping regions in mind. Null value have been passed for region. To get the endpoint it was making call to describeRegions, which is not supported by Cloudstack so code changes have been made for that.
A new project cloudsatck-query-ec2 have been created in jclouds. These changes are on repo in cloudstack-ec2-queryapi branch and in cloudstack-query-ec2 project.
In summary 13 API calls in tests scenarios are passing. Some failing/skipped ones are dependent on failed tests which are expected to pass once the failed test is ok. The APIs which are passing are as follows
- describeImages
- describeInstances
- describeAddresses
- createVolume
- describeVolumes
- describeSnapshots
- describeAvailabilityZones
- createKeyPair
- describeKeyPairs
- deleteKeyPair
- createSecurityGroup
- deleteSecurityGroup
- describeSecurityGroups
These tests are failing or skipped(dependent on failed tests)
- authorizeSecurityGroupIngress
- revokeSecurityGroupIngress
- createSnapshot
- createVolumeFromSnapshot
- deleteVolume
- attachVolume
- detachVolume
- runInstances
- terminateInstances
- deleteSnapshot
These tests are not implemented
- StopInstances
- StartInstances
- RebootInstances
- DescribeInstanceAttribute
- CreateImage
- DeregisterImage
- DescribeImageAttribute
- ModifyImageAttribute
- ResetImageAttribute
- RegisterImage
- ImportKeyPair
- AllocateAddress
- AssociateAddress
- DisassociateAddress
- ReleaseAddress
- GetPassword
- createTags
- describeTags
- deleteTags
Below things are in following format
Class containing below scenarios
- test scenario
- EC2 API Calls made in this scenario (parameters passed)
Tests which are passing
CloudStackQueryEC2AMIClientLiveTest
- testDescribeImages It expects two images(normal one and ebs one) so its expectation has been changed to one image.
- describeImagesInRegion
- describeImagesInRegion (imageid)
CloudStackQueryEC2InstanceClientLiveTest
- testDescribeInstancesNo change
- describeInstancesInRegion
CloudStackQueryEC2ElasticIPAddressClientLiveTest
- testDescribeAddresses No Change
- describeAddressesInRegion
- describeAddressesInRegion(publicIp)
CloudStackQueryEC2ElasticBlockStoreClientLiveTest
- *testCreateVolumeInAvailabilityZone *have to change result size to 2( as some test not cleaned up the created volume, work in progress)
- createVolumeInAvailabilityZone(zone)
- describeVolumesInRegion(volumeid)
- *testDescribeSnapshots *no change
- describeSnapshotsInRegion
- describeSnapshotsInRegion(snapshotid)
- testDescribeVolumes command is working fine
- describeVolumesInRegion
CloudStackQueryEC2AvailabilityZoneAndRegionClientLiveTest
- testDescribeAvailabilityZones no change
- describeAvailabilityZonesInRegion
- describeAvailabilityZonesInRegion(zoneid)
CloudStackQueryEC2KeyPairClientLiveTest
- *testCreateKeyPair *have to remove one delete keypair call as this was deleting non-existent keypair.
- createKeyPairInRegion(keyName)
- describeKeyPairsInRegion(keyName)
- deleteKeyPairInRegion(keyName)
- testDescribeKeyPairschanges related to region
- describeKeyPairsInRegion
- describeKeyPairsInRegion(keyName)
CloudStackQueryEC2SecurityGroupClientLiveTest
- *testCreateSecurityGroup *have to remove one delete security group call as this was deleting non-existent security group.
- createSecurityGroupInRegion(groupName, groupDescription)
- deleteSecurityGroupInRegion(groupName)
- *testDescribe *changes related to region
- describeSecurityGroupsInRegion
- describeSecurityGroupsInRegion(groupName)
Tests which are failing
CloudStackQueryEC2AMIClientLiveTest
- testDescribeImageBadId This is negative test, work in progress .
- testDescribeImageNotExists This is negative test, work in progress.
CloudStackQueryEC2SecurityGroupClientLiveTest
- testAuthorizeSecurityGroupIngressCidr For Ingress tests generated API call is not in correct format i.e. parameters missing Ippermissions.n prefix.
- createSecurityGroupInRegion(groupName)
- authorizeSecurityGroupIngressInRegion(groupName, IpProtocol, Ippermissions)
- revokeSecurityGroupIngressInRegion(groupName, IpProtocol, Ippermissions)
- deleteSecurityGroupInRegion(groupName)
- testAuthorizeSecurityGroupIngressSourceGroup
- createSecurityGroupInRegion(groupName)
- authorizeSecurityGroupIngressInRegion(groupName, IpProtocol, Ippermissions)
- revokeSecurityGroupIngressInRegion(groupName, IpProtocol, Ippermissions)
- deleteSecurityGroupInRegion(groupName)
- testAuthorizeSecurityGroupIngressSourcePort
- createSecurityGroupInRegion(groupName)
- authorizeSecurityGroupIngressInRegion(groupName, IpProtocol, Ippermissions)
- revokeSecurityGroupIngressInRegion(groupName, IpProtocol, Ippermissions)
- deleteSecurityGroupInRegion(groupName)
CloudStackQueryEC2ElasticBlockStoreClientLiveTest
- testCreateSnapshotInRegionSpecified VolumeId is not in Ready state, but in state Allocated. Cannot take snapshot. It requires created instance but did not contain any instance creation call. It depends on attach test which is not written. For cloudstack it needs instance to attach volume.
- createSnapshotInRegion(volumeId)
- describeSnapshotsInRegion(snapshotId)
Skipped test which are dependent on failed tests
CloudStackQueryEC2ElasticBlockStoreClientLiveTest
- testCreateVolumeFromSnapshotInAvailabilityZone
- createVolumeFromSnapshotInAvailabilityZone(snapshotId)
- deleteVolumeInRegion(volumeId)
- describeVolumesInRegion(volumeId)
- testCreateVolumeFromSnapshotInAvailabilityZoneWithSize
- createVolumeFromSnapshotInAvailabilityZone(snapshotId)
- deleteVolumeInRegion(volumeId)
- describeVolumesInRegion(volumeId)
- testDeleteVolumeInRegion
- deleteVolumeInRegion(volumeId)
- describeVolumesInRegion(volumeId)
- testGetCreateVolumePermissionForSnapshot
- getCreateVolumePermissionForSnapshotInRegion(snapshotId)
- testDeleteSnapshotInRegion
- deleteSnapshotInRegion(snapshotId)
- describeSnapshotsInRegion(snapshotId)
Tests which are not implemented in jclouds but test available as TODO.
- testAttachVolumeInRegion requires instance creation
- testDetachVolumeInRegion
API Calls which are not called in any tests
- StopInstances
- StartInstances
- RebootInstances
- DescribeInstanceAttribute
- CreateImage
- DeregisterImage
- DescribeImageAttribute
- ModifyImageAttribute
- ResetImageAttribute
- RegisterImage
- ImportKeyPair
- AllocateAddress
- AssociateAddress
- DisassociateAddress
- ReleaseAddress
- GetPassword
Things which are not in jclouds or not working
- Tags functionality is not present in jclouds in ec2 project
- Ingress related calls are generated without Ippermissions.n prefix in parameters
- No importKeyPair API Call