feat: 在实例信息显示主要 VNIC 的 IPv4 地址.

This commit is contained in:
LamGC 2022-08-04 13:53:53 +08:00
parent 0ae31a3d74
commit f3f36a2beb
Signed by: LamGC
GPG Key ID: 6C5AE2A913941E1D

View File

@ -71,8 +71,28 @@ class OracleServerExtension(private val bot: BaseAbilityBot) : AbilityExtension
val profile = getProfileByCallback(upd.callbackQuery.callbackData)
val instanceInfo = ServerInstance.fromJson(upd.callbackQuery.callbackData.extraData[JsonFields.ServerInstance])
val client = ComputeClient(profile.getAuthenticationDetailsProvider())
val networkClient = VirtualNetworkClient(profile.getAuthenticationDetailsProvider())
val instance = client.getInstance(GetInstanceRequest.builder().instanceId(instanceInfo.id).build()).instance
val mainVnic: Vnic? = client.listVnicAttachments(
ListVnicAttachmentsRequest.builder()
.compartmentId(profile.tenantId)
.instanceId(instance.id)
.build()
).items.let {
if (it.size == 1) {
return@let networkClient.getVnic(GetVnicRequest.builder().vnicId(it.first().vnicId).build()).vnic
} else {
for (vnicAttachment in it) {
val v = networkClient.getVnic(GetVnicRequest.builder().vnicId(vnicAttachment.vnicId).build()).vnic
if (v.isPrimary) {
return@let v
}
}
return@let null
}
}
val keyboardBuilder = InlineKeyboardGroupBuilder()
.newRow()
.addButton {
@ -108,6 +128,7 @@ class OracleServerExtension(private val bot: BaseAbilityBot) : AbilityExtension
网络带宽${shape.networkingBandwidthInGbps} Gbps
区域${instanceInfo.regionId}
可用区 / 容错区${instanceInfo.availabilityDomain} / ${instanceInfo.faultDomain}
主要公共 IPv4${mainVnic?.publicIp ?: "(无主要 VNIC"}
""".trimIndent()
)
.chatId(upd.callbackQuery.message.chatId.toString())