diff options
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.java | 66 |
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); } } |