summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/model/ContainerMeta.java
diff options
context:
space:
mode:
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/model/ContainerMeta.java')
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/model/ContainerMeta.java66
1 files changed, 64 insertions, 2 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/model/ContainerMeta.java b/dozentenmodul/src/main/java/org/openslx/dozmod/model/ContainerMeta.java
index 32818acf..0306d0ee 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/model/ContainerMeta.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/model/ContainerMeta.java
@@ -7,21 +7,64 @@ import java.util.Objects;
/**
* ContainerMeta is used to store container specific information.
* An object of this class will be serialized with gson to a json file.
+ *
+ * TODO remove build_context_method
+ * no need to distinguish beettween methods
+ * TODO rename build_context_url to build_context
*/
public class ContainerMeta {
+ public enum ContainerImageType implements org.apache.thrift.TEnum {
+ LECTURE("lecture"),
+ BATCH("batch"),
+ DATA("data");
+
+ private final String name;
+
+ ContainerImageType(String name){
+ this.name = name;
+ }
+
+ public boolean equalNames(String other){
+ return name.equals(other);
+ }
+ public static ContainerImageType getByName(String name){
+ for (ContainerImageType item : ContainerImageType.values()){
+ if (item.name.equals(name))
+ return item;
+ }
+ // name is not an enum, return lecture as default
+ return LECTURE;
+ }
+
+
+
+ @Override public String toString() {
+ return this.name;
+ }
+
+ @Override public int getValue() {
+ return this.ordinal();
+ }
+ }
+
+
private int build_context_method;
+ private String image_repo;
private String build_context_url;
private String image_name;
private String run_options;
+ private String image_type;
private List<ContainerBindMount> bind_mount_config = new ArrayList<>();
public ContainerMeta() {
+ image_repo = "";
build_context_method = ContainerBuildContextMethod.FILE.ordinal();
build_context_url = "";
image_name = "";
run_options = "";
+ image_type = ContainerImageType.LECTURE.toString();
bind_mount_config = new ArrayList<>();
}
@@ -30,6 +73,8 @@ public class ContainerMeta {
build_context_url = containerMeta.build_context_url;
image_name = containerMeta.image_name;
run_options = containerMeta.run_options;
+ image_repo = containerMeta.image_repo;
+
for (ContainerBindMount bm : containerMeta.bind_mount_config)
bind_mount_config.add(new ContainerBindMount(bm.getSource(), bm.getTarget(), bm.getOptions()));
@@ -75,6 +120,21 @@ public class ContainerMeta {
this.bind_mount_config = bindMountConfig;
}
+ public String getImageRepo() { return image_repo; }
+
+ public void setImageRepo(String from_image) { this.image_repo = from_image; }
+
+ public ContainerImageType getImageType() {
+ if (image_type == null || image_type.length() == 0)
+ return ContainerImageType.LECTURE;
+
+ return ContainerImageType.getByName(image_type);
+ }
+
+ public void setImageType(ContainerImageType image_type) {
+ this.image_type = image_type.toString();
+ }
+
@Override public boolean equals(Object o) {
if (this == o)
return true;
@@ -83,10 +143,12 @@ public class ContainerMeta {
ContainerMeta that = (ContainerMeta) o;
return Objects.equals(build_context_url, that.build_context_url) && Objects.equals(image_name,
that.image_name) && Objects.equals(run_options, that.run_options) && Objects.equals(
- bind_mount_config, that.bind_mount_config);
+ bind_mount_config, that.bind_mount_config) && Objects.equals(image_repo,that.image_repo)
+ && Objects.equals(image_type,that.image_type);
}
@Override public int hashCode() {
- return Objects.hash(build_context_url, image_name, run_options);
+ return Objects.hash(build_context_url, image_name, run_options,
+ bind_mount_config, image_repo, image_type);
}
}