ret = yield gen.coroutine(xstep)(self, data, *args, **kwargs)
raise gen.Return(ret)
return wrap
+
+
+def query_by_name(xstep):
+ @functools.wraps(xstep)
+ def wrap(self, *args, **kwargs):
+ if 'name' in self.request.query_arguments.keys():
+ query = kwargs.get('query', {})
+ query.update({'name': re.compile(self.get_query_argument('name'), re.IGNORECASE)})
+ kwargs.update({'query': query})
+
+ ret = yield gen.coroutine(xstep)(self, *args, **kwargs)
+ raise gen.Return(ret)
+
+ return wrap
@web.asynchronous
@gen.coroutine
- def _list(self, query=None, res_op=None, *args, **kwargs):
+ @check.query_by_name
+ def _list(self, query=None, **kwargs):
sort = kwargs.get('sort')
page = kwargs.get('page', 0)
last = kwargs.get('last', 0)
cursor = dbapi.db_aggregate(self.table, pipelines)
while (yield cursor.fetch_next):
data.append(self.format_data(cursor.next_object()))
- if res_op is None:
- res = {self.table: data}
- else:
- res = res_op(data, *args)
+ res = {self.table: data}
if page > 0:
res.update({
'pagination': {
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-import re
from opnfv_testapi.handlers import base_handlers
from opnfv_testapi.models import pod_models
self.table = 'pods'
self.table_cls = pod_models.Pod
- def set_query(self):
- query = dict()
- for k in self.request.query_arguments.keys():
- v = self.get_query_argument(k)
- if k == 'name':
- query['name'] = re.compile(v, re.IGNORECASE)
- return query
-
class PodCLHandler(GenericPodHandler):
@swagger.operation(nickname='listAllPods')
@in name: query
@required name: False
"""
- self._list(query=self.set_query())
+ self._list()
@swagger.operation(nickname='createPod')
def post(self):
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-import re
from opnfv_testapi.handlers import base_handlers
from opnfv_testapi.models import project_models
self.table = 'projects'
self.table_cls = project_models.Project
- def set_query(self):
- query = dict()
- for k in self.request.query_arguments.keys():
- v = self.get_query_argument(k)
- if k == 'name':
- query['name'] = re.compile(v, re.IGNORECASE)
- return query
-
class ProjectCLHandler(GenericProjectHandler):
@swagger.operation(nickname="listProjects")
@in name: query
@required name: False
"""
- self._list(query=self.set_query())
+ self._list()
@swagger.operation(nickname="createProject")
def post(self):
elif i_k == 'versions.projects.project':
return self._in_scenarios_project(i_v,
content)
+ elif isinstance(v, re._pattern_type):
+ if v.match(content.get(k, None)) is None:
+ return False
elif content.get(k, None) != v:
return False
opnfv_testapi
data_files =
- /etc/opnfv_testapi = etc/config.ini
+# /etc/opnfv_testapi = etc/config.ini
/usr/local/share/opnfv_testapi = 3rd_party/static/*
/usr/local/share/opnfv_testapi/testapi-ui = opnfv_testapi/ui/*