Procházet zdrojové kódy

for now, consider packer image OK if bubble version matches

cobbzilla/introduce_packer
Jonathan Cobb před 4 roky
rodič
revize
52e896a544
5 změnil soubory, kde provedl 40 přidání a 25 odebrání
  1. +22
    -0
      bubble-server/src/main/java/bubble/cloud/compute/PackerImageParserBase.java
  2. +1
    -1
      bubble-server/src/main/java/bubble/cloud/compute/digitalocean/DigitalOceanDriver.java
  3. +9
    -15
      bubble-server/src/main/java/bubble/cloud/compute/digitalocean/DigitalOceanPackerImageParser.java
  4. +1
    -1
      bubble-server/src/main/java/bubble/cloud/compute/vultr/VultrDriver.java
  5. +7
    -8
      bubble-server/src/main/java/bubble/cloud/compute/vultr/VultrPackerImageParser.java

+ 22
- 0
bubble-server/src/main/java/bubble/cloud/compute/PackerImageParserBase.java Zobrazit soubor

@@ -0,0 +1,22 @@
package bubble.cloud.compute;

import static bubble.service.packer.PackerJob.PACKER_IMAGE_PREFIX;

public abstract class PackerImageParserBase extends ListResourceParser<PackerImage> {

private String bubbleVersion;
private String jarSha;

public PackerImageParserBase(String bubbleVersion, String jarSha) {
this.bubbleVersion = bubbleVersion;
this.jarSha = jarSha;
}

public boolean isValidPackerImage(String name) {
if (!name.startsWith(PACKER_IMAGE_PREFIX)) return false;
if (!name.contains("_"+bubbleVersion+"_")) return false;
// if (!name.endsWith("_"+jarSha)) return false;
return true;
}

}

+ 1
- 1
bubble-server/src/main/java/bubble/cloud/compute/digitalocean/DigitalOceanDriver.java Zobrazit soubor

@@ -258,7 +258,7 @@ public class DigitalOceanDriver extends ComputeServiceDriverBase {
} }


@Override public List<PackerImage> getPackerImages() { @Override public List<PackerImage> getPackerImages() {
final List<PackerImage> images = getResources(PACKER_IMAGES_URI, new DigitalOceanPackerImageParser(configuration.getJarSha()));
final List<PackerImage> images = getResources(PACKER_IMAGES_URI, new DigitalOceanPackerImageParser(configuration.getVersion(), configuration.getJarSha()));
return images == null ? Collections.emptyList() : images; return images == null ? Collections.emptyList() : images;
} }




+ 9
- 15
bubble-server/src/main/java/bubble/cloud/compute/digitalocean/DigitalOceanPackerImageParser.java Zobrazit soubor

@@ -1,34 +1,28 @@
package bubble.cloud.compute.digitalocean; package bubble.cloud.compute.digitalocean;


import bubble.cloud.CloudRegion; import bubble.cloud.CloudRegion;
import bubble.cloud.compute.ListResourceParser;
import bubble.cloud.compute.PackerImage; import bubble.cloud.compute.PackerImage;
import bubble.cloud.compute.PackerImageParserBase;
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonNode;


import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;


import static bubble.service.packer.PackerJob.PACKER_IMAGE_PREFIX;
public class DigitalOceanPackerImageParser extends PackerImageParserBase {


public class DigitalOceanPackerImageParser extends ListResourceParser<PackerImage> {

private String jarSha;

public DigitalOceanPackerImageParser (String jarSha) { this.jarSha = jarSha; }
public DigitalOceanPackerImageParser (String bubbleVersion, String jarSha) {
super(bubbleVersion, jarSha);
}


@Override public boolean allowEmpty() { return true; } @Override public boolean allowEmpty() { return true; }


@Override public PackerImage parse(JsonNode item) { @Override public PackerImage parse(JsonNode item) {


final PackerImage image = new PackerImage();
if (!item.has("name")) return null;
final String name = item.get("name").textValue();
if (!isValidPackerImage(name)) return null;


final String name;
if (item.has("name")) {
name = item.get("name").textValue();
if (!name.startsWith(PACKER_IMAGE_PREFIX)) return null;
if (!name.endsWith("_"+jarSha)) return null;
image.setName(name);
}
final PackerImage image = new PackerImage().setName(name);


if (item.has("id")) image.setId(item.get("id").textValue()); if (item.has("id")) image.setId(item.get("id").textValue());




+ 1
- 1
bubble-server/src/main/java/bubble/cloud/compute/vultr/VultrDriver.java Zobrazit soubor

@@ -398,7 +398,7 @@ public class VultrDriver extends ComputeServiceDriverBase {
} }


@Override public List<PackerImage> getPackerImages() { @Override public List<PackerImage> getPackerImages() {
final List<PackerImage> images = loadCloudResources(SNAPSHOT_URL, new VultrPackerImageParser(configuration.getJarSha()));
final List<PackerImage> images = loadCloudResources(SNAPSHOT_URL, new VultrPackerImageParser(configuration.getVersion(), configuration.getJarSha()));
return images == null ? Collections.emptyList() : images; return images == null ? Collections.emptyList() : images;
} }




+ 7
- 8
bubble-server/src/main/java/bubble/cloud/compute/vultr/VultrPackerImageParser.java Zobrazit soubor

@@ -1,17 +1,16 @@
package bubble.cloud.compute.vultr; package bubble.cloud.compute.vultr;


import bubble.cloud.compute.ListResourceParser;
import bubble.cloud.compute.PackerImage; import bubble.cloud.compute.PackerImage;
import bubble.cloud.compute.PackerImageParserBase;
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonNode;


import static bubble.service.packer.PackerJob.PACKER_IMAGE_PREFIX;
import static org.cobbzilla.util.daemon.ZillaRuntime.die; import static org.cobbzilla.util.daemon.ZillaRuntime.die;


public class VultrPackerImageParser extends ListResourceParser<PackerImage> {
public class VultrPackerImageParser extends PackerImageParserBase {


private String jarSha;
public VultrPackerImageParser(String jarSha) { this.jarSha = jarSha; }
public VultrPackerImageParser(String bubbleVersion, String jarSha) {
super(bubbleVersion, jarSha);
}


@Override public PackerImage parse(JsonNode item) { @Override public PackerImage parse(JsonNode item) {
if (!item.has("SNAPSHOTID")) return die("parse: SNAPSHOTID not found"); if (!item.has("SNAPSHOTID")) return die("parse: SNAPSHOTID not found");
@@ -20,10 +19,10 @@ public class VultrPackerImageParser extends ListResourceParser<PackerImage> {
if (!item.has("status")) return die("parse: status not found"); if (!item.has("status")) return die("parse: status not found");
if (!item.get("status").textValue().equals("complete")) return null; if (!item.get("status").textValue().equals("complete")) return null;
final String name = item.get("description").textValue(); final String name = item.get("description").textValue();
if (!name.startsWith(PACKER_IMAGE_PREFIX)) return null;
if (!name.endsWith("_"+jarSha)) return null;
if (!isValidPackerImage(name)) return null;
return new PackerImage() return new PackerImage()
.setName(name) .setName(name)
.setId(item.get("SNAPSHOTID").textValue()); .setId(item.get("SNAPSHOTID").textValue());
} }

} }

Načítá se…
Zrušit
Uložit