UNPKG

azure-cli

Version:

Microsoft Azure Cross Platform Command Line tool

202 lines (99 loc) 10.8 kB
/*** 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 profile = require("../../../util/profile"); var utils = require("../../../util/utils"); var util = require("util"); var providerOperationConstants = require("./providerUtils").providerOperationConstants; var Wildcard = utils.Wildcard; var __ = require("underscore"); var $ = utils.getLocaleString; exports.init = function(cli) { var log = cli.output; var withProgress = cli.interaction.withProgress.bind(cli.interaction); var provider = cli.category("provider"); var providerOperations = provider.category("operations").description($("Commands to get the operations or actions allowed by an Azure resource provider.")); providerOperations.command("show [operationSearchString]").description($("Show operations for the requested provider operation search string. Operations can be composed to create custom roles in Azure RBAC. The command takes as input a operation search string (with wildcard (*) character(s)) which determines the action details to display.")).usage(((((((((("[options] <operationSearchString>" + "\n") + "\n -------------------------- Get all actions for all providers --------------------------") + "\n azure provider operations show --operationSearchString *") + "\n") + "\n -------------------------- Get actions for a particular resource provider --------------------------") + "\n azure provider operations show --operationSearchString Microsoft.Insights/*") + "\n") + "\n -------------------------- Get all actions that can be performed on virtual machines --------------------------") + "\n azure provider operations show --operationSearchString */virtualMachines/*")).option("-o --operationSearchString <operationSearchString>", $("The provider operation string (with wildcard (*) character). Example: \"*\" to get all actions for all providers, \"Microsoft.Insights/*\" to get actions for a particular provider, \"*/virtualMachines/*\" to get all actions that can be performed on virtual machines.")).option("-s --subscription <subscription>", $("Subscription to show provider operations for")).execute(function __1(operationSearchString, options, _) { var subscription, client, flattenedProviderOperations; var __frame = { name: "__1", line: 48 }; return __func(_, this, arguments, __1, 2, __frame, function __$__1() { subscription = profile.current.getSubscription(options.subscription); client = utils.createResourceManagerClient(subscription); validateOperationString(operationSearchString); flattenedProviderOperations = []; return (function __$__1(__then) { if (Wildcard.containWildcards(operationSearchString)) { return getProviderOperationsWithWildCard(client, operationSearchString, __cb(_, __frame, 9, 36, function ___(__0, __1) { flattenedProviderOperations = __1; __then(); }, true)); } else { return getProviderOperationsWithoutWildCard(client, operationSearchString, __cb(_, __frame, 12, 36, function ___(__0, __2) { flattenedProviderOperations = __2; __then(); }, true)); } ; })(function __$__1() { cli.interaction.formatOutput(flattenedProviderOperations, function(data) { if ((!data || (data.length === 0))) { log.info($("No operations available matching the input action string")); } else { data.forEach(function(operation) { displayAProviderOperation(operation); }); } ; }); _(); }); }); }); function validateOperationString(operationString) { if (__.contains(operationString, providerOperationConstants.UnsupportedWildCardCharacter)) { throw new Error($("Only (*) wildcard character is supported.")); } ; var components = operationString.split(providerOperationConstants.Separator); components.forEach(function(component) { if ((__.contains(component, providerOperationConstants.WildCardCharacter) && (component.length != 1))) { throw new Error($("Individual parts in the search string should either be just a * or not contain *.")); } ; }); if (((components.length == 1) && (components[0] != providerOperationConstants.WildCardCharacter))) { throw new Error(util.format($("To get all operations under \"%s\", please specify the search string as \"%s/*\""), operationString, operationString)); } ; }; function getProviderOperationsWithWildCard(client, actionString, _) { var operationsToDisplay, providersData, unflattenedOperationsForAllProviders, providerFullName, unflattenedOperationsForSpecificProvider; var __frame = { name: "getProviderOperationsWithWildCard", line: 91 }; return __func(_, this, arguments, getProviderOperationsWithWildCard, 2, __frame, function __$getProviderOperationsWithWildCard() { operationsToDisplay = []; providersData = []; providerFullName = getProviderFullNameOrDefault(actionString); return (function __$getProviderOperationsWithWildCard(__then) { if ((providerFullName === providerOperationConstants.WildCardCharacter)) { return listAllProviderOperationsMetadata(client, __cb(_, __frame, 7, 45, function ___(__0, __1) { unflattenedOperationsForAllProviders = __1; providersData = providersData.concat(unflattenedOperationsForAllProviders); __then(); }, true)); } else { return getProviderOperationsMetadata(client, providerFullName, __cb(_, __frame, 11, 53, function ___(__0, __2) { unflattenedOperationsForSpecificProvider = __2; providersData.push(unflattenedOperationsForSpecificProvider); __then(); }, true)); } ; })(function __$getProviderOperationsWithWildCard() { providersData.forEach(function(unflattenedProviderData) { var operations = getFlattenedOperationsFromProviderOperationsMetadata(unflattenedProviderData); operations.forEach(function(operation) { if (Wildcard.isMatchCaseInsensitive(operation.operation, actionString)) { operationsToDisplay.push(operation); } ; }); }); return _(null, operationsToDisplay); }); }); }; function getProviderOperationsWithoutWildCard(client, actionString, _) { var operationsToDisplay, providerFullName, unflattenedProviderOperations, operations; var __frame = { name: "getProviderOperationsWithoutWildCard", line: 119 }; return __func(_, this, arguments, getProviderOperationsWithoutWildCard, 2, __frame, function __$getProviderOperationsWithoutWildCard() { operationsToDisplay = []; providerFullName = getProviderFullNameOrDefault(actionString); return (function __$getProviderOperationsWithoutWildCard(__then) { if (!__.isEmpty(providerFullName)) { return getProviderOperationsMetadata(client, providerFullName, __cb(_, __frame, 6, 42, function ___(__0, __1) { unflattenedProviderOperations = __1; operations = getFlattenedOperationsFromProviderOperationsMetadata(unflattenedProviderOperations); operationsToDisplay = operations.filter(function(operationObj) { return utils.ignoreCaseEquals(operationObj.operation, actionString.toLowerCase()); }); __then(); }, true)); } else { __then(); } ; })(function __$getProviderOperationsWithoutWildCard() { return _(null, operationsToDisplay); }); }); }; function getProviderFullNameOrDefault(actionString) { var index = actionString.indexOf(providerOperationConstants.Separator); var fullName = actionString; if ((index > 0)) { fullName = actionString.substring(0, index); } ; return fullName; }; function displayAProviderOperation(resourceProviderOperation) { log.data($("Operation : "), resourceProviderOperation.operation); log.data($("OperationName : "), resourceProviderOperation.operationName); log.data($("ProviderNamespace : "), resourceProviderOperation.providerNamespace); log.data($("ResourceName : "), resourceProviderOperation.resourceName); log.data($("Description : "), resourceProviderOperation.description); log.data(""); }; function getProviderOperationsMetadata(client, providerFullName, _) { var __frame = { name: "getProviderOperationsMetadata", line: 153 }; return __func(_, this, arguments, getProviderOperationsMetadata, 2, __frame, function __$getProviderOperationsMetadata() { return withProgress($("Getting providerOperations metadata"), function __1(log, _) { var __frame = { name: "__1", line: 155 }; return __func(_, this, arguments, __1, 1, __frame, function __$__1() { return client.providerOperationsMetadata.get(providerFullName, __cb(_, __frame, 1, 47, function ___(__0, __2) { var __1 = __2.provider; return _(null, __1); }, true)); }); }, __cb(_, __frame, 1, 11, _, true)); }); }; function listAllProviderOperationsMetadata(client, _) { var __frame = { name: "listAllProviderOperationsMetadata", line: 160 }; return __func(_, this, arguments, listAllProviderOperationsMetadata, 1, __frame, function __$listAllProviderOperationsMetadata() { return withProgress($("Getting providerOperations metadata"), function __1(log, _) { var __frame = { name: "__1", line: 162 }; return __func(_, this, arguments, __1, 1, __frame, function __$__1() { return client.providerOperationsMetadata.list(__cb(_, __frame, 1, 47, function ___(__0, __2) { var __1 = __2.providers; return _(null, __1); }, true)); }); }, __cb(_, __frame, 1, 11, _, true)); }); }; function getFlattenedOperationsFromProviderOperationsMetadata(provider) { var flattenedOperations = []; provider.operations.forEach(function(operation) { if (isUserOperation(operation)) { flattenedOperations.push(getFlattenedOperationObject(operation, provider.displayName)); } ; }); if (provider.resourceTypes) { provider.resourceTypes.forEach(function(rt) { rt.operations.forEach(function(operation) { if (isUserOperation(operation)) { flattenedOperations.push(getFlattenedOperationObject(operation, provider.displayName, rt.displayName)); } ; }); }); } ; return flattenedOperations; }; function isUserOperation(operation) { return ((!operation.origin || (operation.origin.indexOf("user") > -1))); }; function getFlattenedOperationObject(operation, providerDisplayName, resourceDisplayName) { var operationObject = { operation: operation.name, operationName: operation.displayName, description: operation.description, providerNamespace: providerDisplayName, resourceName: (!resourceDisplayName ? "" : resourceDisplayName) }; return operationObject; };};