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 }