UNPKG

azure-cli

Version:

Microsoft Azure Cross Platform Command Line tool

885 lines (516 loc) 65.9 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 constants = require("./constants"); var fs = require("fs"); var profile = require("../../../util/profile"); var PublicIp = require("./publicIPAddress.helper"); var resourceUtils = require("../resource/resourceUtils"); var Subnet = require("./subnet"); var tagUtils = require("../tag/tagUtils"); var util = require("util"); var utils = require("../../../util/utils"); var VNetUtil = require("../../../util/vnet.util"); var $ = utils.getLocaleString; function AppGateways(cli, networkManagementClient) { this.interaction = cli.interaction; this.networkManagementClient = networkManagementClient; this.output = cli.output; this.publicIpCrud = new PublicIp(cli, networkManagementClient); this.subnetCrud = new Subnet(cli, networkManagementClient); this.vnetUtil = new VNetUtil();}; __.extend(AppGateways.prototype, { createAppGateway: function createAppGateway__1(resourceGroup, appGatewayName, location, options, _) { var self, appGateway, subnetId, subnet, parameters, frontendIpID, frontendPortID, poolID, settingsID, listenerID, capacity, data, certID, progress, createdAppGateway, __this = this; var __frame = { name: "createAppGateway__1", line: 39 }; return __func(_, this, arguments, createAppGateway__1, 4, __frame, function __$createAppGateway__1() { self = __this; return self.get(resourceGroup, appGatewayName, __cb(_, __frame, 2, 26, function ___(__0, __1) { appGateway = __1; if (appGateway) { return _(new Error(util.format($("Application gateway \"%s\" already exists in resource group \"%s\""), appGatewayName, resourceGroup))); } ; return (function __$createAppGateway__1(__then) { if (options.subnetId) { subnetId = options.subnetId; __then(); } else { return self.subnetCrud.get(resourceGroup, options.vnetName, options.subnetName, __cb(_, __frame, 10, 35, function ___(__0, __2) { subnet = __2; if (!subnet) { return _(new Error(util.format($("Subnet \"%s\" not found in virtual network \"%s\""), options.subnetName, options.vnetName))); } ; subnetId = subnet.id; __then(); }, true)); } ; })(function __$createAppGateway__1() { parameters = self._setDefaultAttributes(options); self.subscriptionId = self._getSubscriptionId(options); frontendIpID = self._generateResourceId(resourceGroup, appGatewayName, "frontendIPConfigurations", parameters.frontendIpName); frontendPortID = self._generateResourceId(resourceGroup, appGatewayName, "frontendPorts", parameters.frontendPortName); poolID = self._generateResourceId(resourceGroup, appGatewayName, "backendAddressPools", parameters.addressPoolName); settingsID = self._generateResourceId(resourceGroup, appGatewayName, "backendHttpSettingsCollection", parameters.httpSettingsName); listenerID = self._generateResourceId(resourceGroup, appGatewayName, "httpListeners", parameters.httpListenerName); appGateway = { name: appGatewayName, location: location, gatewayIPConfigurations: [{ name: parameters.gatewayIpName, subnet: { id: subnetId } },], frontendPorts: [{ name: parameters.frontendPortName, port: parseInt(parameters.frontendPort) },], backendAddressPools: [{ name: parameters.addressPoolName, backendAddresses: self._parseDnsServers(options), backendIPConfiguration: [] },], backendHttpSettingsCollection: [{ name: parameters.httpSettingsName, protocol: parameters.httpSettingsProtocol, port: parseInt(parameters.httpSettingsPort), cookieBasedAffinity: parameters.httpSettingsCookieBasedAffinity },], httpListeners: [{ name: parameters.httpListenerName, frontendIPConfiguration: { id: frontendIpID }, frontendPort: { id: frontendPortID }, protocol: parameters.httpListenerProtocol },], requestRoutingRules: [{ name: parameters.routingRuleName, ruleType: parameters.routingRuleType, backendAddressPool: { id: poolID }, backendHttpSettings: { id: settingsID }, httpListener: { id: listenerID } },] }; if (parameters.skuName) { utils.verifyParamExistsInCollection(constants.appGateway.sku.name, parameters.skuName, "--sku-name"); appGateway.sku = { name: parameters.skuName }; } ; if (options.skuTier) { utils.verifyParamExistsInCollection(constants.appGateway.sku.tier, parameters.skuTier, "--sku-tier"); appGateway.sku.tier = parameters.skuTier; } ; if (options.capacity) { capacity = parseInt(options.capacity); if (((capacity >= constants.appGateway.sku.capacity[0]) && (capacity <= constants.appGateway.sku.capacity[1]))) { appGateway.sku.capacity = capacity; } else { return _(new Error(util.format($("Given %s \"%s\" is invalid, supported values are: [%s]"), "--capacity", options.capacity, constants.appGateway.sku.capacity))); } ; } ; appGateway.frontendIPConfigurations = []; return self._parseFrontendIp(resourceGroup, appGatewayName, parameters.frontendIpName, parameters, __cb(_, __frame, 81, 50, function ___(__0, __3) { appGateway.frontendIPConfigurations.push(__3); if (parameters.certFile) { appGateway.sslCertificates = []; data = fs.readFileSync(parameters.certFile); appGateway.sslCertificates.push({ name: parameters.certName, password: parameters.certPassword, data: data.toString("base64") }); certID = self._generateResourceId(resourceGroup, appGatewayName, "sslCertificates", parameters.certName); appGateway.httpListeners[0].sslCertificate = { id: certID }; } ; if (utils.argHasValue(options.tags)) { tagUtils.appendTags(appGateway, options); } else { appGateway.tags = { }; } ; progress = self.interaction.progress(util.format($("Creating configuration for an application gateway \"%s\""), appGatewayName)); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$createAppGateway__1() { return self.networkManagementClient.applicationGateways.createOrUpdate(resourceGroup, appGatewayName, appGateway, __cb(_, __frame, 106, 75, function ___(__0, __4) { createdAppGateway = __4; _(null, null, true); }, true)); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$createAppGateway__1() { progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$createAppGateway__1() { self._showAppGateway(createdAppGateway); _(); }); }); }, true)); }); }, true)); }); }, setAppGateway: function setAppGateway__2(resourceGroup, appGatewayName, options, _) { var self, appGateway, capacity, __this = this; var __frame = { name: "setAppGateway__2", line: 152 }; return __func(_, this, arguments, setAppGateway__2, 3, __frame, function __$setAppGateway__2() { self = __this; return self.get(resourceGroup, appGatewayName, __cb(_, __frame, 2, 26, function ___(__0, __1) { appGateway = __1; if (!appGateway) { return _(new Error(util.format($("Application gateway \"%s\" not found in resource group \"%s\""), appGatewayName, resourceGroup))); } ; if (options.skuName) { utils.verifyParamExistsInCollection(constants.appGateway.sku.name, options.skuName, "--sku-name"); appGateway.sku.name = options.skuName; } ; if (options.skuTier) { utils.verifyParamExistsInCollection(constants.appGateway.sku.tier, options.skuTier, "--sku-tier"); appGateway.sku.tier = options.skuTier; } ; if (options.capacity) { capacity = parseInt(options.capacity); if (((capacity >= constants.appGateway.sku.capacity[0]) && (capacity <= constants.appGateway.sku.capacity[1]))) { appGateway.sku.capacity = capacity; } else { return _(new Error(util.format($("Given %s \"%s\" is invalid, supported values are: [%s]"), "--capacity", options.capacity, constants.appGateway.sku.capacity))); } ; } ; if (utils.argHasValue(options.tags)) { tagUtils.appendTags(appGateway, options); } ; self.output.warn("Application gateway set command is a long-running process. It may take up to 15-20 minutes to complete."); return self._setAppGateway(resourceGroup, appGatewayName, appGateway, options, __cb(_, __frame, 28, 9, function __$setAppGateway__2() { _(); }, true)); }, true)); }); }, get: function get__3(resourceGroup, appGatewayName, _) { var self, appGateway, progress, __this = this; var __frame = { name: "get__3", line: 183 }; return __func(_, this, arguments, get__3, 2, __frame, function __$get__3() { self = __this; progress = self.interaction.progress(util.format($("Looking up an application gateway \"%s\""), appGatewayName)); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$get__3() { return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$get__3() { return self.networkManagementClient.applicationGateways.get(resourceGroup, appGatewayName, null, __cb(_, __frame, 5, 68, function ___(__0, __1) { appGateway = __1; __then(); }, true)); }); })(function ___(error, __result) { __catch(function __$get__3() { if (error) { if ((error.statusCode === 404)) { appGateway = null; } ; __then(); } else { _(null, __result); } ; }, _); }); })(function ___() { __tryCatch(_, function __$get__3() { _(null, null, true); }); }); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$get__3() { progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$get__3() { return _(null, appGateway); }); }); }); }, addUrlPathMap: function addUrlPathMap__4(resourceGroup, appGatewayName, urlPathMapName, options, _) { var self, appGateway, backendHttpSettings, backendAddressPool, urlPathMap, __this = this; var __frame = { name: "addUrlPathMap__4", line: 199 }; return __func(_, this, arguments, addUrlPathMap__4, 4, __frame, function __$addUrlPathMap__4() { self = __this; return self.get(resourceGroup, appGatewayName, __cb(_, __frame, 2, 26, function ___(__0, __1) { appGateway = __1; if (!appGateway) { return _(new Error(util.format($("Application gateway \"%s\" not found"), appGatewayName))); } ; if (utils.findFirstCaseIgnore(appGateway.urlPathMaps, { name: urlPathMapName })) { return _(new Error(util.format($("An url path map with name \"%s\" already exists in application gateway \"%s\""), urlPathMapName, appGatewayName))); } ; backendHttpSettings = utils.findFirstCaseIgnore(appGateway.backendHttpSettingsCollection, { name: options.httpSettingsName }); if (!backendHttpSettings) { return _(new Error(util.format($("A backend http settings with name \"%s\" not found in application gateway \"%s\""), options.httpSettingsName, appGatewayName))); } ; backendAddressPool = utils.findFirstCaseIgnore(appGateway.backendAddressPools, { name: options.addressPoolName }); if (!backendAddressPool) { return _(new Error(util.format($("Address pool with name \"%s\" not found for an application gateway \"%s\""), options.addressPoolName, appGatewayName))); } ; urlPathMap = { name: urlPathMapName, defaultBackendAddressPool: { id: backendAddressPool.id }, defaultBackendHttpSettings: { id: backendHttpSettings.id }, pathRules: [{ name: options.ruleName, paths: [options.path,], backendAddressPool: { id: backendAddressPool.id }, backendHttpSettings: { id: backendHttpSettings.id } },] }; appGateway.urlPathMaps.push(urlPathMap); return self._setAppGateway(resourceGroup, appGatewayName, appGateway, options, __cb(_, __frame, 38, 9, function __$addUrlPathMap__4() { _(); }, true)); }, true)); }); }, setUrlPathMap: function setUrlPathMap__5(resourceGroup, appGatewayName, urlPathMapName, options, _) { var self, appGateway, urlPathMap, backendHttpSettings, backendAddressPool, redirectConfiguration, __this = this; var __frame = { name: "setUrlPathMap__5", line: 240 }; return __func(_, this, arguments, setUrlPathMap__5, 4, __frame, function __$setUrlPathMap__5() { self = __this; return self.get(resourceGroup, appGatewayName, __cb(_, __frame, 2, 26, function ___(__0, __1) { appGateway = __1; if (!appGateway) { return _(new Error(util.format($("Application gateway \"%s\" not found"), appGatewayName))); } ; urlPathMap = utils.findFirstCaseIgnore(appGateway.urlPathMaps, { name: urlPathMapName }); if (!urlPathMap) { return _(new Error(util.format($("An url path map with name \"%s\" not found in application gateway \"%s\""), urlPathMapName, appGatewayName))); } ; if (options.httpSettingsName) { backendHttpSettings = utils.findFirstCaseIgnore(appGateway.backendHttpSettingsCollection, { name: options.httpSettingsName }); if (!backendHttpSettings) { return _(new Error(util.format($("A backend http settings with name \"%s\" not found in application gateway \"%s\""), options.httpSettingsName, appGatewayName))); } ; urlPathMap.defaultBackendHttpSettings = { id: backendHttpSettings.id }; } ; if (options.addressPoolName) { backendAddressPool = utils.findFirstCaseIgnore(appGateway.backendAddressPools, { name: options.addressPoolName }); if (!backendAddressPool) { return _(new Error(util.format($("Address pool with name \"%s\" not found for an application gateway \"%s\""), options.addressPoolName, appGatewayName))); } ; urlPathMap.defaultBackendAddressPool = { id: backendAddressPool.id }; } ; if (options.defaultRedirectConfigurationName) { redirectConfiguration = utils.findFirstCaseIgnore(appGateway.redirectConfigurations, { name: options.defaultRedirectConfigurationName }); if (!redirectConfiguration) { return _(new Error(util.format($("Redirect configuration with name \"%s\" not found for an application gateway \"%s\""), options.defaultRedirectConfigurationName, appGatewayName))); } ; urlPathMap.defaultRedirectConfiguration = { id: redirectConfiguration.id }; } ; return self._setAppGateway(resourceGroup, appGatewayName, appGateway, options, __cb(_, __frame, 36, 9, function __$setUrlPathMap__5() { _(); }, true)); }, true)); }); }, listUrlPathMaps: function listUrlPathMaps__6(resourceGroup, appGatewayName, options, _) { var self, appGateway, __this = this; var __frame = { name: "listUrlPathMaps__6", line: 279 }; return __func(_, this, arguments, listUrlPathMaps__6, 3, __frame, function __$listUrlPathMaps__6() { self = __this; return self.get(resourceGroup, appGatewayName, __cb(_, __frame, 3, 26, function ___(__0, __1) { appGateway = __1; if (!appGateway) { return _(new Error(util.format($("Application gateway \"%s\" not found"), appGatewayName))); } ; self._listAppGatewayUrlPathMaps(appGateway); _(); }, true)); }); }, showUrlPathMap: function showUrlPathMap__7(resourceGroup, appGatewayName, urlPathMapName, options, _) { var self, appGateway, urlPathMap, __this = this; var __frame = { name: "showUrlPathMap__7", line: 290 }; return __func(_, this, arguments, showUrlPathMap__7, 4, __frame, function __$showUrlPathMap__7() { self = __this; return self.get(resourceGroup, appGatewayName, __cb(_, __frame, 3, 26, function ___(__0, __1) { appGateway = __1; if (!appGateway) { return _(new Error(util.format($("Application gateway \"%s\" not found"), appGatewayName))); } ; urlPathMap = utils.findFirstCaseIgnore(appGateway.urlPathMaps, { name: urlPathMapName }); if (!urlPathMap) { return _(new Error(util.format($("An url path map with name \"%s\" not found in application gateway \"%s\""), urlPathMapName, appGatewayName))); } ; self._showAppGatewayUrlPathMap(urlPathMap); _(); }, true)); }); }, removeUrlPathMap: function removeUrlPathMap__8(resourceGroup, appGatewayName, urlPathMapName, options, _) { var self, appGateway, index, __this = this; var __frame = { name: "removeUrlPathMap__8", line: 305 }; return __func(_, this, arguments, removeUrlPathMap__8, 4, __frame, function __$removeUrlPathMap__8() { self = __this; return self.get(resourceGroup, appGatewayName, __cb(_, __frame, 2, 26, function ___(__0, __2) { appGateway = __2; if (!appGateway) { return _(new Error(util.format($("Application gateway \"%s\" not found"), appGatewayName))); } ; index = utils.indexOfCaseIgnore(appGateway.urlPathMaps, { name: urlPathMapName }); if ((index === -1)) { return _(new Error(util.format($("An url path map with name \"%s\" not found in application gateway \"%s\""), urlPathMapName, appGatewayName))); } ; return (function __$removeUrlPathMap__8(_) { var __1 = !options.quiet; if (!__1) { return _(null, __1); } ; return self.interaction.confirm(util.format($("Delete url path map \"%s\"? [y/n] "), urlPathMapName), __cb(_, __frame, 12, 44, function ___(__0, __3) { var __2 = !__3; return _(null, __2); }, true)); })(__cb(_, __frame, -304, 17, function ___(__0, __3) { return (function __$removeUrlPathMap__8(__then) { if (__3) { return _(null); } else { __then(); } ; })(function __$removeUrlPathMap__8() { appGateway.urlPathMaps.splice(index, 1); return self._setAppGateway(resourceGroup, appGatewayName, appGateway, options, __cb(_, __frame, 16, 9, function __$removeUrlPathMap__8() { _(); }, true)); }); }, true)); }, true)); }); }, addMapRule: function addMapRule__9(resourceGroup, appGatewayName, ruleName, options, _) { var self, appGateway, urlPathMap, rule, backendHttpSettings, backendAddressPool, redirectConfiguration, __this = this; var __frame = { name: "addMapRule__9", line: 324 }; return __func(_, this, arguments, addMapRule__9, 4, __frame, function __$addMapRule__9() { self = __this; return self.get(resourceGroup, appGatewayName, __cb(_, __frame, 2, 26, function ___(__0, __1) { appGateway = __1; if (!appGateway) { return _(new Error(util.format($("Application gateway \"%s\" not found"), appGatewayName))); } ; urlPathMap = utils.findFirstCaseIgnore(appGateway.urlPathMaps, { name: options.urlPathMapName }); if (!urlPathMap) { return _(new Error(util.format($("An url path map with name \"%s\" not found in application gateway \"%s\""), options.urlPathMapName, appGatewayName))); } ; if (utils.findFirstCaseIgnore(urlPathMap.pathRules, { name: ruleName })) { return _(new Error(util.format($("A rule with name \"%s\" already exists in url path map \"%s\""), ruleName, options.urlPathMapName))); } ; rule = { name: ruleName, paths: [options.path,] }; if (options.httpSettingsName) { backendHttpSettings = utils.findFirstCaseIgnore(appGateway.backendHttpSettingsCollection, { name: options.httpSettingsName }); if (!backendHttpSettings) { return _(new Error(util.format($("A backend http settings with name \"%s\" not found in application gateway \"%s\""), options.httpSettingsName, appGatewayName))); } ; rule.backendHttpSettings = { id: backendHttpSettings.id }; } ; if (options.addressPoolName) { backendAddressPool = utils.findFirstCaseIgnore(appGateway.backendAddressPools, { name: options.addressPoolName }); if (!backendAddressPool) { return _(new Error(util.format($("Address pool with name \"%s\" not found for an application gateway \"%s\""), options.addressPoolName, appGatewayName))); } ; rule.backendAddressPool = { id: backendAddressPool.id }; } ; if (options.redirectConfigurationName) { redirectConfiguration = utils.findFirstCaseIgnore(appGateway.redirectConfigurations, { name: options.redirectConfigurationName }); if (!redirectConfiguration) { return _(new Error(util.format($("Redirect configuration with name \"%s\" not found for an application gateway \"%s\""), options.redirectConfigurationName, appGatewayName))); } ; rule.redirectConfiguration = { id: redirectConfiguration.id }; } ; urlPathMap.pathRules.push(rule); return self._setAppGateway(resourceGroup, appGatewayName, appGateway, options, __cb(_, __frame, 46, 9, function __$addMapRule__9() { _(); }, true)); }, true)); }); }, setMapRule: function setMapRule__10(resourceGroup, appGatewayName, ruleName, options, _) { var self, appGateway, urlPathMap, rule, backendHttpSettings, backendAddressPool, redirectConfiguration, __this = this; var __frame = { name: "setMapRule__10", line: 373 }; return __func(_, this, arguments, setMapRule__10, 4, __frame, function __$setMapRule__10() { self = __this; return self.get(resourceGroup, appGatewayName, __cb(_, __frame, 2, 26, function ___(__0, __1) { appGateway = __1; if (!appGateway) { return _(new Error(util.format($("Application gateway \"%s\" not found"), appGatewayName))); } ; urlPathMap = utils.findFirstCaseIgnore(appGateway.urlPathMaps, { name: options.urlPathMapName }); if (!urlPathMap) { return _(new Error(util.format($("An url path map with name \"%s\" not found in application gateway \"%s\""), options.urlPathMapName, appGatewayName))); } ; rule = utils.findFirstCaseIgnore(urlPathMap.pathRules, { name: ruleName }); if (!rule) { return _(new Error(util.format($("A rule with name \"%s\" not found in url path map \"%s\""), ruleName, options.urlPathMapName))); } ; if (options.httpSettingsName) { backendHttpSettings = utils.findFirstCaseIgnore(appGateway.backendHttpSettingsCollection, { name: options.httpSettingsName }); if (!backendHttpSettings) { return _(new Error(util.format($("A backend http settings with name \"%s\" not found in application gateway \"%s\""), options.httpSettingsName, appGatewayName))); } ; rule.backendHttpSettings = { id: backendHttpSettings.id }; } ; if (options.addressPoolName) { backendAddressPool = utils.findFirstCaseIgnore(appGateway.backendAddressPools, { name: options.addressPoolName }); if (!backendAddressPool) { return _(new Error(util.format($("Address pool with name \"%s\" not found for an application gateway \"%s\""), options.addressPoolName, appGatewayName))); } ; rule.backendAddressPool = { id: backendAddressPool.id }; } ; if (options.redirectConfigurationName) { redirectConfiguration = utils.findFirstCaseIgnore(appGateway.redirectConfigurations, { name: options.redirectConfigurationName }); if (!redirectConfiguration) { return _(new Error(util.format($("Redirect configuration with name \"%s\" not found for an application gateway \"%s\""), options.redirectConfigurationName, appGatewayName))); } ; rule.redirectConfiguration = { id: redirectConfiguration.id }; } ; return self._setAppGateway(resourceGroup, appGatewayName, appGateway, options, __cb(_, __frame, 41, 9, function __$setMapRule__10() { _(); }, true)); }, true)); }); }, listUrlPathMapRules: function listUrlPathMapRules__11(resourceGroup, appGatewayName, urlPathMapName, options, _) { var self, appGateway, urlPathMap, __this = this; var __frame = { name: "listUrlPathMapRules__11", line: 417 }; return __func(_, this, arguments, listUrlPathMapRules__11, 4, __frame, function __$listUrlPathMapRules__11() { self = __this; return self.get(resourceGroup, appGatewayName, __cb(_, __frame, 3, 26, function ___(__0, __1) { appGateway = __1; if (!appGateway) { return _(new Error(util.format($("Application gateway \"%s\" not found"), appGatewayName))); } ; urlPathMap = utils.findFirstCaseIgnore(appGateway.urlPathMaps, { name: urlPathMapName }); if (!urlPathMap) { return _(new Error(util.format($("An url path map with name \"%s\" not found in application gateway \"%s\""), urlPathMapName, appGatewayName))); } ; self._listAppGatewayUrlPathMapRules(urlPathMap.pathRules); _(); }, true)); }); }, showUrlPathMapRule: function showUrlPathMapRule__12(resourceGroup, appGatewayName, urlPathMapName, ruleName, options, _) { var self, appGateway, urlPathMap, rule, __this = this; var __frame = { name: "showUrlPathMapRule__12", line: 433 }; return __func(_, this, arguments, showUrlPathMapRule__12, 5, __frame, function __$showUrlPathMapRule__12() { self = __this; return self.get(resourceGroup, appGatewayName, __cb(_, __frame, 3, 26, function ___(__0, __1) { appGateway = __1; if (!appGateway) { return _(new Error(util.format($("Application gateway \"%s\" not found"), appGatewayName))); } ; urlPathMap = utils.findFirstCaseIgnore(appGateway.urlPathMaps, { name: urlPathMapName }); if (!urlPathMap) { return _(new Error(util.format($("An url path map with name \"%s\" not found in application gateway \"%s\""), urlPathMapName, appGatewayName))); } ; rule = utils.findFirstCaseIgnore(urlPathMap.pathRules, { name: ruleName }); if (!rule) { return _(new Error(util.format($("An url path map with name \"%s\" doesn't contain rule with name \"%s\""), urlPathMapName, ruleName))); } ; self._showAppGatewayUrlPathMapRule(rule); _(); }, true)); }); }, removeMapRule: function removeMapRule__13(resourceGroup, appGatewayName, ruleName, options, _) { var self, appGateway, urlPathMap, index, __this = this; var __frame = { name: "removeMapRule__13", line: 453 }; return __func(_, this, arguments, removeMapRule__13, 4, __frame, function __$removeMapRule__13() { self = __this; return self.get(resourceGroup, appGatewayName, __cb(_, __frame, 2, 26, function ___(__0, __2) { appGateway = __2; if (!appGateway) { return _(new Error(util.format($("Application gateway \"%s\" not found"), appGatewayName))); } ; urlPathMap = utils.findFirstCaseIgnore(appGateway.urlPathMaps, { name: options.urlPathMapName }); if (!urlPathMap) { return _(new Error(util.format($("An url path map with name \"%s\" not found in application gateway \"%s\""), options.urlPathMapName, appGatewayName))); } ; index = utils.indexOfCaseIgnore(urlPathMap.pathRules, { name: ruleName }); if ((index === -1)) { return _(new Error(util.format($("A rule with name \"%s\" not found in url path map \"%s\""), ruleName, options.urlPathMapName))); } ; return (function __$removeMapRule__13(_) { var __1 = !options.quiet; if (!__1) { return _(null, __1); } ; return self.interaction.confirm(util.format($("Delete url path map rule \"%s\"? [y/n] "), ruleName), __cb(_, __frame, 17, 44, function ___(__0, __3) { var __2 = !__3; return _(null, __2); }, true)); })(__cb(_, __frame, -452, 17, function ___(__0, __3) { return (function __$removeMapRule__13(__then) { if (__3) { return _(null); } else { __then(); } ; })(function __$removeMapRule__13() { urlPathMap.pathRules.splice(index, 1); return self._setAppGateway(resourceGroup, appGatewayName, appGateway, options, __cb(_, __frame, 21, 9, function __$removeMapRule__13() { _(); }, true)); }); }, true)); }, true)); }); }, createDisabledRuleGroup: function createDisabledRuleGroup__14(resourceGroup, appGatewayName, options, _) { var self, result, wafConfig, disabledRuleGroup, progress, __this = this; var __frame = { name: "createDisabledRuleGroup__14", line: 477 }; return __func(_, this, arguments, createDisabledRuleGroup__14, 3, __frame, function __$createDisabledRuleGroup__14() { self = __this; return self.get(resourceGroup, appGatewayName, __cb(_, __frame, 2, 22, function ___(__0, __1) { result = __1; if (!result) { return _(new Error(util.format($("application gateway with name \"%s\" not found in the resource group \"%s\""), appGatewayName, resourceGroup))); } ; wafConfig = result.webApplicationFirewallConfiguration; if (!wafConfig) { return _(new Error(util.format($("WAF config not found for application gateway with name \"%s\" in resource group \"%s\""), appGatewayName, resourceGroup))); } ; if (!wafConfig.disabledRuleGroups) { wafConfig.disabledRuleGroups = []; } ; disabledRuleGroup = utils.findFirstCaseIgnore(wafConfig.disabledRuleGroups, { ruleGroupName: options.ruleGroupName }); if (disabledRuleGroup) { return _(new Error(util.format($("rule group with name \"%s\" already exists", options.ruleGroupName)))); } ; wafConfig.disabledRuleGroups.push({ ruleGroupName: options.ruleGroupName, rules: (options.rules ? options.rules.split(",").map(utils.parseInt) : null) }); progress = self.interaction.progress(util.format($(("Adding new disabled rule group to application gateway " + "WAF configuration in \"%s\"")), appGatewayName)); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$createDisabledRuleGroup__14() { return self.networkManagementClient.applicationGateways.createOrUpdate(resourceGroup, appGatewayName, result, __cb(_, __frame, 31, 64, function ___(__0, __2) { result = __2; _(null, null, true); }, true)); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$createDisabledRuleGroup__14() { progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$createDisabledRuleGroup__14() { self._showAppGatewayWAFConfig(wafConfig); _(); }); }); }, true)); }); }, setDisabledRuleGroup: function setDisabledRuleGroup__15(resourceGroup, appGatewayName, options, _) { var self, result, wafConfig, disabledRuleGroup, progress, __this = this; var __frame = { name: "setDisabledRuleGroup__15", line: 516 }; return __func(_, this, arguments, setDisabledRuleGroup__15, 3, __frame, function __$setDisabledRuleGroup__15() { self = __this; return self.get(resourceGroup, appGatewayName, __cb(_, __frame, 2, 22, function ___(__0, __1) { result = __1; if (!result) { return _(new Error(util.format($("application gateway with name \"%s\" not found in the resource group \"%s\""), appGatewayName, resourceGroup))); } ; wafConfig = result.webApplicationFirewallConfiguration; if (!wafConfig) { return _(new Error(util.format($("WAF config not found for application gateway with name \"%s\" in resource group \"%s\""), appGatewayName, resourceGroup))); } ; disabledRuleGroup = utils.findFirstCaseIgnore(wafConfig.disabledRuleGroups, { ruleGroupName: options.ruleGroupName }); if (!disabledRuleGroup) { return _(new Error(util.format($("rule group with name \"%s\" is not found", options.ruleGroupName)))); } ; disabledRuleGroup.rules = (options.rules ? options.rules.split(",").map(utils.parseInt) : null); progress = self.interaction.progress(util.format($(("Updating disabled rule group \"%s\" in application gateway " + "WAF configuration in \"%s\"")), options.ruleGroupName, appGatewayName)); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$setDisabledRuleGroup__15() { return self.networkManagementClient.applicationGateways.createOrUpdate(resourceGroup, appGatewayName, result, __cb(_, __frame, 24, 64, function ___(__0, __2) { result = __2; _(null, null, true); }, true)); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$setDisabledRuleGroup__15() { progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$setDisabledRuleGroup__15() { self._showAppGatewayWAFConfig(wafConfig); _(); }); }); }, true)); }); }, showDisabledRuleGroup: function showDisabledRuleGroup__16(resourceGroup, appGatewayName, options, _) { var self, result, wafConfig, disabledRuleGroup, __this = this; var __frame = { name: "showDisabledRuleGroup__16", line: 548 }; return __func(_, this, arguments, showDisabledRuleGroup__16, 3, __frame, function __$showDisabledRuleGroup__16() { self = __this; return self.get(resourceGroup, appGatewayName, __cb(_, __frame, 2, 22, function ___(__0, __1) { result = __1; if (!result) { return _(new Error(util.format($("application gateway with name \"%s\" not found in the resource group \"%s\""), appGatewayName, resourceGroup))); } ; wafConfig = result.webApplicationFirewallConfiguration; if (!wafConfig) { return _(new Error(util.format($("WAF config not found for application gateway with name \"%s\" in resource group \"%s\""), appGatewayName, resourceGroup))); } ; disabledRuleGroup = utils.findFirstCaseIgnore(wafConfig.disabledRuleGroups, { ruleGroupName: options.ruleGroupName }); if (!disabledRuleGroup) { return _(new Error(util.format($("rule group with name \"%s\" is not disabled", options.ruleGroupName)))); } ; self.interaction.formatOutput(disabledRuleGroup, function(group) { self.output.nameValue($("Group name"), group.ruleGroupName); self.output.nameValue($("Disabled rules"), (group.rules ? group.rules.join(", ") : "All rules are disabled")); }); _(); }, true)); }); }, listDisabledRuleGroups: function listDisabledRuleGroups__17(resourceGroup, appGatewayName, options, _) { var self, result, wafConfig, __this = this; var __frame = { name: "listDisabledRuleGroups__17", line: 573 }; return __func(_, this, arguments, listDisabledRuleGroups__17, 3, __frame, function __$listDisabledRuleGroups__17() { self = __this; return self.get(resourceGroup, appGatewayName, __cb(_, __frame, 2, 22, function ___(__0, __1) { result = __1; if (!result) { return _(new Error(util.format($("application gateway with name \"%s\" not found in the resource group \"%s\""), appGatewayName, resourceGroup))); } ; wafConfig = result.webApplicationFirewallConfiguration; if (!wafConfig) { return _(new Error(util.format($("WAF config not found for application gateway with name \"%s\" in resource group \"%s\""), appGatewayName, resourceGroup))); } ; self._listAppGatewayDisabledRuleGroup(wafConfig); _(); }, true)); }); }, deleteDisabledRuleGroup: function deleteDisabledRuleGroup__18(resourceGroup, appGatewayName, options, _) { var self, result, wafConfig, disabledRuleGroup, progress, __this = this; var __frame = { name: "deleteDisabledRuleGroup__18", line: 590 }; return __func(_, this, arguments, deleteDisabledRuleGroup__18, 3, __frame, function __$deleteDisabledRuleGroup__18() { self = __this; return self.get(resourceGroup, appGatewayName, __cb(_, __frame, 2, 22, function ___(__0, __2) { result = __2; if (!result) { return _(new Error(util.format($("application gateway with name \"%s\" not found in the resource group \"%s\""), appGatewayName, resourceGroup))); } ; wafConfig = result.webApplicationFirewallConfiguration; if (!wafConfig) { return _(new Error(util.format($("WAF config not found for application gateway with name \"%s\" in resource group \"%s\""), appGatewayName, resourceGroup))); } ; disabledRuleGroup = utils.findFirstCaseIgnore(wafConfig.disabledRuleGroups, { ruleGroupName: options.ruleGroupName }); if (!disabledRuleGroup) { return _(new Error(util.format($("rule group with name \"%s\" is not found", options.ruleGroupName)))); } ; return (function __$deleteDisabledRuleGroup__18(_) { var __1 = !options.quiet; if (!__1) { return _(null, __1); } ; return self.interaction.confirm(util.format($("Delete disabled rule group \"%s\"? [y/n] "), disabledRuleGroup.ruleGroupName), __cb(_, __frame, 19, 44, function ___(__0, __3) { var __2 = !__3; return _(null, __2); }, true)); })(__cb(_, __frame, -589, 17, function ___(__0, __3) { return (function __$deleteDisabledRuleGroup__18(__then) { if (__3) { return _(null); } else { __then(); } ; })(function __$deleteDisabledRuleGroup__18() { wafConfig.disabledRuleGroups.splice(wafConfig.disabledRuleGroups.indexOf(disabledRuleGroup), 1); progress = self.interaction.progress(util.format($(("Deleting disabled rule group \"%s\" from application gateway " + "WAF configuration in \"%s\"")), disabledRuleGroup.ruleGroupName, appGatewayName)); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$deleteDisabledRuleGroup__18() { return self.networkManagementClient.applicationGateways.createOrUpdate(resourceGroup, appGatewayName, result, __cb(_, __frame, 28, 64, function ___(__0, __4) { result = __4; _(null, null, true); }, true)); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$deleteDisabledRuleGroup__18() { progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$deleteDisabledRuleGroup__18() { self._showAppGatewayWAFConfig(wafConfig); _(); }); }); }); }, true)); }, true)); }); }, listAvailableSslOptions: function listAvailableSslOptions__19(options, _) { var self, result, progress, __this = this; var __frame = { name: "listAvailableSslOptions__19", line: 626 }; return __func(_, this, arguments, listAvailableSslOptions__19, 1, __frame, function __$listAvailableSslOptions__19() { self = __this; progress = self.interaction.progress($("Getting list of all available SSL options")); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$listAvailableSslOptions__19() { return self.networkManagementClient.applicationGateways.listAvailableSslOptions(__cb(_, __frame, 6, 64, function ___(__0, __1) { result = __1; _(null, null, true); }, true)); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$listAvailableSslOptions__19() { progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$listAvailableSslOptions__19() { self._listAppGatewayAvailableSslOptions(result); _(); }); }); }); }, getSslPredefinedPolicy: function getSslPredefinedPolicy__20(name, options, _) { var self, result, progress, __this = this; var __frame = { name: "getSslPredefinedPolicy__20", line: 640 }; return __func(_, this, arguments, getSslPredefinedPolicy__20, 2, __frame, function __$getSslPredefinedPolicy__20() { self = __this; progress = self.interaction.progress(util.format($("Getting details of Ssl predefined policy with the name \"%s\""), name)); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$getSslPredefinedPolicy__20() { return self.networkManagementClient.applicationGateways.getSslPredefinedPolicy(name, __cb(_, __frame, 6, 64, function ___(__0, __1) { result = __1; _(null, null, true); }, true)); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$getSslPredefinedPolicy__20() { progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$getSslPredefinedPolicy__20() { self._showAppGatewayPredefinedPolicy(result); _(); }); }); }); }, listSslPredefinedPolicies: function listSslPredefinedPolicies__21(options, _) { var self, result, progress, __this = this; var __frame = { name: "listSslPredefinedPolicies__21", line: 654 }; return __func(_, this, arguments, listSslPredefinedPolicies__21, 1, __frame, function __$listSslPredefinedPolicies__21() { self = __this; progress = self.interaction.progress($("Getting list of all Ssl predefined policies")); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$listSslPredefinedPolicies__21() { return self.networkManagementClient.applicationGateways.listAvailableSslPredefinedPolicies(__cb(_, __frame, 6, 64, function ___(__0, __1) { result = __1; _(null, null, true); }, true)); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$listSslPredefinedPolicies__21() { progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$listSslPredefinedPolicies__21() { self._listAppGatewayPredefinedPolicies(result); _(); }); }); }); }, _generateResourceId: function(resourceGroup, appGatewayName, resourceType, resourceName) { var id = ""; id += "/subscriptions/"; id += encodeURIComponent(this.subscriptionId); id += "/resourceGroups/"; id += encodeURIComponent(resourceGroup); id += "/providers/"; id += "Microsoft.Network"; id += "/applicationGateways/"; id += encodeURIComponent(appGatewayName); id += util.format($("/%s"), resourceType); id += util.format($("/%s"), resourceName); return id; }, _getAttributeNames: function(list) { var namesString = "["; var counter = 0; list.forEach(function(item) { if ((counter > 0)) { namesString += ", "; } ; namesString += item.name; counter++; }); namesString += "]"; return namesString; }, _getSubscriptionId: function(options) { var subscription = profile.current.getSubscription(options.subscription); var client = utils.createResourceClient(subscription); return client.credentials.subscriptionId; }, _listAppGatewayAddressPools: function(appGateway, indent) { var self = this; if (!indent) { indent = 0; }; self.interaction.formatOutput(appGateway.backendAddressPools, function(pools) { var formattedPools = []; var index = 0; pools.forEach(function(pool) { formattedPools.push({ name: pool.name, ips: [] }); pool.backendAddresses.forEach(function(ip) { formattedPools[index].ips.push(ip.ipAddress); }); index++; }); formattedPools.forEach(function(item) { self.output.nameValue($("Name"), item.name, indent); self.output.header($("IP Addresses"), indent); self.output.list(item.ips, (indent + 2)); self.output.data($(""), ""); }); }); }, _listAppGatewayAvailableSslOptions: function(options, indent) { var self = this; if (!indent) { indent = 0; }; self.interaction.formatOutput(options, function(options) { self.output.nameValue($("Default Policy"), options.defaultPolicy, indent); self.output.header($("Predefined Policies"), indent); var policies = options.predefinedPolicies.map(function(policy) { var split = policy.id.split("/"); return split[(split.length - 1)]; }); self.output.list(policies, (indent + 2)); self.output.header($("Available Protocols"), indent); self.output.list(options.availableProtocols, (indent + 2)); self.output.header($("Available Cipher Suites"), indent); self.output.list(options.availableCipherSuites, (indent + 2)); self.output.data($(""), ""); }); }, _listAppGatewayDisabledRuleGroup: function(wafConfig, indent) { var self = this; if (!indent) { indent = 0; }; self.interaction.formatOutput(wafConfig.disabledRuleGroups, function(disabledRuleGroups) { if ((!disabledRuleGroups || (disabledRuleGroups.length === 0))) { self.output.warn($("No disabled rule groups")); } else { disabledRuleGroups.forEach(function(group) { self.output.nameValue($("Group name"), group.ruleGroupName, indent); self.output.nameValue($("Disabled rules"), (group.rules ? group.rules.join(", ") : "All rules are disabled"), indent); self.output.data($(""), ""); }); } ; }); }, _listAppGatewayFrontendIpConfigs: function(appGateway, indent) { var self = this; if (!indent) { indent = 0; }; self.interaction.formatOutput(appGateway.frontendIPConfigurations, function(frontendPorts) { frontendPorts.forEach(function(item) { self.output.nameValue($("Name"), item.name, indent); self.output.nameValue($("Allocation method"), item.privateIPAllocationMethod, indent); self.output.nameValue($("Private IP address"), item.privateIPAddress, indent); self.output.data($(""), ""); }); }); }, _listAppGatewayFrontendPorts: function(appGateway, indent) { var self = this; if (!indent) { indent = 0; }; self.interaction.formatOutput(appGateway.frontendPorts, function(frontendPorts) { frontendPorts.forEach(function(item) { self.output.nameValue($("Name"), item.name, indent); self.output.nameValue($("Port"), item.port, indent); self.output.data($(""), ""); }); }); }, _listAppGatewayHttpListeners: function(appGateway, indent) { var self = this; if (!indent) { indent = 0; }; self.interaction.formatOutput(appGateway.httpListeners, function(listeners) { listeners.forEach(function(listener) { self._showAppGatewayHttpListener(listener, indent); }); }); }, _listAppGatewayHttpSettings: function(appGateway, indent) { var self = this; if (!indent) { indent = 0; }; self.interaction.formatOutput(appGateway.backendHttpSettingsCollection, function(httpSettings) { httpSettings.forEach(function(item) { self.output.nameValue($("Name"), item.name, indent); self.output.nameValue($("Protocol"), item.protocol, indent); self.output.nameValue($("Port"), item.port, indent); self.output.nameValue($("Timeout"), item.requestTimeout, indent); self.output.nameValue($("Cookie Based Affinity"), item.cookieBasedAffinity, indent); self.output.data($(""), ""); }); }); }, _listAppGatewayPredefinedPolicies: function(policies, indent) { var self = this; if (!indent) { indent = 0; }; self.interaction.formatOutput(policies, function(policies) { policies.forEach(function(policy) { self._showAppGatewayPredefinedPolicy(policy, indent); }); }); }, _listAppGatewayProbes: function(appGateway, indent) { var self = this; if (!indent) { indent = 0; }; self.interaction.formatOutput(appGateway.probes, function(probes) { probes.forEach(function(item) { self.output.nameValue($("Name"), item.name, indent); self.output.nameValue($("Protocol"), item.protocol, indent); self.output.nameValue($("Host"), item.host, indent); self.output.nameValue($("Path"), item.path, indent); self.output.nameValue($("Interval"), item.interval, indent); self.output.nameValue($("Timeout"), item.timeout, indent); self.output.nameValue($("Unhealthy Threshold"), item.unhealthyThreshold, indent); self.output.data($(""), ""); }); }); }, _listAppGatewayRoutingRules: function(appGateway, indent) { var self = this; if (!indent) { indent = 0; }; self.interaction.formatOutput(appGateway.requestRoutingRules, function(routingRules) { routingRules.forEach(function(item) { var listener = resourceUtils.getResourceInformation(item.httpListener.id); self.output.nameValue($("Name"), item.name, indent); self.output.nameValue($("Rule Type"), item.ruleType, indent); self.output.nameValue($("Listener"), listener.resourceName, indent); self.output.data($(""), ""); }); }); }, _listAppGatewaySslCerificates: function(appGateway, indent) { var self = this; if (!indent) { indent = 0; }; self.interaction.formatOutput(appGateway.sslCertificates, function(sslCerts) { sslCerts.forEach(function(item) { self.output.nameValue($("Name"), item.name, indent); self.output.nameValue($("Provisioning State"), item.provisioningState, indent); self.output.data($(""), ""); }); }); }, _listAppGatewayUrlPathMaps: function(appGateway, indent) { var self = this; if (!indent) { indent = 0; }; self.interaction.formatOutput(appGateway.urlPathMaps, function(urlPathMaps) { urlPathMaps.forEach(function(urlPathMap) { self._showAppGatewayUrlPathMap(urlPathMap, in