|
|
@@ -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()); |
|
|
|
|
|
|
|