azure-cli
Version:
Microsoft Azure Cross Platform Command Line tool
512 lines (451 loc) • 19.7 kB
JavaScript
/*** Generated by streamline 0.10.17 (callbacks) - DO NOT EDIT ***//**
* Copyright (c) Microsoft. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
var utils = require('../../../util/utils');
var tagUtils = require('../tag/tagUtils');
var $ = utils.getLocaleString;
exports.show = function (virtualMachine, output) {
var indent = 0;
exports.showGeneralProfile(virtualMachine, output, indent);
exports.showHardwareProfile(virtualMachine, output, indent);
exports.showStorageProfile(virtualMachine, output, indent);
exports.showOsProfile(virtualMachine, output, indent);
exports.showNetworkProfile(virtualMachine, output, indent);
exports.showAvailabilitySetProfile(virtualMachine, output, indent);
exports.showExtensionsProfile(virtualMachine, output, indent);
exports.showDiagnosticsProfile(virtualMachine, output, indent);
};
exports.showGeneralProfile = function (virtualMachine, output, indent) {
var showNameValue = exports.showNameValue;
showNameValue($('Id'), virtualMachine.id, true, output, indent);
showNameValue($('ProvisioningState'), virtualMachine.provisioningState, true, output, indent);
showNameValue($('Name'), virtualMachine.name, true, output, indent);
showNameValue($('Location'), virtualMachine.location, true, output, indent);
exports.showFqdn(virtualMachine, output, indent);
showNameValue($('Type'), virtualMachine.type, true, output, indent);
if (virtualMachine.tags) {
showNameValue($('Tags'), tagUtils.getTagsInfo(virtualMachine.tags), true, output, indent);
}
};
exports.showFqdn = function (virtualMachine, output, indent) {
if (virtualMachine.networkProfile && virtualMachine.networkProfile.networkInterfaces) {
if (virtualMachine.networkProfile.networkInterfaces.length > 0) {
var networkInterface = virtualMachine.networkProfile.networkInterfaces[0];
if (networkInterface.expanded && networkInterface.expanded.networkInterface) {
var ipConfiguration = _getFirstIPConfiguration(networkInterface.expanded.networkInterface.ipConfigurations);
if (ipConfiguration.publicIp) {
exports.showNameValue($('FQDN'), ipConfiguration.publicIp.fqdn, true, output, indent);
}
}
}
}
};
exports.showHardwareProfile = function (virtualMachine, output, indent) {
if (virtualMachine.hardwareProfile) {
exports.showHeader('Hardware Profile:', true, output, indent);
indent = indent + 2;
exports.showNameValue($('Size'), virtualMachine.hardwareProfile.vmSize, true, output, indent);
}
};
exports.showStorageProfile = function (virtualMachine, output, indent) {
var storageProfile = virtualMachine.storageProfile;
if (storageProfile) {
exports.showHeader('Storage Profile:', true, output, indent);
indent = indent + 2;
exports.showStorageProfileImageRef(virtualMachine, output, indent);
exports.showStorageProfileSourceImage(virtualMachine, output, indent);
exports.showOsDiskProfile(virtualMachine, output, indent);
exports.showDataDisksProfile(virtualMachine, output, indent);
}
};
exports.showStorageProfileImageRef = function (virtualMachine, output, indent) {
if (!virtualMachine || !virtualMachine.storageProfile) {
return;
}
var imageReference = virtualMachine.storageProfile.imageReference;
var showNameValue = exports.showNameValue;
if (imageReference) {
exports.showHeader('Image reference:', false, output, indent);
indent = indent + 2;
showNameValue($('Publisher'), imageReference.publisher, true, output, indent);
showNameValue($('Offer'), imageReference.offer, true, output, indent);
showNameValue($('Sku'), imageReference.sku, true, output, indent);
showNameValue($('Version'), imageReference.version, true, output, indent);
}
};
exports.showStorageProfileSourceImage = function (virtualMachine, output, indent) {
if (!virtualMachine || !virtualMachine.storageProfile) {
return;
}
var sourceImage = virtualMachine.storageProfile.sourceImage;
if (sourceImage) {
exports.showHeader('Source image:', false, output, indent);
indent = indent + 2;
if (sourceImage.referenceUri) {
exports.showNameValue($('Id'), sourceImage.referenceUri, true, output, indent);
}
}
};
exports.showOsDiskProfile = function (virtualMachine, output, indent) {
if (!virtualMachine || !virtualMachine.storageProfile) {
return;
}
var osDisk = virtualMachine.storageProfile.osDisk;
var showNameValue = exports.showNameValue;
if (osDisk) {
exports.showHeader('OS Disk:', true, output, indent);
indent = indent + 2;
showNameValue($('OSType'), osDisk.osType, true, output, indent);
showNameValue($('Name'), osDisk.name, true, output, indent);
showNameValue($('Caching'), osDisk.caching, true, output, indent);
showNameValue($('CreateOption'), osDisk.createOption, true, output, indent);
if (osDisk.vhd) {
var vhd = osDisk.vhd;
if (vhd.uri) {
exports.showHeader('Vhd:', false, output, indent);
showNameValue($('Uri'), vhd.uri, true, output, indent + 2);
}
}
if (osDisk.sourceImage) {
var osDiskSourceImage = osDisk.sourceImage;
if (osDiskSourceImage.uri) {
exports.showHeader('Source Image:', false, output, indent);
showNameValue($('Uri'), osDiskSourceImage.uri, true, output, indent + 2);
}
}
}
};
exports.showDataDisksProfile = function (virtualMachine, output, indent) {
if (!virtualMachine || !virtualMachine.storageProfile) {
return;
}
var dataDisks = virtualMachine.storageProfile.dataDisks;
if (dataDisks && dataDisks.length > 0) {
exports.showHeader('Data Disks:', true, output, indent);
var i = 1;
dataDisks.forEach(function (dataDisk) {
exports.showHeader('Data Disk ' + i + ':', false, output, indent + 2);
exports.showOneDataDisk(dataDisk, output, indent + 4);
i++;
});
}
};
exports.showOneDataDisk = function (dataDisk, output, indent) {
var showNameValue = exports.showNameValue;
showNameValue($('Lun'), dataDisk.lun, true, output, indent);
if (dataDisk.diskSizeGB) {
showNameValue($('Size'), dataDisk.diskSizeGB + ' GB', true, output, indent);
}
showNameValue($('Name'), dataDisk.name, true, output, indent);
if (dataDisk.vhd) {
if (dataDisk.vhd.uri) {
showNameValue($('Vhd Uri'), dataDisk.vhd.uri, true, output, indent);
}
}
if (dataDisk.sourceImage) {
if (dataDisk.sourceImage.uri) {
showNameValue($('Source image Uri'), dataDisk.sourceImage.uri, true, output, indent);
}
}
showNameValue($('Caching'), dataDisk.caching, true, output, indent);
showNameValue($('CreateOption'), dataDisk.createOption, true, output, indent);
};
exports.showOsProfile = function (virtualMachine, output, indent) {
var showNameValue = exports.showNameValue;
var osProfile = virtualMachine.osProfile;
if (osProfile) {
exports.showHeader('OS Profile:', true, output, indent);
indent = indent + 2;
showNameValue($('Computer Name'),osProfile.computerName, true, output, indent);
showNameValue($('User Name'), osProfile.adminUsername, true, output, indent);
showNameValue($('Password'), osProfile.adminPassword, true, output, indent);
showNameValue($('Custom Data (Base64 Encoded)'), osProfile.customData, true, output, indent);
showNameValue($('Secrets'), JSON.stringify(osProfile.secrets), true, output, indent);
exports.showWindowsConfiguration(virtualMachine, output, indent);
exports.showLinuxConfiguration(virtualMachine, output, indent);
}
};
exports.showWindowsConfiguration = function (virtualMachine, output, indent) {
if (!virtualMachine || !virtualMachine.osProfile) {
return;
}
var windowsConfiguration = virtualMachine.osProfile.windowsConfiguration;
var showNameValue = exports.showNameValue;
if (windowsConfiguration) {
exports.showHeader('Windows Configuration:', false, output, indent);
indent = indent + 2;
var provisionVMAgent = windowsConfiguration.provisionVMAgent ? 'true' : 'false';
showNameValue($('Provision VM Agent'), provisionVMAgent, true, output, indent);
var enableAutomaticUpdates = windowsConfiguration.enableAutomaticUpdates ? 'true' : 'false';
showNameValue($('Enable automatic updates'), enableAutomaticUpdates, true, output, indent);
showNameValue($('Time zone'), windowsConfiguration.timeZone, true, output, indent);
var winRMConfiguration = windowsConfiguration.winRMConfiguration;
if (winRMConfiguration) {
var listeners = winRMConfiguration.listeners;
if (listeners) {
exports.showHeader('WinRM Listeners:', false, output, indent);
var i = 1;
listeners.forEach(function(listener) {
exports.showHeader('WinRM Listener #' + i + ':', false, output, indent + 2);
exports.showOneWinRMListener(listener, output, indent + 4);
i++;
});
}
}
}
};
exports.showOneWinRMListener = function (listener, output, indent) {
exports.showNameValue($('Protocol'), listener.protocol, true, output, indent);
exports.showNameValue($('Certificate url'), listener.certificateUrl, true, output, indent);
};
exports.showLinuxConfiguration = function (virtualMachine, output, indent) {
if (!virtualMachine || !virtualMachine.osProfile) {
return;
}
var linuxConfiguration = virtualMachine.osProfile.linuxConfiguration;
var showNameValue = exports.showNameValue;
if (linuxConfiguration) {
exports.showHeader('Linux Configuration:', false, output, indent);
indent = indent + 2;
var disablePasswordAuthentication = linuxConfiguration.disablePasswordAuthentication ? 'true' : 'false';
showNameValue($('Disable Password Auth'), disablePasswordAuthentication, true, output, indent);
var sshConfiguration = linuxConfiguration.sshConfiguration;
if (sshConfiguration) {
var publicKeys = sshConfiguration.publicKeys;
if (publicKeys) {
exports.showHeader('SSH Public Keys:', false, output, indent);
var i = 1;
publicKeys.forEach(function(publicKey) {
exports.showHeader('Public Key #' + i + ':', false, output, indent + 2);
exports.showOneSshPublicKey(publicKey, output, indent + 4);
i++;
});
}
}
}
};
exports.showOneSshPublicKey = function (publicKey, output, indent) {
exports.showNameValue($('Path'), publicKey.path, true, output, indent);
exports.showNameValue($('Key'), publicKey.keyData, true, output, indent);
};
exports.showNetworkProfile = function (virtualMachine, output, indent) {
if (!virtualMachine) {
return;
}
var networkProfile = virtualMachine.networkProfile;
if (networkProfile) {
exports.showHeader('Network Profile:', true, output, indent);
indent = indent + 2;
var networkInterfaces = networkProfile.networkInterfaces;
if (networkInterfaces) {
exports.showHeader('Network Interfaces:', false, output, indent);
var i = 1;
networkInterfaces.forEach(function(networkInterface) {
exports.showHeader('Network Interface #' + i + ':', false, output, indent + 2);
exports.showOneNic(networkInterface, output, indent + 4);
i++;
});
}
}
};
exports.showOneNic = function (networkInterface, output, indent) {
exports.showNameValue($('Id'), networkInterface.referenceUri, true, output, indent);
if (networkInterface.expanded) {
var primary = networkInterface.expanded.primary ? 'true' : 'false';
exports.showNameValue($('Primary'), primary, true, output, indent);
exports.showNameValue($('MAC Address'), networkInterface.expanded.macAddress, true, output, indent);
exports.showNameValue($('Provisioning State'), networkInterface.expanded.provisioningState, true, output, indent);
exports.showNameValue($('Name'), networkInterface.expanded.name, true, output, indent);
exports.showNameValue($('Location'), networkInterface.expanded.location, true, output, indent);
exports.showNicFirstIpConfig(networkInterface, output, indent + 2);
}
};
exports.showNicFirstIpConfig = function (networkInterface, output, indent) {
if (!networkInterface || !networkInterface.expanded) {
return;
}
var ipConfiguration = _getFirstIPConfiguration (networkInterface.expanded.ipConfigurations);
if (ipConfiguration) {
exports.showNameValue($('Private IP alloc-method'), ipConfiguration.privateIpAllocationMethod, true, output, indent);
exports.showNameValue($('Private IP address'), ipConfiguration.privateIpAddress, true, output, indent);
if (ipConfiguration.publicIp) {
exports.showNameValue($('Public IP address'), ipConfiguration.publicIp.publicIPAddress, true, output, indent);
exports.showNameValue($('FQDN'), ipConfiguration.publicIp.fqdn, true, output, indent);
}
}
};
exports.showAvailabilitySetProfile = function (virtualMachine, output, indent) {
if (!virtualMachine) {
return;
}
var availabilitySetReference = virtualMachine.availabilitySet;
var showNameValue = exports.showNameValue;
if (availabilitySetReference) {
exports.showHeader('AvailabilitySet:', true, output, indent);
showNameValue($('Id'), availabilitySetReference.id, true, output, indent + 2);
}
};
exports.showExtensionsProfile = function (virtualMachine, output, indent) {
if (!virtualMachine) {
return;
}
var extensions = virtualMachine.extensions;
if (extensions && extensions.length > 0) {
exports.showHeader('Extensions:', true, output, indent);
var i = 1;
extensions.forEach(function(extension) {
exports.showHeader('Extension #' + i + ':', false, output, indent + 2);
exports.showOneExtension(extension, output, indent + 4);
i++;
});
}
};
exports.showOneExtension = function (extension, output, indent) {
var showNameValue = exports.showNameValue;
showNameValue($('Publisher'), extension.publisher, true, output, indent);
showNameValue($('Type'), extension.extensionType, true, output, indent);
showNameValue($('Type handler ver'), extension.typeHandlerVersion, true, output, indent);
showNameValue($('Auto upgrade minor ver'), extension.autoUpgradeMinorVersion, true, output, indent);
showNameValue($('Settings'), extension.settings, true, output, indent);
showNameValue($('Protected settings'), extension.protectedSettings, true, output, indent);
showNameValue($('Provisioning state'), extension.provisioningState, true, output, indent);
showNameValue($('Id'), extension.id, true, output, indent);
showNameValue($('Name'), extension.name, true, output, indent);
showNameValue($('Type'), extension.type, true, output, indent);
showNameValue($('Location'), extension.location, true, output, indent);
exports.showExtensionInstanceView(extension, output, indent + 2);
};
exports.showExtensionInstanceView = function (extension, output, indent) {
if (!extension || !extension.instanceView) {
return;
}
exports.showHeader('Instance view:', false, output, indent);
var showNameValue = exports.showNameValue;
var extensionInstanceView = extension.instanceView;
indent = indent + 2;
showNameValue($('Name'), extensionInstanceView.name, true, output, indent);
showNameValue($('Type'), extensionInstanceView.extensionType, true, output, indent);
showNameValue($('Type handler ver'), extensionInstanceView.typeHandlerVersion, true, output, indent);
var line1 = '';
var subStatuses = extensionInstanceView.subStatuses;
var i = 1;
if (subStatuses) {
subStatuses.forEach(function (subStatus) {
line1 = '';
if (subStatus.code) {
line1 += 'code:' + subStatus.code + ' ';
}
if (subStatus.level) {
line1 += 'level:' + subStatus.level + ' ';
}
if (subStatus.displayStatus) {
line1 += 'displayStatus:' + subStatus.displayStatus + ' ';
}
if (subStatus.time) {
line1 += 'time:' + subStatus.time + ' ';
}
showNameValue($('Substatus Info') + ' #' + i, line1, true, output, indent);
showNameValue($('Substatus Message') + ' #' + i, subStatus.message, true, output, indent);
i++;
});
}
var statuses = extensionInstanceView.statuses;
i = 1;
if (statuses) {
statuses.forEach(function (status) {
line1 = '';
if (status.code) {
line1 += 'code:' + status.code + ' ';
}
if (status.level) {
line1 += 'level:' + status.level + ' ';
}
if (status.displayStatus) {
line1 += 'displayStatus:' + status.displayStatus + ' ';
}
if (status.time) {
line1 += 'time:' + status.time + ' ';
}
showNameValue($('Status Info') + ' #' + i, line1, true, output, indent);
showNameValue($('Status Message') + ' #' + i, status.message, true, output, indent);
i++;
});
}
};
exports.showNameValue = function (name, value, discardNullValue, output, indent) {
var key;
if (value) {
key = _spaces(indent) + name;
key += _spaces(32 - key.length);
output(key + ':' + value);
} else if (!discardNullValue) {
key = _spaces(indent) + name;
key += _spaces(32 - key.length);
output(key + ':' + '""');
}
};
exports.showHeader = function (header, newline, output, indent) {
if (newline) {
output('');
}
output(_spaces(indent) + header);
};
function _spaces(count) {
var space = '';
for (var i = 0; i < count; i++) {
space += ' ';
}
return space;
}
function _getFirstIPConfiguration (ipConfigurations) {
if (!ipConfigurations || ipConfigurations.length === 0) {
return;
}
var ipConfiguration = ipConfigurations[0];
var publicIp;
if (ipConfiguration.publicIPAddress && ipConfiguration.publicIPAddress.expanded) {
publicIp = {
publicIPAddress: ipConfiguration.publicIPAddress.expanded.ipAddress,
name: ipConfiguration.publicIPAddress.expanded.name,
location: ipConfiguration.publicIPAddress.expanded.location,
fqdn: ipConfiguration.publicIPAddress.expanded.dnsSettings ? ipConfiguration.publicIPAddress.expanded.dnsSettings.fqdn : null,
reverseFqdn: ipConfiguration.publicIPAddress.expanded.dnsSettings ? ipConfiguration.publicIPAddress.expanded.dnsSettings.reverseFqdn : null
};
}
return {
privateIpAllocationMethod: ipConfiguration.privateIpAllocationMethod,
privateIpAddress: ipConfiguration.privateIpAddress,
publicIp: publicIp
};
}
exports.showDiagnosticsProfile = function (virtualMachine, output, indent) {
if (!virtualMachine) {
return;
}
var diagnosticsProfile = virtualMachine.diagnosticsProfile;
if (diagnosticsProfile) {
exports.showHeader('Diagnostics Profile:', true, output, indent);
indent = indent + 2;
var showNameValue = exports.showNameValue;
var bootDiagnostics = diagnosticsProfile.bootDiagnostics;
if (bootDiagnostics) {
showNameValue($('BootDiagnostics Enabled'), bootDiagnostics.enabled, true, output, indent);
showNameValue($('BootDiagnostics StorageUri'), bootDiagnostics.storageUri, true, output, indent);
}
}
var diagnosticsInstanceView = virtualMachine;
if (diagnosticsInstanceView) {
exports.showHeader('Diagnostics Instance View:', true, output, indent);
}
};