in azurelinuxagent/common/protocol/wire.py [0:0]
def vm_status_to_v1(vm_status):
timestamp = _get_utc_timestamp_for_status_reporting()
v1_ga_guest_info = ga_status_to_guest_info(vm_status.vmAgent)
v1_ga_status = ga_status_to_v1(vm_status.vmAgent)
v1_vm_artifact_aggregate_status = vm_artifacts_aggregate_status_to_v1(
vm_status.vmAgent.vm_artifacts_aggregate_status)
v1_handler_status_list = []
for handler_status in vm_status.vmAgent.extensionHandlers:
v1_handler_status_list.append(ext_handler_status_to_v1(handler_status))
v1_agg_status = {
'guestAgentStatus': v1_ga_status,
'handlerAggregateStatus': v1_handler_status_list
}
if v1_vm_artifact_aggregate_status is not None:
v1_agg_status['vmArtifactsAggregateStatus'] = v1_vm_artifact_aggregate_status
v1_vm_status = {
'version': '1.1',
'timestampUTC': timestamp,
'aggregateStatus': v1_agg_status,
'guestOSInfo': v1_ga_guest_info
}
supported_features = []
for _, feature in get_agent_supported_features_list_for_crp().items():
supported_features.append(
{
"Key": feature.name,
"Value": feature.version
}
)
if vm_status.vmAgent.supports_fast_track:
supported_features.append(
{
"Key": SupportedFeatureNames.FastTrack,
"Value": "1.0" # This is a dummy version; CRP ignores it
}
)
if supported_features:
v1_vm_status["supportedFeatures"] = supported_features
return v1_vm_status