in ui-modules/blueprint-composer/app/components/providers/blueprint-service.provider.js [751:811]
function populateEntityFromApiSuccess(entity, data, parsedPlan) {
function mapped(list, field) {
let result = {};
if (list) {
list.forEach(l => {
if (l && l[field]) {
result[l[field]] = l;
}
});
}
return result;
}
entity.clearIssues({group: 'type'});
entity.type = data.symbolicName;
entity.icon = entity.metadata.get('iconUrl')
? (data.iconUrl || '/v1/catalog/types/'+entity.type+'/'+(entity.version || 'latest')+'/icon')+'?iconUrl='+entity.metadata.get('iconUrl')
: data.iconUrl || iconGenerator(data.symbolicName);
entity.miscData.set('important', !!data.iconUrl);
entity.miscData.set('bundle', {
symbolicName: data.containingBundle.split(':')[0],
version: data.containingBundle.split(':')[1]
});
entity.miscData.set('typeName', data.displayName || data.symbolicName);
entity.miscData.set('displayName', data.displayName);
entity.miscData.set('symbolicName', data.symbolicName);
entity.miscData.set('description', data.description);
entity.miscData.set('config', data.config || []);
entity.miscData.set('configMap', mapped(data.config, 'name'));
// if a template sets an explicit value for a parameter, use that as the default everywhere
const configTemplateDefaults =
(parsedPlan && parsedPlan['brooklyn.config']) ||
(parsedPlan && parsedPlan.services && parsedPlan.services.length==1 && parsedPlan.services[0]['brooklyn.config']) ||
{};
entity.miscData.set('configTemplateDefaults', configTemplateDefaults);
(data.config || []).forEach(item => {
const override = configTemplateDefaults[item.name];
if (typeof override !== 'undefined') {
item.defaultValueParameter = item.defaultValue;
item.defaultValueTemplate = override;
item.defaultValue = override;
}
});
entity.miscData.set('parameters', data.parameters || []);
entity.miscData.set('parametersMap', mapped(data.parameters, 'name'));
entity.miscData.set('sensors', data.sensors || []);
entity.miscData.set('traits', data.supertypes || []);
entity.miscData.set('tags', data.tags || []);
entity.miscData.set('loadedVersion', data.version);
data.tags.forEach( (t) => {
mergeAppendingLists(COMMON_HINTS, t['ui-composer-hints']);
});
entity.miscData.set('ui-composer-hints', COMMON_HINTS);
entity.miscData.set('virtual', data.virtual || null);
addUnlistedConfigKeysDefinitions(entity);
addUnlistedParameterDefinitions(entity);
return entity;
}