azure-cli
Version:
Microsoft Azure Cross Platform Command Line tool
207 lines (105 loc) • 9.1 kB
JavaScript
/*** Generated by streamline 0.10.17 (callbacks) - DO NOT EDIT ***/ "use strict"; var __rt=require('streamline/lib/callbacks/runtime').runtime(__filename, false),__func=__rt.__func,__cb=__rt.__cb; var util = require("util");
var profile = require("../../../util/profile");
var providerUtils = require("./providerUtils");
var utils = require("../../../util/utils");
var $ = utils.getLocaleString;
exports.init = function(cli) {
var log = cli.output;
var withProgress = cli.interaction.withProgress.bind(cli.interaction);
var provider = cli.category("provider").description($("Commands to manage resource provider registrations"));
provider.command("list").description($("List currently registered providers in ARM")).option("-s --subscription <subscription>", $("Subscription to list providers for")).option("--details", $("shows full list of resource type and locations.")).execute(withClient(function __1(client, options, _) { var providers, listLength; var __frame = { name: "__1", line: 38 }; return __func(_, this, arguments, __1, 2, __frame, function __$__1() {
return withProgress($("Getting ARM registered providers"), function __1(log, _) { var __frame = { name: "__1", line: 41 }; return __func(_, this, arguments, __1, 1, __frame, function __$__1() {
return providerUtils.getAllProviders(client, __cb(_, __frame, 1, 36, function ___(__0, __1) { providers = __1; _(); }, true)); }); }, __cb(_, __frame, 2, 6, function __$__1() {
listLength = (options.details ? "all" : 4);
cli.interaction.formatOutput(providers, function(providerList) {
if ((providerList.length === 0)) {
log.info($("No providers defined")); }
else {
providerList.forEach(function(provider) {
var resourceProvider = getProviderDetails(providers, provider.namespace);
if (resourceProvider) {
log.data("");
log.data($("ProviderNamespace : "), resourceProvider.registeredProvider.namespace);
log.data($("RegistrationState : "), resourceProvider.registeredProvider.registrationState);
log.data($("ResourceTypes : "), showList(resourceProvider.ResourceTypes, listLength));
log.data($("Locations : "), showList(resourceProvider.Locations, listLength)); } ; }); } ; }); _(); }, true)); }); }));
provider.command("show [namespace]").description($("Show details about the requested provider namespace")).usage("[options] <namespace>").option("--details", $("show details such as alias definitions, etc.")).option("-n --namespace <namespace>", $("the provider namespace to show")).option("-s --subscription <subscription", $("subscription to show provider for")).execute(withClient(function __2(client, namespace, options, _) { var provider; var __frame = { name: "__2", line: 70 }; return __func(_, this, arguments, __2, 3, __frame, function __$__2() {
return withProgress($("Getting provider information"), function __1(log, _) { var __frame = { name: "__1", line: 72 }; return __func(_, this, arguments, __1, 1, __frame, function __$__1() {
return client.providers.get(namespace, { expand: "resourceTypes/aliases" }, __cb(_, __frame, 1, 32, _, true)); }); }, __cb(_, __frame, 1, 21, function ___(__0, __2) { provider = __2;
cli.interaction.formatOutput(provider, function(data) {
if (!data) {
log.info($("No provider information available")); }
else {
log.data($("Namespace:"), data.namespace);
log.data($("Registration state:"), data.registrationState);
log.data($("Resource types:"));
if ((data.resourceTypes && (data.resourceTypes.length > 0))) {
log.data("");
for (var i = 0; (i < data.resourceTypes.length); i++) {
var resourceType = data.resourceTypes[i];
log.data($("ProviderNamespace : "), data.namespace);
log.data($("RegistrationState : "), data.registrationState);
log.data($("ResourceTypes : "), resourceType.resourceType);
log.data($("Locations : "), showList(resourceType.locations, "all"));
log.data($("Aliases : "));
if ((resourceType.aliases && (resourceType.aliases.length > 0))) {
for (var j = 0; (j < resourceType.aliases.length); j++) {
var alias = resourceType.aliases[j];
if (options.details) {
log.data($(" Name:"), alias.name);
log.data($(" Paths:"));
if ((alias.paths && (alias.paths.length > 0))) {
for (var k = 0; (k < alias.paths.length); k++) {
var path = alias.paths[k];
log.data($(" Path:"), path.path);
log.data($(" Api versions:"), path.apiVersions.join(", ")); }; } ; }
else {
log.data($(" "), alias.name); } ; }; } ;
log.data(""); }; } ; } ; }); _(); }, true)); }); }));
provider.command("register [namespace]").description($("Register namespace provider with the subscription")).usage("[options] <namespace>").option("-n --namespace <namespace>", $("the provider namespace to register")).option("-s --subscription <subscription>", $("Subscription to register")).execute(function __3(namespace, options, _) { var subscription; var __frame = { name: "__3", line: 126 }; return __func(_, this, arguments, __3, 2, __frame, function __$__3() {
if (!namespace) {
return _(null, cli.missingArgument("namespace")); } ;
subscription = profile.current.getSubscription(options.subscription);
return withProgress(util.format($("Registering provider %s with subscription %s"), namespace, subscription.id), function __1(log, _) { var __frame = { name: "__1", line: 133 }; return __func(_, this, arguments, __1, 1, __frame, function __$__1() {
return subscription.registerArmProvider(namespace, true, __cb(_, __frame, 1, 23, function __$__1() { _(); }, true)); }); }, __cb(_, __frame, 6, 6, function __$__3() { _(); }, true)); }); });
provider.command("unregister [namespace]").description($("Un-register namespace provider with the subscription")).usage("[options] <namespace>").option("-n --namespace <namespace>", $("the provider namespace to register")).option("-s --subscription <subscription>", $("Subscription to register")).execute(function __4(namespace, options, _) { var subscription; var __frame = { name: "__4", line: 143 }; return __func(_, this, arguments, __4, 2, __frame, function __$__4() {
if (!namespace) {
return _(null, cli.missingArgument("namespace")); } ;
subscription = profile.current.getSubscription(options.subscription);
return withProgress(util.format($("Un-registering provider %s with subscription %s"), namespace, subscription.id), function __1(log, _) { var __frame = { name: "__1", line: 150 }; return __func(_, this, arguments, __1, 1, __frame, function __$__1() {
return subscription.unRegisterArmProvider(namespace, __cb(_, __frame, 1, 23, function __$__1() { _(); }, true)); }); }, __cb(_, __frame, 6, 6, function __$__4() { _(); }, true)); }); });};
function withClient(wrappedFunction) {
return function() {
var args = Array.prototype.slice.call(arguments, 0);
var options = args[(args.length - 2)];
var subscription = profile.current.getSubscription(options.subscription);
var client = utils.createResourceClient(subscription);
return wrappedFunction.apply(this, [client,].concat(args)); };};
function getProviderDetails(providers, namespace) {
var registeredProvider = providers.filter(function(provider) {
return (((provider.namespace === namespace) && (provider.registrationState === "Registered"))); });
if ((registeredProvider.length === 0)) {
return null; }
else {
registeredProvider = registeredProvider[0];
var resourceTypes = registeredProvider.resourceTypes.map(function(resourceType) {
return resourceType.resourceType; });
var locations = registeredProvider.resourceTypes.map(function(resourceType) {
return resourceType.locations; });
locations = getAllUniqueLocations(locations);
return {
ResourceTypes: resourceTypes,
Locations: locations,
registeredProvider: registeredProvider }; } ;};
function getAllUniqueLocations(locations) {
return locations.reduce(function(a, b) {
return a.concat(b);
}, []).reduce(function(a, b) {
if ((a.indexOf(b) < 0)) {
a.push(b); } ;
return a;
}, []);};
function showList(providerArr, numToShow) {
var smallerList = ((numToShow === "all") ? providerArr.join(", ") : providerArr.slice(0, numToShow).join(", "));
var ellipse = ((((providerArr.length > 4) && (numToShow !== "all"))) ? "..." : "");
return (smallerList + ellipse);};