Skip to content

Commit

Permalink
Merge branch 'maint/4.0/testing' into testing
Browse files Browse the repository at this point in the history
  • Loading branch information
shaon committed Nov 3, 2014
2 parents 77d35c3 + 44dca9a commit 83d5acf
Show file tree
Hide file tree
Showing 5 changed files with 61 additions and 24 deletions.
2 changes: 1 addition & 1 deletion eucaops/iamops.py
Expand Up @@ -644,7 +644,7 @@ def get_server_cert(self, cert_name):
def delete_server_cert(self, cert_name):
self.debug("deleting server certificate: " + cert_name)
self.euare.delete_server_cert(cert_name)
if (cert_name) in str(self.euare.list_server_certs()):
if (cert_name) in str(self.euare.get_all_server_certs()):
raise Exception("certificate " + cert_name + " not deleted.")

def list_server_certs(self, path_prefix='/', marker=None, max_items=None):
Expand Down
76 changes: 56 additions & 20 deletions eutester4j/com/eucalyptus/tests/awssdk/S3ObjectTests.java
Expand Up @@ -15,7 +15,10 @@
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterMethod;
Expand All @@ -25,6 +28,7 @@

import com.amazonaws.AmazonServiceException;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.Headers;
import com.amazonaws.services.s3.model.Bucket;
import com.amazonaws.services.s3.model.CopyObjectResult;
import com.amazonaws.services.s3.model.GetObjectRequest;
Expand Down Expand Up @@ -314,26 +318,8 @@ public void getObjectWithRange() throws Exception {
cleanupTasks.add(new Runnable() {
@Override
public void run() {
int counter = 0;
do {
print("Deleting object " + key + " from bucket " + bucketName);
counter++;
try {
s3.deleteObject(bucketName, key);
break;
} catch (AmazonServiceException ase) {
// TODO File a bug
print("Error deleting object " + key + " from bucket " + bucketName);
ase.printStackTrace();
if (counter < 5) {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
} while (counter < 5);
print("Deleting object " + key);
s3.deleteObject(bucketName, key);
}
});
assertTrue("Invalid put object result", putObj != null);
Expand Down Expand Up @@ -402,6 +388,56 @@ public void run() {
}
}

@Test
public void headObject() throws Exception {
testInfo(this.getClass().getSimpleName() + " - headObject");
try {
final String key = eucaUUID();
File fileToPut = new File("test.dat");
String md5_orig = BinaryUtils.toHex(Md5Utils.computeMD5Hash(new FileInputStream(fileToPut)));

ObjectMetadata setMd = new ObjectMetadata();
Map<String, String> userMetadataMap = new HashMap<String, String>();
userMetadataMap.put("somerandomkey", "somerandomvalue");
userMetadataMap.put("hello", "world");
setMd.setUserMetadata(userMetadataMap);

print("Putting object " + key + " in bucket " + bucketName);
PutObjectResult putObj = s3.putObject(new PutObjectRequest(bucketName, key, fileToPut).withMetadata(setMd));
cleanupTasks.add(new Runnable() {
@Override
public void run() {
print("Deleting object " + key);
s3.deleteObject(bucketName, key);
}
});
assertTrue("Invalid put object result", putObj != null);
assertTrue("Mimatch in md5sums between original object and PUT result. Expected " + md5_orig + ", but got " + putObj.getETag(),
putObj.getETag() != null && putObj.getETag().equals(md5_orig));

ObjectMetadata getMd = s3.getObjectMetadata(bucketName, key);
assertTrue("Invalid object metadata result", getMd != null);
assertTrue("Mismatch in object length. Expected " + fileToPut.length() + ", but got " + getMd.getContentLength(),
getMd.getContentLength() == fileToPut.length());
assertTrue("Invalid content type", getMd.getContentType() != null);
assertTrue("Mismatch in Etags between original object and metadata results. Expected " + md5_orig + ", but got " + getMd.getETag(), getMd.getETag()
.equals(md5_orig));
assertTrue("Invalid last modified date", getMd.getLastModified() != null);
assertTrue("No user metadata found", getMd.getUserMetadata() != null || !getMd.getUserMetadata().isEmpty());
assertTrue("Expected to find " + userMetadataMap.size() + " element(s) in the metadata but found " + getMd.getUserMetadata().size(),
userMetadataMap.size() == getMd.getUserMetadata().size());
for (Map.Entry<String, String> entry : userMetadataMap.entrySet()) {
assertTrue("Metadata key " + entry.getKey() + " not found in response", getMd.getUserMetadata().containsKey(entry.getKey()));
assertTrue(
"Expected metadata value for key " + entry.getKey() + " to be " + entry.getValue() + " but got "
+ getMd.getUserMetadata().get(entry.getKey()), getMd.getUserMetadata().get(entry.getKey()).equals(entry.getValue()));
}
} catch (AmazonServiceException ase) {
printException(ase);
assertThat(false, "Failed to run headObject");
}
}

private void flushDataSilently(InputStream input) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(input));
print("Flushing object input stream silently");
Expand Down
Expand Up @@ -80,7 +80,7 @@ public void run() {
.withAvailabilityZones(AVAILABILITY_ZONE));

// Describe metrics collection types
print("Describeing metric collection types");
print("Describing metric collection types");
final DescribeMetricCollectionTypesResult collectionTypesResult = as.describeMetricCollectionTypes();
print(collectionTypesResult.toString());
assertThat(collectionTypesResult.getGranularities() != null, "Expected granularities");
Expand Down
2 changes: 1 addition & 1 deletion testcases/cloud_user/autoscaling/autoscaling.py
Expand Up @@ -64,7 +64,7 @@ def __init__(self, extra_args= None):

self.image = self.args.emi
if not self.image:
self.image = self.tester.get_emi(root_device_type="instance-store")
self.image = self.tester.get_emi()
self.address = None
self.asg = None

Expand Down
3 changes: 2 additions & 1 deletion testcases/cloud_user/elb/ssl_termination.py
Expand Up @@ -61,7 +61,7 @@ def __init__(self, extra_args= None):
self.tester.authorize_group_by_name(group_name=self.group.name )
self.tester.authorize_group_by_name(group_name=self.group.name, port=-1, protocol="icmp" )
### Generate a keypair for the instance
self.keypair = self.tester.add_keypair( "keypair-" + str(time.time()))
self.keypair = self.tester.add_keypair( "keypair-" + str(int(time.time())))
self.keypath = '%s/%s.pem' % (os.curdir, self.keypair.name)

### Get an image
Expand Down Expand Up @@ -113,6 +113,7 @@ def ssl_termination(self):
self.tester.remove_lb_listener(lb_name=self.load_balancer.name, port=self.load_balancer_port)

"""perform https requests to LB"""
self.tester.sleep(5)
self.tester.generate_http_requests(url=lb_url, count=10)

def clean_method(self):
Expand Down

0 comments on commit 83d5acf

Please sign in to comment.