UNPKG

azure-cli

Version:

Microsoft Azure Cross Platform Command Line tool

619 lines (354 loc) 34.5 kB
/*** Generated by streamline 0.10.17 (callbacks) - DO NOT EDIT ***/ var __rt=require('streamline/lib/callbacks/runtime').runtime(__filename, false),__func=__rt.__func,__cb=__rt.__cb,__catch=__rt.__catch,__tryCatch=__rt.__tryCatch; var __ = require("underscore"); var util = require("util"); var utils = require("../../../util/utils"); var validation = require("../../../util/validation"); var $ = utils.getLocaleString; function VMStorageProfile(cli, resourceGroupName, params, serviceClients) { this.cli = cli; this.storageManagementClient = serviceClients.storageManagementClient; this.resourceGroupName = resourceGroupName; this.params = params; this.prefix = params.prefix;}; __.extend(VMStorageProfile.prototype, { generateStorageProfile: function generateStorageProfile__1(_) { var storageProfile, containerUri, __this = this; var __frame = { name: "generateStorageProfile__1", line: 34 }; return __func(_, this, arguments, generateStorageProfile__1, 0, __frame, function __$generateStorageProfile__1() { storageProfile = { profile: { }, osDiskDataDiskImgInfo: null, storageAccountInfo: null }; return __this._parseOSDataDiskImageParams(__this.params, __cb(_, __frame, 7, 54, function ___(__0, __1) { storageProfile.osDiskDataDiskImgInfo = __1; containerUri = null; return (function __$generateStorageProfile__1(__then) { if (storageProfile.osDiskDataDiskImgInfo.requireStorage) { __this.cli.output.info(util.format($("The [OS, Data] Disk or image configuration requires storage account"))); __this.params.storageAccountContainerName = (__this.params.storageAccountContainerName || "vhds"); return __this._createStorageAccountIfRequired(__cb(_, __frame, 13, 53, function ___(__0, __2) { storageProfile.storageAccountInfo = __2; if (storageProfile.storageAccountInfo.profile.storageAccount) { containerUri = ((storageProfile.storageAccountInfo.profile.storageAccount.primaryEndpoints.blob + __this.params.storageAccountContainerName) + "/"); } else { containerUri = ((storageProfile.storageAccountInfo.profile.primaryEndpoints.blob + __this.params.storageAccountContainerName) + "/"); } ; __then(); }, true)); } else { __then(); } ; })(function __$generateStorageProfile__1() { if ((storageProfile.osDiskDataDiskImgInfo.osDiskInfo && !storageProfile.osDiskDataDiskImgInfo.osDiskInfo.isVhdParamAUrl)) { storageProfile.osDiskDataDiskImgInfo.osDiskInfo.profile.vhd.uri = (containerUri + storageProfile.osDiskDataDiskImgInfo.osDiskInfo.profile.vhd.uri); } ; if (storageProfile.osDiskDataDiskImgInfo.osDiskInfo) { storageProfile.profile.osDisk = storageProfile.osDiskDataDiskImgInfo.osDiskInfo.profile; } ; if ((storageProfile.osDiskDataDiskImgInfo.dataDiskInfo && !storageProfile.osDiskDataDiskImgInfo.dataDiskInfo.isVhdParamAUrl)) { storageProfile.osDiskDataDiskImgInfo.dataDiskInfo.profile.vhd.uri = (containerUri + storageProfile.osDiskDataDiskImgInfo.dataDiskInfo.profile.vhd.uri); } ; if (storageProfile.osDiskDataDiskImgInfo.dataDiskInfo) { storageProfile.osDiskDataDiskImgInfo.dataDiskInfo.profile.lun = __this._generateDataDiskLun(); storageProfile.profile.dataDisks = [storageProfile.osDiskDataDiskImgInfo.dataDiskInfo.profile,]; } ; if (storageProfile.osDiskDataDiskImgInfo.imageInfo) { storageProfile.profile.imageReference = storageProfile.osDiskDataDiskImgInfo.imageInfo.profile; storageProfile.profile.destinationVhdsContainer = containerUri; } ; if (storageProfile.osDiskDataDiskImgInfo.userImageVhd) { if (!storageProfile.profile.osDisk) { storageProfile.profile.osDisk = { }; } ; storageProfile.profile.osDisk.osType = __this.params.osType; storageProfile.profile.osDisk.image = { }; storageProfile.profile.osDisk.image.uri = storageProfile.osDiskDataDiskImgInfo.userImageVhd; __this.cli.output.info(util.format($("Using \"%s\" as the user image."), storageProfile.osDiskDataDiskImgInfo.userImageVhd)); } ; return _(null, storageProfile); }); }, true)); }); }, generateDataDiskProfile: function generateDataDiskProfile__2(_) { var dataDiskInfo, lun, containerUri, __this = this; var __frame = { name: "generateDataDiskProfile__2", line: 93 }; return __func(_, this, arguments, generateDataDiskProfile__2, 0, __frame, function __$generateDataDiskProfile__2() { dataDiskInfo = __this._parseDataDiskParams(__this.params); if (__this.params.lun) { lun = utils.parseInt(__this.params.lun); if (isNaN(lun)) { return _(new Error($("lun must be an integer"))); } ; dataDiskInfo.profile.lun = lun; } else { dataDiskInfo.profile.lun = __this._generateDataDiskLun(); } ; if (dataDiskInfo.isVhdParamAUrl) { return _(null, dataDiskInfo.profile); } else { if (!__this.params.newDataDisk) { return _(new Error($("dataDiskVhd URL param should be a valid URL."))); } ; } ; return __this._generateDataDiskContainerURI(__cb(_, __frame, 18, 34, function ___(__0, __1) { containerUri = __1; dataDiskInfo.profile.vhd.uri = (containerUri + dataDiskInfo.profile.vhd.uri); return _(null, dataDiskInfo.profile); }, true)); }); }, removeDataDiskByLun: function(virtualMachine, lun) { var dataDisks = virtualMachine.storageProfile.dataDisks; if ((!dataDisks || (dataDisks.length === 0))) { throw new Error(util.format($("There are no data disks attached to virtual machine \"%s\""), virtualMachine.name)); } ; var dataDiskIndex = -1; for (var index = 0; (index < dataDisks.length); index++) { if ((dataDisks[index].lun !== lun)) { continue; } ; dataDiskIndex = index; break; }; if ((dataDiskIndex === -1)) { throw new Error(util.format($("There is no data disk with lun \"%s\" attached to virtual machine \"%s\""), lun, virtualMachine.name)); } ; dataDisks.splice(dataDiskIndex, 1); }, hasAllOSDiskParams: function(params) { return utils.allParamsAreSet([params.osDiskType,params.osDiskVhd,]); }, _generateDataDiskLun: function() { var lunArray = []; for (var i = 0; (i < this.params.dataDisks.length); i++) { var lun = (this.params.dataDisks[i].lun ? parseInt(this.params.dataDisks[i].lun, 10) : 0); lunArray[lun] = true; }; for (var j = 0; (j < lunArray.length); j++) { if (!lunArray[j]) { return j; } ; }; return lunArray.length; }, _generateDataDiskContainerURI: function _generateDataDiskContainerURI__3(_) { var containerUri, storageAccountInfo, __this = this; var __frame = { name: "_generateDataDiskContainerURI__3", line: 160 }; return __func(_, this, arguments, _generateDataDiskContainerURI__3, 0, __frame, function __$_generateDataDiskContainerURI__3() { return (function __$_generateDataDiskContainerURI__3(__then) { if (utils.allParamsAreSet([__this.params.storageAccountName,__this.params.storageAccountContainerName,])) { return __this._createStorageAccountIfRequired(__cb(_, __frame, 3, 42, function ___(__0, __1) { storageAccountInfo = __1; if (storageAccountInfo.profile.storageAccount) { containerUri = ((storageAccountInfo.profile.storageAccount.primaryEndpoints.blob + __this.params.storageAccountContainerName) + "/"); } else { containerUri = ((storageAccountInfo.profile.primaryEndpoints.blob + __this.params.storageAccountContainerName) + "/"); } ; __then(); }, true)); } else { if (utils.stringIsNullOrEmpty(__this.params.osDiskUri)) { return _(new Error($("params.osDiskUri is required when vhd-name and --storage-account-* parameters are not specified"))); } ; containerUri = (__this.params.osDiskUri.slice(0, __this.params.osDiskUri.lastIndexOf("/")) + "/"); __then(); } ; })(function __$_generateDataDiskContainerURI__3() { return _(null, containerUri); }); }); }, _parseOSDataDiskImageParams: function _parseOSDataDiskImageParams__4(params, _) { var osDiskDataDiskImageInfo, imageUrnParts, __this = this; var __frame = { name: "_parseOSDataDiskImageParams__4", line: 181 }; return __func(_, this, arguments, _parseOSDataDiskImageParams__4, 1, __frame, function __$_parseOSDataDiskImageParams__4() { osDiskDataDiskImageInfo = { osDiskInfo: null, dataDiskInfo: null, imageInfo: null, requireStorage: false }; return (function __$_parseOSDataDiskImageParams__4(__then) { if (params.imageUrn) { imageUrnParts = params.imageUrn.split(":"); if ((imageUrnParts.length === 4)) { osDiskDataDiskImageInfo.imageInfo = { profile: { publisher: imageUrnParts[0], offer: imageUrnParts[1], sku: imageUrnParts[2], version: imageUrnParts[3] } }; } else { if (validation.isURL(params.imageUrn)) { osDiskDataDiskImageInfo.imageInfo = null; osDiskDataDiskImageInfo.userImageVhd = params.imageUrn; } else { return _(new Error($("--image-urn must be in the form \"publisherName:offer:skus:version\", or a blob url to the user image VHD."))); } ; } ; return __this._parseOSDiskParams(params, "FromImage", __cb(_, __frame, 28, 56, function ___(__0, __1) { osDiskDataDiskImageInfo.osDiskInfo = __1; if ((osDiskDataDiskImageInfo.osDiskInfo && !osDiskDataDiskImageInfo.osDiskInfo.isVhdParamAUrl)) { osDiskDataDiskImageInfo.requireStorage = true; } ; __then(); }, true)); } else { return __this._parseOSDiskParams(params, "Attach", __cb(_, __frame, 34, 56, function ___(__0, __2) { osDiskDataDiskImageInfo.osDiskInfo = __2; if ((osDiskDataDiskImageInfo.osDiskInfo && !osDiskDataDiskImageInfo.osDiskInfo.isVhdParamAUrl)) { osDiskDataDiskImageInfo.requireStorage = true; } ; __then(); }, true)); } ; })(function __$_parseOSDataDiskImageParams__4() { if ((((osDiskDataDiskImageInfo.imageInfo === null) && (osDiskDataDiskImageInfo.userImageVhd === null)) && (osDiskDataDiskImageInfo.osDiskInfo === null))) { return _(new Error($("Either imageUrn or os-disk-vhd parameter is required to create VM"))); } ; osDiskDataDiskImageInfo.dataDiskInfo = __this._parseDataDiskParams(params); if ((osDiskDataDiskImageInfo.dataDiskInfo && !osDiskDataDiskImageInfo.dataDiskInfo.isVhdParamAUrl)) { osDiskDataDiskImageInfo.requireStorage = true; } ; return _(null, osDiskDataDiskImageInfo); }); }); }, _parseOSDiskParams: function _parseOSDiskParams__5(params, createOption, _) { var attachMode, osType, useOsDisk, osDiskInfo, supportedDiskCaching, __this = this; var __frame = { name: "_parseOSDiskParams__5", line: 234 }; return __func(_, this, arguments, _parseOSDiskParams__5, 2, __frame, function __$_parseOSDiskParams__5() { if (((createOption !== "Attach") && (createOption !== "FromImage"))) { return _(new Error(util.format($("invalid createOption \"%s\"\""), createOption))); } ; attachMode = (createOption === "Attach"); osType = null; return (function __$_parseOSDiskParams__5(__then) { if (attachMode) { useOsDisk = utils.atLeastOneParameIsSet([params.osDiskType,params.osDiskCaching,params.osDiskVhd,]); if (!useOsDisk) { return _(null, null); } ; return (function __$_parseOSDiskParams__5(__then) { if (utils.stringIsNullOrEmpty(params.osDiskType)) { return __this.cli.interaction.prompt($("Enter OS disk type: "), __cb(_, __frame, 15, 55, function ___(__0, __1) { params.osDiskType = __1; __then(); }, true)); } else { __then(); } ; })(function __$_parseOSDiskParams__5() { osType = utils.verifyParamExistsInCollection(["Windows","Linux",], __this.params.osDiskType, "osDiskType"); return (function __$_parseOSDiskParams__5(__then) { if (utils.stringIsNullOrEmpty(params.osDiskVhd)) { return __this.cli.interaction.prompt($("Enter OS disk VHD: "), __cb(_, __frame, 20, 54, function ___(__0, __2) { params.osDiskVhd = __2; __then(); }, true)); } else { __then(); } ; })(__then); }); } else { __then(); } ; })(function __$_parseOSDiskParams__5() { osDiskInfo = { profile: { createOption: createOption, osType: osType, name: null, caching: null, vhd: { uri: null }, encryptionSettings: null }, isVhdParamAUrl: false }; if ((__this.params.diskEncryptionKeyVaultId || __this.params.diskEncryptionKeySecretUrl)) { osDiskInfo.profile.encryptionSettings = { diskEncryptionKey: { sourceVault: { id: __this.params.diskEncryptionKeyVaultId }, secretUrl: __this.params.diskEncryptionKeySecretUrl }, keyEncryptionKey: null }; } ; if ((__this.params.keyEncryptionKeyVaultId || __this.params.keyEncryptionKeyUrl)) { if ((osDiskInfo.profile.encryptionSettings === null)) { osDiskInfo.profile.encryptionSettings = { diskEncryptionKey: null, keyEncryptionKey: null }; } ; osDiskInfo.profile.encryptionSettings.keyEncryptionKey = { sourceVault: { id: __this.params.keyEncryptionKeyVaultId }, keyUrl: __this.params.keyEncryptionKeyUrl }; } ; return __this._generateOSDiskName(__cb(_, __frame, 67, 42, function ___(__0, __3) { osDiskInfo.profile.name = __3; supportedDiskCaching = ["None","ReadOnly","ReadWrite",]; if (!utils.stringIsNullOrEmpty(params.osDiskCaching)) { osDiskInfo.profile.caching = utils.verifyParamExistsInCollection(supportedDiskCaching, params.osDiskCaching, "osDiskCaching"); } else { osDiskInfo.profile.caching = supportedDiskCaching[2]; } ; if ((!attachMode && utils.stringIsNullOrEmpty(params.osDiskVhd))) { params.osDiskVhd = (osDiskInfo.profile.name + ".vhd"); } ; if (params.osDiskVhd.match(/^((http|https):\/\/)/)) { osDiskInfo.parsedOsDiskVhd = __this._parseBlobUrl(params.osDiskVhd, "osDiskVhd"); osDiskInfo.isVhdParamAUrl = true; } ; osDiskInfo.profile.vhd.uri = params.osDiskVhd; return _(null, osDiskInfo); }, true)); }); }); }, _parseDataDiskParams: function(params) { var useDataDisk = utils.atLeastOneParameIsSet([params.dataDiskSize,params.dataDiskCaching,params.dataDiskVhd,]); if (!useDataDisk) { return null; } ; var dataDiskInfo = { profile: { name: null, diskSizeGB: null, caching: null, createOption: null, vhd: { uri: null } }, isVhdParamAUrl: false }; if (params.newDataDisk) { dataDiskInfo.profile.createOption = "empty"; var sizeAsInt = utils.parseInt(params.dataDiskSize); if ((isNaN(sizeAsInt) || (sizeAsInt === 0))) { throw new Error($("dataDiskSize is required when any one of the dataDisk configuration parameter is specified and must be an integer")); } ; dataDiskInfo.profile.diskSizeGB = sizeAsInt; } else { dataDiskInfo.profile.createOption = "attach"; } ; var supportedDiskCaching = ["None","ReadOnly","ReadWrite",]; if (!utils.stringIsNullOrEmpty(params.dataDiskCaching)) { dataDiskInfo.profile.caching = utils.verifyParamExistsInCollection(supportedDiskCaching, params.dataDiskCaching, "dataDiskCaching"); } else { dataDiskInfo.profile.caching = supportedDiskCaching[2]; } ; if (utils.stringIsNullOrEmpty(params.dataDiskVhd)) { dataDiskInfo.profile.name = this._generateDataDiskName(params.vmName); dataDiskInfo.profile.vhd.uri = (dataDiskInfo.profile.name + ".vhd"); } else { if (params.dataDiskVhd.match(/^((http|https):\/\/)/)) { var vhdUrl = this._parseBlobUrl(params.dataDiskVhd, "dataDiskVhd"); dataDiskInfo.profile.name = vhdUrl.blobName.substr(0, (vhdUrl.blobName.length - 4)); dataDiskInfo.profile.vhd.uri = params.dataDiskVhd; dataDiskInfo.isVhdParamAUrl = true; } else { if (utils.stringEndsWith(params.dataDiskVhd, ".vhd", true)) { dataDiskInfo.profile.name = params.dataDiskVhd.substr(0, (params.dataDiskVhd.length - 4)); } else { dataDiskInfo.profile.name = params.dataDiskVhd; params.dataDiskVhd = (params.dataDiskVhd + ".vhd"); } ; dataDiskInfo.profile.vhd.uri = params.dataDiskVhd; } ; } ; return dataDiskInfo; }, _parseStorageCreateParams: function _parseStorageCreateParams__6(params, _) { var createRequestProfile, __this = this; var __frame = { name: "_parseStorageCreateParams__6", line: 386 }; return __func(_, this, arguments, _parseStorageCreateParams__6, 1, __frame, function __$_parseStorageCreateParams__6() { return (function __$_parseStorageCreateParams__6(__then) { if (!utils.allParamsAreSet([params.storageAccountName,params.location,])) { return __this.cli.interaction.prompt($("Enter storage account name: "), __cb(_, __frame, 2, 61, function ___(__0, __1) { params.storageAccountName = __1; return __this.cli.interaction.prompt($("Enter location: "), __cb(_, __frame, 3, 51, function ___(__0, __2) { params.location = __2; __then(); }, true)); }, true)); } else { __then(); } ; })(function __$_parseStorageCreateParams__6() { createRequestProfile = { sku: { name: ((params.vmSize && utils.stringStartsWith(params.vmSize.toLowerCase(), "standard_ds")) ? "Premium_LRS" : "Standard_LRS") }, kind: "Storage", name: params.storageAccountName, location: params.location }; return (function __$_parseStorageCreateParams__6(__then) { if ((createRequestProfile.accountType === "Premium_LRS")) { return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$_parseStorageCreateParams__6() { return __this.storageManagementClient.storageAccounts.create(__this.resourceGroupName, params.storageAccountName, createRequestProfile, __cb(_, __frame, 15, 59, __then, true)); }); })(function ___(err, __result) { __catch(function __$_parseStorageCreateParams__6() { if (err) { if (((err.code === "AccountTypeNotSupportedInLocation") || (err.code === "StorageAccountAlreadyExists"))) { __this.cli.output.warn(util.format($("%s : %s [%s]"), err.code, err.message, defaultType)); createRequestProfile.accountType = "Standard_LRS"; } else { return _(err); } ; __then(); } else { _(null, __result); } ; }, _); }); })(function ___() { __tryCatch(_, __then); }); } else { __then(); } ; })(function __$_parseStorageCreateParams__6() { return _(null, createRequestProfile); }); }); }); }, _createStorageAccountIfRequired: function _createStorageAccountIfRequired__7(_) { var storageInfo, existingStorageAccount, defaultStorageAccount, __this = this; var __frame = { name: "_createStorageAccountIfRequired__7", line: 416 }; return __func(_, this, arguments, _createStorageAccountIfRequired__7, 0, __frame, function __$_createStorageAccountIfRequired__7() { storageInfo = { storageAccountName: null, createdNew: false, profile: null, createRequestProfile: null }; return (function __$_createStorageAccountIfRequired__7(__then) { if (utils.stringIsNullOrEmpty(__this.params.location)) { return __this.cli.interaction.prompt($("Enter location: "), __cb(_, __frame, 9, 56, function ___(__0, __1) { __this.params.location = __1; __then(); }, true)); } else { __then(); } ; })(function __$_createStorageAccountIfRequired__7() { return (function __$_createStorageAccountIfRequired__7(__then) { if (!utils.stringIsNullOrEmpty(__this.params.storageAccountName)) { storageInfo.storageAccountName = __this.params.storageAccountName; return __this._findStorageAccount(storageInfo.storageAccountName, __cb(_, __frame, 14, 46, function ___(__0, __2) { existingStorageAccount = __2; return (function __$_createStorageAccountIfRequired__7(__then) { if (existingStorageAccount) { storageInfo.profile = existingStorageAccount; if (!utils.ignoreCaseAndSpaceEquals(storageInfo.profile.location, __this.params.location)) { return _(new Error(util.format($("A storage account with name \"%s\" already exists in another region \"%s\""), __this.params.storageAccountName, storageInfo.profile.location))); } ; __then(); } else { __this.cli.output.info(util.format($("Could not find the storage account \"%s\", trying to create new one"), __this.params.storageAccountName)); return __this._createNewStorageAccount(storageInfo.storageAccountName, __this.params, __cb(_, __frame, 22, 55, function ___(__0, __3) { storageInfo.createRequestProfile = __3; return __this._findStorageAccount(storageInfo.storageAccountName, __cb(_, __frame, 23, 41, function ___(__0, __4) { storageInfo.profile = __4; storageInfo.createdNew = true; __then(); }, true)); }, true)); } ; })(__then); }, true)); } else { return __this._getFirstStorageAccount(__this.resourceGroupName, __this.params.location, __cb(_, __frame, 27, 45, function ___(__0, __5) { defaultStorageAccount = __5; return (function __$_createStorageAccountIfRequired__7(__then) { if (defaultStorageAccount) { storageInfo.profile = defaultStorageAccount.storageAccount; storageInfo.storageAccountName = storageInfo.profile.name; __this.cli.output.info(util.format($("Using the storage account \"%s\" in \"%s\""), storageInfo.storageAccountName, __this.params.location)); __then(); } else { __this.cli.output.info(util.format($("Could not find any storage accounts in the region \"%s\", trying to create new one"), __this.params.location)); return __this._generateNewStorageAccountName(__cb(_, __frame, 34, 52, function ___(__0, __6) { storageInfo.storageAccountName = __6; __this.params.storageAccountName = storageInfo.storageAccountName; return __this._createNewStorageAccount(storageInfo.storageAccountName, __this.params, __cb(_, __frame, 36, 55, function ___(__0, __7) { storageInfo.createRequestProfile = __7; return __this._findStorageAccount(storageInfo.storageAccountName, __cb(_, __frame, 38, 41, function ___(__0, __8) { storageInfo.profile = __8; storageInfo.createdNew = true; __then(); }, true)); }, true)); }, true)); } ; })(__then); }, true)); } ; })(function __$_createStorageAccountIfRequired__7() { return _(null, storageInfo); }); }); }); }, _isStorageAccountNameAvailable: function _isStorageAccountNameAvailable__8(params, _) { var progress, result, __this = this; var __frame = { name: "_isStorageAccountNameAvailable__8", line: 462 }; return __func(_, this, arguments, _isStorageAccountNameAvailable__8, 1, __frame, function __$_isStorageAccountNameAvailable__8() { progress = __this.cli.interaction.progress(util.format($("Checking storage account name \"%s\" is available"), params.storageAccountName)); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$_isStorageAccountNameAvailable__8() { return __this.storageManagementClient.storageAccounts.checkNameAvailability(params.storageAccountName, __cb(_, __frame, 3, 70, function ___(__0, __1) { result = __1; return _(null, result.nameAvailable); }, true)); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$_isStorageAccountNameAvailable__8() { progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$_isStorageAccountNameAvailable__8() { _(); }); }); }); }, _createNewStorageAccount: function _createNewStorageAccount__9(resourceGroupName, params, _) { var createRequestProfile, progress, __this = this; var __frame = { name: "_createNewStorageAccount__9", line: 473 }; return __func(_, this, arguments, _createNewStorageAccount__9, 2, __frame, function __$_createNewStorageAccount__9() { return __this._parseStorageCreateParams(params, __cb(_, __frame, 1, 42, function ___(__0, __1) { createRequestProfile = __1; progress = __this.cli.interaction.progress(util.format($("Creating storage account \"%s\" in \"%s\""), params.storageAccountName, params.location)); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$_createNewStorageAccount__9() { return __this.storageManagementClient.storageAccounts.create(__this.resourceGroupName, params.storageAccountName, createRequestProfile, __cb(_, __frame, 4, 57, function __$_createNewStorageAccount__9() { return _(null, createRequestProfile); }, true)); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$_createNewStorageAccount__9() { progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$_createNewStorageAccount__9() { _(); }); }); }, true)); }); }, _getFirstStorageAccount: function _getFirstStorageAccount__10(resourceGroup, location, _) { var progress, listStorageAccountResult, storageAccounts, i, storageResourceGroup, __this = this; var __frame = { name: "_getFirstStorageAccount__10", line: 484 }; return __func(_, this, arguments, _getFirstStorageAccount__10, 2, __frame, function __$_getFirstStorageAccount__10() { progress = __this.cli.interaction.progress($("Retrieving storage accounts")); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$_getFirstStorageAccount__10() { return __this.storageManagementClient.storageAccounts.list(__cb(_, __frame, 3, 88, function ___(__0, __1) { listStorageAccountResult = __1; storageAccounts = (((listStorageAccountResult && (listStorageAccountResult.storageAccounts instanceof Array))) ? listStorageAccountResult.storageAccounts : []); for (i = 0; (i < storageAccounts.length); i++) { storageResourceGroup = utils.parseResourceReferenceUri(storageAccounts[i].id).resourceGroupName; if ((utils.ignoreCaseAndSpaceEquals(storageAccounts[i].location, location) && utils.ignoreCaseAndSpaceEquals(storageResourceGroup, resourceGroup))) { return _(null, { storageAccount: storageAccounts[i] }); } ; }; return _(null, null); }, true)); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$_getFirstStorageAccount__10() { progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$_getFirstStorageAccount__10() { _(); }); }); }); }, _findStorageAccount: function _findStorageAccount__11(storageAccountName, _) { var progress, storageAccount, __this = this; var __frame = { name: "_findStorageAccount__11", line: 507 }; return __func(_, this, arguments, _findStorageAccount__11, 1, __frame, function __$_findStorageAccount__11() { progress = __this.cli.interaction.progress(util.format($("Looking up the storage account %s"), storageAccountName)); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$_findStorageAccount__11() { return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$_findStorageAccount__11() { return __this.storageManagementClient.storageAccounts.getProperties(__this.resourceGroupName, storageAccountName, __cb(_, __frame, 3, 80, function ___(__0, __1) { storageAccount = __1; return _(null, storageAccount); }, true)); }); })(function ___(e, __result) { __catch(function __$_findStorageAccount__11() { if (e) { if (((e.code === "ResourceNotFound") || (e.code === "StorageAccountNotFound"))) { return _(null, null); } ; return _(e); } else { _(null, __result); } ; }, _); }); })(function ___() { __tryCatch(_, function __$_findStorageAccount__11() { _(null, null, true); }); }); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$_findStorageAccount__11() { progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$_findStorageAccount__11() { _(); }); }); }); }, _getPrefix: function _getPrefix__12(_) { var __this = this; var __frame = { name: "_getPrefix__12", line: 522 }; return __func(_, this, arguments, _getPrefix__12, 0, __frame, function __$_getPrefix__12() { return (function __$_getPrefix__12(__then) { if (utils.stringIsNullOrEmpty(__this.prefix)) { return require("crypto").randomBytes(8, __cb(_, __frame, 2, 53, function ___(__0, __1) { __this.prefix = ("cli" + (__1.toString("hex"))); __then(); }, true)); } else { __then(); } ; })(function __$_getPrefix__12() { return _(null, __this.prefix); }); }); }, _generateNewStorageAccountName: function _generateNewStorageAccountName__13(_) { var __this = this; var __frame = { name: "_generateNewStorageAccountName__13", line: 530 }; return __func(_, this, arguments, _generateNewStorageAccountName__13, 0, __frame, function __$_generateNewStorageAccountName__13() { return __this._getPrefix(__cb(_, __frame, 1, 44, function ___(__0, __2) { var __1 = __this._normalizeString((__2 + (new Date()).getTime().toString())); return _(null, __1); }, true)); }); }, _generateNewStorageAccountNameWithPrefix: function _generateNewStorageAccountNameWithPrefix__14(prefix, _) { var __this = this; var __frame = { name: "_generateNewStorageAccountNameWithPrefix__14", line: 534 }; return __func(_, this, arguments, _generateNewStorageAccountNameWithPrefix__14, 1, __frame, function __$_generateNewStorageAccountNameWithPrefix__14() { return (function __$_generateNewStorageAccountNameWithPrefix__14(__then) { if (utils.stringIsNullOrEmpty(prefix)) { return require("crypto").randomBytes(8, __cb(_, __frame, 2, 48, function ___(__0, __1) { prefix = ("cli" + (__1.toString("hex"))); __then(); }, true)); } else { __then(); } ; })(function __$_generateNewStorageAccountNameWithPrefix__14() { return _(null, __this._normalizeString((prefix + (new Date()).getTime().toString()))); }); }); }, _generateOSDiskName: function _generateOSDiskName__15(_) { var __this = this; var __frame = { name: "_generateOSDiskName__15", line: 542 }; return __func(_, this, arguments, _generateOSDiskName__15, 0, __frame, function __$_generateOSDiskName__15() { return __this._getPrefix(__cb(_, __frame, 1, 44, function ___(__0, __2) { var __1 = ((__this._normalizeString(__2) + "-os-") + (new Date()).getTime().toString()); return _(null, __1); }, true)); }); }, _generateDataDiskName: function(vmName) { var currentDateTime = this._getCurrentDateTime(); return ((((vmName + "-") + currentDateTime.date) + "-") + currentDateTime.time); }, _getCurrentDateTime: function() { var newDate = new Date(); var currentDate = ((((((newDate.getFullYear() + "") + ((((((newDate.getMonth() + 1)) < 10)) ? "0" : ""))) + "") + ((newDate.getMonth() + 1))) + ((((newDate.getDate() < 10)) ? "0" : ""))) + newDate.getDate()); var currentTime = (((((((((((((newDate.getHours() < 10)) ? "0" : "")) + newDate.getHours()) + "") + ((((newDate.getMinutes() < 10)) ? "0" : ""))) + newDate.getMinutes()) + "") + ((((newDate.getSeconds() < 10)) ? "0" : ""))) + newDate.getSeconds()) + "") + newDate.getMilliseconds()); return { date: currentDate, time: currentTime }; }, _normalizeString: function(str) { return str.replace(/[^a-zA-Z0-9]+/g, "").slice(0, 24).toLowerCase(); }, _parseBlobUrl: function(blobUrl, paramName) { var result = { }; if (utils.stringIsNullOrEmpty(blobUrl)) { throw new Exception(util.format($("%s cannot be null"), paramName)); } ; var protocolSplit = blobUrl.split("://"); if (((protocolSplit.length != 2) || (((protocolSplit[0] !== "http") && (protocolSplit[0] !== "https"))))) { throw new Error(util.format($("Invalid %s, url must contain protocol part and it must be either http or https"), paramName)); } ; result.protocol = protocolSplit[0]; var urlWithoutProtocol = protocolSplit.slice(-1)[0]; var urlPartsSplit = urlWithoutProtocol.split("/"); if ((urlPartsSplit.length < 3)) { throw new Error(util.format($("Invalid %s, the url must contain container name and blob name"), paramName)); } ; var hostSplit = urlPartsSplit[0].split("."); if ((/^([a-z0-9]){3,24}$/.test(hostSplit[0]) === false)) { throw new Error(util.format($("Invalid %s, the storage account name %s is invalid"), paramName, hostSplit[0])); } ; result.storageAccountName = hostSplit[0]; if ((/^[a-z0-9](?!.*([-])\1)[a-z0-9\-]+[a-z0-9]$/.test(urlPartsSplit[1]) === false)) { throw new Error(util.format($("Invalid %s, the container name %s is invalid"), paramName, urlPartsSplit[1])); } ; result.containerName = urlPartsSplit[1]; for (var i = 2; (i < urlPartsSplit.length); i++) { var p = urlPartsSplit[i].replace(/\s+/g, ""); if ((p === "")) { throw new Error(util.format($("Invalid %s, the blob name part is invalid"), paramName)); } ; }; result.blobName = urlPartsSplit.slice(2).join("/"); return result; }}); module.exports = VMStorageProfile;