azure-cli
Version:
Microsoft Azure Cross Platform Command Line tool
194 lines (163 loc) • 6.26 kB
JavaScript
/*** Generated by streamline 0.10.17 (callbacks) - DO NOT EDIT ***///
// Copyright (c) Microsoft and contributors. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//
// See the License for the specific language governing permissions and
// limitations under the License.
//
var __ = require('underscore');
var uuid = require('uuid');
var profile = require('../../util/profile');
var utils = require('../../util/utils');
var $ = utils.getLocaleString;
var batchUtil = {};
/**
* Module variables
*/
var cli = null;
var logger = null;
var progress = null;
var operationTimeout = null;
/**
* Batch connection string environment variable name
*/
batchUtil.ENV_SDK_ACCOUNT_ENDPOINT = 'AZURE_BATCH_ENDPOINT';
batchUtil.ENV_SDK_ACCOUNT_NAME = 'AZURE_BATCH_ACCOUNT';
batchUtil.ENV_SDK_ACCOUNT_KEY = 'AZURE_BATCH_ACCESS_KEY';
/**
* Init cli module
*/
batchUtil.init = function (azureCli) {
cli = azureCli;
logger = cli.output;
operationTimeout = 30;
var batch = cli.category('batch');
Object.getPrototypeOf(batch).appendSubscriptionAndResourceGroupOption = function () {
this.option('-g, --resource-group <resource-group>', $('the resource group name'));
this.option('-s, --subscription <subscription>', $('the subscription id'));
return this;
};
Object.getPrototypeOf(batch).appendBatchAccountOption = function () {
this.option('-a, --account-name <account-name>', $('the Batch account name'));
this.option('-k, --account-key <account-key>', $('the Batch account key'));
this.option('-u, --account-endpoint <account-endpoint>', $('the Batch account URL'));
return this;
};
Object.getPrototypeOf(batch).appendODataFilterOption = function (select, filter, expand) {
if (select) {
this.option('--select-clause <select-clause>', $('list of a subset of properties to select'));
}
if (filter) {
this.option('--filter-clause <filter-clause>', $('an OData expression by which the results will be filtered'));
}
if (expand) {
this.option('--expand-clause <expand-clause>', $('list of related entities by which the results can be expanded'));
}
return this;
};
Object.getPrototypeOf(batch).appendCommonHeaderFilterOption = function (eTag, lastModified) {
if (eTag) {
this.option('--if-match <if-match>', $('only perform if resource\'s ETag is an exact match to the specified value'));
this.option('--if-none-match <if-none-match>', $('only perform if resource\'s ETag does not match the specified value'));
}
if (lastModified) {
this.option('--if-modified-since <if-modified-since>', $('only perform if the resource has been modified since the specified time'));
this.option('--if-unmodified-since <if-unmodified-since>', $('only perform if the resource has not been modified since the specified time'));
}
return this;
};
};
/**
* Start cli operation progress
*/
batchUtil.startProgress = function (tips) {
if (progress !== null) {
batchUtil.endProgress();
}
progress = cli.interaction.progress(tips);
};
/**
* End cli operation progress
*/
batchUtil.endProgress = function () {
if (progress !== null) {
progress.end();
}
progress = null;
};
/**
* Get Batch default operation options
*/
batchUtil.getBatchOperationDefaultOption = function () {
var option = {};
batchUtil.setOperationTimeout(option);
batchUtil.setClientRequestId(option);
return option;
};
/**
* Set REST operation time out
*/
batchUtil.setOperationTimeout = function (options) {
if ((options.timeout === undefined) && operationTimeout !== null && !isNaN(operationTimeout) && operationTimeout > 0) {
options.timeout = 30;
}
};
/**
* Set REST operation client request id
*/
batchUtil.setClientRequestId = function (options) {
if (options.clientRequestId === undefined) {
options.clientRequestId = uuid();
options.returnClientRequestId = true;
}
};
/**
* Is not found exception
*/
batchUtil.isNotFoundException = function (e) {
var notFoundErrors = ['NotFound', 'ResourceNotFound', 'PoolNotFound', 'NodeNotFound', 'JobNotFound', 'TaskNotFound', 'CertificateNotFound'];
return notFoundErrors.some(function (error) { return e.body && e.body.code === error; });
};
batchUtil.createBatchManagementClient = function(subscriptionOrName) {
var client;
if (__.isString(subscriptionOrName) || !subscriptionOrName) {
subscriptionOrName = profile.current.getSubscription(subscriptionOrName);
}
client = utils.createBatchResourceProviderClient(subscriptionOrName);
return client;
};
batchUtil.createBatchServiceClient = function(options) {
var accountName;
var accountKey;
var accountEndpoint;
if (options) {
accountName = options.accountName;
accountKey = options.accountKey;
accountEndpoint = options.accountEndpoint;
}
if (!accountName && !accountKey && !accountEndpoint) {
accountName = process.env[batchUtil.ENV_SDK_ACCOUNT_NAME];
accountKey = process.env[batchUtil.ENV_SDK_ACCOUNT_KEY];
accountEndpoint = process.env[batchUtil.ENV_SDK_ACCOUNT_ENDPOINT];
}
if (!accountName || !accountKey || !accountEndpoint) {
throw new Error($('Please specify a Batch account name, access key, and endpoint URL in one of the two following ways:\n 1. Use the --account-name, --account-key, and --account-endpoint parameters.\n 2. Set the AZURE_BATCH_ACCOUNT, AZURE_BATCH_ACCESS_KEY, and AZURE_BATCH_ENDPOINT environment variables.'));
}
return utils.createBatchClient(accountName, accountKey, accountEndpoint);
};
batchUtil.parseResourceGroupNameFromId = function(id) {
if (!id) { return ''; }
var keyword = '/resourceGroups/';
var startIndex = id.indexOf(keyword) + keyword.length;
var endIndex = id.indexOf('/', startIndex);
return id.substring(startIndex, endIndex);
};
module.exports = batchUtil;