Przeglądaj źródła

for now, consider packer image OK if bubble version matches

cobbzilla/introduce_packer
Jonathan Cobb 4 lat temu
rodzic
commit
52e896a544
5 zmienionych plików z 40 dodań i 25 usunięć
  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 Wyświetl plik

@@ -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 Wyświetl plik

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

@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;
}



+ 9
- 15
bubble-server/src/main/java/bubble/cloud/compute/digitalocean/DigitalOceanPackerImageParser.java Wyświetl plik

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

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

import java.util.ArrayList;
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 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());



+ 1
- 1
bubble-server/src/main/java/bubble/cloud/compute/vultr/VultrDriver.java Wyświetl plik

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

@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;
}



+ 7
- 8
bubble-server/src/main/java/bubble/cloud/compute/vultr/VultrPackerImageParser.java Wyświetl plik

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

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

import static bubble.service.packer.PackerJob.PACKER_IMAGE_PREFIX;
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) {
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.get("status").textValue().equals("complete")) return null;
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()
.setName(name)
.setId(item.get("SNAPSHOTID").textValue());
}

}

Ładowanie…
Anuluj
Zapisz