/** * Method based on {@link org.jclouds.docker.features.ImageApi#listImages()}. It retrieves additional * information by inspecting each image. * * @see org.jclouds.compute.ComputeServiceAdapter#listImages() */ @Override public Set<Image> listImages() { Set<Image> images = Sets.newHashSet(); for (ImageSummary imageSummary : api.getImageApi().listImages()) { // less efficient than just listImages but returns richer json that needs repoTags coming from listImages Image inspected = api.getImageApi().inspectImage(imageSummary.id()); inspected = Image.create(inspected.id(), inspected.author(), inspected.comment(), inspected.config(), inspected.containerConfig(), inspected.parent(), inspected.created(), inspected.container(), inspected.dockerVersion(), inspected.architecture(), inspected.os(), inspected.size(), inspected.virtualSize(), imageSummary.repoTags()); images.add(inspected); } return images; }
@Override public boolean apply(Image input) { for (String tag : input.repoTags()) { if (imgPattern.matcher(tag).matches()) { return true; } } return false; } };
private org.jclouds.docker.domain.Image mockImage() { org.jclouds.docker.domain.Image mockImage = EasyMock.createMock(org.jclouds.docker.domain.Image.class); expect(mockImage.id()).andReturn(image.id()).anyTimes(); expect(mockImage.repoTags()).andReturn(image.repoTags()).anyTimes(); expect(mockImage.architecture()).andReturn(image.architecture()).anyTimes(); replay(mockImage); return mockImage; } }
@Override public boolean apply(Image input) { // Only attempt match on id as we should try to pull again anyway if using name return input.id().equals(imageIdOrName); } }, null);
@Override public Image apply(org.jclouds.docker.domain.Image from) { checkNotNull(from, "image"); String description = checkNotNull(Iterables.getFirst(from.repoTags(), "image must have at least one repo tag")); OsFamily osFamily = osFamily().apply(description); String osVersion = parseVersion(description); OperatingSystem os = OperatingSystem.builder() .description(description) .family(osFamily) .version(osVersion) .is64Bit(is64bit(from)) .build(); return new ImageBuilder() .ids(from.id()) .name(get(Splitter.on(":").split(description), 0)) .description(description) .operatingSystem(os) .status(Image.Status.AVAILABLE) .build(); }
private boolean is64bit(org.jclouds.docker.domain.Image inspectedImage) { if (inspectedImage.architecture() == null) return true; return inspectedImage.architecture().matches("x86_64|amd64"); }
@BeforeMethod public void setup() { image = org.jclouds.docker.domain.Image.create( "id", // id "author", "comment", Config.builder() .image("imageId") .build(), Config.builder() .image("imageId") .build(), "parent", // parent new Date(), // created "containerId", // container "1.3.1", // dockerVersion "x86_64", // architecture "os", // os 0L, // size 0L, // virtualSize ImmutableList.of("repoTag1:version") // repoTags ); function = new ImageToImage(); }
@Override public boolean apply(Image input) { // Only attempt match on id as we should try to pull again anyway if using name return input.id().equals(imageIdOrName); } }, null);
@Override public Image apply(org.jclouds.docker.domain.Image from) { checkNotNull(from, "image"); String firstRepoTag = Iterables.getFirst(from.repoTags(), "<none>"); final int versionSeparatorPos = firstRepoTag.lastIndexOf(':'); final String name; final String osVersion; if (versionSeparatorPos > -1) { name = firstRepoTag.substring(0, versionSeparatorPos); osVersion = firstRepoTag.substring(versionSeparatorPos + 1); } else { name = firstRepoTag; osVersion = firstRepoTag; } logger.debug("os version for item: %s is %s", firstRepoTag, osVersion); OsFamily osFamily = osFamily().apply(firstRepoTag); OperatingSystem os = OperatingSystem.builder() .description(firstRepoTag) .family(osFamily) .version(osVersion) .is64Bit(is64bit(from)) .build(); return new ImageBuilder() .ids(from.id()) .name(name) .description(firstRepoTag) .operatingSystem(os) .status(Image.Status.AVAILABLE) .build(); }
private boolean is64bit(org.jclouds.docker.domain.Image inspectedImage) { if (inspectedImage.architecture() == null) return true; return inspectedImage.architecture().matches("x86_64|amd64"); }
@Override @Consumes(MediaType.APPLICATION_JSON) public Image expected() { return Image.create("cbba6639a342646deed70d7ea6162fa2a0acea9300f911f4e014555fe37d3456", "author", "comment",
/** * Method based on {@link org.jclouds.docker.features.ImageApi#listImages()}. It retrieves additional * information by inspecting each image. * * @see org.jclouds.compute.ComputeServiceAdapter#listImages() */ @Override public Set<Image> listImages() { Set<Image> images = Sets.newHashSet(); for (ImageSummary imageSummary : api.getImageApi().listImages()) { // less efficient than just listImages but returns richer json that needs repoTags coming from listImages Image inspected = api.getImageApi().inspectImage(imageSummary.id()); inspected = Image.create(inspected.id(), inspected.author(), inspected.comment(), inspected.config(), inspected.containerConfig(), inspected.parent(), inspected.created(), inspected.container(), inspected.dockerVersion(), inspected.architecture(), inspected.os(), inspected.size(), inspected.virtualSize(), imageSummary.repoTags()); images.add(inspected); } return images; }
@Override public boolean apply(Image input) { // Only attempt match on id as we should try to pull again anyway if using name return input.id().equals(imageIdOrName); } }, null);
@Override public Image apply(org.jclouds.docker.domain.Image from) { checkNotNull(from, "image"); String firstRepoTag = Iterables.getFirst(from.repoTags(), "<none>"); final int versionSeparatorPos = firstRepoTag.lastIndexOf(':'); final String name; final String osVersion; if (versionSeparatorPos > -1) { name = firstRepoTag.substring(0, versionSeparatorPos); osVersion = firstRepoTag.substring(versionSeparatorPos + 1); } else { name = firstRepoTag; osVersion = firstRepoTag; } logger.debug("os version for item: %s is %s", firstRepoTag, osVersion); OsFamily osFamily = osFamily().apply(firstRepoTag); OperatingSystem os = OperatingSystem.builder() .description(firstRepoTag) .family(osFamily) .version(osVersion) .is64Bit(is64bit(from)) .build(); return new ImageBuilder() .ids(from.id()) .name(name) .description(firstRepoTag) .operatingSystem(os) .status(Image.Status.AVAILABLE) .build(); }
@Override public boolean apply(Image input) { for (String tag : input.repoTags()) { if (imgPattern.matcher(tag).matches()) { return true; } } return false; } };
private boolean is64bit(org.jclouds.docker.domain.Image inspectedImage) { if (inspectedImage.architecture() == null) return true; return inspectedImage.architecture().matches("x86_64|amd64"); }
/** * Method based on {@link org.jclouds.docker.features.ImageApi#listImages()}. It retrieves additional * information by inspecting each image. * * @see org.jclouds.compute.ComputeServiceAdapter#listImages() */ @Override public Set<Image> listImages() { Set<Image> images = Sets.newHashSet(); for (ImageSummary imageSummary : api.getImageApi().listImages()) { // less efficient than just listImages but returns richer json that needs repoTags coming from listImages Image inspected = api.getImageApi().inspectImage(imageSummary.id()); inspected = Image.create(inspected.id(), inspected.author(), inspected.comment(), inspected.config(), inspected.containerConfig(), inspected.parent(), inspected.created(), inspected.container(), inspected.dockerVersion(), inspected.architecture(), inspected.os(), inspected.size(), inspected.virtualSize(), imageSummary.repoTags()); images.add(inspected); } return images; }
@Override public boolean apply(Image input) { // Only attempt match on id as we should try to pull again anyway if using name return input.id().equals(imageIdOrName); } }, null);
@Override public Image apply(org.jclouds.docker.domain.Image from) { checkNotNull(from, "image"); String firstRepoTag = Iterables.getFirst(from.repoTags(), "<none>"); final int versionSeparatorPos = firstRepoTag.lastIndexOf(':'); final String name; final String osVersion; if (versionSeparatorPos > -1) { name = firstRepoTag.substring(0, versionSeparatorPos); osVersion = firstRepoTag.substring(versionSeparatorPos + 1); } else { name = firstRepoTag; osVersion = firstRepoTag; } logger.debug("os version for item: %s is %s", firstRepoTag, osVersion); OsFamily osFamily = osFamily().apply(firstRepoTag); OperatingSystem os = OperatingSystem.builder() .description(firstRepoTag) .family(osFamily) .version(osVersion) .is64Bit(is64bit(from)) .build(); return new ImageBuilder() .ids(from.id()) .name(name) .description(firstRepoTag) .operatingSystem(os) .status(Image.Status.AVAILABLE) .build(); }
@Override public boolean apply(Image input) { for (String tag : input.repoTags()) { if (imgPattern.matcher(tag).matches()) { return true; } } return false; } };