UNPKG

azure-cli

Version:

Microsoft Azure Cross Platform Command Line tool

469 lines (258 loc) 25.6 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; var constants = require("./constants"); var tagUtils = require("../tag/tagUtils"); var resourceUtils = require("../resource/resourceUtils"); function Nsg(cli, networkManagementClient) { this.networkManagementClient = networkManagementClient; this.output = cli.output; this.interaction = cli.interaction;}; __.extend(Nsg.prototype, { create: function create__1(resourceGroupName, nsgName, location, options, _) { var self, nsg, progress, __this = this; var __frame = { name: "create__1", line: 35 }; return __func(_, this, arguments, create__1, 4, __frame, function __$create__1() { self = __this; return self.get(resourceGroupName, nsgName, __cb(_, __frame, 2, 19, function ___(__0, __1) { nsg = __1; if (nsg) { return _(new Error(util.format($("A network security group with name \"%s\" already exists in the resource group \"%s\""), nsgName, resourceGroupName))); } ; nsg = { name: nsgName, location: location }; nsg = self._parseSecurityGroup(nsg, options); progress = self.interaction.progress(util.format($("Creating a network security group \"%s\""), nsgName)); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$create__1() { return self.networkManagementClient.networkSecurityGroups.createOrUpdate(resourceGroupName, nsgName, nsg, __cb(_, __frame, 16, 63, function ___(__0, __2) { nsg = __2; _(null, null, true); }, true)); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$create__1() { progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$create__1() { self._showSecurityGroup(nsg, resourceGroupName, nsgName); _(); }); }); }, true)); }); }, set: function set__2(resourceGroupName, nsgName, options, _) { var self, nsg, progress, __this = this; var __frame = { name: "set__2", line: 58 }; return __func(_, this, arguments, set__2, 3, __frame, function __$set__2() { self = __this; return self.get(resourceGroupName, nsgName, __cb(_, __frame, 2, 19, function ___(__0, __1) { nsg = __1; if (!nsg) { return _(new Error(util.format($("A network security group with name \"%s\" not found in the resource group \"%s\""), nsgName, resourceGroupName))); } ; nsg = self._parseSecurityGroup(nsg, options); progress = self.interaction.progress(util.format($("Setting a network security group \"%s\""), nsgName)); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$set__2() { return self.networkManagementClient.networkSecurityGroups.createOrUpdate(resourceGroupName, nsgName, nsg, __cb(_, __frame, 12, 63, function ___(__0, __2) { nsg = __2; _(null, null, true); }, true)); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$set__2() { progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$set__2() { self._showSecurityGroup(nsg, resourceGroupName, nsgName); _(); }); }); }, true)); }); }, list: function list__3(options, _) { var self, groups, progress, __this = this; var __frame = { name: "list__3", line: 77 }; return __func(_, this, arguments, list__3, 1, __frame, function __$list__3() { self = __this; groups = null; progress = self.interaction.progress($("Getting the network security groups")); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$list__3() { return (function __$list__3(__then) { if (options.resourceGroup) { return self.networkManagementClient.networkSecurityGroups.list(options.resourceGroup, __cb(_, __frame, 8, 68, function ___(__0, __1) { groups = __1; __then(); }, true)); } else { return self.networkManagementClient.networkSecurityGroups.listAll(__cb(_, __frame, 10, 68, function ___(__0, __2) { groups = __2; __then(); }, true)); } ; })(function __$list__3() { _(null, null, true); }); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$list__3() { progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$list__3() { self.interaction.formatOutput(groups, function(groups) { if ((groups.length === 0)) { self.output.warn($("No network security groups found")); } else { self.output.table(groups, function(row, nsg) { row.cell($("Name"), nsg.name); row.cell($("Location"), nsg.location); var resInfo = resourceUtils.getResourceInformation(nsg.id); row.cell($("Resource group"), resInfo.resourceGroup); row.cell($("Provisioning state"), nsg.provisioningState); row.cell($("Rules number"), (nsg.defaultSecurityRules.length + nsg.securityRules.length)); }); } ; }); _(); }); }); }); }, show: function show__4(resourceGroupName, nsgName, options, _) { var self, nsg, __this = this; var __frame = { name: "show__4", line: 109 }; return __func(_, this, arguments, show__4, 3, __frame, function __$show__4() { self = __this; return self.get(resourceGroupName, nsgName, __cb(_, __frame, 2, 19, function ___(__0, __1) { nsg = __1; self._showSecurityGroup(nsg, resourceGroupName, nsgName); _(); }, true)); }); }, delete: function delete__5(resourceGroupName, nsgName, options, _) { var self, nsg, progress, __this = this; var __frame = { name: "delete__5", line: 116 }; return __func(_, this, arguments, delete__5, 3, __frame, function __$delete__5() { self = __this; return self.get(resourceGroupName, nsgName, __cb(_, __frame, 2, 19, function ___(__0, __2) { nsg = __2; if (!nsg) { return _(new Error(util.format($("A network security group with name \"%s\" not found in the resource group \"%s\""), nsgName, resourceGroupName))); } ; return (function __$delete__5(_) { var __1 = !options.quiet; if (!__1) { return _(null, __1); } ; return self.interaction.confirm(util.format($("Delete network security group \"%s\"? [y/n] "), nsgName), __cb(_, __frame, 7, 44, function ___(__0, __3) { var __2 = !__3; return _(null, __2); }, true)); })(__cb(_, __frame, -115, 17, function ___(__0, __3) { return (function __$delete__5(__then) { if (__3) { return _(null); } else { __then(); } ; })(function __$delete__5() { progress = self.interaction.progress(util.format($("Deleting network security group \"%s\""), nsgName)); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$delete__5() { return self.networkManagementClient.networkSecurityGroups.deleteMethod(resourceGroupName, nsgName, __cb(_, __frame, 13, 57, function __$delete__5() { _(null, null, true); }, true)); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$delete__5() { progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$delete__5() { _(); }); }); }); }, true)); }, true)); }); }, get: function get__6(resourceGroupName, nsgName, _) { var self, progress, nsg, __this = this; var __frame = { name: "get__6", line: 135 }; return __func(_, this, arguments, get__6, 2, __frame, function __$get__6() { self = __this; progress = self.interaction.progress(util.format($("Looking up the network security group \"%s\""), nsgName)); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$get__6() { return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$get__6() { return self.networkManagementClient.networkSecurityGroups.get(resourceGroupName, nsgName, null, __cb(_, __frame, 4, 67, function ___(__0, __1) { nsg = __1; return _(null, nsg); }, true)); }); })(function ___(e, __result) { __catch(function __$get__6() { if (e) { if ((e.statusCode === 404)) { return _(null, null); } ; return _(e); } else { _(null, __result); } ; }, _); }); })(function ___() { __tryCatch(_, function __$get__6() { _(null, null, true); }); }); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$get__6() { progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$get__6() { _(); }); }); }); }, createRule: function createRule__7(resourceGroupName, nsgName, ruleName, options, _) { var self, parameters, nsg, rule, progress, __this = this; var __frame = { name: "createRule__7", line: 154 }; return __func(_, this, arguments, createRule__7, 4, __frame, function __$createRule__7() { self = __this; parameters = { }; parameters = self._parseSecurityRule(parameters, options, true); return self.get(resourceGroupName, nsgName, __cb(_, __frame, 6, 19, function ___(__0, __1) { nsg = __1; if (!nsg) { return _(new Error(util.format($("A network security group with name \"%s\" not found in the resource group \"%s\""), ruleName, resourceGroupName))); } ; return self.getRule(resourceGroupName, nsgName, ruleName, __cb(_, __frame, 11, 20, function ___(__0, __2) { rule = __2; if (rule) { return _(new Error(util.format($("A network security rule with name \"%s\" already exists in the network security group \"%s\""), ruleName, nsgName))); } ; progress = self.interaction.progress(util.format($("Creating a network security rule \"%s\""), ruleName)); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$createRule__7() { return self.networkManagementClient.securityRules.createOrUpdate(resourceGroupName, nsgName, ruleName, parameters, __cb(_, __frame, 18, 56, function ___(__0, __3) { rule = __3; _(null, null, true); }, true)); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$createRule__7() { progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$createRule__7() { self._showSecurityRule(rule); _(); }); }); }, true)); }, true)); }); }, setRule: function setRule__8(resourceGroupName, nsgName, ruleName, options, _) { var self, nsg, rule, progress, __this = this; var __frame = { name: "setRule__8", line: 179 }; return __func(_, this, arguments, setRule__8, 4, __frame, function __$setRule__8() { self = __this; return self.get(resourceGroupName, nsgName, __cb(_, __frame, 3, 19, function ___(__0, __1) { nsg = __1; if (!nsg) { return _(new Error(util.format($("A network security group with name \"%s\" not found in the resource group \"%s\""), ruleName, resourceGroupName))); } ; return self.getRule(resourceGroupName, nsgName, ruleName, __cb(_, __frame, 8, 20, function ___(__0, __2) { rule = __2; if (!rule) { return _(new Error(util.format($("A network security rule with name \"%s\" not found in the network security group \"%s\""), ruleName, nsgName))); } ; rule = self._parseSecurityRule(rule, options, false); progress = self.interaction.progress(util.format($("Updating network security rule \"%s\""), ruleName)); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$setRule__8() { return self.networkManagementClient.securityRules.createOrUpdate(resourceGroupName, nsgName, ruleName, rule, __cb(_, __frame, 17, 56, function ___(__0, __3) { rule = __3; _(null, null, true); }, true)); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$setRule__8() { progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$setRule__8() { self._showSecurityRule(rule); _(); }); }); }, true)); }, true)); }); }, listRules: function listRules__9(resourceGroupName, nsgName, options, _) { var self, nsg, rules, __this = this; var __frame = { name: "listRules__9", line: 203 }; return __func(_, this, arguments, listRules__9, 3, __frame, function __$listRules__9() { self = __this; return self.get(resourceGroupName, nsgName, __cb(_, __frame, 3, 19, function ___(__0, __1) { nsg = __1; if (!nsg) { return _(new Error(util.format($("A network security group with name \"%s\" not found in the resource group \"%s\""), nsgName, resourceGroupName))); } ; rules = self._getAllRules(nsg); self.interaction.formatOutput(rules, function(rules) { if ((rules.length === 0)) { self.output.warn($("No rules found")); } else { self._listRules(rules); } ; }); _(); }, true)); }); }, showRule: function showRule__10(resourceGroupName, nsgName, ruleName, options, _) { var self, nsg, rule, __this = this; var __frame = { name: "showRule__10", line: 221 }; return __func(_, this, arguments, showRule__10, 4, __frame, function __$showRule__10() { self = __this; return self.get(resourceGroupName, nsgName, __cb(_, __frame, 2, 19, function ___(__0, __1) { nsg = __1; if (!nsg) { return _(new Error(util.format($("A network security group with name \"%s\" not found in the resource group \"%s\""), nsgName, resourceGroupName))); } ; rule = self._findSecurityRule(nsg, ruleName); if (!rule) { rule = self._findDefaultRule(nsg, ruleName); } ; self.interaction.formatOutput(rule, function(rule) { if ((rule === null)) { self.output.warn(util.format($("A network security rule with name \"%s\" not found in the security group \"%s\""), ruleName, nsgName)); } else { self._showSecurityRule(rule); } ; }); _(); }, true)); }); }, deleteRule: function deleteRule__11(resourceGroupName, nsgName, ruleName, options, _) { var self, nsg, rule, progress, __this = this; var __frame = { name: "deleteRule__11", line: 243 }; return __func(_, this, arguments, deleteRule__11, 4, __frame, function __$deleteRule__11() { self = __this; return self.get(resourceGroupName, nsgName, __cb(_, __frame, 3, 19, function ___(__0, __2) { nsg = __2; if (!nsg) { return _(new Error(util.format($("A network security group with name \"%s\" not found in the resource group \"%s\""), ruleName, resourceGroupName))); } ; return self.getRule(resourceGroupName, nsgName, ruleName, __cb(_, __frame, 8, 20, function ___(__0, __3) { rule = __3; if (!rule) { return _(new Error(util.format($("A network security rule with name \"%s\" not found in the network security group \"%s\""), ruleName, nsgName))); } ; return (function __$deleteRule__11(_) { var __1 = !options.quiet; if (!__1) { return _(null, __1); } ; return self.interaction.confirm(util.format($("Delete network security rule \"%s\"? [y/n] "), ruleName), __cb(_, __frame, 13, 44, function ___(__0, __3) { var __2 = !__3; return _(null, __2); }, true)); })(__cb(_, __frame, -242, 17, function ___(__0, __4) { return (function __$deleteRule__11(__then) { if (__4) { return _(null); } else { __then(); } ; })(function __$deleteRule__11() { progress = self.interaction.progress(util.format($("Deleting network security rule \"%s\""), ruleName)); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$deleteRule__11() { return self.networkManagementClient.securityRules.deleteMethod(resourceGroupName, nsgName, ruleName, __cb(_, __frame, 19, 49, function __$deleteRule__11() { _(null, null, true); }, true)); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$deleteRule__11() { progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$deleteRule__11() { _(); }); }); }); }, true)); }, true)); }, true)); }); }, getRule: function getRule__12(resourceGroupName, nsgName, ruleName, _) { var self, progress, rule, __this = this; var __frame = { name: "getRule__12", line: 268 }; return __func(_, this, arguments, getRule__12, 3, __frame, function __$getRule__12() { self = __this; progress = self.interaction.progress(util.format($("Looking up the network security rule \"%s\""), ruleName)); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$getRule__12() { return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$getRule__12() { return self.networkManagementClient.securityRules.get(resourceGroupName, nsgName, ruleName, __cb(_, __frame, 4, 60, function ___(__0, __1) { rule = __1; return _(null, rule); }, true)); }); })(function ___(e, __result) { __catch(function __$getRule__12() { if (e) { if ((e.statusCode === 404)) { return _(null, null); } ; return _(e); } else { _(null, __result); } ; }, _); }); })(function ___() { __tryCatch(_, function __$getRule__12() { _(null, null, true); }); }); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$getRule__12() { progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$getRule__12() { _(); }); }); }); }, _parseSecurityGroup: function(nsg, options) { if (options.tags) { if (utils.argHasValue(options.tags)) { tagUtils.appendTags(nsg, options); } else { nsg.tags = { }; } ; } ; return nsg; }, _parseSecurityRule: function(rule, options, useDefaults) { var self = this; if (options.description) { rule.description = validation.isLength(options.description, constants.nsg.description, "--description"); } ; if (options.protocol) { rule.protocol = validation.isIn(options.protocol, constants.nsg.protocols, "--protocol"); } else if (useDefaults) { rule.protocol = utils.takeDefault(self.output, constants.nsg.protocols[2], "--protocol"); } ; if (options.sourcePortRange) { rule.sourcePortRange = self._isPortRange(options.sourcePortRange, "--source-port-range"); } else if (useDefaults) { rule.sourcePortRange = utils.takeDefault(self.output, constants.nsg.prefixDef, "--source-port-range"); } ; if (options.destinationPortRange) { rule.destinationPortRange = self._isPortRange(options.destinationPortRange, "--destination-port-range"); } else if (useDefaults) { rule.destinationPortRange = utils.takeDefault(self.output, constants.nsg.portDef.toString(), "--destination-port-range"); } ; if (options.sourceAddressPrefix) { rule.sourceAddressPrefix = self._isAddressPrefix(options.sourceAddressPrefix, "--source-address-prefix"); } else if (useDefaults) { rule.sourceAddressPrefix = utils.takeDefault(self.output, constants.nsg.prefixDef, "--source-address-prefix"); } ; if (options.destinationAddressPrefix) { rule.destinationAddressPrefix = self._isAddressPrefix(options.destinationAddressPrefix, "--destination-address-prefix"); } else if (useDefaults) { rule.destinationAddressPrefix = utils.takeDefault(self.output, constants.nsg.prefixDef, "--destination-address-prefix"); } ; if (options.access) { rule.access = validation.isIn(options.access, constants.nsg.access, "--access"); } else if (useDefaults) { rule.access = utils.takeDefault(self.output, constants.nsg.access[0], "--access"); } ; if (options.priority) { rule.priority = validation.isInt(options.priority, constants.nsg.priority, "--priority"); } else if (useDefaults) { rule.priority = utils.takeDefault(self.output, constants.nsg.priority.min, "--priority"); } ; if (options.direction) { rule.direction = validation.isIn(options.direction, constants.nsg.direction, "--direction"); } else if (useDefaults) { rule.direction = utils.takeDefault(self.output, constants.nsg.direction[0], "--direction"); } ; return rule; }, _showSecurityGroup: function(nsg, resourceGroupName, nsgName) { var self = this; self.interaction.formatOutput(nsg, function(nsg) { if ((nsg === null)) { self.output.warn(util.format($("A network security group with name \"%s\" not found in the resource group \"%s\""), nsgName, resourceGroupName)); return; } ; self.output.nameValue($("Id"), nsg.id); self.output.nameValue($("Name"), nsg.name); self.output.nameValue($("Type"), nsg.type); self.output.nameValue($("Location"), nsg.location); self.output.nameValue($("Provisioning state"), nsg.provisioningState); self.output.nameValue($("Tags"), tagUtils.getTagsInfo(nsg.tags)); var rules = self._getAllRules(nsg); self._listRules(rules); }); }, _showSecurityRule: function(rule) { var self = this; self.interaction.formatOutput(rule, function(rule) { self.output.nameValue($("Id"), rule.id); self.output.nameValue($("Name"), rule.name); var resInfo = resourceUtils.getResourceInformation(rule.id); self.output.nameValue($("Type"), resInfo.resourceType); self.output.nameValue($("Provisioning state"), rule.provisioningState); self.output.nameValue($("Description"), rule.description); self.output.nameValue($("Source IP"), rule.sourceAddressPrefix); self.output.nameValue($("Source Port"), rule.sourcePortRange); self.output.nameValue($("Destination IP"), rule.destinationAddressPrefix); self.output.nameValue($("Destination Port"), rule.destinationPortRange); self.output.nameValue($("Protocol"), rule.protocol); self.output.nameValue($("Direction"), rule.direction); self.output.nameValue($("Access"), rule.access); self.output.nameValue($("Priority"), rule.priority); }); }, _isPortRange: function(port, paramName) { if ((((port === "*") || (port === "\"*\"")) || !isNaN(port))) { return port; } ; try { return validation.isRange(port, paramName); } catch (e) { throw new Error(util.format($("%s parameter must be a valid port or port range between %s and %s. Asterisk can be used also. Example: 80, 80-81, *"), paramName, constants.nsg.portMin, constants.nsg.portMax)); }; }, _isAddressPrefix: function(prefix, paramName) { if (((prefix === "*") || (prefix === "\"*\""))) { return prefix; } ; try { return validation.isIn(prefix, constants.nsg.prefix, paramName); } catch (e) { try { return validation.isCIDR(prefix, paramName); } catch (e) { throw new Error(util.format($("%s must be in CIDR format. Asterisk, Internet, VirtualNetwork, AzureLoadBalancer can be used also."), paramName)); }; }; }, _getAllRules: function(nsg) { var rules = nsg.defaultSecurityRules.concat(nsg.securityRules); var groups = __.groupBy(rules, function(o) { return o.direction; }); groups.Inbound = __.sortBy(groups.Inbound, function(o) { return o.priority; }); groups.Outbound = __.sortBy(groups.Outbound, function(o) { return o.priority; }); rules = groups.Inbound.concat(groups.Outbound); return rules; }, _listRules: function(rules) { var self = this; if ((rules.length > 0)) { self.output.header($("Security rules")); self.output.table(rules, function(row, rule) { row.cell($("Name"), rule.name); row.cell($("Source IP"), rule.sourceAddressPrefix); row.cell($("Source Port"), rule.sourcePortRange); row.cell($("Destination IP"), rule.destinationAddressPrefix); row.cell($("Destination Port"), rule.destinationPortRange); row.cell($("Protocol"), rule.protocol); row.cell($("Direction"), rule.direction); row.cell($("Access"), rule.access); row.cell($("Priority"), rule.priority); }); } ; }, _findDefaultRule: function(nsg, ruleName) { return utils.findFirstCaseIgnore(nsg.defaultSecurityRules, { name: ruleName }); }, _findSecurityRule: function(nsg, ruleName) { return utils.findFirstCaseIgnore(nsg.securityRules, { name: ruleName }); }}); module.exports = Nsg;