View Javadoc
1   package org.kuali.common.devops.archive.sweep.test;
2   
3   import static com.google.common.collect.Lists.newArrayList;
4   import static java.lang.String.format;
5   import static java.lang.System.currentTimeMillis;
6   import static java.util.Arrays.asList;
7   import static org.kuali.common.devops.archive.sweep.Functions.unixAttributesAsMap;
8   import static org.kuali.common.util.encrypt.Encryption.getDefaultEncryptor;
9   import static org.kuali.common.util.log.LoggerUtils.logTable;
10  import static org.kuali.common.util.log.Loggers.newLogger;
11  
12  import java.util.List;
13  import java.util.Map;
14  
15  import org.junit.Test;
16  import org.kuali.common.aws.model.ImmutableAWSCredentials;
17  import org.kuali.common.aws.s3.DefaultS3Service;
18  import org.kuali.common.aws.s3.S3Service;
19  import org.kuali.common.aws.s3.model.ObjectMetadata;
20  import org.kuali.common.aws.s3.model.PutDirRequest;
21  import org.kuali.common.devops.archive.sweep.model.UnixAttributes;
22  import org.kuali.common.util.encrypt.Encryptor;
23  import org.slf4j.Logger;
24  
25  import com.amazonaws.auth.AWSCredentials;
26  import com.google.common.collect.Ordering;
27  
28  public class PutDirTest {
29  
30  	private static final Logger logger = newLogger();
31  
32  	@Test
33  	public void test() {
34  		try {
35  			String bucket = "archive.kuali.org";
36  			List<String> keys = asList("org/kuali/testci/home/tomcat7/.jenkins/jobs/kdo-sweep-builds/");
37  			// UnixAttributes root = UnixAttributes.builder().withGid(0).withMode(16877).withMtime(currentTimeMillis()).withUid(0).build();
38  			UnixAttributes tomcat7 = UnixAttributes.builder().withGid(113).withMode(16877).withMtime(currentTimeMillis()).withUid(107).build();
39  			Map<String, String> user = unixAttributesAsMap().apply(tomcat7);
40  			ObjectMetadata meta = ObjectMetadata.builder().withUserMetadata(user).build();
41  			for (String key : keys) {
42  				PutDirRequest request = PutDirRequest.builder().withBucket(bucket).withKey(key).withMetadata(meta).build();
43  				S3Service s3 = DefaultS3Service.build(getFoundation());
44  				s3.putDirectory(request);
45  				ObjectMetadata omd = s3.getMetadata(bucket, key);
46  				show(key, omd.getUserMetadata());
47  			}
48  		} catch (Throwable e) {
49  			e.printStackTrace();
50  		}
51  	}
52  
53  	private void show(String key, Map<String, ?> map) {
54  		List<String> columns = asList("key", "value");
55  		List<Object[]> rows = newArrayList();
56  		List<String> keys = Ordering.natural().immutableSortedCopy(map.keySet());
57  		for (String element : keys) {
58  			rows.add(new Object[] { element, map.get(element) });
59  		}
60  		logTable(key, columns, rows);
61  	}
62  
63  	private static AWSCredentials getFoundation() {
64  		Encryptor enc = getDefaultEncryptor();
65  		String accessKey = enc.decrypt("U2FsdGVkX19A2e6dN/ipVfb/9n0DROCPIrLK6H8PvvPmt0h6cBqccGaJW0NSoX3S");
66  		String secretKey = enc.decrypt("U2FsdGVkX19Y9SZ5GAU82/X5Z0xZdeQf7DFuVDW07R9lfyHK4VaOj5R7pviRBKmIyn7jrVT2lv8Edeu7098k1A==");
67  		return new ImmutableAWSCredentials(accessKey, secretKey);
68  	}
69  
70  	protected void info(String msg, Object... args) {
71  		logger.info((args == null || args.length == 0) ? msg : format(msg, args));
72  	}
73  
74  }