diff options
author | Benjamin, Max (mb388a) <mb388a@us.att.com> | 2018-07-30 15:56:09 -0400 |
---|---|---|
committer | Benjamin, Max (mb388a) <mb388a@us.att.com> | 2018-07-31 11:09:25 -0400 |
commit | 5a6a6de6f1a26a1897e4917a0df613e25a24eb70 (patch) | |
tree | 59a968f27b4b603aacc9d5e7b51fb598aeec5321 /common/src/main/java | |
parent | b6dc38501f3b746426b42d9de4cc883d894149e8 (diff) |
Containerization feature of SO
Change-Id: I95381232eeefcd247a66a5cec370a8ce1c288e18
Issue-ID: SO-670
Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
Diffstat (limited to 'common/src/main/java')
-rw-r--r-- | common/src/main/java/org/onap/so/client/DefaultProperties.java | 42 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/HttpClient.java | 53 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/PreconditionFailedException.java (renamed from common/src/main/java/org/openecomp/mso/client/PreconditionFailedException.java) | 6 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/ResponseExceptionMapper.java (renamed from common/src/main/java/org/openecomp/mso/client/ResponseExceptionMapper.java) | 35 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/ResponseExceptionMapperImpl.java (renamed from common/src/main/java/org/openecomp/mso/client/ResponseExceptionMapperImpl.java) | 16 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/RestClient.java | 320 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/RestClientSSL.java (renamed from common/src/main/java/org/openecomp/mso/client/policy/RestClientSSL.java) | 41 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/RestProperties.java (renamed from common/src/main/java/org/openecomp/mso/client/RestProperties.java) | 15 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/RestPropertiesLoader.java (renamed from common/src/main/java/org/openecomp/mso/client/RestPropertiesLoader.java) | 18 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/RestRequest.java | 91 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/AAIClient.java | 62 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/AAIClientResponseExceptionMapper.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/AAIClientResponseExceptionMapper.java) | 34 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/AAICommonObjectMapperPatchProvider.java | 35 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/AAICommonObjectMapperProvider.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/AAICommonObjectMapperProvider.java) | 16 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/AAIConfigurationClient.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/AAIConfigurationClient.java) | 35 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/AAIErrorFormatter.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/AAIErrorFormatter.java) | 11 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/AAINamespaceConstants.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/AAINamespaceConstants.java) | 6 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/AAIObjectPlurals.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/AAIObjectPlurals.java) | 26 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/AAIObjectType.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/AAIObjectType.java) | 166 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/AAIProperties.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/AAIProperties.java) | 8 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/AAIQueryClient.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/AAIQueryClient.java) | 50 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/AAIQueryObjectMapperProvider.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/AAIQueryObjectMapperProvider.java) | 7 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/AAIResourcesClient.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/AAIResourcesClient.java) | 100 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/AAIResourcesObjectMapperProvider.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/AAIResourcesObjectMapperProvider.java) | 8 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/AAIRestClient.java | 131 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/AAIRestClientI.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/AAIRestClientI.java) | 11 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/AAIRestClientImpl.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/AAIRestClientImpl.java) | 42 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/AAISubgraphType.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/AAISubgraphType.java) | 8 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/AAITransactionalClient.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/AAITransactionalClient.java) | 43 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/AAIUpdator.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/AAIUpdator.java) | 6 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/AAIUpdatorImpl.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/AAIUpdatorImpl.java) | 8 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/AAIValidator.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/AAIValidator.java) | 6 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/AAIValidatorImpl.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/AAIValidatorImpl.java) | 8 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/AAIVersion.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/AAIVersion.java) | 13 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/EmptyStringToNullSerializer.java | 52 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/entities/AAIEntity.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/entities/AAIEntity.java) | 6 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/entities/AAIEntityObject.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/entities/AAIEntityObject.java) | 8 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/entities/AAIError.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/entities/AAIError.java) | 6 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/entities/AAIResultWrapper.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/entities/AAIResultWrapper.java) | 38 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/entities/Configuration.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/entities/Configuration.java) | 7 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/entities/CustomQuery.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/entities/CustomQuery.java) | 8 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/entities/Relationships.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/entities/Relationships.java) | 30 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/entities/RequestError.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/entities/RequestError.java) | 6 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/entities/Results.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/entities/Results.java) | 6 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/entities/ServiceException.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/entities/ServiceException.java) | 6 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/entities/bulkprocess/OperationBody.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/entities/bulkprocess/OperationBody.java) | 6 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/entities/bulkprocess/Transaction.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/entities/bulkprocess/Transaction.java) | 6 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/entities/bulkprocess/Transactions.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/entities/bulkprocess/Transactions.java) | 8 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/entities/uri/AAIResourceUri.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/entities/uri/AAIResourceUri.java) | 22 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/entities/uri/AAISimpleUri.java | 111 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/entities/uri/AAIUri.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/entities/uri/AAIUri.java) | 30 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/entities/uri/AAIUriFactory.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/entities/uri/AAIUriFactory.java) | 29 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/entities/uri/NodesUri.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/entities/uri/NodesUri.java) | 19 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/entities/uri/ServiceInstanceUri.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/entities/uri/ServiceInstanceUri.java) | 81 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/objects/AAIOperationalEnvironment.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/objects/AAIOperationalEnvironment.java) | 6 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/aai/objects/AAIServiceInstance.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/objects/AAIServiceInstance.java) | 240 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/adapter/rest/AdapterRestClient.java | 79 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/adapter/rest/AdapterRestProperties.java | 29 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/defaultproperties/DefaultDmaapPropertiesImpl.java (renamed from common/src/main/java/org/openecomp/mso/client/defaultproperties/DefaultDmaapPropertiesImpl.java) | 8 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/defaultproperties/PolicyRestPropertiesImpl.java (renamed from common/src/main/java/org/openecomp/mso/client/defaultproperties/PolicyRestPropertiesImpl.java) | 14 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/dmaap/Consumer.java (renamed from common/src/main/java/org/openecomp/mso/client/dmaap/Consumer.java) | 6 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/dmaap/DmaapClient.java (renamed from common/src/main/java/org/openecomp/mso/client/dmaap/DmaapClient.java) | 19 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/dmaap/DmaapConsumer.java (renamed from common/src/main/java/org/openecomp/mso/client/dmaap/DmaapConsumer.java) | 20 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/dmaap/DmaapProperties.java (renamed from common/src/main/java/org/openecomp/mso/client/dmaap/DmaapProperties.java) | 6 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/dmaap/DmaapPropertiesLoader.java (renamed from common/src/main/java/org/openecomp/mso/client/dmaap/DmaapPropertiesLoader.java) | 19 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/dmaap/DmaapPublisher.java (renamed from common/src/main/java/org/openecomp/mso/client/dmaap/DmaapPublisher.java) | 12 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/dmaap/Publisher.java (renamed from common/src/main/java/org/openecomp/mso/client/dmaap/Publisher.java) | 6 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/dmaap/exceptions/DMaaPConsumerFailure.java (renamed from common/src/main/java/org/openecomp/mso/client/dmaap/exceptions/DMaaPConsumerFailure.java) | 6 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/dmaap/exceptions/ExceededMaximumPollingTime.java (renamed from common/src/main/java/org/openecomp/mso/client/dmaap/exceptions/ExceededMaximumPollingTime.java) | 6 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/dmaap/rest/DMaaPRestClient.java (renamed from common/src/main/java/org/openecomp/mso/client/dmaap/rest/DMaaPRestClient.java) | 32 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/dmaap/rest/PropertiesBean.java (renamed from common/src/main/java/org/openecomp/mso/client/dmaap/rest/PropertiesBean.java) | 6 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/dmaap/rest/RestConsumer.java (renamed from common/src/main/java/org/openecomp/mso/client/dmaap/rest/RestConsumer.java) | 13 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/dmaap/rest/RestPublisher.java (renamed from common/src/main/java/org/openecomp/mso/client/dmaap/rest/RestPublisher.java) | 11 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/exceptions/SDNOException.java (renamed from common/src/main/java/org/openecomp/mso/client/exceptions/SDNOException.java) | 6 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/graphinventory/Format.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/Format.java) | 8 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryClient.java | 48 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryObjectName.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/AAIObjectName.java) | 8 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryObjectPlurals.java | 25 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryObjectType.java | 25 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryObjectUriPartial.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/AAIObjectUriPartial.java) | 8 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryObjectUriTemplate.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/AAIObjectUriTemplate.java) | 8 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryVersion.java | 25 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/graphinventory/entities/uri/Depth.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/entities/uri/Depth.java) | 9 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/graphinventory/entities/uri/GraphInventoryResourceUri.java | 44 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/graphinventory/entities/uri/GraphInventoryUri.java | 60 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/graphinventory/entities/uri/SimpleUri.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/entities/uri/SimpleUri.java) | 75 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/graphinventory/entities/uri/parsers/UriParser.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/entities/uri/parsers/UriParser.java) | 8 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/graphinventory/entities/uri/parsers/UriParserSpringImpl.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/entities/uri/parsers/UriParserSpringImpl.java) | 8 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/graphinventory/exceptions/BulkProcessFailed.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/exceptions/BulkProcessFailed.java) | 6 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/graphinventory/exceptions/GraphInventoryPatchDepthExceededException.java | 31 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/graphinventory/exceptions/GraphInventoryPayloadException.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/exceptions/AAIPayloadException.java) | 14 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/graphinventory/exceptions/GraphInventoryUriComputationException.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/exceptions/AAIUriComputationException.java) | 12 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/graphinventory/exceptions/GraphInventoryUriNotFoundException.java (renamed from common/src/main/java/org/openecomp/mso/client/aai/exceptions/AAIUriNotFoundException.java) | 10 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/grm/GRMAction.java (renamed from common/src/main/java/org/openecomp/mso/client/grm/GRMAction.java) | 6 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/grm/GRMClient.java (renamed from common/src/main/java/org/openecomp/mso/client/grm/GRMClient.java) | 18 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/grm/GRMDefaultPropertiesImpl.java (renamed from common/src/main/java/org/openecomp/mso/client/grm/GRMDefaultPropertiesImpl.java) | 8 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/grm/GRMProperties.java (renamed from common/src/main/java/org/openecomp/mso/client/grm/GRMProperties.java) | 8 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/grm/GRMPropertiesLoader.java (renamed from common/src/main/java/org/openecomp/mso/client/grm/GRMPropertiesLoader.java) | 6 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/grm/GRMRestClient.java (renamed from common/src/main/java/org/openecomp/mso/client/grm/GRMRestClient.java) | 31 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/grm/GRMRestInvoker.java (renamed from common/src/main/java/org/openecomp/mso/client/grm/GRMRestInvoker.java) | 10 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/grm/beans/OperationalInfo.java (renamed from common/src/main/java/org/openecomp/mso/client/grm/beans/OperationalInfo.java) | 16 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/grm/beans/Property.java (renamed from common/src/main/java/org/openecomp/mso/client/grm/beans/Property.java) | 16 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/grm/beans/ServiceEndPoint.java (renamed from common/src/main/java/org/openecomp/mso/client/grm/beans/ServiceEndPoint.java) | 6 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/grm/beans/ServiceEndPointList.java (renamed from common/src/main/java/org/openecomp/mso/client/grm/beans/ServiceEndPointList.java) | 8 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/grm/beans/ServiceEndPointLookup.java (renamed from common/src/main/java/org/openecomp/mso/client/grm/beans/ServiceEndPointLookup.java) | 6 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/grm/beans/ServiceEndPointLookupRequest.java (renamed from common/src/main/java/org/openecomp/mso/client/grm/beans/ServiceEndPointLookupRequest.java) | 13 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/grm/beans/ServiceEndPointRequest.java (renamed from common/src/main/java/org/openecomp/mso/client/grm/beans/ServiceEndPointRequest.java) | 13 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/grm/beans/Status.java (renamed from common/src/main/java/org/openecomp/mso/client/grm/beans/Status.java) | 16 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/grm/beans/Version.java (renamed from common/src/main/java/org/openecomp/mso/client/grm/beans/Version.java) | 16 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/grm/beans/VersionLookup.java (renamed from common/src/main/java/org/openecomp/mso/client/grm/beans/VersionLookup.java) | 8 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/grm/exceptions/GRMClientCallFailed.java (renamed from common/src/main/java/org/openecomp/mso/client/grm/exceptions/GRMClientCallFailed.java) | 6 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/policy/CommonObjectMapperProvider.java (renamed from common/src/main/java/org/openecomp/mso/client/policy/CommonObjectMapperProvider.java) | 15 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/policy/DecisionAttributes.java (renamed from common/src/main/java/org/openecomp/mso/client/policy/DecisionAttributes.java) | 6 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/policy/JettisonStyleMapperProvider.java (renamed from common/src/main/java/org/openecomp/mso/client/policy/JettisonStyleMapperProvider.java) | 22 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/policy/LoggingFilter.java (renamed from common/src/main/java/org/openecomp/mso/client/policy/LoggingFilter.java) | 10 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/policy/PolicyClient.java (renamed from common/src/main/java/org/openecomp/mso/client/policy/PolicyClient.java) | 11 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/policy/PolicyClientImpl.java (renamed from common/src/main/java/org/openecomp/mso/client/policy/PolicyClientImpl.java) | 48 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/policy/PolicyRestClient.java (renamed from common/src/main/java/org/openecomp/mso/client/policy/PolicyRestClient.java) | 38 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/policy/PolicyRestProperties.java (renamed from common/src/main/java/org/openecomp/mso/client/policy/PolicyRestProperties.java) | 12 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/policy/entities/AllowedTreatments.java (renamed from common/src/main/java/org/openecomp/mso/client/policy/entities/AllowedTreatments.java) | 8 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/policy/entities/Bbid.java (renamed from common/src/main/java/org/openecomp/mso/client/policy/entities/Bbid.java) | 138 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/policy/entities/DecisionAttributes.java (renamed from common/src/main/java/org/openecomp/mso/client/policy/entities/DecisionAttributes.java) | 52 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/policy/entities/DictionaryData.java (renamed from common/src/main/java/org/openecomp/mso/client/policy/entities/DictionaryData.java) | 174 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/policy/entities/DictionaryItemsRequest.java (renamed from common/src/main/java/org/openecomp/mso/client/policy/entities/DictionaryItemsRequest.java) | 7 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/policy/entities/DictionaryJson.java (renamed from common/src/main/java/org/openecomp/mso/client/policy/entities/DictionaryJson.java) | 71 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/policy/entities/Id.java (renamed from common/src/main/java/org/openecomp/mso/client/policy/entities/Id.java) | 102 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/policy/entities/PolicyDecision.java (renamed from common/src/main/java/org/openecomp/mso/client/policy/PolicyDecision.java) | 6 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/policy/entities/PolicyDecisionRequest.java (renamed from common/src/main/java/org/openecomp/mso/client/policy/PolicyDecisionRequest.java) | 6 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/policy/entities/PolicyServiceType.java (renamed from common/src/main/java/org/openecomp/mso/client/policy/entities/PolicyServiceType.java) | 6 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/policy/entities/Treatments.java (renamed from common/src/main/java/org/openecomp/mso/client/policy/entities/Treatments.java) | 138 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/policy/entities/Workstep.java (renamed from common/src/main/java/org/openecomp/mso/client/policy/entities/Workstep.java) | 139 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/ruby/RubyClient.java (renamed from common/src/main/java/org/openecomp/mso/client/ruby/RubyClient.java) | 18 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/ruby/beans/Event.java (renamed from common/src/main/java/org/openecomp/mso/client/ruby/beans/Event.java) | 8 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/ruby/beans/MsoRequest.java (renamed from common/src/main/java/org/openecomp/mso/client/ruby/beans/MsoRequest.java) | 8 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/ruby/beans/Ruby.java (renamed from common/src/main/java/org/openecomp/mso/client/ruby/beans/Ruby.java) | 7 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/ruby/dmaap/RubyCreateTicketRequestPublisher.java (renamed from common/src/main/java/org/openecomp/mso/client/ruby/dmaap/RubyCreateTicketRequestPublisher.java) | 8 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/sdno/SDNOHealthCheckClient.java (renamed from common/src/main/java/org/openecomp/mso/client/sdno/SDNOHealthCheckClient.java) | 24 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/sdno/SDNOValidator.java (renamed from common/src/main/java/org/openecomp/mso/client/sdno/SDNOValidator.java) | 25 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/sdno/SDNOValidatorImpl.java (renamed from common/src/main/java/org/openecomp/mso/client/sdno/SDNOValidatorImpl.java) | 56 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/sdno/beans/AAIParamList.java (renamed from common/src/main/java/org/openecomp/mso/client/sdno/beans/AAIParamList.java) | 8 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/sdno/beans/Body.java (renamed from common/src/main/java/org/openecomp/mso/client/sdno/beans/Body.java) | 8 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/sdno/beans/Input.java (renamed from common/src/main/java/org/openecomp/mso/client/sdno/beans/Input.java) | 8 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/sdno/beans/RequestHdCustom.java (renamed from common/src/main/java/org/openecomp/mso/client/sdno/beans/RequestHdCustom.java) | 31 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/sdno/beans/RequestHealthDiagnostic.java (renamed from common/src/main/java/org/openecomp/mso/client/sdno/beans/RequestHealthDiagnostic.java) | 26 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/sdno/beans/ResultInfo.java (renamed from common/src/main/java/org/openecomp/mso/client/sdno/beans/ResultInfo.java) | 8 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/sdno/beans/SDNO.java (renamed from common/src/main/java/org/openecomp/mso/client/sdno/beans/SDNO.java) | 8 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/sdno/dmaap/SDNOHealthCheckDmaapConsumer.java (renamed from common/src/main/java/org/openecomp/mso/client/sdno/dmaap/SDNOHealthCheckDmaapConsumer.java) | 14 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/client/sdno/dmaap/SDNOHealthCheckDmaapPublisher.java (renamed from common/src/main/java/org/openecomp/mso/client/sdno/dmaap/SDNOHealthCheckDmaapPublisher.java) | 8 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/entity/MsoRequest.java (renamed from common/src/main/java/org/openecomp/mso/entity/MsoRequest.java) | 9 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/entity/package-info.java (renamed from common/src/main/java/org/openecomp/mso/entity/package-info.java) | 2 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/exceptions/MarshallerException.java (renamed from common/src/main/java/org/openecomp/mso/utils/RootIgnoringObjectMapper.java) | 40 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/exceptions/ValidationException.java | 54 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/jsonpath/JsonPathUtil.java (renamed from common/src/main/java/org/openecomp/mso/jsonpath/JsonPathUtil.java) | 13 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/logger/LoggerStartupListener.java | 87 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/logger/MessageEnum.java (renamed from common/src/main/java/org/openecomp/mso/logger/MessageEnum.java) | 456 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/logger/MsoAlarmLogger.java (renamed from common/src/main/java/org/openecomp/mso/logger/MsoAlarmLogger.java) | 8 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/logger/MsoLogger.java (renamed from common/src/main/java/org/openecomp/mso/logger/MsoLogger.java) | 527 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/logging/jaxrs/filter/jersey/JaxRsClientLogging.java | 135 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/logging/jaxrs/filter/jersey/JaxRsFilterLogging.java | 180 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/logging/jaxrs/filter/jersey/SpringClientFilter.java | 67 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/openpojo/rules/CustomSetterMustExistRule.java (renamed from common/src/main/java/org/openecomp/mso/openpojo/rules/CustomSetterMustExistRule.java) | 8 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/openpojo/rules/EqualsAndHashCodeTester.java (renamed from common/src/main/java/org/openecomp/mso/openpojo/rules/EqualsAndHashCodeTester.java) | 6 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/openpojo/rules/HasAnnotationMatcher.java (renamed from common/src/main/java/org/openecomp/mso/openpojo/rules/HasAnnotationMatcher.java) | 20 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/openpojo/rules/HasAnnotationPropertyWithValueMatcher.java (renamed from common/src/main/java/org/openecomp/mso/openpojo/rules/HasAnnotationPropertyWithValueMatcher.java) | 8 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/openpojo/rules/HasEqualsAndHashCodeRule.java (renamed from common/src/main/java/org/openecomp/mso/openpojo/rules/HasEqualsAndHashCodeRule.java) | 4 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/openpojo/rules/HasToStringRule.java (renamed from common/src/main/java/org/openecomp/mso/openpojo/rules/HasToStringRule.java) | 4 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/openpojo/rules/ToStringTester.java (renamed from common/src/main/java/org/openecomp/mso/openpojo/rules/ToStringTester.java) | 4 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/properties/MsoDatabaseException.java (renamed from common/src/main/java/org/openecomp/mso/properties/MsoDatabaseException.java) | 2 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/security/MSOSpringFirewall.java | 34 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/security/UserCredentials.java | 53 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/security/UserDetailsServiceImpl.java | 56 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/security/WebSecurityConfig.java | 76 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/serviceinstancebeans/CloudConfiguration.java (renamed from common/src/main/java/org/openecomp/mso/serviceinstancebeans/CloudConfiguration.java) | 6 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/serviceinstancebeans/ExceptionType.java (renamed from common/src/main/java/org/openecomp/mso/serviceinstancebeans/ExceptionType.java) | 13 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/serviceinstancebeans/GetOrchestrationListResponse.java (renamed from common/src/main/java/org/openecomp/mso/serviceinstancebeans/GetOrchestrationListResponse.java) | 4 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/serviceinstancebeans/GetOrchestrationResponse.java (renamed from common/src/main/java/org/openecomp/mso/serviceinstancebeans/GetOrchestrationResponse.java) | 2 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/serviceinstancebeans/InstanceDirection.java (renamed from common/src/main/java/org/openecomp/mso/serviceinstancebeans/InstanceDirection.java) | 6 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/serviceinstancebeans/InstanceReferences.java (renamed from common/src/main/java/org/openecomp/mso/serviceinstancebeans/InstanceReferences.java) | 8 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/serviceinstancebeans/LineOfBusiness.java (renamed from common/src/main/java/org/openecomp/mso/serviceinstancebeans/LineOfBusiness.java) | 6 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/serviceinstancebeans/ModelInfo.java (renamed from common/src/main/java/org/openecomp/mso/serviceinstancebeans/ModelInfo.java) | 23 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/serviceinstancebeans/ModelType.java (renamed from common/src/main/java/org/openecomp/mso/serviceinstancebeans/ModelType.java) | 5 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/serviceinstancebeans/Networks.java | 98 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/serviceinstancebeans/OwningEntity.java (renamed from common/src/main/java/org/openecomp/mso/serviceinstancebeans/OwningEntity.java) | 6 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/serviceinstancebeans/Platform.java (renamed from common/src/main/java/org/openecomp/mso/serviceinstancebeans/Platform.java) | 6 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/serviceinstancebeans/PolicyException.java (renamed from common/src/main/java/org/openecomp/mso/serviceinstancebeans/PolicyException.java) | 4 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/serviceinstancebeans/Project.java (renamed from common/src/main/java/org/openecomp/mso/serviceinstancebeans/Project.java) | 6 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/serviceinstancebeans/RelatedInstance.java (renamed from common/src/main/java/org/openecomp/mso/serviceinstancebeans/RelatedInstance.java) | 4 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/serviceinstancebeans/RelatedInstanceList.java (renamed from common/src/main/java/org/openecomp/mso/serviceinstancebeans/RelatedInstanceList.java) | 6 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/serviceinstancebeans/Request.java (renamed from common/src/main/java/org/openecomp/mso/serviceinstancebeans/Request.java) | 5 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/serviceinstancebeans/RequestDetails.java (renamed from common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestDetails.java) | 33 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/serviceinstancebeans/RequestError.java (renamed from common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestError.java) | 9 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/serviceinstancebeans/RequestInfo.java (renamed from common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestInfo.java) | 6 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/serviceinstancebeans/RequestList.java (renamed from common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestList.java) | 2 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/serviceinstancebeans/RequestParameters.java (renamed from common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestParameters.java) | 75 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/serviceinstancebeans/RequestReferences.java (renamed from common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestReferences.java) | 8 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/serviceinstancebeans/RequestStatus.java (renamed from common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestStatus.java) | 6 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/serviceinstancebeans/Resources.java (renamed from common/src/main/java/org/openecomp/mso/client/policy/entities/PolicyDecisionRequest.java) | 66 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/serviceinstancebeans/Service.java | 98 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/serviceinstancebeans/ServiceException.java (renamed from common/src/main/java/org/openecomp/mso/serviceinstancebeans/ServiceException.java) | 7 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/serviceinstancebeans/ServiceInstancesRequest.java (renamed from common/src/main/java/org/openecomp/mso/serviceinstancebeans/ServiceInstancesRequest.java) | 2 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/serviceinstancebeans/ServiceInstancesResponse.java (renamed from common/src/main/java/org/openecomp/mso/serviceinstancebeans/ServiceInstancesResponse.java) | 2 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/serviceinstancebeans/SubscriberInfo.java (renamed from common/src/main/java/org/openecomp/mso/serviceinstancebeans/SubscriberInfo.java) | 6 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/serviceinstancebeans/VfModules.java | 99 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/serviceinstancebeans/Vnfs.java | 131 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/test/categories/SlowTests.java | 25 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/utils/CheckResults.java (renamed from common/src/main/java/org/openecomp/mso/utils/CheckResults.java) | 2 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/utils/CryptoUtils.java (renamed from common/src/main/java/org/openecomp/mso/utils/CryptoUtils.java) | 40 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/utils/TargetEntity.java (renamed from common/src/main/java/org/openecomp/mso/properties/MsoPropertiesParameters.java) | 17 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/utils/UUIDChecker.java (renamed from common/src/main/java/org/openecomp/mso/utils/UUIDChecker.java) | 12 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/utils/XmlMarshaller.java | 84 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/web/exceptions/ExceptionResponse.java (renamed from common/src/main/java/org/openecomp/mso/client/policy/entities/PolicyDecision.java) | 46 | ||||
-rw-r--r-- | common/src/main/java/org/onap/so/web/exceptions/RuntimeExceptionMapper.java | 46 | ||||
-rw-r--r-- | common/src/main/java/org/openecomp/mso/client/aai/AAIClient.java | 69 | ||||
-rw-r--r-- | common/src/main/java/org/openecomp/mso/client/aai/AAIRestClient.java | 76 | ||||
-rw-r--r-- | common/src/main/java/org/openecomp/mso/client/aai/objects/AAIOwningEntity.java | 67 | ||||
-rw-r--r-- | common/src/main/java/org/openecomp/mso/client/aai/objects/AAIProject.java | 55 | ||||
-rw-r--r-- | common/src/main/java/org/openecomp/mso/client/defaultproperties/DefaultAAIPropertiesImpl.java | 78 | ||||
-rw-r--r-- | common/src/main/java/org/openecomp/mso/client/policy/RestClient.java | 243 | ||||
-rw-r--r-- | common/src/main/java/org/openecomp/mso/db/AbstractSessionFactoryManager.java | 74 | ||||
-rw-r--r-- | common/src/main/java/org/openecomp/mso/logger/LogFilter.java | 68 | ||||
-rw-r--r-- | common/src/main/java/org/openecomp/mso/logger/MsoLogInitializer.java | 108 | ||||
-rw-r--r-- | common/src/main/java/org/openecomp/mso/logger/MsoLoggingServlet.java | 163 | ||||
-rw-r--r-- | common/src/main/java/org/openecomp/mso/properties/AbstractMsoProperties.java | 75 | ||||
-rw-r--r-- | common/src/main/java/org/openecomp/mso/properties/MsoJavaProperties.java | 228 | ||||
-rw-r--r-- | common/src/main/java/org/openecomp/mso/properties/MsoJsonProperties.java | 167 | ||||
-rw-r--r-- | common/src/main/java/org/openecomp/mso/properties/MsoPropertiesException.java | 51 | ||||
-rw-r--r-- | common/src/main/java/org/openecomp/mso/properties/MsoPropertiesFactory.java | 395 | ||||
-rw-r--r-- | common/src/main/java/org/openecomp/mso/properties/MsoPropertyInitializer.java | 87 | ||||
-rw-r--r-- | common/src/main/java/org/openecomp/mso/utils/RootIgnoringJsonDeserializer.java | 67 |
229 files changed, 5083 insertions, 4302 deletions
diff --git a/common/src/main/java/org/onap/so/client/DefaultProperties.java b/common/src/main/java/org/onap/so/client/DefaultProperties.java new file mode 100644 index 0000000000..84509ead05 --- /dev/null +++ b/common/src/main/java/org/onap/so/client/DefaultProperties.java @@ -0,0 +1,42 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.client; + +import java.net.MalformedURLException; +import java.net.URL; + +public class DefaultProperties implements RestProperties { + + private final URL url; + public DefaultProperties(URL url) { + this.url = url; + } + @Override + public URL getEndpoint() throws MalformedURLException { + return this.url; + } + + @Override + public String getSystemName() { + return RestClient.ECOMP_COMPONENT_NAME; + } + +} diff --git a/common/src/main/java/org/onap/so/client/HttpClient.java b/common/src/main/java/org/onap/so/client/HttpClient.java new file mode 100644 index 0000000000..ad13745919 --- /dev/null +++ b/common/src/main/java/org/onap/so/client/HttpClient.java @@ -0,0 +1,53 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.client; + +import java.net.URL; +import java.util.Map; +import java.util.Optional; + +import org.onap.so.utils.TargetEntity; + +public class HttpClient extends RestClient { + + private TargetEntity targetEntity; + public HttpClient(URL host, String contentType, TargetEntity targetEntity) { + super(host, contentType); + this.targetEntity = targetEntity; + + } + + @Override + public TargetEntity getTargetEntity(){ + return targetEntity; + } + + @Override + protected void initializeHeaderMap(Map<String, String> headerMap) { + + } + + @Override + protected Optional<ResponseExceptionMapper> addResponseExceptionMapper() { + return Optional.empty(); + } + +} diff --git a/common/src/main/java/org/openecomp/mso/client/PreconditionFailedException.java b/common/src/main/java/org/onap/so/client/PreconditionFailedException.java index df28baac74..4ff07a616d 100644 --- a/common/src/main/java/org/openecomp/mso/client/PreconditionFailedException.java +++ b/common/src/main/java/org/onap/so/client/PreconditionFailedException.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client; +package org.onap.so.client; import javax.ws.rs.WebApplicationException; import javax.ws.rs.core.Response; diff --git a/common/src/main/java/org/openecomp/mso/client/ResponseExceptionMapper.java b/common/src/main/java/org/onap/so/client/ResponseExceptionMapper.java index 19c178496c..31cdd50aee 100644 --- a/common/src/main/java/org/openecomp/mso/client/ResponseExceptionMapper.java +++ b/common/src/main/java/org/onap/so/client/ResponseExceptionMapper.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,10 +18,11 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client; +package org.onap.so.client; import java.io.IOException; import java.io.InputStream; +import java.io.StringWriter; import java.util.Optional; import javax.ws.rs.BadRequestException; @@ -33,24 +34,30 @@ import javax.ws.rs.NotAuthorizedException; import javax.ws.rs.NotFoundException; import javax.ws.rs.NotSupportedException; import javax.ws.rs.WebApplicationException; -import javax.ws.rs.client.ClientRequestContext; -import javax.ws.rs.client.ClientResponseContext; -import javax.ws.rs.client.ClientResponseFilter; import javax.ws.rs.core.Response; -public abstract class ResponseExceptionMapper implements ClientResponseFilter { +import org.apache.commons.io.IOUtils; - @Override - public void filter(ClientRequestContext requestContext, ClientResponseContext responseContext) throws IOException { - if (responseContext.getStatus() >= 300) { +public abstract class ResponseExceptionMapper { + + public void map(Response response) { + + response.bufferEntity(); + if (response.getStatus() >= 300) { String message = "empty message"; - if (responseContext.hasEntity()) { - Optional<String> result = this.extractMessage(responseContext.getEntityStream()); + if (response.hasEntity()) { + StringWriter writer = new StringWriter(); + try { + IOUtils.copy((InputStream)response.getEntity(), writer, "UTF-8"); + } catch (IOException e) { + writer.append("failed to read entity stream"); + } + Optional<String> result = this.extractMessage(writer.toString()); if (result.isPresent()) { message = result.get(); } } - Response.Status status = Response.Status.fromStatusCode(responseContext.getStatus()); + Response.Status status = Response.Status.fromStatusCode(response.getStatus()); WebApplicationException webAppException; switch (status) { case BAD_REQUEST: @@ -90,5 +97,5 @@ public abstract class ResponseExceptionMapper implements ClientResponseFilter { } } - public abstract Optional<String> extractMessage(InputStream stream) throws IOException; + public abstract Optional<String> extractMessage(String entity); } diff --git a/common/src/main/java/org/openecomp/mso/client/ResponseExceptionMapperImpl.java b/common/src/main/java/org/onap/so/client/ResponseExceptionMapperImpl.java index 7841d7accd..0392b49629 100644 --- a/common/src/main/java/org/openecomp/mso/client/ResponseExceptionMapperImpl.java +++ b/common/src/main/java/org/onap/so/client/ResponseExceptionMapperImpl.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,26 +18,20 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client; +package org.onap.so.client; -import java.io.IOException; -import java.io.InputStream; import java.util.Optional; import javax.annotation.Priority; import javax.ws.rs.ext.Provider; -import org.apache.commons.io.IOUtils; - @Provider @Priority(Integer.MIN_VALUE) public class ResponseExceptionMapperImpl extends ResponseExceptionMapper { @Override - public Optional<String> extractMessage(InputStream stream) throws IOException { - final String input = IOUtils.toString(stream, "UTF-8"); - IOUtils.closeQuietly(stream); - return Optional.of(input); + public Optional<String> extractMessage(String entity) { + return Optional.of(entity); } diff --git a/common/src/main/java/org/onap/so/client/RestClient.java b/common/src/main/java/org/onap/so/client/RestClient.java new file mode 100644 index 0000000000..79fd7df7ce --- /dev/null +++ b/common/src/main/java/org/onap/so/client/RestClient.java @@ -0,0 +1,320 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.client; + +import java.net.ConnectException; +import java.net.MalformedURLException; +import java.net.SocketTimeoutException; +import java.net.URI; +import java.net.URL; +import java.security.GeneralSecurityException; +import java.util.ArrayList; +import java.util.Base64; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Optional; +import java.util.concurrent.TimeUnit; +import java.util.function.Predicate; + +import javax.ws.rs.client.Client; +import javax.ws.rs.client.ClientBuilder; +import javax.ws.rs.client.Invocation.Builder; +import javax.ws.rs.client.WebTarget; +import javax.ws.rs.core.GenericType; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import javax.ws.rs.core.Response.Status; +import javax.ws.rs.core.UriBuilder; + +import org.onap.so.client.policy.CommonObjectMapperProvider; +import org.onap.so.client.policy.LoggingFilter; +import org.onap.so.logger.MsoLogger; +import org.onap.so.logging.jaxrs.filter.jersey.JaxRsClientLogging; +import org.onap.so.utils.CryptoUtils; +import org.onap.so.utils.TargetEntity; +import org.slf4j.MDC; + +import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider; + +import net.jodah.failsafe.Failsafe; +import net.jodah.failsafe.RetryPolicy; + + +public abstract class RestClient { + public static final String ECOMP_COMPONENT_NAME = "MSO"; + + private static final int MAX_PAYLOAD_SIZE = 1024 * 1024; + private WebTarget webTarget; + + protected final Map<String, String> headerMap; + protected final MsoLogger msoLogger; + protected URL host; + protected Optional<URI> path; + protected String accept; + protected String contentType; + protected String requestId; + protected JaxRsClientLogging jaxRsClientLogging; + protected RestProperties props; + + protected RestClient(RestProperties props, Optional<URI> path) { + + msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.GENERAL, RestClient.class); + this.requestId = MDC.get(MsoLogger.REQUEST_ID); + if (requestId == null) { + requestId = ""; + } + headerMap = new HashMap<>(); + try { + host = props.getEndpoint(); + } catch (MalformedURLException e) { + + throw new RuntimeException(e); + } + this.props = props; + this.path = path; + } + + protected RestClient(RestProperties props, Optional<URI> path, String accept, String contentType) { + this(props, path); + this.accept = accept; + this.contentType = contentType; + this.requestId = MDC.get(MsoLogger.REQUEST_ID); + if (requestId == null) { + requestId = ""; + } + this.props = props; + } + + protected RestClient(URL host, String contentType) { + headerMap = new HashMap<>(); + + msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.GENERAL, RestClient.class); + this.path = Optional.empty(); + this.host = host; + this.contentType = contentType; + this.requestId = MDC.get(MsoLogger.REQUEST_ID); + if (requestId == null) { + requestId = ""; + } + this.props = new DefaultProperties(host); + } + + /** + * Override method to return false to disable logging. + * + * @return true - to enable logging, false otherwise + */ + protected boolean enableLogging() { + return true; + } + + /** + * Override method to return custom value for max payload size. + * + * @return Default value for MAX_PAYLOAD_SIZE = 1024 * 1024 + */ + protected int getMaxPayloadSize() + { + return MAX_PAYLOAD_SIZE; + } + + protected Builder getBuilder() { + + if (webTarget == null) { + initializeClient(getClient()); + } + Builder builder = webTarget.request(); + initializeHeaderMap(headerMap); + + headerMap.put("X-ECOMP-RequestID", requestId); + for (Entry<String, String> entry : headerMap.entrySet()) { + builder.header(entry.getKey(), entry.getValue()); + } + return builder; + } + + protected abstract void initializeHeaderMap(Map<String, String> headerMap); + + protected Optional<ResponseExceptionMapper> addResponseExceptionMapper() { + return Optional.of(new ResponseExceptionMapperImpl()); + } + + protected CommonObjectMapperProvider getCommonObjectMapperProvider() { + return new CommonObjectMapperProvider(); + } + + /** + * Adds a basic authentication header to the request. + * @param auth the encrypted credentials + * @param key the key for decrypting the credentials + */ + protected void addBasicAuthHeader(String auth, String key) { + try { + byte[] decryptedAuth = CryptoUtils.decrypt(auth, key).getBytes(); + String authHeaderValue = "Basic " + Base64.getEncoder().encodeToString(decryptedAuth); + headerMap.put("Authorization", authHeaderValue); + } catch (GeneralSecurityException e) { + msoLogger.error(e.getMessage(), e); + } + } + + protected String getAccept() { + return accept; + } + + protected String getContentType() { + return contentType; + } + + protected String getMergeContentType() { + return "application/merge-patch+json"; + } + + protected Client getClient() { + return ClientBuilder.newBuilder().build(); + } + + protected abstract TargetEntity getTargetEntity(); + + protected void initializeClient(Client client) { + if (this.enableLogging()) { + client.register(new LoggingFilter(this.getMaxPayloadSize())); + } + CommonObjectMapperProvider provider = this.getCommonObjectMapperProvider(); + client.register(new JacksonJsonProvider(provider.getMapper())); + + jaxRsClientLogging = new JaxRsClientLogging(); + jaxRsClientLogging.setTargetService(getTargetEntity()); + client.register(jaxRsClientLogging); + + if (!path.isPresent()) { + webTarget = client.target(host.toString()); + } else { + webTarget = client.target(UriBuilder.fromUri(host + path.get().toString())); + } + if (getAccept() == null || getAccept().isEmpty()) { + this.accept = MediaType.APPLICATION_JSON; + } + if (getContentType() == null || getContentType().isEmpty()) { + this.contentType = MediaType.APPLICATION_JSON; + } + } + + protected List<Predicate<Throwable>> retryOn() { + + List<Predicate<Throwable>> result = new ArrayList<>(); + + result.add(e -> { + return e.getCause() instanceof SocketTimeoutException; + }); + result.add(e -> { + return e.getCause() instanceof ConnectException; + }); + return result; + } + + public Response get() { + return method("GET", null); + } + + public Response post(Object obj) { + return method("POST", obj); + } + + public Response patch(Object obj) { + return method("PATCH", obj); + } + + public Response put(Object obj) { + return method("PUT", obj); + } + + public Response delete() { + return method("DELETE", null); + } + + public Response delete(Object obj) { + return method("DELETE", obj); + } + + public <T> Optional<T> get(Class<T> resultClass) { + return format(method("GET", null), resultClass); + } + + public <T> Optional<T> get(GenericType<T> resultClass) { + return format(method("GET", null), resultClass); + } + + public <T> T post(Object obj, Class<T> resultClass) { + return format(method("POST", obj), resultClass).orElse(null); + } + + public <T> T patch(Object obj, Class<T> resultClass) { + return format(method("PATCH", obj), resultClass).orElse(null); + } + + public <T> T put(Object obj, Class<T> resultClass) { + return format(method("PUT", obj), resultClass).orElse(null); + } + + public <T> T delete(Class<T> resultClass) { + return format(method("DELETE", null), resultClass).orElse(null); + } + + public <T> T delete(Object obj, Class<T> resultClass) { + return format(method("DELETE", obj), resultClass).orElse(null); + } + + private Response method(String method, Object entity) { + RetryPolicy policy = new RetryPolicy(); + + List<Predicate<Throwable>> items = retryOn(); + + Predicate<Throwable> pred = items.stream().reduce(Predicate::or).orElse(x -> false); + + policy.retryOn(error -> pred.test(error)); + + policy.withDelay(this.props.getDelayBetweenRetries(), TimeUnit.MILLISECONDS) + .withMaxRetries(this.props.getRetries()); + + return Failsafe.with(policy).get(buildRequest(method, entity)); + } + + protected RestRequest buildRequest(String method, Object entity) { + return new RestRequest(this, method, entity); + } + private <T> Optional<T> format(Response response, Class<T> resultClass) { + if (this.props.mapNotFoundToEmpty() && response.getStatus() == Status.NOT_FOUND.getStatusCode()) { + return Optional.empty(); + } + return Optional.of(response.readEntity(resultClass)); + } + + private <T> Optional<T> format(Response response, GenericType<T> resultClass) { + if (this.props.mapNotFoundToEmpty() && response.getStatus() == Status.NOT_FOUND.getStatusCode()) { + return Optional.empty(); + } + return Optional.of(response.readEntity(resultClass)); + } +} diff --git a/common/src/main/java/org/openecomp/mso/client/policy/RestClientSSL.java b/common/src/main/java/org/onap/so/client/RestClientSSL.java index 6146fc373f..461bb5832c 100644 --- a/common/src/main/java/org/openecomp/mso/client/policy/RestClientSSL.java +++ b/common/src/main/java/org/onap/so/client/RestClientSSL.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,47 +18,38 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.policy; +package org.onap.so.client; import java.io.FileInputStream; -import java.io.IOException; import java.net.URI; -import java.security.NoSuchAlgorithmException; import java.security.KeyStore; +import java.security.NoSuchAlgorithmException; import java.util.Optional; -import java.util.Properties; -import java.util.UUID; import javax.net.ssl.SSLContext; import javax.ws.rs.client.Client; import javax.ws.rs.client.ClientBuilder; -import org.openecomp.mso.client.RestProperties; -import org.openecomp.mso.logger.MessageEnum; -import org.openecomp.mso.logger.MsoLogger; - public abstract class RestClientSSL extends RestClient { public static final String SSL_KEY_STORE_KEY = "javax.net.ssl.keyStore"; - public static String SSL_KEY_STORE_PASSWORD_KEY; + public static final String SSL_KEY_STORE_PASSWORD_KEY = "javax.net.ssl.keyStorePassword"; public static final String MSO_LOAD_SSL_CLIENT_KEYSTORE_KEY = "mso.load.ssl.client.keystore"; - protected RestClientSSL(RestProperties props, UUID requestId, Optional<URI> path) { - super(props, requestId, path); + protected RestClientSSL(RestProperties props, Optional<URI> path) { + super(props, path); } - protected RestClientSSL(RestProperties props, UUID requestId, Optional<URI> path, String accept, String contentType) { - super(props, requestId, path, accept, contentType); + protected RestClientSSL(RestProperties props, Optional<URI> path, String accept, String contentType) { + super(props, path, accept, contentType); } @Override protected Client getClient() { + Client client = null; - Properties keyProp = new Properties (); try { - keyProp.load (Thread.currentThread ().getContextClassLoader ().getResourceAsStream ("Policy.properties")); - SSL_KEY_STORE_PASSWORD_KEY=(String) keyProp.get ("ssl.key.store.password.key"); String loadSSLKeyStore = System.getProperty(RestClientSSL.MSO_LOAD_SSL_CLIENT_KEYSTORE_KEY); if(loadSSLKeyStore != null && loadSSLKeyStore.equalsIgnoreCase("true")) { KeyStore ks = getKeyStore(); @@ -71,22 +62,17 @@ public abstract class RestClientSSL extends RestClient { //Use default SSL context client = ClientBuilder.newBuilder().sslContext(SSLContext.getDefault()).build(); this.msoLogger.debug("RestClientSSL using default SSL context!"); - } catch (NoSuchAlgorithmException | IOException e) { - this.msoLogger.error(MessageEnum.APIH_GENERAL_EXCEPTION, "AAI", "Client init", MsoLogger.ErrorCode.UnknownError, "could not create SSL client", e); + } catch (NoSuchAlgorithmException e) { + //this.logger.error(MessageEnum.APIH_GENERAL_EXCEPTION, "AAI", "Client init", MsoLogger.ErrorCode.UnknownError, "could not create SSL client", e); throw new RuntimeException(e); } return client; } - private KeyStore getKeyStore() throws IOException { + private KeyStore getKeyStore() { KeyStore ks = null; - Properties keyProp = new Properties (); - - keyProp.load (Thread.currentThread ().getContextClassLoader ().getResourceAsStream ("Policy.properties")); - SSL_KEY_STORE_PASSWORD_KEY=(String) keyProp.get ("ssl.key.store.password.key"); char[] password = System.getProperty(RestClientSSL.SSL_KEY_STORE_PASSWORD_KEY).toCharArray(); FileInputStream fis = null; - try { ks = KeyStore.getInstance(KeyStore.getDefaultType()); fis = new FileInputStream(System.getProperty(RestClientSSL.SSL_KEY_STORE_KEY)); @@ -95,7 +81,6 @@ public abstract class RestClientSSL extends RestClient { catch(Exception e) { return null; } - finally { if (fis != null) { try { diff --git a/common/src/main/java/org/openecomp/mso/client/RestProperties.java b/common/src/main/java/org/onap/so/client/RestProperties.java index ae8862de5e..7043e89b1e 100644 --- a/common/src/main/java/org/openecomp/mso/client/RestProperties.java +++ b/common/src/main/java/org/onap/so/client/RestProperties.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client; +package org.onap.so.client; import java.net.MalformedURLException; import java.net.URL; @@ -27,4 +27,13 @@ public interface RestProperties { public URL getEndpoint() throws MalformedURLException; public String getSystemName(); + public default Integer getRetries() { + return Integer.valueOf(2); + } + public default Long getDelayBetweenRetries() { + return Long.valueOf(500); + } + public default boolean mapNotFoundToEmpty() { + return false; + } } diff --git a/common/src/main/java/org/openecomp/mso/client/RestPropertiesLoader.java b/common/src/main/java/org/onap/so/client/RestPropertiesLoader.java index 647acdfcf4..570b48ecb8 100644 --- a/common/src/main/java/org/openecomp/mso/client/RestPropertiesLoader.java +++ b/common/src/main/java/org/onap/so/client/RestPropertiesLoader.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,16 +18,21 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client; +package org.onap.so.client; import java.util.Iterator; import java.util.ServiceLoader; public class RestPropertiesLoader { - private final ServiceLoader<RestProperties> services; + /* required to make ServiceLoader thread safe */ + private static final ThreadLocal<ServiceLoader<RestProperties>> services = new ThreadLocal<ServiceLoader<RestProperties>>() { + @Override + protected ServiceLoader<RestProperties> initialValue() { + return ServiceLoader.load(RestProperties.class); + } + }; private RestPropertiesLoader() { - services = ServiceLoader.load(RestProperties.class); } private static class Helper { @@ -47,7 +52,8 @@ public class RestPropertiesLoader { private <T> T getImpl(Class<? extends RestProperties> clazz, boolean forceNewInstance) { T result = null; - Iterator<RestProperties> propertyImpls = services.iterator(); + ServiceLoader<RestProperties> loader = this.services.get(); + Iterator<RestProperties> propertyImpls = loader.iterator(); RestProperties item; while (propertyImpls.hasNext()) { item = propertyImpls.next(); diff --git a/common/src/main/java/org/onap/so/client/RestRequest.java b/common/src/main/java/org/onap/so/client/RestRequest.java new file mode 100644 index 0000000000..25bf54b643 --- /dev/null +++ b/common/src/main/java/org/onap/so/client/RestRequest.java @@ -0,0 +1,91 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.client; + +import java.util.Optional; +import java.util.concurrent.Callable; + +import javax.ws.rs.NotFoundException; +import javax.ws.rs.client.Entity; +import javax.ws.rs.core.Response; +import javax.ws.rs.core.Response.Status; + +import org.onap.so.logger.MsoLogger; + +public class RestRequest implements Callable<Response> { + + private static final MsoLogger msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.GENERAL, RestRequest.class); + + private final RestClient client; + private final String method; + private final Object entity; + + public RestRequest(RestClient client, String method, Object entity) { + this.client = client; + this.method = method; + this.entity = entity; + } + @Override + public Response call() throws Exception { + final Response response; + if ("GET".equals(method)) { + response = this.client.getBuilder().accept(this.client.getAccept()).get(); + } else if ("POST".equals(method)) { + response = this.client.getBuilder().accept(this.client.getAccept()).post(Entity.entity(entity, this.client.getContentType())); + } else if ("PATCH".equals(method)) { + response = this.client.getBuilder().header("X-HTTP-Method-Override", "PATCH").accept(this.client.getAccept()) + .post(Entity.entity(entity, this.client.getMergeContentType())); + } else if ("DELETE".equals(method)) { + if (entity == null) { + response = this.client.getBuilder().accept(this.client.getAccept()).delete(); + + } else { + response = this.client.getBuilder().header("X-HTTP-Method-Override", "DELETE").accept(this.client.getAccept()) + .post(Entity.entity(entity, this.client.getContentType())); + } + } else if ("PUT".equals(method)) { + response = this.client.getBuilder().accept(this.client.getAccept()).put(Entity.entity(entity, this.client.getContentType())); + } else { + response = Response.serverError().entity(method + " not valid").build(); + } + + Optional<ResponseExceptionMapper> mapper = this.client.addResponseExceptionMapper(); + if (mapper.isPresent()) { + try { + mapper.get().map(response); + } catch (NotFoundException e) { + if (this.client.props.mapNotFoundToEmpty()) { + msoLogger.error(e); + return response; + } else { + throw e; + } + } + } else { + if (response.getStatus() == Status.NOT_FOUND.getStatusCode() && this.client.props.mapNotFoundToEmpty()) { + return response; + } + } + + return response; + } + +} diff --git a/common/src/main/java/org/onap/so/client/aai/AAIClient.java b/common/src/main/java/org/onap/so/client/aai/AAIClient.java new file mode 100644 index 0000000000..39843b2263 --- /dev/null +++ b/common/src/main/java/org/onap/so/client/aai/AAIClient.java @@ -0,0 +1,62 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.client.aai; + +import java.net.URI; + +import javax.ws.rs.core.UriBuilder; + +import org.onap.so.client.RestClient; +import org.onap.so.client.graphinventory.GraphInventoryClient; +import org.onap.so.client.graphinventory.entities.uri.GraphInventoryUri; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public abstract class AAIClient extends GraphInventoryClient { + + private static final String AAI_ROOT = "/aai"; + protected static Logger logger = LoggerFactory.getLogger(AAIClient.class); + protected AAIVersion version; + public AAIClient() { + super(AAIProperties.class); + } + + public AAIClient(AAIVersion version) { + super(AAIProperties.class); + } + @Override + protected URI constructPath(GraphInventoryUri uri) { + + return UriBuilder.fromUri(AAI_ROOT + "/" + this.getVersion().toString() + uri.build().toString()).build(); + } + @Override + protected RestClient createClient(GraphInventoryUri uri) { + return new AAIRestClient(getRestProperties(), constructPath(uri)); + } + + protected AAIVersion getVersion() { + if (version == null) { + return this.<AAIProperties>getRestProperties().getDefaultVersion(); + } else { + return this.version; + } + } +} diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIClientResponseExceptionMapper.java b/common/src/main/java/org/onap/so/client/aai/AAIClientResponseExceptionMapper.java index 657b4c5a2c..514eab6fc4 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/AAIClientResponseExceptionMapper.java +++ b/common/src/main/java/org/onap/so/client/aai/AAIClientResponseExceptionMapper.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,44 +18,46 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai; +package org.onap.so.client.aai; import java.io.IOException; -import java.io.InputStream; import java.util.Optional; -import java.util.UUID; import javax.annotation.Priority; import javax.ws.rs.ext.Provider; -import org.openecomp.mso.client.ResponseExceptionMapper; -import org.openecomp.mso.client.aai.entities.AAIError; +import javax.annotation.Priority; +import javax.ws.rs.ext.Provider; + +import org.onap.so.client.ResponseExceptionMapper; +import org.onap.so.client.aai.entities.AAIError; +import org.onap.so.logger.MsoLogger; +import org.slf4j.MDC; -import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.databind.ObjectMapper; @Provider @Priority(Integer.MIN_VALUE) public class AAIClientResponseExceptionMapper extends ResponseExceptionMapper { - private final UUID requestId; - public AAIClientResponseExceptionMapper(UUID requestId) { - this.requestId = requestId; + private final String requestId; + public AAIClientResponseExceptionMapper() { + this.requestId = MDC.get(MsoLogger.REQUEST_ID); } @Override - public Optional<String> extractMessage(InputStream stream) throws IOException { + public Optional<String> extractMessage(String entity) { String errorString = "Error calling A&AI. Request-Id=" + this.getRequestId() + " "; try { - AAIError error = new ObjectMapper().readValue(stream, AAIError.class); + AAIError error = new ObjectMapper().readValue(entity, AAIError.class); AAIErrorFormatter formatter = new AAIErrorFormatter(error); return Optional.of(errorString + formatter.getMessage()); - } catch (JsonParseException e) { - return Optional.of(errorString); + } catch (IOException e) { + return Optional.of(errorString + entity); } } - protected UUID getRequestId() { + protected String getRequestId() { return this.requestId; } } diff --git a/common/src/main/java/org/onap/so/client/aai/AAICommonObjectMapperPatchProvider.java b/common/src/main/java/org/onap/so/client/aai/AAICommonObjectMapperPatchProvider.java new file mode 100644 index 0000000000..33c9769400 --- /dev/null +++ b/common/src/main/java/org/onap/so/client/aai/AAICommonObjectMapperPatchProvider.java @@ -0,0 +1,35 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.client.aai; + +import com.fasterxml.jackson.databind.module.SimpleModule; + +public class AAICommonObjectMapperPatchProvider extends AAICommonObjectMapperProvider { + + + public AAICommonObjectMapperPatchProvider() { + super(); + EmptyStringToNullSerializer sp = new EmptyStringToNullSerializer(); + SimpleModule emptyStringModule = new SimpleModule(); + emptyStringModule.addSerializer(String.class, sp); + mapper.registerModule(emptyStringModule); + } +} diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAICommonObjectMapperProvider.java b/common/src/main/java/org/onap/so/client/aai/AAICommonObjectMapperProvider.java index cbee903835..0e2071842f 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/AAICommonObjectMapperProvider.java +++ b/common/src/main/java/org/onap/so/client/aai/AAICommonObjectMapperProvider.java @@ -18,9 +18,9 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai; +package org.onap.so.client.aai; -import javax.ws.rs.ext.ContextResolver; +import org.onap.so.client.policy.CommonObjectMapperProvider; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; @@ -33,9 +33,7 @@ import com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector; import com.fasterxml.jackson.databind.type.TypeFactory; import com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector; -public class AAICommonObjectMapperProvider implements ContextResolver<ObjectMapper> { - - final ObjectMapper mapper; +public class AAICommonObjectMapperProvider extends CommonObjectMapperProvider { public AAICommonObjectMapperProvider() { mapper = new ObjectMapper(); @@ -51,12 +49,4 @@ public class AAICommonObjectMapperProvider implements ContextResolver<ObjectMapp mapper.setAnnotationIntrospector(AnnotationIntrospector.pair(aiJaxb, aiJackson)); } - @Override - public ObjectMapper getContext(Class<?> type) { - return mapper; - } - - public ObjectMapper getMapper() { - return mapper; - } } diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIConfigurationClient.java b/common/src/main/java/org/onap/so/client/aai/AAIConfigurationClient.java index fdeb975ad1..b29c8070c8 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/AAIConfigurationClient.java +++ b/common/src/main/java/org/onap/so/client/aai/AAIConfigurationClient.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,18 +18,18 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai; +package org.onap.so.client.aai; -import org.openecomp.mso.client.aai.entities.Configuration; -import org.openecomp.mso.client.aai.entities.uri.AAIResourceUri; -import org.openecomp.mso.client.aai.entities.uri.AAIUriFactory; -import org.openecomp.mso.serviceinstancebeans.RequestDetails; +import org.onap.so.client.aai.entities.Configuration; +import org.onap.so.client.aai.entities.uri.AAIResourceUri; +import org.onap.so.client.aai.entities.uri.AAIUriFactory; +import org.onap.so.serviceinstancebeans.RequestDetails; public class AAIConfigurationClient { private AAIResourcesClient aaiClient; - private static final String ORCHESTRATION_STATUS = "PendingCreate"; + private static final String ORCHESTRATION_STATUS = "PreCreated"; public AAIConfigurationClient() { aaiClient = new AAIResourcesClient(); @@ -37,6 +37,16 @@ public class AAIConfigurationClient { public void createConfiguration(RequestDetails requestDetails, String configurationId, String configurationType, String configurationSubType) { + + AAIResourceUri uri = getConfigurationURI(configurationId); + Configuration payload = configurePayload(requestDetails, configurationId, configurationType, configurationSubType); + + aaiClient.create(uri, payload); + } + + public Configuration configurePayload(RequestDetails requestDetails, String configurationId, String configurationType, + String configurationSubType) { + Configuration payload = new Configuration(); payload.setConfigurationId(configurationId); payload.setConfigurationType(configurationType); @@ -45,11 +55,10 @@ public class AAIConfigurationClient { payload.setModelVersionId(requestDetails.getModelInfo().getModelVersionId()); payload.setOrchestrationStatus(ORCHESTRATION_STATUS); payload.setOperationalStatus(""); - AAIResourceUri uri = getConfigurationURI(payload.getConfigurationId()); - payload.setConfigurationSelflink(uri.build().getPath()); + payload.setConfigurationSelflink(getConfigurationURI(configurationId).build().getPath()); payload.setModelCustomizationId(requestDetails.getModelInfo().getModelCustomizationId()); - - aaiClient.create(uri, payload); + + return payload; } public void deleteConfiguration(String uuid) { @@ -61,7 +70,7 @@ public class AAIConfigurationClient { } public Configuration getConfiguration(String uuid) { - return aaiClient.get(Configuration.class, getConfigurationURI(uuid)); + return aaiClient.get(Configuration.class, getConfigurationURI(uuid)).orElse(null); } public boolean configurationExists(String uuid) { diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIErrorFormatter.java b/common/src/main/java/org/onap/so/client/aai/AAIErrorFormatter.java index dd56e9712f..6b3bb545de 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/AAIErrorFormatter.java +++ b/common/src/main/java/org/onap/so/client/aai/AAIErrorFormatter.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,13 +18,12 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai; +package org.onap.so.client.aai; import java.util.List; -import java.util.Optional; -import org.openecomp.mso.client.aai.entities.AAIError; -import org.openecomp.mso.client.aai.entities.ServiceException; +import org.onap.so.client.aai.entities.AAIError; +import org.onap.so.client.aai.entities.ServiceException; public class AAIErrorFormatter { diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAINamespaceConstants.java b/common/src/main/java/org/onap/so/client/aai/AAINamespaceConstants.java index 4bdfc4d793..242fd41b19 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/AAINamespaceConstants.java +++ b/common/src/main/java/org/onap/so/client/aai/AAINamespaceConstants.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai; +package org.onap.so.client.aai; public class AAINamespaceConstants { diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIObjectPlurals.java b/common/src/main/java/org/onap/so/client/aai/AAIObjectPlurals.java index dc2831c1ed..c50653a203 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/AAIObjectPlurals.java +++ b/common/src/main/java/org/onap/so/client/aai/AAIObjectPlurals.java @@ -18,22 +18,31 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai; +package org.onap.so.client.aai; + +import org.onap.so.client.graphinventory.GraphInventoryObjectPlurals; import com.google.common.base.CaseFormat; -public enum AAIObjectPlurals implements AAIObjectName, AAIObjectUriTemplate, AAIObjectUriPartial { +public enum AAIObjectPlurals implements GraphInventoryObjectPlurals { GENERIC_VNF(AAINamespaceConstants.NETWORK, "/generic-vnfs"), - PSERVER(AAINamespaceConstants.CLOUD_INFRASTRUCTURE, "/pservers"); - + PSERVER(AAINamespaceConstants.CLOUD_INFRASTRUCTURE, "/pservers"), + P_INTERFACE(AAIObjectType.PSERVER.uriTemplate(), "/p-interfaces"), + L3_NETWORK(AAINamespaceConstants.NETWORK, "/l3-networks"), + SERVICE_SUBSCRIPTION(AAIObjectType.CUSTOMER.uriTemplate(), "/service-subscriptions"), + SERVICE_INSTANCE(AAIObjectType.SERVICE_SUBSCRIPTION.uriTemplate(), "/service-instances"), + OWNING_ENTITIES(AAINamespaceConstants.BUSINESS, "/owning-entities"), + VOLUME_GROUP(AAIObjectType.CLOUD_REGION.uriTemplate(), "/volume-groups/"); + + private final String uriTemplate; private final String partialUri; private AAIObjectPlurals(String parentUri, String partialUri) { this.uriTemplate = parentUri + partialUri; this.partialUri = partialUri; } - + @Override public String toString() { return this.uriTemplate(); @@ -55,11 +64,6 @@ public enum AAIObjectPlurals implements AAIObjectName, AAIObjectUriTemplate, AAI } @Override public String typeName(CaseFormat format) { - String enumName = this.name(); - if (this.equals(AAIObjectType.DEFAULT_CLOUD_REGION) || this.equals(AAIObjectType.DEFAULT_TENANT)) { - enumName = enumName.replace("DEFAULT_", ""); - } - - return CaseFormat.UPPER_UNDERSCORE.to(format, enumName); + return CaseFormat.UPPER_UNDERSCORE.to(format, this.name()); } } diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIObjectType.java b/common/src/main/java/org/onap/so/client/aai/AAIObjectType.java index 9026c29522..ce75b1716a 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/AAIObjectType.java +++ b/common/src/main/java/org/onap/so/client/aai/AAIObjectType.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,81 +18,87 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai;
-
-import com.google.common.base.CaseFormat;
-
-public enum AAIObjectType implements AAIObjectName, AAIObjectUriTemplate, AAIObjectUriPartial {
-
- DEFAULT_CLOUD_REGION(AAINamespaceConstants.CLOUD_INFRASTRUCTURE, "/cloud-regions/cloud-region/att-aic/{cloud-region-id}"),
- CUSTOMER(AAINamespaceConstants.BUSINESS, "/customers/customer/{global-customer-id}"),
- GENERIC_QUERY("/search", "/generic-query"),
- BULK_PROCESS("/bulkprocess", ""),
- GENERIC_VNF(AAINamespaceConstants.NETWORK, "/generic-vnfs/generic-vnf/{vnf-id}"),
- VF_MODULE(AAIObjectType.GENERIC_VNF.uriTemplate(), "/vf-modules/vf-module/{vf-module-id}"),
- L3_NETWORK(AAINamespaceConstants.NETWORK, "/l3-networks/l3-network/{network-id}"),
- NETWORK_POLICY(AAINamespaceConstants.NETWORK, "/network-policies/network-policy/{network-policy-id}"),
- NODES_QUERY("/search", "/nodes-query"),
- CUSTOM_QUERY("/query", ""),
- ROUTE_TABLE_REFERENCE(AAINamespaceConstants.NETWORK, "/route-table-references/route-table-reference/{route-table-reference-id}"),
- DEFAULT_TENANT(AAINamespaceConstants.CLOUD_INFRASTRUCTURE + "/cloud-regions/cloud-region/att-aic/AAIAIC25", "/tenants/tenant/{tenant-id}"),
- VCE(AAINamespaceConstants.NETWORK, "/vces/vce/{vnf-id}"),
- VPN_BINDING(AAINamespaceConstants.NETWORK, "/vpn-bindings/vpn-binding/{vpn-id}"),
- CONFIGURATION(AAINamespaceConstants.NETWORK, "/configurations/configuration/{configuration-id}"),
- PSERVER(AAINamespaceConstants.CLOUD_INFRASTRUCTURE, "/pservers/pserver/{hostname}"),
- SERVICE_SUBSCRIPTION(AAIObjectType.CUSTOMER.uriTemplate(), "/service-subscriptions/service-subscription/{service-type}"),
- SERVICE_INSTANCE(AAIObjectType.SERVICE_SUBSCRIPTION.uriTemplate(), "/service-instances/service-instance/{service-instance-id}"),
- PROJECT(AAINamespaceConstants.BUSINESS, "/projects/project/{id}"),
- LINE_OF_BUSINESS(AAINamespaceConstants.BUSINESS, "/lines-of-business/line-of-business/{id}"),
- PLATFORM(AAINamespaceConstants.BUSINESS, "/platforms/platform/{id}"),
- OWNING_ENTITY(AAINamespaceConstants.BUSINESS, "/owning-entities/owning-entity/{id}"),
- ALLOTTED_RESOURCE(AAIObjectType.SERVICE_INSTANCE.uriTemplate(), "/allotted-resources/allotted-resource/{id}"),
- PNF(AAINamespaceConstants.NETWORK, "/pnfs/pnf/{pnf-name}"),
- OPERATIONAL_ENVIRONMENT(AAINamespaceConstants.CLOUD_INFRASTRUCTURE, "/operational-environments/operational-environment/{operational-environment-id}"),
- CLOUD_REGION(AAINamespaceConstants.CLOUD_INFRASTRUCTURE, "/cloud-regions/cloud-region/{cloud-owner-id}/{cloud-region-id}"),
- TENANT(AAIObjectType.CLOUD_REGION.uriTemplate(), "/tenants/tenant/{tenant-id}"),
- VSERVER(AAIObjectType.TENANT.uriTemplate(), "/vservers/vserver/{vserver-id}"),
- MODEL_VER(AAINamespaceConstants.SERVICE_DESIGN_AND_CREATION + "/models/model/{model-invariant-id}", "/model-vers/model-ver/{model-version-id}"),
- TUNNEL_XCONNECT(AAIObjectType.ALLOTTED_RESOURCE.uriTemplate(), "/tunnel-xconnects/tunnel-xconnect/{id}"),
- P_INTERFACE(AAIObjectType.PSERVER.uriTemplate(), "/p-interfaces/p-interface/{interface-name}"),
- PHYSICAL_LINK(AAINamespaceConstants.NETWORK, "/physical-links/physical-link/{link-name}"),
- UNKNOWN("", "");
-
- private final String uriTemplate;
- private final String parentUri;
- private final String partialUri;
- private AAIObjectType(String parentUri, String partialUri) {
- this.parentUri = parentUri;
- this.partialUri = partialUri;
- this.uriTemplate = parentUri + partialUri;
- }
-
- @Override
- public String toString() {
- return this.uriTemplate();
- }
-
- @Override
- public String typeName() {
- return this.typeName(CaseFormat.LOWER_HYPHEN);
- }
- @Override
- public String typeName(CaseFormat format) {
- String enumName = this.name();
- if (this.equals(AAIObjectType.DEFAULT_CLOUD_REGION) || this.equals(AAIObjectType.DEFAULT_TENANT)) {
- enumName = enumName.replace("DEFAULT_", "");
- }
-
- return CaseFormat.UPPER_UNDERSCORE.to(format, enumName);
- }
-
- @Override
- public String uriTemplate() {
- return this.uriTemplate;
- }
-
- @Override
- public String partialUri() {
- return this.partialUri;
- }
-}
\ No newline at end of file +package org.onap.so.client.aai; + +import org.onap.so.client.graphinventory.GraphInventoryObjectType; + +import com.google.common.base.CaseFormat; + +public enum AAIObjectType implements GraphInventoryObjectType { + + DEFAULT_CLOUD_REGION(AAINamespaceConstants.CLOUD_INFRASTRUCTURE, "/cloud-regions/cloud-region/att-aic/{cloud-region-id}"), + CUSTOMER(AAINamespaceConstants.BUSINESS, "/customers/customer/{global-customer-id}"), + GENERIC_QUERY("/search", "/generic-query"), + BULK_PROCESS("/bulkprocess", ""), + GENERIC_VNF(AAINamespaceConstants.NETWORK, "/generic-vnfs/generic-vnf/{vnf-id}"), + VF_MODULE(AAIObjectType.GENERIC_VNF.uriTemplate(), "/vf-modules/vf-module/{vf-module-id}"), + L3_NETWORK(AAINamespaceConstants.NETWORK, "/l3-networks/l3-network/{network-id}"), + NETWORK_POLICY(AAINamespaceConstants.NETWORK, "/network-policies/network-policy/{network-policy-id}"), + NODES_QUERY("/search", "/nodes-query"), + CUSTOM_QUERY("/query", ""), + ROUTE_TABLE_REFERENCE(AAINamespaceConstants.NETWORK, "/route-table-references/route-table-reference/{route-table-reference-id}"), + DEFAULT_TENANT(AAINamespaceConstants.CLOUD_INFRASTRUCTURE + "/cloud-regions/cloud-region/att-aic/AAIAIC25", "/tenants/tenant/{tenant-id}"), + VCE(AAINamespaceConstants.NETWORK, "/vces/vce/{vnf-id}"), + VPN_BINDING(AAINamespaceConstants.NETWORK, "/vpn-bindings/vpn-binding/{vpn-id}"), + VPN_BINDINGS(AAINamespaceConstants.NETWORK, "/vpn-bindings"), + CONFIGURATION(AAINamespaceConstants.NETWORK, "/configurations/configuration/{configuration-id}"), + PSERVER(AAINamespaceConstants.CLOUD_INFRASTRUCTURE, "/pservers/pserver/{hostname}"), + SERVICE_SUBSCRIPTION(AAIObjectType.CUSTOMER.uriTemplate(), "/service-subscriptions/service-subscription/{service-type}"), + SERVICE_INSTANCE(AAIObjectType.SERVICE_SUBSCRIPTION.uriTemplate(), "/service-instances/service-instance/{service-instance-id}"), + PROJECT(AAINamespaceConstants.BUSINESS, "/projects/project/{id}"), + LINE_OF_BUSINESS(AAINamespaceConstants.BUSINESS, "/lines-of-business/line-of-business/{id}"), + PLATFORM(AAINamespaceConstants.BUSINESS, "/platforms/platform/{id}"), + OWNING_ENTITY(AAINamespaceConstants.BUSINESS, "/owning-entities/owning-entity/{id}"), + ALLOTTED_RESOURCE(AAIObjectType.SERVICE_INSTANCE.uriTemplate(), "/allotted-resources/allotted-resource/{id}"), + PNF(AAINamespaceConstants.NETWORK, "/pnfs/pnf/{pnf-name}"), + OPERATIONAL_ENVIRONMENT(AAINamespaceConstants.CLOUD_INFRASTRUCTURE, "/operational-environments/operational-environment/{operational-environment-id}"), + CLOUD_REGION(AAINamespaceConstants.CLOUD_INFRASTRUCTURE, "/cloud-regions/cloud-region/{cloud-owner-id}/{cloud-region-id}"), + TENANT(AAIObjectType.CLOUD_REGION.uriTemplate(), "/tenants/tenant/{tenant-id}"), + VOLUME_GROUP(AAIObjectType.CLOUD_REGION.uriTemplate(), "/volume-groups/volume-group/{volume-group-id}"), + VSERVER(AAIObjectType.TENANT.uriTemplate(), "/vservers/vserver/{vserver-id}"), + MODEL_VER(AAINamespaceConstants.SERVICE_DESIGN_AND_CREATION + "/models/model/{model-invariant-id}", "/model-vers/model-ver/{model-version-id}"), + TUNNEL_XCONNECT(AAIObjectType.ALLOTTED_RESOURCE.uriTemplate(), "/tunnel-xconnects/tunnel-xconnect/{tunnel-id}"), + P_INTERFACE(AAIObjectType.PSERVER.uriTemplate(), "/p-interfaces/p-interface/{interface-name}"), + PHYSICAL_LINK(AAINamespaceConstants.NETWORK, "/physical-links/physical-link/{link-name}"), + INSTANCE_GROUP(AAINamespaceConstants.NETWORK, "/instance-groups/instance-group/{id}"), + COLLECTION(AAINamespaceConstants.NETWORK, "/collections/collection/{collection-id}"), + UNKNOWN("", ""); + + private final String uriTemplate; + private final String parentUri; + private final String partialUri; + private AAIObjectType(String parentUri, String partialUri) { + this.parentUri = parentUri; + this.partialUri = partialUri; + this.uriTemplate = parentUri + partialUri; + } + + @Override + public String toString() { + return this.uriTemplate(); + } + + @Override + public String typeName() { + return this.typeName(CaseFormat.LOWER_HYPHEN); + } + @Override + public String typeName(CaseFormat format) { + String enumName = this.name(); + if (this.equals(AAIObjectType.DEFAULT_CLOUD_REGION) || this.equals(AAIObjectType.DEFAULT_TENANT)) { + enumName = enumName.replace("DEFAULT_", ""); + } + + return CaseFormat.UPPER_UNDERSCORE.to(format, enumName); + } + + @Override + public String uriTemplate() { + return this.uriTemplate; + } + + @Override + public String partialUri() { + return this.partialUri; + } +} diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIProperties.java b/common/src/main/java/org/onap/so/client/aai/AAIProperties.java index c208d6dd5f..9f6708200c 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/AAIProperties.java +++ b/common/src/main/java/org/onap/so/client/aai/AAIProperties.java @@ -18,13 +18,17 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai; +package org.onap.so.client.aai; -import org.openecomp.mso.client.RestProperties; +import org.onap.so.client.RestProperties; public interface AAIProperties extends RestProperties { public AAIVersion getDefaultVersion(); public String getAuth(); public String getKey(); + @Override + public default boolean mapNotFoundToEmpty() { + return true; + } } diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIQueryClient.java b/common/src/main/java/org/onap/so/client/aai/AAIQueryClient.java index f8707dec3e..184b4e5251 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/AAIQueryClient.java +++ b/common/src/main/java/org/onap/so/client/aai/AAIQueryClient.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,47 +18,34 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai; +package org.onap.so.client.aai; import java.util.Optional; -import java.util.UUID; -import org.openecomp.mso.client.aai.entities.CustomQuery; -import org.openecomp.mso.client.aai.entities.uri.AAIUri; -import org.openecomp.mso.client.aai.entities.uri.AAIUriFactory; -import org.openecomp.mso.client.policy.RestClient; -import org.openecomp.mso.client.aai.AAIVersion; +import org.onap.so.client.RestClient; +import org.onap.so.client.aai.entities.CustomQuery; +import org.onap.so.client.aai.entities.uri.AAIUriFactory; +import org.onap.so.client.graphinventory.Format; +import org.onap.so.client.graphinventory.entities.uri.GraphInventoryUri; public class AAIQueryClient extends AAIClient { - - private final AAIVersion version; private Optional<String> depth = Optional.empty(); private boolean nodesOnly = false; private Optional<AAISubgraphType> subgraph = Optional.empty(); public AAIQueryClient() { - super(UUID.randomUUID()); - this.version = super.getVersion(); - } - - public AAIQueryClient(AAIVersion version, UUID requestId) { - super(requestId); - this.version = version; + super(); } public AAIQueryClient(AAIVersion version) { - this(version, UUID.randomUUID()); + super(); + this.version = version; } public String query(Format format, CustomQuery query) { return this.createClient(AAIUriFactory.createResourceUri(AAIObjectType.CUSTOM_QUERY).queryParam("format", format.toString())) - .addRequestId(requestId).put(query, String.class); - } - - @Override - protected AAIVersion getVersion() { - return this.version; + .put(query, String.class); } public AAIQueryClient depth (String depth) { @@ -76,9 +63,8 @@ public class AAIQueryClient extends AAIClient { return this; } - @Override - public RestClient createClient(AAIUri uri) { - AAIUri clone = uri.clone(); + protected GraphInventoryUri setupQueryParams(GraphInventoryUri uri) { + GraphInventoryUri clone = uri.clone(); if (this.depth.isPresent()) { clone.queryParam("depth", depth.get()); } @@ -88,6 +74,10 @@ public class AAIQueryClient extends AAIClient { if (this.subgraph.isPresent()) { clone.queryParam("subgraph", this.subgraph.get().toString()); } - return super.createClient(clone); + return clone; + } + @Override + protected RestClient createClient(GraphInventoryUri uri) { + return super.createClient(setupQueryParams(uri)); } -}
\ No newline at end of file +} diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIQueryObjectMapperProvider.java b/common/src/main/java/org/onap/so/client/aai/AAIQueryObjectMapperProvider.java index 425d9ce60b..d5eeb83041 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/AAIQueryObjectMapperProvider.java +++ b/common/src/main/java/org/onap/so/client/aai/AAIQueryObjectMapperProvider.java @@ -18,10 +18,9 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai; +package org.onap.so.client.aai; import com.fasterxml.jackson.databind.AnnotationIntrospector; -import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector; import com.fasterxml.jackson.databind.type.TypeFactory; import com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector; @@ -37,8 +36,4 @@ public class AAIQueryObjectMapperProvider extends AAICommonObjectMapperProvider } - @Override - public ObjectMapper getContext(Class<?> type) { - return mapper; - } } diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIResourcesClient.java b/common/src/main/java/org/onap/so/client/aai/AAIResourcesClient.java index c55e5e9eee..04757c6fc2 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/AAIResourcesClient.java +++ b/common/src/main/java/org/onap/so/client/aai/AAIResourcesClient.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,40 +18,33 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai; +package org.onap.so.client.aai; +import java.lang.reflect.InvocationTargetException; import java.util.Map; import java.util.Optional; -import java.util.UUID; import javax.ws.rs.NotFoundException; -import javax.ws.rs.client.ResponseProcessingException; import javax.ws.rs.core.GenericType; - import javax.ws.rs.core.Response; +import javax.ws.rs.core.Response.Status; + import org.onap.aai.domain.yang.Relationship; -import org.openecomp.mso.client.aai.entities.AAIResultWrapper; -import org.openecomp.mso.client.aai.entities.uri.AAIResourceUri; -import org.openecomp.mso.client.aai.entities.uri.AAIUri; -import org.openecomp.mso.client.aai.entities.uri.Depth; -import org.openecomp.mso.client.policy.RestClient; +import org.onap.so.client.RestClient; +import org.onap.so.client.RestProperties; +import org.onap.so.client.aai.entities.AAIResultWrapper; +import org.onap.so.client.aai.entities.uri.AAIResourceUri; +import org.onap.so.client.aai.entities.uri.AAIUri; +import org.onap.so.client.graphinventory.entities.uri.Depth; public class AAIResourcesClient extends AAIClient { - - private final AAIVersion version; - + public AAIResourcesClient() { - super(UUID.randomUUID()); - this.version = super.getVersion(); + super(); } public AAIResourcesClient(AAIVersion version) { - super(UUID.randomUUID()); - this.version = version; - } - - public AAIResourcesClient(AAIVersion version, UUID requestId) { - super(requestId); + super(); this.version = version; } @@ -89,16 +82,8 @@ public class AAIResourcesClient extends AAIClient { public boolean exists(AAIResourceUri uri) { AAIUri forceMinimal = this.addParams(Optional.of(Depth.ZERO), true, uri); RestClient aaiRC = this.createClient(forceMinimal); - try{ - aaiRC.get(); - } catch(ResponseProcessingException e) { - if (e.getCause() instanceof NotFoundException) { - return false; - } else { - throw e; - } - } - return true; + + return aaiRC.get().getStatus() == Status.OK.getStatusCode(); } /** @@ -137,7 +122,8 @@ public class AAIResourcesClient extends AAIClient { public void delete(AAIResourceUri uri) { AAIResourceUri clone = uri.clone(); RestClient aaiRC = this.createClient(clone); - Map<String, Object> result = aaiRC.get(new GenericType<Map<String, Object>>(){}); + Map<String, Object> result = aaiRC.get(new GenericType<Map<String, Object>>(){}) + .orElseThrow(() -> new NotFoundException(clone.build() + " does not exist in A&AI")); String resourceVersion = (String) result.get("resource-version"); aaiRC = this.createClient(clone.resourceVersion(resourceVersion)); aaiRC.delete(); @@ -154,17 +140,17 @@ public class AAIResourcesClient extends AAIClient { aaiRC.patch(obj); return; } - + /** * Retrieves an object from A&AI and unmarshalls it into the Class specified * @param clazz * @param uri * @return */ - public <T> T get(Class<T> clazz, AAIResourceUri uri) { + public <T> Optional<T> get(Class<T> clazz, AAIResourceUri uri) { return this.createClient(uri).get(clazz); } - + /** * Retrieves an object from A&AI and returns complete response * @param uri @@ -180,7 +166,7 @@ public class AAIResourcesClient extends AAIClient { * @param uri * @return */ - public <T> T get(GenericType<T> resultClass, AAIResourceUri uri) { + public <T> Optional<T> get(GenericType<T> resultClass, AAIResourceUri uri) { return this.createClient(uri).get(resultClass); } @@ -191,11 +177,31 @@ public class AAIResourcesClient extends AAIClient { * @return */ public AAIResultWrapper get(AAIResourceUri uri) { - String json = this.createClient(uri).get(String.class); + String json = this.createClient(uri).get(String.class).orElse(null); + return new AAIResultWrapper(json); + } + + /** + * Retrieves an object from A&AI wrapped in a helper class which offer additional features + * If the object cannot be found in A&AI the method will throw the runtime exception + * included as an argument + * @param uri + * @return + */ + public AAIResultWrapper get(AAIResourceUri uri, Class<? extends RuntimeException> c) { + RuntimeException e; + try { + e = c.getConstructor(String.class).newInstance(uri.build() + " not found in A&AI"); + } catch (InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException + | NoSuchMethodException | SecurityException e1) { + throw new IllegalArgumentException("could not create instance for " + c.getName()); + } + String json = this.createClient(uri).get(String.class) + .orElseThrow(() -> e); return new AAIResultWrapper(json); - } + private Relationship buildRelationship(AAIResourceUri uri) { final Relationship result = new Relationship(); result.setRelatedLink(uri.build().toString()); @@ -227,17 +233,7 @@ public class AAIResourcesClient extends AAIClient { * @return */ public AAITransactionalClient beginTransaction() { - return new AAITransactionalClient(this.version, this.requestId); - } - - @Override - protected AAIVersion getVersion() { - return this.version; - } - - @Override - protected RestClient createClient(AAIUri uri) { - return super.createClient(uri); + return new AAITransactionalClient(this.getVersion()); } private AAIUri addParams(Optional<Depth> depth, boolean nodesOnly, AAIUri uri) { @@ -251,4 +247,8 @@ public class AAIResourcesClient extends AAIClient { return clone; } + @Override + protected <T extends RestProperties> T getRestProperties() { + return super.getRestProperties(); + } } diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIResourcesObjectMapperProvider.java b/common/src/main/java/org/onap/so/client/aai/AAIResourcesObjectMapperProvider.java index ada1939951..15f2ed2fa2 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/AAIResourcesObjectMapperProvider.java +++ b/common/src/main/java/org/onap/so/client/aai/AAIResourcesObjectMapperProvider.java @@ -18,9 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai; - -import com.fasterxml.jackson.databind.ObjectMapper; +package org.onap.so.client.aai; public class AAIResourcesObjectMapperProvider extends AAICommonObjectMapperProvider { @@ -28,8 +26,4 @@ public class AAIResourcesObjectMapperProvider extends AAICommonObjectMapperProvi super(); } - @Override - public ObjectMapper getContext(Class<?> type) { - return mapper; - } } diff --git a/common/src/main/java/org/onap/so/client/aai/AAIRestClient.java b/common/src/main/java/org/onap/so/client/aai/AAIRestClient.java new file mode 100644 index 0000000000..2bd5f118c0 --- /dev/null +++ b/common/src/main/java/org/onap/so/client/aai/AAIRestClient.java @@ -0,0 +1,131 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.client.aai; + +import java.net.URI; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.regex.Pattern; + +import javax.ws.rs.core.Response; + +import org.onap.so.client.ResponseExceptionMapper; +import org.onap.so.client.RestClientSSL; +import org.onap.so.client.graphinventory.exceptions.GraphInventoryPatchDepthExceededException; +import org.onap.so.client.policy.CommonObjectMapperProvider; +import org.onap.so.jsonpath.JsonPathUtil; +import org.onap.so.utils.TargetEntity; + +import com.fasterxml.jackson.core.JsonProcessingException; + +public class AAIRestClient extends RestClientSSL { + + private final AAIProperties aaiProperties; + private static final AAICommonObjectMapperProvider standardProvider = new AAICommonObjectMapperProvider(); + private static final AAICommonObjectMapperPatchProvider patchProvider = new AAICommonObjectMapperPatchProvider(); + private static final Pattern LOCATE_COMPLEX_OBJECT = Pattern.compile("^((?!relationship-list).)+?\\['[^\\[\\]]+?'\\]$"); + + protected AAIRestClient(AAIProperties props, URI uri) { + super(props, Optional.of(uri)); + this.aaiProperties = props; + } + + @Override + public TargetEntity getTargetEntity(){ + return TargetEntity.AAI; + } + + @Override + protected void initializeHeaderMap(Map<String, String> headerMap) { + headerMap.put("X-FromAppId", "MSO"); + headerMap.put("X-TransactionId", requestId); + String auth = aaiProperties.getAuth(); + String key = aaiProperties.getKey(); + + if (auth != null && !auth.isEmpty() && key != null && !key.isEmpty()) { + addBasicAuthHeader(auth, key); + } + } + + @Override + protected Optional<ResponseExceptionMapper> addResponseExceptionMapper() { + + return Optional.of(new AAIClientResponseExceptionMapper()); + } + + @Override + protected CommonObjectMapperProvider getCommonObjectMapperProvider() { + return standardProvider; + } + + @Override + public Response patch(Object obj) { + String value = convertObjectToPatchFormat(obj); + validatePatchObject(value); + return super.patch(value); + } + + @Override + public <T> T patch(Object obj, Class<T> resultClass) { + String value = convertObjectToPatchFormat(obj); + validatePatchObject(value); + return super.patch(value, resultClass); + } + + protected String convertObjectToPatchFormat(Object obj) { + Object value = obj; + try { + if (!(obj instanceof Map || obj instanceof String)) { + value = patchProvider.getMapper().writeValueAsString(obj); + } else if (obj instanceof Map) { + value = standardProvider.getMapper().writeValueAsString(obj); + } + } catch (JsonProcessingException e) { + value = "{}"; + } + + return (String)value; + } + + + protected void validatePatchObject(String payload) { + if (hasComplexObject(payload)) { + throw new GraphInventoryPatchDepthExceededException(payload); + } + } + + /** validates client side that json does not include any complex objects + * relationship-list is omitted from this validation + */ + protected boolean hasComplexObject(String json) { + if (json.isEmpty()) { + return false; + } + String complex = "$.*.*"; + String array = "$.*.*.*"; + List<String> result = JsonPathUtil.getInstance().getPathList(json, complex); + List<String> result2 = JsonPathUtil.getInstance().getPathList(json, array); + + result.addAll(result2); + return result.stream().anyMatch(item -> LOCATE_COMPLEX_OBJECT.matcher(item).find()); + } +} diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIRestClientI.java b/common/src/main/java/org/onap/so/client/aai/AAIRestClientI.java index 6819ba1edf..b56a6779cc 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/AAIRestClientI.java +++ b/common/src/main/java/org/onap/so/client/aai/AAIRestClientI.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,12 +18,13 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai; +package org.onap.so.client.aai; + import java.io.IOException; import java.io.UnsupportedEncodingException; import java.util.List; - import java.util.Optional; + import org.onap.aai.domain.yang.GenericVnf; import org.onap.aai.domain.yang.Pnf; import org.onap.aai.domain.yang.Pserver; @@ -41,7 +42,7 @@ public interface AAIRestClientI { void updateMaintenceFlag(String vnfId,boolean inMaint, String transactionLoggingUuid) throws Exception; void updateMaintenceFlagVnfId(String vnfId, boolean inMaint, String transactionLoggingUuid) throws Exception; - + GenericVnf getVnfByName(String vnfId, String transactionLoggingUuid) throws Exception; Optional<Pnf> getPnfByName(String pnfId, String transactionLoggingUuid) throws Exception; diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIRestClientImpl.java b/common/src/main/java/org/onap/so/client/aai/AAIRestClientImpl.java index a84aeaac8e..b471a1e53d 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/AAIRestClientImpl.java +++ b/common/src/main/java/org/onap/so/client/aai/AAIRestClientImpl.java @@ -18,10 +18,9 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai; +package org.onap.so.client.aai; + -import com.att.eelf.configuration.EELFLogger; -import com.att.eelf.configuration.EELFManager; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import java.io.IOException; @@ -36,17 +35,20 @@ import org.onap.aai.domain.yang.GenericVnfs; import org.onap.aai.domain.yang.Pnf; import org.onap.aai.domain.yang.Pserver; import org.onap.aai.domain.yang.Pservers; -import org.openecomp.mso.client.aai.entities.CustomQuery; -import org.openecomp.mso.client.aai.entities.Results; -import org.openecomp.mso.client.aai.entities.uri.AAIResourceUri; -import org.openecomp.mso.client.aai.entities.uri.AAIUriFactory; +import org.onap.so.client.aai.entities.CustomQuery; +import org.onap.so.client.aai.entities.Results; +import org.onap.so.client.aai.entities.uri.AAIResourceUri; +import org.onap.so.client.aai.entities.uri.AAIUriFactory; +import org.onap.so.client.graphinventory.Format; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; -@Service + public class AAIRestClientImpl implements AAIRestClientI { - private static final EELFLogger logger = EELFManager.getInstance().getMetricsLogger(); + private static Logger logger = LoggerFactory.getLogger(AAIClient.class); private static final AAIVersion ENDPOINT_VERSION = AAIVersion.V10; private static final String ENDPOINT_GET_ALL = ENDPOINT_VERSION + "/cloud-infrastructure/pservers"; private static final String ENDPOINT_GET_ALL_VNFS = ENDPOINT_VERSION + "/network/generic-vnfs"; @@ -79,8 +81,8 @@ public class AAIRestClientImpl implements AAIRestClientI { logger.warn("could not parse uuid: " + uuid + " creating valid uuid automatically"); requestId = UUID.randomUUID(); } - return new AAIResourcesClient(ENDPOINT_VERSION, requestId) - .get(Pservers.class, AAIUriFactory.createResourceUri(AAIObjectPlurals.PSERVER)); + return new AAIResourcesClient(ENDPOINT_VERSION) + .get(Pservers.class, AAIUriFactory.createResourceUri(AAIObjectPlurals.PSERVER)).orElse(null); } @Override @@ -94,7 +96,7 @@ public class AAIRestClientImpl implements AAIRestClientI { } List<AAIResourceUri> startNodes = new ArrayList<>(); startNodes.add(AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId)); - String jsonInput = new AAIQueryClient(ENDPOINT_VERSION, requestId) + String jsonInput = new AAIQueryClient(ENDPOINT_VERSION) .query(Format.RESOURCE, new CustomQuery(startNodes, PSERVER_VNF_QUERY)); return this.getListOfPservers(jsonInput); @@ -102,7 +104,7 @@ public class AAIRestClientImpl implements AAIRestClientI { } protected List<Pserver> getListOfPservers(String jsonInput) throws IOException { - ObjectMapper mapper = new AAICommonObjectMapperProvider().getContext(Object.class); + ObjectMapper mapper = new AAICommonObjectMapperProvider().getMapper(); Results<Map<String, Pserver>> resultsFromJson = mapper.readValue(jsonInput, new TypeReference<Results<Map<String, Pserver>>>() { }); @@ -122,8 +124,8 @@ public class AAIRestClientImpl implements AAIRestClientI { logger.warn("could not parse uuid: " + transactionLoggingUuid + " creating valid uuid automatically"); requestId = UUID.randomUUID(); } - GenericVnfs genericVnfs = new AAIResourcesClient(ENDPOINT_VERSION, requestId).get(GenericVnfs.class, - AAIUriFactory.createResourceUri(AAIObjectPlurals.GENERIC_VNF).queryParam("vnf-name", vnfName)); + GenericVnfs genericVnfs = new AAIResourcesClient(ENDPOINT_VERSION).get(GenericVnfs.class, + AAIUriFactory.createResourceUri(AAIObjectPlurals.GENERIC_VNF).queryParam("vnf-name", vnfName)).orElse(null); if (genericVnfs.getGenericVnf().size() > 1) { throw new IndexOutOfBoundsException("Multiple Generic Vnfs Returned"); } @@ -144,7 +146,7 @@ public class AAIRestClientImpl implements AAIRestClientI { } GenericVnf genericVnf = new GenericVnf(); genericVnf.setInMaint(inMaint); - new AAIResourcesClient(ENDPOINT_VERSION, requestId) + new AAIResourcesClient(ENDPOINT_VERSION) .update(AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId), genericVnf); } @@ -158,8 +160,8 @@ public class AAIRestClientImpl implements AAIRestClientI { logger.warn("could not parse uuid: " + transactionLoggingUuid + " creating valid uuid automatically"); requestId = UUID.randomUUID(); } - return new AAIResourcesClient(ENDPOINT_VERSION, requestId) - .get(GenericVnf.class, AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId)); + return new AAIResourcesClient(ENDPOINT_VERSION) + .get(GenericVnf.class, AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId)).orElse(null); } @Override @@ -171,7 +173,7 @@ public class AAIRestClientImpl implements AAIRestClientI { logger.warn("could not parse uuid: " + transactionLoggingUuid + " creating valid uuid automatically", e); requestId = UUID.randomUUID(); } - Response response = new AAIResourcesClient(ENDPOINT_VERSION, requestId) + Response response = new AAIResourcesClient(ENDPOINT_VERSION) .getFullResponse(AAIUriFactory.createResourceUri(AAIObjectType.PNF, pnfId)); if (response.getStatus() != 200) { return Optional.empty(); @@ -189,7 +191,7 @@ public class AAIRestClientImpl implements AAIRestClientI { logger.warn("could not parse uuid: " + transactionLoggingUuid + " creating valid uuid automatically", e); requestId = UUID.randomUUID(); } - new AAIResourcesClient(ENDPOINT_VERSION, requestId) + new AAIResourcesClient(ENDPOINT_VERSION) .createIfNotExists(AAIUriFactory.createResourceUri(AAIObjectType.PNF, pnfId), Optional.of(pnf)); } } diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAISubgraphType.java b/common/src/main/java/org/onap/so/client/aai/AAISubgraphType.java index 917949967f..e9beb143fd 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/AAISubgraphType.java +++ b/common/src/main/java/org/onap/so/client/aai/AAISubgraphType.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai; +package org.onap.so.client.aai; public enum AAISubgraphType { @@ -35,4 +35,4 @@ public enum AAISubgraphType { public String toString() { return name; } -}
\ No newline at end of file +} diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAITransactionalClient.java b/common/src/main/java/org/onap/so/client/aai/AAITransactionalClient.java index 547862708a..884d2aaec6 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/AAITransactionalClient.java +++ b/common/src/main/java/org/onap/so/client/aai/AAITransactionalClient.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai; +package org.onap.so.client.aai; import java.io.IOException; import java.util.ArrayList; @@ -27,22 +27,22 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Optional; -import java.util.UUID; +import javax.ws.rs.NotFoundException; import javax.ws.rs.core.GenericType; import javax.ws.rs.core.Response; import org.onap.aai.domain.yang.Relationship; -import org.openecomp.mso.client.aai.entities.AAIError; -import org.openecomp.mso.client.aai.entities.bulkprocess.OperationBody; -import org.openecomp.mso.client.aai.entities.bulkprocess.Transaction; -import org.openecomp.mso.client.aai.entities.bulkprocess.Transactions; -import org.openecomp.mso.client.aai.entities.uri.AAIResourceUri; -import org.openecomp.mso.client.aai.entities.uri.AAIUri; -import org.openecomp.mso.client.aai.entities.uri.AAIUriFactory; -import org.openecomp.mso.client.aai.exceptions.BulkProcessFailed; -import org.openecomp.mso.client.policy.RestClient; -import org.openecomp.mso.jsonpath.JsonPathUtil; +import org.onap.so.client.RestClient; +import org.onap.so.client.aai.entities.AAIError; +import org.onap.so.client.aai.entities.bulkprocess.OperationBody; +import org.onap.so.client.aai.entities.bulkprocess.Transaction; +import org.onap.so.client.aai.entities.bulkprocess.Transactions; +import org.onap.so.client.aai.entities.uri.AAIResourceUri; +import org.onap.so.client.aai.entities.uri.AAIUri; +import org.onap.so.client.aai.entities.uri.AAIUriFactory; +import org.onap.so.client.graphinventory.exceptions.BulkProcessFailed; +import org.onap.so.jsonpath.JsonPathUtil; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; @@ -54,8 +54,8 @@ public class AAITransactionalClient extends AAIClient { private Transaction currentTransaction; private final AAIVersion version; private int actionCount = 0; - protected AAITransactionalClient(AAIVersion version, UUID requestId) { - super(requestId); + protected AAITransactionalClient(AAIVersion version) { + super(); this.version = version; this.transactions = new Transactions(); startTransaction(); @@ -164,7 +164,8 @@ public class AAITransactionalClient extends AAIClient { public AAITransactionalClient delete(AAIResourceUri uri) { AAIResourcesClient client = new AAIResourcesClient(); AAIResourceUri clone = uri.clone(); - Map<String, Object> result = client.get(new GenericType<Map<String, Object>>(){}, clone); + Map<String, Object> result = client.get(new GenericType<Map<String, Object>>(){}, clone) + .orElseThrow(() -> new NotFoundException(clone.build() + " does not exist in A&AI")); String resourceVersion = (String) result.get("resource-version"); currentTransaction.getDelete().add(new OperationBody().withUri(clone.resourceVersion(resourceVersion).build().toString()).withBody("")); incrementActionAmount(); @@ -196,7 +197,7 @@ public class AAITransactionalClient extends AAIClient { if (response.hasEntity()) { final Optional<String> errorMessage = this.locateErrorMessages(response.readEntity(String.class)); if (errorMessage.isPresent()) { - throw new BulkProcessFailed("One or more transactions failed in A&AI. Request-id=" + this.getRequestId() + ". Check logs for payloads.\nMessages:\n" + errorMessage.get()); + throw new BulkProcessFailed("One or more transactions failed in A&AI. Check logs for payloads.\nMessages:\n" + errorMessage.get()); } } else { throw new BulkProcessFailed("Transactions acccepted by A&AI, but there was no response. Unsure of result."); @@ -219,7 +220,7 @@ public class AAITransactionalClient extends AAIClient { parsed.add(mapper.readValue(result, new TypeReference<Map<String, Object>>(){})); } } catch (IOException e) { - metricsLogger.error("could not map json", e); + logger.error("could not map json", e); } for (Map<String, Object> map : parsed) { for (Entry<String, Object> entry : map.entrySet()) { @@ -228,12 +229,12 @@ public class AAITransactionalClient extends AAIClient { try { error = mapper.readValue(entry.getValue().toString(), AAIError.class); } catch (IOException e) { - metricsLogger.error("could not parse error object from A&AI", e); + logger.error("could not parse error object from A&AI", e); error = new AAIError(); } AAIErrorFormatter formatter = new AAIErrorFormatter(error); String outputMessage = formatter.getMessage(); - metricsLogger.error("part of a bulk action failed in A&AI: " + entry.getValue()); + logger.error("part of a bulk action failed in A&AI: " + entry.getValue()); errorMessages.add(outputMessage); } } diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIUpdator.java b/common/src/main/java/org/onap/so/client/aai/AAIUpdator.java index 3bdcdc56a3..8921e4bbbe 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/AAIUpdator.java +++ b/common/src/main/java/org/onap/so/client/aai/AAIUpdator.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai; +package org.onap.so.client.aai; import java.io.IOException; diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIUpdatorImpl.java b/common/src/main/java/org/onap/so/client/aai/AAIUpdatorImpl.java index c808761040..a971fded0e 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/AAIUpdatorImpl.java +++ b/common/src/main/java/org/onap/so/client/aai/AAIUpdatorImpl.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,9 +18,11 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai; +package org.onap.so.client.aai; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + public class AAIUpdatorImpl implements AAIUpdator { diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIValidator.java b/common/src/main/java/org/onap/so/client/aai/AAIValidator.java index 117ec42a36..bf6485a631 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/AAIValidator.java +++ b/common/src/main/java/org/onap/so/client/aai/AAIValidator.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai; +package org.onap.so.client.aai; import java.io.IOException; diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIValidatorImpl.java b/common/src/main/java/org/onap/so/client/aai/AAIValidatorImpl.java index c84d2f41bd..fb6d122630 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/AAIValidatorImpl.java +++ b/common/src/main/java/org/onap/so/client/aai/AAIValidatorImpl.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai; +package org.onap.so.client.aai; import java.io.IOException; import java.util.List; @@ -30,7 +30,7 @@ import org.springframework.stereotype.Service; -@Service + public class AAIValidatorImpl implements AAIValidator { diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIVersion.java b/common/src/main/java/org/onap/so/client/aai/AAIVersion.java index 20117fb98b..20ee5becca 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/AAIVersion.java +++ b/common/src/main/java/org/onap/so/client/aai/AAIVersion.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,14 +18,17 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai; +package org.onap.so.client.aai; -public enum AAIVersion { +import org.onap.so.client.graphinventory.GraphInventoryVersion; + +public enum AAIVersion implements GraphInventoryVersion { V8("v8"), V9("v9"), V10("v10"), V11("v11"), - V12("v12"); + V12("v12"), + V13("v13"); public final static AAIVersion LATEST = AAIVersion.values()[AAIVersion.values().length - 1]; private final String value; diff --git a/common/src/main/java/org/onap/so/client/aai/EmptyStringToNullSerializer.java b/common/src/main/java/org/onap/so/client/aai/EmptyStringToNullSerializer.java new file mode 100644 index 0000000000..1120ebe0b9 --- /dev/null +++ b/common/src/main/java/org/onap/so/client/aai/EmptyStringToNullSerializer.java @@ -0,0 +1,52 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.client.aai; + +import java.io.IOException; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; + +public class EmptyStringToNullSerializer extends StdSerializer<String> { + + private static final long serialVersionUID = 5367385969270400106L; + + public EmptyStringToNullSerializer() { + this(null); + } + public EmptyStringToNullSerializer(Class<String> t) { + super(t); + } + + @Override + public void serialize(String value, JsonGenerator gen, SerializerProvider serializers) + throws IOException, JsonProcessingException { + + if("".equals(value)) { + gen.writeNull(); + } else { + gen.writeString(value); + } + } + +} diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/AAIEntity.java b/common/src/main/java/org/onap/so/client/aai/entities/AAIEntity.java index 3f0c4f3439..c2aceeeeba 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/entities/AAIEntity.java +++ b/common/src/main/java/org/onap/so/client/aai/entities/AAIEntity.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai.entities; +package org.onap.so.client.aai.entities; public class AAIEntity{ diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/AAIEntityObject.java b/common/src/main/java/org/onap/so/client/aai/entities/AAIEntityObject.java index e4a64c4161..dc91c8a034 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/entities/AAIEntityObject.java +++ b/common/src/main/java/org/onap/so/client/aai/entities/AAIEntityObject.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,9 +18,9 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai.entities; +package org.onap.so.client.aai.entities; -import org.openecomp.mso.client.aai.entities.uri.AAIResourceUri; +import org.onap.so.client.aai.entities.uri.AAIResourceUri; public interface AAIEntityObject { diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/AAIError.java b/common/src/main/java/org/onap/so/client/aai/entities/AAIError.java index 5f895ef862..4261f4f3c0 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/entities/AAIError.java +++ b/common/src/main/java/org/onap/so/client/aai/entities/AAIError.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai.entities; +package org.onap.so.client.aai.entities; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/AAIResultWrapper.java b/common/src/main/java/org/onap/so/client/aai/entities/AAIResultWrapper.java index 9898f04844..9087995f97 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/entities/AAIResultWrapper.java +++ b/common/src/main/java/org/onap/so/client/aai/entities/AAIResultWrapper.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,31 +18,36 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai.entities; +package org.onap.so.client.aai.entities; import java.io.IOException; +import java.io.Serializable; import java.util.HashMap; import java.util.Map; import java.util.Optional; -import org.openecomp.mso.client.aai.AAICommonObjectMapperProvider; -import org.openecomp.mso.jsonpath.JsonPathUtil; +import org.onap.so.client.aai.AAICommonObjectMapperProvider; +import org.onap.so.jsonpath.JsonPathUtil; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; -public class AAIResultWrapper { +public class AAIResultWrapper implements Serializable { - private final String jsonBody; + private static final long serialVersionUID = 5895841925807816737L; + private final Optional<String> jsonBody; private final ObjectMapper mapper; public AAIResultWrapper(String json) { - this.jsonBody = json; + this.jsonBody = Optional.ofNullable(json); this.mapper = new AAICommonObjectMapperProvider().getMapper(); } public Optional<Relationships> getRelationships() { final String path = "$.relationship-list"; - Optional<String> result = JsonPathUtil.getInstance().locateResult(jsonBody, path); + if (!jsonBody.isPresent()) { + return Optional.empty(); + } + Optional<String> result = JsonPathUtil.getInstance().locateResult(jsonBody.get(), path); if (result.isPresent()) { return Optional.of(new Relationships(result.get())); } else { @@ -51,25 +56,34 @@ public class AAIResultWrapper { } public String getJson() { - return jsonBody; + return jsonBody.orElse("{}"); } public Map<String, Object> asMap() { + if (!this.jsonBody.isPresent()) { + return new HashMap<>(); + } try { - return mapper.readValue(this.jsonBody, new TypeReference<Map<String, Object>>(){}); + return mapper.readValue(this.jsonBody.get(), new TypeReference<Map<String, Object>>(){}); } catch (IOException e) { return new HashMap<>(); } } public <T> Optional<T> asBean(Class<T> clazz) { + if (!this.jsonBody.isPresent()) { + return Optional.empty(); + } try { - return Optional.of(mapper.readValue(this.jsonBody, clazz)); + return Optional.of(mapper.readValue(this.jsonBody.get(), clazz)); } catch (IOException e) { return Optional.empty(); } } + public boolean isEmpty() { + return !this.jsonBody.isPresent(); + } @Override public String toString() { return this.getJson(); diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/Configuration.java b/common/src/main/java/org/onap/so/client/aai/entities/Configuration.java index a2d0fb3604..e1ce3a8adc 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/entities/Configuration.java +++ b/common/src/main/java/org/onap/so/client/aai/entities/Configuration.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,8 +18,7 @@ * ============LICENSE_END========================================================= */ - -package org.openecomp.mso.client.aai.entities; +package org.onap.so.client.aai.entities; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/CustomQuery.java b/common/src/main/java/org/onap/so/client/aai/entities/CustomQuery.java index 3d014b8f67..8203476c82 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/entities/CustomQuery.java +++ b/common/src/main/java/org/onap/so/client/aai/entities/CustomQuery.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,13 +18,13 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai.entities; +package org.onap.so.client.aai.entities; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.List; -import org.openecomp.mso.client.aai.entities.uri.AAIResourceUri; +import org.onap.so.client.aai.entities.uri.AAIResourceUri; import com.fasterxml.jackson.annotation.JsonInclude; diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/Relationships.java b/common/src/main/java/org/onap/so/client/aai/entities/Relationships.java index cca2fb3744..bab145b3fd 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/entities/Relationships.java +++ b/common/src/main/java/org/onap/so/client/aai/entities/Relationships.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai.entities; +package org.onap.so.client.aai.entities; import java.io.IOException; import java.util.ArrayList; @@ -30,13 +30,13 @@ import java.util.function.Predicate; import javax.ws.rs.core.UriBuilder; -import org.openecomp.mso.client.aai.AAICommonObjectMapperProvider; -import org.openecomp.mso.client.aai.AAIObjectName; -import org.openecomp.mso.client.aai.AAIObjectType; -import org.openecomp.mso.client.aai.AAIResourcesClient; -import org.openecomp.mso.client.aai.entities.uri.AAIResourceUri; -import org.openecomp.mso.client.aai.entities.uri.AAIUriFactory; -import org.openecomp.mso.jsonpath.JsonPathUtil; +import org.onap.so.client.aai.AAICommonObjectMapperProvider; +import org.onap.so.client.aai.AAIObjectType; +import org.onap.so.client.aai.AAIResourcesClient; +import org.onap.so.client.aai.entities.uri.AAIResourceUri; +import org.onap.so.client.aai.entities.uri.AAIUriFactory; +import org.onap.so.client.graphinventory.GraphInventoryObjectName; +import org.onap.so.jsonpath.JsonPathUtil; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; @@ -57,7 +57,7 @@ public class Relationships { } } - public List<AAIResultWrapper> getByType(AAIObjectName type) { + public List<AAIResultWrapper> getByType(GraphInventoryObjectName type) { return this.getAll(Optional.of(type)); } @@ -72,7 +72,7 @@ public class Relationships { return this.getRelatedLinks(Optional.empty()); } - public List<String> getRelatedLinks(AAIObjectName type) { + public List<String> getRelatedLinks(GraphInventoryObjectName type) { return this.getRelatedLinks(Optional.of(type)); } @@ -80,7 +80,7 @@ public class Relationships { return this.getRelatedAAIUris(x -> true); } - public List<AAIResourceUri> getRelatedAAIUris(AAIObjectName type) { + public List<AAIResourceUri> getRelatedAAIUris(GraphInventoryObjectName type) { return this.getRelatedAAIUris(x -> type.typeName().equals(x)); } protected List<AAIResourceUri> getRelatedAAIUris(Predicate<String> p) { @@ -107,7 +107,7 @@ public class Relationships { - protected List<AAIResultWrapper> getAll(final Optional<AAIObjectName> type) { + protected List<AAIResultWrapper> getAll(final Optional<GraphInventoryObjectName> type) { List<AAIResourceUri> relatedLinks; if (type.isPresent()) { relatedLinks = this.getRelatedAAIUris(type.get()); @@ -126,7 +126,7 @@ public class Relationships { } - protected List<String> getRelatedLinks(Optional<AAIObjectName> type) { + protected List<String> getRelatedLinks(Optional<GraphInventoryObjectName> type) { String matcher = ""; if (type.isPresent()) { matcher = "[?(@.related-to=='" + type.get() + "')]"; diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/RequestError.java b/common/src/main/java/org/onap/so/client/aai/entities/RequestError.java index 2fd3572401..bc8c283e34 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/entities/RequestError.java +++ b/common/src/main/java/org/onap/so/client/aai/entities/RequestError.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai.entities; +package org.onap.so.client.aai.entities; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/Results.java b/common/src/main/java/org/onap/so/client/aai/entities/Results.java index e91823a348..c3f0ad1fa1 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/entities/Results.java +++ b/common/src/main/java/org/onap/so/client/aai/entities/Results.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai.entities; +package org.onap.so.client.aai.entities; import java.util.ArrayList; import java.util.List; diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/ServiceException.java b/common/src/main/java/org/onap/so/client/aai/entities/ServiceException.java index 66ca10d06b..9d9723c514 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/entities/ServiceException.java +++ b/common/src/main/java/org/onap/so/client/aai/entities/ServiceException.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai.entities; +package org.onap.so.client.aai.entities; import java.util.ArrayList; import java.util.List; diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/bulkprocess/OperationBody.java b/common/src/main/java/org/onap/so/client/aai/entities/bulkprocess/OperationBody.java index ddd9a454f8..1803440edd 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/entities/bulkprocess/OperationBody.java +++ b/common/src/main/java/org/onap/so/client/aai/entities/bulkprocess/OperationBody.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai.entities.bulkprocess; +package org.onap.so.client.aai.entities.bulkprocess; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/bulkprocess/Transaction.java b/common/src/main/java/org/onap/so/client/aai/entities/bulkprocess/Transaction.java index 8c4d54dc16..1c405753c3 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/entities/bulkprocess/Transaction.java +++ b/common/src/main/java/org/onap/so/client/aai/entities/bulkprocess/Transaction.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai.entities.bulkprocess; +package org.onap.so.client.aai.entities.bulkprocess; import java.util.ArrayList; import java.util.List; diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/bulkprocess/Transactions.java b/common/src/main/java/org/onap/so/client/aai/entities/bulkprocess/Transactions.java index f6ce3c5d2c..51d56d371a 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/entities/bulkprocess/Transactions.java +++ b/common/src/main/java/org/onap/so/client/aai/entities/bulkprocess/Transactions.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai.entities.bulkprocess; +package org.onap.so.client.aai.entities.bulkprocess; import java.util.ArrayList; import java.util.List; @@ -51,4 +51,4 @@ this.transactions = transactions; return this; } -}
\ No newline at end of file +} diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/uri/AAIResourceUri.java b/common/src/main/java/org/onap/so/client/aai/entities/uri/AAIResourceUri.java index 36e3d008ae..42fa1ad02a 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/entities/uri/AAIResourceUri.java +++ b/common/src/main/java/org/onap/so/client/aai/entities/uri/AAIResourceUri.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,19 +18,29 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai.entities.uri; +package org.onap.so.client.aai.entities.uri; -import org.openecomp.mso.client.aai.AAIObjectPlurals; -import org.openecomp.mso.client.aai.AAIObjectType; +import org.onap.so.client.aai.AAIObjectPlurals; +import org.onap.so.client.aai.AAIObjectType; +import org.onap.so.client.graphinventory.Format; +import org.onap.so.client.graphinventory.entities.uri.Depth; +import org.onap.so.client.graphinventory.entities.uri.GraphInventoryResourceUri; -public interface AAIResourceUri extends AAIUri { +public interface AAIResourceUri extends AAIUri, GraphInventoryResourceUri { public AAIResourceUri relationshipAPI(); public AAIResourceUri relatedTo(AAIObjectPlurals plural); public AAIResourceUri relatedTo(AAIObjectType type, String... values); public AAIResourceUri resourceVersion(String version); + public AAIResourceUri format(Format format); + @Override public AAIResourceUri depth(Depth depth); + @Override public AAIResourceUri nodesOnly(boolean nodesOnly); + @Override public AAIResourceUri queryParam(String name, String... values); + @Override + public AAIResourceUri replaceQueryParam(String name, String... values); + @Override public AAIResourceUri clone(); } diff --git a/common/src/main/java/org/onap/so/client/aai/entities/uri/AAISimpleUri.java b/common/src/main/java/org/onap/so/client/aai/entities/uri/AAISimpleUri.java new file mode 100644 index 0000000000..14671b2f85 --- /dev/null +++ b/common/src/main/java/org/onap/so/client/aai/entities/uri/AAISimpleUri.java @@ -0,0 +1,111 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.client.aai.entities.uri; + +import java.net.URI; + +import javax.ws.rs.core.UriBuilder; + +import org.onap.so.client.aai.AAIObjectPlurals; +import org.onap.so.client.aai.AAIObjectType; +import org.onap.so.client.graphinventory.Format; +import org.onap.so.client.graphinventory.entities.uri.Depth; +import org.onap.so.client.graphinventory.entities.uri.SimpleUri; + +public class AAISimpleUri extends SimpleUri implements AAIResourceUri { + + protected AAISimpleUri(AAIObjectType type, Object... values) { + super(type, values); + + } + protected AAISimpleUri(AAIObjectType type, URI uri) { + super(type, uri); + } + protected AAISimpleUri(AAIObjectType type, UriBuilder builder, Object... values) { + super(type, builder, values); + } + protected AAISimpleUri(AAIObjectPlurals type, UriBuilder builder, Object... values) { + super(type, builder, values); + } + protected AAISimpleUri(AAIObjectPlurals type) { + super(type); + } + protected AAISimpleUri(AAIObjectPlurals type, Object... values) { + super(type, values); + } + + @Override + public AAISimpleUri relationshipAPI() { + return (AAISimpleUri) super.relationshipAPI(); + } + + @Override + public AAISimpleUri relatedTo(AAIObjectPlurals plural) { + return (AAISimpleUri) super.relatedTo(plural); + } + @Override + public AAISimpleUri relatedTo(AAIObjectType type, String... values) { + return (AAISimpleUri) super.relatedTo(type, values); + } + + @Override + public AAISimpleUri resourceVersion(String version) { + return (AAISimpleUri) super.resourceVersion(version); + } + + @Override + public AAISimpleUri queryParam(String name, String... values) { + return (AAISimpleUri) super.queryParam(name, values); + } + + @Override + public AAISimpleUri replaceQueryParam(String name, String... values) { + return (AAISimpleUri) super.replaceQueryParam(name, values); + } + + @Override + public AAISimpleUri clone() { + if (this.type != null) { + return new AAISimpleUri((AAIObjectType)this.type, this.internalURI.clone(), values); + } else { + return new AAISimpleUri((AAIObjectPlurals)this.pluralType, this.internalURI.clone(), values); + } + } + + @Override + public AAIObjectType getObjectType() { + return (AAIObjectType)this.type; + } + + @Override + public AAISimpleUri depth(Depth depth) { + return (AAISimpleUri) super.depth(depth); + } + @Override + public AAISimpleUri nodesOnly(boolean nodesOnly) { + return (AAISimpleUri)super.nodesOnly(nodesOnly); + } + + @Override + public AAISimpleUri format(Format format) { + return (AAISimpleUri)super.format(format); + } +} diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/uri/AAIUri.java b/common/src/main/java/org/onap/so/client/aai/entities/uri/AAIUri.java index 1617bcddea..eb336d9219 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/entities/uri/AAIUri.java +++ b/common/src/main/java/org/onap/so/client/aai/entities/uri/AAIUri.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,17 +18,18 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai.entities.uri; +package org.onap.so.client.aai.entities.uri; import java.net.URI; import java.util.Map; -import org.openecomp.mso.client.aai.AAIObjectPlurals; -import org.openecomp.mso.client.aai.AAIObjectType; +import org.onap.so.client.aai.AAIObjectType; +import org.onap.so.client.graphinventory.GraphInventoryObjectType; +import org.onap.so.client.graphinventory.entities.uri.Depth; +import org.onap.so.client.graphinventory.entities.uri.GraphInventoryUri; -public interface AAIUri { +public interface AAIUri extends GraphInventoryUri { - public URI build(); /** * By default A&AI enforces a depth of 1. Some objects can be told to retrieve objects * nested beneath them by increasing this number. @@ -38,21 +39,22 @@ public interface AAIUri { * @param depth * @return */ + @Override public AAIUri depth(Depth depth); /** * Makes client only return object fields, no relationships * * @return */ + @Override public AAIUri nodesOnly(boolean nodesOnly); + @Override public AAIUri queryParam(String name, String... values); + @Override + public AAIUri replaceQueryParam(String name, String... values); + @Override public AAIUri clone(); - /** - * returns all key values of the URI as a map. Key names can be found in {@link AAIObjectType} - * @return - */ - public Map<String, String> getURIKeys(); + @Override public AAIObjectType getObjectType(); - public boolean equals(Object o); -}
\ No newline at end of file +} diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/uri/AAIUriFactory.java b/common/src/main/java/org/onap/so/client/aai/entities/uri/AAIUriFactory.java index cb33435c69..2a7c8ee78c 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/entities/uri/AAIUriFactory.java +++ b/common/src/main/java/org/onap/so/client/aai/entities/uri/AAIUriFactory.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,12 +18,13 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai.entities.uri; +package org.onap.so.client.aai.entities.uri; import java.net.URI; -import org.openecomp.mso.client.aai.AAIObjectPlurals; -import org.openecomp.mso.client.aai.AAIObjectType; +import org.onap.so.client.aai.AAIObjectPlurals; +import org.onap.so.client.aai.AAIObjectType; +import org.onap.so.client.graphinventory.entities.uri.SimpleUri; public class AAIUriFactory { @@ -39,7 +40,7 @@ public class AAIUriFactory { if (AAIObjectType.SERVICE_INSTANCE.equals(type)) { return new ServiceInstanceUri(values); } else { - return new SimpleUri(type, values); + return new AAISimpleUri(type, values); } } @@ -56,7 +57,7 @@ public class AAIUriFactory { * @return */ public static AAIResourceUri createResourceFromExistingURI(AAIObjectType type, URI uri) { - return new SimpleUri(type, uri); + return new AAISimpleUri(type, uri); } /** @@ -67,7 +68,19 @@ public class AAIUriFactory { */ public static AAIResourceUri createResourceUri(AAIObjectPlurals type) { - return new SimpleUri(type); + return new AAISimpleUri(type); + + } + + /** + * Creates a uri for a plural type with values e.g. /cloud-infrastructure/pservers + * + * @param type + * @return + */ + public static AAIResourceUri createResourceUri(AAIObjectPlurals type, Object... values) { + + return new AAISimpleUri(type, values); } } diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/uri/NodesUri.java b/common/src/main/java/org/onap/so/client/aai/entities/uri/NodesUri.java index 407e0ecc9e..ccae0b44b7 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/entities/uri/NodesUri.java +++ b/common/src/main/java/org/onap/so/client/aai/entities/uri/NodesUri.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,14 +18,13 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai.entities.uri; +package org.onap.so.client.aai.entities.uri; -import javax.ws.rs.core.UriBuilder; +import org.onap.so.client.aai.AAIObjectType; +import org.onap.so.client.graphinventory.GraphInventoryObjectPlurals; +import org.onap.so.client.graphinventory.GraphInventoryObjectType; -import org.openecomp.mso.client.aai.AAIObjectPlurals; -import org.openecomp.mso.client.aai.AAIObjectType; - -public class NodesUri extends SimpleUri { +public class NodesUri extends AAISimpleUri { protected NodesUri(AAIObjectType type, Object... values) { super(type, values); @@ -33,12 +32,12 @@ public class NodesUri extends SimpleUri { @Override - protected String getTemplate(AAIObjectType type) { + protected String getTemplate(GraphInventoryObjectType type) { return "/nodes" + type.partialUri(); } @Override - protected String getTemplate(AAIObjectPlurals type) { + protected String getTemplate(GraphInventoryObjectPlurals type) { return "/nodes" + type.partialUri(); } } diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/uri/ServiceInstanceUri.java b/common/src/main/java/org/onap/so/client/aai/entities/uri/ServiceInstanceUri.java index cdaecedfa9..093918d49b 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/entities/uri/ServiceInstanceUri.java +++ b/common/src/main/java/org/onap/so/client/aai/entities/uri/ServiceInstanceUri.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai.entities.uri; +package org.onap.so.client.aai.entities.uri; import java.io.IOException; import java.net.URI; @@ -27,22 +27,22 @@ import java.util.Map; import java.util.Optional; import javax.ws.rs.BadRequestException; -import javax.ws.rs.client.ResponseProcessingException; import javax.ws.rs.core.UriBuilder; -import org.openecomp.mso.client.aai.AAIObjectType; -import org.openecomp.mso.client.aai.AAIQueryClient; -import org.openecomp.mso.client.aai.Format; -import org.openecomp.mso.client.aai.entities.CustomQuery; -import org.openecomp.mso.client.aai.entities.Results; -import org.openecomp.mso.client.aai.exceptions.AAIPayloadException; -import org.openecomp.mso.client.aai.exceptions.AAIUriComputationException; -import org.openecomp.mso.client.aai.exceptions.AAIUriNotFoundException; +import org.onap.so.client.aai.AAIObjectType; +import org.onap.so.client.aai.AAIQueryClient; +import org.onap.so.client.graphinventory.Format; +import org.onap.so.client.aai.entities.CustomQuery; +import org.onap.so.client.aai.entities.Results; +import org.onap.so.client.graphinventory.entities.uri.SimpleUri; +import org.onap.so.client.graphinventory.exceptions.GraphInventoryPayloadException; +import org.onap.so.client.graphinventory.exceptions.GraphInventoryUriComputationException; +import org.onap.so.client.graphinventory.exceptions.GraphInventoryUriNotFoundException; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; -public class ServiceInstanceUri extends SimpleUri { +public class ServiceInstanceUri extends AAISimpleUri { private Optional<String> cachedValue = Optional.empty(); @@ -53,49 +53,45 @@ public class ServiceInstanceUri extends SimpleUri { super(AAIObjectType.SERVICE_INSTANCE, builder, values); this.cachedValue = cachedValue; } - protected String getSerivceInstance(Object id) throws AAIUriNotFoundException, AAIPayloadException { + protected String getSerivceInstance(Object id) throws GraphInventoryUriNotFoundException, GraphInventoryPayloadException { if (!this.getCachedValue().isPresent()) { AAIResourceUri serviceInstanceUri = AAIUriFactory.createNodesUri(AAIObjectType.SERVICE_INSTANCE, id); CustomQuery query = new CustomQuery(Collections.singletonList(serviceInstanceUri)); String resultJson; try { resultJson = this.getQueryClient().query(Format.PATHED, query); - } catch (ResponseProcessingException e) { - if (e.getCause() instanceof BadRequestException) { - throw new AAIUriNotFoundException("Service instance " + id + " not found at: " + serviceInstanceUri.build()); - } else { - throw e; - } + } catch (BadRequestException e) { + throw new GraphInventoryUriNotFoundException("Service instance " + id + " not found at: " + serviceInstanceUri.build()); + } try { cachedValue = extractRelatedLink(resultJson); if (!cachedValue.isPresent()) { - throw new AAIUriNotFoundException("Service instance " + id + " not found at: " + serviceInstanceUri.build()); + throw new GraphInventoryUriNotFoundException("Service instance " + id + " not found at: " + serviceInstanceUri.build()); } } catch (IOException e) { - throw new AAIPayloadException("could not map payload: " + resultJson, e); + throw new GraphInventoryPayloadException("could not map payload: " + resultJson, e); } - } - - return this.getCachedValue().get(); + Optional<String> cachedValueOpt = this.getCachedValue(); + return cachedValueOpt.isPresent() ? cachedValueOpt.get() : ""; } protected Optional<String> extractRelatedLink(String jsonString) throws IOException { Optional<String> result; ObjectMapper mapper = new ObjectMapper(); - Results<Map<String, String>> results = mapper.readValue(jsonString, new TypeReference<Results<Map<String, String>>>(){}); - if (results.getResult().size() == 1) { - String uriString = results.getResult().get(0).get("resource-link"); - URI uri = UriBuilder.fromUri(uriString).build(); - String rawPath = uri.getRawPath(); + Results<Map<String, String>> results = mapper.readValue(jsonString, new TypeReference<Results<Map<String, String>>>(){}); + if (results.getResult().size() == 1) { + String uriString = results.getResult().get(0).get("resource-link"); + URI uri = UriBuilder.fromUri(uriString).build(); + String rawPath = uri.getRawPath(); result = Optional.of(rawPath.replaceAll("/aai/v\\d+", "")); - } else if (results.getResult().isEmpty()) { + } else if (results.getResult().isEmpty()) { result = Optional.empty(); - } else { - throw new IllegalStateException("more than one result returned"); - } + } else { + throw new IllegalStateException("more than one result returned"); + } return result; } @@ -107,13 +103,13 @@ public class ServiceInstanceUri extends SimpleUri { @Override public URI build() { try { - if (this.values.length == 1) { - String uri = getSerivceInstance(this.values[0]); - Map<String, String> map = getURIKeys(uri); - return super.build(map.values().toArray(values)); - } - } catch (AAIUriNotFoundException | AAIPayloadException e) { - throw new AAIUriComputationException(e); + if (this.values.length == 1) { + String uri = getSerivceInstance(this.values[0]); + Map<String, String> map = getURIKeys(uri); + return super.build(map.values().toArray(values)); + } + } catch (GraphInventoryUriNotFoundException | GraphInventoryPayloadException e) { + throw new GraphInventoryUriComputationException(e); } return super.build(); } @@ -124,6 +120,7 @@ public class ServiceInstanceUri extends SimpleUri { } protected AAIQueryClient getQueryClient() { + AAIResourceUri uri = AAIUriFactory.createNodesUri(AAIObjectType.ALLOTTED_RESOURCE, "").clone(); return new AAIQueryClient(); } -}
\ No newline at end of file +} diff --git a/common/src/main/java/org/openecomp/mso/client/aai/objects/AAIOperationalEnvironment.java b/common/src/main/java/org/onap/so/client/aai/objects/AAIOperationalEnvironment.java index f044e2a237..02d8d56867 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/objects/AAIOperationalEnvironment.java +++ b/common/src/main/java/org/onap/so/client/aai/objects/AAIOperationalEnvironment.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai.objects; +package org.onap.so.client.aai.objects; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/common/src/main/java/org/openecomp/mso/client/aai/objects/AAIServiceInstance.java b/common/src/main/java/org/onap/so/client/aai/objects/AAIServiceInstance.java index dbb34fcd44..af21949277 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/objects/AAIServiceInstance.java +++ b/common/src/main/java/org/onap/so/client/aai/objects/AAIServiceInstance.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,118 +18,124 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai.objects;
-
-import org.openecomp.mso.client.aai.AAIObjectType;
-import org.openecomp.mso.client.aai.entities.AAIEntityObject;
-import org.openecomp.mso.client.aai.entities.uri.AAIResourceUri;
-import org.openecomp.mso.client.aai.entities.uri.AAIUriFactory;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-
-public class AAIServiceInstance implements AAIEntityObject {
-
- @JsonProperty("service-instance-id")
- private String serviceInstanceId;
- @JsonProperty("service-instance-name")
- private String serviceInstanceName;
- @JsonProperty("service-type")
- private String serviceType;
- @JsonProperty("service-role")
- private String serviceRole;
- @JsonProperty("orchestration-status")
- private String oStatus;
- @JsonProperty("model-invariant-id")
- private String modelInvariantUuid;
- @JsonProperty("model-version-id")
- private String modelUuid;
- @JsonProperty("environment-context")
- private String environmentContext;
- @JsonProperty("workload-context")
- private String workloadContext;
-
- public String getServiceInstanceName() {
- return serviceInstanceName;
- }
-
- public void setServiceInstanceName(String serviceInstanceName) {
- this.serviceInstanceName = serviceInstanceName;
- }
-
- public String getServiceType() {
- return serviceType;
- }
-
- public void setServiceType(String serviceType) {
- this.serviceType = serviceType;
- }
-
- public String getServiceRole() {
- return serviceRole;
- }
-
- public void setServiceRole(String serviceRole) {
- this.serviceRole = serviceRole;
- }
-
- public String getoStatus() {
- return oStatus;
- }
-
- public void setoStatus(String oStatus) {
- this.oStatus = oStatus;
- }
-
- public String getModelInvariantUuid() {
- return modelInvariantUuid;
- }
-
- public void setModelInvariantUuid(String modelInvariantUuid) {
- this.modelInvariantUuid = modelInvariantUuid;
- }
-
- public String getModelUuid() {
- return modelUuid;
- }
-
- public void setModelUuid(String modelUuid) {
- this.modelUuid = modelUuid;
- }
-
- public String getEnvironmentContext() {
- return environmentContext;
- }
-
- public void setEnvironmentContext(String environmentContext) {
- this.environmentContext = environmentContext;
- }
-
- public String getWorkloadContext() {
- return workloadContext;
- }
-
- public void setWorkloadContext(String workloadContext) {
- this.workloadContext = workloadContext;
- }
-
- public String getServiceInstanceId() {
- return serviceInstanceId;
- }
-
- public void setServiceInstanceId(String serviceInstanceId) {
- this.serviceInstanceId = serviceInstanceId;
- }
-
- public AAIServiceInstance withServiceInstance(String serviceInstanceId) {
- this.setServiceInstanceId(serviceInstanceId);
- return this;
- }
-
- @Override
- public AAIResourceUri getUri() {
- final AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE, this.serviceInstanceId);
- return uri;
- }
-
-
-}
+package org.onap.so.client.aai.objects; + +import org.onap.so.client.aai.AAIObjectType; +import org.onap.so.client.aai.entities.AAIEntityObject; +import org.onap.so.client.aai.entities.uri.AAIResourceUri; +import org.onap.so.client.aai.entities.uri.AAIUriFactory; + +import com.fasterxml.jackson.annotation.JsonProperty; + +public class AAIServiceInstance implements AAIEntityObject { + + @JsonProperty("service-instance-id") + private String serviceInstanceId; + @JsonProperty("service-instance-name") + private String serviceInstanceName; + @JsonProperty("service-type") + private String serviceType; + @JsonProperty("service-role") + private String serviceRole; + @JsonProperty("orchestration-status") + private String oStatus; + @JsonProperty("model-invariant-id") + private String modelInvariantUuid; + @JsonProperty("model-version-id") + private String modelUuid; + @JsonProperty("environment-context") + private String environmentContext; + @JsonProperty("workload-context") + private String workloadContext; + + public String getServiceInstanceName() { + return serviceInstanceName; + } + + public void setServiceInstanceName(String serviceInstanceName) { + this.serviceInstanceName = serviceInstanceName; + } + + public String getServiceType() { + return serviceType; + } + + public void setServiceType(String serviceType) { + this.serviceType = serviceType; + } + + public String getServiceRole() { + return serviceRole; + } + + public void setServiceRole(String serviceRole) { + this.serviceRole = serviceRole; + } + + public String getoStatus() { + return oStatus; + } + + public void setoStatus(String oStatus) { + this.oStatus = oStatus; + } + + public String getModelInvariantUuid() { + return modelInvariantUuid; + } + + public void setModelInvariantUuid(String modelInvariantUuid) { + this.modelInvariantUuid = modelInvariantUuid; + } + + public String getModelUuid() { + return modelUuid; + } + + public void setModelUuid(String modelUuid) { + this.modelUuid = modelUuid; + } + + public String getEnvironmentContext() { + return environmentContext; + } + + public void setEnvironmentContext(String environmentContext) { + this.environmentContext = environmentContext; + } + + public String getWorkloadContext() { + return workloadContext; + } + + public void setWorkloadContext(String workloadContext) { + this.workloadContext = workloadContext; + } + + public String getServiceInstanceId() { + return serviceInstanceId; + } + + public void setServiceInstanceId(String serviceInstanceId) { + this.serviceInstanceId = serviceInstanceId; + } + + public AAIServiceInstance withServiceInstance(String serviceInstanceId) { + this.setServiceInstanceId(serviceInstanceId); + return this; + } + + @Override + public AAIResourceUri getUri() { + AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE, this.serviceInstanceId); + return uri; + } + @Override + public String toString() { + return "AAIServiceInstance [serviceInstanceId=" + serviceInstanceId + ", serviceInstanceName=" + + serviceInstanceName + ", serviceType=" + serviceType + ", serviceRole=" + serviceRole + ", oStatus=" + + oStatus + ", modelInvariantUuid=" + modelInvariantUuid + ", modelUuid=" + modelUuid + + ", environmentContext=" + environmentContext + ", workloadContext=" + workloadContext + "]"; + } + +} diff --git a/common/src/main/java/org/onap/so/client/adapter/rest/AdapterRestClient.java b/common/src/main/java/org/onap/so/client/adapter/rest/AdapterRestClient.java new file mode 100644 index 0000000000..2329a5acb9 --- /dev/null +++ b/common/src/main/java/org/onap/so/client/adapter/rest/AdapterRestClient.java @@ -0,0 +1,79 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.client.adapter.rest; + +import java.net.URI; +import java.security.GeneralSecurityException; +import java.util.Map; +import java.util.Optional; + +import org.apache.commons.codec.binary.Base64; +import org.onap.so.client.RestClient; +import org.onap.so.client.policy.CommonObjectMapperProvider; +import org.onap.so.client.policy.JettisonStyleMapperProvider; +import org.onap.so.utils.CryptoUtils; +import org.onap.so.utils.TargetEntity; + +public class AdapterRestClient extends RestClient { + + private final AdapterRestProperties adapterRestProperties; + public AdapterRestClient(AdapterRestProperties props, URI uri) { + super(props, Optional.of(uri)); + this.adapterRestProperties = props; + } + + public AdapterRestClient(AdapterRestProperties props, URI uri, String accept, String contentType) { + super(props, Optional.of(uri), accept, contentType); + this.adapterRestProperties = props; + } + + @Override + public TargetEntity getTargetEntity(){ + return TargetEntity.OPENSTACK_ADAPTER; + } + + @Override + protected void initializeHeaderMap(Map<String, String> headerMap) { + headerMap.put("Authorization", + this.getBasicAuth(adapterRestProperties.getAuth(), adapterRestProperties.getKey())); + } + + @Override + protected CommonObjectMapperProvider getCommonObjectMapperProvider() { + return new JettisonStyleMapperProvider(); + } + + private String getBasicAuth(String encryptedAuth, String msoKey) { + if ((encryptedAuth == null || encryptedAuth.isEmpty()) || (msoKey == null || msoKey.isEmpty())) { + return null; + } + try { + String auth = CryptoUtils.decrypt(encryptedAuth, msoKey); + byte[] encoded = Base64.encodeBase64(auth.getBytes()); + String encodedString = new String(encoded); + encodedString = "Basic " + encodedString; + return encodedString; + } catch (GeneralSecurityException e) { + this.msoLogger.debug(e.getMessage()); + return null; + } + } +} diff --git a/common/src/main/java/org/onap/so/client/adapter/rest/AdapterRestProperties.java b/common/src/main/java/org/onap/so/client/adapter/rest/AdapterRestProperties.java new file mode 100644 index 0000000000..18e0bd8996 --- /dev/null +++ b/common/src/main/java/org/onap/so/client/adapter/rest/AdapterRestProperties.java @@ -0,0 +1,29 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.client.adapter.rest; + +import org.onap.so.client.RestProperties; + +public interface AdapterRestProperties extends RestProperties { + + public String getAuth(); + public String getKey(); +} diff --git a/common/src/main/java/org/openecomp/mso/client/defaultproperties/DefaultDmaapPropertiesImpl.java b/common/src/main/java/org/onap/so/client/defaultproperties/DefaultDmaapPropertiesImpl.java index 1345286d9c..ffebe77620 100644 --- a/common/src/main/java/org/openecomp/mso/client/defaultproperties/DefaultDmaapPropertiesImpl.java +++ b/common/src/main/java/org/onap/so/client/defaultproperties/DefaultDmaapPropertiesImpl.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.defaultproperties; +package org.onap.so.client.defaultproperties; import java.io.File; import java.io.FileInputStream; @@ -28,7 +28,7 @@ import java.util.HashMap; import java.util.Map; import java.util.Properties; -import org.openecomp.mso.client.dmaap.DmaapProperties; +import org.onap.so.client.dmaap.DmaapProperties; public class DefaultDmaapPropertiesImpl implements DmaapProperties { diff --git a/common/src/main/java/org/openecomp/mso/client/defaultproperties/PolicyRestPropertiesImpl.java b/common/src/main/java/org/onap/so/client/defaultproperties/PolicyRestPropertiesImpl.java index 655dc5a83d..9e4574df4c 100644 --- a/common/src/main/java/org/openecomp/mso/client/defaultproperties/PolicyRestPropertiesImpl.java +++ b/common/src/main/java/org/onap/so/client/defaultproperties/PolicyRestPropertiesImpl.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.defaultproperties; +package org.onap.so.client.defaultproperties; import java.io.File; import java.io.FileInputStream; @@ -30,7 +30,7 @@ import java.util.HashMap; import java.util.Map; import java.util.Properties; -import org.openecomp.mso.client.policy.PolicyRestProperties; +import org.onap.so.client.policy.PolicyRestProperties; public class PolicyRestPropertiesImpl implements PolicyRestProperties { @@ -38,9 +38,8 @@ public class PolicyRestPropertiesImpl implements PolicyRestProperties { final Map<Object, Object> props; public PolicyRestPropertiesImpl() { File initialFile = new File("src/test/resources/policy.properties"); - Map<Object, Object> temp; - try(InputStream targetStream = new FileInputStream(initialFile)) { + try (InputStream targetStream = new FileInputStream(initialFile)) { Properties properties = new Properties(); properties.load(targetStream); temp = properties; @@ -64,14 +63,17 @@ public class PolicyRestPropertiesImpl implements PolicyRestProperties { return "MSO"; } + @Override public String getClientAuth() { return (String)props.get("policy.client.auth"); } + @Override public String getAuth() { return (String)props.get("policy.auth"); } + @Override public String getEnvironment() { return (String)props.get("policy.environment"); } diff --git a/common/src/main/java/org/openecomp/mso/client/dmaap/Consumer.java b/common/src/main/java/org/onap/so/client/dmaap/Consumer.java index 0e00ae5da8..7b1310f252 100644 --- a/common/src/main/java/org/openecomp/mso/client/dmaap/Consumer.java +++ b/common/src/main/java/org/onap/so/client/dmaap/Consumer.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.dmaap; +package org.onap.so.client.dmaap; public interface Consumer { diff --git a/common/src/main/java/org/openecomp/mso/client/dmaap/DmaapClient.java b/common/src/main/java/org/onap/so/client/dmaap/DmaapClient.java index 5a2fa178de..dde0b31c90 100644 --- a/common/src/main/java/org/openecomp/mso/client/dmaap/DmaapClient.java +++ b/common/src/main/java/org/onap/so/client/dmaap/DmaapClient.java @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.dmaap; +package org.onap.so.client.dmaap; import java.io.IOException; import java.util.Base64; @@ -26,23 +26,23 @@ import java.util.Map; import java.util.Optional; import java.util.Properties; -import org.openecomp.mso.client.defaultproperties.DefaultDmaapPropertiesImpl; +import org.onap.so.client.defaultproperties.DefaultDmaapPropertiesImpl; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; -import com.att.eelf.configuration.EELFLogger; -import com.att.eelf.configuration.EELFManager; public abstract class DmaapClient { - protected final EELFLogger auditLogger = EELFManager.getInstance().getAuditLogger(); + protected static Logger logger = LoggerFactory.getLogger(DmaapClient.class); protected final Map<String, String> msoProperties; protected final Properties properties; public DmaapClient(String filepath) throws IOException { Resource resource = new ClassPathResource(filepath); DmaapProperties dmaapProperties = DmaapPropertiesLoader.getInstance().getNewImpl(); if (dmaapProperties == null) { - auditLogger.error("No RestProperty implementation found on classpath, loading default"); + logger.error("No RestProperty implementation found on classpath, loading default"); dmaapProperties = new DefaultDmaapPropertiesImpl(); } this.msoProperties = dmaapProperties.getProperties(); @@ -51,8 +51,9 @@ public abstract class DmaapClient { this.properties.put("password", this.deobfuscatePassword(this.getPassword())); this.properties.put("username", this.getUserName()); this.properties.put("topic", this.getTopic()); - if (this.getHost().isPresent()) { - this.properties.put("host", this.getHost().get()); + Optional<String> host = this.getHost(); + if (host.isPresent()) { + this.properties.put("host", host.get()); } } protected String deobfuscatePassword(String password) { @@ -60,7 +61,7 @@ public abstract class DmaapClient { try { return new String(Base64.getDecoder().decode(password.getBytes())); } catch(IllegalArgumentException iae) { - auditLogger.error("llegal Arguments",iae); + logger.error("llegal Arguments",iae); return password; } } diff --git a/common/src/main/java/org/openecomp/mso/client/dmaap/DmaapConsumer.java b/common/src/main/java/org/onap/so/client/dmaap/DmaapConsumer.java index 6a01fb61ba..c9acdd7e89 100644 --- a/common/src/main/java/org/openecomp/mso/client/dmaap/DmaapConsumer.java +++ b/common/src/main/java/org/onap/so/client/dmaap/DmaapConsumer.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,14 +18,14 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.dmaap; +package org.onap.so.client.dmaap; import com.google.common.base.Stopwatch; import java.io.IOException; import java.util.concurrent.TimeUnit; -import org.openecomp.mso.client.dmaap.exceptions.DMaaPConsumerFailure; -import org.openecomp.mso.client.dmaap.exceptions.ExceededMaximumPollingTime; -import org.openecomp.mso.client.dmaap.rest.RestConsumer; +import org.onap.so.client.dmaap.exceptions.DMaaPConsumerFailure; +import org.onap.so.client.dmaap.exceptions.ExceededMaximumPollingTime; +import org.onap.so.client.dmaap.rest.RestConsumer; public abstract class DmaapConsumer extends DmaapClient { @@ -45,7 +45,7 @@ public abstract class DmaapConsumer extends DmaapClient { while (this.continuePolling()) { if (stopwatch.elapsed(TimeUnit.MILLISECONDS) >= this.getMaximumElapsedTime()) { final String message = "exceeded maximum retries on " + this.getRequestId() + " on " + this.getTopic(); - auditLogger.error(message); + logger.error(message); throw new ExceededMaximumPollingTime(message); } stopwatch.start(); @@ -53,15 +53,15 @@ public abstract class DmaapConsumer extends DmaapClient { stopwatch.stop(); for (String message : itr) { if (!accepted && this.isAccepted(message)) { - auditLogger.info("accepted message found for " + this.getRequestId() + " on " + this.getTopic()); + logger.info("accepted message found for " + this.getRequestId() + " on " + this.getTopic()); accepted = true; } if (accepted) { - auditLogger.info("received dmaap message: " + message); + logger.info("received dmaap message: " + message); if (this.isFailure(message)) { this.stopProcessingMessages(); final String errorMsg = "failure received from dmaap topic " + this.getTopic(); - auditLogger.error(errorMsg); + logger.error(errorMsg); throw new DMaaPConsumerFailure(errorMsg); } else { this.processMessage(message); diff --git a/common/src/main/java/org/openecomp/mso/client/dmaap/DmaapProperties.java b/common/src/main/java/org/onap/so/client/dmaap/DmaapProperties.java index 7bdd7dfe40..161608dc77 100644 --- a/common/src/main/java/org/openecomp/mso/client/dmaap/DmaapProperties.java +++ b/common/src/main/java/org/onap/so/client/dmaap/DmaapProperties.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.dmaap; +package org.onap.so.client.dmaap; import java.util.Map; diff --git a/common/src/main/java/org/openecomp/mso/client/dmaap/DmaapPropertiesLoader.java b/common/src/main/java/org/onap/so/client/dmaap/DmaapPropertiesLoader.java index 3c861991f6..3064f6142f 100644 --- a/common/src/main/java/org/openecomp/mso/client/dmaap/DmaapPropertiesLoader.java +++ b/common/src/main/java/org/onap/so/client/dmaap/DmaapPropertiesLoader.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,15 +18,20 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.dmaap; +package org.onap.so.client.dmaap; import java.util.ServiceLoader; public class DmaapPropertiesLoader { + /* required to make ServiceLoader thread safe */ + private static final ThreadLocal<ServiceLoader<DmaapProperties>> services = new ThreadLocal<ServiceLoader<DmaapProperties>>() { + @Override + protected ServiceLoader<DmaapProperties> initialValue() { + return ServiceLoader.load(DmaapProperties.class); + } + }; - private final ServiceLoader<DmaapProperties> services; private DmaapPropertiesLoader() { - services = ServiceLoader.load(DmaapProperties.class); } private static class Helper { @@ -43,7 +48,9 @@ public class DmaapPropertiesLoader { return this.getImpl(true); } private DmaapProperties getImpl(boolean forceNewInstance) { - for (DmaapProperties service : services) { + + ServiceLoader<DmaapProperties> loader = this.services.get(); + for (DmaapProperties service : loader) { if (forceNewInstance) { try { return service.getClass().newInstance(); diff --git a/common/src/main/java/org/openecomp/mso/client/dmaap/DmaapPublisher.java b/common/src/main/java/org/onap/so/client/dmaap/DmaapPublisher.java index d2752c531b..48691dcd84 100644 --- a/common/src/main/java/org/openecomp/mso/client/dmaap/DmaapPublisher.java +++ b/common/src/main/java/org/onap/so/client/dmaap/DmaapPublisher.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,12 +18,12 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.dmaap; +package org.onap.so.client.dmaap; import java.io.FileNotFoundException; import java.io.IOException; -import org.openecomp.mso.client.dmaap.rest.RestPublisher; +import org.onap.so.client.dmaap.rest.RestPublisher; public abstract class DmaapPublisher extends DmaapClient { @@ -41,8 +41,8 @@ public abstract class DmaapPublisher extends DmaapClient { this.seconds = seconds; } - public void send(String json) throws IOException, InterruptedException { - auditLogger.info("publishing message to dmaap topic " + this.getTopic() + ": " + json); + public void send(String json){ + logger.info("publishing message to dmaap topic " + this.getTopic() + ": " + json); publisher.send(json); //publisher.close(seconds, TimeUnit.SECONDS); } diff --git a/common/src/main/java/org/openecomp/mso/client/dmaap/Publisher.java b/common/src/main/java/org/onap/so/client/dmaap/Publisher.java index ed1b3f3796..ba6ce16418 100644 --- a/common/src/main/java/org/openecomp/mso/client/dmaap/Publisher.java +++ b/common/src/main/java/org/onap/so/client/dmaap/Publisher.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.dmaap; +package org.onap.so.client.dmaap; public interface Publisher { diff --git a/common/src/main/java/org/openecomp/mso/client/dmaap/exceptions/DMaaPConsumerFailure.java b/common/src/main/java/org/onap/so/client/dmaap/exceptions/DMaaPConsumerFailure.java index b1ae2b7e89..f845f7e6ef 100644 --- a/common/src/main/java/org/openecomp/mso/client/dmaap/exceptions/DMaaPConsumerFailure.java +++ b/common/src/main/java/org/onap/so/client/dmaap/exceptions/DMaaPConsumerFailure.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.dmaap.exceptions; +package org.onap.so.client.dmaap.exceptions; public class DMaaPConsumerFailure extends Exception { diff --git a/common/src/main/java/org/openecomp/mso/client/dmaap/exceptions/ExceededMaximumPollingTime.java b/common/src/main/java/org/onap/so/client/dmaap/exceptions/ExceededMaximumPollingTime.java index c0cda6b0ed..0002f878d8 100644 --- a/common/src/main/java/org/openecomp/mso/client/dmaap/exceptions/ExceededMaximumPollingTime.java +++ b/common/src/main/java/org/onap/so/client/dmaap/exceptions/ExceededMaximumPollingTime.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.dmaap.exceptions; +package org.onap.so.client.dmaap.exceptions; public class ExceededMaximumPollingTime extends RuntimeException { diff --git a/common/src/main/java/org/openecomp/mso/client/dmaap/rest/DMaaPRestClient.java b/common/src/main/java/org/onap/so/client/dmaap/rest/DMaaPRestClient.java index ad744ad31b..0438ff237a 100644 --- a/common/src/main/java/org/openecomp/mso/client/dmaap/rest/DMaaPRestClient.java +++ b/common/src/main/java/org/onap/so/client/dmaap/rest/DMaaPRestClient.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,41 +18,33 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.dmaap.rest; +package org.onap.so.client.dmaap.rest; import java.net.URL; import java.util.Base64; import java.util.Map; -import java.util.Optional; -import java.util.UUID; -import javax.ws.rs.client.ClientResponseFilter; +import org.onap.so.client.RestClient; +import org.onap.so.utils.TargetEntity; -import org.openecomp.mso.client.ResponseExceptionMapperImpl; -import org.openecomp.mso.client.policy.RestClient; - -public class DMaaPRestClient extends RestClient { +public class DMaaPRestClient extends RestClient { private final String username; private final String password; public DMaaPRestClient(URL url, String contentType, String username, String password) { - super(url, UUID.randomUUID(), contentType); + super(url, contentType); this.username = username; this.password = password; } + @Override + public TargetEntity getTargetEntity(){ + return TargetEntity.DMAAP; + } + @Override protected void initializeHeaderMap(Map<String, String> headerMap) { headerMap.put("Authorization", "Basic " + Base64.getEncoder().encodeToString((username + ":" + password).getBytes())); } - @Override - protected Optional<ClientResponseFilter> addResponseFilter() { - return Optional.of(new ResponseExceptionMapperImpl()); - } - - @Override - public RestClient addRequestId(UUID requestId) { - return this; - } } diff --git a/common/src/main/java/org/openecomp/mso/client/dmaap/rest/PropertiesBean.java b/common/src/main/java/org/onap/so/client/dmaap/rest/PropertiesBean.java index e661dd87bd..f43c65808a 100644 --- a/common/src/main/java/org/openecomp/mso/client/dmaap/rest/PropertiesBean.java +++ b/common/src/main/java/org/onap/so/client/dmaap/rest/PropertiesBean.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.dmaap.rest; +package org.onap.so.client.dmaap.rest; import java.util.Properties; diff --git a/common/src/main/java/org/openecomp/mso/client/dmaap/rest/RestConsumer.java b/common/src/main/java/org/onap/so/client/dmaap/rest/RestConsumer.java index c2fb6f676f..39af15635a 100644 --- a/common/src/main/java/org/openecomp/mso/client/dmaap/rest/RestConsumer.java +++ b/common/src/main/java/org/onap/so/client/dmaap/rest/RestConsumer.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,18 +18,19 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.dmaap.rest; +package org.onap.so.client.dmaap.rest; import java.net.MalformedURLException; import java.net.URL; +import java.util.ArrayList; import java.util.List; import java.util.Properties; import javax.ws.rs.core.GenericType; import javax.ws.rs.core.UriBuilder; -import org.openecomp.mso.client.dmaap.Consumer; -import org.openecomp.mso.client.policy.RestClient; +import org.onap.so.client.RestClient; +import org.onap.so.client.dmaap.Consumer; public class RestConsumer implements Consumer { @@ -54,7 +55,7 @@ public class RestConsumer implements Consumer { @Override public Iterable<String> fetch() { - return client.get(new GenericType<List<String>>() {}); + return client.get(new GenericType<List<String>>() {}).orElse(new ArrayList<>()); } } diff --git a/common/src/main/java/org/openecomp/mso/client/dmaap/rest/RestPublisher.java b/common/src/main/java/org/onap/so/client/dmaap/rest/RestPublisher.java index 3dab12f559..090e50543b 100644 --- a/common/src/main/java/org/openecomp/mso/client/dmaap/rest/RestPublisher.java +++ b/common/src/main/java/org/onap/so/client/dmaap/rest/RestPublisher.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,17 +18,16 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.dmaap.rest; +package org.onap.so.client.dmaap.rest; import java.net.MalformedURLException; import java.net.URL; import java.util.Properties; import javax.ws.rs.core.UriBuilder; -import javax.ws.rs.core.UriBuilderException; -import org.openecomp.mso.client.dmaap.Publisher; -import org.openecomp.mso.client.policy.RestClient; +import org.onap.so.client.RestClient; +import org.onap.so.client.dmaap.Publisher; public class RestPublisher implements Publisher { diff --git a/common/src/main/java/org/openecomp/mso/client/exceptions/SDNOException.java b/common/src/main/java/org/onap/so/client/exceptions/SDNOException.java index d55f962662..1e14308ad5 100644 --- a/common/src/main/java/org/openecomp/mso/client/exceptions/SDNOException.java +++ b/common/src/main/java/org/onap/so/client/exceptions/SDNOException.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.exceptions; +package org.onap.so.client.exceptions; public class SDNOException extends Exception { diff --git a/common/src/main/java/org/openecomp/mso/client/aai/Format.java b/common/src/main/java/org/onap/so/client/graphinventory/Format.java index e4008151ef..5cbf1320c1 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/Format.java +++ b/common/src/main/java/org/onap/so/client/graphinventory/Format.java @@ -2,14 +2,14 @@ * ============LICENSE_START======================================================= * ONAP - SO * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai; +package org.onap.so.client.graphinventory; public enum Format { diff --git a/common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryClient.java b/common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryClient.java new file mode 100644 index 0000000000..0d10c21886 --- /dev/null +++ b/common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryClient.java @@ -0,0 +1,48 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.client.graphinventory; + +import java.net.URI; + +import org.onap.so.client.RestClient; +import org.onap.so.client.RestProperties; +import org.onap.so.client.RestPropertiesLoader; +import org.onap.so.client.graphinventory.entities.uri.GraphInventoryUri; + +public abstract class GraphInventoryClient { + + private RestProperties props; + protected GraphInventoryClient(Class<? extends RestProperties> propertiesClass) { + + RestProperties props = RestPropertiesLoader.getInstance().getNewImpl(propertiesClass); + this.props = props; + } + protected abstract URI constructPath(GraphInventoryUri uri); + + protected abstract RestClient createClient(GraphInventoryUri uri); + + protected <T extends RestProperties> T getRestProperties() { + if (props == null) { + throw new IllegalStateException("No RestProperty implementation found on classpath"); + } + return (T)props; + } +} diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIObjectName.java b/common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryObjectName.java index c7459d31b5..4543d8523b 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/AAIObjectName.java +++ b/common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryObjectName.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,11 +18,11 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai; +package org.onap.so.client.graphinventory; import com.google.common.base.CaseFormat; -public interface AAIObjectName { +public interface GraphInventoryObjectName { public String typeName(); public String typeName(CaseFormat format); diff --git a/common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryObjectPlurals.java b/common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryObjectPlurals.java new file mode 100644 index 0000000000..ba48eb279f --- /dev/null +++ b/common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryObjectPlurals.java @@ -0,0 +1,25 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.client.graphinventory; + +public interface GraphInventoryObjectPlurals extends GraphInventoryObjectName, GraphInventoryObjectUriTemplate, GraphInventoryObjectUriPartial { + +} diff --git a/common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryObjectType.java b/common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryObjectType.java new file mode 100644 index 0000000000..453becb75a --- /dev/null +++ b/common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryObjectType.java @@ -0,0 +1,25 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.client.graphinventory; + +public interface GraphInventoryObjectType extends GraphInventoryObjectName, GraphInventoryObjectUriTemplate, GraphInventoryObjectUriPartial { + +} diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIObjectUriPartial.java b/common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryObjectUriPartial.java index 3fb867d6fa..0987221b0d 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/AAIObjectUriPartial.java +++ b/common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryObjectUriPartial.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,9 +18,9 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai; +package org.onap.so.client.graphinventory; -public interface AAIObjectUriPartial { +public interface GraphInventoryObjectUriPartial { public String partialUri(); } diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIObjectUriTemplate.java b/common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryObjectUriTemplate.java index 397b66d547..e231ddb811 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/AAIObjectUriTemplate.java +++ b/common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryObjectUriTemplate.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,9 +18,9 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai; +package org.onap.so.client.graphinventory; -public interface AAIObjectUriTemplate { +public interface GraphInventoryObjectUriTemplate { public String uriTemplate(); } diff --git a/common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryVersion.java b/common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryVersion.java new file mode 100644 index 0000000000..3b7dba70f8 --- /dev/null +++ b/common/src/main/java/org/onap/so/client/graphinventory/GraphInventoryVersion.java @@ -0,0 +1,25 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.client.graphinventory; + +public interface GraphInventoryVersion { + +} diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/uri/Depth.java b/common/src/main/java/org/onap/so/client/graphinventory/entities/uri/Depth.java index 7522ea33d1..1205511d11 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/entities/uri/Depth.java +++ b/common/src/main/java/org/onap/so/client/graphinventory/entities/uri/Depth.java @@ -2,14 +2,14 @@ * ============LICENSE_START======================================================= * ONAP - SO * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai.entities.uri; +package org.onap.so.client.graphinventory.entities.uri; public enum Depth { ZERO("0"), @@ -41,5 +41,4 @@ public enum Depth { public String toString() { return this.depth; } - } diff --git a/common/src/main/java/org/onap/so/client/graphinventory/entities/uri/GraphInventoryResourceUri.java b/common/src/main/java/org/onap/so/client/graphinventory/entities/uri/GraphInventoryResourceUri.java new file mode 100644 index 0000000000..08e7304978 --- /dev/null +++ b/common/src/main/java/org/onap/so/client/graphinventory/entities/uri/GraphInventoryResourceUri.java @@ -0,0 +1,44 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.client.graphinventory.entities.uri; + +import org.onap.so.client.graphinventory.Format; +import org.onap.so.client.graphinventory.entities.uri.Depth; +import org.onap.so.client.graphinventory.GraphInventoryObjectPlurals; +import org.onap.so.client.graphinventory.GraphInventoryObjectType; + +public interface GraphInventoryResourceUri extends GraphInventoryUri { + public GraphInventoryResourceUri relationshipAPI(); + public GraphInventoryResourceUri relatedTo(GraphInventoryObjectPlurals plural); + public GraphInventoryResourceUri relatedTo(GraphInventoryObjectType type, String... values); + public GraphInventoryResourceUri resourceVersion(String version); + public GraphInventoryResourceUri format(Format format); + @Override + public GraphInventoryResourceUri depth(Depth depth); + @Override + public GraphInventoryResourceUri nodesOnly(boolean nodesOnly); + @Override + public GraphInventoryResourceUri queryParam(String name, String... values); + @Override + public GraphInventoryResourceUri replaceQueryParam(String name, String... values); + @Override + public GraphInventoryResourceUri clone(); +} diff --git a/common/src/main/java/org/onap/so/client/graphinventory/entities/uri/GraphInventoryUri.java b/common/src/main/java/org/onap/so/client/graphinventory/entities/uri/GraphInventoryUri.java new file mode 100644 index 0000000000..8a25c23895 --- /dev/null +++ b/common/src/main/java/org/onap/so/client/graphinventory/entities/uri/GraphInventoryUri.java @@ -0,0 +1,60 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.client.graphinventory.entities.uri; + +import java.net.URI; +import java.util.Map; + +import org.onap.so.client.graphinventory.entities.uri.Depth; +import org.onap.so.client.graphinventory.GraphInventoryObjectType; + +public interface GraphInventoryUri { + + public URI build(); + /** + * By default GraphInventory enforces a depth of 1. Some objects can be told to retrieve objects + * nested beneath them by increasing this number. + * + * You can use 0 to restrict the returned information to only the object you requested + * You can use all to retrieve all nested objects (this should only be used if you really need a massive amount of information and are caching the retrieval) + * @param depth + * @return + */ + public GraphInventoryUri depth(Depth depth); + /** + * Makes client only return object fields, no relationships + * + * @return + */ + public GraphInventoryUri nodesOnly(boolean nodesOnly); + public GraphInventoryUri queryParam(String name, String... values); + public GraphInventoryUri replaceQueryParam(String name, String... values); + public GraphInventoryUri clone(); + + /** + * returns all key values of the URI as a map. Key names can be found in {@link GraphInventoryObjectType} + * @return + */ + public Map<String, String> getURIKeys(); + public GraphInventoryObjectType getObjectType(); + public boolean equals(Object o); + public int hashCode(); +} diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/uri/SimpleUri.java b/common/src/main/java/org/onap/so/client/graphinventory/entities/uri/SimpleUri.java index f3e6fad48b..9c86ec6348 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/entities/uri/SimpleUri.java +++ b/common/src/main/java/org/onap/so/client/graphinventory/entities/uri/SimpleUri.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai.entities.uri; +package org.onap.so.client.graphinventory.entities.uri; import java.io.UnsupportedEncodingException; import java.net.URI; @@ -28,50 +28,60 @@ import java.util.Map; import javax.ws.rs.core.UriBuilder; -import org.openecomp.mso.client.aai.AAIObjectPlurals; -import org.openecomp.mso.client.aai.AAIObjectType; -import org.openecomp.mso.client.aai.entities.uri.parsers.UriParser; -import org.openecomp.mso.client.aai.entities.uri.parsers.UriParserSpringImpl; +import org.apache.commons.lang3.builder.HashCodeBuilder; +import org.onap.so.client.graphinventory.Format; +import org.onap.so.client.aai.entities.uri.AAIUri; +import org.onap.so.client.graphinventory.entities.uri.Depth; +import org.onap.so.client.graphinventory.entities.uri.parsers.UriParser; +import org.onap.so.client.graphinventory.entities.uri.parsers.UriParserSpringImpl; +import org.onap.so.client.graphinventory.GraphInventoryObjectPlurals; +import org.onap.so.client.graphinventory.GraphInventoryObjectType; import org.springframework.web.util.UriUtils; -public class SimpleUri implements AAIResourceUri { +public class SimpleUri implements GraphInventoryResourceUri { protected UriBuilder internalURI; protected final static String relationshipAPI = "/relationship-list/relationship"; protected final static String relatedTo = "/related-to"; protected final Object[] values; - protected final AAIObjectType type; - protected final AAIObjectPlurals pluralType; - protected SimpleUri(AAIObjectType type, Object... values) { + protected final GraphInventoryObjectType type; + protected final GraphInventoryObjectPlurals pluralType; + protected SimpleUri(GraphInventoryObjectType type, Object... values) { this.type = type; this.pluralType = null; this.internalURI = UriBuilder.fromPath(this.getTemplate(type)); this.values = values; } - protected SimpleUri(AAIObjectType type, URI uri) { + protected SimpleUri(GraphInventoryObjectType type, URI uri) { this.type = type; this.pluralType = null; this.internalURI = UriBuilder.fromPath(uri.getRawPath().replaceAll("/aai/v\\d+", "")); this.values = new Object[0]; } - protected SimpleUri(AAIObjectType type, UriBuilder builder, Object... values) { + protected SimpleUri(GraphInventoryObjectType type, UriBuilder builder, Object... values) { this.internalURI = builder; this.values = values; this.type = type; this.pluralType = null; } - protected SimpleUri(AAIObjectPlurals type, UriBuilder builder, Object... values) { + protected SimpleUri(GraphInventoryObjectPlurals type, UriBuilder builder, Object... values) { this.internalURI = builder; this.values = values; this.type = null; this.pluralType = type; } - protected SimpleUri(AAIObjectPlurals type) { + protected SimpleUri(GraphInventoryObjectPlurals type) { this.type = null; this.pluralType = type; this.internalURI = UriBuilder.fromPath(this.getTemplate(type)); this.values = new Object[0]; } + protected SimpleUri(GraphInventoryObjectPlurals type, Object... values) { + this.type = null; + this.pluralType = type; + this.internalURI = UriBuilder.fromPath(this.getTemplate(type)); + this.values = values; + } @Override public SimpleUri relationshipAPI() { @@ -80,20 +90,20 @@ public class SimpleUri implements AAIResourceUri { } @Override - public SimpleUri relatedTo(AAIObjectPlurals plural) { + public SimpleUri relatedTo(GraphInventoryObjectPlurals plural) { this.internalURI = internalURI.path(relatedTo).path(plural.partialUri()); return this; } @Override - public SimpleUri relatedTo(AAIObjectType type, String... values) { + public SimpleUri relatedTo(GraphInventoryObjectType type, String... values) { this.internalURI = internalURI.path(relatedTo).path(UriBuilder.fromPath(type.partialUri()).build(values).toString()); return this; } @Override public SimpleUri resourceVersion(String version) { - this.internalURI = internalURI.queryParam("resource-version", version); + this.internalURI = internalURI.replaceQueryParam("resource-version", version); return this; } @@ -104,6 +114,12 @@ public class SimpleUri implements AAIResourceUri { } @Override + public SimpleUri replaceQueryParam(String name, String... values) { + this.internalURI = internalURI.replaceQueryParam(name, values); + return this; + } + + @Override public URI build() { return build(this.values); } @@ -152,7 +168,7 @@ public class SimpleUri implements AAIResourceUri { } @Override - public AAIObjectType getObjectType() { + public GraphInventoryObjectType getObjectType() { return this.type; } @@ -163,24 +179,37 @@ public class SimpleUri implements AAIResourceUri { } return false; } + + @Override + public int hashCode() { + return new HashCodeBuilder().append(this.build()).toHashCode(); + } + + @Override public SimpleUri depth(Depth depth) { - this.internalURI.queryParam("depth", depth.toString()); + this.internalURI.replaceQueryParam("depth", depth.toString()); return this; } @Override public SimpleUri nodesOnly(boolean nodesOnly) { if (nodesOnly) { - this.internalURI.queryParam("nodes-only", ""); + this.internalURI.replaceQueryParam("nodes-only", ""); } return this; } - protected String getTemplate(AAIObjectType type) { + @Override + public SimpleUri format(Format format) { + this.internalURI.replaceQueryParam("format", format); + return this; + } + + protected String getTemplate(GraphInventoryObjectType type) { return type.uriTemplate(); } - protected String getTemplate(AAIObjectPlurals type) { + protected String getTemplate(GraphInventoryObjectPlurals type) { return type.uriTemplate(); } diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/uri/parsers/UriParser.java b/common/src/main/java/org/onap/so/client/graphinventory/entities/uri/parsers/UriParser.java index 8e37d595b0..03d83ebfb6 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/entities/uri/parsers/UriParser.java +++ b/common/src/main/java/org/onap/so/client/graphinventory/entities/uri/parsers/UriParser.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai.entities.uri.parsers; +package org.onap.so.client.graphinventory.entities.uri.parsers; import java.util.Map; import java.util.Set; @@ -26,4 +26,4 @@ import java.util.Set; public interface UriParser { public Set<String> getVariables(); public Map<String, String> parse(final String uri); -}
\ No newline at end of file +} diff --git a/common/src/main/java/org/openecomp/mso/client/aai/entities/uri/parsers/UriParserSpringImpl.java b/common/src/main/java/org/onap/so/client/graphinventory/entities/uri/parsers/UriParserSpringImpl.java index 75f9005125..aeaa923d1b 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/entities/uri/parsers/UriParserSpringImpl.java +++ b/common/src/main/java/org/onap/so/client/graphinventory/entities/uri/parsers/UriParserSpringImpl.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai.entities.uri.parsers; +package org.onap.so.client.graphinventory.entities.uri.parsers; import java.io.UnsupportedEncodingException; import java.util.Collections; import java.util.LinkedHashMap; @@ -65,4 +65,4 @@ public class UriParserSpringImpl implements UriParser { return result; } -}
\ No newline at end of file +} diff --git a/common/src/main/java/org/openecomp/mso/client/aai/exceptions/BulkProcessFailed.java b/common/src/main/java/org/onap/so/client/graphinventory/exceptions/BulkProcessFailed.java index ea64f54c33..0c973a8457 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/exceptions/BulkProcessFailed.java +++ b/common/src/main/java/org/onap/so/client/graphinventory/exceptions/BulkProcessFailed.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai.exceptions; +package org.onap.so.client.graphinventory.exceptions; public class BulkProcessFailed extends Exception { diff --git a/common/src/main/java/org/onap/so/client/graphinventory/exceptions/GraphInventoryPatchDepthExceededException.java b/common/src/main/java/org/onap/so/client/graphinventory/exceptions/GraphInventoryPatchDepthExceededException.java new file mode 100644 index 0000000000..07af13049c --- /dev/null +++ b/common/src/main/java/org/onap/so/client/graphinventory/exceptions/GraphInventoryPatchDepthExceededException.java @@ -0,0 +1,31 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.client.graphinventory.exceptions; + +public class GraphInventoryPatchDepthExceededException extends RuntimeException { + + private static final long serialVersionUID = -3740429832086738907L; + + + public GraphInventoryPatchDepthExceededException(String payload) { + super("Object exceeds allowed depth for update action: " + payload); + } +} diff --git a/common/src/main/java/org/openecomp/mso/client/aai/exceptions/AAIPayloadException.java b/common/src/main/java/org/onap/so/client/graphinventory/exceptions/GraphInventoryPayloadException.java index 35842204ac..24a6e5ccf9 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/exceptions/AAIPayloadException.java +++ b/common/src/main/java/org/onap/so/client/graphinventory/exceptions/GraphInventoryPayloadException.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,21 +18,21 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai.exceptions; +package org.onap.so.client.graphinventory.exceptions; -public class AAIPayloadException extends Exception { +public class GraphInventoryPayloadException extends Exception { private static final long serialVersionUID = -5712783905947711065L; - public AAIPayloadException(Throwable t) { + public GraphInventoryPayloadException(Throwable t) { super(t); } - public AAIPayloadException(String s, Throwable t) { + public GraphInventoryPayloadException(String s, Throwable t) { super(s, t); } - public AAIPayloadException(String s) { + public GraphInventoryPayloadException(String s) { super(s); } diff --git a/common/src/main/java/org/openecomp/mso/client/aai/exceptions/AAIUriComputationException.java b/common/src/main/java/org/onap/so/client/graphinventory/exceptions/GraphInventoryUriComputationException.java index 4d9f320cc8..51747d495a 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/exceptions/AAIUriComputationException.java +++ b/common/src/main/java/org/onap/so/client/graphinventory/exceptions/GraphInventoryUriComputationException.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,17 +18,17 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai.exceptions; +package org.onap.so.client.graphinventory.exceptions; -public class AAIUriComputationException extends RuntimeException { +public class GraphInventoryUriComputationException extends RuntimeException { private static final long serialVersionUID = 5187931752227522034L; - public AAIUriComputationException(String s) { + public GraphInventoryUriComputationException(String s) { super(s); } - public AAIUriComputationException(Throwable t) { + public GraphInventoryUriComputationException(Throwable t) { super(t); } } diff --git a/common/src/main/java/org/openecomp/mso/client/aai/exceptions/AAIUriNotFoundException.java b/common/src/main/java/org/onap/so/client/graphinventory/exceptions/GraphInventoryUriNotFoundException.java index 3e373946ce..d2f47a5b00 100644 --- a/common/src/main/java/org/openecomp/mso/client/aai/exceptions/AAIUriNotFoundException.java +++ b/common/src/main/java/org/onap/so/client/graphinventory/exceptions/GraphInventoryUriNotFoundException.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,12 +18,12 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.aai.exceptions; +package org.onap.so.client.graphinventory.exceptions; -public class AAIUriNotFoundException extends Exception { +public class GraphInventoryUriNotFoundException extends Exception { private static final long serialVersionUID = 2789643165122257833L; - public AAIUriNotFoundException(String message) { + public GraphInventoryUriNotFoundException(String message) { super(message); } } diff --git a/common/src/main/java/org/openecomp/mso/client/grm/GRMAction.java b/common/src/main/java/org/onap/so/client/grm/GRMAction.java index 50544bab70..376c736037 100644 --- a/common/src/main/java/org/openecomp/mso/client/grm/GRMAction.java +++ b/common/src/main/java/org/onap/so/client/grm/GRMAction.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.grm; +package org.onap.so.client.grm; public enum GRMAction { diff --git a/common/src/main/java/org/openecomp/mso/client/grm/GRMClient.java b/common/src/main/java/org/onap/so/client/grm/GRMClient.java index 5b5f269731..84e25b9ce4 100644 --- a/common/src/main/java/org/openecomp/mso/client/grm/GRMClient.java +++ b/common/src/main/java/org/onap/so/client/grm/GRMClient.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,14 +18,14 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.grm; +package org.onap.so.client.grm; -import org.openecomp.mso.client.grm.beans.ServiceEndPointList; -import org.openecomp.mso.client.grm.beans.ServiceEndPointLookup; -import org.openecomp.mso.client.grm.beans.ServiceEndPointLookupRequest; -import org.openecomp.mso.client.grm.beans.ServiceEndPointRequest; -import org.openecomp.mso.client.grm.beans.VersionLookup; -import org.openecomp.mso.client.grm.exceptions.GRMClientCallFailed; +import org.onap.so.client.grm.beans.ServiceEndPointList; +import org.onap.so.client.grm.beans.ServiceEndPointLookup; +import org.onap.so.client.grm.beans.ServiceEndPointLookupRequest; +import org.onap.so.client.grm.beans.ServiceEndPointRequest; +import org.onap.so.client.grm.beans.VersionLookup; +import org.onap.so.client.grm.exceptions.GRMClientCallFailed; public class GRMClient { diff --git a/common/src/main/java/org/openecomp/mso/client/grm/GRMDefaultPropertiesImpl.java b/common/src/main/java/org/onap/so/client/grm/GRMDefaultPropertiesImpl.java index 3bdc769321..b38072e769 100644 --- a/common/src/main/java/org/openecomp/mso/client/grm/GRMDefaultPropertiesImpl.java +++ b/common/src/main/java/org/onap/so/client/grm/GRMDefaultPropertiesImpl.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.grm; +package org.onap.so.client.grm; import java.net.MalformedURLException; import java.net.URL; @@ -32,7 +32,7 @@ public class GRMDefaultPropertiesImpl implements GRMProperties { @Override public URL getEndpoint() throws MalformedURLException { - return new URL("http://localhost:28090"); + return new URL("http://localhost:47389"); } @Override diff --git a/common/src/main/java/org/openecomp/mso/client/grm/GRMProperties.java b/common/src/main/java/org/onap/so/client/grm/GRMProperties.java index 6fbbb21a8a..da9f215aac 100644 --- a/common/src/main/java/org/openecomp/mso/client/grm/GRMProperties.java +++ b/common/src/main/java/org/onap/so/client/grm/GRMProperties.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,9 +18,9 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.grm; +package org.onap.so.client.grm; -import org.openecomp.mso.client.RestProperties; +import org.onap.so.client.RestProperties; public interface GRMProperties extends RestProperties { public String getDefaultVersion(); diff --git a/common/src/main/java/org/openecomp/mso/client/grm/GRMPropertiesLoader.java b/common/src/main/java/org/onap/so/client/grm/GRMPropertiesLoader.java index 9323e22065..485b9b0d15 100644 --- a/common/src/main/java/org/openecomp/mso/client/grm/GRMPropertiesLoader.java +++ b/common/src/main/java/org/onap/so/client/grm/GRMPropertiesLoader.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.grm; +package org.onap.so.client.grm; import java.util.Iterator; import java.util.ServiceLoader; diff --git a/common/src/main/java/org/openecomp/mso/client/grm/GRMRestClient.java b/common/src/main/java/org/onap/so/client/grm/GRMRestClient.java index 7a81d7e7ec..ce16ccaaaa 100644 --- a/common/src/main/java/org/openecomp/mso/client/grm/GRMRestClient.java +++ b/common/src/main/java/org/onap/so/client/grm/GRMRestClient.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,20 +18,17 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.grm; +package org.onap.so.client.grm; import java.net.URI; import java.util.Base64; import java.util.Map; import java.util.Optional; -import java.util.UUID; -import javax.ws.rs.client.ClientResponseFilter; - -import org.openecomp.mso.client.ResponseExceptionMapperImpl; -import org.openecomp.mso.client.RestProperties; -import org.openecomp.mso.client.policy.RestClient; +import org.onap.so.client.RestClient; +import org.onap.so.client.RestProperties; +import org.onap.so.utils.TargetEntity; public class GRMRestClient extends RestClient { @@ -39,23 +36,19 @@ public class GRMRestClient extends RestClient { private final String password; public GRMRestClient(RestProperties props, URI path, String username, String password) { - super(props, UUID.randomUUID(), Optional.of(path)); + super(props, Optional.of(path)); this.username = username; this.password = password; } + @Override + public TargetEntity getTargetEntity(){ + return TargetEntity.GRM; + } + @Override protected void initializeHeaderMap(Map<String, String> headerMap) { headerMap.put("Authorization", "Basic " + Base64.getEncoder().encodeToString(new String(username + ":" + password).getBytes())); } - @Override - protected Optional<ClientResponseFilter> addResponseFilter() { - return Optional.of(new ResponseExceptionMapperImpl()); - } - - @Override - public RestClient addRequestId(UUID requestId) { - return this; - } } diff --git a/common/src/main/java/org/openecomp/mso/client/grm/GRMRestInvoker.java b/common/src/main/java/org/onap/so/client/grm/GRMRestInvoker.java index d706be3f16..3045cb35f4 100644 --- a/common/src/main/java/org/openecomp/mso/client/grm/GRMRestInvoker.java +++ b/common/src/main/java/org/onap/so/client/grm/GRMRestInvoker.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,14 +18,14 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.grm; +package org.onap.so.client.grm; import java.net.URI; import java.util.Base64; import javax.ws.rs.core.UriBuilder; -import org.openecomp.mso.client.RestPropertiesLoader; -import org.openecomp.mso.client.policy.RestClient; + +import org.onap.so.client.RestClient; public class GRMRestInvoker { diff --git a/common/src/main/java/org/openecomp/mso/client/grm/beans/OperationalInfo.java b/common/src/main/java/org/onap/so/client/grm/beans/OperationalInfo.java index c5f5a7a7af..85e15f597c 100644 --- a/common/src/main/java/org/openecomp/mso/client/grm/beans/OperationalInfo.java +++ b/common/src/main/java/org/onap/so/client/grm/beans/OperationalInfo.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,9 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.grm.beans; +package org.onap.so.client.grm.beans; + +import java.io.Serializable; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; @@ -28,8 +30,12 @@ import com.fasterxml.jackson.annotation.JsonPropertyOrder; @JsonInclude(JsonInclude.Include.NON_NULL) @JsonIgnoreProperties(ignoreUnknown = true) @JsonPropertyOrder({ "createdBy", "updatedBy", "createdTimestamp", "updatedTimestamp" }) -public class OperationalInfo { +public class OperationalInfo implements Serializable{ + /** + * + */ + private static final long serialVersionUID = -7213334079745439793L; @JsonProperty("createdBy") private String createdBy; @JsonProperty("updatedBy") @@ -79,4 +85,4 @@ public class OperationalInfo { this.updatedTimestamp = updatedTimestamp; } -}
\ No newline at end of file +} diff --git a/common/src/main/java/org/openecomp/mso/client/grm/beans/Property.java b/common/src/main/java/org/onap/so/client/grm/beans/Property.java index eff1659102..705db95222 100644 --- a/common/src/main/java/org/openecomp/mso/client/grm/beans/Property.java +++ b/common/src/main/java/org/onap/so/client/grm/beans/Property.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,9 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.grm.beans; +package org.onap.so.client.grm.beans; + +import java.io.Serializable; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; @@ -28,8 +30,12 @@ import com.fasterxml.jackson.annotation.JsonPropertyOrder; @JsonInclude(JsonInclude.Include.NON_NULL) @JsonIgnoreProperties(ignoreUnknown = true) @JsonPropertyOrder({ "name", "value" }) -public class Property { +public class Property implements Serializable{ + /** + * + */ + private static final long serialVersionUID = -6060749559638446881L; @JsonProperty("name") private String name; @JsonProperty("value") @@ -55,4 +61,4 @@ public class Property { this.value = value; } -}
\ No newline at end of file +} diff --git a/common/src/main/java/org/openecomp/mso/client/grm/beans/ServiceEndPoint.java b/common/src/main/java/org/onap/so/client/grm/beans/ServiceEndPoint.java index a753afbe90..e739f00c9a 100644 --- a/common/src/main/java/org/openecomp/mso/client/grm/beans/ServiceEndPoint.java +++ b/common/src/main/java/org/onap/so/client/grm/beans/ServiceEndPoint.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.grm.beans; +package org.onap.so.client.grm.beans; import java.io.Serializable; import java.util.List; diff --git a/common/src/main/java/org/openecomp/mso/client/grm/beans/ServiceEndPointList.java b/common/src/main/java/org/onap/so/client/grm/beans/ServiceEndPointList.java index 0faf1fb826..19bbe69cf2 100644 --- a/common/src/main/java/org/openecomp/mso/client/grm/beans/ServiceEndPointList.java +++ b/common/src/main/java/org/onap/so/client/grm/beans/ServiceEndPointList.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.grm.beans; +package org.onap.so.client.grm.beans; import java.util.List; @@ -45,4 +45,4 @@ public class ServiceEndPointList { this.serviceEndPointList = serviceEndPointList; } -}
\ No newline at end of file +} diff --git a/common/src/main/java/org/openecomp/mso/client/grm/beans/ServiceEndPointLookup.java b/common/src/main/java/org/onap/so/client/grm/beans/ServiceEndPointLookup.java index 37e23795e9..cab10e64f4 100644 --- a/common/src/main/java/org/openecomp/mso/client/grm/beans/ServiceEndPointLookup.java +++ b/common/src/main/java/org/onap/so/client/grm/beans/ServiceEndPointLookup.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.grm.beans; +package org.onap.so.client.grm.beans; import java.io.Serializable; diff --git a/common/src/main/java/org/openecomp/mso/client/grm/beans/ServiceEndPointLookupRequest.java b/common/src/main/java/org/onap/so/client/grm/beans/ServiceEndPointLookupRequest.java index fc1992c763..5e886300dd 100644 --- a/common/src/main/java/org/openecomp/mso/client/grm/beans/ServiceEndPointLookupRequest.java +++ b/common/src/main/java/org/onap/so/client/grm/beans/ServiceEndPointLookupRequest.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,13 +18,8 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.grm.beans; +package org.onap.so.client.grm.beans; -import java.util.HashMap; -import java.util.Map; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; @@ -60,4 +55,4 @@ public class ServiceEndPointLookupRequest { this.env = env; } -}
\ No newline at end of file +} diff --git a/common/src/main/java/org/openecomp/mso/client/grm/beans/ServiceEndPointRequest.java b/common/src/main/java/org/onap/so/client/grm/beans/ServiceEndPointRequest.java index 324fe9f32a..f7ea352f21 100644 --- a/common/src/main/java/org/openecomp/mso/client/grm/beans/ServiceEndPointRequest.java +++ b/common/src/main/java/org/onap/so/client/grm/beans/ServiceEndPointRequest.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,13 +18,8 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.grm.beans; +package org.onap.so.client.grm.beans; -import java.util.HashMap; -import java.util.Map; -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import com.fasterxml.jackson.annotation.JsonAnySetter; -import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; @@ -60,4 +55,4 @@ public class ServiceEndPointRequest { this.env = env; } -}
\ No newline at end of file +} diff --git a/common/src/main/java/org/openecomp/mso/client/grm/beans/Status.java b/common/src/main/java/org/onap/so/client/grm/beans/Status.java index 3c66c50a5c..8794139b67 100644 --- a/common/src/main/java/org/openecomp/mso/client/grm/beans/Status.java +++ b/common/src/main/java/org/onap/so/client/grm/beans/Status.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,9 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.grm.beans; +package org.onap.so.client.grm.beans; + +import java.io.Serializable; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; @@ -28,8 +30,12 @@ import com.fasterxml.jackson.annotation.JsonPropertyOrder; @JsonInclude(JsonInclude.Include.NON_NULL) @JsonIgnoreProperties(ignoreUnknown = true) @JsonPropertyOrder({ "status", "statusReasonCode", "statusReasonDescription", "statusCheckTime" }) -public class Status { +public class Status implements Serializable { + /** + * + */ + private static final long serialVersionUID = -3555636617671062648L; @JsonProperty("status") private String status; @JsonProperty("statusReasonCode") @@ -79,4 +85,4 @@ public class Status { this.statusCheckTime = statusCheckTime; } -}
\ No newline at end of file +} diff --git a/common/src/main/java/org/openecomp/mso/client/grm/beans/Version.java b/common/src/main/java/org/onap/so/client/grm/beans/Version.java index 1d4d959f02..fd1e5803ab 100644 --- a/common/src/main/java/org/openecomp/mso/client/grm/beans/Version.java +++ b/common/src/main/java/org/onap/so/client/grm/beans/Version.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,9 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.grm.beans; +package org.onap.so.client.grm.beans; + +import java.io.Serializable; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; @@ -28,8 +30,12 @@ import com.fasterxml.jackson.annotation.JsonPropertyOrder; @JsonInclude(JsonInclude.Include.NON_NULL) @JsonIgnoreProperties(ignoreUnknown = true) @JsonPropertyOrder({ "major", "minor", "patch" }) -public class Version { +public class Version implements Serializable{ + /** + * + */ + private static final long serialVersionUID = 7509573030831487410L; @JsonProperty("major") private Integer major; @JsonProperty("minor") @@ -66,4 +72,4 @@ public class Version { public void setPatch(String patch) { this.patch = patch; } -}
\ No newline at end of file +} diff --git a/common/src/main/java/org/openecomp/mso/client/grm/beans/VersionLookup.java b/common/src/main/java/org/onap/so/client/grm/beans/VersionLookup.java index b9d5a63450..0dc86b04d6 100644 --- a/common/src/main/java/org/openecomp/mso/client/grm/beans/VersionLookup.java +++ b/common/src/main/java/org/onap/so/client/grm/beans/VersionLookup.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.grm.beans; +package org.onap.so.client.grm.beans; import java.io.Serializable; @@ -46,4 +46,4 @@ public class VersionLookup implements Serializable { public void setMajor(Integer major) { this.major = major; } -}
\ No newline at end of file +} diff --git a/common/src/main/java/org/openecomp/mso/client/grm/exceptions/GRMClientCallFailed.java b/common/src/main/java/org/onap/so/client/grm/exceptions/GRMClientCallFailed.java index 60de57286d..7107d4027f 100644 --- a/common/src/main/java/org/openecomp/mso/client/grm/exceptions/GRMClientCallFailed.java +++ b/common/src/main/java/org/onap/so/client/grm/exceptions/GRMClientCallFailed.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.grm.exceptions; +package org.onap.so.client.grm.exceptions; public class GRMClientCallFailed extends Exception { diff --git a/common/src/main/java/org/openecomp/mso/client/policy/CommonObjectMapperProvider.java b/common/src/main/java/org/onap/so/client/policy/CommonObjectMapperProvider.java index 4f41b6441e..f2f6f0362f 100644 --- a/common/src/main/java/org/openecomp/mso/client/policy/CommonObjectMapperProvider.java +++ b/common/src/main/java/org/onap/so/client/policy/CommonObjectMapperProvider.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,9 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.policy; - -import javax.ws.rs.ext.ContextResolver; +package org.onap.so.client.policy; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.databind.DeserializationFeature; @@ -28,9 +26,9 @@ import com.fasterxml.jackson.databind.MapperFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; -public class CommonObjectMapperProvider implements ContextResolver<ObjectMapper> { +public class CommonObjectMapperProvider { - final ObjectMapper mapper; + protected ObjectMapper mapper; public CommonObjectMapperProvider() { @@ -42,8 +40,7 @@ public class CommonObjectMapperProvider implements ContextResolver<ObjectMapper> mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); } - @Override - public ObjectMapper getContext(Class<?> type) { + public ObjectMapper getMapper() { return mapper; } }
\ No newline at end of file diff --git a/common/src/main/java/org/openecomp/mso/client/policy/DecisionAttributes.java b/common/src/main/java/org/onap/so/client/policy/DecisionAttributes.java index 7b765ebb5f..951372db42 100644 --- a/common/src/main/java/org/openecomp/mso/client/policy/DecisionAttributes.java +++ b/common/src/main/java/org/onap/so/client/policy/DecisionAttributes.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.policy; +package org.onap.so.client.policy; diff --git a/common/src/main/java/org/openecomp/mso/client/policy/JettisonStyleMapperProvider.java b/common/src/main/java/org/onap/so/client/policy/JettisonStyleMapperProvider.java index 19579e810b..23b984a3d0 100644 --- a/common/src/main/java/org/openecomp/mso/client/policy/JettisonStyleMapperProvider.java +++ b/common/src/main/java/org/onap/so/client/policy/JettisonStyleMapperProvider.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,32 +18,28 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.policy; +package org.onap.so.client.policy; -import javax.ws.rs.ext.ContextResolver; +import org.springframework.stereotype.Component; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.MapperFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.module.jaxb.JaxbAnnotationModule; -public class JettisonStyleMapperProvider implements ContextResolver<ObjectMapper> { +@Component +public class JettisonStyleMapperProvider extends CommonObjectMapperProvider { - final ObjectMapper mapper; - public JettisonStyleMapperProvider() { mapper = new ObjectMapper(); + JaxbAnnotationModule jaxbModule = new JaxbAnnotationModule(); mapper.setSerializationInclusion(Include.NON_NULL); - mapper.enable(MapperFeature.USE_ANNOTATIONS); mapper.configure(SerializationFeature.WRAP_ROOT_VALUE, true); mapper.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true); mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + mapper.registerModule(jaxbModule); } - @Override - public ObjectMapper getContext(Class<?> type) { - return mapper; - } } diff --git a/common/src/main/java/org/openecomp/mso/client/policy/LoggingFilter.java b/common/src/main/java/org/onap/so/client/policy/LoggingFilter.java index b04069697e..83cf08f77f 100644 --- a/common/src/main/java/org/openecomp/mso/client/policy/LoggingFilter.java +++ b/common/src/main/java/org/onap/so/client/policy/LoggingFilter.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.policy; +package org.onap.so.client.policy; import java.io.BufferedInputStream; import java.io.ByteArrayOutputStream; @@ -39,14 +39,14 @@ import javax.ws.rs.ext.Provider; import javax.ws.rs.ext.WriterInterceptor; import javax.ws.rs.ext.WriterInterceptorContext; -import org.openecomp.mso.logger.MsoLogger; +import org.onap.so.logger.MsoLogger; @Provider @Priority(0) public class LoggingFilter implements ClientRequestFilter, ClientResponseFilter, WriterInterceptor { - private static final MsoLogger logger = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL); + private static final MsoLogger logger = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL, LoggingFilter.class); private static final String ENTITY_STREAM_PROPERTY = "LoggingFilter.entityStream"; private static final Charset DEFAULT_CHARSET = StandardCharsets.UTF_8; private final int maxEntitySize; diff --git a/common/src/main/java/org/openecomp/mso/client/policy/PolicyClient.java b/common/src/main/java/org/onap/so/client/policy/PolicyClient.java index defd11bc99..74c1e398db 100644 --- a/common/src/main/java/org/openecomp/mso/client/policy/PolicyClient.java +++ b/common/src/main/java/org/onap/so/client/policy/PolicyClient.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,11 +18,10 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.policy; +package org.onap.so.client.policy; -import org.openecomp.mso.client.policy.entities.AllowedTreatments; -import org.openecomp.mso.client.policy.entities.DictionaryData; -import org.openecomp.mso.client.policy.entities.PolicyDecision; +import org.onap.so.client.policy.entities.DictionaryData; +import org.onap.so.client.policy.entities.PolicyDecision; public interface PolicyClient { diff --git a/common/src/main/java/org/openecomp/mso/client/policy/PolicyClientImpl.java b/common/src/main/java/org/onap/so/client/policy/PolicyClientImpl.java index 0ce1911c82..1fd01e65ed 100644 --- a/common/src/main/java/org/openecomp/mso/client/policy/PolicyClientImpl.java +++ b/common/src/main/java/org/onap/so/client/policy/PolicyClientImpl.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,33 +18,35 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.policy; - -import org.openecomp.mso.client.RestPropertiesLoader; -import org.openecomp.mso.client.defaultproperties.PolicyRestPropertiesImpl; -import org.openecomp.mso.client.policy.entities.AllowedTreatments; -import org.openecomp.mso.client.policy.entities.Bbid; -import org.openecomp.mso.client.policy.entities.DecisionAttributes; -import org.openecomp.mso.client.policy.entities.DictionaryData; -import org.openecomp.mso.client.policy.entities.DictionaryItemsRequest; -import org.openecomp.mso.client.policy.entities.DictionaryJson; -import org.openecomp.mso.client.policy.entities.PolicyDecision; -import org.openecomp.mso.client.policy.entities.PolicyDecisionRequest; -import org.openecomp.mso.client.policy.entities.PolicyServiceType; -import org.openecomp.mso.client.policy.entities.Workstep; +package org.onap.so.client.policy; import java.util.List; -import com.att.eelf.configuration.EELFLogger; -import com.att.eelf.configuration.EELFManager; + +import org.onap.so.client.RestClient; +import org.onap.so.client.RestPropertiesLoader; +import org.onap.so.client.defaultproperties.PolicyRestPropertiesImpl; +import org.onap.so.client.policy.entities.AllowedTreatments; +import org.onap.so.client.policy.entities.Bbid; +import org.onap.so.client.policy.entities.DecisionAttributes; +import org.onap.so.client.policy.entities.DictionaryData; +import org.onap.so.client.policy.entities.DictionaryItemsRequest; +import org.onap.so.client.policy.entities.DictionaryJson; +import org.onap.so.client.policy.entities.PolicyDecision; +import org.onap.so.client.policy.entities.PolicyDecisionRequest; +import org.onap.so.client.policy.entities.PolicyServiceType; +import org.onap.so.client.policy.entities.Workstep; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + public class PolicyClientImpl implements PolicyClient { - protected final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger(); + private static Logger logger = LoggerFactory.getLogger(PolicyClientImpl.class); private PolicyRestProperties props; public PolicyClientImpl() { props = RestPropertiesLoader.getInstance().getNewImpl(PolicyRestProperties.class); if (props == null) { - metricsLogger.error("No RestProperty.PolicyRestProperties implementation found on classpath"); + logger.error("No RestProperty.PolicyRestProperties implementation found on classpath"); props = new PolicyRestPropertiesImpl(); } } @@ -52,8 +54,8 @@ public class PolicyClientImpl implements PolicyClient { String errorCode) { DecisionAttributes decisionAttributes = new DecisionAttributes(); decisionAttributes.setServiceType(serviceType); - decisionAttributes.setVNFType(vnfType); - decisionAttributes.setBBID(bbID); + decisionAttributes.setvNFType(vnfType); + decisionAttributes.setBbID(bbID); decisionAttributes.setWorkStep(workStep); decisionAttributes.setErrorCode(errorCode); @@ -87,7 +89,7 @@ public class PolicyClientImpl implements PolicyClient { return dictData; } } - metricsLogger.error("There is no AllowedTreatments with that specified parameter set"); + logger.error("There is no AllowedTreatments with that specified parameter set"); return null; } diff --git a/common/src/main/java/org/openecomp/mso/client/policy/PolicyRestClient.java b/common/src/main/java/org/onap/so/client/policy/PolicyRestClient.java index 77fec34de6..9427fa7eb9 100644 --- a/common/src/main/java/org/openecomp/mso/client/policy/PolicyRestClient.java +++ b/common/src/main/java/org/onap/so/client/policy/PolicyRestClient.java @@ -18,49 +18,37 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.policy; +package org.onap.so.client.policy; + -import java.net.MalformedURLException; import java.util.Map; import java.util.Optional; -import java.util.UUID; -import javax.ws.rs.client.ClientResponseFilter; import javax.ws.rs.core.UriBuilder; -import javax.ws.rs.core.UriBuilderException; -import org.openecomp.mso.client.ResponseExceptionMapperImpl; -import org.openecomp.mso.client.RestProperties; -import org.openecomp.mso.client.policy.entities.PolicyServiceType; -import org.springframework.stereotype.Service; +import org.onap.so.client.RestClient; +import org.onap.so.client.policy.entities.PolicyServiceType; +import org.onap.so.utils.TargetEntity; -@Service public class PolicyRestClient extends RestClient { - private static final UUID X_ECOMP_REQUESTID = UUID.randomUUID(); private final PolicyRestProperties properties; + public PolicyRestClient(PolicyRestProperties props, PolicyServiceType serviceType) { - super(props, UUID.randomUUID(), Optional.of(UriBuilder.fromPath(serviceType.toString()).build())); + super(props, Optional.of(UriBuilder.fromPath(serviceType.toString()).build())); this.properties = props; - this.getClient(); } + @Override + public TargetEntity getTargetEntity(){ + return TargetEntity.POLICY; + } + @Override protected void initializeHeaderMap(Map<String, String> headerMap) { headerMap.put("ClientAuth", properties.getClientAuth()); headerMap.put("Authorization", properties.getAuth()); headerMap.put("Environment", properties.getEnvironment()); - this.addRequestId(X_ECOMP_REQUESTID); - } - - @Override - protected Optional<ClientResponseFilter> addResponseFilter() { - return Optional.of(new ResponseExceptionMapperImpl()); } - @Override - public RestClient addRequestId(UUID requestId) { - this.headerMap.put("X-ECOMP-RequestID", requestId.toString()); - return this; - } -} +}
\ No newline at end of file diff --git a/common/src/main/java/org/openecomp/mso/client/policy/PolicyRestProperties.java b/common/src/main/java/org/onap/so/client/policy/PolicyRestProperties.java index d89bd54f66..1de6e8cd97 100644 --- a/common/src/main/java/org/openecomp/mso/client/policy/PolicyRestProperties.java +++ b/common/src/main/java/org/onap/so/client/policy/PolicyRestProperties.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,13 +18,9 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.policy; +package org.onap.so.client.policy; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Map; - -import org.openecomp.mso.client.RestProperties; +import org.onap.so.client.RestProperties; public interface PolicyRestProperties extends RestProperties { diff --git a/common/src/main/java/org/openecomp/mso/client/policy/entities/AllowedTreatments.java b/common/src/main/java/org/onap/so/client/policy/entities/AllowedTreatments.java index 50db843416..e82eca56b8 100644 --- a/common/src/main/java/org/openecomp/mso/client/policy/entities/AllowedTreatments.java +++ b/common/src/main/java/org/onap/so/client/policy/entities/AllowedTreatments.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.policy.entities; +package org.onap.so.client.policy.entities; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; @@ -102,4 +102,4 @@ this.responseMessage = responseMessage; return this; } -}
\ No newline at end of file +} diff --git a/common/src/main/java/org/openecomp/mso/client/policy/entities/Bbid.java b/common/src/main/java/org/onap/so/client/policy/entities/Bbid.java index 382b27a04b..34faa7df09 100644 --- a/common/src/main/java/org/openecomp/mso/client/policy/entities/Bbid.java +++ b/common/src/main/java/org/onap/so/client/policy/entities/Bbid.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,70 +18,70 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.policy.entities;
-
-import com.fasterxml.jackson.annotation.JsonInclude;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.annotation.JsonPropertyOrder;
-
-@JsonInclude(JsonInclude.Include.NON_NULL)
-@JsonPropertyOrder({
-"valueType",
-"string",
-"chars"
-})
-public class Bbid {
-
-@JsonProperty("valueType")
-private String valueType;
-@JsonProperty("string")
-private String string;
-@JsonProperty("chars")
-private String chars;
-
-@JsonProperty("valueType")
-public String getValueType() {
-return valueType;
- }
-
-@JsonProperty("valueType")
-public void setValueType(String valueType) {
-this.valueType = valueType;
- }
-
-public Bbid withValueType(String valueType) {
-this.valueType = valueType;
-return this;
- }
-
-@JsonProperty("string")
-public String getString() {
-return string;
- }
-
-@JsonProperty("string")
-public void setString(String string) {
-this.string = string;
- }
-
-public Bbid withString(String string) {
-this.string = string;
-return this;
- }
-
-@JsonProperty("chars")
-public String getChars() {
-return chars;
- }
-
-@JsonProperty("chars")
-public void setChars(String chars) {
-this.chars = chars;
- }
-
-public Bbid withChars(String chars) {
-this.chars = chars;
-return this;
- }
-
-}
\ No newline at end of file +package org.onap.so.client.policy.entities; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonPropertyOrder({ +"valueType", +"string", +"chars" +}) +public class Bbid { + +@JsonProperty("valueType") +private String valueType; +@JsonProperty("string") +private String string; +@JsonProperty("chars") +private String chars; + +@JsonProperty("valueType") +public String getValueType() { +return valueType; + } + +@JsonProperty("valueType") +public void setValueType(String valueType) { +this.valueType = valueType; + } + +public Bbid withValueType(String valueType) { +this.valueType = valueType; +return this; + } + +@JsonProperty("string") +public String getString() { +return string; + } + +@JsonProperty("string") +public void setString(String string) { +this.string = string; + } + +public Bbid withString(String string) { +this.string = string; +return this; + } + +@JsonProperty("chars") +public String getChars() { +return chars; + } + +@JsonProperty("chars") +public void setChars(String chars) { +this.chars = chars; + } + +public Bbid withChars(String chars) { +this.chars = chars; +return this; + } + +} diff --git a/common/src/main/java/org/openecomp/mso/client/policy/entities/DecisionAttributes.java b/common/src/main/java/org/onap/so/client/policy/entities/DecisionAttributes.java index 655f71f823..07db7d8568 100644 --- a/common/src/main/java/org/openecomp/mso/client/policy/entities/DecisionAttributes.java +++ b/common/src/main/java/org/onap/so/client/policy/entities/DecisionAttributes.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,8 +18,7 @@ * ============LICENSE_END========================================================= */ - -package org.openecomp.mso.client.policy.entities; +package org.onap.so.client.policy.entities; @@ -34,9 +33,9 @@ public class DecisionAttributes { @JsonProperty("ServiceType") private String serviceType; @JsonProperty("VNFType") - private String VNFType; + private String vNFType; @JsonProperty("BB_ID") - private String BBID; + private String bbID; @JsonProperty("WorkStep") private String workStep; @JsonProperty("ErrorCode") @@ -52,26 +51,6 @@ public class DecisionAttributes { this.serviceType = serviceType; } - @JsonProperty("VNFType") - public String getVNFType() { - return VNFType; - } - - @JsonProperty("VNFType") - public void setVNFType(String vNFType) { - this.VNFType = vNFType; - } - - @JsonProperty("BB_ID") - public String getBBID() { - return BBID; - } - - @JsonProperty("BB_ID") - public void setBBID(String bBID) { - this.BBID = bBID; - } - @JsonProperty("WorkStep") public String getWorkStep() { return workStep; @@ -91,4 +70,25 @@ public class DecisionAttributes { public void setErrorCode(String errorCode) { this.errorCode = errorCode; } + + @JsonProperty("VNFType") + public String getvNFType() { + return vNFType; + } + + @JsonProperty("VNFType") + public void setvNFType(String vNFType) { + this.vNFType = vNFType; + } + + @JsonProperty("BB_ID") + public String getBbID() { + return bbID; + } + + @JsonProperty("BB_ID") + public void setBbID(String bbID) { + this.bbID = bbID; + } + } diff --git a/common/src/main/java/org/openecomp/mso/client/policy/entities/DictionaryData.java b/common/src/main/java/org/onap/so/client/policy/entities/DictionaryData.java index 1ecf3366c7..8207999a80 100644 --- a/common/src/main/java/org/openecomp/mso/client/policy/entities/DictionaryData.java +++ b/common/src/main/java/org/onap/so/client/policy/entities/DictionaryData.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,88 +18,88 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.policy.entities;
-
-import com.fasterxml.jackson.annotation.JsonInclude;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.annotation.JsonPropertyOrder;
-
-@JsonInclude(JsonInclude.Include.NON_NULL)
-@JsonPropertyOrder({
-"id",
-"bbid",
-"workstep",
-"treatments"
-})
-public class DictionaryData {
-
-@JsonProperty("id")
-private Id id;
-@JsonProperty("bbid")
-private Bbid bbid;
-@JsonProperty("workstep")
-private Workstep workstep;
-@JsonProperty("treatments")
-private Treatments treatments;
-
-@JsonProperty("id")
-public Id getId() {
-return id;
- }
-
-@JsonProperty("id")
-public void setId(Id id) {
-this.id = id;
- }
-
-public DictionaryData withId(Id id) {
-this.id = id;
-return this;
- }
-
-@JsonProperty("bbid")
-public Bbid getBbid() {
-return bbid;
- }
-
-@JsonProperty("bbid")
-public void setBbid(Bbid bbid) {
-this.bbid = bbid;
- }
-
-public DictionaryData withBbid(Bbid bbid) {
-this.bbid = bbid;
-return this;
- }
-
-@JsonProperty("workstep")
-public Workstep getWorkstep() {
-return workstep;
- }
-
-@JsonProperty("workstep")
-public void setWorkstep(Workstep workstep) {
-this.workstep = workstep;
- }
-
-public DictionaryData withWorkstep(Workstep workstep) {
-this.workstep = workstep;
-return this;
- }
-
-@JsonProperty("treatments")
-public Treatments getTreatments() {
-return treatments;
- }
-
-@JsonProperty("treatments")
-public void setTreatments(Treatments treatments) {
-this.treatments = treatments;
- }
-
-public DictionaryData withTreatments(Treatments treatments) {
-this.treatments = treatments;
-return this;
- }
-
-}
\ No newline at end of file +package org.onap.so.client.policy.entities; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonPropertyOrder({ +"id", +"bbid", +"workstep", +"treatments" +}) +public class DictionaryData { + +@JsonProperty("id") +private Id id; +@JsonProperty("bbid") +private Bbid bbid; +@JsonProperty("workstep") +private Workstep workstep; +@JsonProperty("treatments") +private Treatments treatments; + +@JsonProperty("id") +public Id getId() { +return id; + } + +@JsonProperty("id") +public void setId(Id id) { +this.id = id; + } + +public DictionaryData withId(Id id) { +this.id = id; +return this; + } + +@JsonProperty("bbid") +public Bbid getBbid() { +return bbid; + } + +@JsonProperty("bbid") +public void setBbid(Bbid bbid) { +this.bbid = bbid; + } + +public DictionaryData withBbid(Bbid bbid) { +this.bbid = bbid; +return this; + } + +@JsonProperty("workstep") +public Workstep getWorkstep() { +return workstep; + } + +@JsonProperty("workstep") +public void setWorkstep(Workstep workstep) { +this.workstep = workstep; + } + +public DictionaryData withWorkstep(Workstep workstep) { +this.workstep = workstep; +return this; + } + +@JsonProperty("treatments") +public Treatments getTreatments() { +return treatments; + } + +@JsonProperty("treatments") +public void setTreatments(Treatments treatments) { +this.treatments = treatments; + } + +public DictionaryData withTreatments(Treatments treatments) { +this.treatments = treatments; +return this; + } + +} diff --git a/common/src/main/java/org/openecomp/mso/client/policy/entities/DictionaryItemsRequest.java b/common/src/main/java/org/onap/so/client/policy/entities/DictionaryItemsRequest.java index d37d0c6f13..8b063e83c7 100644 --- a/common/src/main/java/org/openecomp/mso/client/policy/entities/DictionaryItemsRequest.java +++ b/common/src/main/java/org/onap/so/client/policy/entities/DictionaryItemsRequest.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,8 +18,7 @@ * ============LICENSE_END========================================================= */ - -package org.openecomp.mso.client.policy.entities; +package org.onap.so.client.policy.entities; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/common/src/main/java/org/openecomp/mso/client/policy/entities/DictionaryJson.java b/common/src/main/java/org/onap/so/client/policy/entities/DictionaryJson.java index b6a95ae12a..097c9a5cb9 100644 --- a/common/src/main/java/org/openecomp/mso/client/policy/entities/DictionaryJson.java +++ b/common/src/main/java/org/onap/so/client/policy/entities/DictionaryJson.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,36 +18,37 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.policy.entities;
-
-import java.util.ArrayList;
-import java.util.List;
-import com.fasterxml.jackson.annotation.JsonInclude;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.annotation.JsonPropertyOrder;
-
-@JsonInclude(JsonInclude.Include.NON_NULL)
-@JsonPropertyOrder({
-"DictionaryDatas"
-})
-public class DictionaryJson {
-
-@JsonProperty("DictionaryDatas")
-private List<DictionaryData> dictionaryDatas = new ArrayList<DictionaryData>();
-
-@JsonProperty("DictionaryDatas")
-public List<DictionaryData> getDictionaryDatas() {
-return dictionaryDatas;
- }
-
-@JsonProperty("DictionaryDatas")
-public void setDictionaryDatas(List<DictionaryData> dictionaryDatas) {
-this.dictionaryDatas = dictionaryDatas;
- }
-
-public DictionaryJson withDictionaryDatas(List<DictionaryData> dictionaryDatas) {
-this.dictionaryDatas = dictionaryDatas;
-return this;
- }
-
-}
\ No newline at end of file +package org.onap.so.client.policy.entities; + +import java.util.ArrayList; +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonPropertyOrder({ +"DictionaryDatas" +}) +public class DictionaryJson { + +@JsonProperty("DictionaryDatas") +private List<DictionaryData> dictionaryDatas = new ArrayList<DictionaryData>(); + +@JsonProperty("DictionaryDatas") +public List<DictionaryData> getDictionaryDatas() { +return dictionaryDatas; + } + +@JsonProperty("DictionaryDatas") +public void setDictionaryDatas(List<DictionaryData> dictionaryDatas) { +this.dictionaryDatas = dictionaryDatas; + } + +public DictionaryJson withDictionaryDatas(List<DictionaryData> dictionaryDatas) { +this.dictionaryDatas = dictionaryDatas; +return this; + } + +} diff --git a/common/src/main/java/org/openecomp/mso/client/policy/entities/Id.java b/common/src/main/java/org/onap/so/client/policy/entities/Id.java index 728381a60b..af164d6866 100644 --- a/common/src/main/java/org/openecomp/mso/client/policy/entities/Id.java +++ b/common/src/main/java/org/onap/so/client/policy/entities/Id.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,52 +18,52 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.policy.entities;
-
-import com.fasterxml.jackson.annotation.JsonInclude;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.annotation.JsonPropertyOrder;
-
-@JsonInclude(JsonInclude.Include.NON_NULL)
-@JsonPropertyOrder({
-"integral",
-"valueType"
-})
-public class Id {
-
-@JsonProperty("integral")
-private Boolean integral;
-@JsonProperty("valueType")
-private String valueType;
-
-@JsonProperty("integral")
-public Boolean getIntegral() {
-return integral;
- }
-
-@JsonProperty("integral")
-public void setIntegral(Boolean integral) {
-this.integral = integral;
- }
-
-public Id withIntegral(Boolean integral) {
-this.integral = integral;
-return this;
- }
-
-@JsonProperty("valueType")
-public String getValueType() {
-return valueType;
- }
-
-@JsonProperty("valueType")
-public void setValueType(String valueType) {
-this.valueType = valueType;
- }
-
-public Id withValueType(String valueType) {
-this.valueType = valueType;
-return this;
- }
-
-}
\ No newline at end of file +package org.onap.so.client.policy.entities; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonPropertyOrder({ +"integral", +"valueType" +}) +public class Id { + +@JsonProperty("integral") +private Boolean integral; +@JsonProperty("valueType") +private String valueType; + +@JsonProperty("integral") +public Boolean getIntegral() { +return integral; + } + +@JsonProperty("integral") +public void setIntegral(Boolean integral) { +this.integral = integral; + } + +public Id withIntegral(Boolean integral) { +this.integral = integral; +return this; + } + +@JsonProperty("valueType") +public String getValueType() { +return valueType; + } + +@JsonProperty("valueType") +public void setValueType(String valueType) { +this.valueType = valueType; + } + +public Id withValueType(String valueType) { +this.valueType = valueType; +return this; + } + +} diff --git a/common/src/main/java/org/openecomp/mso/client/policy/PolicyDecision.java b/common/src/main/java/org/onap/so/client/policy/entities/PolicyDecision.java index 98c7e1558d..57c93927cb 100644 --- a/common/src/main/java/org/openecomp/mso/client/policy/PolicyDecision.java +++ b/common/src/main/java/org/onap/so/client/policy/entities/PolicyDecision.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.policy; +package org.onap.so.client.policy.entities; diff --git a/common/src/main/java/org/openecomp/mso/client/policy/PolicyDecisionRequest.java b/common/src/main/java/org/onap/so/client/policy/entities/PolicyDecisionRequest.java index c83fb19e34..b402e85e32 100644 --- a/common/src/main/java/org/openecomp/mso/client/policy/PolicyDecisionRequest.java +++ b/common/src/main/java/org/onap/so/client/policy/entities/PolicyDecisionRequest.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.policy; +package org.onap.so.client.policy.entities; import com.fasterxml.jackson.annotation.JsonInclude; diff --git a/common/src/main/java/org/openecomp/mso/client/policy/entities/PolicyServiceType.java b/common/src/main/java/org/onap/so/client/policy/entities/PolicyServiceType.java index 01f6738947..83dc6b7862 100644 --- a/common/src/main/java/org/openecomp/mso/client/policy/entities/PolicyServiceType.java +++ b/common/src/main/java/org/onap/so/client/policy/entities/PolicyServiceType.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.policy.entities; +package org.onap.so.client.policy.entities; public enum PolicyServiceType { GET_CONFIG("getConfig"), diff --git a/common/src/main/java/org/openecomp/mso/client/policy/entities/Treatments.java b/common/src/main/java/org/onap/so/client/policy/entities/Treatments.java index 13af8932aa..433d32756c 100644 --- a/common/src/main/java/org/openecomp/mso/client/policy/entities/Treatments.java +++ b/common/src/main/java/org/onap/so/client/policy/entities/Treatments.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,70 +18,70 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.policy.entities;
-
-import com.fasterxml.jackson.annotation.JsonInclude;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.annotation.JsonPropertyOrder;
-
-@JsonInclude(JsonInclude.Include.NON_NULL)
-@JsonPropertyOrder({
-"valueType",
-"string",
-"chars"
-})
-public class Treatments {
-
-@JsonProperty("valueType")
-private String valueType;
-@JsonProperty("string")
-private String string;
-@JsonProperty("chars")
-private String chars;
-
-@JsonProperty("valueType")
-public String getValueType() {
-return valueType;
- }
-
-@JsonProperty("valueType")
-public void setValueType(String valueType) {
-this.valueType = valueType;
- }
-
-public Treatments withValueType(String valueType) {
-this.valueType = valueType;
-return this;
- }
-
-@JsonProperty("string")
-public String getString() {
-return string;
- }
-
-@JsonProperty("string")
-public void setString(String string) {
-this.string = string;
- }
-
-public Treatments withString(String string) {
-this.string = string;
-return this;
- }
-
-@JsonProperty("chars")
-public String getChars() {
-return chars;
- }
-
-@JsonProperty("chars")
-public void setChars(String chars) {
-this.chars = chars;
- }
-
-public Treatments withChars(String chars) {
-this.chars = chars;
-return this;
- }
-
-}
\ No newline at end of file +package org.onap.so.client.policy.entities; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonPropertyOrder({ +"valueType", +"string", +"chars" +}) +public class Treatments { + +@JsonProperty("valueType") +private String valueType; +@JsonProperty("string") +private String string; +@JsonProperty("chars") +private String chars; + +@JsonProperty("valueType") +public String getValueType() { +return valueType; + } + +@JsonProperty("valueType") +public void setValueType(String valueType) { +this.valueType = valueType; + } + +public Treatments withValueType(String valueType) { +this.valueType = valueType; +return this; + } + +@JsonProperty("string") +public String getString() { +return string; + } + +@JsonProperty("string") +public void setString(String string) { +this.string = string; + } + +public Treatments withString(String string) { +this.string = string; +return this; + } + +@JsonProperty("chars") +public String getChars() { +return chars; + } + +@JsonProperty("chars") +public void setChars(String chars) { +this.chars = chars; + } + +public Treatments withChars(String chars) { +this.chars = chars; +return this; + } + +} diff --git a/common/src/main/java/org/openecomp/mso/client/policy/entities/Workstep.java b/common/src/main/java/org/onap/so/client/policy/entities/Workstep.java index 9d2adfe2c0..4fbd6e2f8a 100644 --- a/common/src/main/java/org/openecomp/mso/client/policy/entities/Workstep.java +++ b/common/src/main/java/org/onap/so/client/policy/entities/Workstep.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,71 +18,70 @@ * ============LICENSE_END========================================================= */ -
-package org.openecomp.mso.client.policy.entities;
-
-import com.fasterxml.jackson.annotation.JsonInclude;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.annotation.JsonPropertyOrder;
-
-@JsonInclude(JsonInclude.Include.NON_NULL)
-@JsonPropertyOrder({
-"valueType",
-"string",
-"chars"
-})
-public class Workstep {
-
-@JsonProperty("valueType")
-private String valueType;
-@JsonProperty("string")
-private String string;
-@JsonProperty("chars")
-private String chars;
-
-@JsonProperty("valueType")
-public String getValueType() {
-return valueType;
- }
-
-@JsonProperty("valueType")
-public void setValueType(String valueType) {
-this.valueType = valueType;
- }
-
-public Workstep withValueType(String valueType) {
-this.valueType = valueType;
-return this;
- }
-
-@JsonProperty("string")
-public String getString() {
-return string;
- }
-
-@JsonProperty("string")
-public void setString(String string) {
-this.string = string;
- }
-
-public Workstep withString(String string) {
-this.string = string;
-return this;
- }
-
-@JsonProperty("chars")
-public String getChars() {
-return chars;
- }
-
-@JsonProperty("chars")
-public void setChars(String chars) {
-this.chars = chars;
- }
-
-public Workstep withChars(String chars) {
-this.chars = chars;
-return this;
- }
-
-}
+package org.onap.so.client.policy.entities; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonPropertyOrder({ +"valueType", +"string", +"chars" +}) +public class Workstep { + +@JsonProperty("valueType") +private String valueType; +@JsonProperty("string") +private String string; +@JsonProperty("chars") +private String chars; + +@JsonProperty("valueType") +public String getValueType() { +return valueType; + } + +@JsonProperty("valueType") +public void setValueType(String valueType) { +this.valueType = valueType; + } + +public Workstep withValueType(String valueType) { +this.valueType = valueType; +return this; + } + +@JsonProperty("string") +public String getString() { +return string; + } + +@JsonProperty("string") +public void setString(String string) { +this.string = string; + } + +public Workstep withString(String string) { +this.string = string; +return this; + } + +@JsonProperty("chars") +public String getChars() { +return chars; + } + +@JsonProperty("chars") +public void setChars(String chars) { +this.chars = chars; + } + +public Workstep withChars(String chars) { +this.chars = chars; +return this; + } + +} diff --git a/common/src/main/java/org/openecomp/mso/client/ruby/RubyClient.java b/common/src/main/java/org/onap/so/client/ruby/RubyClient.java index a4adcb23f7..15b232475b 100644 --- a/common/src/main/java/org/openecomp/mso/client/ruby/RubyClient.java +++ b/common/src/main/java/org/onap/so/client/ruby/RubyClient.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,18 +18,18 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.ruby; +package org.onap.so.client.ruby; import java.io.IOException; import java.time.ZoneOffset; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; -import org.openecomp.mso.client.dmaap.DmaapPublisher; -import org.openecomp.mso.client.ruby.beans.Event; -import org.openecomp.mso.client.ruby.beans.MsoRequest; -import org.openecomp.mso.client.ruby.beans.Ruby; -import org.openecomp.mso.client.ruby.dmaap.RubyCreateTicketRequestPublisher; +import org.onap.so.client.dmaap.DmaapPublisher; +import org.onap.so.client.ruby.beans.Event; +import org.onap.so.client.ruby.beans.MsoRequest; +import org.onap.so.client.ruby.beans.Ruby; +import org.onap.so.client.ruby.dmaap.RubyCreateTicketRequestPublisher; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; @@ -87,4 +87,4 @@ public class RubyClient { final DmaapPublisher publisher = this.getPublisher(); publisher.send(request); } -}
\ No newline at end of file +} diff --git a/common/src/main/java/org/openecomp/mso/client/ruby/beans/Event.java b/common/src/main/java/org/onap/so/client/ruby/beans/Event.java index b9263596be..93745ff55e 100644 --- a/common/src/main/java/org/openecomp/mso/client/ruby/beans/Event.java +++ b/common/src/main/java/org/onap/so/client/ruby/beans/Event.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.ruby.beans; +package org.onap.so.client.ruby.beans; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; @@ -64,4 +64,4 @@ this.msoRequest = msoRequest; return this; } -}
\ No newline at end of file +} diff --git a/common/src/main/java/org/openecomp/mso/client/ruby/beans/MsoRequest.java b/common/src/main/java/org/onap/so/client/ruby/beans/MsoRequest.java index d00adae88a..f2c004ea6e 100644 --- a/common/src/main/java/org/openecomp/mso/client/ruby/beans/MsoRequest.java +++ b/common/src/main/java/org/onap/so/client/ruby/beans/MsoRequest.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.ruby.beans; +package org.onap.so.client.ruby.beans; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; @@ -204,4 +204,4 @@ this.notification = notification; return this; } -}
\ No newline at end of file +} diff --git a/common/src/main/java/org/openecomp/mso/client/ruby/beans/Ruby.java b/common/src/main/java/org/onap/so/client/ruby/beans/Ruby.java index 1b81043faf..725e6a3a94 100644 --- a/common/src/main/java/org/openecomp/mso/client/ruby/beans/Ruby.java +++ b/common/src/main/java/org/onap/so/client/ruby/beans/Ruby.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,8 +18,7 @@ * ============LICENSE_END========================================================= */ - -package org.openecomp.mso.client.ruby.beans; +package org.onap.so.client.ruby.beans; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/common/src/main/java/org/openecomp/mso/client/ruby/dmaap/RubyCreateTicketRequestPublisher.java b/common/src/main/java/org/onap/so/client/ruby/dmaap/RubyCreateTicketRequestPublisher.java index 521318f822..1d4e014300 100644 --- a/common/src/main/java/org/openecomp/mso/client/ruby/dmaap/RubyCreateTicketRequestPublisher.java +++ b/common/src/main/java/org/onap/so/client/ruby/dmaap/RubyCreateTicketRequestPublisher.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,13 +18,13 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.ruby.dmaap; +package org.onap.so.client.ruby.dmaap; import java.io.FileNotFoundException; import java.io.IOException; import java.util.Optional; -import org.openecomp.mso.client.dmaap.DmaapPublisher; +import org.onap.so.client.dmaap.DmaapPublisher; public class RubyCreateTicketRequestPublisher extends DmaapPublisher{ public RubyCreateTicketRequestPublisher() throws FileNotFoundException, IOException { diff --git a/common/src/main/java/org/openecomp/mso/client/sdno/SDNOHealthCheckClient.java b/common/src/main/java/org/onap/so/client/sdno/SDNOHealthCheckClient.java index 3ba75bb2b4..93a35f34b0 100644 --- a/common/src/main/java/org/openecomp/mso/client/sdno/SDNOHealthCheckClient.java +++ b/common/src/main/java/org/onap/so/client/sdno/SDNOHealthCheckClient.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.sdno; +package org.onap.so.client.sdno; import java.io.FileNotFoundException; import java.io.IOException; @@ -27,15 +27,15 @@ import java.util.Collections; import java.util.List; import java.util.Optional; -import org.openecomp.mso.client.dmaap.DmaapConsumer; -import org.openecomp.mso.client.dmaap.DmaapPublisher; -import org.openecomp.mso.client.sdno.beans.AAIParamList; -import org.openecomp.mso.client.sdno.beans.Body; -import org.openecomp.mso.client.sdno.beans.Input; -import org.openecomp.mso.client.sdno.beans.RequestHdCustom; -import org.openecomp.mso.client.sdno.beans.SDNO; -import org.openecomp.mso.client.sdno.dmaap.SDNOHealthCheckDmaapConsumer; -import org.openecomp.mso.client.sdno.dmaap.SDNOHealthCheckDmaapPublisher; +import org.onap.so.client.dmaap.DmaapConsumer; +import org.onap.so.client.dmaap.DmaapPublisher; +import org.onap.so.client.sdno.beans.AAIParamList; +import org.onap.so.client.sdno.beans.Body; +import org.onap.so.client.sdno.beans.Input; +import org.onap.so.client.sdno.beans.RequestHdCustom; +import org.onap.so.client.sdno.beans.SDNO; +import org.onap.so.client.sdno.dmaap.SDNOHealthCheckDmaapConsumer; +import org.onap.so.client.sdno.dmaap.SDNOHealthCheckDmaapPublisher; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/common/src/main/java/org/openecomp/mso/client/sdno/SDNOValidator.java b/common/src/main/java/org/onap/so/client/sdno/SDNOValidator.java index 534186b7ef..f3cab1e3e8 100644 --- a/common/src/main/java/org/openecomp/mso/client/sdno/SDNOValidator.java +++ b/common/src/main/java/org/onap/so/client/sdno/SDNOValidator.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,21 +18,38 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.sdno; +package org.onap.so.client.sdno; import java.io.IOException; import java.util.UUID; +import org.onap.aai.domain.yang.GenericVnf; + public interface SDNOValidator { /** * Issues a health diagnostic request for a given vnf to SDN-O * * @param vnfId + * @param uuid + * @param requestingUserId + * @return diagnostic result + * @throws IOException + * @throws Exception + */ + public boolean healthDiagnostic(String vnfId, UUID uuid, String requestingUserId) throws IOException, Exception; + + + /** + * Issues a health diagnostic request for a given GenericVnf to SDN-O + * + * @param genericVnf + * @param uuid * @param requestingUserId + * @return diagnostic result * @throws IOException * @throws Exception */ - public void healthDiagnostic(String vnfId, UUID uuid, String requestingUserId) throws IOException, Exception; + public boolean healthDiagnostic(GenericVnf genericVnf, UUID uuid, String requestingUserId) throws IOException, Exception; } diff --git a/common/src/main/java/org/openecomp/mso/client/sdno/SDNOValidatorImpl.java b/common/src/main/java/org/onap/so/client/sdno/SDNOValidatorImpl.java index e6955f57fc..be79c8b927 100644 --- a/common/src/main/java/org/openecomp/mso/client/sdno/SDNOValidatorImpl.java +++ b/common/src/main/java/org/onap/so/client/sdno/SDNOValidatorImpl.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,48 +18,60 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.sdno; +package org.onap.so.client.sdno; import java.io.FileNotFoundException; import java.io.IOException; import java.util.Optional; import java.util.UUID; +import javax.ws.rs.NotFoundException; + import org.onap.aai.domain.yang.GenericVnf; -import org.openecomp.mso.client.aai.AAIObjectType; -import org.openecomp.mso.client.aai.AAIResourcesClient; -import org.openecomp.mso.client.aai.AAIVersion; -import org.openecomp.mso.client.aai.entities.uri.AAIResourceUri; -import org.openecomp.mso.client.aai.entities.uri.AAIUriFactory; -import org.openecomp.mso.client.dmaap.DmaapConsumer; -import org.openecomp.mso.client.dmaap.DmaapPublisher; -import org.openecomp.mso.client.sdno.beans.Body; -import org.openecomp.mso.client.sdno.beans.Input; -import org.openecomp.mso.client.sdno.beans.RequestHealthDiagnostic; -import org.openecomp.mso.client.sdno.beans.SDNO; -import org.openecomp.mso.client.sdno.dmaap.SDNOHealthCheckDmaapConsumer; -import org.openecomp.mso.client.sdno.dmaap.SDNOHealthCheckDmaapPublisher; +import org.onap.so.client.aai.AAIObjectType; +import org.onap.so.client.aai.AAIResourcesClient; +import org.onap.so.client.aai.AAIVersion; +import org.onap.so.client.aai.entities.uri.AAIResourceUri; +import org.onap.so.client.aai.entities.uri.AAIUriFactory; +import org.onap.so.client.dmaap.DmaapConsumer; +import org.onap.so.client.dmaap.DmaapPublisher; +import org.onap.so.client.sdno.beans.Body; +import org.onap.so.client.sdno.beans.Input; +import org.onap.so.client.sdno.beans.RequestHealthDiagnostic; +import org.onap.so.client.sdno.beans.SDNO; +import org.onap.so.client.sdno.dmaap.SDNOHealthCheckDmaapConsumer; +import org.onap.so.client.sdno.dmaap.SDNOHealthCheckDmaapPublisher; import com.fasterxml.jackson.databind.ObjectMapper; - public class SDNOValidatorImpl implements SDNOValidator { private final static String clientName = "MSO"; @Override - public void healthDiagnostic(String vnfId, UUID uuid, String requestingUserId) throws IOException, Exception { + public boolean healthDiagnostic(String vnfId, UUID uuid, String requestingUserId) throws IOException, Exception { AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId); - AAIResourcesClient client = new AAIResourcesClient(AAIVersion.V10, uuid); - GenericVnf vnf = client.get(GenericVnf.class, uri); + AAIResourcesClient client = new AAIResourcesClient(AAIVersion.V10); + GenericVnf vnf = client.get(GenericVnf.class, uri).orElseThrow(() -> new NotFoundException(vnfId + " not found in A&AI")); SDNO requestDiagnostic = buildRequestDiagnostic(vnf, uuid, requestingUserId); ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(requestDiagnostic); this.submitRequest(json); - this.pollForResponse(uuid.toString()); + boolean status = this.pollForResponse(uuid.toString()); + return status; + } + + @Override + public boolean healthDiagnostic(GenericVnf genericVnf, UUID uuid, String requestingUserId) throws IOException, Exception { + SDNO requestDiagnostic = buildRequestDiagnostic(genericVnf, uuid, requestingUserId); + ObjectMapper mapper = new ObjectMapper(); + String json = mapper.writeValueAsString(requestDiagnostic); + this.submitRequest(json); + boolean status = this.pollForResponse(uuid.toString()); + return status; } protected SDNO buildRequestDiagnostic(GenericVnf vnf, UUID uuid, String requestingUserId) { @@ -80,8 +92,10 @@ public class SDNOValidatorImpl implements SDNOValidator { body.setInput(input); RequestHealthDiagnostic request = new RequestHealthDiagnostic(); + request.setRequestClientName(clientName); request.setRequestNodeName(vnf.getVnfName()); + request.setRequestNodeUuid(vnf.getVnfId()); request.setRequestNodeIp(vnf.getIpv4OamAddress()); //generic-vnf oam ip request.setRequestUserId(requestingUserId); //mech id? request.setRequestId(uuid.toString()); //something to identify this request by for polling diff --git a/common/src/main/java/org/openecomp/mso/client/sdno/beans/AAIParamList.java b/common/src/main/java/org/onap/so/client/sdno/beans/AAIParamList.java index bab37c0685..0de9b90d66 100644 --- a/common/src/main/java/org/openecomp/mso/client/sdno/beans/AAIParamList.java +++ b/common/src/main/java/org/onap/so/client/sdno/beans/AAIParamList.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.sdno.beans; +package org.onap.so.client.sdno.beans; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; @@ -84,4 +84,4 @@ this.value = value; return this; } -}
\ No newline at end of file +} diff --git a/common/src/main/java/org/openecomp/mso/client/sdno/beans/Body.java b/common/src/main/java/org/onap/so/client/sdno/beans/Body.java index 0898f3ca36..dfca9ec124 100644 --- a/common/src/main/java/org/openecomp/mso/client/sdno/beans/Body.java +++ b/common/src/main/java/org/onap/so/client/sdno/beans/Body.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.sdno.beans; +package org.onap.so.client.sdno.beans; import java.io.Serializable; import java.util.HashMap; @@ -41,7 +41,7 @@ public class Body implements Serializable @JsonProperty("input") private Input input; @JsonIgnore - private Map<String, Object> additionalProperties = new HashMap<>(); + private Map<String, Object> additionalProperties = new HashMap<String, Object>(); private final static long serialVersionUID = 9101706044452851559L; @JsonProperty("input") diff --git a/common/src/main/java/org/openecomp/mso/client/sdno/beans/Input.java b/common/src/main/java/org/onap/so/client/sdno/beans/Input.java index 9626ff06b4..e565f71445 100644 --- a/common/src/main/java/org/openecomp/mso/client/sdno/beans/Input.java +++ b/common/src/main/java/org/onap/so/client/sdno/beans/Input.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.sdno.beans; +package org.onap.so.client.sdno.beans; import java.io.Serializable; import java.util.HashMap; @@ -45,7 +45,7 @@ public class Input implements Serializable private RequestHdCustom requestHdCustom; @JsonIgnore - private Map<String, Object> additionalProperties = new HashMap<>(); + private Map<String, Object> additionalProperties = new HashMap<String, Object>(); private final static long serialVersionUID = 7155546785389227528L; @JsonProperty("request-healthdiagnostic") diff --git a/common/src/main/java/org/openecomp/mso/client/sdno/beans/RequestHdCustom.java b/common/src/main/java/org/onap/so/client/sdno/beans/RequestHdCustom.java index a0d00a7e6e..b3a6a4815e 100644 --- a/common/src/main/java/org/openecomp/mso/client/sdno/beans/RequestHdCustom.java +++ b/common/src/main/java/org/onap/so/client/sdno/beans/RequestHdCustom.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,11 +18,12 @@ * ============LICENSE_END========================================================= */ +package org.onap.so.client.sdno.beans; -package org.openecomp.mso.client.sdno.beans; - +import java.io.Serializable; import java.util.ArrayList; import java.util.List; + import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonPropertyOrder; @@ -34,10 +35,15 @@ import com.fasterxml.jackson.annotation.JsonPropertyOrder; "request-id", "health-diagnostic-code", "operation-type", +"send-detailed-cmd-response", "aai-param-list" }) -public class RequestHdCustom { +public class RequestHdCustom implements Serializable { +/** + * + */ + private static final long serialVersionUID = -206110458275127710L; @JsonProperty("request-client-name") private String requestClientName; @JsonProperty("request-user-id") @@ -48,6 +54,8 @@ private String requestId; private String healthDiagnosticCode; @JsonProperty("operation-type") private String operationType; +@JsonProperty("send-detailed-cmd-response") +private String sendDetailedCmdResponse = "false"; @JsonProperty("aai-param-list") private List<AAIParamList> aaiParamList = new ArrayList<AAIParamList>(); @@ -152,6 +160,19 @@ this.operationType = operationType; return this; } +public void setSendDetailedCmdResponse(String sendDetailedCmdResponse) { + this.sendDetailedCmdResponse = sendDetailedCmdResponse; +} + +public String getSendDetailedCmdResponse() { + return sendDetailedCmdResponse; +} + +public RequestHdCustom withSendDetailedCmdResponse(String sendDetailedCmdResponse) { + this.sendDetailedCmdResponse = sendDetailedCmdResponse; + return this; +} + @JsonProperty("aai-param-list") public List<AAIParamList> getAaiParamList() { return aaiParamList; diff --git a/common/src/main/java/org/openecomp/mso/client/sdno/beans/RequestHealthDiagnostic.java b/common/src/main/java/org/onap/so/client/sdno/beans/RequestHealthDiagnostic.java index 5ff47fa4be..69745d6bfb 100644 --- a/common/src/main/java/org/openecomp/mso/client/sdno/beans/RequestHealthDiagnostic.java +++ b/common/src/main/java/org/onap/so/client/sdno/beans/RequestHealthDiagnostic.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.sdno.beans; +package org.onap.so.client.sdno.beans; import java.io.Serializable; import java.util.HashMap; @@ -35,6 +35,7 @@ import com.fasterxml.jackson.annotation.JsonPropertyOrder; @JsonPropertyOrder({ "request-client-name", "request-node-name", + "request-node-uuid", "request-node-ip", "request-id", "request-user-id", @@ -48,6 +49,8 @@ public class RequestHealthDiagnostic implements Serializable private String requestClientName; @JsonProperty("request-node-name") private String requestNodeName; + @JsonProperty("request-node-uuid") + private String requestNodeUuid; @JsonProperty("request-node-ip") private String requestNodeIp; @JsonProperty("request-id") @@ -59,7 +62,7 @@ public class RequestHealthDiagnostic implements Serializable @JsonProperty("health-diagnostic-code") private String healthDiagnosticCode; @JsonIgnore - private Map<String, Object> additionalProperties = new HashMap<>(); + private Map<String, Object> additionalProperties = new HashMap<String, Object>(); private final static long serialVersionUID = 1166788526178388021L; @JsonProperty("request-client-name") @@ -91,6 +94,21 @@ public class RequestHealthDiagnostic implements Serializable this.requestNodeName = requestNodeName; return this; } + + @JsonProperty("request-node-uuid") + public String getRequestNodeUuid() { + return requestNodeUuid; + } + + @JsonProperty("request-node-uuid") + public void setRequestNodeUuid(String requestNodeUuid) { + this.requestNodeUuid = requestNodeUuid; + } + + public RequestHealthDiagnostic withRequestNodeUuid(String requestNodeUuid) { + this.requestNodeUuid = requestNodeUuid; + return this; + } @JsonProperty("request-node-ip") public String getRequestNodeIp() { diff --git a/common/src/main/java/org/openecomp/mso/client/sdno/beans/ResultInfo.java b/common/src/main/java/org/onap/so/client/sdno/beans/ResultInfo.java index 1fdc9b2484..7cf9c7cb06 100644 --- a/common/src/main/java/org/openecomp/mso/client/sdno/beans/ResultInfo.java +++ b/common/src/main/java/org/onap/so/client/sdno/beans/ResultInfo.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.sdno.beans; +package org.onap.so.client.sdno.beans; import java.util.HashMap; import java.util.Map; @@ -51,7 +51,7 @@ private String requestId; @JsonProperty("status") private String status; @JsonIgnore -private Map<String, Object> additionalProperties = new HashMap<>(); +private Map<String, Object> additionalProperties = new HashMap<String, Object>(); @JsonProperty("client-name") public String getClientName() { diff --git a/common/src/main/java/org/openecomp/mso/client/sdno/beans/SDNO.java b/common/src/main/java/org/onap/so/client/sdno/beans/SDNO.java index fa3a26a9ef..7c728a7bab 100644 --- a/common/src/main/java/org/openecomp/mso/client/sdno/beans/SDNO.java +++ b/common/src/main/java/org/onap/so/client/sdno/beans/SDNO.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.sdno.beans; +package org.onap.so.client.sdno.beans; import java.io.Serializable; import java.util.HashMap; @@ -50,7 +50,7 @@ public class SDNO implements Serializable @JsonProperty("body") private Body body; @JsonIgnore - private Map<String, Object> additionalProperties = new HashMap<>(); + private Map<String, Object> additionalProperties = new HashMap<String, Object>(); private final static long serialVersionUID = -5303297382564282650L; @JsonProperty("operation") diff --git a/common/src/main/java/org/openecomp/mso/client/sdno/dmaap/SDNOHealthCheckDmaapConsumer.java b/common/src/main/java/org/onap/so/client/sdno/dmaap/SDNOHealthCheckDmaapConsumer.java index ca5888caca..6f415af8b0 100644 --- a/common/src/main/java/org/openecomp/mso/client/sdno/dmaap/SDNOHealthCheckDmaapConsumer.java +++ b/common/src/main/java/org/onap/so/client/sdno/dmaap/SDNOHealthCheckDmaapConsumer.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,13 +18,13 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.sdno.dmaap; +package org.onap.so.client.sdno.dmaap; import java.io.IOException; import java.util.Optional; -import org.openecomp.mso.client.dmaap.DmaapConsumer; -import org.openecomp.mso.client.exceptions.SDNOException; -import org.openecomp.mso.jsonpath.JsonPathUtil; +import org.onap.so.client.dmaap.DmaapConsumer; +import org.onap.so.client.exceptions.SDNOException; +import org.onap.so.jsonpath.JsonPathUtil; public class SDNOHealthCheckDmaapConsumer extends DmaapConsumer { @@ -81,7 +81,7 @@ public class SDNOHealthCheckDmaapConsumer extends DmaapConsumer { throw new SDNOException("failed with no status message"); } } else { - auditLogger.info("successful health diagnostic found for request: " + this.getRequestId()); + logger.info("successful health diagnostic found for request: {}" ,getRequestId()); stopProcessingMessages(); } } diff --git a/common/src/main/java/org/openecomp/mso/client/sdno/dmaap/SDNOHealthCheckDmaapPublisher.java b/common/src/main/java/org/onap/so/client/sdno/dmaap/SDNOHealthCheckDmaapPublisher.java index ef19bb7921..2556e67e3c 100644 --- a/common/src/main/java/org/openecomp/mso/client/sdno/dmaap/SDNOHealthCheckDmaapPublisher.java +++ b/common/src/main/java/org/onap/so/client/sdno/dmaap/SDNOHealthCheckDmaapPublisher.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,13 +18,13 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.client.sdno.dmaap; +package org.onap.so.client.sdno.dmaap; import java.io.FileNotFoundException; import java.io.IOException; import java.util.Optional; -import org.openecomp.mso.client.dmaap.DmaapPublisher; +import org.onap.so.client.dmaap.DmaapPublisher; public class SDNOHealthCheckDmaapPublisher extends DmaapPublisher { diff --git a/common/src/main/java/org/openecomp/mso/entity/MsoRequest.java b/common/src/main/java/org/onap/so/entity/MsoRequest.java index 39ba8dc175..c61684bec7 100644 --- a/common/src/main/java/org/openecomp/mso/entity/MsoRequest.java +++ b/common/src/main/java/org/onap/so/entity/MsoRequest.java @@ -18,9 +18,10 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.entity; +package org.onap.so.entity; +import java.io.Serializable; /** * This simple bean holds tracking information for MSO requests within @@ -29,8 +30,9 @@ package org.openecomp.mso.entity; * * */ -public class MsoRequest +public class MsoRequest implements Serializable { + private static final long serialVersionUID = 1797142528913733469L; private String requestId; private String serviceInstanceId; @@ -38,11 +40,12 @@ public class MsoRequest this.requestId = null; this.serviceInstanceId = null; } + public MsoRequest(String r, String s) { this.requestId = r; this.serviceInstanceId = s; } - + public String getRequestId() { return requestId; } diff --git a/common/src/main/java/org/openecomp/mso/entity/package-info.java b/common/src/main/java/org/onap/so/entity/package-info.java index bf7201c15d..c4f5a16aee 100644 --- a/common/src/main/java/org/openecomp/mso/entity/package-info.java +++ b/common/src/main/java/org/onap/so/entity/package-info.java @@ -22,5 +22,5 @@ * Entities used for logging. */ -package org.openecomp.mso.entity; +package org.onap.so.entity; diff --git a/common/src/main/java/org/openecomp/mso/utils/RootIgnoringObjectMapper.java b/common/src/main/java/org/onap/so/exceptions/MarshallerException.java index 6f3c5b7d99..8b06a8519f 100644 --- a/common/src/main/java/org/openecomp/mso/utils/RootIgnoringObjectMapper.java +++ b/common/src/main/java/org/onap/so/exceptions/MarshallerException.java @@ -18,22 +18,32 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.utils; +package org.onap.so.exceptions; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.module.SimpleModule; -/** - * An ObjectMapper for a specific class that ignores the root element - * if it is present. - */ -public class RootIgnoringObjectMapper<T> extends ObjectMapper { +public class MarshallerException extends Exception { + + private static final long serialVersionUID = 1L; + private String message; + private int errorCode; + + public MarshallerException(String message) { + super(message); + } + + public MarshallerException(String message, int errorCode, Exception e) { + super (e); + this.message = message; + this.errorCode = errorCode; + + } - private static final long serialVersionUID = 6812584067195377395L; + @Override + public String getMessage() { + return message; + } - public RootIgnoringObjectMapper(Class<T> clazz) { - SimpleModule module = new SimpleModule(); - module.addDeserializer(clazz, new RootIgnoringJsonDeserializer<T>(clazz)); - registerModule(module); - } -}
\ No newline at end of file + public int getErrorCode() { + return errorCode; + } +} diff --git a/common/src/main/java/org/onap/so/exceptions/ValidationException.java b/common/src/main/java/org/onap/so/exceptions/ValidationException.java new file mode 100644 index 0000000000..713fac70f3 --- /dev/null +++ b/common/src/main/java/org/onap/so/exceptions/ValidationException.java @@ -0,0 +1,54 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.exceptions; + + +public class ValidationException extends Exception { + + /** + * This class simply extends Exception (without addition additional functionality) + * to provide an identifier for RequestsDB related exceptions on create, delete, query. + * + * + **/ + + private static final long serialVersionUID = 1L; + private static final String VALIDATION_FAIL = "No valid $ELEMENT is specified"; + private static final String INVALID_ELEMENT = "$ELEMENT is not valid in the $VERSION version"; + private static final String REPLACE_ELEMENT_KEY = "\\$ELEMENT"; + private static final String REPLACE_VERSION_KEY = "\\$VERSION"; + + @Deprecated + public ValidationException (String msg) { + super (VALIDATION_FAIL.replaceAll (REPLACE_ELEMENT_KEY, msg)); + } + + public ValidationException(String msg, boolean overrideExistingMessage) { + super(overrideExistingMessage ? VALIDATION_FAIL.replaceAll(REPLACE_ELEMENT_KEY, msg) : msg); + } + + public ValidationException (String msg, Exception cause) { + super (VALIDATION_FAIL.replaceAll (REPLACE_ELEMENT_KEY, msg), cause); + } + public ValidationException(String msg, String version) { + super(INVALID_ELEMENT.replaceAll(REPLACE_ELEMENT_KEY, msg).replaceAll(REPLACE_VERSION_KEY, version)); + } +} diff --git a/common/src/main/java/org/openecomp/mso/jsonpath/JsonPathUtil.java b/common/src/main/java/org/onap/so/jsonpath/JsonPathUtil.java index 148eb74068..cb0de998ba 100644 --- a/common/src/main/java/org/openecomp/mso/jsonpath/JsonPathUtil.java +++ b/common/src/main/java/org/onap/so/jsonpath/JsonPathUtil.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.jsonpath; +package org.onap.so.jsonpath; import java.util.ArrayList; import java.util.List; @@ -35,9 +35,10 @@ public class JsonPathUtil { private final Configuration conf; - + private final Configuration pathListConf; private JsonPathUtil() { conf = Configuration.defaultConfiguration().jsonProvider(new JacksonJsonNodeJsonProvider()).addOptions(Option.ALWAYS_RETURN_LIST, Option.SUPPRESS_EXCEPTIONS); + pathListConf = Configuration.defaultConfiguration().addOptions(Option.AS_PATH_LIST, Option.SUPPRESS_EXCEPTIONS,Option.ALWAYS_RETURN_LIST); } private static class Helper { @@ -79,4 +80,8 @@ public class JsonPathUtil { } return result; } + + public List<String> getPathList(String json, String jsonPath) { + return JsonPath.using(pathListConf).parse(json).read(jsonPath); + } } diff --git a/common/src/main/java/org/onap/so/logger/LoggerStartupListener.java b/common/src/main/java/org/onap/so/logger/LoggerStartupListener.java new file mode 100644 index 0000000000..0d20dd8bf9 --- /dev/null +++ b/common/src/main/java/org/onap/so/logger/LoggerStartupListener.java @@ -0,0 +1,87 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.logger; + +import java.net.InetAddress; +import java.net.UnknownHostException; + +import org.springframework.stereotype.Component; + +import ch.qos.logback.classic.Level; +import ch.qos.logback.classic.Logger; +import ch.qos.logback.classic.LoggerContext; +import ch.qos.logback.classic.spi.LoggerContextListener; +import ch.qos.logback.core.Context; +import ch.qos.logback.core.spi.ContextAwareBase; +import ch.qos.logback.core.spi.LifeCycle; + +@Component +public class LoggerStartupListener extends ContextAwareBase implements LoggerContextListener, LifeCycle { + + private boolean started = false; + + @Override + public void start() { + if (started) + return; + InetAddress addr= null; + try { + addr = InetAddress.getLocalHost(); + } catch (UnknownHostException e) { + e.printStackTrace(); + } + Context context = getContext(); + if (addr != null) { + context.putProperty("server.name", addr.getHostName()); + } + started = true; + } + + @Override + public void stop() { + } + + @Override + public boolean isStarted() { + return started; + } + + @Override + public boolean isResetResistant() { + return true; + } + + @Override + public void onLevelChange(Logger arg0, Level arg1) { + } + + @Override + public void onReset(LoggerContext arg0) { + } + + @Override + public void onStart(LoggerContext arg0) { + } + + @Override + public void onStop(LoggerContext arg0) { + } +} diff --git a/common/src/main/java/org/openecomp/mso/logger/MessageEnum.java b/common/src/main/java/org/onap/so/logger/MessageEnum.java index 419bbf8ca6..fcaa52024b 100644 --- a/common/src/main/java/org/openecomp/mso/logger/MessageEnum.java +++ b/common/src/main/java/org/onap/so/logger/MessageEnum.java @@ -1,233 +1,223 @@ -/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.openecomp.mso.logger;
-
-
-import com.att.eelf.i18n.EELFResolvableErrorEnum;
-import com.att.eelf.i18n.EELFResourceManager;
-
-public enum MessageEnum implements EELFResolvableErrorEnum{
- // Api Handler Messages
- APIH_REQUEST_NULL,
- APIH_QUERY_FOUND,
- APIH_QUERY_NOT_FOUND,
- APIH_QUERY_PARAM_WRONG,
- APIH_DB_ACCESS_EXC,
- APIH_DB_ACCESS_EXC_REASON,
- APIH_VALIDATION_ERROR,
- APIH_REQUEST_VALIDATION_ERROR,
- APIH_SERVICE_VALIDATION_ERROR,
- APIH_GENERAL_EXCEPTION_ARG,
- APIH_GENERAL_EXCEPTION,
- APIH_GENERAL_WARNING,
- APIH_AUDIT_EXEC,
- APIH_GENERAL_METRICS,
- APIH_DUPLICATE_CHECK_EXC,
- APIH_DUPLICATE_FOUND,
- APIH_BAD_ORDER,
- APIH_DB_ATTRIBUTE_NOT_FOUND,
- APIH_BPEL_COMMUNICATE_ERROR,
- APIH_BPEL_RESPONSE_ERROR,
- APIH_WARP_REQUEST,
- APIH_ERROR_FROM_BPEL_SERVER,
- APIH_DB_INSERT_EXC,
- APIH_DB_UPDATE_EXC,
- APIH_NO_PROPERTIES,
- APIH_PROPERTY_LOAD_SUC,
- APIH_LOAD_PROPERTIES_FAIL,
- APIH_SDNC_COMMUNICATE_ERROR,
- APIH_SDNC_RESPONSE_ERROR,
- APIH_CANNOT_READ_SCHEMA,
- APIH_HEALTH_CHECK_EXCEPTION,
- APIH_REQUEST_VALIDATION_ERROR_REASON,
- APIH_JAXB_MARSH_ERROR,
- APIH_JAXB_UNMARSH_ERROR,
- APIH_VNFREQUEST_VALIDATION_ERROR,
- APIH_DOM2STR_ERROR,
- APIH_READ_VNFOUTPUT_CLOB_EXCEPTION,
- APIH_DUPLICATE_CHECK_EXC_ATT,
- APIH_GENERATED_REQUEST_ID,
- APIH_GENERATED_SERVICE_INSTANCE_ID,
- APIH_REPLACE_REQUEST_ID,
- // Resource Adapter Messages
- RA_GENERAL_EXCEPTION_ARG,
- RA_GENERAL_EXCEPTION,
- RA_GENERAL_WARNING,
- RA_MISSING_PARAM,
- RA_AUDIT_EXEC,
- RA_GENERAL_METRICS,
- RA_CREATE_STACK_TIMEOUT,
- RA_DELETE_STACK_TIMEOUT,
- RA_UPDATE_STACK_TIMEOUT,
- RA_CONNECTION_EXCEPTION,
- RA_PARSING_ERROR,
- RA_PROPERTIES_NOT_FOUND,
- RA_LOAD_PROPERTIES_SUC,
- RA_NETWORK_ALREADY_EXIST,
- RA_UPDATE_NETWORK_ERR,
- RA_CREATE_STACK_ERR,
- RA_UPDATE_STACK_ERR,
- RA_CREATE_TENANT_ERR,
- RA_NETWORK_NOT_FOUND,
- RA_NETWORK_ORCHE_MODE_NOT_SUPPORT,
- RA_CREATE_NETWORK_EXC,
- RA_NS_EXC,
- RA_PARAM_NOT_FOUND,
- RA_CONFIG_EXC,
- RA_UNKOWN_PARAM,
- RA_VLAN_PARSE,
- RA_DELETE_NETWORK_EXC,
- RA_ROLLBACK_NULL,
- RA_TENANT_NOT_FOUND,
- RA_QUERY_NETWORK_EXC,
- RA_CREATE_NETWORK_NOTIF_EXC,
- RA_ASYNC_ROLLBACK,
- RA_WSDL_NOT_FOUND,
- RA_WSDL_URL_CONVENTION_EXC,
- RA_INIT_NOTIF_EXC,
- RA_SET_CALLBACK_AUTH_EXC,
- RA_FAULT_INFO_EXC,
- RA_MARSHING_ERROR,
- RA_PARSING_REQUEST_ERROR,
- RA_SEND_REQUEST_SDNC,
- RA_RESPONSE_FROM_SDNC,
- RA_EXCEPTION_COMMUNICATE_SDNC,
- RA_EVALUATE_XPATH_ERROR,
- RA_ANALYZE_ERROR_EXC,
- RA_ERROR_GET_RESPONSE_SDNC,
- RA_CALLBACK_BPEL,
- RA_INIT_CALLBACK_WSDL_ERR,
- RA_CALLBACK_BPEL_EXC,
- RA_CALLBACK_BPEL_COMPLETE,
- RA_SDNC_MISS_CONFIG_PARAM,
- RA_SDNC_INVALID_CONFIG,
- RA_PRINT_URL,
- RA_ERROR_CREATE_SDNC_REQUEST,
- RA_ERROR_CREATE_SDNC_RESPONSE,
- RA_ERROR_CONVERT_XML2STR,
- RA_RECEIVE_SDNC_NOTIF,
- RA_INIT_SDNC_ADAPTER,
- RA_SEND_REQUEST_APPC_ERR,
- RA_SEND_REQUEST_SDNC_ERR,
- RA_RECEIVE_BPEL_REQUEST,
- RA_TENANT_ALREADY_EXIST,
- RA_UPDATE_TENANT_ERR,
- RA_DELETE_TEMAMT_ERR,
- RA_ROLLBACK_TENANT_ERR,
- RA_QUERY_VNF_ERR,
- RA_VNF_ALREADY_EXIST,
- RA_VNF_UNKNOWN_PARAM,
- RA_VNF_EXTRA_PARAM,
- RA_CREATE_VNF_ERR,
- RA_VNF_NOT_EXIST,
- RA_UPDATE_VNF_ERR,
- RA_DELETE_VNF_ERR,
- RA_ASYNC_CREATE_VNF,
- RA_SEND_VNF_NOTIF_ERR,
- RA_ASYNC_CREATE_VNF_COMPLETE,
- RA_ASYNC_UPDATE_VNF,
- RA_ASYNC_UPDATE_VNF_COMPLETE,
- RA_ASYNC_QUERY_VNF,
- RA_ASYNC_QUERY_VNF_COMPLETE,
- RA_ASYNC_DELETE_VNF,
- RA_ASYNC_DELETE_VNF_COMPLETE,
- RA_ASYNC_ROLLBACK_VNF,
- RA_ASYNC_ROLLBACK_VNF_COMPLETE,
- RA_ROLLBACK_VNF_ERR,
- RA_DB_INVALID_STATUS,
- RA_CANT_UPDATE_REQUEST,
- RA_DB_REQUEST_NOT_EXIST,
- RA_CONFIG_NOT_FOUND,
- RA_CONFIG_LOAD,
- RA_RECEIVE_WORKFLOW_MESSAGE,
- // BPEL engine Messages
- BPMN_GENERAL_INFO,
- BPMN_GENERAL_EXCEPTION_ARG,
- BPMN_GENERAL_EXCEPTION,
- BPMN_GENERAL_WARNING,
- BPMN_AUDIT_EXEC,
- BPMN_GENERAL_METRICS,
- BPMN_URN_MAPPING_FAIL,
- BPMN_VARIABLE_NULL,
- BPMN_CALLBACK_EXCEPTION,
- // ASDC Messages
- ASDC_GENERAL_EXCEPTION_ARG,
- ASDC_GENERAL_EXCEPTION,
- ASDC_GENERAL_WARNING,
- ASDC_GENERAL_INFO,
- ASDC_AUDIT_EXEC,
- ASDC_GENERAL_METRICS,
- ASDC_CREATE_SERVICE,
- ASDC_ARTIFACT_ALREADY_DEPLOYED,
- ASDC_CREATE_ARTIFACT,
- ASDC_ARTIFACT_INSTALL_EXC,
- ASDC_ARTIFACT_ALREADY_DEPLOYED_DETAIL,
- ASDC_ARTIFACT_NOT_DEPLOYED_DETAIL,
- ASDC_ARTIFACT_CHECK_EXC,
- ASDC_INIT_ASDC_CLIENT_EXC,
- ASDC_INIT_ASDC_CLIENT_SUC,
- ASDC_LOAD_ASDC_CLIENT_EXC,
- ASDC_SINGLETON_CHECKT_EXC,
- ASDC_SHUTDOWN_ASDC_CLIENT_EXC,
- ASDC_CHECK_HEAT_TEMPLATE,
- ASDC_START_INSTALL_ARTIFACT,
- ASDC_ARTIFACT_TYPE_NOT_SUPPORT,
- ASDC_ARTIFACT_ALREADY_EXIST,
- ASDC_ARTIFACT_DOWNLOAD_SUC,
- ASDC_ARTIFACT_DOWNLOAD_FAIL,
- ASDC_START_DEPLOY_ARTIFACT,
- ASDC_SEND_NOTIF_ASDC,
- ASDC_SEND_NOTIF_ASDC_EXEC,
- ASDC_RECEIVE_CALLBACK_NOTIF,
- ASDC_RECEIVE_SERVICE_NOTIF,
- ASDC_ARTIFACT_NULL,
- ASDC_SERVICE_NOT_SUPPORT,
- ASDC_ARTIFACT_DEPLOY_SUC,
- ASDC_PROPERTIES_NOT_FOUND,
- ASDC_PROPERTIES_LOAD_SUCCESS,
- // Default Messages, in case Log catalog is not defined
- GENERAL_EXCEPTION_ARG,
- GENERAL_EXCEPTION,
- GENERAL_WARNING,
- AUDIT_EXEC,
- GENERAL_METRICS,
- LOGGER_SETUP,
- LOGGER_NOT_FOUND,
- LOGGER_UPDATE_SUC,
- LOGGER_UPDATE_DEBUG,
- LOGGER_UPDATE_DEBUG_SUC,
- LOAD_PROPERTIES_SUC,
- NO_PROPERTIES,
- MADATORY_PARAM_MISSING,
- LOAD_PROPERTIES_FAIL,
- INIT_LOGGER,
- INIT_LOGGER_FAIL,
- JAXB_EXCEPTION,
- IDENTITY_SERVICE_NOT_FOUND;
-
- static {
- EELFResourceManager.loadMessageBundle("GenericMessages");
- EELFResourceManager.loadMessageBundle("ApiHandler");
- EELFResourceManager.loadMessageBundle("BPMN");
- EELFResourceManager.loadMessageBundle("ResourceAdapter");
- EELFResourceManager.loadMessageBundle("ASDC");
- }
-}
+/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.logger; + + + +public enum MessageEnum{ + // Api Handler Messages + APIH_REQUEST_NULL, + APIH_QUERY_FOUND, + APIH_QUERY_NOT_FOUND, + APIH_QUERY_PARAM_WRONG, + APIH_DB_ACCESS_EXC, + APIH_DB_ACCESS_EXC_REASON, + APIH_VALIDATION_ERROR, + APIH_REQUEST_VALIDATION_ERROR, + APIH_SERVICE_VALIDATION_ERROR, + APIH_GENERAL_EXCEPTION_ARG, + APIH_GENERAL_EXCEPTION, + APIH_GENERAL_WARNING, + APIH_AUDIT_EXEC, + APIH_GENERAL_METRICS, + APIH_DUPLICATE_CHECK_EXC, + APIH_DUPLICATE_FOUND, + APIH_BAD_ORDER, + APIH_DB_ATTRIBUTE_NOT_FOUND, + APIH_BPEL_COMMUNICATE_ERROR, + APIH_BPEL_RESPONSE_ERROR, + APIH_WARP_REQUEST, + APIH_ERROR_FROM_BPEL_SERVER, + APIH_DB_INSERT_EXC, + APIH_DB_UPDATE_EXC, + APIH_NO_PROPERTIES, + APIH_PROPERTY_LOAD_SUC, + APIH_LOAD_PROPERTIES_FAIL, + APIH_SDNC_COMMUNICATE_ERROR, + APIH_SDNC_RESPONSE_ERROR, + APIH_CANNOT_READ_SCHEMA, + APIH_HEALTH_CHECK_EXCEPTION, + APIH_REQUEST_VALIDATION_ERROR_REASON, + APIH_JAXB_MARSH_ERROR, + APIH_JAXB_UNMARSH_ERROR, + APIH_VNFREQUEST_VALIDATION_ERROR, + APIH_DOM2STR_ERROR, + APIH_READ_VNFOUTPUT_CLOB_EXCEPTION, + APIH_DUPLICATE_CHECK_EXC_ATT, + APIH_GENERATED_REQUEST_ID, + APIH_GENERATED_SERVICE_INSTANCE_ID, + APIH_REPLACE_REQUEST_ID, + // Resource Adapter Messages + RA_GENERAL_EXCEPTION_ARG, + RA_GENERAL_EXCEPTION, + RA_GENERAL_WARNING, + RA_MISSING_PARAM, + RA_AUDIT_EXEC, + RA_GENERAL_METRICS, + RA_CREATE_STACK_TIMEOUT, + RA_DELETE_STACK_TIMEOUT, + RA_UPDATE_STACK_TIMEOUT, + RA_CONNECTION_EXCEPTION, + RA_PARSING_ERROR, + RA_PROPERTIES_NOT_FOUND, + RA_LOAD_PROPERTIES_SUC, + RA_NETWORK_ALREADY_EXIST, + RA_UPDATE_NETWORK_ERR, + RA_CREATE_STACK_ERR, + RA_UPDATE_STACK_ERR, + RA_CREATE_TENANT_ERR, + RA_NETWORK_NOT_FOUND, + RA_NETWORK_ORCHE_MODE_NOT_SUPPORT, + RA_CREATE_NETWORK_EXC, + RA_NS_EXC, + RA_PARAM_NOT_FOUND, + RA_CONFIG_EXC, + RA_UNKOWN_PARAM, + RA_VLAN_PARSE, + RA_DELETE_NETWORK_EXC, + RA_ROLLBACK_NULL, + RA_TENANT_NOT_FOUND, + RA_QUERY_NETWORK_EXC, + RA_CREATE_NETWORK_NOTIF_EXC, + RA_ASYNC_ROLLBACK, + RA_WSDL_NOT_FOUND, + RA_WSDL_URL_CONVENTION_EXC, + RA_INIT_NOTIF_EXC, + RA_SET_CALLBACK_AUTH_EXC, + RA_FAULT_INFO_EXC, + RA_MARSHING_ERROR, + RA_PARSING_REQUEST_ERROR, + RA_SEND_REQUEST_SDNC, + RA_RESPONSE_FROM_SDNC, + RA_EXCEPTION_COMMUNICATE_SDNC, + RA_EVALUATE_XPATH_ERROR, + RA_ANALYZE_ERROR_EXC, + RA_ERROR_GET_RESPONSE_SDNC, + RA_CALLBACK_BPEL, + RA_INIT_CALLBACK_WSDL_ERR, + RA_CALLBACK_BPEL_EXC, + RA_CALLBACK_BPEL_COMPLETE, + RA_SDNC_MISS_CONFIG_PARAM, + RA_SDNC_INVALID_CONFIG, + RA_PRINT_URL, + RA_ERROR_CREATE_SDNC_REQUEST, + RA_ERROR_CREATE_SDNC_RESPONSE, + RA_ERROR_CONVERT_XML2STR, + RA_RECEIVE_SDNC_NOTIF, + RA_INIT_SDNC_ADAPTER, + RA_SEND_REQUEST_APPC_ERR, + RA_SEND_REQUEST_SDNC_ERR, + RA_RECEIVE_BPEL_REQUEST, + RA_TENANT_ALREADY_EXIST, + RA_UPDATE_TENANT_ERR, + RA_DELETE_TEMAMT_ERR, + RA_ROLLBACK_TENANT_ERR, + RA_QUERY_VNF_ERR, + RA_VNF_ALREADY_EXIST, + RA_VNF_UNKNOWN_PARAM, + RA_VNF_EXTRA_PARAM, + RA_CREATE_VNF_ERR, + RA_VNF_NOT_EXIST, + RA_UPDATE_VNF_ERR, + RA_DELETE_VNF_ERR, + RA_ASYNC_CREATE_VNF, + RA_SEND_VNF_NOTIF_ERR, + RA_ASYNC_CREATE_VNF_COMPLETE, + RA_ASYNC_UPDATE_VNF, + RA_ASYNC_UPDATE_VNF_COMPLETE, + RA_ASYNC_QUERY_VNF, + RA_ASYNC_QUERY_VNF_COMPLETE, + RA_ASYNC_DELETE_VNF, + RA_ASYNC_DELETE_VNF_COMPLETE, + RA_ASYNC_ROLLBACK_VNF, + RA_ASYNC_ROLLBACK_VNF_COMPLETE, + RA_ROLLBACK_VNF_ERR, + RA_DB_INVALID_STATUS, + RA_CANT_UPDATE_REQUEST, + RA_DB_REQUEST_NOT_EXIST, + RA_CONFIG_NOT_FOUND, + RA_CONFIG_LOAD, + RA_RECEIVE_WORKFLOW_MESSAGE, + // BPEL engine Messages + BPMN_GENERAL_INFO, + BPMN_GENERAL_EXCEPTION_ARG, + BPMN_GENERAL_EXCEPTION, + BPMN_GENERAL_WARNING, + BPMN_AUDIT_EXEC, + BPMN_GENERAL_METRICS, + BPMN_URN_MAPPING_FAIL, + BPMN_VARIABLE_NULL, + BPMN_CALLBACK_EXCEPTION, + // ASDC Messages + ASDC_GENERAL_EXCEPTION_ARG, + ASDC_GENERAL_EXCEPTION, + ASDC_GENERAL_WARNING, + ASDC_GENERAL_INFO, + ASDC_AUDIT_EXEC, + ASDC_GENERAL_METRICS, + ASDC_CREATE_SERVICE, + ASDC_ARTIFACT_ALREADY_DEPLOYED, + ASDC_CREATE_ARTIFACT, + ASDC_ARTIFACT_INSTALL_EXC, + ASDC_ARTIFACT_ALREADY_DEPLOYED_DETAIL, + ASDC_ARTIFACT_NOT_DEPLOYED_DETAIL, + ASDC_ARTIFACT_CHECK_EXC, + ASDC_INIT_ASDC_CLIENT_EXC, + ASDC_INIT_ASDC_CLIENT_SUC, + ASDC_LOAD_ASDC_CLIENT_EXC, + ASDC_SINGLETON_CHECKT_EXC, + ASDC_SHUTDOWN_ASDC_CLIENT_EXC, + ASDC_CHECK_HEAT_TEMPLATE, + ASDC_START_INSTALL_ARTIFACT, + ASDC_ARTIFACT_TYPE_NOT_SUPPORT, + ASDC_ARTIFACT_ALREADY_EXIST, + ASDC_ARTIFACT_DOWNLOAD_SUC, + ASDC_ARTIFACT_DOWNLOAD_FAIL, + ASDC_START_DEPLOY_ARTIFACT, + ASDC_SEND_NOTIF_ASDC, + ASDC_SEND_NOTIF_ASDC_EXEC, + ASDC_RECEIVE_CALLBACK_NOTIF, + ASDC_RECEIVE_SERVICE_NOTIF, + ASDC_ARTIFACT_NULL, + ASDC_SERVICE_NOT_SUPPORT, + ASDC_ARTIFACT_DEPLOY_SUC, + ASDC_PROPERTIES_NOT_FOUND, + ASDC_PROPERTIES_LOAD_SUCCESS, + // Default Messages, in case Log catalog is not defined + GENERAL_EXCEPTION_ARG, + GENERAL_EXCEPTION, + GENERAL_WARNING, + AUDIT_EXEC, + GENERAL_METRICS, + LOGGER_SETUP, + LOGGER_NOT_FOUND, + LOGGER_UPDATE_SUC, + LOGGER_UPDATE_DEBUG, + LOGGER_UPDATE_DEBUG_SUC, + LOAD_PROPERTIES_SUC, + NO_PROPERTIES, + MADATORY_PARAM_MISSING, + LOAD_PROPERTIES_FAIL, + INIT_LOGGER, + INIT_LOGGER_FAIL, + JAXB_EXCEPTION, + IDENTITY_SERVICE_NOT_FOUND; +} diff --git a/common/src/main/java/org/openecomp/mso/logger/MsoAlarmLogger.java b/common/src/main/java/org/onap/so/logger/MsoAlarmLogger.java index b2b8d0aa33..890aac93c0 100644 --- a/common/src/main/java/org/openecomp/mso/logger/MsoAlarmLogger.java +++ b/common/src/main/java/org/onap/so/logger/MsoAlarmLogger.java @@ -18,10 +18,11 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.logger; +package org.onap.so.logger; import java.io.File; + import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; @@ -145,6 +146,11 @@ public class MsoAlarmLogger implements ServletContextListener { alarmLogger.setAdditive (false); } + public void resetAppender() { + synchronized (MsoAlarmLogger.class) { + fileAppender = null; + } + } private static RollingFileAppender<ILoggingEvent> getAppender (String msoAlarmFile) { // Create a Logger for alarms. Just use a default Pattern that outputs diff --git a/common/src/main/java/org/openecomp/mso/logger/MsoLogger.java b/common/src/main/java/org/onap/so/logger/MsoLogger.java index 9f918805c0..10f572e772 100644 --- a/common/src/main/java/org/openecomp/mso/logger/MsoLogger.java +++ b/common/src/main/java/org/onap/so/logger/MsoLogger.java @@ -19,82 +19,91 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.logger; - -import java.io.BufferedReader; -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileReader; -import java.io.FileWriter; -import java.io.IOException; +package org.onap.so.logger; + + import java.io.PrintWriter; import java.io.StringWriter; +import java.lang.invoke.MethodHandles; import java.net.InetAddress; import java.net.UnknownHostException; -import java.util.UUID; -import java.util.logging.Level; -import java.util.logging.Logger; - -import org.slf4j.MDC; - -import org.openecomp.mso.entity.MsoRequest; -import com.att.eelf.configuration.EELFLogger; -import com.att.eelf.configuration.EELFManager; -import com.att.eelf.i18n.EELFResolvableErrorEnum; - import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; +import org.onap.so.entity.MsoRequest; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.slf4j.MDC; + + /** - * Simple wrapper around the EELF Logger class for MSO usage. This class - * supports all of the normal logging functions (debug, info, etc.), prepending + * This class supports all of the normal logging functions (debug, info, etc.), prepending * a string of format "[<requestId>|<serviceId]" to each message. * - * MSO code should initialize with these IDs when available, so that individual + * SO code should initialize with these IDs when available, so that individual * requests and/or services can be tracked throughout the various MSO component * logs (API Handler, BPEL, and Adapters). * * */ + public class MsoLogger { // MDC parameters - public static final String REQUEST_ID = "RequestId"; - public static final String SERVICE_INSTANCE_ID = "ServiceInstanceId"; - public static final String SERVICE_NAME = "ServiceName"; - private static final String SERVICE_NAME_IS_METHOD_NAME = "ServiceNameIsMethodName"; - private static final String INSTANCE_UUID = "InstanceUUID"; - private static final String SERVER_IP = "ServerIPAddress"; - private static final String FQDN = "ServerFQDN"; - public static final String REMOTE_HOST = "RemoteHost"; - public static final String ALERT_SEVERITY = "AlertSeverity"; - public static final String TIMER = "Timer"; - private static final String USER = "User"; - private static final String DUMMY_VALUE = "trace-#"; - public static final String UNKNOWN = "UNKNOWN"; + public static final String REQUEST_ID = "RequestId"; + public static final String SERVICE_INSTANCE_ID = "ServiceInstanceId"; + public static final String SERVICE_NAME = "ServiceName"; + public static final String SERVICE_NAME_IS_METHOD_NAME = "ServiceNameIsMethodName"; + public static final String INSTANCE_UUID = "InstanceUUID"; + public static final String SERVER_IP = "ServerIPAddress"; + + public static final String FQDN = "ServerFQDN"; + public static final String REMOTE_HOST = "RemoteHost"; + public static final String ALERT_SEVERITY = "AlertSeverity"; + public static final String TIMER = "Timer"; + public static final String USER = "User"; + public static final String DUMMY_VALUE = "trace-#"; + public static final String UNKNOWN = "UNKNOWN"; + public static final String CAT_LOG_LEVEL = "CategoryLogLevel"; + public static final String AUDI_CAT_LOG_LEVEL = "AuditCategoryLogLevel"; + //For getting an identity of calling application - public static final String HEADER_FROM_APP_ID = "X-FromAppId"; - public static final String FROM_APP_ID = "FromAppId"; + public static final String HEADER_FROM_APP_ID = "X-FromAppId"; + public static final String FROM_APP_ID = "FromAppId"; + public static final String HEADER_REQUEST_ID = "X-RequestId"; + public static final String TRANSACTION_ID = "X-TransactionID"; + public static final String ECOMP_REQUEST_ID = "X-ECOMP-RequestID"; + public static final String CLIENT_ID = "X-ClientID"; + // Audit/Metric log specific - private static final String BEGINTIME = "BeginTimestamp"; - private static final String ENDTIME = "EndTimestamp"; - public static final String PARTNERNAME = "PartnerName"; - private static final String STATUSCODE = "StatusCode"; - private static final String RESPONSECODE = "ResponseCode"; - private static final String RESPONSEDESC = "ResponseDesc"; + public static final String BEGINTIME = "BeginTimestamp"; + public static final String STARTTIME = "StartTimeMilis"; + public static final String ENDTIME = "EndTimestamp"; + public static final String PARTNERNAME = "PartnerName"; + public static final String STATUSCODE = "StatusCode"; + public static final String RESPONSECODE = "ResponseCode"; + public static final String RESPONSEDESC = "ResponseDesc"; + + // Metric log specific - private static final String TARGETENTITY = "TargetEntity"; - private static final String TARGETSERVICENAME = "TargetServiceName"; - private static final String TARGETVIRTUALENTITY = "TargetVirtualEntity"; - - private static final String FATAL_LEVEL = "FATAL"; - private static final String ERROR_LEVEL = "ERROR"; - private static final String WARN_LEVEL = "WARN"; - private static final String INFO_LEVEL = "INFO"; - private static final String DEBUG_LEVEL = "DEBUG"; - - private static final String ERRORCODE = "ErrorCode"; - private static final String ERRORDESC = "ErrorDesc"; + public static final String METRIC_BEGIN_TIME = "MetricBeginTime"; + public static final String METRIC_START_TIME = "MetricStartTime"; + public static final String METRIC_END_TIME = "MetricEndTime"; + public static final String METRIC_TIMER = "MetricEndTime"; + public static final String TARGETENTITY = "TargetEntity"; + public static final String TARGETSERVICENAME = "TargetServiceName"; + public static final String TARGETVIRTUALENTITY = "TargetVirtualEntity"; + + public static final String FATAL_LEVEL = "FATAL"; + public static final String ERROR_LEVEL = "ERROR"; + public static final String WARN_LEVEL = "WARN"; + public static final String INFO_LEVEL = "INFO"; + public static final String DEBUG_LEVEL = "DEBUG"; + + public static final String ERRORCODE = "ErrorCode"; + public static final String ERRORDESC = "ErrorDesc"; + + public static final String COMPLETE = "COMPLETE"; public enum Catalog { APIH, BPEL, RA, ASDC, GENERAL @@ -103,6 +112,20 @@ public class MsoLogger { public enum StatusCode { COMPLETE, ERROR } + + public enum TargetEntity { + CAMUNDA("Camunda"); + + private String name; + + TargetEntity(String name) { + this.name = name; + } + + public String getUrl() { + return name; + } + } public enum ResponseCode { Suc(0), PermissionError(100), DataError(300), DataNotFound(301), BadRequest(302), SchemaError( @@ -115,7 +138,7 @@ public class MsoLogger { return this.value; } - ResponseCode(int value) { + private ResponseCode(int value) { this.value = value; } } @@ -130,30 +153,37 @@ public class MsoLogger { return this.value; } - ErrorCode(int value) { + private ErrorCode(int value) { this.value = value; } } - private EELFLogger logger, auditLogger, metricsLogger; - private static final String CONFIG_FILE = System.getProperty("jboss.home.dir") + "/mso-config/uuid/uuid_" - + System.getProperty("jboss.server.name"); + private Logger logger; + private Logger metricsLogger; + private Logger auditLogger; private static String instanceUUID, serverIP, serverName; private MessageEnum exceptionArg, defaultException, defaultWarning, defaultAudit, defaultMetrics; // For internal logging of the initialization of MSO logs - private static final Logger LOGGER = Logger.getLogger(MsoLogger.class.getName()); - + private static final Logger initLOGGER = LoggerFactory.getLogger(MsoLogger.class.getName()); - // Since four adaptors are using the instance of MsoLogger which will be referenced everywhere - // hence limiting the number of MsoLogger instances to five. - private static final MsoLogger generalMsoLogger = new MsoLogger(Catalog.GENERAL); - private static final MsoLogger apihLogger = new MsoLogger(Catalog.APIH); - private static final MsoLogger asdcLogger = new MsoLogger(Catalog.ASDC); - private static final MsoLogger raLogger = new MsoLogger(Catalog.RA); - private static final MsoLogger bpelLogger = new MsoLogger(Catalog.BPEL); + private MsoLogger() { + this(MsoLogger.Catalog.GENERAL); + } + + private MsoLogger(MsoLogger.Catalog cat) { + this(cat, MethodHandles.lookup().lookupClass()); + } + + private MsoLogger(MsoLogger.Catalog cat, Class<?> clazz) { + this.logger = LoggerFactory.getLogger(clazz); + this.auditLogger = LoggerFactory.getLogger("AUDIT"); + this.metricsLogger = LoggerFactory.getLogger("METRIC"); + MsoLogger.initialization(); + setDefaultLogCatalog(cat); + } - static { + private static synchronized void initialization() { if (instanceUUID == null || ("").equals(instanceUUID)) { instanceUUID = getInstanceUUID(); } @@ -164,48 +194,20 @@ public class MsoLogger { serverIP = server.getHostAddress(); serverName = server.getHostName(); } catch (UnknownHostException e) { - LOGGER.log(Level.SEVERE, "Could not get local hostname", e); + initLOGGER.error("Could not get local hostname", e); serverIP = ""; serverName = ""; } } } - // Singleton instances of the EELFLogger of all types are referenced by MsoLogger - private MsoLogger(Catalog cat) { - this.logger = EELFManager.getInstance().getErrorLogger(); - this.auditLogger = EELFManager.getInstance().getAuditLogger(); - this.metricsLogger = EELFManager.getInstance().getMetricsLogger(); - this.setDefaultLogCatalog(cat); - } - - - /** - * Get the MsoLogger based on the catalog - * This method is fixed now to resolve the total number of objects that are getting created - * everytime this function gets called. Its supposed to have fixed number of instance per java process. - * - * @param cat - * Catalog of the logger - * @return the MsoLogger - */ - public static synchronized MsoLogger getMsoLogger(MsoLogger.Catalog cat) { - switch (cat) { - case GENERAL: - return generalMsoLogger; - case APIH: - return apihLogger; - case RA: - return raLogger; - case BPEL: - return bpelLogger; - case ASDC: - return asdcLogger; - default: - return generalMsoLogger; - } + + public static MsoLogger getMsoLogger(MsoLogger.Catalog cat, Class<?> clazz) { + return new MsoLogger(cat,clazz); } + + /** * Record the Metrics event with no argument @@ -225,6 +227,13 @@ public class MsoLogger { * @param targetVEntity * Target VNF or VM acted opon by the component, if available */ + public void recordMetricEvent() { + metricsLogger.info(""); + MDC.remove(TIMER); + MDC.remove(TARGETENTITY); + MDC.remove(TARGETSERVICENAME); + } + public void recordMetricEvent(Long startTime, StatusCode statusCode, ResponseCode responseCode, String responseDesc, String targetEntity, String targetServiceName, String targetVEntity) { prepareMetricMsg(startTime, statusCode, responseCode.getValue(), responseDesc, targetEntity, targetServiceName, @@ -235,6 +244,7 @@ public class MsoLogger { MDC.remove(TARGETSERVICENAME); } + /** * Record the Audit event * @@ -247,8 +257,13 @@ public class MsoLogger { * @param responseDesc * Human redable description of the application response code */ + public void recordAuditEvent(){ + auditLogger.info(""); + } + public void recordAuditEvent(Long startTime, StatusCode statusCode, ResponseCode responseCode, String responseDesc) { + MDC.put(MsoLogger.PARTNERNAME, "UNKNOWN"); prepareAuditMsg(startTime, statusCode, responseCode.getValue(), responseDesc); auditLogger.info(""); MDC.remove(TIMER); @@ -278,7 +293,23 @@ public class MsoLogger { prepareMsg(DEBUG_LEVEL); logger.debug(msg, t); } - + + public void info(String msg) { + prepareMsg(DEBUG_LEVEL); + logger.info(msg); + } + + + /** + * Log error message with the details of the exception that caused the error. + * @param msg + * @param throwable + */ + public void error(String msg) { + prepareMsg(ERROR_LEVEL); + logger.error(msg); + } + /** * Log error message with the details of the exception that caused the error. * @param msg @@ -296,7 +327,7 @@ public class MsoLogger { * @param msg * The log message to put */ - public void info(EELFResolvableErrorEnum msg, String targetEntity, String targetServiceName) { + public void info(String msg, String targetEntity, String targetServiceName) { prepareErrorMsg(INFO_LEVEL, targetEntity, targetServiceName, null, ""); logger.info(msg); @@ -312,10 +343,10 @@ public class MsoLogger { * @param arg0 * The argument used in the log message */ - public void info(EELFResolvableErrorEnum msg, String arg0, String targetEntity, String targetServiceName) { + public void info(MessageEnum msg, String arg0, String targetEntity, String targetServiceName) { prepareErrorMsg(INFO_LEVEL, targetEntity, targetServiceName, null, ""); - logger.info(msg, normalize(arg0)); + logger.info(msg.toString(), normalize(arg0)); MDC.remove(TARGETENTITY); MDC.remove(TARGETSERVICENAME); } @@ -328,7 +359,7 @@ public class MsoLogger { * @param arg0,arg1 * The arguments used in the log message */ - public void info(EELFResolvableErrorEnum msg, String arg0, String arg1, String targetEntity, + public void info(String msg, String arg0, String arg1, String targetEntity, String targetServiceName) { prepareErrorMsg(INFO_LEVEL, targetEntity, targetServiceName, null, ""); @@ -345,11 +376,11 @@ public class MsoLogger { * @param arg0,arg1,arg2 * The arguments used in the log message */ - public void info(EELFResolvableErrorEnum msg, String arg0, String arg1, String arg2, String targetEntity, + public void info(MessageEnum msg, String arg0, String arg1, String arg2, String targetEntity, String targetServiceName) { prepareErrorMsg(INFO_LEVEL, targetEntity, targetServiceName, null, ""); - logger.info(msg, normalize(arg0), normalize(arg1), normalize(arg2)); + logger.info(msg.toString(), normalize(arg0), normalize(arg1), normalize(arg2)); MDC.remove(TARGETENTITY); MDC.remove(TARGETSERVICENAME); } @@ -362,7 +393,7 @@ public class MsoLogger { * @param arg0,arg1,arg2,arg3 * The arguments used in the log message */ - public void info(EELFResolvableErrorEnum msg, String arg0, String arg1, String arg2, String arg3, + public void info(String msg, String arg0, String arg1, String arg2, String arg3, String targetEntity, String targetServiceName) { prepareErrorMsg(INFO_LEVEL, targetEntity, targetServiceName, null, ""); @@ -379,7 +410,7 @@ public class MsoLogger { * @param arg0,arg1,arg2,arg3,arg4 * The arguments used in the log message */ - public void info(EELFResolvableErrorEnum msg, String arg0, String arg1, String arg2, String arg3, String arg4, + public void info(String msg, String arg0, String arg1, String arg2, String arg3, String arg4, String targetEntity, String targetServiceName) { prepareErrorMsg(INFO_LEVEL, targetEntity, targetServiceName, null, ""); @@ -396,7 +427,7 @@ public class MsoLogger { * @param arg0,arg1,arg2,arg3,arg4,arg5 * The arguments used in the log message */ - public void info(EELFResolvableErrorEnum msg, String arg0, String arg1, String arg2, String arg3, String arg4, + public void info(String msg, String arg0, String arg1, String arg2, String arg3, String arg4, String arg5, String targetEntity, String targetServiceName) { prepareErrorMsg(INFO_LEVEL, targetEntity, targetServiceName, null, ""); @@ -407,17 +438,28 @@ public class MsoLogger { } // Warning methods + + /** * Record the Warning event * * @param msg * The log message to put */ - public void warn(EELFResolvableErrorEnum msg, String targetEntity, String targetServiceName, ErrorCode errorCode, + public void warnSimple( String targetServiceName, String errorDesc) { + logger.warn("Service Name: {} Error: {}" , targetServiceName, errorDesc); + } + /** + * Record the Warning event + * + * @param msg + * The log message to put + */ + public void warn(MessageEnum msg, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc) { prepareErrorMsg(WARN_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc); - logger.warn(msg); + logger.warn(msg.toString()); MDC.remove(TARGETENTITY); MDC.remove(TARGETSERVICENAME); } @@ -430,12 +472,10 @@ public class MsoLogger { * @param t * The exception info */ - public void warn(EELFResolvableErrorEnum msg, String targetEntity, String targetServiceName, ErrorCode errorCode, + public void warn(MessageEnum msg, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc, Throwable t) { prepareErrorMsg(WARN_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc); - logger.warn(msg); - logger.warn("Exception raised: " + getNormalizedStackTrace(t)); - logger.debug("Exception raised", t); + logger.warn("Warning: "+msg, t); MDC.remove(TARGETENTITY); MDC.remove(TARGETSERVICENAME); } @@ -448,10 +488,10 @@ public class MsoLogger { * @param arg * The argument used in the log message */ - public void warn(EELFResolvableErrorEnum msg, String arg, String targetEntity, String targetServiceName, + public void warn(MessageEnum msg, String arg, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc) { prepareErrorMsg(WARN_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc); - logger.warn(msg, arg); + logger.warn(msg.toString(), arg); MDC.remove(TARGETENTITY); MDC.remove(TARGETSERVICENAME); } @@ -466,11 +506,10 @@ public class MsoLogger { * @param t * The exception info */ - public void warn(EELFResolvableErrorEnum msg, String arg, String targetEntity, String targetServiceName, + public void warn(MessageEnum msg, String arg, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc, Throwable t) { prepareErrorMsg(WARN_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc); - logger.warn(msg, arg); - logger.warn("Exception raised: " + getNormalizedStackTrace(t)); + logger.warn(msg.toString(), arg); logger.debug("Exception raised", t); MDC.remove(TARGETENTITY); MDC.remove(TARGETSERVICENAME); @@ -484,10 +523,10 @@ public class MsoLogger { * @param arg0,arg1 * The arguments used in the log message */ - public void warn(EELFResolvableErrorEnum msg, String arg0, String arg1, String targetEntity, + public void warn(MessageEnum msg, String arg0, String arg1, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc) { prepareErrorMsg(WARN_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc); - logger.warn(msg, normalize(arg0), normalize(arg1)); + logger.warn(msg.toString(), normalize(arg0), normalize(arg1)); MDC.remove(TARGETENTITY); MDC.remove(TARGETSERVICENAME); } @@ -502,12 +541,11 @@ public class MsoLogger { * @param t * The exception info */ - public void warn(EELFResolvableErrorEnum msg, String arg0, String arg1, String targetEntity, + public void warn(String msg, String arg0, String arg1, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc, Throwable t) { prepareErrorMsg(WARN_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc); logger.warn(msg, normalize(arg0), normalize(arg1)); - logger.warn("Exception raised: " + getNormalizedStackTrace(t)); - logger.debug("Exception raised", t); + logger.warn(msg, t); MDC.remove(TARGETENTITY); MDC.remove(TARGETSERVICENAME); } @@ -520,7 +558,7 @@ public class MsoLogger { * @param arg0,arg1,arg2 * The arguments used in the log message */ - public void warn(EELFResolvableErrorEnum msg, String arg0, String arg1, String arg2, String targetEntity, + public void warn(String msg, String arg0, String arg1, String arg2, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc) { prepareErrorMsg(WARN_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc); logger.warn(msg, normalize(arg0), normalize(arg1), normalize(arg2)); @@ -538,12 +576,11 @@ public class MsoLogger { * @param t * The exception info */ - public void warn(EELFResolvableErrorEnum msg, String arg0, String arg1, String arg2, String targetEntity, + public void warn(String msg, String arg0, String arg1, String arg2, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc, Throwable t) { prepareErrorMsg(WARN_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc); logger.warn(msg, normalize(arg0), normalize(arg1), normalize(arg2)); - logger.warn("Exception raised: " + getNormalizedStackTrace(t)); - logger.debug("Exception raised", t); + logger.warn(msg, t); MDC.remove(TARGETENTITY); MDC.remove(TARGETSERVICENAME); } @@ -556,7 +593,7 @@ public class MsoLogger { * @param arg0,arg1,arg2,arg3 * The arguments used in the log message */ - public void warn(EELFResolvableErrorEnum msg, String arg0, String arg1, String arg2, String arg3, + public void warn(String msg, String arg0, String arg1, String arg2, String arg3, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc) { prepareErrorMsg(WARN_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc); logger.warn(msg, normalize(arg0), normalize(arg1), normalize(arg2), normalize(arg3)); @@ -574,12 +611,11 @@ public class MsoLogger { * @param t * The exception info */ - public void warn(EELFResolvableErrorEnum msg, String arg0, String arg1, String arg2, String arg3, + public void warn(String msg, String arg0, String arg1, String arg2, String arg3, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc, Throwable t) { prepareErrorMsg(WARN_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc); logger.warn(msg, normalize(arg0), normalize(arg1), normalize(arg2), normalize(arg3)); - logger.warn("Exception raised: " + getNormalizedStackTrace(t)); - logger.debug("Exception raised", t); + logger.warn(msg, t); MDC.remove(TARGETENTITY); MDC.remove(TARGETSERVICENAME); } @@ -592,7 +628,7 @@ public class MsoLogger { * @param arg0,arg1,arg2,arg3,arg4 * The arguments used in the log message */ - public void warn(EELFResolvableErrorEnum msg, String arg0, String arg1, String arg2, String arg3, String arg4, + public void warn(String msg, String arg0, String arg1, String arg2, String arg3, String arg4, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc) { prepareErrorMsg(WARN_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc); logger.warn(msg, normalize(arg0), normalize(arg1), normalize(arg2), normalize(arg3), normalize(arg4)); @@ -610,30 +646,58 @@ public class MsoLogger { * @param t * The exception info */ - public void warn(EELFResolvableErrorEnum msg, String arg0, String arg1, String arg2, String arg3, String arg4, + public void warn(String msg, String arg0, String arg1, String arg2, String arg3, String arg4, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc, Throwable t) { prepareErrorMsg(WARN_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc); logger.warn(msg, normalize(arg0), normalize(arg1), normalize(arg2), normalize(arg3), normalize(arg4)); - logger.warn("Exception raised: " + getNormalizedStackTrace(t)); - logger.debug("Exception raised", t); + logger.warn(msg, t); MDC.remove(TARGETENTITY); MDC.remove(TARGETSERVICENAME); } + + // Error methods /** * Record the Error event * - * @param msg + * @param generalException * The log message to put */ - public void error(EELFResolvableErrorEnum msg, String targetEntity, String targetServiceName, ErrorCode errorCode, + public void error(MessageEnum generalException, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc) { prepareErrorMsg(ERROR_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc); - logger.error(msg); + logger.error(generalException.toString() + ": " +errorDesc); MDC.remove(TARGETENTITY); MDC.remove(TARGETSERVICENAME); } + + + /** + * Record the Error event + * + * @param msg + * The log message to put + * @param t + * The exception info + */ + public void trace(String traceMessage) { + logger.trace(traceMessage); + } + + + /** + * Record the Error event + * + * @param msg + * The log message to put + * @param t + * The exception info + */ + public void error( Throwable t) { + logger.error(t.getMessage(), t); + } + /** * Record the Error event @@ -643,16 +707,14 @@ public class MsoLogger { * @param t * The exception info */ - public void error(EELFResolvableErrorEnum msg, String targetEntity, String targetServiceName, ErrorCode errorCode, + public void error(MessageEnum msg, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc, Throwable t) { prepareErrorMsg(ERROR_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc); - logger.error(msg); - logger.error(exceptionArg, getNormalizedStackTrace(t)); - logger.debug("Exception raised", t); + logger.error(msg.toString(), t); MDC.remove(TARGETENTITY); MDC.remove(TARGETSERVICENAME); } - + /** * Record the Error event with 1 argument * @@ -661,10 +723,10 @@ public class MsoLogger { * @param arg0 * The arguments used in the log message */ - public void error(EELFResolvableErrorEnum msg, String arg0, String targetEntity, String targetServiceName, + public void error(MessageEnum msg, String arg0, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc) { prepareErrorMsg(ERROR_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc); - logger.error(msg, normalize(arg0)); + logger.error(msg.toString(), normalize(arg0)); MDC.remove(TARGETENTITY); MDC.remove(TARGETSERVICENAME); } @@ -679,12 +741,10 @@ public class MsoLogger { * @param t * The exception info */ - public void error(EELFResolvableErrorEnum msg, String arg0, String targetEntity, String targetServiceName, + public void error(MessageEnum msg, String arg0, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc, Throwable t) { prepareErrorMsg(ERROR_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc); - logger.error(msg, normalize(arg0)); - logger.error(exceptionArg, getNormalizedStackTrace(t)); - logger.debug("Exception raised", t); + logger.error(msg.toString(), normalize(arg0), t); MDC.remove(TARGETENTITY); MDC.remove(TARGETSERVICENAME); } @@ -697,10 +757,10 @@ public class MsoLogger { * @param arg0,arg1 * The arguments used in the log message */ - public void error(EELFResolvableErrorEnum msg, String arg0, String arg1, String targetEntity, + public void error(MessageEnum msg, String arg0, String arg1, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc) { prepareErrorMsg(ERROR_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc); - logger.error(msg, normalize(arg0), normalize(arg1)); + logger.error(msg.toString(), normalize(arg0), normalize(arg1)); MDC.remove(TARGETENTITY); MDC.remove(TARGETSERVICENAME); } @@ -715,11 +775,10 @@ public class MsoLogger { * @param t * The exception info */ - public void error(EELFResolvableErrorEnum msg, String arg0, String arg1, String targetEntity, + public void error(MessageEnum msg, String arg0, String arg1, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc, Throwable t) { prepareErrorMsg(ERROR_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc); - logger.error(msg, normalize(arg0), normalize(arg1)); - logger.error(exceptionArg, getNormalizedStackTrace(t)); + logger.error(msg.toString(), normalize(arg0), normalize(arg1), t); logger.debug("Exception raised", t); MDC.remove(TARGETENTITY); MDC.remove(TARGETSERVICENAME); @@ -733,10 +792,10 @@ public class MsoLogger { * @param arg0,arg1,arg2 * The arguments used in the log message */ - public void error(EELFResolvableErrorEnum msg, String arg0, String arg1, String arg2, String targetEntity, + public void error(MessageEnum msg, String arg0, String arg1, String arg2, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc) { prepareErrorMsg(ERROR_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc); - logger.error(msg, normalize(arg0), normalize(arg1), normalize(arg2)); + logger.error(msg.toString(), normalize(arg0), normalize(arg1), normalize(arg2)); MDC.remove(TARGETENTITY); MDC.remove(TARGETSERVICENAME); } @@ -751,12 +810,10 @@ public class MsoLogger { * @param t * The exception info */ - public void error(EELFResolvableErrorEnum msg, String arg0, String arg1, String arg2, String targetEntity, + public void error(MessageEnum msg, String arg0, String arg1, String arg2, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc, Throwable t) { prepareErrorMsg(ERROR_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc); - logger.error(msg, normalize(arg0), normalize(arg1), normalize(arg2)); - logger.error(exceptionArg, getNormalizedStackTrace(t)); - logger.debug("Exception raised", t); + logger.error(msg.toString(), normalize(arg0), normalize(arg1), normalize(arg2), t); MDC.remove(TARGETENTITY); MDC.remove(TARGETSERVICENAME); } @@ -769,10 +826,10 @@ public class MsoLogger { * @param arg0,arg1,arg2,arg3 * The arguments used in the log message */ - public void error(EELFResolvableErrorEnum msg, String arg0, String arg1, String arg2, String arg3, + public void error(MessageEnum msg, String arg0, String arg1, String arg2, String arg3, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc) { prepareErrorMsg(ERROR_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc); - logger.error(msg, normalize(arg0), normalize(arg1), normalize(arg2), normalize(arg3)); + logger.error(msg.toString(), normalize(arg0), normalize(arg1), normalize(arg2), normalize(arg3)); MDC.remove(TARGETENTITY); MDC.remove(TARGETSERVICENAME); } @@ -787,11 +844,11 @@ public class MsoLogger { * @param t * The exception info */ - public void error(EELFResolvableErrorEnum msg, String arg0, String arg1, String arg2, String arg3, + public void error(MessageEnum msg, String arg0, String arg1, String arg2, String arg3, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc, Throwable t) { prepareErrorMsg(ERROR_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc); - logger.error(msg, normalize(arg0), normalize(arg1), normalize(arg2), normalize(arg3)); - logger.error(exceptionArg, getNormalizedStackTrace(t)); + logger.error(msg.toString(), normalize(arg0), normalize(arg1), normalize(arg2), normalize(arg3), t); + logger.debug("Exception raised", t); MDC.remove(TARGETENTITY); MDC.remove(TARGETSERVICENAME); @@ -805,10 +862,10 @@ public class MsoLogger { * @param arg0,arg1,arg2,arg3,arg4 * The arguments used in the log message */ - public void error(EELFResolvableErrorEnum msg, String arg0, String arg1, String arg2, String arg3, String arg4, + public void error(MessageEnum msg, String arg0, String arg1, String arg2, String arg3, String arg4, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc) { prepareErrorMsg(ERROR_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc); - logger.error(msg, normalize(arg0), normalize(arg1), normalize(arg2), normalize(arg3), normalize(arg4)); + logger.error(msg.toString(), normalize(arg0), normalize(arg1), normalize(arg2), normalize(arg3), normalize(arg4)); MDC.remove(TARGETENTITY); MDC.remove(TARGETSERVICENAME); } @@ -823,15 +880,29 @@ public class MsoLogger { * @param t * The exception info */ - public void error(EELFResolvableErrorEnum msg, String arg0, String arg1, String arg2, String arg3, String arg4, + public void error(MessageEnum msg, String arg0, String arg1, String arg2, String arg3, String arg4, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc, Throwable t) { prepareErrorMsg(ERROR_LEVEL, targetEntity, targetServiceName, errorCode, errorDesc); - logger.error(msg, normalize(arg0), normalize(arg1), normalize(arg2), normalize(arg3), normalize(arg4)); - logger.error(exceptionArg, getNormalizedStackTrace(t)); + logger.error(msg.toString(), normalize(arg0), normalize(arg1), normalize(arg2), normalize(arg3), normalize(arg4), t); logger.debug("Exception raised", t); MDC.remove(TARGETENTITY); MDC.remove(TARGETSERVICENAME); } + + public void error(String errorMessage, String errorSource, String targetEntity, String targetServiceName, + ErrorCode errorCode, String errorText) { + prepareErrorMsg(ERROR_LEVEL, targetEntity, targetServiceName, errorCode, errorText); + logger.error(errorMessage); + MDC.remove(TARGETENTITY); + MDC.remove(TARGETSERVICENAME); + + } + + public void logStackTrace(Exception ex){ + StringWriter errors = new StringWriter(); + ex.printStackTrace(new PrintWriter(errors)); + logger.error(errors.toString()); + } public boolean isDebugEnabled() { return logger.isDebugEnabled(); @@ -851,23 +922,24 @@ public class MsoLogger { MDC.put(REQUEST_ID, DUMMY_VALUE); } - if (svcId == null || svcId.isEmpty()) { - MDC.put(SERVICE_INSTANCE_ID, DUMMY_VALUE); - } - if (timer != null) { MDC.put(TIMER, timer); - } else { - MDC.remove(TIMER); - } - - MDC.put(SERVICE_NAME, getFinalServiceName(serviceNamep)); - MDC.put(ALERT_SEVERITY, getSeverityLevel(loggingLevel)); - MDC.put(INSTANCE_UUID, instanceUUID); - MDC.put(SERVER_IP, serverIP); - MDC.put(FQDN, serverName); + } + + writeIfNotNullorEmpty(SERVICE_NAME,getFinalServiceName(serviceNamep)); + writeIfNotNullorEmpty(ALERT_SEVERITY,getSeverityLevel(loggingLevel)); + writeIfNotNullorEmpty(INSTANCE_UUID,instanceUUID); + writeIfNotNullorEmpty(SERVER_IP,serverIP); + writeIfNotNullorEmpty(FQDN,serverName); + } + private void writeIfNotNullorEmpty(String Key, String value) { + if (MDC.get(Key) == null|| MDC.get(Key).isEmpty()) { + MDC.put(Key, value); + } + } + private void prepareAuditMsg(long startTime, StatusCode statusCode, int responseCode, String responseDesc) { long endTime = System.currentTimeMillis(); prepareMsg(INFO_LEVEL, null, String.valueOf(endTime - startTime)); @@ -890,7 +962,9 @@ public class MsoLogger { private void prepareErrorMsg(String loggingLevel, String targetEntity, String targetServiceName, ErrorCode errorCode, String errorDesc) { MDC.put(ALERT_SEVERITY, getSeverityLevel(loggingLevel)); - MDC.put(ERRORCODE, String.valueOf(errorCode)); + if(errorCode != null) { + MDC.put(ERRORCODE, Integer.toString(errorCode.getValue())); + } MDC.put(ERRORDESC, errorDesc); MDC.put(TARGETENTITY, targetEntity); MDC.put(TARGETSERVICENAME, targetServiceName); @@ -968,8 +1042,7 @@ public class MsoLogger { limit = classArr.length; } for (int i = 1; i < limit; i++) { - String className = classArr[i].getClassName(); - if (!className.equals(this.getClass().getName())) { + if (!classArr[i].getClassName().equals(this.getClass().getName())) { return classArr[i].getMethodName(); } } @@ -981,55 +1054,8 @@ public class MsoLogger { // it is generated during mso instance initialization period // The same mso instnace will use the same instanceUUID value, even after // restart - private static String getInstanceUUID() { - // Avoid creation during build and tests - if (System.getProperty("jboss.server.name") == null) { - return "Test UUID as JBoss not found"; - } - File configFile = new File(CONFIG_FILE); - String uuid = ""; - BufferedReader in = null; - try{ - // Verify whether instanceUUID file exist, - // If yes, read the content; if not, generate the instanceUUID and - // write to the file - if (configFile.exists()) { - // read the content of the file - in = new BufferedReader(new FileReader(CONFIG_FILE)); - if ((uuid = in.readLine()) == null) { - // the file is empty, regenerate the file - uuid = UUID.randomUUID().toString(); - try(BufferedWriter bw = new BufferedWriter(new FileWriter(configFile.getAbsoluteFile()))) { - bw.write(uuid); - } catch (IOException e) { - LOGGER.log(Level.SEVERE, "Error trying to write UUID file", e); - } - } - in.close(); - } else { - // file doesn't exist yet -> create the file and generate the - // instanceUUID - uuid = UUID.randomUUID().toString(); - configFile.getParentFile().mkdirs(); - configFile.createNewFile(); - try(BufferedWriter bw1 = new BufferedWriter(new FileWriter(configFile.getAbsoluteFile()))){ - bw1.write(uuid); - } catch (IOException e) { - LOGGER.log(Level.SEVERE, "Error trying to write UUID file", e); - } - } - } catch (IOException e) { - LOGGER.log(Level.SEVERE, "Error trying to read UUID file", e); - } finally { - try { - if (in != null) { - in.close(); - } - } catch (IOException ex) { - LOGGER.log(Level.SEVERE, "Error trying to close UUID file", ex); - } - } - return uuid; + private static String getInstanceUUID() { + return System.getProperty("mso-instance-id"); } /** @@ -1121,13 +1147,6 @@ public class MsoLogger { return result; } - private String getNormalizedStackTrace(Throwable t) { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - t.printStackTrace(pw); - return sw.toString().replace('|', '!').replace("\n", " - "); - } - private void setDefaultLogCatalog(MsoLogger.Catalog cat) { if ("APIH".equals(cat.toString())) { exceptionArg = MessageEnum.APIH_GENERAL_EXCEPTION_ARG; @@ -1161,4 +1180,14 @@ public class MsoLogger { defaultMetrics = MessageEnum.GENERAL_METRICS; } } + + public void warnSimple(String message, Exception e) { + logger.warn(message,e); + + } + + + + + } diff --git a/common/src/main/java/org/onap/so/logging/jaxrs/filter/jersey/JaxRsClientLogging.java b/common/src/main/java/org/onap/so/logging/jaxrs/filter/jersey/JaxRsClientLogging.java new file mode 100644 index 0000000000..2888cbf3a1 --- /dev/null +++ b/common/src/main/java/org/onap/so/logging/jaxrs/filter/jersey/JaxRsClientLogging.java @@ -0,0 +1,135 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.logging.jaxrs.filter.jersey; + + +import org.apache.commons.io.IOUtils; +import org.onap.so.logger.MsoLogger; +import org.onap.so.utils.TargetEntity; +import org.slf4j.MDC; +import org.springframework.stereotype.Component; + +import javax.ws.rs.client.ClientRequestContext; +import javax.ws.rs.client.ClientRequestFilter; +import javax.ws.rs.client.ClientResponseContext; +import javax.ws.rs.client.ClientResponseFilter; +import javax.ws.rs.core.MultivaluedMap; +import javax.ws.rs.core.Response; + +import java.io.*; + +import java.time.Instant; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; +import java.util.Locale; +import java.util.UUID; + +@SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection") +@Component +public class JaxRsClientLogging implements ClientRequestFilter,ClientResponseFilter { + + private static MsoLogger logger = MsoLogger.getMsoLogger (MsoLogger.Catalog.RA,JaxRsClientLogging.class); + + private TargetEntity targetEntity; + + public void setTargetService(TargetEntity targetEntity){ + this.targetEntity = targetEntity; + } + + @Override + public void filter(ClientRequestContext clientRequest) { + try{ + MultivaluedMap<String, Object> headers = clientRequest.getHeaders(); + + + Instant instant = Instant.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSXXX" ) + .withLocale( Locale.US ) + .withZone( ZoneId.systemDefault() ); + + String requestId = MDC.get(MsoLogger.REQUEST_ID); + if(requestId == null || requestId.isEmpty()){ + requestId = UUID.randomUUID().toString(); + logger.warnSimple(clientRequest.getUri().getPath(),"Could not Find Request ID Generating New One"); + } + + MDC.put(MsoLogger.METRIC_BEGIN_TIME, formatter.format(instant)); + MDC.put(MsoLogger.METRIC_START_TIME, String.valueOf(System.currentTimeMillis())); + MDC.put(MsoLogger.REQUEST_ID,requestId); + MDC.put(MsoLogger.TARGETSERVICENAME, clientRequest.getUri().toString()); + } catch (Exception e) { + logger.warnSimple("Error in incoming JAX-RS Inteceptor", e); + } + } + + + @Override + public void filter(ClientRequestContext requestContext, ClientResponseContext responseContext) { + + try { + Instant instant = Instant.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSXXX" ) + .withLocale( Locale.US ) + .withZone( ZoneId.systemDefault() ); + String startTime= MDC.get(MsoLogger.METRIC_START_TIME); + + long elapsedTime = System.currentTimeMillis()-Long.parseLong(startTime); + String statusCode; + if(Response.Status.Family.familyOf(responseContext.getStatus()).equals(Response.Status.Family.SUCCESSFUL)){ + statusCode=MsoLogger.COMPLETE; + }else{ + statusCode=MsoLogger.StatusCode.ERROR.toString(); + } + MultivaluedMap<String, String> headers = responseContext.getHeaders(); + + String partnerName = headers.getFirst(MsoLogger.HEADER_FROM_APP_ID ); + if(partnerName == null || partnerName.isEmpty()) + partnerName="UNKNOWN"; + MDC.put(MsoLogger.RESPONSEDESC,getStringFromInputStream(responseContext)); + MDC.put(MsoLogger.STATUSCODE, statusCode); + MDC.put(MsoLogger.RESPONSECODE,String.valueOf(responseContext.getStatus())); + MDC.put(MsoLogger.METRIC_TIMER, String.valueOf(elapsedTime)); + MDC.put(MsoLogger.METRIC_END_TIME,formatter.format(instant)); + MDC.put(MsoLogger.PARTNERNAME,partnerName); + MDC.put(MsoLogger.TARGETENTITY, targetEntity.toString()); + logger.recordMetricEvent(); + } catch ( Exception e) { + logger.warnSimple("Error in outgoing JAX-RS Inteceptor", e); + } + } + + private static String getStringFromInputStream(ClientResponseContext clientResponseContext) { + + InputStream is = clientResponseContext.getEntityStream(); + ByteArrayOutputStream boas = new ByteArrayOutputStream(); + + try { + IOUtils.copy(is,boas); + InputStream copiedStream = new ByteArrayInputStream(boas.toByteArray()); + clientResponseContext.setEntityStream(copiedStream); + return boas.toString(); + + } catch (IOException e) { + logger.warnSimple("Failed to read response body", e); + } + return "Unable to read input stream"; + } +} diff --git a/common/src/main/java/org/onap/so/logging/jaxrs/filter/jersey/JaxRsFilterLogging.java b/common/src/main/java/org/onap/so/logging/jaxrs/filter/jersey/JaxRsFilterLogging.java new file mode 100644 index 0000000000..9fab4ff0df --- /dev/null +++ b/common/src/main/java/org/onap/so/logging/jaxrs/filter/jersey/JaxRsFilterLogging.java @@ -0,0 +1,180 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.logging.jaxrs.filter.jersey; + + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.lang.annotation.Annotation; +import java.lang.reflect.Type; +import java.time.Instant; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; +import java.util.Locale; +import java.util.UUID; + +import javax.annotation.Priority; +import javax.servlet.http.HttpServletRequest; +import javax.ws.rs.container.ContainerRequestContext; +import javax.ws.rs.container.ContainerRequestFilter; +import javax.ws.rs.container.ContainerResponseContext; +import javax.ws.rs.container.ContainerResponseFilter; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.MultivaluedMap; +import javax.ws.rs.core.Response; +import javax.ws.rs.ext.MessageBodyWriter; +import javax.ws.rs.ext.Provider; +import javax.ws.rs.ext.Providers; + +import org.onap.so.logger.MsoLogger; +import org.slf4j.MDC; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import com.fasterxml.jackson.databind.ObjectMapper; + +@Priority(1) +@Provider +@Component +public class JaxRsFilterLogging implements ContainerRequestFilter,ContainerResponseFilter { + + private static MsoLogger logger = MsoLogger.getMsoLogger (MsoLogger.Catalog.RA,JaxRsFilterLogging.class); + + @Context + private HttpServletRequest httpServletRequest; + + @Context + private Providers providers; + + @Autowired + ObjectMapper objectMapper; + + @Override + public void filter(ContainerRequestContext containerRequest) { + + try { + String clientID = null; + //check headers for request id + MultivaluedMap<String, String> headers = containerRequest.getHeaders(); + String requestId = (String) headers.getFirst(MsoLogger.HEADER_REQUEST_ID ); + if(requestId == null || requestId.isEmpty()){ + if(headers.containsKey(MsoLogger.TRANSACTION_ID)){ + requestId = headers.getFirst(MsoLogger.TRANSACTION_ID); + }else if(headers.containsKey(MsoLogger.ECOMP_REQUEST_ID)){ + requestId = headers.getFirst(MsoLogger.ECOMP_REQUEST_ID); + }else{ + requestId = UUID.randomUUID().toString(); + logger.warnSimple(containerRequest.getUriInfo().getPath(),"Generating RequestId for Request"); + } + } + containerRequest.setProperty("requestId", requestId); + if(headers.containsKey(MsoLogger.CLIENT_ID)){ + clientID = headers.getFirst(MsoLogger.CLIENT_ID); + }else{ + clientID = "UNKNOWN"; + headers.add(MsoLogger.CLIENT_ID, clientID); + } + String remoteIpAddress = ""; + if (httpServletRequest != null) { + remoteIpAddress = httpServletRequest.getRemoteAddr(); + } + Instant instant = Instant.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSXXX" ) + .withLocale( Locale.US ) + .withZone( ZoneId.systemDefault() ); + + String partnerName = headers.getFirst(MsoLogger.HEADER_FROM_APP_ID ); + if(partnerName == null || partnerName.isEmpty()) + partnerName="UNKNOWN"; + + MDC.put(MsoLogger.FROM_APP_ID,partnerName); + MDC.put(MsoLogger.SERVICE_NAME, containerRequest.getUriInfo().getPath()); + MDC.put(MsoLogger.BEGINTIME, formatter.format(instant)); + MDC.put(MsoLogger.REQUEST_ID,requestId); + MDC.put(MsoLogger.PARTNERNAME,partnerName); + MDC.put(MsoLogger.REMOTE_HOST, String.valueOf(remoteIpAddress)); + MDC.put(MsoLogger.STARTTIME, String.valueOf(System.currentTimeMillis())); + MDC.put(MsoLogger.CLIENT_ID, clientID); + } catch (Exception e) { + logger.warnSimple("Error in incoming JAX-RS Inteceptor", e); + } + } + + + @Override + public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) + throws IOException { + try { + Instant instant = Instant.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSXXX" ) + .withLocale( Locale.US ) + .withZone( ZoneId.systemDefault() ); + String startTime= MDC.get(MsoLogger.STARTTIME); + long elapsedTime; + try { + elapsedTime = System.currentTimeMillis() - Long.parseLong(startTime); + }catch(NumberFormatException e){ + elapsedTime = 0; + } + String statusCode; + if(Response.Status.Family.familyOf(responseContext.getStatus()).equals(Response.Status.Family.SUCCESSFUL)){ + statusCode=MsoLogger.COMPLETE; + }else{ + statusCode= MsoLogger.StatusCode.ERROR.toString(); + } + + MDC.put(MsoLogger.RESPONSEDESC,payloadMessage(responseContext)); + MDC.put(MsoLogger.STATUSCODE, statusCode); + MDC.put(MsoLogger.RESPONSECODE,String.valueOf(responseContext.getStatus())); + MDC.put(MsoLogger.TIMER, String.valueOf(elapsedTime)); + MDC.put(MsoLogger.ENDTIME,formatter.format(instant)); + logger.recordAuditEvent(); + } catch ( Exception e) { + logger.warnSimple("Error in outgoing JAX-RS Inteceptor", e); + } + } + + private String payloadMessage(ContainerResponseContext responseContext) throws IOException { + String message = new String(); + if (responseContext.hasEntity()) { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + Class<?> entityClass = responseContext.getEntityClass(); + Type entityType = responseContext.getEntityType(); + Annotation[] entityAnnotations = responseContext.getEntityAnnotations(); + MediaType mediaType = responseContext.getMediaType(); + @SuppressWarnings("unchecked") + MessageBodyWriter<Object> bodyWriter = (MessageBodyWriter<Object>) providers.getMessageBodyWriter(entityClass, + entityType, + entityAnnotations, + mediaType); + bodyWriter.writeTo(responseContext.getEntity(), + entityClass, + entityType, + entityAnnotations, + mediaType, + responseContext.getHeaders(), + baos); + message = message.concat(new String(baos.toByteArray())); + } + return message; + } +} diff --git a/common/src/main/java/org/onap/so/logging/jaxrs/filter/jersey/SpringClientFilter.java b/common/src/main/java/org/onap/so/logging/jaxrs/filter/jersey/SpringClientFilter.java new file mode 100644 index 0000000000..0477c9a429 --- /dev/null +++ b/common/src/main/java/org/onap/so/logging/jaxrs/filter/jersey/SpringClientFilter.java @@ -0,0 +1,67 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.logging.jaxrs.filter.jersey; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpRequest; +import org.springframework.http.client.ClientHttpRequestExecution; +import org.springframework.http.client.ClientHttpRequestInterceptor; +import org.springframework.http.client.ClientHttpResponse; +import org.springframework.util.StreamUtils; + +import java.io.IOException; +import java.nio.charset.Charset; + +public class SpringClientFilter implements ClientHttpRequestInterceptor { + + private final Logger log = LoggerFactory.getLogger(this.getClass()); + + @Override + public ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution) throws IOException { + logRequest(request, body); + ClientHttpResponse response = execution.execute(request, body); + logResponse(response); + return response; + } + + private void logRequest(HttpRequest request, byte[] body) throws IOException { + if (log.isDebugEnabled()) { + log.debug("===========================request begin================================================"); + log.debug("URI : {}", request.getURI()); + log.debug("Method : {}", request.getMethod()); + log.debug("Headers : {}", request.getHeaders()); + log.debug("Request body: {}", new String(body, "UTF-8")); + log.debug("==========================request end================================================"); + } + } + + private void logResponse(ClientHttpResponse response) throws IOException { + if (log.isDebugEnabled()) { + log.debug("============================response begin=========================================="); + log.debug("Status code : {}", response.getStatusCode()); + log.debug("Status text : {}", response.getStatusText()); + log.debug("Headers : {}", response.getHeaders()); + log.debug("Response body: {}", StreamUtils.copyToString(response.getBody(), Charset.defaultCharset())); + log.debug("=======================response end================================================="); + } + } +} diff --git a/common/src/main/java/org/openecomp/mso/openpojo/rules/CustomSetterMustExistRule.java b/common/src/main/java/org/onap/so/openpojo/rules/CustomSetterMustExistRule.java index fa24662d69..2c6590afb3 100644 --- a/common/src/main/java/org/openecomp/mso/openpojo/rules/CustomSetterMustExistRule.java +++ b/common/src/main/java/org/onap/so/openpojo/rules/CustomSetterMustExistRule.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP - SO * ================================================================================ - * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.openpojo.rules; +package org.onap.so.openpojo.rules; import static org.hamcrest.CoreMatchers.anyOf; import static org.hamcrest.CoreMatchers.anything; @@ -33,7 +33,7 @@ import com.openpojo.validation.rule.Rule; public class CustomSetterMustExistRule implements Rule { - private Matcher<PojoField>[] excludeMatchers = new Matcher[]{not(anything())}; + private Matcher[] excludeMatchers = new Matcher[]{not(anything())}; private Matcher<PojoField>[] includeMatchers = new Matcher[]{anything()}; public CustomSetterMustExistRule() { } @@ -45,7 +45,7 @@ public class CustomSetterMustExistRule implements Rule { } } } - public CustomSetterMustExistRule exclude(Matcher<PojoField>... excludeMatchers) { + public CustomSetterMustExistRule exclude(Matcher... excludeMatchers) { this.excludeMatchers = excludeMatchers; return this; } diff --git a/common/src/main/java/org/openecomp/mso/openpojo/rules/EqualsAndHashCodeTester.java b/common/src/main/java/org/onap/so/openpojo/rules/EqualsAndHashCodeTester.java index 9540409e16..5433681b83 100644 --- a/common/src/main/java/org/openecomp/mso/openpojo/rules/EqualsAndHashCodeTester.java +++ b/common/src/main/java/org/onap/so/openpojo/rules/EqualsAndHashCodeTester.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP - SO * ================================================================================ - * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.openpojo.rules; +package org.onap.so.openpojo.rules; import static org.hamcrest.CoreMatchers.anyOf; import static org.hamcrest.CoreMatchers.anything; @@ -29,6 +29,7 @@ import java.util.HashSet; import java.util.List; import java.util.Set; +import javax.persistence.GeneratedValue; import javax.persistence.Id; import org.hamcrest.Matcher; @@ -118,6 +119,7 @@ public class EqualsAndHashCodeTester implements Tester { fields.addAll(pojoClass.getPojoFieldsAnnotatedWith(BusinessKey.class)); fields.addAll(pojoClass.getPojoFieldsAnnotatedWith(Id.class)); + fields.removeAll(pojoClass.getPojoFieldsAnnotatedWith(GeneratedValue.class)); return fields; diff --git a/common/src/main/java/org/openecomp/mso/openpojo/rules/HasAnnotationMatcher.java b/common/src/main/java/org/onap/so/openpojo/rules/HasAnnotationMatcher.java index fdfb9695e7..6a06834d87 100644 --- a/common/src/main/java/org/openecomp/mso/openpojo/rules/HasAnnotationMatcher.java +++ b/common/src/main/java/org/onap/so/openpojo/rules/HasAnnotationMatcher.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP - SO * ================================================================================ - * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.openpojo.rules; +package org.onap.so.openpojo.rules; import static org.hamcrest.CoreMatchers.anything; @@ -29,18 +29,20 @@ import org.hamcrest.Description; import org.hamcrest.Matcher; import org.hamcrest.TypeSafeDiagnosingMatcher; -public class HasAnnotationMatcher<T extends Annotation> extends TypeSafeDiagnosingMatcher<AnnotatedElement> { - private final Class<T> annotationType; +import com.openpojo.reflection.PojoField; + +public class HasAnnotationMatcher<T extends PojoField> extends TypeSafeDiagnosingMatcher<T> { + private final Class<? extends Annotation> annotationType; private final Matcher<? super T> annotationMatcher; - public HasAnnotationMatcher(final Class<T> annotationType, final Matcher<? super T> annotationMatcher) { + public HasAnnotationMatcher(final Class<? extends Annotation> annotationType, final Matcher<? super T> annotationMatcher) { this.annotationType = annotationType; this.annotationMatcher = annotationMatcher; } @Override - protected boolean matchesSafely(final AnnotatedElement item, final Description mismatchDescription) { - final T annotation = item.getAnnotation(this.annotationType); + protected boolean matchesSafely(final PojoField item, final Description mismatchDescription) { + final Annotation annotation = item.getAnnotation(this.annotationType); if (annotation == null) { mismatchDescription.appendText("does not have annotation ").appendText(this.annotationType.getName()); return false; @@ -59,11 +61,11 @@ public class HasAnnotationMatcher<T extends Annotation> extends TypeSafeDiagnosi // Intentionally left blank. } - public static Matcher<AnnotatedElement> hasAnnotation(final Class<? extends Annotation> annotationType) { + public static <T extends PojoField> Matcher<T> hasAnnotation(final Class<? extends Annotation> annotationType) { return hasAnnotation(annotationType, anything("")); } - public static <T extends Annotation> Matcher<AnnotatedElement> hasAnnotation(final Class<T> annotationType, final Matcher<? super T> annotationMatcher) { + public static <T extends PojoField> Matcher<T> hasAnnotation(final Class<? extends Annotation> annotationType, final Matcher<? super T> annotationMatcher) { return new HasAnnotationMatcher<T>(annotationType, annotationMatcher); } } diff --git a/common/src/main/java/org/openecomp/mso/openpojo/rules/HasAnnotationPropertyWithValueMatcher.java b/common/src/main/java/org/onap/so/openpojo/rules/HasAnnotationPropertyWithValueMatcher.java index d1b2fb1d11..551305c14a 100644 --- a/common/src/main/java/org/openecomp/mso/openpojo/rules/HasAnnotationPropertyWithValueMatcher.java +++ b/common/src/main/java/org/onap/so/openpojo/rules/HasAnnotationPropertyWithValueMatcher.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP - SO * ================================================================================ - * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.openpojo.rules; +package org.onap.so.openpojo.rules; import java.lang.annotation.Annotation; import java.lang.reflect.Field; @@ -28,12 +28,12 @@ import java.lang.reflect.Method; import org.hamcrest.Description; import org.hamcrest.Matcher; import org.hamcrest.TypeSafeDiagnosingMatcher; -import org.openecomp.mso.logger.MsoLogger; +import org.onap.so.logger.MsoLogger; import com.openpojo.reflection.PojoField; public class HasAnnotationPropertyWithValueMatcher<T extends PojoField> extends TypeSafeDiagnosingMatcher<T> { - private MsoLogger logger=MsoLogger.getMsoLogger(MsoLogger.Catalog.GENERAL); + private MsoLogger logger=MsoLogger.getMsoLogger(MsoLogger.Catalog.GENERAL, HasAnnotationPropertyWithValueMatcher.class); private final String attribute; private final Matcher<?> annotationMatcher; private final Class<? extends Annotation> annotationClass; diff --git a/common/src/main/java/org/openecomp/mso/openpojo/rules/HasEqualsAndHashCodeRule.java b/common/src/main/java/org/onap/so/openpojo/rules/HasEqualsAndHashCodeRule.java index 4ef560721f..0c7d6add73 100644 --- a/common/src/main/java/org/openecomp/mso/openpojo/rules/HasEqualsAndHashCodeRule.java +++ b/common/src/main/java/org/onap/so/openpojo/rules/HasEqualsAndHashCodeRule.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP - SO * ================================================================================ - * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.openpojo.rules; +package org.onap.so.openpojo.rules; import static org.hamcrest.CoreMatchers.anyOf; import static org.hamcrest.CoreMatchers.anything; diff --git a/common/src/main/java/org/openecomp/mso/openpojo/rules/HasToStringRule.java b/common/src/main/java/org/onap/so/openpojo/rules/HasToStringRule.java index f866650d66..8a4333e0e2 100644 --- a/common/src/main/java/org/openecomp/mso/openpojo/rules/HasToStringRule.java +++ b/common/src/main/java/org/onap/so/openpojo/rules/HasToStringRule.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP - SO * ================================================================================ - * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.openpojo.rules; +package org.onap.so.openpojo.rules; import static org.hamcrest.CoreMatchers.anyOf; import static org.hamcrest.CoreMatchers.anything; diff --git a/common/src/main/java/org/openecomp/mso/openpojo/rules/ToStringTester.java b/common/src/main/java/org/onap/so/openpojo/rules/ToStringTester.java index bd582d45dc..ff1a139768 100644 --- a/common/src/main/java/org/openecomp/mso/openpojo/rules/ToStringTester.java +++ b/common/src/main/java/org/onap/so/openpojo/rules/ToStringTester.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP - SO * ================================================================================ - * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.openpojo.rules; +package org.onap.so.openpojo.rules; import static org.hamcrest.CoreMatchers.anyOf; import static org.hamcrest.CoreMatchers.anything; diff --git a/common/src/main/java/org/openecomp/mso/properties/MsoDatabaseException.java b/common/src/main/java/org/onap/so/properties/MsoDatabaseException.java index 9583e519f5..84216af6e8 100644 --- a/common/src/main/java/org/openecomp/mso/properties/MsoDatabaseException.java +++ b/common/src/main/java/org/onap/so/properties/MsoDatabaseException.java @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.properties; +package org.onap.so.properties; /** diff --git a/common/src/main/java/org/onap/so/security/MSOSpringFirewall.java b/common/src/main/java/org/onap/so/security/MSOSpringFirewall.java new file mode 100644 index 0000000000..82a30f05be --- /dev/null +++ b/common/src/main/java/org/onap/so/security/MSOSpringFirewall.java @@ -0,0 +1,34 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.security; + +import org.springframework.security.web.firewall.StrictHttpFirewall; + +public class MSOSpringFirewall extends StrictHttpFirewall { + + + public MSOSpringFirewall() { + super(); + this.setAllowUrlEncodedSlash(true); + this.setAllowSemicolon(true); + this.setAllowUrlEncodedPercent(true); + } +} diff --git a/common/src/main/java/org/onap/so/security/UserCredentials.java b/common/src/main/java/org/onap/so/security/UserCredentials.java new file mode 100644 index 0000000000..f411789e00 --- /dev/null +++ b/common/src/main/java/org/onap/so/security/UserCredentials.java @@ -0,0 +1,53 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.security; + +public class UserCredentials { + + private String username; + private String password; + private String role; + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getRole() { + return role; + } + + public void setRole(String role) { + this.role = role; + } + +} diff --git a/common/src/main/java/org/onap/so/security/UserDetailsServiceImpl.java b/common/src/main/java/org/onap/so/security/UserDetailsServiceImpl.java new file mode 100644 index 0000000000..90d484ebf4 --- /dev/null +++ b/common/src/main/java/org/onap/so/security/UserDetailsServiceImpl.java @@ -0,0 +1,56 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.security; + +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.security.core.userdetails.User; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.core.userdetails.UsernameNotFoundException; +import java.util.List; + +@ConfigurationProperties(prefix = "spring.security") +public class UserDetailsServiceImpl implements UserDetailsService { + + private List<UserCredentials> usercredentials; + + public List<UserCredentials> getUsercredentials() { + return usercredentials; + } + + public void setUsercredentials(List<UserCredentials> usercredentials) { + this.usercredentials = usercredentials; + } + + @Override + public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { + + for (int i = 0; usercredentials != null && i < usercredentials.size(); i++) { + if (usercredentials.get(i).getUsername().equals(username)) { + return User.withUsername(username).password(usercredentials.get(i).getPassword()) + .roles(usercredentials.get(i).getRole()).build(); + } + } + + throw new UsernameNotFoundException("User not found, username: " + username); + } + +} diff --git a/common/src/main/java/org/onap/so/security/WebSecurityConfig.java b/common/src/main/java/org/onap/so/security/WebSecurityConfig.java new file mode 100644 index 0000000000..11eec46f41 --- /dev/null +++ b/common/src/main/java/org/onap/so/security/WebSecurityConfig.java @@ -0,0 +1,76 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.security; + +import java.util.ArrayList; +import java.util.List; + +import javax.annotation.PostConstruct; + +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; +import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; + + +@ConfigurationProperties(prefix = "spring.security") +public class WebSecurityConfig extends WebSecurityConfigurerAdapter { + + private List<UserCredentials> credentials; + private List<String> roles = new ArrayList<>(); + + public List<String> getRoles() { + return roles; + } + + @PostConstruct + private void addRoles() { + for(int i=0; i <credentials.size(); i++) { + roles.add(credentials.get(i).getRole()); + } + } + + public List<UserCredentials> getUsercredentials() { + return credentials; + } + + public void setUsercredentials(List<UserCredentials> usercredentials) { + this.credentials = usercredentials; + } + + @Bean + public UserDetailsService userDetailsService() { + return new UserDetailsServiceImpl(); + } + + @Bean + public BCryptPasswordEncoder passwordEncoder() { + return new BCryptPasswordEncoder(); + } + + @Override + protected void configure(AuthenticationManagerBuilder auth) throws Exception { + auth.userDetailsService(userDetailsService()).passwordEncoder(passwordEncoder()); + } + +} diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/CloudConfiguration.java b/common/src/main/java/org/onap/so/serviceinstancebeans/CloudConfiguration.java index cb5a1018ad..a58949e498 100644 --- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/CloudConfiguration.java +++ b/common/src/main/java/org/onap/so/serviceinstancebeans/CloudConfiguration.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.serviceinstancebeans; +package org.onap.so.serviceinstancebeans; import java.io.Serializable; diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/ExceptionType.java b/common/src/main/java/org/onap/so/serviceinstancebeans/ExceptionType.java index 84518cf160..e5d586f165 100644 --- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/ExceptionType.java +++ b/common/src/main/java/org/onap/so/serviceinstancebeans/ExceptionType.java @@ -26,15 +26,17 @@ // -package org.openecomp.mso.serviceinstancebeans; +package org.onap.so.serviceinstancebeans; import java.util.ArrayList; import java.util.List; + import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlSeeAlso; import javax.xml.bind.annotation.XmlType; + import org.apache.commons.lang3.builder.ToStringBuilder; @@ -153,15 +155,14 @@ public class ExceptionType { } return this.variables; } - - public void setVariables(List<String> variables) { - this.variables = variables; - } + + public void setVariables(List<String> variables) { + this.variables = variables; + } @Override public String toString() { return new ToStringBuilder(this).append("messageId", messageId).append("text", text) .append("variables", variables).toString(); } - } diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/GetOrchestrationListResponse.java b/common/src/main/java/org/onap/so/serviceinstancebeans/GetOrchestrationListResponse.java index adb1d38464..7be03e635f 100644 --- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/GetOrchestrationListResponse.java +++ b/common/src/main/java/org/onap/so/serviceinstancebeans/GetOrchestrationListResponse.java @@ -1,6 +1,6 @@ /*- * ============LICENSE_START======================================================= - * ONAP - SO + * OPENECOMP - MSO * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. * ================================================================================ @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.serviceinstancebeans; +package org.onap.so.serviceinstancebeans; import java.util.List; diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/GetOrchestrationResponse.java b/common/src/main/java/org/onap/so/serviceinstancebeans/GetOrchestrationResponse.java index 8d57d57513..788cdd973d 100644 --- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/GetOrchestrationResponse.java +++ b/common/src/main/java/org/onap/so/serviceinstancebeans/GetOrchestrationResponse.java @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.serviceinstancebeans; +package org.onap.so.serviceinstancebeans; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/InstanceDirection.java b/common/src/main/java/org/onap/so/serviceinstancebeans/InstanceDirection.java index b49825ee60..ad796b21f9 100644 --- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/InstanceDirection.java +++ b/common/src/main/java/org/onap/so/serviceinstancebeans/InstanceDirection.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.serviceinstancebeans; +package org.onap.so.serviceinstancebeans; public enum InstanceDirection { diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/InstanceReferences.java b/common/src/main/java/org/onap/so/serviceinstancebeans/InstanceReferences.java index 17f09556c3..69d21c41ac 100644 --- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/InstanceReferences.java +++ b/common/src/main/java/org/onap/so/serviceinstancebeans/InstanceReferences.java @@ -1,15 +1,15 @@ /*- * ============LICENSE_START======================================================= - * ONAP - SO + * OPENECOMP - MSO * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.serviceinstancebeans; +package org.onap.so.serviceinstancebeans; import org.apache.commons.lang3.builder.ToStringBuilder; diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/LineOfBusiness.java b/common/src/main/java/org/onap/so/serviceinstancebeans/LineOfBusiness.java index ce46291da6..27bc0e84a4 100644 --- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/LineOfBusiness.java +++ b/common/src/main/java/org/onap/so/serviceinstancebeans/LineOfBusiness.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.serviceinstancebeans; +package org.onap.so.serviceinstancebeans; import java.io.Serializable; diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/ModelInfo.java b/common/src/main/java/org/onap/so/serviceinstancebeans/ModelInfo.java index f91dd10f38..6976fb6791 100644 --- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/ModelInfo.java +++ b/common/src/main/java/org/onap/so/serviceinstancebeans/ModelInfo.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -26,7 +26,7 @@ // -package org.openecomp.mso.serviceinstancebeans; +package org.onap.so.serviceinstancebeans; import java.io.Serializable; @@ -46,6 +46,8 @@ public class ModelInfo implements Serializable { protected String modelInvariantId; @JsonProperty("modelType") protected ModelType modelType; + @JsonProperty("modelId") + protected String modelId; //v2 @JsonProperty("modelNameVersionId") protected String modelNameVersionId; @@ -60,6 +62,7 @@ public class ModelInfo implements Serializable { protected String modelVersionId; @JsonProperty("modelCustomizationId") protected String modelCustomizationId; + //Decomposition fields @JsonProperty("modelUuid") protected String modelUuid; @@ -72,6 +75,7 @@ public class ModelInfo implements Serializable { return modelCustomizationName; } public void setModelCustomizationName(String modelCustomizationName) { + modelInstanceName = modelCustomizationName; this.modelCustomizationName = modelCustomizationName; } public String getModelNameVersionId() { @@ -102,6 +106,7 @@ public class ModelInfo implements Serializable { return modelInvariantId; } public void setModelInvariantId(String modelInvariantId) { + this.modelInvariantUuid = modelInvariantId; this.modelInvariantId = modelInvariantId; } public String getModelCustomizationUuid() { @@ -114,19 +119,29 @@ public class ModelInfo implements Serializable { return modelVersionId; } public void setModelVersionId(String modelVersionId) { + this.modelUuid=modelVersionId; this.modelVersionId = modelVersionId; } public String getModelCustomizationId() { return modelCustomizationId; } public void setModelCustomizationId(String modelCustomizationId) { + this.modelCustomizationUuid = modelCustomizationId; this.modelCustomizationId = modelCustomizationId; } public String getModelUuid() { return modelUuid; } + public String getModelId() { + return modelId; + } public void setModelUuid(String modelUuid) { + this.modelId = modelUuid; this.modelUuid = modelUuid; + + } + public void setModelId(String modelId) { + this.modelId = modelId; } public String getModelInvariantUuid() { return modelInvariantUuid; @@ -151,4 +166,4 @@ public class ModelInfo implements Serializable { } -} +}
\ No newline at end of file diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/ModelType.java b/common/src/main/java/org/onap/so/serviceinstancebeans/ModelType.java index 1080c57976..2ddad20346 100644 --- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/ModelType.java +++ b/common/src/main/java/org/onap/so/serviceinstancebeans/ModelType.java @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.serviceinstancebeans; +package org.onap.so.serviceinstancebeans; /* * Enum for Model Type values returned by API Handler to BPMN @@ -31,5 +31,6 @@ public enum ModelType { network, configuration, connectionPoint, - pnf + pnf, + networkCollection } diff --git a/common/src/main/java/org/onap/so/serviceinstancebeans/Networks.java b/common/src/main/java/org/onap/so/serviceinstancebeans/Networks.java new file mode 100644 index 0000000000..386078a60b --- /dev/null +++ b/common/src/main/java/org/onap/so/serviceinstancebeans/Networks.java @@ -0,0 +1,98 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017 Huawei Technologies Co., Ltd. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.serviceinstancebeans; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonRootName; +import com.fasterxml.jackson.annotation.JsonInclude.Include; + +@JsonRootName(value = "networks") +@JsonInclude(Include.NON_DEFAULT) +public class Networks implements Serializable{ + + private static final long serialVersionUID = 8081495240474276501L; + @JsonProperty("modelInfo") + protected ModelInfo modelInfo; + @JsonProperty("cloudConfiguration") + protected CloudConfiguration cloudConfiguration; + @JsonProperty("instanceName") + protected String instanceName; + @JsonProperty("productFamilyId") + protected String productFamilyId; + @JsonProperty("instanceParams") + private List<Map<String, String>> instanceParams = new ArrayList<>(); + + public ModelInfo getModelInfo() { + return modelInfo; + } + + public void setModelInfo(ModelInfo modelInfo) { + this.modelInfo = modelInfo; + } + + public CloudConfiguration getCloudConfiguration() { + return cloudConfiguration; + } + + public void setCloudConfiguration(CloudConfiguration cloudConfiguration) { + this.cloudConfiguration = cloudConfiguration; + } + + public String getInstanceName() { + return instanceName; + } + + public void setInstanceName(String instanceName) { + this.instanceName = instanceName; + } + + public String getProductFamilyId() { + return productFamilyId; + } + + public void setProductFamilyId(String productFamilyId) { + this.productFamilyId = productFamilyId; + } + + public List<Map<String, String>> getInstanceParams() { + return instanceParams; + } + + public void setInstanceParams(List<Map<String, String>> instanceParams) { + this.instanceParams = instanceParams; + } + + @Override + public String toString() { + return "Networks [modelInfo=" + modelInfo + + ", cloudConfiguration=" + cloudConfiguration + + ", instanceName=" + instanceName + ", productFamilyId=" + productFamilyId + + ", instanceParams=" + instanceParams + "]"; + } + +}
\ No newline at end of file diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/OwningEntity.java b/common/src/main/java/org/onap/so/serviceinstancebeans/OwningEntity.java index 985de7d41a..f552554ad4 100644 --- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/OwningEntity.java +++ b/common/src/main/java/org/onap/so/serviceinstancebeans/OwningEntity.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.serviceinstancebeans; +package org.onap.so.serviceinstancebeans; import java.io.Serializable; diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/Platform.java b/common/src/main/java/org/onap/so/serviceinstancebeans/Platform.java index a7a34cc39b..961062299f 100644 --- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/Platform.java +++ b/common/src/main/java/org/onap/so/serviceinstancebeans/Platform.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.serviceinstancebeans; +package org.onap.so.serviceinstancebeans; import java.io.Serializable; diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/PolicyException.java b/common/src/main/java/org/onap/so/serviceinstancebeans/PolicyException.java index dfa23f6490..263089e5c1 100644 --- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/PolicyException.java +++ b/common/src/main/java/org/onap/so/serviceinstancebeans/PolicyException.java @@ -26,7 +26,7 @@ // -package org.openecomp.mso.serviceinstancebeans; +package org.onap.so.serviceinstancebeans; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; @@ -41,7 +41,7 @@ import javax.xml.bind.annotation.XmlType; * <pre> * <complexType name="policyException"> * <complexContent> - * <extension base="{http://org.openecomp/mso/request/types/v1}exceptionType"> + * <extension base="{http://org.onap/so/request/types/v1}exceptionType"> * </extension> * </complexContent> * </complexType> diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/Project.java b/common/src/main/java/org/onap/so/serviceinstancebeans/Project.java index b7e80162ff..47bd2bb802 100644 --- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/Project.java +++ b/common/src/main/java/org/onap/so/serviceinstancebeans/Project.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.serviceinstancebeans; +package org.onap.so.serviceinstancebeans; import java.io.Serializable; diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/RelatedInstance.java b/common/src/main/java/org/onap/so/serviceinstancebeans/RelatedInstance.java index 60e7d9b69a..cfdba18fe1 100644 --- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/RelatedInstance.java +++ b/common/src/main/java/org/onap/so/serviceinstancebeans/RelatedInstance.java @@ -1,6 +1,6 @@ /*- * ============LICENSE_START======================================================= - * ONAP - SO + * OPENECOMP - MSO * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. * ================================================================================ @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.serviceinstancebeans; +package org.onap.so.serviceinstancebeans; import java.io.Serializable; diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/RelatedInstanceList.java b/common/src/main/java/org/onap/so/serviceinstancebeans/RelatedInstanceList.java index b11acccf2a..9d10865e24 100644 --- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/RelatedInstanceList.java +++ b/common/src/main/java/org/onap/so/serviceinstancebeans/RelatedInstanceList.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.serviceinstancebeans; +package org.onap.so.serviceinstancebeans; import java.io.Serializable; diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/Request.java b/common/src/main/java/org/onap/so/serviceinstancebeans/Request.java index 0671089d99..bda3096f05 100644 --- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/Request.java +++ b/common/src/main/java/org/onap/so/serviceinstancebeans/Request.java @@ -18,13 +18,13 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.serviceinstancebeans; +package org.onap.so.serviceinstancebeans; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import org.apache.commons.lang3.builder.ToStringBuilder; -//@JsonRootName(value = "request") + @JsonInclude(Include.NON_DEFAULT) public class Request { @@ -32,7 +32,6 @@ public class Request { protected String startTime; protected String requestScope; protected String requestType; - //protected String requestDetails; protected RequestDetails requestDetails; protected InstanceReferences instanceReferences; protected RequestStatus requestStatus; diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestDetails.java b/common/src/main/java/org/onap/so/serviceinstancebeans/RequestDetails.java index 2bae526efa..d71334288e 100644 --- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestDetails.java +++ b/common/src/main/java/org/onap/so/serviceinstancebeans/RequestDetails.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,10 +18,13 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.serviceinstancebeans; +package org.onap.so.serviceinstancebeans; import java.io.Serializable; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; +import java.util.Map; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; @@ -53,7 +56,11 @@ public class RequestDetails implements Serializable { protected Platform platform; @JsonProperty("lineOfBusiness") protected LineOfBusiness lineOfBusiness; - /** + @JsonProperty("instanceName") + private List<Map<String, String>> instanceName = new ArrayList<>(); + + + /** * Gets the value of the serviceInfo property. * * @return @@ -268,6 +275,21 @@ public class RequestDetails implements Serializable { public void setLineOfBusiness(LineOfBusiness value){ this.lineOfBusiness = value; } + /** + * Gets the value of the instanceName property. + */ + public List<Map<String, String>> getInstanceName() { + return instanceName; + } + /** + * Sets the value of the instanceName property. + * + * @param value + * + */ + public void setInstanceName(List<Map<String, String>> instanceName) { + this.instanceName = instanceName; + } @Override public String toString() { return "RequestDetails [modelInfo=" + modelInfo + ", requestInfo=" @@ -275,6 +297,7 @@ public class RequestDetails implements Serializable { + Arrays.toString(relatedInstanceList) + ", subscriberInfo=" + subscriberInfo + ", cloudConfiguration=" + cloudConfiguration + ", requestParameters=" + requestParameters + ", platform=" + platform - + ", lineOfBusiness=" + ", project=" + project + ", owningEntity=" + owningEntity + "]"; + + ", lineOfBusiness=" + ", project=" + project + ", owningEntity=" + owningEntity + + ", instanceName" + instanceName + "]"; } } diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestError.java b/common/src/main/java/org/onap/so/serviceinstancebeans/RequestError.java index efd5358073..76137d0f58 100644 --- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestError.java +++ b/common/src/main/java/org/onap/so/serviceinstancebeans/RequestError.java @@ -26,7 +26,7 @@ // -package org.openecomp.mso.serviceinstancebeans; +package org.onap.so.serviceinstancebeans; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; @@ -34,6 +34,8 @@ import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlType; import org.apache.commons.lang3.builder.ToStringBuilder; +import com.fasterxml.jackson.annotation.JsonRootName; + /** * <p>Java class for anonymous complex type. @@ -46,8 +48,8 @@ import org.apache.commons.lang3.builder.ToStringBuilder; * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> * <choice> - * <element name="policyException" type="{http://org.openecomp/mso/request/types/v1}policyException"/> - * <element name="serviceException" type="{http://org.openecomp/mso/request/types/v1}serviceException"/> + * <element name="policyException" type="{http://org.onap/so/request/types/v1}policyException"/> + * <element name="serviceException" type="{http://org.onap/so/request/types/v1}serviceException"/> * </choice> * </sequence> * </restriction> @@ -63,6 +65,7 @@ import org.apache.commons.lang3.builder.ToStringBuilder; "serviceException" }) @XmlRootElement(name = "requestError") +@JsonRootName(value = "requestError") public class RequestError { protected PolicyException policyException; diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestInfo.java b/common/src/main/java/org/onap/so/serviceinstancebeans/RequestInfo.java index d1e489a174..158ca7a819 100644 --- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestInfo.java +++ b/common/src/main/java/org/onap/so/serviceinstancebeans/RequestInfo.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.serviceinstancebeans; +package org.onap.so.serviceinstancebeans; import java.io.Serializable; diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestList.java b/common/src/main/java/org/onap/so/serviceinstancebeans/RequestList.java index 799e2f8c60..a4c0ddfcf2 100644 --- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestList.java +++ b/common/src/main/java/org/onap/so/serviceinstancebeans/RequestList.java @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.serviceinstancebeans; +package org.onap.so.serviceinstancebeans; import java.util.List; import org.apache.commons.lang3.builder.ToStringBuilder; diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestParameters.java b/common/src/main/java/org/onap/so/serviceinstancebeans/RequestParameters.java index 06d53285b0..1697a4eb5f 100644 --- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestParameters.java +++ b/common/src/main/java/org/onap/so/serviceinstancebeans/RequestParameters.java @@ -1,15 +1,15 @@ /*- * ============LICENSE_START======================================================= - * ONAP - SO + * OPENECOMP - MSO * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,13 +18,15 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.serviceinstancebeans; +package org.onap.so.serviceinstancebeans; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import java.util.Map; +import javax.persistence.Transient; + import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; @@ -41,18 +43,23 @@ public class RequestParameters implements Serializable { private List<Map<String, Object>> userParams = new ArrayList<>(); @JsonProperty("aLaCarte") private Boolean aLaCarte; + + // DONOT USE. It is intended to handle older VID requests(prior to 1802) + @Deprecated + @JsonProperty("alaCarte") + private Boolean alaCarte; @JsonProperty("autoBuildVfModules") private Boolean autoBuildVfModules; @JsonProperty("cascadeDelete") private Boolean cascadeDelete; + @JsonProperty("testApi") + private String testApi; // usePreload would always be true for Update @JsonProperty("usePreload") private Boolean usePreload; // usePreload would always be true for Update @JsonProperty("rebuildVolumeGroups") private Boolean rebuildVolumeGroups; @JsonProperty("payload") private String payload; - @JsonProperty("controllerType") - private String controllerType; public String getSubscriptionServiceType() { return subscriptionServiceType; @@ -61,11 +68,11 @@ public class RequestParameters implements Serializable { public void setSubscriptionServiceType(String subscriptionServiceType) { this.subscriptionServiceType = subscriptionServiceType; } - + @JsonProperty("aLaCarte") public Boolean getALaCarte() { return aLaCarte; } - + @JsonProperty("aLaCarte") public void setaLaCarte(Boolean aLaCarte) { this.aLaCarte = aLaCarte; } @@ -74,6 +81,27 @@ public class RequestParameters implements Serializable { return aLaCarte; } + @Deprecated + @Transient + @JsonProperty("alaCarte") + public Boolean getAlaCarte() { + return alaCarte; + } + + @Deprecated + @JsonProperty("alaCarte") + public void setAlaCarte(Boolean alaCarte) { + this.alaCarte = alaCarte; + } + + public String getTestApi() { + return testApi; + } + + public void setTestApi(String testApi) { + this.testApi = testApi; + } + public List<Map<String, Object>> getUserParams() { return userParams; } @@ -92,11 +120,11 @@ public class RequestParameters implements Serializable { } return null; } - + public Boolean getAutoBuildVfModules() { return autoBuildVfModules; } - + public void setAutoBuildVfModules(Boolean autoBuildVfModules) { this.autoBuildVfModules = autoBuildVfModules; } @@ -117,13 +145,10 @@ public class RequestParameters implements Serializable { this.usePreload = usePreload; } - public Boolean rebuildVolumeGroups() { + public Boolean getRebuildVolumeGroups() { return rebuildVolumeGroups; } - public Boolean isRebuildVolumeGroups() { - return rebuildVolumeGroups; - } public void setRebuildVolumeGroups(Boolean rebuildVolumeGroups) { this.rebuildVolumeGroups = rebuildVolumeGroups; } @@ -134,19 +159,13 @@ public class RequestParameters implements Serializable { this.payload = value; } - public String getControllerType() { - return controllerType; - } - - public void setControllerType(String controllerType) { - this.controllerType = controllerType; - } - @Override public String toString() { - return "RequestParameters [subscriptionServiceType=" + subscriptionServiceType + ", userParams=" + userParams - + ", aLaCarte=" + aLaCarte + ", autoBuildVfModules=" + autoBuildVfModules + ", cascadeDelete=" - + cascadeDelete + ", usePreload=" + usePreload + ", rebuildVolumeGroups=" + rebuildVolumeGroups - + ", payload=" + payload + ", controllerType=" + controllerType + "]"; - } -} + return "RequestParameters [subscriptionServiceType=" + + subscriptionServiceType + ", userParams=" + userParams + + ", aLaCarte=" + aLaCarte + ", testApi= " + testApi + ", autoBuildVfModules=" + + autoBuildVfModules + ", usePreload=" + + usePreload + ", rebuildVolumeGroups=" + + rebuildVolumeGroups + ", payload=" + payload + "]"; + } +}
\ No newline at end of file diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestReferences.java b/common/src/main/java/org/onap/so/serviceinstancebeans/RequestReferences.java index d4d70190ff..c30e39a028 100644 --- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestReferences.java +++ b/common/src/main/java/org/onap/so/serviceinstancebeans/RequestReferences.java @@ -18,10 +18,16 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.serviceinstancebeans; +package org.onap.so.serviceinstancebeans; import org.apache.commons.lang3.builder.ToStringBuilder; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonRootName; +import com.fasterxml.jackson.annotation.JsonInclude.Include; + +@JsonRootName(value = "requestReferences") +@JsonInclude(Include.NON_DEFAULT) public class RequestReferences { String requestId; diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestStatus.java b/common/src/main/java/org/onap/so/serviceinstancebeans/RequestStatus.java index d6a8fc0084..527aa037ed 100644 --- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/RequestStatus.java +++ b/common/src/main/java/org/onap/so/serviceinstancebeans/RequestStatus.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.serviceinstancebeans; +package org.onap.so.serviceinstancebeans; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; diff --git a/common/src/main/java/org/openecomp/mso/client/policy/entities/PolicyDecisionRequest.java b/common/src/main/java/org/onap/so/serviceinstancebeans/Resources.java index bc20b9c143..68fd95c293 100644 --- a/common/src/main/java/org/openecomp/mso/client/policy/entities/PolicyDecisionRequest.java +++ b/common/src/main/java/org/onap/so/serviceinstancebeans/Resources.java @@ -3,13 +3,14 @@ * ONAP - SO * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017 Huawei Technologies Co., Ltd. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,41 +19,42 @@ * ============LICENSE_END========================================================= */ +package org.onap.so.serviceinstancebeans; -package org.openecomp.mso.client.policy.entities; - +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@JsonPropertyOrder({ "decisionAttributes", "ecompcomponentName" }) -public class PolicyDecisionRequest { - - @JsonProperty("decisionAttributes") - private DecisionAttributes decisionAttributes; - @JsonProperty("ecompcomponentName") - private String ecompcomponentName; - - @JsonProperty("decisionAttributes") - public DecisionAttributes getDecisionAttributes() { - return decisionAttributes; +import com.fasterxml.jackson.annotation.JsonRootName; + +@JsonRootName(value = "resources") +@JsonInclude(Include.NON_DEFAULT) +public class Resources implements Serializable{ + + private static final long serialVersionUID = 2194797231782624520L; + @JsonProperty("vnfs") + private List<Vnfs> vnfs = new ArrayList<>(); + @JsonProperty("networks") + private List<Networks> networks = new ArrayList<>(); + + public List<Vnfs> getVnfs() { + return vnfs; } - - @JsonProperty("decisionAttributes") - public void setDecisionAttributes(DecisionAttributes decisionAttributes) { - this.decisionAttributes = decisionAttributes; + public void setVnfs(List<Vnfs> vnfs) { + this.vnfs = vnfs; } - - @JsonProperty("ecompcomponentName") - public String getEcompcomponentName() { - return ecompcomponentName; + public List<Networks> getNetworks() { + return networks; } - - @JsonProperty("ecompcomponentName") - public void setEcompcomponentName(String ecompcomponentName) { - this.ecompcomponentName = ecompcomponentName; + public void setNetworks(List<Networks> networks) { + this.networks = networks; } - -} + @Override + public String toString() { + return "Resources [vnfs=" + vnfs + ", networks=" + networks + "]"; + } +}
\ No newline at end of file diff --git a/common/src/main/java/org/onap/so/serviceinstancebeans/Service.java b/common/src/main/java/org/onap/so/serviceinstancebeans/Service.java new file mode 100644 index 0000000000..66848d343c --- /dev/null +++ b/common/src/main/java/org/onap/so/serviceinstancebeans/Service.java @@ -0,0 +1,98 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017 Huawei Technologies Co., Ltd. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.serviceinstancebeans; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonRootName; +import com.fasterxml.jackson.annotation.JsonInclude.Include; + +@JsonRootName(value = "service") +@JsonInclude(Include.NON_DEFAULT) +public class Service implements Serializable{ + + private static final long serialVersionUID = 2194797231782624520L; + @JsonProperty("modelInfo") + protected ModelInfo modelInfo; + @JsonProperty("cloudConfiguration") + protected CloudConfiguration cloudConfiguration; + @JsonProperty("instanceName") + protected String instanceName; + @JsonProperty("instanceParams") + private List<Map<String, String>> instanceParams = new ArrayList<>(); + @JsonProperty("resources") + protected Resources resources; + + public ModelInfo getModelInfo() { + return modelInfo; + } + + public void setModelInfo(ModelInfo modelInfo) { + this.modelInfo = modelInfo; + } + + public CloudConfiguration getCloudConfiguration() { + return cloudConfiguration; + } + + public void setCloudConfiguration(CloudConfiguration cloudConfiguration) { + this.cloudConfiguration = cloudConfiguration; + } + + public String getInstanceName() { + return instanceName; + } + + public void setInstanceName(String instanceName) { + this.instanceName = instanceName; + } + + public List<Map<String, String>> getInstanceParams() { + return instanceParams; + } + + public void setInstanceParams(List<Map<String, String>> instanceParams) { + this.instanceParams = instanceParams; + } + + public Resources getResources() { + return resources; + } + + public void setResources(Resources resources) { + this.resources = resources; + } + + @Override + public String toString() { + return "Service [modelInfo=" + modelInfo + + ", cloudConfiguration=" + cloudConfiguration + + ", instanceName=" + instanceName + + ", instanceParams=" + instanceParams + + ", resources=" + resources + "]"; + } +}
\ No newline at end of file diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/ServiceException.java b/common/src/main/java/org/onap/so/serviceinstancebeans/ServiceException.java index 0fe8b5f0cf..7efb7f0bff 100644 --- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/ServiceException.java +++ b/common/src/main/java/org/onap/so/serviceinstancebeans/ServiceException.java @@ -26,12 +26,14 @@ // -package org.openecomp.mso.serviceinstancebeans; +package org.onap.so.serviceinstancebeans; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlType; +import com.fasterxml.jackson.annotation.JsonRootName; + /** * <p>Java class for serviceException complex type. @@ -41,7 +43,7 @@ import javax.xml.bind.annotation.XmlType; * <pre> * <complexType name="serviceException"> * <complexContent> - * <extension base="{http://org.openecomp/mso/request/types/v1}exceptionType"> + * <extension base="{http://org.onap/so/request/types/v1}exceptionType"> * </extension> * </complexContent> * </complexType> @@ -51,6 +53,7 @@ import javax.xml.bind.annotation.XmlType; */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "serviceException") +@JsonRootName(value = "serviceException") public class ServiceException extends ExceptionType { diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/ServiceInstancesRequest.java b/common/src/main/java/org/onap/so/serviceinstancebeans/ServiceInstancesRequest.java index d06c532f88..3ccf29127f 100644 --- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/ServiceInstancesRequest.java +++ b/common/src/main/java/org/onap/so/serviceinstancebeans/ServiceInstancesRequest.java @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.serviceinstancebeans; +package org.onap.so.serviceinstancebeans; import java.io.Serializable; diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/ServiceInstancesResponse.java b/common/src/main/java/org/onap/so/serviceinstancebeans/ServiceInstancesResponse.java index 614a87d009..db3add8d47 100644 --- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/ServiceInstancesResponse.java +++ b/common/src/main/java/org/onap/so/serviceinstancebeans/ServiceInstancesResponse.java @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.serviceinstancebeans; +package org.onap.so.serviceinstancebeans; import org.apache.commons.lang3.builder.ToStringBuilder; diff --git a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/SubscriberInfo.java b/common/src/main/java/org/onap/so/serviceinstancebeans/SubscriberInfo.java index 47cb1f2d26..03780231fc 100644 --- a/common/src/main/java/org/openecomp/mso/serviceinstancebeans/SubscriberInfo.java +++ b/common/src/main/java/org/onap/so/serviceinstancebeans/SubscriberInfo.java @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.serviceinstancebeans; +package org.onap.so.serviceinstancebeans; import java.io.Serializable; diff --git a/common/src/main/java/org/onap/so/serviceinstancebeans/VfModules.java b/common/src/main/java/org/onap/so/serviceinstancebeans/VfModules.java new file mode 100644 index 0000000000..74f8af80a7 --- /dev/null +++ b/common/src/main/java/org/onap/so/serviceinstancebeans/VfModules.java @@ -0,0 +1,99 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017 Huawei Technologies Co., Ltd. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.serviceinstancebeans; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonRootName; +import com.fasterxml.jackson.annotation.JsonInclude.Include; + +@JsonRootName(value = "vfmodules") +@JsonInclude(Include.NON_DEFAULT) +public class VfModules implements Serializable{ + + private static final long serialVersionUID = 8081495240474276501L; + @JsonProperty("modelInfo") + protected ModelInfo modelInfo; + @JsonProperty("cloudConfiguration") + protected CloudConfiguration cloudConfiguration; + @JsonProperty("instanceName") + protected String instanceName; + @JsonProperty("volumeGroupInstanceName") + protected String volumeGroupInstanceName; + @JsonProperty("instanceParams") + private List<Map<String, String>> instanceParams = new ArrayList<>(); + + + public ModelInfo getModelInfo() { + return modelInfo; + } + + public void setModelInfo(ModelInfo modelInfo) { + this.modelInfo = modelInfo; + } + + public CloudConfiguration getCloudConfiguration() { + return cloudConfiguration; + } + + public void setCloudConfiguration(CloudConfiguration cloudConfiguration) { + this.cloudConfiguration = cloudConfiguration; + } + + public String getInstanceName() { + return instanceName; + } + + public void setInstanceName(String instanceName) { + this.instanceName = instanceName; + } + + public String getVolumeGroupInstanceName() { + return volumeGroupInstanceName; + } + + public void setVolumeGroupInstanceName(String volumeGroupInstanceName) { + this.volumeGroupInstanceName = volumeGroupInstanceName; + } + + public List<Map<String, String>> getInstanceParams() { + return instanceParams; + } + + public void setInstanceParams(List<Map<String, String>> instanceParams) { + this.instanceParams = instanceParams; + } + + @Override + public String toString() { + return "VfModules [modelInfo=" + modelInfo + + ", cloudConfiguration=" + cloudConfiguration + + ", instanceName=" + instanceName + ", volumeGroupInstanceName=" + + volumeGroupInstanceName + ", instanceParams=" + instanceParams + "]"; + } + +}
\ No newline at end of file diff --git a/common/src/main/java/org/onap/so/serviceinstancebeans/Vnfs.java b/common/src/main/java/org/onap/so/serviceinstancebeans/Vnfs.java new file mode 100644 index 0000000000..b55a528935 --- /dev/null +++ b/common/src/main/java/org/onap/so/serviceinstancebeans/Vnfs.java @@ -0,0 +1,131 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017 Huawei Technologies Co., Ltd. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.serviceinstancebeans; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonRootName; +import com.fasterxml.jackson.annotation.JsonInclude.Include; + +@JsonRootName(value = "vnfs") +@JsonInclude(Include.NON_DEFAULT) +public class Vnfs implements Serializable{ + + private static final long serialVersionUID = 8081495240474276501L; + @JsonProperty("modelInfo") + protected ModelInfo modelInfo; + @JsonProperty("cloudConfiguration") + protected CloudConfiguration cloudConfiguration; + @JsonProperty("instanceName") + protected String instanceName; + @JsonProperty("platform") + protected Platform platform; + @JsonProperty("lineOfBusiness") + protected LineOfBusiness lineOfBusiness; + @JsonProperty("productFamilyId") + protected String productFamilyId; + @JsonProperty("instanceParams") + private List<Map<String, String>> instanceParams = new ArrayList<>(); + @JsonProperty("vfModules") + private List<VfModules> vfModules = new ArrayList<>(); + + + public ModelInfo getModelInfo() { + return modelInfo; + } + + public void setModelInfo(ModelInfo modelInfo) { + this.modelInfo = modelInfo; + } + + public CloudConfiguration getCloudConfiguration() { + return cloudConfiguration; + } + + public void setCloudConfiguration(CloudConfiguration cloudConfiguration) { + this.cloudConfiguration = cloudConfiguration; + } + + public String getInstanceName() { + return instanceName; + } + + public void setInstanceName(String instanceName) { + this.instanceName = instanceName; + } + + public Platform getPlatform() { + return platform; + } + + public void setPlatform(Platform platform) { + this.platform = platform; + } + + public LineOfBusiness getLineOfBusiness() { + return lineOfBusiness; + } + + public void setLineOfBusiness(LineOfBusiness lineOfBusiness) { + this.lineOfBusiness = lineOfBusiness; + } + + public String getProductFamilyId() { + return productFamilyId; + } + + public void setProductFamilyId(String productFamilyId) { + this.productFamilyId = productFamilyId; + } + + public List<Map<String, String>> getInstanceParams() { + return instanceParams; + } + + public void setInstanceParams(List<Map<String, String>> instanceParams) { + this.instanceParams = instanceParams; + } + + public List<VfModules> getVfModules() { + return vfModules; + } + + public void setVfModules(List<VfModules> vfModules) { + this.vfModules = vfModules; + } + + @Override + public String toString() { + return "Vnfs [modelInfo=" + modelInfo + + ", cloudConfiguration=" + cloudConfiguration + + ", instanceName=" + instanceName + ", platform=" + platform + ", " + + "lineOfBusiness=" + lineOfBusiness + + ", productFamilyId=" + productFamilyId + ", instanceParams=" + instanceParams + + ", vfModules=" + vfModules + "]"; + } + +}
\ No newline at end of file diff --git a/common/src/main/java/org/onap/so/test/categories/SlowTests.java b/common/src/main/java/org/onap/so/test/categories/SlowTests.java new file mode 100644 index 0000000000..58a14041d0 --- /dev/null +++ b/common/src/main/java/org/onap/so/test/categories/SlowTests.java @@ -0,0 +1,25 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.test.categories; + +public interface SlowTests { +/* category marker */ +} diff --git a/common/src/main/java/org/openecomp/mso/utils/CheckResults.java b/common/src/main/java/org/onap/so/utils/CheckResults.java index ad0344d028..4f6089d0e3 100644 --- a/common/src/main/java/org/openecomp/mso/utils/CheckResults.java +++ b/common/src/main/java/org/onap/so/utils/CheckResults.java @@ -18,7 +18,7 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.utils; +package org.onap.so.utils; diff --git a/common/src/main/java/org/openecomp/mso/utils/CryptoUtils.java b/common/src/main/java/org/onap/so/utils/CryptoUtils.java index 5d0ff5b79e..11d464a85c 100644 --- a/common/src/main/java/org/openecomp/mso/utils/CryptoUtils.java +++ b/common/src/main/java/org/onap/so/utils/CryptoUtils.java @@ -18,17 +18,19 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.utils; +package org.onap.so.utils; -import java.io.IOException; import java.security.GeneralSecurityException; import java.security.NoSuchAlgorithmException; import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; +import org.onap.so.logger.MessageEnum; +import org.onap.so.logger.MsoLogger; + /** * CryptoUtils adapted from RTTP client. @@ -36,8 +38,10 @@ import javax.crypto.spec.SecretKeySpec; */ public final class CryptoUtils { - public static final String AES = "AES"; + private static final MsoLogger LOGGER = MsoLogger.getMsoLogger (MsoLogger.Catalog.RA, CryptoUtils.class); + public static final String AES = "AES"; + private static final String CLOUD_KEY = "aa3871669d893c7fb8abbcda31b88b4f"; /** * encrypt a value and generate a keyfile * if the keyfile is not found then a new one is created @@ -65,6 +69,36 @@ public final class CryptoUtils { return new String (decrypted); } + /** + * decrypt a value or return defaultValue + * + */ + public static String decryptProperty (String prop, String defaultValue, String encryptionKey) { + try { + return CryptoUtils.decrypt(prop, encryptionKey); + } + catch (GeneralSecurityException e) { + LOGGER.debug("Security exception", e); + } + return defaultValue; + } + + public static String encryptCloudConfigPassword(String message) { + try { + return CryptoUtils.encrypt(message, CryptoUtils.CLOUD_KEY); + } catch (GeneralSecurityException e) { + LOGGER.error (MessageEnum.RA_GENERAL_EXCEPTION, "", "", MsoLogger.ErrorCode.BusinessProcesssError, "Exception in encryptPassword", e); + return null; + } + } + public static String decryptCloudConfigPassword(String message) { + try { + return CryptoUtils.decrypt(message, CryptoUtils.CLOUD_KEY); + } catch (GeneralSecurityException e) { + LOGGER.error (MessageEnum.RA_GENERAL_EXCEPTION, "", "", MsoLogger.ErrorCode.BusinessProcesssError, "Exception in encryptPassword", e); + return null; + } + } private static SecretKeySpec getSecretKeySpec (String keyString) throws NoSuchAlgorithmException { byte[] key = hexStringToByteArray (keyString); SecretKeySpec sks = new SecretKeySpec (key, CryptoUtils.AES); diff --git a/common/src/main/java/org/openecomp/mso/properties/MsoPropertiesParameters.java b/common/src/main/java/org/onap/so/utils/TargetEntity.java index b89a5d4791..ad76e56a56 100644 --- a/common/src/main/java/org/openecomp/mso/properties/MsoPropertiesParameters.java +++ b/common/src/main/java/org/onap/so/utils/TargetEntity.java @@ -18,16 +18,15 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.properties; +package org.onap.so.utils; -public class MsoPropertiesParameters { - - protected enum MsoPropertiesType {JSON_PROP,JAVA_PROP} +public enum TargetEntity { + OPENSTACK_ADAPTER, BPMN, GRM ,AAI, DMAAP, POLICY, CATALOG_DB, REQUEST_DB, VNF_ADAPTER, SDNC_ADAPTER, NARAD; - protected MsoPropertiesType msoPropertiesType; - - protected int refreshCounter; - - protected AbstractMsoProperties msoProperties; + private static final String PREFIX = "MSO"; + @Override + public String toString(){ + return TargetEntity.PREFIX + "." + this.name(); + } } diff --git a/common/src/main/java/org/openecomp/mso/utils/UUIDChecker.java b/common/src/main/java/org/onap/so/utils/UUIDChecker.java index b715717924..fac73e84f9 100644 --- a/common/src/main/java/org/openecomp/mso/utils/UUIDChecker.java +++ b/common/src/main/java/org/onap/so/utils/UUIDChecker.java @@ -19,18 +19,18 @@ * ============LICENSE_END========================================================= */ -package org.openecomp.mso.utils; - -import org.openecomp.mso.logger.MessageEnum; -import org.openecomp.mso.logger.MsoLogger; +package org.onap.so.utils; import java.util.UUID; +import org.onap.so.logger.MessageEnum; +import org.onap.so.logger.MsoLogger; + /** */ public class UUIDChecker { - private static final MsoLogger LOGGER = MsoLogger.getMsoLogger (MsoLogger.Catalog.GENERAL); + private static final MsoLogger LOGGER = MsoLogger.getMsoLogger (MsoLogger.Catalog.GENERAL, UUIDChecker.class); private UUIDChecker() { @@ -49,7 +49,7 @@ public class UUIDChecker { } } - private static String getUUID () { + public static String getUUID () { return UUID.randomUUID().toString(); } diff --git a/common/src/main/java/org/onap/so/utils/XmlMarshaller.java b/common/src/main/java/org/onap/so/utils/XmlMarshaller.java new file mode 100644 index 0000000000..903d055548 --- /dev/null +++ b/common/src/main/java/org/onap/so/utils/XmlMarshaller.java @@ -0,0 +1,84 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.utils; + + +import java.io.StringReader; +import java.io.StringWriter; + +import javax.xml.XMLConstants; +import javax.xml.bind.JAXBContext; +import javax.xml.bind.JAXBException; +import javax.xml.bind.Marshaller; +import javax.xml.bind.Unmarshaller; +import javax.xml.parsers.SAXParserFactory; +import javax.xml.transform.sax.SAXSource; + +import org.onap.so.exceptions.MarshallerException; +import org.onap.so.logger.MessageEnum; +import org.onap.so.logger.MsoLogger; +import org.xml.sax.InputSource; +import org.xml.sax.XMLReader; + +public class XmlMarshaller { + + private static MsoLogger logger = MsoLogger.getMsoLogger(MsoLogger.Catalog.GENERAL, XmlMarshaller.class); + + public static String marshal(Object object) throws MarshallerException { + + StringWriter stringWriter = new StringWriter(); + try { + JAXBContext jaxbContext = JAXBContext.newInstance(object.getClass()); + Marshaller jaxbMarshaller = jaxbContext.createMarshaller(); + jaxbMarshaller.marshal(object, stringWriter); + } catch (JAXBException e) { + logger.error(MessageEnum.GENERAL_EXCEPTION, "", "", "", MsoLogger.ErrorCode.SchemaError, e.getMessage(), e); + throw new MarshallerException(e.getMessage(), MsoLogger.ErrorCode.SchemaError.getValue(), e); + } + + return stringWriter.toString(); + } + + public static Object unMarshal(String input, Object object) throws MarshallerException { + + try { + SAXParserFactory spf = SAXParserFactory.newInstance(); + spf.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true); + spf.setFeature("http://xml.org/sax/features/external-general-entities", false); + spf.setFeature("http://xml.org/sax/features/external-parameter-entities", false); + spf.setNamespaceAware(true); + XMLReader xmlReader = spf.newSAXParser().getXMLReader(); + + JAXBContext jaxbContext = JAXBContext.newInstance(object.getClass()); + Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); + + InputSource inputSource = new InputSource(new StringReader(input)); + SAXSource source = new SAXSource(xmlReader, inputSource); + object = jaxbUnmarshaller.unmarshal(source, object.getClass()).getValue(); + } catch (Exception e) { + logger.error(MessageEnum.GENERAL_EXCEPTION, "", "", "", MsoLogger.ErrorCode.SchemaError, e.getMessage(), e); + throw new MarshallerException(e.getMessage(), MsoLogger.ErrorCode.SchemaError.getValue(), e); + } + + return object; + } + +} diff --git a/common/src/main/java/org/openecomp/mso/client/policy/entities/PolicyDecision.java b/common/src/main/java/org/onap/so/web/exceptions/ExceptionResponse.java index fbc8e23151..048634190a 100644 --- a/common/src/main/java/org/openecomp/mso/client/policy/entities/PolicyDecision.java +++ b/common/src/main/java/org/onap/so/web/exceptions/ExceptionResponse.java @@ -2,14 +2,14 @@ * ============LICENSE_START======================================================= * ONAP - SO * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,41 +18,29 @@ * ============LICENSE_END========================================================= */ - -package org.openecomp.mso.client.policy.entities; - - +package org.onap.so.web.exceptions; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonPropertyOrder; @JsonInclude(JsonInclude.Include.NON_NULL) -@JsonPropertyOrder({ "decision", "details" }) -public class PolicyDecision { - - @JsonProperty("decision") - private String decision; - @JsonProperty("details") - private String details; - - @JsonProperty("decision") - public String getDecision() { - return decision; +@JsonPropertyOrder({ + "message" +}) +public class ExceptionResponse { + @JsonProperty("message") + private String message; + + public ExceptionResponse(String message) { + this.message = message; } - - @JsonProperty("decision") - public void setDecision(String decision) { - this.decision = decision; + public String getMessage() { + return message; } - @JsonProperty("details") - public String getDetails() { - return details; + public void setMessage(String message) { + this.message = message; } - @JsonProperty("details") - public void setDetails(String details) { - this.details = details; - } } diff --git a/common/src/main/java/org/onap/so/web/exceptions/RuntimeExceptionMapper.java b/common/src/main/java/org/onap/so/web/exceptions/RuntimeExceptionMapper.java new file mode 100644 index 0000000000..72e609acbd --- /dev/null +++ b/common/src/main/java/org/onap/so/web/exceptions/RuntimeExceptionMapper.java @@ -0,0 +1,46 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.so.web.exceptions; + +import javax.ws.rs.NotFoundException; +import javax.ws.rs.core.Response; +import javax.ws.rs.core.Response.Status; +import javax.ws.rs.ext.ExceptionMapper; + +import org.onap.so.logger.MsoAlarmLogger; +import org.onap.so.logger.MsoLogger; + +public class RuntimeExceptionMapper implements ExceptionMapper<RuntimeException> { + + private static MsoLogger logger = MsoLogger.getMsoLogger(MsoLogger.Catalog.GENERAL, RuntimeExceptionMapper.class); + private static MsoAlarmLogger alarmLogger = new MsoAlarmLogger(); + @Override + public Response toResponse(RuntimeException exception) { + + if (exception instanceof NotFoundException) { + return Response.status(Status.NOT_FOUND).build(); + } else { + alarmLogger.sendAlarm("MsoApplicationError", MsoAlarmLogger.CRITICAL, exception.getMessage()); + logger.error(exception); + return Response.status(Status.INTERNAL_SERVER_ERROR).entity(new ExceptionResponse("Unexpected Internal Exception")).build(); + } + } +} diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIClient.java b/common/src/main/java/org/openecomp/mso/client/aai/AAIClient.java deleted file mode 100644 index 9150dcab15..0000000000 --- a/common/src/main/java/org/openecomp/mso/client/aai/AAIClient.java +++ /dev/null @@ -1,69 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.mso.client.aai; - -import java.net.URI; -import java.util.UUID; - -import javax.ws.rs.core.UriBuilder; - -import org.openecomp.mso.client.RestPropertiesLoader; -import org.openecomp.mso.client.aai.entities.uri.AAIUri; -import org.openecomp.mso.client.defaultproperties.DefaultAAIPropertiesImpl; -import org.openecomp.mso.client.policy.RestClient; - -import com.att.eelf.configuration.EELFLogger; -import com.att.eelf.configuration.EELFManager; - -public abstract class AAIClient { - - protected final AAIVersion defaultVersion; - private static final String AAI_ROOT = "/aai"; - protected final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger(); - private final AAIProperties properties; - protected final UUID requestId; - public AAIClient(UUID requestId) { - AAIProperties props = RestPropertiesLoader.getInstance().getNewImpl(AAIProperties.class); - if (props == null) { - metricsLogger.error("No RestProperty.AAIProperties implementation found on classpath"); - props = new DefaultAAIPropertiesImpl(); - } - this.properties = props; - this.defaultVersion = props.getDefaultVersion(); - this.requestId = requestId; - } - protected URI constructPath(AAIUri uri) { - - return UriBuilder.fromUri(AAI_ROOT + "/" + this.getVersion().toString() + uri.build().toString()).build(); - } - - protected RestClient createClient(AAIUri uri) { - return new AAIRestClient(properties, this.getRequestId(), constructPath(uri)).addRequestId(this.getRequestId()); - - } - - protected UUID getRequestId() { - return this.requestId; - } - protected AAIVersion getVersion() { - return defaultVersion; - } -}
\ No newline at end of file diff --git a/common/src/main/java/org/openecomp/mso/client/aai/AAIRestClient.java b/common/src/main/java/org/openecomp/mso/client/aai/AAIRestClient.java deleted file mode 100644 index e36033faa0..0000000000 --- a/common/src/main/java/org/openecomp/mso/client/aai/AAIRestClient.java +++ /dev/null @@ -1,76 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.mso.client.aai; - -import java.net.URI; -import java.util.Map; -import java.util.Optional; -import java.util.UUID; - -import javax.ws.rs.client.ClientResponseFilter; -import javax.ws.rs.ext.ContextResolver; - -import org.openecomp.mso.client.policy.RestClient; -import org.openecomp.mso.client.policy.RestClientSSL; - -import com.fasterxml.jackson.databind.ObjectMapper; - -public class AAIRestClient extends RestClientSSL { - - private final AAIProperties props; - - protected AAIRestClient(AAIProperties props, UUID requestId, URI uri) { - super(props, requestId, Optional.of(uri)); - this.props = props; - headerMap.put("X-TransactionId", requestId.toString()); - } - - @Override - protected void initializeHeaderMap(Map<String, String> headerMap) { - headerMap.put("X-FromAppId", "MSO"); - - String auth = props.getAuth(); - String key = props.getKey(); - - if (auth != null && !auth.isEmpty() && key != null && !key.isEmpty()) { - addBasicAuthHeader(auth, key); - } - } - - @Override - protected Optional<ClientResponseFilter> addResponseFilter() { - - return Optional.of(new AAIClientResponseExceptionMapper(this.getRequestId())); - } - - @Override - public RestClient addRequestId(UUID requestId) { - headerMap.put("X-TransactionId", requestId.toString()); - this.requestId = requestId; - return this; - } - - @Override - protected ContextResolver<ObjectMapper> getMapper() { - return new AAICommonObjectMapperProvider(); - } - -} diff --git a/common/src/main/java/org/openecomp/mso/client/aai/objects/AAIOwningEntity.java b/common/src/main/java/org/openecomp/mso/client/aai/objects/AAIOwningEntity.java deleted file mode 100644 index b0b3d06669..0000000000 --- a/common/src/main/java/org/openecomp/mso/client/aai/objects/AAIOwningEntity.java +++ /dev/null @@ -1,67 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.mso.client.aai.objects; - -import org.openecomp.mso.client.aai.AAIObjectType; -import org.openecomp.mso.client.aai.entities.AAIEntityObject; -import org.openecomp.mso.client.aai.entities.uri.AAIResourceUri; -import org.openecomp.mso.client.aai.entities.uri.AAIUriFactory; - -import com.fasterxml.jackson.annotation.JsonProperty; - -public class AAIOwningEntity implements AAIEntityObject { - - @JsonProperty("owning-entity-name") - private String owningEntityName; - - @JsonProperty("owning-entity-id") - private String owningEntityId; - - public String getOwningEntityName() { - return owningEntityName; - } - - public void setOwningEntityName(String owningEntityName) { - this.owningEntityName = owningEntityName; - } - - public String getOwningEntityId() { - return owningEntityId; - } - - public void setOwningEntityId(String owningEntityId) { - this.owningEntityId = owningEntityId; - } - - public AAIOwningEntity withOwningEntity(String owningEntityName, String owningEntityId) { - this.setOwningEntityName(owningEntityName); - this.setOwningEntityId(owningEntityId); - return this; - } - - @Override - public AAIResourceUri getUri() { - final AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.OWNING_ENTITY, this.owningEntityId); - return uri; - } - - -} diff --git a/common/src/main/java/org/openecomp/mso/client/aai/objects/AAIProject.java b/common/src/main/java/org/openecomp/mso/client/aai/objects/AAIProject.java deleted file mode 100644 index 34f715d98a..0000000000 --- a/common/src/main/java/org/openecomp/mso/client/aai/objects/AAIProject.java +++ /dev/null @@ -1,55 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.mso.client.aai.objects; - -import org.openecomp.mso.client.aai.AAIObjectType; -import org.openecomp.mso.client.aai.entities.AAIEntityObject; -import org.openecomp.mso.client.aai.entities.uri.AAIResourceUri; -import org.openecomp.mso.client.aai.entities.uri.AAIUriFactory; - -import com.fasterxml.jackson.annotation.JsonProperty; - -public class AAIProject implements AAIEntityObject { - - @JsonProperty("project-name") - private String projectName; - - public String getProjectName() { - return projectName; - } - - public void setProjectName(String projectName) { - this.projectName = projectName; - } - - public AAIProject withProjectName(String projectName) { - this.setProjectName(projectName); - return this; - } - - @Override - public AAIResourceUri getUri() { - final AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.PROJECT, this.projectName); - return uri; - } - - -} diff --git a/common/src/main/java/org/openecomp/mso/client/defaultproperties/DefaultAAIPropertiesImpl.java b/common/src/main/java/org/openecomp/mso/client/defaultproperties/DefaultAAIPropertiesImpl.java deleted file mode 100644 index ce08759dd9..0000000000 --- a/common/src/main/java/org/openecomp/mso/client/defaultproperties/DefaultAAIPropertiesImpl.java +++ /dev/null @@ -1,78 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.mso.client.defaultproperties; - -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.HashMap; -import java.util.Map; -import java.util.Properties; - -import org.openecomp.mso.client.aai.AAIProperties; -import org.openecomp.mso.client.aai.AAIVersion; - -public class DefaultAAIPropertiesImpl implements AAIProperties { - - - final Map<Object, Object> props; - public DefaultAAIPropertiesImpl() { - File initialFile = new File("src/test/resources/aai.properties"); - Map<Object, Object> temp; - try(InputStream targetStream = new FileInputStream(initialFile)) { - Properties properties = new Properties(); - properties.load(targetStream); - temp = properties; - } catch (IOException e) { - temp = new HashMap<>(); - } - this.props = temp; - - } - @Override - public URL getEndpoint() throws MalformedURLException { - return new URL(props.get("aai.endpoint").toString()); - } - - @Override - public String getSystemName() { - return "MSO"; - } - @Override - public AAIVersion getDefaultVersion() { - return AAIVersion.LATEST; - } - - @Override - public String getAuth() { - Object value = props.get("aai.auth"); - return value == null ? null : value.toString(); - } - - @Override - public String getKey() { - Object value = props.get("mso.msoKey"); - return value == null ? null : value.toString(); - } -} diff --git a/common/src/main/java/org/openecomp/mso/client/policy/RestClient.java b/common/src/main/java/org/openecomp/mso/client/policy/RestClient.java deleted file mode 100644 index 77afe82758..0000000000 --- a/common/src/main/java/org/openecomp/mso/client/policy/RestClient.java +++ /dev/null @@ -1,243 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.mso.client.policy; - -import java.net.MalformedURLException; -import java.net.URI; -import java.net.URL; -import java.security.GeneralSecurityException; -import java.util.HashMap; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Optional; -import java.util.UUID; - -import javax.ws.rs.client.Client; -import javax.ws.rs.client.ClientBuilder; -import javax.ws.rs.client.ClientResponseFilter; -import javax.ws.rs.client.Entity; -import javax.ws.rs.client.Invocation.Builder; -import javax.ws.rs.client.WebTarget; -import javax.ws.rs.core.GenericType; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.UriBuilder; -import javax.ws.rs.ext.ContextResolver; - -import org.apache.commons.codec.binary.Base64; -import org.apache.log4j.Logger; -import org.openecomp.mso.client.RestProperties; -import org.openecomp.mso.logger.MsoLogger; -import org.openecomp.mso.utils.CryptoUtils; -import org.springframework.stereotype.Service; - -import com.fasterxml.jackson.databind.ObjectMapper; - -@Service -public abstract class RestClient { - protected static final String ECOMP_COMPONENT_NAME = "MSO"; - - private static final int MAX_PAYLOAD_SIZE = 1024 * 1024; - private WebTarget webTarget; - - protected final Map<String, String> headerMap; - protected final MsoLogger msoLogger; - protected URL host; - protected Optional<URI> path; - protected Logger logger; - protected String accept; - protected String contentType; - protected UUID requestId; - - protected RestClient(RestProperties props, UUID requestId, Optional<URI> path) { - logger = Logger.getLogger(getClass().getName()); - msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.GENERAL); - this.requestId = requestId; - headerMap = new HashMap<>(); - try { - host = props.getEndpoint(); - } catch (MalformedURLException e) { - logger.error("url not valid", e); - throw new RuntimeException(e); - } - - this.path = path; - initializeClient(getClient()); - } - - protected RestClient(RestProperties props, UUID requestId, Optional<URI> path, String accept, String contentType) { - this(props, requestId, path); - this.accept = accept; - this.contentType = contentType; - } - - protected RestClient(URL host, UUID requestId, String contentType) { - headerMap = new HashMap<>(); - logger = Logger.getLogger(getClass().getName()); - msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.GENERAL); - this.path = Optional.empty(); - this.host = host; - this.contentType = contentType; - this.requestId = requestId; - initializeClient(getClient()); - } - - /** - * Override method to return false to disable logging. - * - * @return true - to enable logging, false otherwise - */ - protected boolean enableLogging() { - return true; - } - - /** - * Override method to return custom value for max payload size. - * - * @return Default value for MAX_PAYLOAD_SIZE = 1024 * 1024 - */ - protected int getMaxPayloadSize() - { - return MAX_PAYLOAD_SIZE; - } - - protected Builder getBuilder() { - - Builder builder = webTarget.request(); - initializeHeaderMap(headerMap); - - for (Entry<String, String> entry : headerMap.entrySet()) { - builder.header(entry.getKey(), entry.getValue()); - } - return builder; - } - - protected abstract void initializeHeaderMap(Map<String, String> headerMap); - - protected abstract Optional<ClientResponseFilter> addResponseFilter(); - - public abstract RestClient addRequestId(UUID requestId); - - /** - * Adds a basic authentication header to the request. - * @param auth the encrypted credentials - * @param key the key for decrypting the credentials - */ - protected void addBasicAuthHeader(String auth, String key) { - try { - byte[] decryptedAuth = CryptoUtils.decrypt(auth, key).getBytes(); - String authHeaderValue = "Basic " + new String(Base64.encodeBase64(decryptedAuth)); - headerMap.put("Authorization", authHeaderValue); - } catch (GeneralSecurityException e) { - logger.warn(e.getMessage(), e); - } - } - - protected ContextResolver<ObjectMapper> getMapper() { - return new CommonObjectMapperProvider(); - } - - protected String getAccept() { - return accept; - } - - protected String getContentType() { - return contentType; - } - - protected String getMergeContentType() { - return "application/merge-patch+json"; - } - - protected Client getClient() { - return ClientBuilder.newBuilder().build(); - } - - protected UUID getRequestId() { - return this.requestId; - } - protected void initializeClient(Client client) { - if (this.enableLogging()) { - client.register(logger).register(new LoggingFilter(this.getMaxPayloadSize())); - } - client.register(this.getMapper()); - Optional<ClientResponseFilter> responseFilter = this.addResponseFilter(); - responseFilter.ifPresent(clientResponseFilter -> client.register(clientResponseFilter)); - webTarget = path.<WebTarget>map(uri -> client.target(UriBuilder.fromUri(host + uri.toString()))) - .orElseGet(() -> client.target(host.toString())); - this.accept = MediaType.APPLICATION_JSON; - this.contentType = MediaType.APPLICATION_JSON; - } - - public Response get() { - return this.getBuilder().accept(this.getAccept()).get(); - } - - public Response post(Object obj) { - return this.getBuilder().accept(this.getAccept()).post(Entity.entity(obj, this.getContentType())); - } - - public Response patch(Object obj) { - return this.getBuilder().header("X-HTTP-Method-Override", "PATCH").accept(this.getAccept()) - .post(Entity.entity(obj, this.getMergeContentType())); - } - - public Response put(Object obj) { - return this.getBuilder().accept(this.getAccept()).put(Entity.entity(obj, this.getContentType())); - } - - public Response delete() { - return this.getBuilder().accept(this.getAccept()).delete(); - } - - public Response delete(Object obj) { - return this.getBuilder().header("X-HTTP-Method-Override", "DELETE").accept(this.getAccept()) - .put(Entity.entity(obj, this.getContentType())); - } - - public <T> T get(Class<T> resultClass) { - return this.get().readEntity(resultClass); - } - - public <T> T get(GenericType<T> resultClass) { - return this.get().readEntity(resultClass); - } - - public <T> T post(Object obj, Class<T> resultClass) { - return this.post(obj).readEntity(resultClass); - } - - public <T> T patch(Object obj, Class<T> resultClass) { - return this.patch(obj).readEntity(resultClass); - } - - public <T> T put(Object obj, Class<T> resultClass) { - return this.put(obj).readEntity(resultClass); - } - - public <T> T delete(Class<T> resultClass) { - return this.delete().readEntity(resultClass); - } - - public <T> T delete(Object obj, Class<T> resultClass) { - return this.delete(obj).readEntity(resultClass); - } -} diff --git a/common/src/main/java/org/openecomp/mso/db/AbstractSessionFactoryManager.java b/common/src/main/java/org/openecomp/mso/db/AbstractSessionFactoryManager.java deleted file mode 100644 index 2988e30254..0000000000 --- a/common/src/main/java/org/openecomp/mso/db/AbstractSessionFactoryManager.java +++ /dev/null @@ -1,74 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.mso.db; - -import org.hibernate.cfg.Configuration; -import org.hibernate.SessionFactory; -import org.hibernate.service.ServiceRegistry; -import org.openecomp.mso.properties.MsoDatabaseException; -import org.hibernate.boot.registry.StandardServiceRegistryBuilder; -import java.net.URL; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - -public abstract class AbstractSessionFactoryManager { - - protected static Map<String, SessionFactory> sessionFactories = new ConcurrentHashMap<>(); - - protected synchronized SessionFactory initializeSessionFactory(URL hibernateConfigFile) - throws MsoDatabaseException { - try { - if (hibernateConfigFile != null) { - SessionFactory tempFactory = sessionFactories.get(hibernateConfigFile.getPath()); - // Already initialized, skip - if (tempFactory != null) { - return tempFactory; - } - - Configuration conf = new Configuration().configure(hibernateConfigFile); - ServiceRegistry sr = new StandardServiceRegistryBuilder().applySettings(conf.getProperties()).build(); - tempFactory = conf.buildSessionFactory(sr); - if (tempFactory == null) { - throw new MsoDatabaseException( - "SessionFactory can't be initialized, method buildSessionFactory returned null !"); - } - sessionFactories.put(hibernateConfigFile.getPath(), tempFactory); - return tempFactory; - } else { - throw new MsoDatabaseException( - "HibernateConfigFile provided is null, therefore Hibernate can't be initialized !"); - } - } catch (Exception e) { - throw new MsoDatabaseException("Exception occurred during the SessionFactory Build", e); - } - } - - public SessionFactory getSessionFactory() throws MsoDatabaseException { - URL hibernateConfigFile = getHibernateConfigFile(); - SessionFactory factory = sessionFactories.get(hibernateConfigFile.getPath()); - if (factory == null) { - factory = initializeSessionFactory(hibernateConfigFile); - } - return factory; - } - - protected abstract URL getHibernateConfigFile(); -} diff --git a/common/src/main/java/org/openecomp/mso/logger/LogFilter.java b/common/src/main/java/org/openecomp/mso/logger/LogFilter.java deleted file mode 100644 index d799b47e15..0000000000 --- a/common/src/main/java/org/openecomp/mso/logger/LogFilter.java +++ /dev/null @@ -1,68 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.mso.logger; - - -import javax.servlet.Filter; -import javax.servlet.FilterChain; -import javax.servlet.FilterConfig; -import javax.servlet.ServletException; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.slf4j.MDC; - -import java.io.IOException; -import java.security.Principal; - -public class LogFilter implements Filter { - @Override - public void destroy() { - // Nothing to do. - } - - @Override - public void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain chain) throws IOException, ServletException { - final HttpServletRequest httpRequest = (HttpServletRequest) request; - final HttpServletResponse httpResponse = (HttpServletResponse) response; - - MDC.clear (); - MDC.put (MsoLogger.REMOTE_HOST, httpRequest.getRemoteAddr()); - - Principal userPrincipal = httpRequest.getUserPrincipal(); - if (null != userPrincipal) { - MDC.put (MsoLogger.PARTNERNAME, userPrincipal.getName ()); - } - //Set identity of calling application / component - String fromAppId = httpRequest.getHeader(MsoLogger.HEADER_FROM_APP_ID); - if(fromAppId != null && !fromAppId.isEmpty()) { - MDC.put (MsoLogger.FROM_APP_ID, fromAppId); - } - chain.doFilter(httpRequest, httpResponse); - } - - @Override - public void init(final FilterConfig config) throws ServletException { - // Nothing to do - } -} diff --git a/common/src/main/java/org/openecomp/mso/logger/MsoLogInitializer.java b/common/src/main/java/org/openecomp/mso/logger/MsoLogInitializer.java deleted file mode 100644 index 6ed2786f35..0000000000 --- a/common/src/main/java/org/openecomp/mso/logger/MsoLogInitializer.java +++ /dev/null @@ -1,108 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.mso.logger; - - -import java.io.File; - -import javax.servlet.ServletContextEvent; -import javax.servlet.ServletContextListener; -import javax.servlet.annotation.WebListener; - -import org.slf4j.LoggerFactory; - -import ch.qos.logback.classic.LoggerContext; -import ch.qos.logback.classic.joran.JoranConfigurator; - - -/** - * This class will attempt to initialize MSO log4j when part of a web application. - * It will look for the logback configuration file logback.xml in the - * following order: - * 1. In an init-param "log.configuration" in web.xml - * 2. TODO: In a property "log.configuration" in an "application.properties" file - * 3. In the default location "/etc/ecomp/mso/config" - * 4. Using the log4j default (check system property log.configuration or - * just look on the classpath for logback.xml) - * - * - */ -@WebListener -public class MsoLogInitializer implements ServletContextListener -{ - private static String DEFAULT_LOG4J_PROPERTIES_FILE = "/etc/ecomp/mso/config/logback.xml"; - private static String prefixMsoPropertiesPath = System.getProperty("mso.config.path"); - static { - if (prefixMsoPropertiesPath == null) { - prefixMsoPropertiesPath = "/"; - } else if (!(prefixMsoPropertiesPath.charAt(prefixMsoPropertiesPath.length() - 1) == '/')) { - prefixMsoPropertiesPath = prefixMsoPropertiesPath + "/"; - } - } - - public MsoLogInitializer () { - } - - - @Override - public void contextDestroyed(ServletContextEvent event) { - // Nothing to do... - } - - @Override - public void contextInitialized(ServletContextEvent event) - { - String logPropertiesFile = null; - try { - // Look first in the init-parameters - String initParam = event.getServletContext().getInitParameter("log.configuration"); - if (initParam != null && fileIsReadable(prefixMsoPropertiesPath + initParam)) { - logPropertiesFile = prefixMsoPropertiesPath + initParam; - } - else if (fileIsReadable(DEFAULT_LOG4J_PROPERTIES_FILE)) { - logPropertiesFile = DEFAULT_LOG4J_PROPERTIES_FILE; - } - - if (logPropertiesFile != null) { - // Initialize loggers with the specified file. If no such file was - // specified, will use the default Log4j resolution. - LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory(); - JoranConfigurator jc = new JoranConfigurator(); - jc.setContext(context); - context.reset(); - jc.doConfigure(logPropertiesFile); - // Try it out - MsoLogger initLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.GENERAL); - initLogger.info(MessageEnum.INIT_LOGGER, logPropertiesFile, "", ""); - } - } catch (Exception e) { - MsoLogger initLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.GENERAL); - initLogger.error (MessageEnum.INIT_LOGGER_FAIL, "", "", MsoLogger.ErrorCode.UnknownError, "", e); - } - } - - private boolean fileIsReadable (String filePath) { - File f = new File(filePath); - if (f.exists() && f.canRead()) - return true; - return false; - } -} diff --git a/common/src/main/java/org/openecomp/mso/logger/MsoLoggingServlet.java b/common/src/main/java/org/openecomp/mso/logger/MsoLoggingServlet.java deleted file mode 100644 index dd42efbfda..0000000000 --- a/common/src/main/java/org/openecomp/mso/logger/MsoLoggingServlet.java +++ /dev/null @@ -1,163 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.mso.logger; - - -import java.util.List; - -import javax.ws.rs.DefaultValue; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.QueryParam; -import javax.ws.rs.core.Response; - -import org.slf4j.LoggerFactory; - -import ch.qos.logback.classic.Level; -import ch.qos.logback.classic.Logger; -import ch.qos.logback.classic.LoggerContext; -import ch.qos.logback.classic.joran.JoranConfigurator; -import ch.qos.logback.core.Appender; - -import com.wordnik.swagger.annotations.Api; -import com.wordnik.swagger.annotations.ApiOperation; - -@Path("/logging") -@Api(value="/logging",description="logging") -public class MsoLoggingServlet { - - private static final String DEBUGLOG = "asyncEELFDebug"; - private MsoLogger logger = MsoLogger.getMsoLogger (MsoLogger.Catalog.GENERAL); - private static final String GENERAL_LOGGER = "com.att.eelf.error"; - private static final String AUDIT_LOGGER = "com.att.eelf.audit"; - private static final String METRICS_LOGGER = "com.att.eelf.metrics"; - - @GET - @Path("/setLevel/{logContext}/{level}") - @Produces("text/plain") - @ApiOperation(value="message print",response=Response.class) - public Response setLogLevel (@PathParam("logContext") String logContext, @PathParam("level") String level) { - logger.info (MessageEnum.LOGGER_SETUP, "", ""); - - LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory(); - JoranConfigurator jc = new JoranConfigurator(); - jc.setContext(context); - Logger updateLogger = context.getLogger (logContext); - - if (updateLogger == null) { - logger.info (MessageEnum.LOGGER_NOT_FOUND, logContext, "", ""); - String response = "Unknown logger: " + logContext; - return Response.status (200).entity (response).build (); - } - - Level currentLevel = updateLogger.getLevel(); - if (!currentLevel.equals(Level.toLevel(level))) { - Level newLevel = Level.toLevel (level); - updateLogger.setLevel (newLevel); - logger.info (MessageEnum.LOGGER_UPDATE_SUC, updateLogger.getName (), currentLevel.toString(), newLevel.toString()); - } - - String response = "Log level set to: " + level + " for " + updateLogger.getName (); - return Response.status (200).entity (response).build (); - - } - - @GET - @Path("/loggers") - @Produces("text/plain") - @SuppressWarnings("rawtypes") - @ApiOperation(value="message print",response=Response.class) - public Response getLoggers () { - StringBuilder response = new StringBuilder (); - LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory(); - JoranConfigurator jc = new JoranConfigurator(); - jc.setContext(context); - List <Logger> loggerList = context.getLoggerList(); - for (Logger logger:loggerList) { - //if (logger.getLevel() != null) { - response.append(logger.getName()).append(":").append(logger.getLevel()).append(" (") - .append(logger.getEffectiveLevel()).append(")\n"); - //} - } - return Response.status (200).entity (response).build (); - - } - - @GET - @Path("/debug") - @Produces("text/plain") - @ApiOperation(value="message print",response=Response.class) - @SuppressWarnings("rawtypes") - /* - * Debug log is used as a general log to store all the logs events, including events generated by MSO code or by - * components used by MSO. - * This method will only enable/disable the function to store MSO generated events into debug log, - * since those events will also be generated to error, audit, metrics log. - * The events generated by other components will not be affected by this interface. - */ - public Response updateDebugAppender (@DefaultValue("true") @QueryParam("enable") Boolean enable) { - String response; - - LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory(); - JoranConfigurator jc = new JoranConfigurator(); - jc.setContext(context); - List <Logger> loggerList = context.getLoggerList(); - Logger rootLogger = context.getLogger("ROOT"); - Appender appender = rootLogger.getAppender(DEBUGLOG); - - if (null == appender) { - return Response.status (500).entity ("Not able to found Debug appender. Please verify to make sure the needed logback file is present in the config folder.").build (); - } - - if (enable) { - logger.info (MessageEnum.LOGGER_UPDATE_DEBUG, "", ""); - - for (Logger logger: loggerList) { - if (isMsoLogger (logger.getName ()) && logger.getAppender (DEBUGLOG) == null && logger.getLevel () != null) { - logger.addAppender (appender); - logger.setAdditive(false); - } - } - logger.info (MessageEnum.LOGGER_UPDATE_DEBUG_SUC, "enabled", "", ""); - response = "Debuglog successfully enabled."; - } else { - logger.info (MessageEnum.LOGGER_UPDATE_DEBUG, "", ""); - for (Logger logger: loggerList) { - if (isMsoLogger (logger.getName ())) { - logger.detachAppender (appender); - } - } - logger.info (MessageEnum.LOGGER_UPDATE_DEBUG_SUC, "disabled", "", ""); - response = "Debuglog successfully disabled."; - } - return Response.status (200).entity (response).build (); - - - } - - private boolean isMsoLogger (String loggerName) { - return loggerName.contains (GENERAL_LOGGER) || loggerName.equals (AUDIT_LOGGER) - || loggerName.equals (METRICS_LOGGER); - } - -} diff --git a/common/src/main/java/org/openecomp/mso/properties/AbstractMsoProperties.java b/common/src/main/java/org/openecomp/mso/properties/AbstractMsoProperties.java deleted file mode 100644 index 8ab275e734..0000000000 --- a/common/src/main/java/org/openecomp/mso/properties/AbstractMsoProperties.java +++ /dev/null @@ -1,75 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.mso.properties; - - -import java.io.IOException; -import java.util.Properties; - -import org.openecomp.mso.logger.MsoLogger; - -public abstract class AbstractMsoProperties { - - public static final int DEFAULT_RELOAD_TIME_MIN=1; - - public static final String RELOAD_TIME_PROPERTY="mso.properties.reload.time.minutes"; - - protected static MsoLogger LOGGER = MsoLogger.getMsoLogger(MsoLogger.Catalog.GENERAL); - - protected String propertiesFileName; - - protected int automaticRefreshInMinutes=0; - - public String getPropertiesFileName() { - return propertiesFileName; - } - - public int getAutomaticRefreshInMinutes() { - return automaticRefreshInMinutes; - } - - protected synchronized void reloadPropertiesFile() throws IOException { - this.loadPropertiesFile(this.propertiesFileName); - } - - /** - * This method load a properties file from a source path. - * - * @param propertiesPath The path to the file - * @throws IOException In case of issues during the opening - */ - - protected abstract void loadPropertiesFile(String propertiesPath) throws IOException; - - @Override - protected abstract AbstractMsoProperties clone(); - - @Override - public abstract int hashCode(); - - @Override - public abstract boolean equals(Object obj); - - @Override - public abstract String toString(); - - -} diff --git a/common/src/main/java/org/openecomp/mso/properties/MsoJavaProperties.java b/common/src/main/java/org/openecomp/mso/properties/MsoJavaProperties.java deleted file mode 100644 index c13b9e0b53..0000000000 --- a/common/src/main/java/org/openecomp/mso/properties/MsoJavaProperties.java +++ /dev/null @@ -1,228 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.mso.properties; - - -import java.io.FileReader; -import java.io.IOException; -import java.security.GeneralSecurityException; -import java.util.HashMap; -import java.util.Map; -import java.util.Properties; - -import org.apache.commons.codec.binary.Base64; -import org.openecomp.mso.utils.CryptoUtils; - -public class MsoJavaProperties extends AbstractMsoProperties { - - - private Properties msoProperties = new Properties(); - - - public MsoJavaProperties() { - - } - - public synchronized void setProperty(String key,String value) { - msoProperties.setProperty(key, value); - } - - public synchronized String getProperty(String key, String defaultValue) { - if (msoProperties.containsKey(key)) { - return msoProperties.getProperty(key); - } else { - return defaultValue; - } - } - - public synchronized int getIntProperty(String key, int defaultValue) { - - int value = defaultValue; - if (msoProperties.containsKey(key)) { - try { - value = Integer.parseInt(msoProperties.getProperty(key)); - } catch (NumberFormatException e) { - LOGGER.debug("Exception while parsing integer: " + msoProperties.getProperty(key), e); - } - } - return value; - - } - - public synchronized boolean getBooleanProperty(String key, boolean defaultValue) { - - if (msoProperties.containsKey(key)) { - return Boolean.parseBoolean(msoProperties.getProperty(key)); - } else { - return defaultValue; - } - - } - - public synchronized String getEncryptedProperty(String key, String defaultValue, String encryptionKey) { - - if (msoProperties.containsKey(key)) { - try { - return CryptoUtils.decrypt(msoProperties.getProperty(key), encryptionKey); - } catch (GeneralSecurityException e) { - LOGGER.debug("Exception while decrypting property: " + msoProperties.getProperty(key), e); - } - } - return defaultValue; - - } - - /** - * @param encryptedAuth: encrypted credentials from properties - * @param msoKey: key to use to decrypt from properties - * @return base 64 encoded basic auth credentials - */ - public synchronized String getBasicAuth(String encryptedAuth, String msoKey){ - String encodedString = null; - if ((encryptedAuth == null || encryptedAuth.isEmpty()) || (msoKey == null || msoKey.isEmpty())) - return null; - try { - String auth = decrypt(encryptedAuth, msoKey); - byte[] encoded = Base64.encodeBase64(auth.getBytes()); - encodedString = new String(encoded); - encodedString = "Basic " + encodedString; - - } catch (Exception ex) { - LOGGER.debug("Exception while getBasicAuth " + encryptedAuth, ex); - } - return encodedString; - } - - public synchronized int size() { - return this.msoProperties.size(); - } - - public synchronized String decrypt(String toDecrypt, String msokey){ - String result = null; - try { - result = CryptoUtils.decrypt(toDecrypt, msokey); - - } - catch (Exception e) { - LOGGER.debug("Failed to decrypt credentials: " + toDecrypt, e); - } - return result; - } - - @Override - protected synchronized void reloadPropertiesFile() throws IOException { - this.loadPropertiesFile(this.propertiesFileName); - } - - /** - * This method load a properties file from a source path. - * - * @param propertiesPath The path to the file - * @throws IOException In case of issues during the opening - */ - @Override - protected synchronized void loadPropertiesFile(String propertiesPath) throws IOException { - - FileReader reader = null; - - propertiesFileName = propertiesPath; - try { - msoProperties.clear(); - reader = new FileReader(propertiesPath); - msoProperties.load(reader); - - } finally { - this.automaticRefreshInMinutes = this.getIntProperty(RELOAD_TIME_PROPERTY, DEFAULT_RELOAD_TIME_MIN); - try { - if (reader != null) { - reader.close(); - } - } catch (IOException e) { - LOGGER.debug("Exception while closing reader for file:" + propertiesPath, e); - } - } - } - - @Override - public synchronized MsoJavaProperties clone() { - MsoJavaProperties msoCopy = new MsoJavaProperties(); - msoCopy.msoProperties.putAll(msoProperties); - msoCopy.propertiesFileName = this.propertiesFileName; - msoCopy.automaticRefreshInMinutes = this.automaticRefreshInMinutes; - return msoCopy; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((msoProperties == null) ? 0 : msoProperties.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - MsoJavaProperties other = (MsoJavaProperties) obj; - - return msoProperties.equals(other.msoProperties); - } - - @Override - public String toString() { - - StringBuilder response = new StringBuilder(); - response.append("Config file ") - .append(propertiesFileName) - .append("(Timer:") - .append(automaticRefreshInMinutes) - .append("mins):") - .append(System.lineSeparator()); - - for (Object key : this.msoProperties.keySet()) { - String propertyName = (String) key; - response.append(propertyName); - response.append("="); - response.append(this.msoProperties.getProperty(propertyName)); - response.append(System.lineSeparator()); - } - response.append(System.lineSeparator()); - response.append(System.lineSeparator()); - - return response.toString(); - } - - public Map<String, String> asMap() { - final Map<String, String> result = new HashMap<>(); - msoProperties.forEach((key, value) -> result.put(key.toString(), value.toString())); - - return result; - } - -} diff --git a/common/src/main/java/org/openecomp/mso/properties/MsoJsonProperties.java b/common/src/main/java/org/openecomp/mso/properties/MsoJsonProperties.java deleted file mode 100644 index ec0b54a14f..0000000000 --- a/common/src/main/java/org/openecomp/mso/properties/MsoJsonProperties.java +++ /dev/null @@ -1,167 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.mso.properties; - - -import java.io.FileReader; -import java.io.IOException; -import java.security.GeneralSecurityException; - -import org.openecomp.mso.utils.CryptoUtils; - -import com.fasterxml.jackson.core.JsonParseException; -import com.fasterxml.jackson.databind.JsonMappingException; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; - - -public class MsoJsonProperties extends AbstractMsoProperties { - - protected ObjectMapper mapper = new ObjectMapper(); - - protected JsonNode jsonRootNode = mapper.createObjectNode(); - - protected MsoJsonProperties() { - - } - - public synchronized JsonNode getJsonRootNode () { - return this.jsonRootNode; - } - - /** - * This method is used to get the text encrypted in the string value of the node. - * @param jsonNode The JsonNode containing the strig to decode - * @param defaultValue The default value in case of issue - * @param encryptionKey The encryption Key in AES 128 bits - * @return the String decrypted - */ - public synchronized String getEncryptedProperty(JsonNode jsonNode, String defaultValue, String encryptionKey) { - - if (jsonNode.isTextual()) { - try { - return CryptoUtils.decrypt(jsonNode.asText(), encryptionKey); - } catch (GeneralSecurityException e) { - LOGGER.debug("Exception while decrypting property: " + jsonNode.asText(), e); - } - } - - return defaultValue; - } - - /** - * This method load a properties file from a source path. - * - * @param propertiesPath The path to the file - * @throws IOException In case of issues during the opening - */ - @Override - protected synchronized void loadPropertiesFile(String propertiesPath) throws IOException { - - FileReader reader = null; - - this.propertiesFileName = propertiesPath; - - try { - // Clean - this.jsonRootNode = mapper.createObjectNode(); - - reader = new FileReader(propertiesPath); - - // Try a tree load - this.jsonRootNode = mapper.readValue(reader, JsonNode.class); - - - } finally { - JsonNode reloadJsonProp = this.jsonRootNode.get(RELOAD_TIME_PROPERTY); - if (reloadJsonProp != null) { - this.automaticRefreshInMinutes = reloadJsonProp.asInt(DEFAULT_RELOAD_TIME_MIN); - } else { - this.automaticRefreshInMinutes = DEFAULT_RELOAD_TIME_MIN; - } - - // Always close the file - try { - if (reader != null) { - reader.close(); - } - } catch (IOException e) { - LOGGER.debug("Exception while closing reader for file:" + propertiesFileName, e); - } - } - } - - @Override - public synchronized MsoJsonProperties clone() { - MsoJsonProperties msoCopy = new MsoJsonProperties(); - - ObjectMapper newMapper = new ObjectMapper(); - try { - msoCopy.jsonRootNode = newMapper.createObjectNode(); - msoCopy.jsonRootNode = newMapper.readValue(this.jsonRootNode.toString(), JsonNode.class); - } catch (JsonParseException e) { - LOGGER.debug("JsonParseException when cloning the object:" + this.propertiesFileName, e); - } catch (JsonMappingException e) { - LOGGER.debug("JsonMappingException when cloning the object:" + this.propertiesFileName, e); - } catch (IOException e) { - LOGGER.debug("IOException when cloning the object:" + this.propertiesFileName, e); - } - - msoCopy.propertiesFileName = this.propertiesFileName; - msoCopy.automaticRefreshInMinutes = this.automaticRefreshInMinutes; - return msoCopy; - } - - - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((jsonRootNode == null) ? 0 : jsonRootNode.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - MsoJsonProperties other = (MsoJsonProperties) obj; - if (jsonRootNode == null) { - if (other.jsonRootNode != null) - return false; - } else if (!jsonRootNode.equals(other.jsonRootNode)) - return false; - return true; - } - - @Override - public String toString() { - return "Config file " + propertiesFileName + "(Timer:" + automaticRefreshInMinutes + "mins):" + System - .getProperty("line.separator") + this.jsonRootNode.toString() + System.getProperty("line.separator") - + System.getProperty("line.separator"); - } - -} diff --git a/common/src/main/java/org/openecomp/mso/properties/MsoPropertiesException.java b/common/src/main/java/org/openecomp/mso/properties/MsoPropertiesException.java deleted file mode 100644 index 1563ca556c..0000000000 --- a/common/src/main/java/org/openecomp/mso/properties/MsoPropertiesException.java +++ /dev/null @@ -1,51 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.mso.properties; - - -/** - * Exception during artifact installation. - */ -public class MsoPropertiesException extends Exception { - - /** - * serialization id. - */ - private static final long serialVersionUID = 4095937499475915021L; - - /** - * @param message The message to dump - * @param cause The Throwable cause object - */ - public MsoPropertiesException (final String message) { - super (message); - - } - - /** - * @param message The message to dump - * @param cause The Throwable cause object - */ - public MsoPropertiesException (final String message, final Throwable cause) { - super (message, cause); - - } -} diff --git a/common/src/main/java/org/openecomp/mso/properties/MsoPropertiesFactory.java b/common/src/main/java/org/openecomp/mso/properties/MsoPropertiesFactory.java deleted file mode 100644 index 3f81734796..0000000000 --- a/common/src/main/java/org/openecomp/mso/properties/MsoPropertiesFactory.java +++ /dev/null @@ -1,395 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.mso.properties; - - -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.Serializable; -import java.util.LinkedList; -import java.util.List; -import java.util.Map.Entry; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.locks.ReentrantReadWriteLock; - -import javax.ejb.ConcurrencyManagement; -import javax.ejb.ConcurrencyManagementType; -import javax.ejb.LocalBean; -import javax.ejb.Schedule; -import javax.ejb.Singleton; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Response; - -import org.openecomp.mso.logger.MessageEnum; -import org.openecomp.mso.logger.MsoLogger; -import org.openecomp.mso.utils.CryptoUtils; - -/** - * This EJB Singleton class returns an instance of the mso properties for a specified file. - * This class can handle many config at the same time and is thread safe. - * This instance is a copy of the one cached so it can be modified or reloaded without impacting the others class using - * it. - * The mso properties files loaded and cached here will be reloaded every X second (it's configurable with the init - * method) - * This class can be used as an EJB or can be instantiated directly as long as the EJB has been initialized for the current - * module. Locks are made manually and not using EJB locks to allow this. - * - * - */ -@Singleton(name = "MsoPropertiesFactory") -@ConcurrencyManagement(ConcurrencyManagementType.BEAN) -@LocalBean -@Path("/properties") -public class MsoPropertiesFactory implements Serializable { - - private static final long serialVersionUID = 4365495305496742113L; - - protected static String prefixMsoPropertiesPath = System.getProperty ("mso.config.path"); - - private static MsoLogger LOGGER = MsoLogger.getMsoLogger (MsoLogger.Catalog.GENERAL); - - // Keep a static copy of properties for global usage - private static final ConcurrentHashMap <String, MsoPropertiesParameters> msoPropertiesCache; - - static { - if (prefixMsoPropertiesPath == null) { - // Hardcode if nothing is received - prefixMsoPropertiesPath = ""; - } - msoPropertiesCache = new ConcurrentHashMap<>(); - } - - private static final ReentrantReadWriteLock rwl = new ReentrantReadWriteLock (); - - public MsoPropertiesFactory () { - - } - - private boolean isJsonFile(String propertiesFilePath) { - return propertiesFilePath.endsWith(".json"); - } - - - private boolean isJavaPropertiesFile (String propertiesFilePath) { - return propertiesFilePath.endsWith(".properties"); - } - - private MsoPropertiesParameters createObjectType (MsoPropertiesParameters msoPropParams, String propertiesFilePath) throws MsoPropertiesException, IOException { - - try { - if (this.isJavaPropertiesFile(propertiesFilePath)) { - - msoPropParams.msoProperties = new MsoJavaProperties(); - msoPropParams.msoPropertiesType = MsoPropertiesParameters.MsoPropertiesType.JAVA_PROP; - } else if (this.isJsonFile(propertiesFilePath)) { - - msoPropParams.msoProperties = new MsoJsonProperties(); - msoPropParams.msoPropertiesType = MsoPropertiesParameters.MsoPropertiesType.JSON_PROP; - } else { - throw new MsoPropertiesException("Unable to load the MSO properties file because format is not recognized (only .json or .properties): " + propertiesFilePath); - } - - msoPropParams.msoProperties.loadPropertiesFile (propertiesFilePath); - - return msoPropParams; - } finally { - if (msoPropParams.msoProperties!=null) { - msoPropParams.refreshCounter = msoPropParams.msoProperties.getAutomaticRefreshInMinutes(); - } - } - - } - - /** - * This method is used to create a MsoProperties file cache and factory. - * The ID is kept in cache even if the config fails to be loaded. - * This is used to maintain the config ID until someone fixes the config file. - * - * @param msoPropertiesID A string representing the key of the config - * @param propertiesFilePath The mso properties file to load - * - * @throws MsoPropertiesException In case of issues with the mso properties loading - * - * @see MsoPropertiesFactory#getMsoJavaProperties() - * @see MsoPropertiesFactory#getMsoJsonProperties() - */ - public void initializeMsoProperties (String msoPropertiesID, - String propertiesFilePath) throws MsoPropertiesException { - - rwl.writeLock ().lock (); - - String msoPropPath="none"; - MsoPropertiesParameters msoPropertiesParams=new MsoPropertiesParameters(); - try { - msoPropPath = prefixMsoPropertiesPath + propertiesFilePath; - if (msoPropertiesCache.get (msoPropertiesID) != null) { - throw new MsoPropertiesException ("The factory contains already an instance of this mso properties: " - + msoPropPath); - } - // Create the global MsoProperties object - msoPropertiesParams = createObjectType(msoPropertiesParams, msoPropPath); - - } catch (FileNotFoundException e) { - throw new MsoPropertiesException ("Unable to load the MSO properties file because it has not been found:" - + msoPropPath, e); - - } catch (IOException e) { - throw new MsoPropertiesException ("Unable to load the MSO properties file because IOException occurs: " - + msoPropPath, e); - } finally { - // put it in all cases, just to not forget about him and attempt a default reload - msoPropertiesCache.put (msoPropertiesID, msoPropertiesParams); - rwl.writeLock ().unlock (); - } - } - - public void removeMsoProperties (String msoPropertiesID) throws MsoPropertiesException { - - rwl.writeLock ().lock (); - try { - if (MsoPropertiesFactory.msoPropertiesCache.remove (msoPropertiesID) == null) { - throw new MsoPropertiesException ("Mso properties not found in cache:" + msoPropertiesID); - } - } finally { - rwl.writeLock ().unlock (); - } - } - - /** - * This method clears all the configs in cache, the factory will then be free of any config. - * - * @see MsoPropertiesFactory#initializeMsoProperties(String, String) - */ - public void removeAllMsoProperties () { - - rwl.writeLock ().lock (); - try { - MsoPropertiesFactory.msoPropertiesCache.clear (); - } finally { - rwl.writeLock ().unlock (); - } - } - - /** - * THis method can be used to change the file and timer fields of an existing MSO properties file. - * - * @param msoPropertiesID The MSO properties ID - * @param newMsoPropPath The new file Path - * @throws MsoPropertiesException In case of the MSO Properties is not found in cache - */ - public void changeMsoPropertiesFilePath (String msoPropertiesID, - String newMsoPropPath) throws MsoPropertiesException { - - rwl.writeLock ().lock (); - try { - MsoPropertiesParameters msoPropInCache = MsoPropertiesFactory.msoPropertiesCache.get (msoPropertiesID); - - if (msoPropInCache != null) { - msoPropInCache.msoProperties.propertiesFileName = prefixMsoPropertiesPath + newMsoPropPath; - - } else { - throw new MsoPropertiesException ("Mso properties not found in cache:" + msoPropertiesID); - } - } finally { - rwl.writeLock ().unlock (); - } - } - - private AbstractMsoProperties getAndCloneProperties(String msoPropertiesID, MsoPropertiesParameters.MsoPropertiesType type) throws MsoPropertiesException { - rwl.readLock ().lock (); - try { - MsoPropertiesParameters msoPropInCache = MsoPropertiesFactory.msoPropertiesCache.get (msoPropertiesID); - if (msoPropInCache == null) { - throw new MsoPropertiesException ("Mso properties not found in cache:" + msoPropertiesID); - } else { - if (type.equals(msoPropInCache.msoPropertiesType)) { - return msoPropInCache.msoProperties.clone (); - } else { - throw new MsoPropertiesException ("Mso properties is not "+type.name()+" properties type:" + msoPropertiesID); - } - - } - } finally { - rwl.readLock ().unlock (); - } - } - - /** - * Get the MSO Properties (As Java Properties) as a copy of the mso properties cache. - * The object returned can therefore be modified. - * - * @return A copy of the mso properties, properties class can be empty if the file has not been read properly - * @throws MsoPropertiesException If the mso properties does not exist in the cache - */ - public MsoJavaProperties getMsoJavaProperties (String msoPropertiesID) throws MsoPropertiesException { - - return (MsoJavaProperties)getAndCloneProperties(msoPropertiesID,MsoPropertiesParameters.MsoPropertiesType.JAVA_PROP); - } - - /** - * Get the MSO Properties (As JSON Properties) as a copy of the mso properties cache. - * The object returned can therefore be modified. - * - * @return A copy of the mso properties, properties class can be empty if the file has not been read properly - * @throws MsoPropertiesException If the mso properties does not exist in the cache - */ - public MsoJsonProperties getMsoJsonProperties (String msoPropertiesID) throws MsoPropertiesException { - - return (MsoJsonProperties)getAndCloneProperties(msoPropertiesID,MsoPropertiesParameters.MsoPropertiesType.JSON_PROP); - } - - /** - * Get all MSO Properties as a copy of the mso properties cache. - * The objects returned can therefore be modified. - * - * @return A List of copies of the mso properties, can be empty - */ - public List <AbstractMsoProperties> getAllMsoProperties () { - - List <AbstractMsoProperties> resultList = new LinkedList<>(); - rwl.readLock ().lock (); - try { - - for (MsoPropertiesParameters msoProp:MsoPropertiesFactory.msoPropertiesCache.values ()) { - resultList.add(msoProp.msoProperties.clone()); - } - return resultList; - - } finally { - rwl.readLock ().unlock (); - } - - } - - /** - * This method is not intended to be called, it's used to refresh the config automatically - * - * @return true if Properties have been reloaded, false otherwise - */ - @Schedule(minute = "*/1", hour = "*", persistent = false) - public boolean reloadMsoProperties () { - AbstractMsoProperties msoPropInCache = null; - try { - if (!rwl.writeLock ().tryLock () && !rwl.writeLock ().tryLock (30L, TimeUnit.SECONDS)) { - LOGGER.debug ("Busy write lock on mso properties factory, skipping the reloading"); - return false; - } - } catch (InterruptedException e1) { - LOGGER.debug ("Interrupted while trying to acquire write lock on mso properties factory, skipping the reloading"); - Thread.currentThread ().interrupt (); - return false; - } - try { - for (Entry <String, MsoPropertiesParameters> entryMsoPropTimer : MsoPropertiesFactory.msoPropertiesCache.entrySet ()) { - - if (entryMsoPropTimer.getValue ().refreshCounter <= 1) { - // It's time to reload the config - msoPropInCache = MsoPropertiesFactory.msoPropertiesCache.get (entryMsoPropTimer.getKey ()).msoProperties; - try { - AbstractMsoProperties oldProps = msoPropInCache.clone (); - msoPropInCache.reloadPropertiesFile (); - entryMsoPropTimer.getValue().refreshCounter=entryMsoPropTimer.getValue().msoProperties.getAutomaticRefreshInMinutes(); - - if (!msoPropInCache.equals (oldProps)) { - LOGGER.info (MessageEnum.LOAD_PROPERTIES_SUC, msoPropInCache.getPropertiesFileName (), "", ""); - } - } catch (FileNotFoundException ef) { - LOGGER.error (MessageEnum.NO_PROPERTIES, msoPropInCache.propertiesFileName, "", "", MsoLogger.ErrorCode.PermissionError, "", ef); - } catch (Exception e) { - LOGGER.error (MessageEnum.LOAD_PROPERTIES_FAIL, msoPropInCache.propertiesFileName, "", "", MsoLogger.ErrorCode.BusinessProcesssError, "", e); - } - - } else { - --entryMsoPropTimer.getValue().refreshCounter; - } - } - return true; - } catch (Exception e) { - LOGGER.error (MessageEnum.LOAD_PROPERTIES_FAIL, "Unknown. Global issue while reloading", "", "", MsoLogger.ErrorCode.BusinessProcesssError, "", e); - return false; - } finally { - rwl.writeLock ().unlock (); - } - } - - /** - * This method can be used to known if the MSO properties instance hold is different from the one in cache - * - * @param msoPropertiesID The MSO properties ID - * @param oldMsoProperties The MSO Properties instance that must be compared to - * @return True if they are the same, false otherwise - * @throws MsoPropertiesException - */ - public boolean propertiesHaveChanged (String msoPropertiesID, AbstractMsoProperties oldMsoProperties) throws MsoPropertiesException { - rwl.readLock ().lock (); - try { - if (MsoPropertiesFactory.msoPropertiesCache.get (msoPropertiesID) == null) { - throw new MsoPropertiesException ("Mso properties not found in cache:" + msoPropertiesID); - } - - AbstractMsoProperties msoPropInCache = MsoPropertiesFactory.msoPropertiesCache.get (msoPropertiesID).msoProperties; - if (oldMsoProperties != null) { - return !oldMsoProperties.equals (msoPropInCache); - } else { - return msoPropInCache != null; - } - } finally { - rwl.readLock ().unlock (); - } - } - - @GET - @Path("/show") - @Produces("text/plain") - public Response showProperties () { - - List <AbstractMsoProperties> listMsoProp = this.getAllMsoProperties (); - StringBuffer response = new StringBuffer (); - - if (listMsoProp.isEmpty ()) { - response.append ("No file defined"); - } - - for (AbstractMsoProperties properties : listMsoProp) { - - response.append(properties.toString()); - } - - return Response.status (200).entity (response).build (); - } - - @GET - @Path("/encrypt/{value}/{cryptKey}") - @Produces("text/plain") - public Response encryptProperty (@PathParam("value") String value, @PathParam("cryptKey") String cryptKey) { - try { - String encryptedValue = CryptoUtils.encrypt (value, cryptKey); - return Response.status (200).entity (encryptedValue).build (); - } catch (Exception e) { - LOGGER.error (MessageEnum.GENERAL_EXCEPTION_ARG, "Encryption error", "", "", MsoLogger.ErrorCode.BusinessProcesssError, "Error in encrypting property", e); - return Response.status (500).entity (e.getMessage ()).build (); - } - } -} diff --git a/common/src/main/java/org/openecomp/mso/properties/MsoPropertyInitializer.java b/common/src/main/java/org/openecomp/mso/properties/MsoPropertyInitializer.java deleted file mode 100644 index 8490ff8afa..0000000000 --- a/common/src/main/java/org/openecomp/mso/properties/MsoPropertyInitializer.java +++ /dev/null @@ -1,87 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.mso.properties; - - -import javax.servlet.ServletContextEvent; -import javax.servlet.ServletContextListener; -import javax.servlet.annotation.WebListener; - -import org.openecomp.mso.logger.MessageEnum; -import org.openecomp.mso.logger.MsoLogger; - -/** - * This class will attempt to initialize MSO Properties when part of a web application. - * It will look for the configuration file mso.properties in the - * following order: - * 1. In an init-param "mso.configuration" in web.xml - * 2. In a system property "mso.configuration" - * 3. In the default location "/etc/ecomp/mso/config/mso.properties" - * - * If all else fails, the MSO Properties will go uninitialized, and will - * attempt to use the default constructors within the MsoProperties class. - * - * - */ -@WebListener -public class MsoPropertyInitializer implements ServletContextListener -{ - - private MsoPropertiesFactory msoPropertiesFactory=new MsoPropertiesFactory(); - - public MsoPropertyInitializer () { - } - - @Override - public void contextDestroyed(ServletContextEvent event) { - // Nothing to do... - } - - - @Override - public void contextInitialized(ServletContextEvent event) - { - - // Note - this logger may be before or after MSO Logging configuration applied - MsoLogger initLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.GENERAL); - try { - // Look first in the init-parameters - String msoPropConfigParam = event.getServletContext().getInitParameter("mso.configuration"); - if (msoPropConfigParam != null && !msoPropConfigParam.isEmpty() ) { - String[] configFileSplit = msoPropConfigParam.split(","); - for (String msoPropConfig:configFileSplit) { - String[] msoPropDecoded = msoPropConfig.split("="); - - try { - msoPropertiesFactory.initializeMsoProperties(msoPropDecoded[0], msoPropDecoded[1]); - initLogger.info(MessageEnum.LOAD_PROPERTIES_SUC, msoPropDecoded[1], "", ""); - initLogger.debug("Mso properties successfully loaded:"+msoPropDecoded[1]+",ID:"+msoPropDecoded[0]+")"); - } catch (MsoPropertiesException e) { - initLogger.error(MessageEnum.LOAD_PROPERTIES_FAIL, msoPropDecoded[1] + ". MSO Properties failed due to an mso properties exception", "", "", MsoLogger.ErrorCode.DataError, "Error in contextInitialized", e); - } - } - } - } - catch (Exception e) { - initLogger.error(MessageEnum.LOAD_PROPERTIES_FAIL, "Unknown. MSO Properties failed to initialize completely", "", "", MsoLogger.ErrorCode.DataError, "", e); - } - } -} diff --git a/common/src/main/java/org/openecomp/mso/utils/RootIgnoringJsonDeserializer.java b/common/src/main/java/org/openecomp/mso/utils/RootIgnoringJsonDeserializer.java deleted file mode 100644 index 95f72c4dd4..0000000000 --- a/common/src/main/java/org/openecomp/mso/utils/RootIgnoringJsonDeserializer.java +++ /dev/null @@ -1,67 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.mso.utils; - -import java.io.IOException; -import java.util.Map; - -import com.fasterxml.jackson.annotation.JsonRootName; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; - -/** - * A JSON deserializer that ignores the root element if it is present. - */ -public class RootIgnoringJsonDeserializer<T> extends JsonDeserializer<T> { - - private final ObjectMapper mapper = new ObjectMapper(); - private final Class<T> clazz; - private final String jsonRootName; - - public RootIgnoringJsonDeserializer(Class<T> clazz) { - this.clazz = clazz; - - JsonRootName annotation = clazz.getAnnotation(JsonRootName.class); - - if (annotation == null || annotation.value() == null || annotation.value().equals("")) { - jsonRootName = clazz.getSimpleName(); - } else { - jsonRootName = annotation.value(); - } - } - - @Override - public T deserialize(JsonParser jp, DeserializationContext dc) - throws IOException, JsonProcessingException { - JsonNode rootNode = jp.getCodec().readTree(jp); - Map.Entry<String,JsonNode> field = rootNode.fields().next(); - - if (jsonRootName.equals(field.getKey())) { - rootNode = field.getValue(); - } - - return mapper.convertValue(rootNode, clazz); - } -}
\ No newline at end of file |