tacker/tacker/common
tpatil 3f5c81604e Support attribute filtering for GET /vnf_packages API
Certain resource representations can become quite big, in particular
``GET /vnfpackages`` API which is a container for multiple sub-resources.
In these cases, it can be desired to reduce the amount of data exchanged
over the interface and processed by the API consumer application.

An attribute selector i.e filter, allows the API consumer to choose
which attributes it wants to be contained in the response. Only
attributes that are not required to be present, i.e. those with
a lower bound of zero on their cardinality (e.g. 0..1, 0..N)
and that are not conditionally mandatory, are allowed to be omitted
as part of the selection process.

This patch implements attribute filtering for ``GET /vnfpackages`` API.

It will support following query parameters:-
* filter: Filter criterion built with attributes of VNF Package and
REST operators.
* all_fields: Return all fields
* fields=<list> : Return fields specified in the <list>
* exclude_fields=<list>: Return fields not specified in the <list>
* exclude_default parameters: Return all fields except default fields
* exclude_default and fields=<list>: Return all fields except default
fields and fields in the <list>
* When no parameter is specified it is treated as exclude_default.

You can find more details about supported query parameters in document:
ETSI GS NFV-SOL 013 V2.6.1 (2019-03 in section 5.2 and 5.3

Co-Authored-By: Prashant Bhole <prashant.bhole@nttdata.com>

Change-Id: I1513d7d87967de5248787cd298c3bec65c2dde9d
Implements: bp/enhance-vnf-package-support-part1
2020-04-23 10:17:45 +00:00
..
container Implementation containerized VNF in Kubernetes type 2018-02-02 16:43:46 +09:00
__init__.py rename neutron/common to tacker/common 2014-07-04 18:20:50 +09:00
clients.py Add instantiate vnf instance API 2020-04-22 07:42:05 +00:00
cmd_executer.py Remove log translations 2017-07-07 00:19:36 -04:00
config.py Implement policy in code 2019-09-19 06:30:04 +00:00
constants.py Add missing contants 2018-11-11 06:17:09 +00:00
coordination.py Sychronize vnf action tasks 2020-04-22 07:43:50 +00:00
csar_utils.py Implement RestFul API to read VNFD of an on-boarded VNF package 2020-04-20 03:16:33 +00:00
driver_manager.py Add instantiate vnf instance API 2020-04-22 07:42:05 +00:00
eventlet_utils.py Fix eventlet issue 2018-07-17 17:36:23 +09:00
exceptions.py Sychronize vnf action tasks 2020-04-22 07:43:50 +00:00
log.py Remove log translations 2017-07-07 00:19:36 -04:00
rpc.py Add vnf packages RestFul APIs 2019-09-20 06:48:28 +00:00
safe_utils.py Add vnf packages RestFul APIs 2019-09-20 06:48:28 +00:00
test_lib.py Cleanup vim settings 2016-03-28 13:03:56 +02:00
topics.py Implement vim status update in conductor 2017-06-20 11:47:16 +08:00
utils.py Support attribute filtering for GET /vnf_packages API 2020-04-23 10:17:45 +00:00