Red Hat Training

A Red Hat training course is available for Red Hat Virtualization

第 2 章 使用软件开发套件

本章包括了一组展示如何使用 Java 软件开发套件的示例。除非特别声明,本章中的示例都使用软件开发套件的 V3 版本。

2.1. 使用 V3 连接到 Red Hat Enterprise Virtualization Manager

在 Java 软件开发套件的 V3 版本中,Api 类是连接并处理 Red Hat Enterprise Virtualization 环境中的项的主要类。为了声明这个类的一个实例,您需要声明 ApiBuilder 类的一个实例,并使用 builder 方法把需要的参数传递到这个实例。build 方法会返回 Api 类的一个实例,然后您就可以为它分配变量,并执行相关的操作。
以下示例是一个简单的 Java SE 程序,它创建一个到 Red Hat Enterprise Virtualization 环境的连接,然后安全地关闭并断开连接。

例 2.1. 连接到 Red Hat Enterprise Virtualization Manager

package rhevm;

import org.ovirt.engine.sdk.Api;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.ovirt.engine.sdk.ApiBuilder;
import org.ovirt.engine.sdk.exceptions.ServerException;
import org.ovirt.engine.sdk.exceptions.UnsecuredConnectionAttemptError;

public class rhevm {

 public static void main(String[] args) {

 Api api = null;

 try {

 ApiBuilder myBuilder = new ApiBuilder()

 .url("https://rhevm.example.com/api")
 .user("admin@internal")
 .password("p@ssw0rd")
 .keyStorePath("/home/username/server.truststore")
 .keyStorePassword("p@ssw0rd");

 api = myBuilder.build();

 api.shutdown();

 } catch (ServerException | UnsecuredConnectionAttemptError | IOException ex) {
 Logger.getLogger(Ovirt.class.getName()).log(Level.SEVERE, null, ex);
 } finally {
 if (api != null) {
 try {
 api.close();
 } catch (Exception ex) {
 Logger.getLogger(Ovirt.class.getName()).log(Level.SEVERE, null, ex);
 }
 }
 }
 }
}
这个示例创建了一个使用基础验证的连接,但您也可以使用其它方法。如需了解可以传递给 ApiBuilder 类实例的参数列表,请参阅 附录 A, ApiBuilder 的方法

注意

请注意,Api 类不采用 Autocloseable 接口。因此建议在 finally 块中关闭 Api 类实例,以保证可正常关闭与 Red Hat Enterprise Virtualization Manager 的连接。