Пример #1
0
def _compile_dependecies(user, modules):
    """ Compile affected modules """
    logging.debug('Compiling dependency ..')
    
    yangdst = _get_yang_path(user)
    dfile = os.path.join(yangdst, 'dependencies.xml')
    if not os.path.exists(dfile):
        logging.debug('Dependency file not found!!')
        return

    dmodules = Set([])
    dgraph = DYGraph(dfile)
    for m in modules:
        module = dgraph.dependency_module(m)
        if module is None:
            continue
        for name in module.imports:
            dmodules.add(name) 
        for name in module.depends:
            dmodules.add(name)

    dmodules_list = list(dmodules)
    for yangfile in glob.glob(os.path.join(yangdst, '*.yang')):
        basename = os.path.basename(yangfile)
        #skip dependency module itself
        if basename in modules:
            continue

        base = os.path.splitext(basename)[0]
        if '@' in base:
            base = base.split('@')[0]
        if base in dmodules_list:
            (rc, msgs) = Compiler.compile_cxml(user, None, yangfile)
Пример #2
0
def sync_file(user, session, filename, index):
    """ Compile yang module """
    if index == '0':
        logging.debug('Compiling session dependency ...')
        Compiler.compile_pyimport(user, session)

    _file = os.path.join(_get_session_path(session), filename)
    if os.path.exists(_file):
        (rc, msgs) = Compiler.compile_cxml(user, session, _file)
    else:
        logging.error('sync_file: File %s not found ' % filename)
        (rc, msgs) = (False, None)
    return (rc, msgs)
Пример #3
0
def _compile_dependecies(user, modules, session=None):
    """ Compile affected modules """
    logging.debug('_compile_dependecies: enter')

    dmodules_list = Compiler.get_dependencies(user, modules, session)
    if not dmodules_list:
        logging.debug('_compile_dependecies: no dependency found !!')
        return

    # strip file path
    dmodules = []
    for m in dmodules_list:
        base_m = os.path.basename(m)
        base_m = os.path.splitext(base_m)[0]
        if '@' in base_m:
            base_m = base_m.split('@')[0]
        dmodules.append(base_m)

    yangdst = ServerSettings.yang_path(user)
    for yangfile in glob.glob(os.path.join(yangdst, '*.yang')):
        basename = os.path.basename(yangfile)

        # skip dependency module itself
        if basename in modules: continue

        base = os.path.splitext(basename)[0]
        if '@' in base: base = base.split('@')[0]

        if base in dmodules:
            # ignore some common files
            if base in ignore_list:
                logging.debug('Compile dependency: ignoring ' + base)
                continue
            Compiler.compile_cxml(user, None, yangfile)

    logging.debug('_compile_dependecies: done')
Пример #4
0
def _compile_dependecies(user, modules, session=None):
    """ Compile affected modules """
    logging.debug('_compile_dependecies: enter')

    dmodules_list = Compiler.get_dependencies(user, modules, session)
    if not dmodules_list:
        logging.debug('_compile_dependecies: no dependency found !!')
        return

    #strip file path
    dmodules = []
    for m in dmodules_list:
        base_m = os.path.basename(m)
        base_m = os.path.splitext(base_m)[0]
        if '@' in base_m:
            base_m = base_m.split('@')[0]
        dmodules.append(base_m)

    yangdst = ServerSettings.yang_path(user)
    for yangfile in glob.glob(os.path.join(yangdst, '*.yang')):
        basename = os.path.basename(yangfile)

        #skip dependency module itself
        if basename in modules: continue

        base = os.path.splitext(basename)[0]
        if '@' in base: base = base.split('@')[0]

        if base in dmodules:
            # ignore some common files
            if base in ignore_list:
                logging.debug('Compile dependency: ignoring ' + base)
                continue
            Compiler.compile_cxml(user, None, yangfile)

    logging.debug('_compile_dependecies: done')
Пример #5
0
def sync_file(user, session, filename, index):
    """ Compile yang module """
    if index == '0':
        logging.debug('Compiling session dependency ...')
        (rc, msg) = Compiler.compile_pyimport(user, session)
        if not rc:
            return (rc, msg)

    _file = os.path.join(ServerSettings.session_path(session), filename)
    if os.path.exists(_file):
        (rc, msgs) = Compiler.compile_cxml(user, session, _file)
    else:
        logging.error('sync_file: File %s not found ' % filename)
        (rc, msgs) = (False, None)
    return (rc, msgs)