def register_data_models(model_dir, root_resource, verbose=False): """ Register any imported YANG modes with flask :param model_dir: (string) Directory containing code-generated models :param root_resource: (string) Base API resource. Ie 'restconf', 'top/restconf', ... :param verbose: (int) Enables verbose output """ # Import them first _import_data_models(model_dir, verbose=False) # Now register a base URL to catch them all # TODO: Work with the regular expression custom converter and see if we can get it to do better parsing data_base = '/%s/data' % root_resource data_url = '/%s/data<wildcard:path>' % root_resource data_url_regex = '/%s/data<regex():path>' % root_resource app.add_url_rule(data_url, view_func=_data_get, methods=['GET']) for model in data_models: if verbose: print '[%s] Registering YANG model path' % model.name model_dir = '%s/%s' % (data_base, model.name) _path_to_model[model_dir] = model
def register_top_level_resource(root_resource, verbose=False): """ Retrieve the Top-level API Resource """ # Register with flask app.add_url_rule(root_resource, view_func=_top_level_api_get, methods=['GET'])
def register_yang_library_version(root_resource, verbose=False): """ This mandatory leaf identifies the revision date of the "ietf-yang-library" YANG module that is implemented by this server. :param root_resource: TODO: Comment this :param verbose: (int) Enables verbose output """ yang_ibrary = YangLibrary(data_models) for model in data_models: pass # TODO The IETF YANG Library modules supports notifications. Do we want to support this? # Register with flask lib_dir = '/%s/yang-library-version:modules' % root_resource app.add_url_rule(lib_dir, view_func=_yang_library_get, methods=['GET'])