azure-cli
Version:
Microsoft Azure Cross Platform Command Line tool
967 lines (508 loc) • 49.4 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 util = require("util");
var url = require("url");
var async = require("async");
var __ = require("underscore");
var profile = require("../../../util/profile");
var utils = require("../../../util/utils");
var validate = require("./validation");
var cacheUtils = require("../../../util/cacheUtils");
var child_process = require("child_process");
var $ = utils.getLocaleString;
function WebsitesClient(cli, subscription) {
this.cli = cli;
this.subscription = subscription;
this.hostNameSuffix = null;};
__.extend(WebsitesClient, {
getSiteName: function(name, slot) {
if ((slot && !WebsitesClient.isProductionSlot(slot))) {
return util.format("%s(%s)", name, slot); }
else {
return name; } ; },
parseSiteName: function(name) {
var regExp = /\(([^)]+)\)/;
var matches = regExp.exec(name);
if ((matches && (matches.length > 0))) {
var slot = matches[(matches.length - 1)];
name = name.replace(util.format("(%s)", slot), "");
if (!WebsitesClient.isProductionSlot(slot)) {
return { name: name, slot: slot }; }
else {
return { name: name }; } ; }
else {
return { name: name }; } ; },
getSiteHostName: function(name, slot) {
if ((slot && !WebsitesClient.isProductionSlot(slot))) {
return util.format("%s-%s", name, slot); }
else {
return name; } ; },
isProductionSlot: function(slot) {
return utils.ignoreCaseEquals(slot, this.getProductionSlotName()); },
isStagingSlot: function(slot) {
return utils.ignoreCaseEquals(slot, this.getStagingSlotName()); },
getProductionSlotName: function() {
return "production"; },
getStagingSlotName: function() {
return "staging"; }});
__.extend(WebsitesClient.prototype, {
enableApplicationDiagnostic: function(name, output, properties, callback) {
this.setApplicationDiagnosticsSettings(name, output, true, properties, callback); },
disableApplicationDiagnostic: function(name, output, properties, callback) {
this.setApplicationDiagnosticsSettings(name, output, false, properties, callback); },
setApplicationDiagnosticsSettings: function(name, output, setFlag, properties, callback) {
var self = this;
var context = {
subscription: self.subscription,
site: {
name: name } };
self.cli.category("site").lookupSiteNameAndWebSpace(context, function(err) {
if (err) { return callback(err); } ;
self.cli.category("site").ensureRepositoryUri(context, function(err, repositoryUri) {
if (err) { return callback(err); } ;
if (repositoryUri) {
self.getDiagnosticsSettings(context, function(err, settings) {
if (err) { return callback(err); } ;
if ((!output && setFlag)) {
throw new Error($("Invalid trace output")); } ;
if ((!output || (output.toLowerCase() === "file"))) {
settings.AzureDriveEnabled = setFlag;
if (setFlag) {
settings.AzureDriveTraceLevel = properties.level; } ; } ;
if ((!output || (output.toLowerCase() === "storage"))) {
settings.AzureTableEnabled = setFlag;
if (setFlag) {
settings.AzureTableTraceLevel = properties.level;
var storageTableName = "CLOUD_STORAGE_ACCOUNT";
var storageAccountName = properties.storageAccount;
self.getStorageServiceConnectionString(storageAccountName, function(err, connectionString) {
if (err) { return callback(err); } ;
self.setConnectionString(name, storageTableName, connectionString, 3, function(err) {
if (err) { return callback(err); } ;
self.updateDiagnosticsSettings(context, settings, callback); }); }); }
else {
self.updateDiagnosticsSettings(context, settings, callback); } ; }
else {
self.updateDiagnosticsSettings(context, settings, callback); } ; }); }
else {
self.cli.output.error($("Repository is not setup"));
callback(new Error($("Repository is not setup"))); } ; }); }); },
getStorageServiceConnectionString: function(name, callback) {
var self = this;
var storageService = self.createStorageClient();
storageService.storageAccounts.get(name, function(err, properties) {
if (err) { return callback(err); } ;
storageService.storageAccounts.getKeys(name, function(err, keys) {
if (err) { return callback(err); } ;
var connectionString = util.format("AccountName=%s;AccountKey=%s;BlobEndpoint=%s;QueueEndpoint=%s;TableEndpoint=%s", name, keys.primaryKey, properties.storageAccount.properties.endpoints[0], properties.storageAccount.properties.endpoints[1], properties.storageAccount.properties.endpoints[2]);
callback(null, connectionString); }); }); },
setConnectionString: function(name, key, value, connectionStringType, callback) {
var self = this;
var context = {
subscription: self.subscription,
site: {
name: name } };
var siteCategory = self.cli.category("site");
siteCategory.lookupSiteNameAndWebSpace(context, function(err) {
if (err) { return callback(err); } ;
siteCategory.doSiteConfigGet(context, function(err, config) {
if (err) { return callback(err); } ;
var connectionString;
if (config.connectionStrings) {
connectionString = config.connectionStrings.filter(function(c) {
return utils.ignoreCaseEquals(c.name, key);
})[0]; }
else {
config.connectionStrings = []; } ;
if (connectionString) {
connectionString.connectionString = value;
connectionString.name = key;
connectionString.type = connectionStringType; }
else {
config.connectionStrings.push({
connectionString: value,
name: key,
type: connectionStringType }); } ;
siteCategory.doSiteConfigPUT(config, context, callback); }); }); },
getDiagnosticsSettings: function getDiagnosticsSettings__1(context, _) { var self, service, progress, __this = this; var __frame = { name: "getDiagnosticsSettings__1", line: 230 }; return __func(_, this, arguments, getDiagnosticsSettings__1, 1, __frame, function __$getDiagnosticsSettings__1() { self = __this;
return __this.createWebsiteExtensionsClient(context, __cb(_, __frame, 3, 23, function ___(__0, __1) { service = __1;
progress = self.cli.interaction.progress($("Getting diagnostic settings")); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$getDiagnosticsSettings__1() {
return service.diagnostics.getSettings(__cb(_, __frame, 7, 33, function ___(__0, __3) { var __2 = __3.settings; return _(null, __2); }, true)); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$getDiagnosticsSettings__1() {
progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$getDiagnosticsSettings__1() { _(); }); }); }, true)); }); },
updateDiagnosticsSettings: function updateDiagnosticsSettings__2(context, settings, _) { var self, service, progress, __this = this; var __frame = { name: "updateDiagnosticsSettings__2", line: 243 }; return __func(_, this, arguments, updateDiagnosticsSettings__2, 2, __frame, function __$updateDiagnosticsSettings__2() { self = __this;
return __this.createWebsiteExtensionsClient(context, __cb(_, __frame, 3, 23, function ___(__0, __1) { service = __1;
progress = self.cli.interaction.progress($("Updating diagnostic settings")); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$updateDiagnosticsSettings__2() {
return service.diagnostics.updateSettings({ settings: settings }, __cb(_, __frame, 7, 33, _, true)); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$updateDiagnosticsSettings__2() {
progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$updateDiagnosticsSettings__2() { _(); }); }); }, true)); }); },
createStorageClient: function() {
return utils.createStorageClient(profile.current.getSubscription(this.subscription)); },
createWebsiteManagementService: function(subscription, callback) {
return utils.createWebsiteClient(profile.current.getSubscription(this.subscription), callback); },
createWebsiteExtensionsClient: function createWebsiteExtensionsClient__3(context, _) { var service, __this = this; var __frame = { name: "createWebsiteExtensionsClient__3", line: 264 }; return __func(_, this, arguments, createWebsiteExtensionsClient__3, 1, __frame, function __$createWebsiteExtensionsClient__3() {
return __this.getHostNameSuffix(context.subscription, __cb(_, __frame, 3, 11, function ___(__0, __1) { service = utils.createWebSiteExtensionsClient(WebsitesClient.getSiteHostName(context.site.name, context.site.slot), __1, context.repositoryAuth.split(":")[0], context.repositoryAuth.split(":")[1]);
service.baseUri = context.repositoryUri;
return _(null, service); }, true)); }); },
createSite: function createSite__4(subscription, webspace, site, _) { var self, service, progress, errormessageargs, result, siteName, __this = this; var __frame = { name: "createSite__4", line: 275 }; return __func(_, this, arguments, createSite__4, 3, __frame, function __$createSite__4() { self = __this;
if (site.hostNames) {
self.cli.output.info(util.format($("Creating a new web site at %s"), site.hostNames)); } ;
self.cli.output.verbose("Subscription", subscription);
self.cli.output.verbose("Webspace", webspace);
self.cli.output.verbose("Site", site.name);
if (site.slot) {
self.cli.output.verbose("Slot", site.slot); } ;
return self.createWebsiteManagementService(subscription, __cb(_, __frame, 15, 23, function ___(__0, __1) { service = __1;
progress = self.cli.interaction.progress($("Sending site information")); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$createSite__4() { return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$createSite__4() {
return service.webSites.create(webspace, site, __cb(_, __frame, 19, 36, function ___(__0, __2) { result = __2.webSite;
self.cli.output.info(util.format($("Created website at %s"), result.hostNames));
self.cli.output.verbose("Site", result);
siteName = WebsitesClient.getSiteName(site.name, site.slot);
return cacheUtils.saveSite(subscription, siteName, result, __cb(_, __frame, 24, 17, function __$createSite__4() {
return _(null, result); }, true)); }, true)); }); })(function ___(err, __result) { __catch(function __$createSite__4() { if (err) {
utils.logError(self.cli.output, $("Failed to create site"), err);
if (err.messagetemplate) {
errormessageargs = [];
if ((err.parameters && err.parameters["a:string"])) {
if (__.isArray(err.parameters["a:string"])) {
errormessageargs = err.parameters["a:string"]; }
else {
errormessageargs = [err.parameters["a:string"],]; } ;
errormessageargs.unshift($(err.messagetemplate.replace(/\{.*?\}/g, "%s")));
return _(new Error(new Error(util.format.apply(err.messagetemplate, errormessageargs)))); }
else {
return _(new Error(err.messagetemplate)); } ; } else {
if ((typeof err.message !== "string")) {
return _(new Error($("Invalid service request"))); }
else {
return _(err); } ; } ; __then(); } else { _(null, __result); } ; }, _); }); })(function ___() { __tryCatch(_, function __$createSite__4() { _(null, null, true); }); }); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$createSite__4() {
progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$createSite__4() { _(); }); }); }, true)); }); },
createRepository: function(options, callback) {
var self = this;
self.cli.output.info($("Initializing remote Azure repository"));
self.cli.output.verbose("Subscription", options.subscription);
self.cli.output.verbose("Webspace", options.site.webspace);
self.cli.output.verbose("Site", options.site.name);
var progress = self.cli.interaction.progress($("Updating site information"));
self.createWebsiteManagementService(options.subscription, function(err, service) {
if (err) {
return callback(err); } ;
var siteName = WebsitesClient.getSiteName(options.site.name, options.site.slot);
service.webSites.createRepository(options.site.webspace, siteName, function(err, result) {
progress.end();
if (err) {
utils.logError(self.cli.output, $("Failed to initialize repository"), err); }
else {
self.cli.output.info($("Remote azure repository initialized")); } ;
return callback(err, result); }); }); },
getRepository: function getRepository__5(options, _) { var self, siteData, __this = this; var __frame = { name: "getRepository__5", line: 353 }; return __func(_, this, arguments, getRepository__5, 1, __frame, function __$getRepository__5() { self = __this;
return self.getSite(options, __cb(_, __frame, 3, 24, function ___(__0, __1) { siteData = __1;
return _(null, self.getRepositoryUri(siteData)); }, true)); }); },
deleteRepository: function(options, callback) {
var self = this;
self.cli.output.verbose("Subscription", options.subscription);
self.cli.output.verbose("Webspace", options.site.webspace);
self.cli.output.verbose("Site", options.site.name);
var progress = self.cli.interaction.progress($("Updating site information"));
self.createWebsiteManagementService(options.subscription, function(err, service) {
if (err) {
return callback(err); } ;
var siteName = WebsitesClient.getSiteName(options.site.name, options.site.slot);
service.webSites.deleteRepository(options.site.webspace, siteName, function(err, result) {
progress.end();
if (err) {
utils.logError(self.cli.output, $("Failed to delete repository"), err); }
else {
self.cli.output.info($("Repository deleted")); } ;
return callback(err, result); }); }); },
syncRepository: function(options, callback) {
var self = this;
self.cli.output.verbose("Subscription", options.subscription);
self.cli.output.verbose("Webspace", options.site.webspace);
self.cli.output.verbose("Site", options.site.name);
var progress = self.cli.interaction.progress($("Sync site repository"));
var siteName = WebsitesClient.getSiteName(options.site.name, options.site.slot);
var oldService = utils.createWebsiteManagementService(profile.current.getSubscription(self.subscription), self.cli.output);
oldService.syncSiteRepository(options.site.webspace, siteName, function(err, result) {
progress.end();
if (err) {
utils.logError(self.cli.output, $("Failed to sync repository"), err); }
else {
self.cli.output.info($("Repository sync completed")); } ;
return callback(err, result); }); },
getSpaces: function getSpaces__6(options, _) { var self, progress, message, href, service, spaces, __this = this; var __frame = { name: "getSpaces__6", line: 412 }; return __func(_, this, arguments, getSpaces__6, 1, __frame, function __$getSpaces__6() { self = __this;
self.cli.output.verbose("Subscription", options.subscription);
progress = self.cli.interaction.progress($("Getting locations")); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$getSpaces__6() { return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$getSpaces__6() {
return self.createWebsiteManagementService(options.subscription, __cb(_, __frame, 6, 25, function ___(__0, __2) { service = __2;
return service.webSpaces.list(__cb(_, __frame, 7, 37, function ___(__0, __3) { spaces = __3.webSpaces;
return cacheUtils.saveSpaces(options, spaces, __cb(_, __frame, 8, 17, function __$getSpaces__6() {
return _(null, spaces); }, true)); }, true)); }, true)); }); })(function ___(err, __result) { __catch(function __$getSpaces__6() { if (err) {
message = err.Message; return (function __$getSpaces__6(__then) {
if (((typeof message === "string") && (message.indexOf("Access is denied.") >= 0))) {
self.cli.output.error($("Please use the Microsoft Azure portal to create your first web website"));
self.cli.output.error($("You can do so by following these steps:"));
self.cli.output.error($("1. At the bottom of the page, click on New > Web Site > Quick Create"));
self.cli.output.error($("2. Type a valid site name in the URL field"));
self.cli.output.error($("3. Click on \"Create Web Site\""));
self.cli.output.error($("4. Once the site has been created, click on the site name"));
self.cli.output.error($("5. Click on \"Set up Git publishing\" or \"Reset deployment credentials\" and setup a publishing username and password. Use those credentials for all new websites you create"));
return confirm($("Launch browser to portal now? [y/n] "), __cb(_, __frame, 21, 12, function ___(__0, __1) { return (function __$getSpaces__6(__then) { if (__1) {
self.cli.output.help($("Launching portal"));
href = profile.current.getSubscription().getPortalUrl();
return self.cli.interaction.launchBrowser(href, __cb(_, __frame, 24, 31, __then, true)); } else { __then(); } ; })(__then); }, true)); } else { __then(); } ; })(function __$getSpaces__6() {
return _(err); }); } else { _(null, __result); } ; }, _); }); })(function ___() { __tryCatch(_, function __$getSpaces__6() { _(null, null, true); }); }); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$getSpaces__6() {
progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$getSpaces__6() { _(); }); }); }); },
getSites: function getSites__7(context, _) { var self, progress, service, result, sites, __this = this; var __frame = { name: "getSites__7", line: 446 }; return __func(_, this, arguments, getSites__7, 1, __frame, function __$getSites__7() { self = __this;
self.cli.output.verbose("Subscription", context.subscription);
return self.createWebsiteManagementService(context.subscription, __cb(_, __frame, 5, 23, function ___(__0, __2) { service = __2;
return self.ensureSpaces(context, __cb(_, __frame, 7, 9, function __$getSites__7() {
progress = self.cli.interaction.progress($("Getting sites")); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$getSites__7() {
return async.map(context.spaces, function __1(webspace, _) { var __frame = { name: "__1", line: 458 }; return __func(_, this, arguments, __1, 1, __frame, function __$__1() {
return service.webSpaces.listWebSites(webspace.name, {
propertiesToInclude: ["repositoryuri","publishingpassword","publishingusername",] }, __cb(_, __frame, 1, 35, function ___(__0, __2) {
var __1 = __2.webSites; return _(null, __1); }, true)); }); }, __cb(_, __frame, 11, 25, function ___(__0, __3) { result = __3;
sites = [];
result.forEach(function(item) {
sites = sites.concat(item); });
self.cli.output.json("verbose", sites);
return cacheUtils.saveSites(context.subscription, sites, __cb(_, __frame, 30, 17, function __$getSites__7() {
return _(null, sites); }, true)); }, true)); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$getSites__7() {
progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$getSites__7() { _(); }); }); }, true)); }, true)); }); },
getSite: function getSite__8(options, _) { var self, service, result, progress, siteName, __this = this; var __frame = { name: "getSite__8", line: 484 }; return __func(_, this, arguments, getSite__8, 1, __frame, function __$getSite__8() {
validate.validateArgs("getSite", function(v) {
v.object(options, "options");
v.object(options.site, "options.site");
v.string(options.site.name, "options.site.name");
v.string(options.site.webspace, "options.site.webspace"); }); self = __this;
return self.createWebsiteManagementService(options.subscription, __cb(_, __frame, 10, 23, function ___(__0, __1) { service = __1;
progress = self.cli.interaction.progress($("Getting site information")); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$getSite__8() { return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$getSite__8() {
siteName = WebsitesClient.getSiteName(options.site.name, options.site.slot);
return service.webSites.get(options.site.webspace, siteName, {
propertiesToInclude: ["repositoryuri","publishingpassword","publishingusername",] }, __cb(_, __frame, 17, 32, function ___(__0, __2) { result = __2.webSite;
self.cli.output.verbose("Site", result);
return cacheUtils.saveSite(options.subscription, siteName, result, __cb(_, __frame, 22, 17, __then, true)); }, true)); }); })(function ___(err, __result) { __catch(function __$getSite__8() { if (err) {
utils.logError(self.cli.output, $("Failed to get site info"), err);
if ((err.Code === "NotFound")) {
return _(null, cacheUtils.deleteSite(options.subscription, siteName, function() {
throw err; })); }
else {
return _(err); } ; __then(); } else { _(null, __result); } ; }, _); }); })(function ___() { __tryCatch(_, function __$getSite__8() { _(null, null, true); }); }); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$getSite__8() {
progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$getSite__8() {
return _(null, result); }); }); }, true)); }); },
getSiteInstances: function getSiteInstances__9(options, _) { var self, service, result, progress, siteName, __this = this; var __frame = { name: "getSiteInstances__9", line: 522 }; return __func(_, this, arguments, getSiteInstances__9, 1, __frame, function __$getSiteInstances__9() {
validate.validateArgs("getSiteInstances", function(v) {
v.object(options, "options");
v.object(options.site, "options.site");
v.string(options.site.name, "options.site.name");
v.string(options.site.webspace, "options.site.webspace"); }); self = __this;
return self.createWebsiteManagementService(options.subscription, __cb(_, __frame, 10, 23, function ___(__0, __1) { service = __1;
progress = self.cli.interaction.progress($("Getting site instances information")); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$getSiteInstances__9() { return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$getSiteInstances__9() {
siteName = WebsitesClient.getSiteName(options.site.name, options.site.slot);
return service.webSites.getInstanceIds(options.site.webspace, siteName, __cb(_, __frame, 17, 32, function ___(__0, __2) { result = __2;
self.cli.output.verbose("Instance Ids", result); __then(); }, true)); }); })(function ___(err, __result) { __catch(function __$getSiteInstances__9() { if (err) {
utils.logError(self.cli.output, $("Failed to get site instances info"), err);
return _(err); } else { _(null, __result); } ; }, _); }); })(function ___() { __tryCatch(_, function __$getSiteInstances__9() { _(null, null, true); }); }); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$getSiteInstances__9() {
progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$getSiteInstances__9() {
return _(null, result.instanceIds); }); }); }, true)); }); },
updateSite: function updateSite__10(site, options, _) { var self, progress, service, __this = this; var __frame = { name: "updateSite__10", line: 552 }; return __func(_, this, arguments, updateSite__10, 2, __frame, function __$updateSite__10() { self = __this;
progress = self.cli.interaction.progress($("Updating site information")); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$updateSite__10() {
return self.createWebsiteManagementService(options.subscription, __cb(_, __frame, 6, 25, function ___(__0, __1) { service = __1;
return service.webSites.update(options.site.webspace, WebsitesClient.getSiteName(options.site.name, options.site.slot), site, __cb(_, __frame, 7, 30, _, true)); }, true)); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$updateSite__10() {
progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$updateSite__10() { _(); }); }); }); },
getSiteConfiguration: function(options, callback) {
var self = this;
var progress = self.cli.interaction.progress($("Getting site config information"));
var siteName = WebsitesClient.getSiteName(options.site.name, options.site.slot);
self.createWebsiteManagementService(options.subscription, function(err, service) {
if (err) {
return callback(err); } ;
service.webSites.getConfiguration(options.site.webspace, siteName, function(err, result) {
progress.end();
if (err) {
utils.logError(self.cli.output, $("Failed to get site config info"), err); }
else {
self.cli.output.verbose("SiteConfig", result); } ;
return callback(err, result); }); }); },
updateSiteConfiguration: function updateSiteConfiguration__11(config, options, _) { var self, progress, service, siteName, __this = this; var __frame = { name: "updateSiteConfiguration__11", line: 586 }; return __func(_, this, arguments, updateSiteConfiguration__11, 2, __frame, function __$updateSiteConfiguration__11() { self = __this;
progress = self.cli.interaction.progress($("Updating site config information")); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$updateSiteConfiguration__11() {
return self.createWebsiteManagementService(options.subscription, __cb(_, __frame, 6, 25, function ___(__0, __1) { service = __1;
siteName = WebsitesClient.getSiteName(options.site.name, options.site.slot);
return service.webSites.updateConfiguration(options.site.webspace, siteName, config, __cb(_, __frame, 9, 30, _, true)); }, true)); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$updateSiteConfiguration__11() {
progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$updateSiteConfiguration__11() { _(); }); }); }); },
getAvailableLocations: function getAvailableLocations__12(options, _) { var self, progress, service, locations, result, webspaces, __this = this; var __frame = { name: "getAvailableLocations__12", line: 601 }; return __func(_, this, arguments, getAvailableLocations__12, 1, __frame, function __$getAvailableLocations__12() { self = __this;
self.cli.output.verbose("Subscription", options.subscription);
progress = self.cli.interaction.progress($("Getting locations")); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$getAvailableLocations__12() {
return self.createWebsiteManagementService(options.subscription, __cb(_, __frame, 7, 25, function ___(__0, __1) { service = __1;
return service.webSpaces.listGeoRegions(__cb(_, __frame, 10, 40, function ___(__0, __2) { locations = __2.geoRegions;
result = locations.map(function(location) {
return {
name: location.name,
webSpace: utils.webspaceFromName(location.name) }; });
return service.webSpaces.list(__cb(_, __frame, 19, 40, function ___(__0, __3) { webspaces = __3.webSpaces;
webspaces.forEach(function(webspace) {
if (!result.some(function(loc) {
return (loc.webSpace === webspace.name);
})) {
result.push({
name: webspace.geoRegion,
webSpace: webspace.name }); } ; });
result = __.uniq(result, function(item) { return item.name; });
return _(null, result); }, true)); }, true)); }, true)); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$getAvailableLocations__12() {
progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$getAvailableLocations__12() { _(); }); }); }); },
getPublishingUsers: function getPublishingUsers__13(options, _) { var self, progress, service, publishingUsers, __this = this; var __frame = { name: "getPublishingUsers__13", line: 642 }; return __func(_, this, arguments, getPublishingUsers__13, 1, __frame, function __$getPublishingUsers__13() { self = __this;
progress = self.cli.interaction.progress($("Getting user information")); return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$getPublishingUsers__13() { return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$getPublishingUsers__13() {
return self.createWebsiteManagementService(options.subscription, __cb(_, __frame, 6, 27, function ___(__0, __1) { service = __1;
return service.webSpaces.listPublishingUsers(__cb(_, __frame, 7, 48, function ___(__0, __2) { publishingUsers = __2.users;
self.cli.output.verbose($("PublishingUsers"), publishingUsers);
return _(null, publishingUsers); }, true)); }, true)); }); })(function ___(e, __result) { __catch(function __$getPublishingUsers__13() { if (e) {
return _(null, ["","",]); } else { _(null, __result); } ; }, _); }); })(function ___() { __tryCatch(_, function __$getPublishingUsers__13() { _(null, null, true); }); }); }); })(function ___(__e, __r, __cont) { (function ___(__then) { __tryCatch(_, function __$getPublishingUsers__13() {
progress.end(); __then(); }); })(function ___() { __tryCatch(_, function ___() { if (__cont) { __then(); } else { _(__e, __r); }; }); }); }); })(function ___() { __tryCatch(_, function __$getPublishingUsers__13() { _(); }); }); }); },
getHostNameSuffix: function getHostNameSuffix__14(subscription, _) { var self, subscriptionId, websiteManagementService, hostNameSuffix, __this = this; var __frame = { name: "getHostNameSuffix__14", line: 663 }; return __func(_, this, arguments, getHostNameSuffix__14, 1, __frame, function __$getHostNameSuffix__14() { self = __this; return (function __$getHostNameSuffix__14(__then) {
if (!self.hostNameSuffix) {
subscription = profile.current.getSubscription(subscription);
subscriptionId = subscription.id; return (function __$getHostNameSuffix__14(__then) {
if (subscriptionId) {
return self.createWebsiteManagementService(subscriptionId, __cb(_, __frame, 6, 44, function ___(__0, __1) { websiteManagementService = __1;
return websiteManagementService.webSpaces.getDnsSuffix(__cb(_, __frame, 7, 64, function ___(__0, __2) { hostNameSuffix = __2;
__this.hostNameSuffix = (hostNameSuffix.dnsSuffix || subscription.hostNameSuffix); __then(); }, true)); }, true)); } else {
__this.hostNameSuffix = subscription.hostNameSuffix; __then(); } ; })(__then); } else { __then(); } ; })(function __$getHostNameSuffix__14() {
return _(null, __this.hostNameSuffix); }); }); },
portalGitInitInstruction: function portalGitInitInstruction__15(context, _) { var self, href, __this = this; var __frame = { name: "portalGitInitInstruction__15", line: 680 }; return __func(_, this, arguments, portalGitInitInstruction__15, 1, __frame, function __$portalGitInitInstruction__15() { self = __this;
self.cli.output.help($("You must create your git publishing credentials using the Microsoft Azure portal"));
self.cli.output.help($("Please follow these steps in the portal:"));
self.cli.output.help($("1. In the menu on the left select \"Web Sites\""));
self.cli.output.help(util.format($("2. Click on the site named \"%s\" or any other site"), ((((context.site && context.site.name)) || "{site name}"))));
self.cli.output.help($("3. Click on \"Set up Git publishing\" or \"Reset deployment credentials\" and setup a publishing username and password. Use those credentials for all new websites you create"));
if (context.git) {
self.cli.output.help($("4. Back in the console window, rerun this command by typing \"azure site create {site name} --git\"")); } ;
return self.cli.interaction.confirm($("Launch browser to portal now? [y/n] "), __cb(_, __frame, 12, 29, function ___(__0, __1) { return (function __$portalGitInitInstruction__15(__then) { if (__1) {
self.cli.output.help($("Launching portal"));
href = profile.current.getSubscription().getPortalUrl();
return self.cli.interaction.launchBrowser(href, __cb(_, __frame, 15, 27, __then, true)); } else { __then(); } ; })(_); }, true)); }); },
getPublishingUser: function getPublishingUser__16(context, _) { var self, administratorSlots, administrators, username, password, websiteManagementService, __this = this;
function fallbackToPortal(_) { var __frame = { name: "fallbackToPortal", line: 702 }; return __func(_, this, arguments, fallbackToPortal, 0, __frame, function __$fallbackToPortal() {
return self.portalGitInitInstruction(context, __cb(_, __frame, 2, 11, function __$fallbackToPortal() {
return _(new Error($("Git credentials needs to be setup on the portal"))); }, true)); }); }; var __frame = { name: "getPublishingUser__16", line: 699 }; return __func(_, this, arguments, getPublishingUser__16, 1, __frame, function __$getPublishingUser__16() { self = __this;
administratorSlots = context.publishingUsers.map(function(user) {
return user.name; });
administrators = administratorSlots.filter(function(item) {
return ((typeof item === "string") && (item.length <= 64)); });
if (((administratorSlots.length === 1) && (administrators.length === 1))) {
return _(null, administrators[0]); } ;
self.cli.output.help($("Please provide the username for Git deployment")); return (function __$getPublishingUser__16(__then) {
if ((administratorSlots.length === 1)) {
self.cli.output.help($("If you are a new git user under this subscription, please also provide a password")); __then(); } else { return (function __$getPublishingUser__16(__then) {
if ((administrators.length === 0)) {
return fallbackToPortal(__cb(_, __frame, 28, 6, __then, true)); } else { __then(); } ; })(__then); } ; })(function __$getPublishingUser__16() {
return self.cli.interaction.prompt($("Publishing username: "), __cb(_, __frame, 31, 40, function ___(__0, __1) { username = __1; return (function __$getPublishingUser__16(__then) {
if ((administrators.length === 0)) { return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$getPublishingUser__16() {
return self.cli.interaction.promptPassword($("Publishing password: "), __cb(_, __frame, 35, 44, function ___(__0, __2) { password = __2;
return self.createWebsiteManagementService(context.subscription, __cb(_, __frame, 36, 44, function ___(__0, __3) { websiteManagementService = __3;
return websiteManagementService.webSpaces.createPublishingUser(username, password, { publishingUserName: username, publishingPassword: password }, __cb(_, __frame, 37, 43, __then, true)); }, true)); }, true)); }); })(function ___(e, __result) { __catch(function __$getPublishingUser__16() { if (e) {
return fallbackToPortal(__cb(_, __frame, 39, 8, __then, true)); } else { _(null, __result); } ; }, _); }); })(function ___() { __tryCatch(_, __then); }); } else { __then(); } ; })(function __$getPublishingUser__16() {
return _(null, username); }); }, true)); }); }); },
getRepositoryUri: function(siteData) {
if ((siteData.siteProperties && siteData.siteProperties.properties)) {
for (var property in siteData.siteProperties.properties) {
if (utils.ignoreCaseEquals(property, "RepositoryUri")) {
if ((typeof siteData.siteProperties.properties[property] === "string")) {
if (!utils.stringEndsWith(siteData.siteProperties.properties[property], "/")) {
siteData.siteProperties.properties[property] += "/"; } ;
return siteData.siteProperties.properties[property]; }
else {
return null; } ; } ; }; } ;
return null; },
getRepositoryAuthData: function(siteData) {
var userName, password;
for (var property in siteData.siteProperties.properties) {
if (utils.ignoreCaseEquals(property, "PublishingUsername")) {
userName = siteData.siteProperties.properties[property]; }
else if (utils.ignoreCaseEquals(property, "PublishingPassword")) {
password = siteData.siteProperties.properties[property]; } ; };
return {
username: userName,
password: password }; },
getRepositoryAuth: function(siteData) {
var data = this.getRepositoryAuthData(siteData);
return (data.username && (((data.username + ":") + data.password))); },
getGitUri: function(repositoryUri, siteName, auth) {
var repoUrl = url.parse(repositoryUri);
if (auth) {
repoUrl.auth = auth; } ;
var sitePath = (siteName + ".git");
if (!utils.stringEndsWith(repoUrl.path, "/")) {
repoUrl.path += "/"; } ;
repoUrl.path += sitePath;
if (!utils.stringEndsWith(repoUrl.pathname, "/")) {
repoUrl.pathname += "/"; } ;
repoUrl.pathname += sitePath;
return url.format(repoUrl); },
ensureRepositoryUri: function ensureRepositoryUri__17(context, _) { var self, siteData, repositoryUri, __this = this; var __frame = { name: "ensureRepositoryUri__17", line: 810 }; return __func(_, this, arguments, ensureRepositoryUri__17, 1, __frame, function __$ensureRepositoryUri__17() { self = __this;
return self.lookupSiteNameAndWebSpace(context, __cb(_, __frame, 3, 24, function ___(__0, __1) { siteData = __1;
repositoryUri = (siteData && self.getRepositoryUri(siteData)); return (function __$ensureRepositoryUri__17(__then) {
if (!repositoryUri) {
return self.getSite(context, __cb(_, __frame, 6, 22, function ___(__0, __2) { siteData = __2;
repositoryUri = self.getRepositoryUri(siteData); __then(); }, true)); } else { __then(); } ; })(function __$ensureRepositoryUri__17() {
if (repositoryUri) {
context.repositoryAuth = self.getRepositoryAuth(siteData);
context.repositoryUri = repositoryUri; } ;
return _(null, repositoryUri); }); }, true)); }); },
lookupSiteName: function lookupSiteName__18(context, _) { var self, cfg, __this = this; var __frame = { name: "lookupSiteName__18", line: 828 }; return __func(_, this, arguments, lookupSiteName__18, 1, __frame, function __$lookupSiteName__18() { self = __this;
if ((context.site.name !== undefined)) { return _(null); } ;
return self.readConfig(__cb(_, __frame, 8, 19, function ___(__0, __1) { cfg = __1;
if ((cfg && cfg.name)) {
context.site.name = cfg.name;
if (((cfg.slot !== undefined) && (cfg.slot !== "undefined"))) {
context.site.slot = cfg.slot; } ;
context.site.webspace = cfg.webspace; return _(null); } ;
return self.cli.interaction.prompt($("Web site name: "), __cb(_, __frame, 20, 45, function ___(__0, __2) { context.site.name = __2;
return self.cli.interaction.prompt($("Web site slot [enter for none]: "), __cb(_, __frame, 21, 45, function ___(__0, __3) { context.site.slot = __3;
if (!context.site.name) {
return _(new Error($("Invalid site name"))); } ; _(); }, true)); }, true)); }, true)); }); },
lookupSiteWebSpace: function lookupSiteWebSpace__19(context, _) { var self, siteName, sites, index, __this = this; var __frame = { name: "lookupSiteWebSpace__19", line: 856 }; return __func(_, this, arguments, lookupSiteWebSpace__19, 1, __frame, function __$lookupSiteWebSpace__19() {
validate.validateArgs("lookupSiteWebSpace", function(v) {
v.object(context, "context");
v.object(context.site, "context.site");
v.string(context.site.name, "context.site.name"); }); self = __this;
siteName = WebsitesClient.getSiteName(context.site.name, context.site.slot);
self.cli.output.verbose(util.format($("Attempting to locate site "), siteName));
return self.getSites(context, __cb(_, __frame, 12, 21, function ___(__0, __1) { sites = __1;
for (index in sites) {
if (utils.ignoreCaseEquals(sites[index].name, siteName)) {
self.cli.output.verbose(util.format($("Site located at %s"), sites[index].webSpace));
context.site.webspace = sites[index].webSpace; } ; };
if ((context.site.webspace === undefined)) {
return _(new Error(util.format($("Unable to locate site named %s"), siteName))); } ; _(); }, true)); }); },
lookupSiteNameAndWebSpace: function lookupSiteNameAndWebSpace__20(context, _) { var self, siteName, cache, __this = this; var __frame = { name: "lookupSiteNameAndWebSpace__20", line: 881 }; return __func(_, this, arguments, lookupSiteNameAndWebSpace__20, 1, __frame, function __$lookupSiteNameAndWebSpace__20() { self = __this;
return self.lookupSiteName(context, __cb(_, __frame, 3, 9, function __$lookupSiteNameAndWebSpace__20() {
siteName = WebsitesClient.getSiteName(context.site.name, context.site.slot);
return cacheUtils.readSite(context.subscription, siteName, __cb(_, __frame, 6, 27, function ___(__0, __1) { cache = __1;
if ((cache || context.site.webspace)) {
context.site.webspace = (((cache && cache.webSpace)) || context.site.webspace);
return _(null, cache); } ;
return self.lookupSiteWebSpace(context, __cb(_, __frame, 12, 9, function __$lookupSiteNameAndWebSpace__20() {
return _(null, context); }, true)); }, true)); }, true)); }); },
ensureSpaces: function ensureSpaces__21(context, _) { var self, __this = this; var __frame = { name: "ensureSpaces__21", line: 898 }; return __func(_, this, arguments, ensureSpaces__21, 1, __frame, function __$ensureSpaces__21() { self = __this; return (function __$ensureSpaces__21(__then) {
if (!context.spaces) { return (function __$ensureSpaces__21(__then) {
if (!context.skipCache) {
return cacheUtils.readSpaces(context, __cb(_, __frame, 4, 36, function ___(__0, __1) { context.spaces = __1; __then(); }, true)); } else { __then(); } ; })(function __$ensureSpaces__21() { return (function __$ensureSpaces__21(__then) {
if ((!context.spaces || !context.spaces.length)) {
return self.getSpaces(context, __cb(_, __frame, 8, 30, function ___(__0, __2) { context.spaces = __2; __then(); }, true)); } else { __then(); } ; })(__then); }); } else { __then(); } ; })(_); }); },
readConfig: function readConfig__22(_) { var self, __this = this; var __frame = { name: "readConfig__22", line: 914 }; return __func(_, this, arguments, readConfig__22, 0, __frame, function __$readConfig__22() { self = __this;
return self.readConfigValue("azure.site.name", __cb(_, __frame, 4, 17, function ___(__0, __2) {
return self.readConfigValue("azure.site.slot", __cb(_, __frame, 5, 17, function ___(__0, __3) {
return self.readConfigValue("azure.site.webspace", __cb(_, __frame, 6, 21, function ___(__0, __4) { var __1 = { name: __2, slot: __3, webspace: __4 }; return _(null, __1); }, true)); }, true)); }, true)); }); },
writeConfig: function writeConfig__23(cfg, _) { var self, __this = this; var __frame = { name: "writeConfig__23", line: 924 }; return __func(_, this, arguments, writeConfig__23, 1, __frame, function __$writeConfig__23() { self = __this;
return self.writeConfigValue("azure.site.name", cfg.name, __cb(_, __frame, 3, 9, function __$writeConfig__23() { return (function __$writeConfig__23(__then) {
if (cfg.slot) {
return self.writeConfigValue("azure.site.slot", cfg.slot, __cb(_, __frame, 5, 11, __then, true)); } else { __then(); } ; })(function __$writeConfig__23() {
return self.writeConfigValue("azure.site.webspace", cfg.webspace, __cb(_, __frame, 8, 9, function __$writeConfig__23() { _(); }, true)); }); }, true)); }); },
readConfigValue: function readConfigValue__24(name, _) { var self, result, __this = this; var __frame = { name: "readConfigValue__24", line: 935 }; return __func(_, this, arguments, readConfigValue__24, 1, __frame, function __$readConfigValue__24() { self = __this; return (function ___(__then) { (function ___(_) { __tryCatch(_, function __$readConfigValue__24() {
return exec(("git config --get " + name), __cb(_, __frame, 4, 19, function ___(__0, __1) { result = __1;
return _(null, ((result.stdout + result.stderr)).trim()); }, true)); }); })(function ___(err, __result) { __catch(function __$readConfigValue__24() { if (err) {
self.cli.output.silly($("Unable to read config"), err);
return _(null, ""); } else { _(null, __result); } ; }, _); }); })(function ___() { __tryCatch(_, function __$readConfigValue__24() { _(); }); }); }); },
writeConfigValue: function writeConfigValue__25(name, value, _) { var __frame = { name: "writeConfigValue__25", line: 948 }; return __func(_, this, arguments, writeConfigValue__25, 2, __frame, function __$writeConfigValue__25() {
return exec(((("git config " + name) + " ") + value), __cb(_, __frame, 1, 4, function __$writeConfigValue__25() { _(); }, true)); }); }});
function exec(cmd, cb) {
child_process.exec(cmd, function(err, stdout, stderr) {
cb(err, {
stdout: stdout,
stderr: stderr }); });};
module.exports = WebsitesClient;