View Javadoc
1   package org.kuali.common.devops.archive.test;
2   
3   import static java.lang.String.format;
4   import static java.util.Arrays.asList;
5   import static org.kuali.common.core.io.Files.sumSizes;
6   import static org.kuali.common.util.FormatUtils.getCount;
7   import static org.kuali.common.util.FormatUtils.getSize;
8   import static org.kuali.common.util.FormatUtils.getTime;
9   import static org.kuali.common.util.encrypt.Encryption.getDefaultEncryptor;
10  import static org.kuali.common.util.log.Loggers.newLogger;
11  
12  import java.util.List;
13  
14  import org.junit.Test;
15  import org.kuali.common.aws.model.ImmutableAWSCredentials;
16  import org.kuali.common.aws.s3.DefaultS3Service;
17  import org.kuali.common.aws.s3.S3Service;
18  import org.kuali.common.core.file.scan.DefaultScanService;
19  import org.kuali.common.core.file.scan.ScanRequest;
20  import org.kuali.common.core.file.scan.ScanResult;
21  import org.kuali.common.core.file.scan.ScanService;
22  import org.kuali.common.devops.archive.s3.S3FileArchiveService;
23  import org.kuali.common.devops.jenkins.archive.DefaultJenkinsService;
24  import org.kuali.common.devops.jenkins.archive.DefaultJenkinsServiceContext;
25  import org.kuali.common.devops.jenkins.archive.JenkinsService;
26  import org.kuali.common.devops.jenkins.archive.model.JenkinsMaster;
27  import org.kuali.common.util.encrypt.Encryptor;
28  import org.slf4j.Logger;
29  
30  import com.amazonaws.auth.AWSCredentials;
31  
32  public class ScanBuildsTest {
33  
34  	private static final Logger logger = newLogger();
35  
36  	@Test
37  	public void test() {
38  		try {
39  			DefaultJenkinsServiceContext context = DefaultJenkinsServiceContext.builder().withArchiver(getArchiveService()).build();
40  			JenkinsService jenkins = DefaultJenkinsService.builder().withContext(context).build();
41  			JenkinsMaster master = jenkins.buildMaster();
42  			logger.info(format("hostname -> %s", master.getHostname()));
43  			logger.info(format("home     -> %s", master.getHome()));
44  			List<String> includes = asList("**/jobs/**/builds/**");
45  			ScanRequest request = ScanRequest.builder(master.getHome().toFile()).withIncludes(includes).build();
46  			ScanService service = new DefaultScanService();
47  			ScanResult result = service.scan(request);
48  			long size = sumSizes(result.getFiles());
49  			int count = result.getFiles().size();
50  			logger.info(format("files    -> %s", getCount(count)));
51  			logger.info(format("size     -> %s", getSize(size)));
52  			logger.info(format("elapsed  -> %s", getTime(result.getTiming().getElapsed())));
53  		} catch (Throwable e) {
54  			e.printStackTrace();
55  		}
56  	}
57  
58  	private static S3FileArchiveService getArchiveService() {
59  		S3Service s3 = DefaultS3Service.build(getFoundation());
60  		return S3FileArchiveService.build(s3, "archive.kuali.org");
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  }