Skip to content

Commit

Permalink
feat: Added a new command-mode command for storing object in the arte…
Browse files Browse the repository at this point in the history
…fact store. (#4)

* feat: added put object in artifact store command
  • Loading branch information
oscarostrand committed May 12, 2023
1 parent cdc2d6f commit 9cefd75
Show file tree
Hide file tree
Showing 5 changed files with 51 additions and 3 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>se.attini.runner</groupId>
<artifactId>attini-runner</artifactId>
<version>1.3.1-SNAPSHOT</version>
<version>2.0.0-SNAPSHOT</version>
<properties>
<compiler-plugin.version>3.8.1</compiler-plugin.version>
<failsafe.useModulePath>false</failsafe.useModulePath>
Expand Down
4 changes: 4 additions & 0 deletions src/main/java/se/attini/runner/EnvironmentVariables.java
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,10 @@ public String getRegion(){
return System.getenv("ATTINI_AWS_REGION");
}

public String getArtifactStoreBucketName(){
return System.getenv("ATTINI_ARTIFACT_STORE");
}

public Optional<String> getEc2InstanceId(){
return Optional.ofNullable(System.getenv("ATTINI_EC2_INSTANCE_ID"));
}
Expand Down
2 changes: 0 additions & 2 deletions src/main/java/se/attini/runner/JobCreator.java
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,6 @@ public Path createScriptFile(JobData jobData,
fileWriter.newLine();
fileWriter.write("export ATTINI_DISTRIBUTION_ID='" + jobData.distributionId()+"'");
fileWriter.newLine();
fileWriter.write("export ATTINI_ARTIFACT_STORE='" + jobData.sourceBucket()+"'");
fileWriter.newLine();
fileWriter.write("export ATTINI_DISTRIBUTION_ARTIFACTS_PREFIX='" + jobData.sourcePrefix()+"'");
fileWriter.newLine();
fileWriter.write("export ATTINI_INPUT='" + inputFile+"'");
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package se.attini.runner.commandmode;

import static java.util.Objects.requireNonNull;

import java.nio.file.Path;
import javax.enterprise.context.ApplicationScoped;

import se.attini.runner.BeanFactory;
import se.attini.runner.EnvironmentVariables;
import software.amazon.awssdk.core.sync.RequestBody;
import software.amazon.awssdk.services.s3.S3Client;
import software.amazon.awssdk.services.s3.model.PutObjectRequest;

@ApplicationScoped
public class ArtifactStoreFacade {

private final S3Client s3Client;
private final EnvironmentVariables environmentVariables;

public ArtifactStoreFacade(@BeanFactory.CustomAwsClient S3Client s3Client, EnvironmentVariables environmentVariables) {
this.s3Client = requireNonNull(s3Client, "s3Client");
this.environmentVariables = environmentVariables;
}


public void store(String key, String path){
s3Client.putObject(PutObjectRequest.builder().key(key).bucket(environmentVariables.getArtifactStoreBucketName()).build(),
RequestBody.fromFile(Path.of(path)));
}
}
16 changes: 16 additions & 0 deletions src/main/java/se/attini/runner/commandmode/CommandModeApp.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ public class CommandModeApp implements QuarkusApplication {
@Inject
RegisterCdkStacksService registerCdkStacksService;

@Inject
ArtifactStoreFacade artifactStoreFacade;

@ConfigProperty(name = "quarkus.application.version")
String version;

Expand All @@ -42,6 +45,19 @@ public int run(String... args) {
yield 1;
}
}
case "store-artifact" ->{
try {
System.out.println("Storing "+args[3] +" in artifact store.");
artifactStoreFacade.store(args[2], args[3]);
yield 0;
} catch (Exception e){
System.err.println("Encountered errored, printing logs to error stream");
printLogs();
e.printStackTrace();
yield 1;
}

}
default -> {
System.err.println("Unknown arguments: " + Arrays.toString(args));
yield 1;
Expand Down

0 comments on commit 9cefd75

Please sign in to comment.