Search in sources :

Example 1 with AllowableValueEntity

use of org.apache.nifi.web.api.entity.AllowableValueEntity in project nifi by apache.

the class AllowableValueEntityMerger method merge.

public static void merge(AllowableValueEntity clientAllowableValue, Collection<AllowableValueEntity> allowableValues) {
    for (AllowableValueEntity allowableValue : allowableValues) {
        if (clientAllowableValue.getCanRead() && !allowableValue.getCanRead()) {
            clientAllowableValue.setAllowableValue(allowableValue.getAllowableValue());
            clientAllowableValue.setCanRead(allowableValue.getCanRead());
        }
    }
}
Also used : AllowableValueEntity(org.apache.nifi.web.api.entity.AllowableValueEntity)

Example 2 with AllowableValueEntity

use of org.apache.nifi.web.api.entity.AllowableValueEntity in project nifi by apache.

the class PropertyDescriptorDtoMerger method merge.

public static void merge(PropertyDescriptorDTO clientPropertyDescriptor, Map<NodeIdentifier, PropertyDescriptorDTO> dtoMap) {
    final Map<Integer, List<AllowableValueEntity>> allowableValueMap = new HashMap<>();
    // values are guaranteed to be in order, so map each allowable value for each property descriptor across all node IDs to the index of the value in the descriptor's list of allowable values
    for (final Map.Entry<NodeIdentifier, PropertyDescriptorDTO> nodeEntry : dtoMap.entrySet()) {
        final PropertyDescriptorDTO nodePropertyDescriptor = nodeEntry.getValue();
        final List<AllowableValueEntity> nodePropertyDescriptorAllowableValues = nodePropertyDescriptor.getAllowableValues();
        if (nodePropertyDescriptorAllowableValues != null) {
            nodePropertyDescriptorAllowableValues.stream().forEach(allowableValueEntity -> {
                allowableValueMap.computeIfAbsent(nodePropertyDescriptorAllowableValues.indexOf(allowableValueEntity), propertyDescriptorToAllowableValue -> new ArrayList<>()).add(allowableValueEntity);
            });
        }
    }
    // for each AllowableValueEntity in this PropertyDescriptorDTO, get the corresponding AVs previously aggregated and merge them.
    final List<AllowableValueEntity> clientPropertyDescriptorAllowableValues = clientPropertyDescriptor.getAllowableValues();
    if (clientPropertyDescriptorAllowableValues != null) {
        for (AllowableValueEntity clientAllowableValueEntity : clientPropertyDescriptorAllowableValues) {
            AllowableValueEntityMerger.merge(clientAllowableValueEntity, allowableValueMap.get(clientPropertyDescriptorAllowableValues.indexOf(clientAllowableValueEntity)));
        }
    }
}
Also used : List(java.util.List) NodeIdentifier(org.apache.nifi.cluster.protocol.NodeIdentifier) PropertyDescriptorDTO(org.apache.nifi.web.api.dto.PropertyDescriptorDTO) AllowableValueEntity(org.apache.nifi.web.api.entity.AllowableValueEntity) Map(java.util.Map) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) HashMap(java.util.HashMap) NodeIdentifier(org.apache.nifi.cluster.protocol.NodeIdentifier) AllowableValueEntity(org.apache.nifi.web.api.entity.AllowableValueEntity) ArrayList(java.util.ArrayList) List(java.util.List) ArrayList(java.util.ArrayList) Map(java.util.Map) HashMap(java.util.HashMap) PropertyDescriptorDTO(org.apache.nifi.web.api.dto.PropertyDescriptorDTO)

Example 3 with AllowableValueEntity

use of org.apache.nifi.web.api.entity.AllowableValueEntity in project nifi by apache.

the class DtoFactory method createPropertyDescriptorDto.

/**
 * Creates a PropertyDesriptorDTO from the specified PropertyDesriptor.
 *
 * @param propertyDescriptor descriptor
 * @param groupId the Identifier of the Process Group that the component belongs to
 * @return dto
 */
public PropertyDescriptorDTO createPropertyDescriptorDto(final PropertyDescriptor propertyDescriptor, final String groupId) {
    if (propertyDescriptor == null) {
        return null;
    }
    final PropertyDescriptorDTO dto = new PropertyDescriptorDTO();
    dto.setName(propertyDescriptor.getName());
    dto.setDisplayName(propertyDescriptor.getDisplayName());
    dto.setRequired(propertyDescriptor.isRequired());
    dto.setSensitive(propertyDescriptor.isSensitive());
    dto.setDynamic(propertyDescriptor.isDynamic());
    dto.setDescription(propertyDescriptor.getDescription());
    dto.setDefaultValue(propertyDescriptor.getDefaultValue());
    dto.setSupportsEl(propertyDescriptor.isExpressionLanguageSupported());
    // set the identifies controller service is applicable
    if (propertyDescriptor.getControllerServiceDefinition() != null) {
        final Class serviceClass = propertyDescriptor.getControllerServiceDefinition();
        final Bundle serviceBundle = ExtensionManager.getBundle(serviceClass.getClassLoader());
        dto.setIdentifiesControllerService(serviceClass.getName());
        dto.setIdentifiesControllerServiceBundle(createBundleDto(serviceBundle.getBundleDetails().getCoordinate()));
    }
    final Class<? extends ControllerService> serviceDefinition = propertyDescriptor.getControllerServiceDefinition();
    if (propertyDescriptor.getAllowableValues() == null) {
        if (serviceDefinition == null) {
            dto.setAllowableValues(null);
        } else {
            final List<AllowableValueEntity> allowableValues = new ArrayList<>();
            final List<String> controllerServiceIdentifiers = new ArrayList<>(controllerServiceProvider.getControllerServiceIdentifiers(serviceDefinition, groupId));
            Collections.sort(controllerServiceIdentifiers, Collator.getInstance(Locale.US));
            for (final String serviceIdentifier : controllerServiceIdentifiers) {
                final ControllerServiceNode service = controllerServiceProvider.getControllerServiceNode(serviceIdentifier);
                final boolean isServiceAuthorized = service.isAuthorized(authorizer, RequestAction.READ, NiFiUserUtils.getNiFiUser());
                final String displayName = isServiceAuthorized ? service.getName() : serviceIdentifier;
                final AllowableValueDTO allowableValue = new AllowableValueDTO();
                allowableValue.setDisplayName(displayName);
                allowableValue.setValue(serviceIdentifier);
                allowableValues.add(entityFactory.createAllowableValueEntity(allowableValue, isServiceAuthorized));
            }
            dto.setAllowableValues(allowableValues);
        }
    } else {
        final List<AllowableValueEntity> allowableValues = new ArrayList<>();
        for (final AllowableValue allowableValue : propertyDescriptor.getAllowableValues()) {
            final AllowableValueDTO allowableValueDto = new AllowableValueDTO();
            allowableValueDto.setDisplayName(allowableValue.getDisplayName());
            allowableValueDto.setValue(allowableValue.getValue());
            allowableValueDto.setDescription(allowableValue.getDescription());
            allowableValues.add(entityFactory.createAllowableValueEntity(allowableValueDto, true));
        }
        dto.setAllowableValues(allowableValues);
    }
    return dto;
}
Also used : Bundle(org.apache.nifi.bundle.Bundle) ArrayList(java.util.ArrayList) ControllerServiceNode(org.apache.nifi.controller.service.ControllerServiceNode) AllowableValue(org.apache.nifi.components.AllowableValue) AllowableValueEntity(org.apache.nifi.web.api.entity.AllowableValueEntity)

Example 4 with AllowableValueEntity

use of org.apache.nifi.web.api.entity.AllowableValueEntity in project nifi by apache.

the class EntityFactory method createAllowableValueEntity.

public AllowableValueEntity createAllowableValueEntity(final AllowableValueDTO dto, final boolean canRead) {
    final AllowableValueEntity entity = new AllowableValueEntity();
    entity.setCanRead(canRead);
    entity.setAllowableValue(dto);
    return entity;
}
Also used : AllowableValueEntity(org.apache.nifi.web.api.entity.AllowableValueEntity)

Example 5 with AllowableValueEntity

use of org.apache.nifi.web.api.entity.AllowableValueEntity in project kylo by Teradata.

the class NiFiPropertyDescriptorTransformV1 method toNiFiPropertyDescriptor.

@Nonnull
@Override
public NiFiPropertyDescriptor toNiFiPropertyDescriptor(@Nonnull final PropertyDescriptorDTO dto) {
    final NiFiPropertyDescriptor nifi = new NiFiPropertyDescriptor();
    nifi.setName(dto.getName());
    nifi.setDisplayName(dto.getDisplayName());
    nifi.setDescription(dto.getDescription());
    nifi.setDefaultValue(dto.getDefaultValue());
    nifi.setRequired(dto.isRequired());
    nifi.setSensitive(dto.isSensitive());
    nifi.setDynamic(dto.isDynamic());
    nifi.setSupportsEl(dto.getSupportsEl());
    nifi.setIdentifiesControllerService(dto.getIdentifiesControllerService());
    final List<AllowableValueEntity> allowableValues = dto.getAllowableValues();
    if (allowableValues != null) {
        nifi.setAllowableValues(allowableValues.stream().filter(allowableValueEntity -> allowableValueEntity.getAllowableValue() != null && allowableValueEntity.getAllowableValue().getValue() != null).map(AllowableValueEntity::getAllowableValue).map(this::toNiFiAllowableValue).collect(Collectors.toList()));
    }
    return nifi;
}
Also used : AllowableValueEntity(org.apache.nifi.web.api.entity.AllowableValueEntity) NiFiPropertyDescriptor(com.thinkbiganalytics.nifi.rest.model.NiFiPropertyDescriptor) Nonnull(javax.annotation.Nonnull)

Aggregations

AllowableValueEntity (org.apache.nifi.web.api.entity.AllowableValueEntity)6 ArrayList (java.util.ArrayList)3 NiFiPropertyDescriptor (com.thinkbiganalytics.nifi.rest.model.NiFiPropertyDescriptor)2 HashMap (java.util.HashMap)2 List (java.util.List)2 Nonnull (javax.annotation.Nonnull)2 PropertyDescriptorDTO (org.apache.nifi.web.api.dto.PropertyDescriptorDTO)2 ImmutableSet (com.google.common.collect.ImmutableSet)1 LegacyNifiRestClient (com.thinkbiganalytics.nifi.rest.client.LegacyNifiRestClient)1 NiFiControllerServicesRestClient (com.thinkbiganalytics.nifi.rest.client.NiFiControllerServicesRestClient)1 NiFiRestClient (com.thinkbiganalytics.nifi.rest.client.NiFiRestClient)1 NiFiAllowableValue (com.thinkbiganalytics.nifi.rest.model.NiFiAllowableValue)1 NiFiPropertyDescriptorTransform (com.thinkbiganalytics.nifi.rest.model.NiFiPropertyDescriptorTransform)1 NifiProperty (com.thinkbiganalytics.nifi.rest.model.NifiProperty)1 Collections (java.util.Collections)1 Map (java.util.Map)1 AtomicReference (java.util.concurrent.atomic.AtomicReference)1 Collectors (java.util.stream.Collectors)1 Stream (java.util.stream.Stream)1 Bundle (org.apache.nifi.bundle.Bundle)1