mirror of
https://github.com/LamGC/Oracle-Sentry.git
synced 2025-04-29 22:27:34 +00:00
refactor: 包装 Image 对象.
包装 Image 对象以简化脚本对 Image 的访问.
This commit is contained in:
parent
499c3d283c
commit
4dd6a9b695
@ -0,0 +1,90 @@
|
||||
package net.lamgc.oracle.sentry.oci.compute;
|
||||
|
||||
import com.oracle.bmc.core.model.Image;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 引导镜像.
|
||||
* <p> 创建实例时所指定的引导镜像.
|
||||
* <p> 如果实例经过其他方式重新安装了系统, 则本信息有偏差.
|
||||
* @author LamGC
|
||||
*/
|
||||
public final class BootImage {
|
||||
|
||||
private final Image image;
|
||||
|
||||
BootImage(Image image) {
|
||||
this.image = image;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取镜像 Id.
|
||||
* <p> 该 Id 可在创建服务器时指定所使用的系统镜像.
|
||||
* @return 返回镜像在 Oracle 的 Id.
|
||||
*/
|
||||
public String getImageId() {
|
||||
return image.getId();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取镜像所在的区域 Id.
|
||||
* @return 返回镜像所在区域的 Id.
|
||||
*/
|
||||
public String getCompartmentId() {
|
||||
return image.getCompartmentId();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取镜像系统名称.
|
||||
* <p> 比如 Ubuntu 或者说 CentOS.
|
||||
* @return 返回系统名称(不是计算机名称).
|
||||
*/
|
||||
public String getOS() {
|
||||
return image.getOperatingSystem();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取该镜像基于某一镜像的 Id.
|
||||
* <p> Oracle 提供了方法, 可以通过当前服务器生成新的镜像,
|
||||
* 生成后, 新的镜像就是基于原镜像生成, 该项就不为空.
|
||||
* @return 如果存在, 返回基础镜像 Id, 无基础镜像则返回 {@code null}.
|
||||
*/
|
||||
public String getBaseImageId() {
|
||||
return image.getBaseImageId();
|
||||
}
|
||||
|
||||
/**
|
||||
* 镜像的显示名称.
|
||||
* <p> 获取镜像显示名, 该名称与该镜像系统在官方为 iso 的命名差不多.
|
||||
* @return 获取镜像的显示名称.
|
||||
*/
|
||||
public String getName() {
|
||||
return image.getDisplayName();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取镜像大小.
|
||||
* @return 返回镜像大小, 单位为 MiB.
|
||||
*/
|
||||
public Long getSize() {
|
||||
return image.getSizeInMBs();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取系统版本号.
|
||||
* @return 返回镜像内系统的版本号, 如果版本较旧且服务器更新过系统, 则版本号不是最新的.
|
||||
*/
|
||||
public String getOSVersion() {
|
||||
return image.getOperatingSystemVersion();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取镜像创建时间.
|
||||
* @return 获取镜像创建时间.
|
||||
*/
|
||||
public Date getTimeCreated() {
|
||||
return image.getTimeCreated();
|
||||
}
|
||||
|
||||
}
|
@ -2,7 +2,6 @@ package net.lamgc.oracle.sentry.oci.compute;
|
||||
|
||||
import com.oracle.bmc.auth.AuthenticationDetailsProvider;
|
||||
import com.oracle.bmc.core.ComputeClient;
|
||||
import com.oracle.bmc.core.model.Image;
|
||||
import com.oracle.bmc.core.model.Instance;
|
||||
import com.oracle.bmc.core.requests.GetImageRequest;
|
||||
import com.oracle.bmc.core.requests.GetInstanceRequest;
|
||||
@ -58,21 +57,17 @@ public final class ComputeInstance {
|
||||
return compartmentId;
|
||||
}
|
||||
|
||||
public String getImageId() {
|
||||
return imageId;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取并返回实例镜像信息.
|
||||
* <p> 可获取系统信息.
|
||||
* <p> 如果实例被 dd, 则本信息不准确.
|
||||
* @return 返回实例信息.
|
||||
*/
|
||||
public Image getImage() {
|
||||
public BootImage getImage() {
|
||||
GetImageResponse image = computeClient.getImage(GetImageRequest.builder()
|
||||
.imageId(imageId)
|
||||
.build());
|
||||
return image.getImage();
|
||||
return new BootImage(image.getImage());
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user