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 }