Name
sn_cmp.CloudImageUtil
Description
No description available
Script
var CloudImageUtil = Class.create();
CloudImageUtil.prototype = {
initialize: function() {
},
isImageExist : function (objectId) {
var gr = new GlideRecord('cmdb_ci_os_template');
gr.addQuery('object_id', objectId);
gr.query();
return gr.next();
},
promoteVHD :function (blobGr) {
var ldc = this.getLDCGr(blobGr.sys_id);
if(!ldc) return;
var accountId = this.getServiceAccountId(ldc);
//insert
var responseObject = this._getResponseObject(blobGr);
var responseProcessor = new ResponseProcessor(accountId, ldc.name + '', 'Cloud API');
var cloudModelObject = responseProcessor.processResponseArray(responseObject,
'Microsoft.Compute/images',
'os_template_create_validator');
gs.info(JSON.stringify(cloudModelObject));
new sn_cmp_api.CloudModelProcessorScript().createOrUpdateCI(JSON.stringify(cloudModelObject));
},
_getResponseObject : function (gr) {
var responseObject = [{
id : gr.object_id + ''
}];
return responseObject;
},
getLDCGr : function (blobSysId) {
var rel = new GlideRecord('cmdb_rel_ci');
rel.addQuery('type', '5f985e0ec0a8010e00a9714f2a172815');//'Hosted on::Hosts'
rel.addQuery('parent', blobSysId);
rel.query();
if(rel.next()) {
return rel.child;
}
return null;
},
getServiceAccountId : function (ldc) {
var accountId;
var rel = new GlideRecord('cmdb_rel_ci');
rel.addQuery('type', '5f985e0ec0a8010e00a9714f2a172815');//'Hosted on::Hosts'
rel.addQuery('parent', ldc.sys_id);
rel.query();
if(rel.next()) {
accountId = rel.child.account_id + '';
}
return accountId;
},
canShowPromoteVHD : function(gr) {
return gr.object_id
&& gr.name.indexOf(".vhd") > -1
&& !(this.isImageExist(gr.object_id))
;
},
type: 'CloudImageUtil'
};
Sys ID
a951991c937432007472f23a767ffbb7