
Here is the patch On 1/31/17 10:36 AM, Aline Manera wrote:
Hrm... Could you send the patch so I can do some debug?
On 01/31/2017 10:32 AM, Ramon Medeiros wrote:
On 1/31/17 10:30 AM, Aline Manera wrote:
Hi Ramon,
Does the WokRoot class have set self.api_schema attribute to get the right data?
It should have something like:
self.api_schema = json.load(<path>)
Regards, Aline Manera
yes, it is:
class WokRoot(Root): def __init__(self, model, dev_env=False): super(WokRoot, self).__init__(model, dev_env) self.default_page = 'wok-ui.html' for ident, node in sub_nodes.items(): setattr(self, ident, node(model)) with open(os.path.join(wok_paths.src_dir, 'API.json')) as f: self.api_schema = json.load(f)
On 01/30/2017 04:41 PM, Ramon Medeiros wrote:
On 1/30/17 3:30 PM, Aline Manera wrote:
Hi Ramon,
There is a function in src/wok/control/utils.py called model_fn() which determines the model function name used by controller. I think you need to use the same function in your code and then update API.json accordingly.
model_fn returned wokroot_login, which i already tried. May i missing something on API.json?
On 01/27/2017 12:26 PM, Ramon Medeiros wrote:
Just adding more information:
at the pdb output, you can see "wokroot_login" as method. I have already tried this one at API.json
On 1/27/17 12:24 PM, Ramon Medeiros wrote: > Propose: valid strings username and password with API.json > > Issue: validator is not recognizing method > > > Just saw that src/wok/control/utils.py has a method > validate_params, that reads API and validate the output of > request_params. I've added this changes to code: > > diff --git a/src/wok/API.json b/src/wok/API.json > index 8965db9..3faa31b 100644 > --- a/src/wok/API.json > +++ b/src/wok/API.json > @@ -2,5 +2,24 @@ > "$schema": "http://json-schema.org/draft-03/schema#", > "title": "Wok API", > "description": "Json schema for Wok API", > - "type": "object" > + "type": "object", > + "properties": { > + "login": { > + "type": "object", > + "properties": { > + "username": { > + "description": "Username", > + "required": true, > + "type": "string", > + "error": "WOKAUTH0003E" > + }, > + "password": { > + "description": "Password", > + "required": true, > + "type": "string", > + "error": "WOKAUTH0003E" > + } > + } > + } > + } > } > diff --git a/src/wok/root.py b/src/wok/root.py > index e4cecae..55e1886 100644 > --- a/src/wok/root.py > +++ b/src/wok/root.py > @@ -32,7 +32,7 @@ from wok.i18n import messages > from wok.config import paths as wok_paths > from wok.control import sub_nodes > from wok.control.base import Resource > -from wok.control.utils import parse_request > +from wok.control.utils import parse_request, validate_params > from wok.exception import MissingParameter, UnauthorizedError > from wok.reqlogger import log_request > > @@ -170,6 +170,8 @@ class WokRoot(Root): > > try: > params = parse_request() > + validate_params(params, self, "login") > username = params['username'] > password = params['password'] > except KeyError, item: > > > Debugging the code, i just saw that the action_name passed to > validate_params (login) is not found by the validator: > > /root/WOK/src/wok/control/utils.py(109)validate_params() > -> validator.validate(request) > (Pdb) s > --Call-- > > > /usr/lib/python2.7/site-packages/jsonschema/validators.py(121)validate() > > -> def validate(self, *args, **kwargs): > (Pdb) n > > > /usr/lib/python2.7/site-packages/jsonschema/validators.py(122)validate() > > -> for error in self.iter_errors(*args, **kwargs): > (Pdb) s > --Call-- > > > /usr/lib/python2.7/site-packages/jsonschema/validators.py(78)iter_errors() > -> def iter_errors(self, instance, _schema=None): > (Pdb) n > > > /usr/lib/python2.7/site-packages/jsonschema/validators.py(79)iter_errors() > -> if _schema is None: > (Pdb) > > > /usr/lib/python2.7/site-packages/jsonschema/validators.py(80)iter_errors() > -> _schema = self.schema > (Pdb) > > > /usr/lib/python2.7/site-packages/jsonschema/validators.py(82)iter_errors() > -> scope = _schema.get(u"id") > (Pdb) > > > /usr/lib/python2.7/site-packages/jsonschema/validators.py(83)iter_errors() > -> if scope: > (Pdb) print _schema > {u'$schema': u'http://json-schema.org/draft-03/schema#', > u'type': u'object', u'description': u'Json schema for Wok API', > u'properties': {u'wokroot_login': {u'type': u'object', > u'properties': {u'username': {u'required': True, u'type': > u'string', u'description': u'Username', u'error': > u'WOKAUTH0003E'}, u'password': {u'required': True, u'type': > u'string', u'description': u'Password', u'error': > u'WOKAUTH0003E'}}}}, u'title': u'Wok API'} > (Pdb) n > > > /usr/lib/python2.7/site-packages/jsonschema/validators.py(85)iter_errors() > -> try: > (Pdb) > > > /usr/lib/python2.7/site-packages/jsonschema/validators.py(86)iter_errors() > -> ref = _schema.get(u"$ref") > > How i can know the correct one? > > _______________________________________________ > Kimchi-devel mailing list > Kimchi-devel@ovirt.org > http://lists.ovirt.org/mailman/listinfo/kimchi-devel >
_______________________________________________ Kimchi-devel mailing list Kimchi-devel@ovirt.org http://lists.ovirt.org/mailman/listinfo/kimchi-devel