UNPKG

azure-cli

Version:

Microsoft Azure Cross Platform Command Line tool

316 lines (174 loc) 18.3 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,__tryCatch=__rt.__tryCatch; var __ = require("underscore"); var util = require("util"); var utils = require("../../../util/utils"); var $ = utils.getLocaleString; var VNetUtil = require("./../../../util/vnet.util"); var NetworkConfig = require("./networkConfig"); function LocalNetwork(cli, networkManagementClient) { this.networkManagementClient = networkManagementClient; this.networkConfig = new NetworkConfig(cli, networkManagementClient); this.vnetUtil = new VNetUtil(); this.output = cli.output; this.interaction = cli.interaction;}; __.extend(LocalNetwork.prototype, { create: function create__1(localNetworkName, addressPrefixes, options, _) { var self, networkConfig, lNetList, lNet, localNetwork, ipValidated, progress, __this = this; var __frame = { name: "create__1", line: 32 }; return __func(_, this, arguments, create__1, 3, __frame, function __$create__1() { self = __this; return self.networkConfig.get(__cb(_, __frame, 2, 43, function ___(__0, __1) { networkConfig = __1; lNetList = networkConfig.VirtualNetworkConfiguration.LocalNetworkSites; if (!lNetList) { networkConfig.VirtualNetworkConfiguration.LocalNetworkSites = []; } ; lNet = utils.findFirstCaseIgnore(lNetList, { Name: localNetworkName }); if (lNet) { return _(new Error(util.format($("A local network with name \"%s\" already exists"), localNetworkName))); } ; localNetwork = { Name: localNetworkName, AddressSpace: [] }; addressPrefixes.split(",").forEach(function(addressPrefix) { try { self._validateAddressPrefix(addressPrefix); localNetwork.AddressSpace.push(addressPrefix); } catch (ex) { self.output.warn(util.format($("Address prefix \"%s\" would not be added: %s"), addressPrefix, ex)); }; }); if ((localNetwork.AddressSpace.length === 0)) { return _(new Error("All provided address prefixes are invalid.")); } ; if (options.vpnGatewayAddress) { ipValidated = self.vnetUtil.parseIPv4(options.vpnGatewayAddress, "--vpn-gateway-address"); if (ipValidated.error) { return _(new Error(ipValidated.error)); } ; localNetwork.VPNGatewayAddress = options.vpnGatewayAddress; } ; networkConfig.VirtualNetworkConfiguration.LocalNetworkSites.push(localNetwork); progress = self.interaction.progress(util.format($("Creating local network \"%s\""), localNetworkName)); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$create__1() { return self.networkConfig.set(networkConfig, __cb(_, __frame, 38, 25, 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(localNetworkName, options, __cb(_, __frame, 42, 9, function __$create__1() { _(); }, true)); }); }); }, true)); }); }, set: function set__2(localNetworkName, options, _) { var self, networkConfig, lNetList, lNet, ipValidated, progress, __this = this; var __frame = { name: "set__2", line: 77 }; return __func(_, this, arguments, set__2, 2, __frame, function __$set__2() { self = __this; return self.networkConfig.get(__cb(_, __frame, 2, 43, function ___(__0, __1) { networkConfig = __1; lNetList = networkConfig.VirtualNetworkConfiguration.LocalNetworkSites; if (!lNetList) { return _(new Error($("No local network found"), localNetworkName)); } ; lNet = utils.findFirstCaseIgnore(lNetList, { Name: localNetworkName }); if (!lNet) { return _(new Error(util.format($("A local network with name \"%s\" not found"), localNetworkName))); } ; if (options.addressPrefixes) { lNet.AddressSpace = []; options.addressPrefixes.split(",").forEach(function(addressPrefix) { try { self._validateAddressPrefix(addressPrefix); lNet.AddressSpace.push(addressPrefix); } catch (ex) { self.output.warn(util.format($("Address prefix \"%s\" would not be added: %s"), addressPrefix, ex)); }; }); if ((lNet.AddressSpace.length === 0)) { return _(new Error("All provided address prefixes are invalid.")); } ; } ; if (options.vpnGatewayAddress) { ipValidated = self.vnetUtil.parseIPv4(options.vpnGatewayAddress, "--vpn-gateway-address"); if (ipValidated.error) { return _(new Error(ipValidated.error)); } ; lNet.VPNGatewayAddress = options.vpnGatewayAddress; } ; progress = self.interaction.progress(util.format($("Updating local network \"%s\""), localNetworkName)); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$set__2() { return self.networkConfig.set(networkConfig, __cb(_, __frame, 38, 25, function __$set__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() { return self.show(localNetworkName, options, __cb(_, __frame, 42, 9, function __$set__2() { _(); }, true)); }); }); }, true)); }); }, list: function list__3(options, _) { var self, networkConfig, __this = this; var __frame = { name: "list__3", line: 122 }; return __func(_, this, arguments, list__3, 1, __frame, function __$list__3() { self = __this; return self.networkConfig.get(__cb(_, __frame, 2, 43, function ___(__0, __1) { networkConfig = __1; networkConfig = networkConfig.VirtualNetworkConfiguration; if (!networkConfig.LocalNetworkSites) { networkConfig.LocalNetworkSites = []; } ; self.interaction.formatOutput(networkConfig.LocalNetworkSites, function(data) { if ((data.length === 0)) { self.output.warn($("No local network sites found")); } else { self.output.table(data, function(row, item) { row.cell($("Name"), item.Name); row.cell($("Gateway address"), item.VPNGatewayAddress); var address = item.AddressSpace[0]; if ((item.AddressSpace.length > 1)) { address += ", ..."; }; row.cell($("Address space"), address); }); } ; }); _(); }, true)); }); }, show: function show__4(localNetworkName, options, _) { var self, networkConfig, localNetwork, __this = this; var __frame = { name: "show__4", line: 143 }; return __func(_, this, arguments, show__4, 2, __frame, function __$show__4() { self = __this; return self.networkConfig.get(__cb(_, __frame, 2, 43, function ___(__0, __1) { networkConfig = __1; networkConfig = networkConfig.VirtualNetworkConfiguration; if (!networkConfig.LocalNetworkSites) { networkConfig.LocalNetworkSites = []; } ; localNetwork = utils.findFirstCaseIgnore(networkConfig.LocalNetworkSites, { Name: localNetworkName }); if (localNetwork) { self.interaction.formatOutput(localNetwork, function(network) { self.output.nameValue($("Name"), network.Name); self.output.nameValue($("Gateway address"), network.VPNGatewayAddress); self.output.header("Address space"); network.AddressSpace.forEach(function(address) { self.output.listItem(address, 2); }); }); } else { if (self.output.format().json) { self.output.json({ }); } else { self.output.warn(util.format($("A local network with name \"%s\" not found"), localNetworkName)); } ; } ; _(); }, true)); }); }, delete: function delete__5(localNetworkName, options, _) { var self, networkConfig, localNetworkIndex, progress, __this = this; var __frame = { name: "delete__5", line: 168 }; return __func(_, this, arguments, delete__5, 2, __frame, function __$delete__5() { self = __this; return self.networkConfig.get(__cb(_, __frame, 2, 43, function ___(__0, __2) { networkConfig = __2; if (!networkConfig.VirtualNetworkConfiguration.LocalNetworkSites) { return _(new Error($("Network configuration does not have any local network sites"))); } ; networkConfig.VirtualNetworkConfiguration.VirtualNetworkSites.forEach(function(net) { if (net.Gateway) { var associationFound = utils.findFirstCaseIgnore(net.Gateway.ConnectionsToLocalNetwork, { Name: localNetworkName }); if (associationFound) { throw new Error(util.format($("Cannot delete local network \"%s\" because it is associated with the virtual network \"%s\""), localNetworkName, net.Name)); } ; } ; }); localNetworkIndex = utils.indexOfCaseIgnore(networkConfig.VirtualNetworkConfiguration.LocalNetworkSites, { Name: localNetworkName }); if ((localNetworkIndex === -1)) { return _(new Error(util.format($("Local network \"%s\" does not exist"), localNetworkName))); } ; networkConfig.VirtualNetworkConfiguration.LocalNetworkSites.splice(localNetworkIndex, 1); return (function __$delete__5(_) { var __1 = !options.quiet; if (!__1) { return _(null, __1); } ; return self.interaction.confirm(util.format($("Delete local network site \"%s\"? [y/n] "), localNetworkName), __cb(_, __frame, 23, 44, function ___(__0, __3) { var __2 = !__3; return _(null, __2); }, true)); })(__cb(_, __frame, -167, 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 local network site \"%s\""), localNetworkName)); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$delete__5() { return self.networkConfig.set(networkConfig, __cb(_, __frame, 29, 25, 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)); }); }, addAssociation: function addAssociation__6(virtualNetworkName, localNetworkName, options, _) { var self, networkConfig, localNetworkIndex, virtualNetworkIndex, progress, __this = this; var __frame = { name: "addAssociation__6", line: 203 }; return __func(_, this, arguments, addAssociation__6, 3, __frame, function __$addAssociation__6() { self = __this; return self.networkConfig.get(__cb(_, __frame, 2, 43, function ___(__0, __1) { networkConfig = __1; if (!networkConfig.VirtualNetworkConfiguration.LocalNetworkSites) { return _(new Error($("Network configuration does not have any local network sites"))); } ; if (!networkConfig.VirtualNetworkConfiguration.VirtualNetworkSites) { return _(new Error($("Network configuration does not have any local network sites"))); } ; localNetworkIndex = utils.indexOfCaseIgnore(networkConfig.VirtualNetworkConfiguration.LocalNetworkSites, { Name: localNetworkName }); if ((localNetworkIndex === -1)) { return _(new Error(util.format($("Local network \"%s\" does not exist"), localNetworkName))); } ; virtualNetworkIndex = utils.indexOfCaseIgnore(networkConfig.VirtualNetworkConfiguration.VirtualNetworkSites, { Name: virtualNetworkName }); if ((virtualNetworkIndex === -1)) { return _(new Error(util.format($("Virtual network \"%s\" does not exist"), virtualNetworkName))); } ; if (!networkConfig.VirtualNetworkConfiguration.VirtualNetworkSites[virtualNetworkIndex].Gateway) { networkConfig.VirtualNetworkConfiguration.VirtualNetworkSites[virtualNetworkIndex].Gateway = { }; } ; if (!networkConfig.VirtualNetworkConfiguration.VirtualNetworkSites[virtualNetworkIndex].Gateway.ConnectionsToLocalNetwork) { networkConfig.VirtualNetworkConfiguration.VirtualNetworkSites[virtualNetworkIndex].Gateway.ConnectionsToLocalNetwork = []; } ; if (utils.findFirstCaseIgnore(networkConfig.VirtualNetworkConfiguration.VirtualNetworkSites[virtualNetworkIndex].Gateway.ConnectionsToLocalNetwork, { Name: localNetworkName })) { return _(new Error(util.format($("Local network \"%s\" already associated with virtual network \"%s\""), localNetworkName, virtualNetworkName))); } ; networkConfig.VirtualNetworkConfiguration.VirtualNetworkSites[virtualNetworkIndex].Gateway.ConnectionsToLocalNetwork.push({ Name: localNetworkName, Connection: { Type: "IPsec" } }); self.output.warn($("A subnet with name \"GatewaySubnet\" must exist in the virtual network in-order to associate a local network with the virtual network")); progress = self.interaction.progress(util.format($("Associating local network \"%s\" with a virtual network \"%s\""), localNetworkName, virtualNetworkName)); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$addAssociation__6() { return self.networkConfig.set(networkConfig, __cb(_, __frame, 43, 25, function __$addAssociation__6() { _(null, null, true); }, true)); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$addAssociation__6() { progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$addAssociation__6() { _(); }); }); }, true)); }); }, removeAssociation: function removeAssociation__7(virtualNetworkName, localNetworkName, options, _) { var self, networkConfig, localNetworkIndex, virtualNetworkIndex, connectionIndex, progress, __this = this; var __frame = { name: "removeAssociation__7", line: 252 }; return __func(_, this, arguments, removeAssociation__7, 3, __frame, function __$removeAssociation__7() { self = __this; return self.networkConfig.get(__cb(_, __frame, 2, 43, function ___(__0, __1) { networkConfig = __1; if (!networkConfig.VirtualNetworkConfiguration.LocalNetworkSites) { return _(new Error($("Network configuration does not have any local network sites"))); } ; if (!networkConfig.VirtualNetworkConfiguration.VirtualNetworkSites) { return _(new Error($("Network configuration does not have any virtual network sites"))); } ; localNetworkIndex = utils.indexOfCaseIgnore(networkConfig.VirtualNetworkConfiguration.LocalNetworkSites, { Name: localNetworkName }); if ((localNetworkIndex === -1)) { return _(new Error(util.format($("Local network \"%s\" does not exist"), localNetworkName))); } ; virtualNetworkIndex = utils.indexOfCaseIgnore(networkConfig.VirtualNetworkConfiguration.VirtualNetworkSites, { Name: virtualNetworkName }); if ((virtualNetworkIndex === -1)) { return _(new Error(util.format($("Virtual network \"%s\" does not exist"), virtualNetworkName))); } ; if (!networkConfig.VirtualNetworkConfiguration.VirtualNetworkSites[virtualNetworkIndex].Gateway) { return _(new Error(util.format($("Virtual network \"%s\" does not have any local network sites associated"), virtualNetworkName))); } ; if (!networkConfig.VirtualNetworkConfiguration.VirtualNetworkSites[virtualNetworkIndex].Gateway.ConnectionsToLocalNetwork) { return _(new Error(util.format($("Virtual network \"%s\" does not have any local network connections"), virtualNetworkName))); } ; connectionIndex = utils.indexOfCaseIgnore(networkConfig.VirtualNetworkConfiguration.VirtualNetworkSites[virtualNetworkIndex].Gateway.ConnectionsToLocalNetwork, { Name: localNetworkName }); if ((connectionIndex === -1)) { return _(new Error(util.format($("Virtual network \"%s\" does not have connection to local network"), virtualNetworkName))); } ; networkConfig.VirtualNetworkConfiguration.VirtualNetworkSites[virtualNetworkIndex].Gateway.ConnectionsToLocalNetwork.splice(connectionIndex, 1); progress = self.interaction.progress(util.format($("Removing association between a local network \"%s\" and a virtual network \"%s\""), localNetworkName, virtualNetworkName)); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$removeAssociation__7() { return self.networkConfig.set(networkConfig, __cb(_, __frame, 38, 25, function __$removeAssociation__7() { _(null, null, true); }, true)); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$removeAssociation__7() { progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$removeAssociation__7() { _(); }); }); }, true)); }); }, _validateAddressPrefix: function(addressPrefix) { var self = this; if ((addressPrefix.split("/").length !== 2)) { throw new Error(util.format($("The address space \"%s\" is invalid."), addressPrefix)); } ; var ipValidated = self.vnetUtil.parseIPv4(addressPrefix.split("/")[0], "--address-prefix"); if (ipValidated.error) { throw new Error(ipValidated.error); } ; var cidrValidated = self.vnetUtil.parseIPv4Cidr(addressPrefix); if (cidrValidated.error) { throw new Error(cidrValidated.error); } ; }}); module.exports = LocalNetwork;