azure-cli
Version:
Microsoft Azure Cross Platform Command Line tool
383 lines (229 loc) • 21.6 kB
JavaScript
/*** 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 $ = utils.getLocaleString;
var constants = require("./constants");
var VNetUtil = require("../../../util/vnet.util");
function Nsg(cli, networkManagementClient) {
this.networkManagementClient = networkManagementClient;
this.vnetUtil = new VNetUtil();
this.output = cli.output;
this.interaction = cli.interaction;};
__.extend(Nsg.prototype, {
create: function create__1(nsgName, location, options, _) { var self, nsgProfile, progress, __this = this; var __frame = { name: "create__1", line: 31 }; return __func(_, this, arguments, create__1, 3, __frame, function __$create__1() { self = __this;
nsgProfile = {
name: nsgName,
location: location };
if (options.label) { nsgProfile.label = options.label; } ;
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.create(nsgProfile, __cb(_, __frame, 11, 57, function __$create__1() { _(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() {
return self.show(nsgName, options, __cb(_, __frame, 15, 9, function __$create__1() { _(); }, true)); }); }); }); },
list: function list__2(options, _) { var self, progress, groups, __this = this; var __frame = { name: "list__2", line: 49 }; return __func(_, this, arguments, list__2, 1, __frame, function __$list__2() { self = __this;
progress = self.interaction.progress($("Getting the network security groups"));
groups = null; return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$list__2() {
return self.networkManagementClient.networkSecurityGroups.list(__cb(_, __frame, 6, 66, function ___(__0, __1) { groups = __1; _(null, null, true); }, true)); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$list__2() {
progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$list__2() {
self.interaction.formatOutput(groups.networkSecurityGroups, function(data) {
if ((data.length === 0)) {
self.output.warn($("No network security groups found")); }
else {
self.output.table(data, function(row, nsg) {
row.cell($("Name"), nsg.name);
row.cell($("Location"), nsg.location);
row.cell($("Label"), (nsg.label || "")); }); } ; }); _(); }); }); }); },
show: function show__3(nsgName, options, _) { var self, nsg, __this = this; var __frame = { name: "show__3", line: 73 }; return __func(_, this, arguments, show__3, 2, __frame, function __$show__3() { self = __this;
return self.get(nsgName, true, __cb(_, __frame, 2, 19, function ___(__0, __1) { nsg = __1;
if (nsg) {
self.interaction.formatOutput(nsg, function(nsg) {
self.output.nameValue($("Name"), nsg.name);
self.output.nameValue($("Location"), nsg.location);
self.output.nameValue($("Label"), nsg.label);
if ((nsg.rules.length > 0)) {
self.output.header($("Security group rules"));
self.output.table(nsg.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($("Type"), rule.type);
row.cell($("Action"), rule.action);
row.cell($("Priority"), rule.priority);
row.cell($("Default"), (rule.isDefault || "false")); }); } ; }); }
else {
if (self.output.format().json) {
self.output.json({ }); }
else {
self.output.warn(util.format($("A network security group with name \"%s\" not found"), nsgName)); } ; } ; _(); }, true)); }); },
delete: function delete__4(nsgName, options, _) { var self, progress, __this = this; var __frame = { name: "delete__4", line: 108 }; return __func(_, this, arguments, delete__4, 2, __frame, function __$delete__4() { self = __this; return (function __$delete__4(_) {
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, 2, 44, function ___(__0, __3) { var __2 = !__3; return _(null, __2); }, true)); })(__cb(_, __frame, -107, 17, function ___(__0, __2) { return (function __$delete__4(__then) { if (__2) { return _(null); } else { __then(); } ; })(function __$delete__4() {
progress = self.interaction.progress(util.format($("Deleting network security group \"%s\""), nsgName)); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$delete__4() {
return self.networkManagementClient.networkSecurityGroups.deleteMethod(nsgName, __cb(_, __frame, 8, 57, function __$delete__4() { _(null, null, true); }, true)); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$delete__4() {
progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$delete__4() { _(); }); }); }); }, true)); }); },
get: function get__5(nsgName, withRules, _) { var self, detailLevel, progress, nsg, __this = this; var __frame = { name: "get__5", line: 122 }; return __func(_, this, arguments, get__5, 2, __frame, function __$get__5() { self = __this;
detailLevel = null;
if (withRules) { detailLevel = "Full"; } ;
progress = self.interaction.progress(util.format($("Looking up the network security group \"%s\""), nsgName)); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$get__5() { return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$get__5() {
return self.networkManagementClient.networkSecurityGroups.get(nsgName, detailLevel, __cb(_, __frame, 6, 67, function ___(__0, __1) { nsg = __1;
return _(null, nsg); }, true)); }); })(function ___(e, __result) { __catch(function __$get__5() { if (e) {
if ((e.statusCode === 404)) {
return _(null, null); } ;
return _(e); } else { _(null, __result); } ; }, _); }); })(function ___() { __tryCatch(_, function __$get__5() { _(null, null, true); }); }); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$get__5() {
progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$get__5() { _(); }); }); }); },
createRule: function createRule__6(nsgName, ruleName, options, _) { var self, ruleProfile, nsg, rule, progress, __this = this; var __frame = { name: "createRule__6", line: 140 }; return __func(_, this, arguments, createRule__6, 3, __frame, function __$createRule__6() { self = __this;
ruleProfile = self._parseSecurityRule(options, true);
return self.get(nsgName, false, __cb(_, __frame, 4, 19, function ___(__0, __1) { nsg = __1;
if (!nsg) {
return _(new Error(util.format($("A network security group with name \"%s\" not found"), nsgName))); } ;
rule = self._findSecurityRule(nsg, ruleName);
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__6() {
return self.networkManagementClient.networkSecurityGroups.setRule(nsgName, ruleName, ruleProfile, __cb(_, __frame, 16, 57, function __$createRule__6() { _(null, null, true); }, true)); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$createRule__6() {
progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$createRule__6() {
return self.showRule(nsgName, ruleName, options, __cb(_, __frame, 20, 9, function __$createRule__6() { _(); }, true)); }); }); }, true)); }); },
setRule: function setRule__7(nsgName, ruleName, options, _) { var self, ruleProfile, nsg, rule, progress, __this = this; var __frame = { name: "setRule__7", line: 163 }; return __func(_, this, arguments, setRule__7, 3, __frame, function __$setRule__7() { self = __this;
ruleProfile = self._parseSecurityRule(options, false);
return self.get(nsgName, true, __cb(_, __frame, 4, 19, function ___(__0, __1) { nsg = __1;
if (!nsg) {
return _(new Error(util.format($("A network security group with name \"%s\" not found"), nsgName))); } ;
rule = self._findSecurityRule(nsg, ruleName);
if (!rule) {
return _(new Error(util.format($("A network security rule with name \"%s\" not found in the security group \"%s\""), ruleName, nsgName))); } ;
if (options.protocol) { rule.protocol = ruleProfile.protocol; } ;
if (options.sourceAddressPrefix) { rule.sourceAddressPrefix = ruleProfile.sourceAddressPrefix; } ;
if (options.sourcePortRange) { rule.sourcePortRange = ruleProfile.sourcePortRange; } ;
if (options.destinationAddressPrefix) { rule.destinationAddressPrefix = ruleProfile.destinationAddressPrefix; } ;
if (options.destinationPortRange) { rule.destinationPortRange = ruleProfile.destinationPortRange; } ;
if (options.action) { rule.action = ruleProfile.action; } ;
if (options.priority) { rule.priority = ruleProfile.priority; } ;
if (options.type) { rule.type = ruleProfile.type; } ;
progress = self.interaction.progress(util.format($("Setting a network security rule \"%s\""), ruleName)); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$setRule__7() {
return self.networkManagementClient.networkSecurityGroups.setRule(nsgName, ruleName, rule, __cb(_, __frame, 25, 57, function __$setRule__7() { _(null, null, true); }, true)); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$setRule__7() {
progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$setRule__7() {
return self.showRule(nsgName, ruleName, options, __cb(_, __frame, 29, 9, function __$setRule__7() { _(); }, true)); }); }); }, true)); }); },
listRules: function listRules__8(nsgName, options, _) { var self, nsg, __this = this; var __frame = { name: "listRules__8", line: 195 }; return __func(_, this, arguments, listRules__8, 2, __frame, function __$listRules__8() { self = __this;
return self.get(nsgName, true, __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"), nsgName))); } ;
self.interaction.formatOutput(nsg.rules, function(data) {
if ((data.length === 0)) {
self.output.warn($("No rules found")); }
else {
self.output.table(data, function(row, rule) {
row.cell($("Name"), rule.name);
row.cell($("Source address prefix"), rule.sourceAddressPrefix);
row.cell($("Source port range"), rule.sourcePortRange);
row.cell($("Destination address prefix"), rule.destinationAddressPrefix);
row.cell($("Destination port range"), rule.destinationPortRange);
row.cell($("Protocol"), rule.protocol);
row.cell($("Type"), rule.type);
row.cell($("Action"), rule.action);
row.cell($("Priority"), rule.priority); }); } ; }); _(); }, true)); }); },
showRule: function showRule__9(nsgName, ruleName, options, _) { var self, nsg, rule, __this = this; var __frame = { name: "showRule__9", line: 221 }; return __func(_, this, arguments, showRule__9, 3, __frame, function __$showRule__9() { self = __this;
return self.get(nsgName, constants.nsg.levelDef, __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"), nsgName))); } ;
rule = self._findSecurityRule(nsg, ruleName);
if (!rule) {
return _(new Error(util.format($("A network security rule with name \"%s\" not found in the security group \"%s\""), ruleName, nsgName))); } ;
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.output.nameValue($("Name"), rule.name);
self.output.nameValue($("State"), rule.state);
self.output.nameValue($("Source address prefix"), rule.sourceAddressPrefix);
self.output.nameValue($("Source port range"), rule.sourcePortRange);
self.output.nameValue($("Destination address prefix"), rule.destinationAddressPrefix);
self.output.nameValue($("Destination port range"), rule.destinationPortRange);
self.output.nameValue($("Protocol"), rule.protocol);
self.output.nameValue($("Type"), rule.type);
self.output.nameValue($("Action"), rule.action);
self.output.nameValue($("Priority"), rule.priority); } ; }); _(); }, true)); }); },
deleteRule: function deleteRule__10(nsgName, ruleName, options, _) { var self, nsg, rule, progress, __this = this; var __frame = { name: "deleteRule__10", line: 252 }; return __func(_, this, arguments, deleteRule__10, 3, __frame, function __$deleteRule__10() { self = __this;
return self.get(nsgName, constants.nsg.levelDef, __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"), nsgName))); } ;
rule = self._findSecurityRule(nsg, ruleName);
if (!rule) {
return _(new Error(util.format($("A network security group rule with name \"%s\" not found in the security group \"%s\""), ruleName, nsgName))); } ; return (function __$deleteRule__10(_) {
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, 12, 44, function ___(__0, __3) { var __2 = !__3; return _(null, __2); }, true)); })(__cb(_, __frame, -251, 17, function ___(__0, __3) { return (function __$deleteRule__10(__then) { if (__3) { return _(null); } else { __then(); } ; })(function __$deleteRule__10() {
progress = self.interaction.progress(util.format($("Deleting network security rule \"%s\""), ruleName)); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$deleteRule__10() {
return self.networkManagementClient.networkSecurityGroups.deleteRule(nsgName, ruleName, __cb(_, __frame, 18, 57, function __$deleteRule__10() { _(null, null, true); }, true)); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$deleteRule__10() {
progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$deleteRule__10() { _(); }); }); }); }, true)); }, true)); }); },
_validateAddressPrefix: function(prefix, paramName) {
var self = this;
if (((prefix === "*") || (prefix === "\"*\""))) {
return prefix; } ;
try {
var res = utils.verifyParamExistsInCollection(constants.nsg.prefix, prefix, paramName);
return res;
} catch (e) {
var ipValidationResult = self.vnetUtil.parseIPv4Cidr(prefix);
if (ipValidationResult.error) {
throw new Error(util.format($("%s parameter must be in CIDR format. Asterisk, INTERNET, VIRTUAL_NETWORK, AZURE_LOADBALANCER can be used also."), paramName)); } ;
return ipValidationResult.ipv4Cidr; }; },
_validatePortRange: function(port, paramName) {
if ((((port === "*") || (port === "\"*\"")) || !isNaN(port))) {
return port; } ;
var rangePattern = /^[\d]+\s*-\s*[\d]+$/;
var match = rangePattern.test(port);
if (!match) {
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)); } ;
return port; },
_parseSecurityRule: function(options, useDefaults) {
var self = this;
var rule = { };
if (options.protocol) {
if (((options.protocol === "*") || (options.protocol === "\"*\""))) {
rule.protocol = options.protocol; }
else {
rule.protocol = utils.verifyParamExistsInCollection(constants.nsg.protocols, options.protocol, "--protocol"); } ; }
else if (useDefaults) {
self.output.warn(util.format($("Using default protocol: %s"), constants.nsg.protocols[0]));
rule.protocol = constants.nsg.protocols[0]; } ;
if (options.sourcePortRange) {
rule.sourcePortRange = self._validatePortRange(options.sourcePortRange, "--source-port-range"); }
else if (useDefaults) {
self.output.warn(util.format($("Using default source port range: %s"), constants.nsg.portDef));
rule.sourcePortRange = constants.nsg.portDef; } ;
if (options.destinationPortRange) {
rule.destinationPortRange = self._validatePortRange(options.destinationPortRange, "--destination-port-range"); }
else if (useDefaults) {
self.output.warn(util.format($("Using default destination port range: %s"), constants.nsg.portDef));
rule.destinationPortRange = constants.nsg.portDef; } ;
if (options.sourceAddressPrefix) {
rule.sourceAddressPrefix = self._validateAddressPrefix(options.sourceAddressPrefix, "--source-address-prefix"); }
else if (useDefaults) {
self.output.warn(util.format($("Using default source address prefix: %s"), constants.nsg.prefixDef));
rule.sourceAddressPrefix = constants.nsg.prefixDef; } ;
if (options.destinationAddressPrefix) {
rule.destinationAddressPrefix = self._validateAddressPrefix(options.destinationAddressPrefix, "--destination-address-prefix"); }
else if (useDefaults) {
self.output.warn(util.format($("Using default destination address prefix: %s"), constants.nsg.prefixDef));
rule.destinationAddressPrefix = constants.nsg.prefixDef; } ;
if (options.action) {
rule.action = utils.verifyParamExistsInCollection(constants.nsg.action, options.action, "--action"); }
else if (useDefaults) {
self.output.warn(util.format($("Using default action: %s"), constants.nsg.action[0]));
rule.action = constants.nsg.action[0]; } ;
if (options.priority) {
var priority = utils.parseInt(options.priority);
if (((isNaN(priority) || (priority < constants.nsg.priorityMin)) || (priority > constants.nsg.priorityMax))) {
throw new Error(util.format($("--priority must be an integer between %s and %s"), constants.nsg.priorityMin, constants.nsg.priorityMax)); } ;
rule.priority = priority; }
else if (useDefaults) {
self.output.warn(util.format($("Using default priority: %s"), constants.nsg.priorityMin));
rule.priority = constants.nsg.priorityMin; } ;
if (options.type) {
rule.type = utils.verifyParamExistsInCollection(constants.nsg.type, options.type, "--type"); }
else if (useDefaults) {
self.output.warn(util.format($("Using default type: %s"), constants.nsg.type[0]));
rule.type = constants.nsg.type[0]; } ;
return rule; },
_findSecurityRule: function(nsg, ruleName) {
return utils.findFirstCaseIgnore(nsg.rules, { name: ruleName }); }});
module.exports = Nsg;