in plugin-azure-server/src/main/resources/buildServerResources/images.vm.js [841:925]
self.saveImage = function () {
var model = self.image();
var image = {
deployTarget: model.deployTarget(),
groupId: model.groupId(),
region: model.region(),
imageType: model.imageType(),
imageUrl: model.imageUrl(),
imageId: model.imageId(),
instanceId: model.instanceId(),
osType: model.osType(),
networkId: model.networkId(),
subnetId: model.subnetId(),
maxInstances: model.maxInstances(),
vmNamePrefix: model.vmNamePrefix(),
vmPublicIp: model.vmPublicIp(),
vmSize: model.vmSize(),
numberCores: model.numberCores(),
memory: model.memory(),
registryUsername: model.registryUsername(),
vmUsername: model.vmUsername(),
reuseVm: model.reuseVm(),
storageAccount: model.storageAccount(),
storageAccountType: model.storageAccountType(),
template: model.template(),
agentPoolId: model.agentPoolId(),
profileId: model.profileId(),
customEnvironmentVariables: model.customEnvironmentVariables(),
customTags: model.customTags(),
spotVm: model.spotVm(),
enableSpotPrice: model.enableSpotPrice(),
spotPrice: model.spotPrice() != null ? Math.trunc(parseFloat(model.spotPrice())*priceDivider) : undefined,
enableAcceleratedNetworking: model.enableAcceleratedNetworking(),
disableTemplateModification: model.disableTemplateModification(),
userAssignedIdentity: model.userAssignedIdentity(),
enableSystemAssignedIdentity: model.enableSystemAssignedIdentity(),
};
let pass;
if (image.imageType === imageTypes.container) {
pass = model.registryPassword();
} else {
pass = model.vmPassword();
}
const finishImageModification = () => {
var originalImage = self.originalImage;
if (originalImage) {
self.images.replace(originalImage, image);
self.vmNamePrefixes.delete(originalImage.vmNamePrefix);
} else {
self.images.push(image);
}
self.images_data(JSON.stringify(self.images()));
self.vmNamePrefixes.add(image.vmNamePrefix);
dialog.close();
};
if (pass !== azurePassStub) {
$.post(config.updateImageRequestPath, {
"prop:vmNamePrefix": self.image().vmNamePrefix,
"prop:encrypted:secure:password": encryptData(pass),
"prop:imageUpdateType": "upsert",
"prop:encrypted:secure:passwords_data": self.passwords_data()
}).then(function (response) {
const $response = $j(response);
const data = $response.find("passwords_data").text();
self.passwords_data(data);
const errors = getErrors($response);
if (errors) {
alert("Failed to update image data: " + errors);
return;
}
finishImageModification();
});
} else {
finishImageModification();
}
return false;
};