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

Offical Documentation

Official Docs: