Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the MIT License. See License.txt in the project root for
license information.
/**
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for
* license information.
*/
package com.microsoft.azure.management.compute.implementation;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.MissingNode;
import com.microsoft.azure.management.compute.EncryptionStatus;
import com.microsoft.azure.management.compute.InstanceViewStatus;
import com.microsoft.azure.management.compute.VirtualMachineExtensionInstanceView;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
class LinuxEncryptionExtensionUtil {
Gets the encryption progress message.
Params: - instanceView – encryption extension instance view
Returns: the encryption progress message
/**
* Gets the encryption progress message.
*
* @param instanceView encryption extension instance view
* @return the encryption progress message
*/
static String progressMessage(VirtualMachineExtensionInstanceView instanceView) {
List<InstanceViewStatus> statuses = instanceViewStatuses(instanceView);
if (statuses.size() == 0) {
return null;
}
return statuses.get(0).message();
}
Retrieves the operating system disk encryption status from the given instance view.
Params: - instanceView – encryption extension instance view
Returns: os disk status
/**
* Retrieves the operating system disk encryption status from the given instance view.
*
* @param instanceView encryption extension instance view
* @return os disk status
*/
static EncryptionStatus osDiskStatus(VirtualMachineExtensionInstanceView instanceView) {
final JsonNode subStatusNode = instanceViewFirstSubStatus(instanceView);
if (subStatusNode == null) {
return EncryptionStatus.UNKNOWN;
}
JsonNode diskNode = subStatusNode.path("os");
if (diskNode instanceof MissingNode) {
return EncryptionStatus.UNKNOWN;
}
return EncryptionStatus.fromString(diskNode.asText());
}
Retrieves the data disk encryption status from the given instance view.
Params: - instanceView – encryption extension instance view
Returns: data disk status
/**
* Retrieves the data disk encryption status from the given instance view.
*
* @param instanceView encryption extension instance view
* @return data disk status
*/
static EncryptionStatus dataDiskStatus(VirtualMachineExtensionInstanceView instanceView) {
final JsonNode subStatusNode = instanceViewFirstSubStatus(instanceView);
if (subStatusNode == null) {
return EncryptionStatus.UNKNOWN;
}
JsonNode diskNode = subStatusNode.path("data");
if (diskNode instanceof MissingNode) {
return EncryptionStatus.UNKNOWN;
}
return EncryptionStatus.fromString(diskNode.asText());
}
the instance view status collection associated with the provided encryption extension.
Params: - instanceView – the extension instance view
Returns: status collection
/**
* the instance view status collection associated with the provided encryption extension.
*
* @param instanceView the extension instance view
* @return status collection
*/
static List<InstanceViewStatus> instanceViewStatuses(VirtualMachineExtensionInstanceView instanceView) {
if (instanceView == null
|| instanceView.statuses() == null) {
return new ArrayList<>();
}
return instanceView.statuses();
}
the first sub-status from instance view sub-status collection associated with the provided
encryption extension.
Params: - instanceView – the extension instance view
Returns: the first sub-status
/**
* the first sub-status from instance view sub-status collection associated with the provided
* encryption extension.
*
* @param instanceView the extension instance view
* @return the first sub-status
*/
static JsonNode instanceViewFirstSubStatus(VirtualMachineExtensionInstanceView instanceView) {
if (instanceView == null
|| instanceView.substatuses() == null) {
return null;
}
List<InstanceViewStatus> instanceViewSubStatuses = instanceView.substatuses();
if (instanceViewSubStatuses.size() == 0) {
return null;
}
ObjectMapper mapper = new ObjectMapper();
final JsonNode rootNode;
try {
rootNode = mapper.readTree(instanceViewSubStatuses.get(0).message());
} catch (IOException exception) {
return null;
}
return rootNode;
}
}