- https://sonarcloud.io/project/issues?resolved=false&types=CODE_SMELL&id=onap_cps&open=AYFC3OguDZ5Vb3SQMOU1
Issue-ID: CPS-1016
Change-Id: Ic8fdae78337da1ff2c239ae2dfae67e23e88a4bb
Signed-off-by: kissand <andras.zoltan.kiss@est.tech>
* @return collection of cm handles
*/
@Override
+ @SuppressWarnings("deprecation") // mapOldConditionProperties method will be removed in Release 12
public ResponseEntity<List<RestOutputCmHandle>> searchCmHandles(
final CmHandleQueryParameters cmHandleQueryParameters) {
final CmHandleQueryApiParameters cmHandleQueryApiParameters =
* !!! remove it after the old condition removed !!!
* it only works for module names
*
+ * @deprecated this method will be removed in Release 12 (No Name know yet)
+ *
* @param cmHandleQueryParameters the original input parameter
*/
- @Deprecated //this method wil be removed in Release 12 (No Name know yet)
+ @Deprecated
public CmHandleQueryApiParameters mapOldConditionProperties(
final CmHandleQueryParameters cmHandleQueryParameters) {
final CmHandleQueryApiParameters cmHandleQueryApiParameters =
package org.onap.cps.ncmp.api;
import java.util.Collection;
-import org.onap.cps.spi.model.CmHandleQueryParameters;
+import org.onap.cps.spi.model.CmHandleQueryServiceParameters;
import org.onap.cps.spi.model.DataNode;
public interface NetworkCmProxyCmHandlerQueryService {
/**
* Query and return cm handles that match the given query parameters.
*
- * @param cmHandleQueryParameters the cm handle query parameters
+ * @param cmHandleQueryServiceParameters the cm handle query parameters
* @return collection of cm handles
*/
- Collection<DataNode> queryCmHandles(CmHandleQueryParameters cmHandleQueryParameters);
+ Collection<DataNode> queryCmHandles(CmHandleQueryServiceParameters cmHandleQueryServiceParameters);
}
import org.onap.cps.spi.CpsAdminPersistenceService;
import org.onap.cps.spi.CpsDataPersistenceService;
import org.onap.cps.spi.model.Anchor;
-import org.onap.cps.spi.model.CmHandleQueryParameters;
+import org.onap.cps.spi.model.CmHandleQueryServiceParameters;
import org.onap.cps.spi.model.ConditionProperties;
import org.onap.cps.spi.model.DataNode;
import org.onap.cps.spi.model.DataNodeIdentifier;
/**
* Query and return cm handles that match the given query parameters.
*
- * @param cmHandleQueryParameters the cm handle query parameters
+ * @param cmHandleQueryServiceParameters the cm handle query parameters
* @return collection of cm handles
*/
@Override
- public Collection<DataNode> queryCmHandles(final CmHandleQueryParameters cmHandleQueryParameters) {
+ public Collection<DataNode> queryCmHandles(final CmHandleQueryServiceParameters cmHandleQueryServiceParameters) {
- if (cmHandleQueryParameters.getCmHandleQueryParameters().isEmpty()) {
+ if (cmHandleQueryServiceParameters.getCmHandleQueryParameters().isEmpty()) {
return getAllCmHandles();
}
final Collection<DataNodeIdentifier> amalgamatedQueryResultIdentifiers = new ArrayList<>();
final Map<DataNodeIdentifier, DataNode> amalgamatedQueryResults = new HashMap<>();
- final boolean firstQuery = moduleNameQuery(cmHandleQueryParameters,
+ final boolean firstQuery = moduleNameQuery(cmHandleQueryServiceParameters,
amalgamatedQueryResultIdentifiers, amalgamatedQueryResults);
- publicPropertyQuery(cmHandleQueryParameters, amalgamatedQueryResultIdentifiers,
+ publicPropertyQuery(cmHandleQueryServiceParameters, amalgamatedQueryResultIdentifiers,
amalgamatedQueryResults, firstQuery);
final Collection<DataNode> filteredDataNodes = new ArrayList<>();
return filteredDataNodes;
}
- private void publicPropertyQuery(final CmHandleQueryParameters cmHandleQueryParameters,
+ private void publicPropertyQuery(final CmHandleQueryServiceParameters cmHandleQueryServiceParameters,
final Collection<DataNodeIdentifier> amalgamatedQueryResultIdentifiers,
final Map<DataNodeIdentifier, DataNode> amalgamatedQueryResults,
boolean firstQuery) {
for (final Map.Entry<String, String> entry :
- getPublicPropertyPairs(cmHandleQueryParameters.getCmHandleQueryParameters()).entrySet()) {
+ getPublicPropertyPairs(cmHandleQueryServiceParameters.getCmHandleQueryParameters()).entrySet()) {
final String cmHandlePath = "//public-properties[@name='" + entry.getKey() + "' " + "and @value='"
+ entry.getValue() + "']" + "/ancestor::cm-handles";
}
}
- private boolean moduleNameQuery(final CmHandleQueryParameters cmHandleQueryParameters,
+ private boolean moduleNameQuery(final CmHandleQueryServiceParameters cmHandleQueryServiceParameters,
final Collection<DataNodeIdentifier> amalgamatedQueryResultIdentifiers,
final Map<DataNodeIdentifier, DataNode> amalgamatedQueryResults) {
boolean firstQuery = true;
- if (!getModuleNames(cmHandleQueryParameters.getCmHandleQueryParameters()).isEmpty()) {
+ if (!getModuleNames(cmHandleQueryServiceParameters.getCmHandleQueryParameters()).isEmpty()) {
final Collection<Anchor> anchors = cpsAdminPersistenceService.queryAnchors("NFP-Operational",
- getModuleNames(cmHandleQueryParameters.getCmHandleQueryParameters()));
+ getModuleNames(cmHandleQueryServiceParameters.getCmHandleQueryParameters()));
anchors.forEach(anchor -> {
final List<DataNode> dataNodes = getDataNodes("//cm-handles[@id='" + anchor.getName() + "']");
dataNodes.parallelStream().forEach(dataNode -> {
import org.onap.cps.spi.exceptions.DataNodeNotFoundException;
import org.onap.cps.spi.exceptions.DataValidationException;
import org.onap.cps.spi.exceptions.SchemaSetNotFoundException;
-import org.onap.cps.spi.model.CmHandleQueryParameters;
+import org.onap.cps.spi.model.CmHandleQueryServiceParameters;
import org.onap.cps.spi.model.ModuleReference;
import org.onap.cps.utils.CpsValidator;
import org.onap.cps.utils.JsonObjectMapper;
@Override
public Set<NcmpServiceCmHandle> executeCmHandleSearch(final CmHandleQueryApiParameters cmHandleQueryApiParameters) {
- final CmHandleQueryParameters cmHandleQueryParameters = jsonObjectMapper.convertToValueType(
- cmHandleQueryApiParameters, CmHandleQueryParameters.class);
+ final CmHandleQueryServiceParameters cmHandleQueryServiceParameters = jsonObjectMapper.convertToValueType(
+ cmHandleQueryApiParameters, CmHandleQueryServiceParameters.class);
- validateCmHandleQueryParameters(cmHandleQueryParameters);
+ validateCmHandleQueryParameters(cmHandleQueryServiceParameters);
- return networkCmProxyCmHandlerQueryService.queryCmHandles(cmHandleQueryParameters).stream()
+ return networkCmProxyCmHandlerQueryService.queryCmHandles(cmHandleQueryServiceParameters).stream()
.map(dataNode -> YangDataConverter
.convertCmHandleToYangModel(dataNode, dataNode.getLeaves().get("id").toString()))
.map(YangDataConverter::convertYangModelCmHandleToNcmpServiceCmHandle).collect(Collectors.toSet());
import org.onap.cps.spi.CpsAdminPersistenceService
import org.onap.cps.spi.CpsDataPersistenceService
import org.onap.cps.spi.model.Anchor
-import org.onap.cps.spi.model.CmHandleQueryParameters
+import org.onap.cps.spi.model.CmHandleQueryServiceParameters
import org.onap.cps.spi.model.ConditionProperties
import org.onap.cps.spi.model.DataNode
import org.onap.cps.utils.JsonObjectMapper
def 'Retrieve cm handles with public properties when #scenario.'() {
given: 'a condition property'
- def cmHandleQueryParameters = new CmHandleQueryParameters()
+ def cmHandleQueryParameters = new CmHandleQueryServiceParameters()
def conditionProperties = new ConditionProperties()
conditionProperties.conditionName = 'hasAllProperties'
conditionProperties.conditionParameters = publicProperties
def 'Retrieve cm handles with module names when #scenario.'() {
given: 'a condition property'
- def cmHandleQueryParameters = new CmHandleQueryParameters()
+ def cmHandleQueryParameters = new CmHandleQueryServiceParameters()
def conditionProperties = new ConditionProperties()
conditionProperties.conditionName = 'hasAllModules'
conditionProperties.conditionParameters = moduleNames
def 'Retrieve cm handles with combined queries when #scenario.'() {
given: 'condition properties'
- def cmHandleQueryParameters = new CmHandleQueryParameters()
+ def cmHandleQueryParameters = new CmHandleQueryServiceParameters()
def conditionProperties1 = new ConditionProperties()
conditionProperties1.conditionName = 'hasAllProperties'
conditionProperties1.conditionParameters = publicProperties
given: 'mock services'
mockResponses()
when: 'the service is invoked'
- def cmHandleQueryParameters = new CmHandleQueryParameters()
+ def cmHandleQueryParameters = new CmHandleQueryServiceParameters()
def returnedCmHandles = objectUnderTest.queryCmHandles(cmHandleQueryParameters)
then: 'the correct expected cm handles are returned'
returnedCmHandles.stream().map(d -> d.leaves.get('id').toString()).collect(Collectors.toList()) == ['PNFDemo', 'PNFDemo2', 'PNFDemo3', 'PNFDemo4']
import org.onap.cps.ncmp.api.models.NcmpServiceCmHandle
import org.onap.cps.spi.exceptions.DataValidationException
import org.onap.cps.ncmp.api.inventory.sync.ModuleSyncService
-import org.onap.cps.spi.model.CmHandleQueryParameters
+import org.onap.cps.spi.model.CmHandleQueryServiceParameters
import org.onap.cps.spi.model.ConditionProperties
import spock.lang.Shared
conditionApiProperties.conditionParameters = [[moduleName: 'module-name-1']]
cmHandleQueryApiParameters.cmHandleQueryParameters = [conditionApiProperties]
and: 'valid CmHandleQueryParameters input'
- def cmHandleQueryParameters = new CmHandleQueryParameters()
+ def cmHandleQueryParameters = new CmHandleQueryServiceParameters()
def conditionProperties = new ConditionProperties()
conditionProperties.conditionName = 'hasAllModules'
conditionProperties.conditionParameters = [[moduleName: 'module-name-1']]
@Getter
@EqualsAndHashCode
@JsonInclude(Include.NON_EMPTY)
-public class CmHandleQueryParameters {
+public class CmHandleQueryServiceParameters {
@JsonProperty("cmHandleQueryParameters")
@Valid
private List<ConditionProperties> cmHandleQueryParameters = Collections.emptyList();
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.onap.cps.spi.exceptions.DataValidationException;
-import org.onap.cps.spi.model.CmHandleQueryParameters;
+import org.onap.cps.spi.model.CmHandleQueryServiceParameters;
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class CmHandleQueryRestParametersValidator {
/**
* Validate cm handle query parameters.
- * @param cmHandleQueryParameters name of data to be validated
+ * @param cmHandleQueryServiceParameters name of data to be validated
*/
- public static void validateCmHandleQueryParameters(final CmHandleQueryParameters cmHandleQueryParameters) {
- cmHandleQueryParameters.getCmHandleQueryParameters().forEach(
+ public static void validateCmHandleQueryParameters(
+ final CmHandleQueryServiceParameters cmHandleQueryServiceParameters) {
+ cmHandleQueryServiceParameters.getCmHandleQueryParameters().forEach(
conditionApiProperty -> {
if (Strings.isNullOrEmpty(conditionApiProperty.getConditionName())) {
throwDataValidationException("Missing 'conditionName' - please supply a valid name.");
"Empty 'conditionsParameters' - please supply a valid condition parameter.");
}
conditionApiProperty.getConditionParameters().forEach(
- conditionParameter -> {
- if (conditionParameter.isEmpty()) {
- throwDataValidationException(
- "Empty 'conditionsParameter' - please supply a valid condition parameter.");
- }
- if (conditionParameter.size() > 1) {
- throwDataValidationException("Too many name in one 'conditionsParameter' -"
- + " please supply one name in one condition parameter.");
- }
- conditionParameter.forEach((key, value) -> {
- if (Strings.isNullOrEmpty(key)) {
- throwDataValidationException(
- "Missing 'conditionsParameterName' - please supply a valid name.");
- }
- });
- }
+ CmHandleQueryRestParametersValidator::validateConditionParameter
);
}
);
}
+ private static void validateConditionParameter(final Map<String, String> conditionParameter) {
+ if (conditionParameter.isEmpty()) {
+ throwDataValidationException(
+ "Empty 'conditionsParameter' - please supply a valid condition parameter.");
+ }
+ if (conditionParameter.size() > 1) {
+ throwDataValidationException("Too many name in one 'conditionsParameter' -"
+ + " please supply one name in one condition parameter.");
+ }
+ conditionParameter.forEach((key, value) -> {
+ if (Strings.isNullOrEmpty(key)) {
+ throwDataValidationException(
+ "Missing 'conditionsParameterName' - please supply a valid name.");
+ }
+ });
+ }
+
/**
* Validate module name condition properties.
* @param conditionProperty name of data to be validated
import org.onap.cps.spi.CpsAdminPersistenceService
import org.onap.cps.spi.exceptions.DataValidationException
import org.onap.cps.spi.model.Anchor
-import org.onap.cps.spi.model.CmHandleQueryParameters
import spock.lang.Specification
import java.time.OffsetDateTime
package org.onap.cps.utils
import org.onap.cps.spi.exceptions.DataValidationException
-import org.onap.cps.spi.model.CmHandleQueryParameters
+import org.onap.cps.spi.model.CmHandleQueryServiceParameters
import org.onap.cps.spi.model.ConditionProperties
import spock.lang.Specification
class CmHandleQueryRestParametersValidatorSpec extends Specification {
def 'CM Handle Query validation: empty query.'() {
given: 'a cm handle query'
- def cmHandleQueryParameters = new CmHandleQueryParameters()
+ def cmHandleQueryParameters = new CmHandleQueryServiceParameters()
when: 'validator is invoked'
CmHandleQueryRestParametersValidator.validateCmHandleQueryParameters(cmHandleQueryParameters)
then: 'data validation exception is not thrown'
def 'CM Handle Query validation: normal query.'() {
given: 'a cm handle query'
- def cmHandleQueryParameters = new CmHandleQueryParameters()
+ def cmHandleQueryParameters = new CmHandleQueryServiceParameters()
def condition = new ConditionProperties()
condition.conditionName = 'hasAllProperties'
condition.conditionParameters = [[key1:'value1'],[key2:'value2']]
def 'CM Handle Query validation: #scenario.'() {
given: 'a cm handle query'
- def cmHandleQueryParameters = new CmHandleQueryParameters()
+ def cmHandleQueryParameters = new CmHandleQueryServiceParameters()
def condition = new ConditionProperties()
condition.conditionName = conditionName
condition.conditionParameters = conditionParameters