Package com.woorea.openstack.examples.glance

Source Code of com.woorea.openstack.examples.glance.GlanceListImages

package com.woorea.openstack.examples.glance;

import com.woorea.openstack.glance.model.ImageDownload;
import com.woorea.openstack.glance.model.ImageUpload;
import com.woorea.openstack.keystone.utils.KeystoneTokenProvider;

import com.woorea.openstack.examples.ExamplesConfiguration;
import com.woorea.openstack.glance.Glance;
import com.woorea.openstack.glance.model.Image;
import com.woorea.openstack.glance.model.Images;
import com.woorea.openstack.keystone.model.Access;
import com.woorea.openstack.keystone.model.Access.Service;
import com.woorea.openstack.keystone.model.Access.Service.Endpoint;

import java.io.ByteArrayInputStream;
import java.io.IOException;

public class GlanceListImages {

  protected static String IMAGE_CONTENT = "Hello World!";

  /**
   * @param args
   */
  public static void main(String[] args) {
    KeystoneTokenProvider keystone = new KeystoneTokenProvider(
        ExamplesConfiguration.KEYSTONE_AUTH_URL,
        ExamplesConfiguration.KEYSTONE_USERNAME,
        ExamplesConfiguration.KEYSTONE_PASSWORD);

    Access access = keystone.getAccessByTenant(ExamplesConfiguration.TENANT_NAME);

    Service glanceService = null;

    for (Service service : access.getServiceCatalog()) {
      if (service.getType().equals("image")) {
        glanceService = service;
        break;
      }
    }

    if (glanceService == null) {
      throw new RuntimeException("Glance service not found");
    }

    for (Endpoint endpoint : glanceService.getEndpoints()) {
      Glance glance = new Glance(endpoint.getPublicURL() + "/v1");
      glance.setTokenProvider(keystone
          .getProviderByTenant(ExamplesConfiguration.TENANT_NAME));

      // Creating a new image
      Image newImage = new Image();
      newImage.setDiskFormat("raw");
      newImage.setContainerFormat("bare");
      newImage.setName("os-java-glance-test");
      newImage = glance.images().create(newImage).execute();

      // Uploading image
      ImageUpload uploadImage = new ImageUpload(newImage);
      uploadImage.setInputStream(new ByteArrayInputStream(IMAGE_CONTENT.getBytes()));
      glance.images().upload(newImage.getId(), uploadImage).execute();

      // Downloading the image and displaying the image content
      try {
        byte[] imgContent = new byte[IMAGE_CONTENT.length()];
        ImageDownload downloadImage = glance.images().download(newImage.getId()).execute();
        downloadImage.getInputStream().read(imgContent, 0, imgContent.length);
        System.out.println(new String(imgContent));
      } catch (IOException e) {
        e.printStackTrace();
      }

      Images images = glance.images().list(false).execute();

      for (Image image : images) {
        System.out.println(glance.images().show(image.getId()).execute());
      }

      glance.images().delete(newImage.getId()).execute();
    }
  }

}
TOP

Related Classes of com.woorea.openstack.examples.glance.GlanceListImages

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.