List<GroupProperty> newProperties) {
Component component = accessValidations.validateUserCanWorkOnComponent(componentId, componentType, userId, "UPDATE GROUP PROPERTIES");
GroupDefinition currentGroup = getGroup(component, groupUniqueId);
- validateUpdatedPropertiesAndSetEmptyValues(currentGroup, newProperties);
+ validateUpdatedPropertiesAndSetEmptyValues(component, currentGroup, newProperties);
return groupsOperation.updateGroupPropertiesOnComponent(componentId, currentGroup, newProperties, PromoteVersionEnum.MINOR).left()
.on(this::onUpdatePropertyError);
}
() -> new ByActionStatusComponentException(ActionStatus.GROUP_IS_MISSING, component.getSystemName(), component.getActualComponentType()));
}
- private void validateUpdatedPropertiesAndSetEmptyValues(GroupDefinition originalGroup, List<GroupProperty> groupPropertiesToUpdate) {
+ private void validateUpdatedPropertiesAndSetEmptyValues(Component groupOwner, GroupDefinition originalGroup, List<GroupProperty> groupPropertiesToUpdate) {
if (CollectionUtils.isEmpty(groupPropertiesToUpdate)) {
throw new ByActionStatusComponentException(ActionStatus.PROPERTY_NOT_FOUND, StringUtils.EMPTY);
}
if (!isOnlyGroupPropertyValueChanged(gp, originalProperties.get(updatedPropertyName))) {
throw new ByActionStatusComponentException(ActionStatus.INVALID_PROPERTY, updatedPropertyName);
}
- if (gp.hasToscaFunction()) {
- gp.setValue(gp.getToscaFunction().getValue());
- }
if (StringUtils.isEmpty(gp.getValue())) {
gp.setValue(originalProperties.get(updatedPropertyName).getDefaultValue());
}
- StorageOperationStatus sos = groupOperation.validateAndUpdatePropertyValue(gp);
+ StorageOperationStatus sos = groupOperation.validateAndUpdatePropertyValue(groupOwner, gp);
if (StorageOperationStatus.OK != sos) {
throw new StorageException(sos, updatedPropertyName);
}