Remove code for backuprestore 07/109307/2
authorOleksandr Zharov <oleksandr.zharov@pantheon.tech>
Wed, 13 Dec 2023 14:27:01 +0000 (15:27 +0100)
committerSangwook Ha <sangwook.ha@verizon.com>
Tue, 9 Jan 2024 17:24:48 +0000 (09:24 -0800)
Removed code for no more active backuprestore project.

JIRA: INTTEST-140
Change-Id: Ifd69475d6858c25c5437ae2a262d4e2ff4cdaaae
Signed-off-by: Oleksandr Zharov <oleksandr.zharov@pantheon.tech>
27 files changed:
csit/libraries/BackupRestoreKeywords.robot [deleted file]
csit/libraries/backuprestore/JsonDiffTool.py [deleted file]
csit/libraries/backuprestore/README.txt [deleted file]
csit/libraries/backuprestore/backuprestoretest.py [deleted file]
csit/libraries/backuprestore/jsonpathl.py [deleted file]
csit/libraries/backuprestore/testinput/arrayThreeNamesSorted.json [deleted file]
csit/libraries/backuprestore/testinput/arrayTwoNames.json [deleted file]
csit/libraries/backuprestore/testinput/arrayTwoNamesCopy.json [deleted file]
csit/libraries/backuprestore/testinput/arrayTwoNamesReversed.json [deleted file]
csit/libraries/backuprestore/testinput/filterThreeArray.conf [deleted file]
csit/libraries/backuprestore/testinput/mainTestCase/json_postfilter.conf [deleted file]
csit/libraries/backuprestore/testinput/mainTestCase/json_prefilter.conf [deleted file]
csit/libraries/backuprestore/testinput/mainTestCase/json_prefilter_two_matches.conf [deleted file]
csit/libraries/backuprestore/testinput/mainTestCase/json_prefilter_zero_matches.conf [deleted file]
csit/libraries/backuprestore/testinput/mainTestCase/odl_backup_operational_after.json [deleted file]
csit/libraries/backuprestore/testinput/mainTestCase/odl_backup_operational_before.json [deleted file]
csit/libraries/backuprestore/testinput/patchAfter.json [deleted file]
csit/libraries/backuprestore/testinput/patchBefore.json [deleted file]
csit/libraries/backuprestore/testinput/patchReference.json [deleted file]
csit/libraries/backuprestore/testinput/setTwoNames.json [deleted file]
csit/libraries/backuprestore/testinput/setTwoNamesExtraAttrib.json [deleted file]
csit/libraries/backuprestore/testinput/setTwoNamesReversed.json [deleted file]
csit/suites/backuprestore/br-basic/010__br_library_keywords.robot [deleted file]
csit/suites/backuprestore/br-basic/020__br_sfc_tests.robot [deleted file]
csit/variables/backuprestore/BackupRestoreVariables.robot [deleted file]
csit/variables/backuprestore/json_prefilter.conf [deleted file]
csit/variables/backuprestore/json_prefilter_matching_basic.json [deleted file]

diff --git a/csit/libraries/BackupRestoreKeywords.robot b/csit/libraries/BackupRestoreKeywords.robot
deleted file mode 100644 (file)
index 5b9345f..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-*** Settings ***
-Library     OperatingSystem
-Library     SSHLibrary
-Library     Collections
-Library     RequestsLibrary
-Library     backuprestore/JsonDiffTool.py
-Resource    ClusterManagement.robot
-Resource    ../variables/daexim/DaeximVariables.robot
-Resource    DaeximKeywords.robot
-Resource    ../variables/backuprestore/BackupRestoreVariables.robot
-Resource    ../variables/Variables.robot
-Resource    Utils.robot
-
-
-*** Keywords ***
-Set Global Variable If It Does Not Exist
-    [Documentation]    Checks whether a given variable has been defined. If it does not, sets the passed value to that global variable
-    [Arguments]    ${name}    ${value}
-    ${status}    ${message}=    Run Keyword And Ignore Error    Variable Should Exist    ${name}
-    IF    "${status}" == "FAIL"    Set Global Variable    ${name}    ${value}
-
-Perform Export
-    [Documentation]    schedule a basic export/backup, waiting for completion
-    [Tags]    create backup
-    [Arguments]    ${controller_index}
-    DaeximKeywords.Schedule Export    ${controller_index}
-    DaeximKeywords.Verify Export Status    ${EXPORT_SCHEDULED_STATUS}    ${controller_index}
-    Builtin.Wait Until Keyword Succeeds
-    ...    10 sec
-    ...    5 sec
-    ...    DaeximKeywords.Verify Export Status
-    ...    ${EXPORT_COMPLETE_STATUS}
-    ...    ${controller_index}
-    DaeximKeywords.Verify Export Files    ${controller_index}
-
-ConditionalBackupRestoreCheck
-    [Documentation]    When enabled, performs a datastore export, then a backup, then a restore, then an export. The check is considered to be failed when exports before and after are different (two different json path files can be passed in order to filter certain subtrees from the export files before / after the export)
-    [Arguments]    ${exclusionsConfigBefore}=${EMPTY}    ${exclusionsConfigAfter}=${EMPTY}    ${exclusionsOperationalBefore}=${EMPTY}    ${exclusionsOperationalAfter}=${EMPTY}    ${odlControllerIndex}=${FIRST_CONTROLLER_INDEX}
-    Set Global Variable If It Does Not Exist    \${BR_TESTING_ENABLED}    FALSE
-    IF    '${BR_TESTING_ENABLED}'!='true'    RETURN
-    BackupRestoreCheck
-    ...    ${exclusionsConfigBefore}
-    ...    ${exclusionsConfigAfter}
-    ...    ${exclusionsOperationalBefore}
-    ...    ${exclusionsOperationalAfter}
-    ...    ${odlControllerIndex}
-
-BackupRestoreCheck
-    [Documentation]    When enabled, performs a datastore export, then a backup, then a restore, then an export. The check is considered to be failed when exports before and after are different (two different json path files can be passed in order to filter certain subtrees from the export files before / after the export)
-    [Arguments]    ${exclusionsConfigBefore}=${EMPTY}    ${exclusionsConfigAfter}=${EMPTY}    ${exclusionsOperationalBefore}=${EMPTY}    ${exclusionsOperationalAfter}=${EMPTY}    ${odlControllerIndex}=${FIRST_CONTROLLER_INDEX}
-    Log    Performing backup-restore check
-    ${ARG_CONFIG_BEFORE}=    Set Variable    ' '
-    ${ARG_CONFIG_AFTER}=    Set Variable    ' '
-    ${ARG_OPER_BEFORE}=    Set Variable    ' '
-    ${ARG_OPER_AFTER}=    Set Variable    ' '
-    IF    '${exclusionsConfigBefore}'!='${EMPTY}'
-        ${ARG_CONFIG_BEFORE}=    '${exclusionsConfigBefore}'
-    ELSE
-        ${ARG_CONFIG_BEFORE}=    Set Variable    ${None}
-    END
-    IF    '${exclusionsConfigAfter}'!='${EMPTY}'
-        ${ARG_CONFIG_AFTER}=    '${exclusionsConfigAfter}'
-    ELSE
-        ${ARG_CONFIG_AFTER}=    Set Variable    ${None}
-    END
-    IF    '${exclusionsOperationalBefore}'!='${EMPTY}'
-        ${ARG_OPER_BEFORE}=    Normalize Path    ${CURDIR}/${exclusionsOperationalBefore}
-    ELSE
-        ${ARG_OPER_BEFORE}=    Set Variable    ${None}
-    END
-    IF    '${exclusionsOperationalAfter}'!='${EMPTY}'
-        ${ARG_OPER_AFTER}=    Normalize Path    ${CURDIR}/${exclusionsOperationalAfter}
-    ELSE
-        ${ARG_OPER_AFTER}=    Set Variable    ${None}
-    END
-    ${controller_index}=    Builtin.Convert To Integer    ${odlControllerIndex}
-    Perform Export    ${controller_index}
-    ${host}=    ClusterManagement.Resolve IP Address For Member    ${controller_index}
-    ${directory_exist}=    Builtin.Run Keyword And Return Status
-    ...    OperatingSystem.Directory Should Exist
-    ...    ${EXP_DIR}/${RELATIVE_BEFORE_BACKUP_DIR}
-    IF    ${directory_exist}
-        Cleanup Directory    ${EXP_DIR}/${RELATIVE_BEFORE_BACKUP_DIR}
-    END
-    Copy Export Directory To Test VM    ${host}
-    OperatingSystem.Move Directory    ${EXP_DIR}${host}    ${EXP_DIR}/${RELATIVE_BEFORE_BACKUP_DIR}
-    #
-    # TODO: Insert The Backup + Restore call here
-    #
-    Log    doing the second export!
-    Perform Export    ${controller_index}
-    Copy Export Directory To Test VM    ${host}
-    ${directory_exist}=    Builtin.Run Keyword And Return Status
-    ...    OperatingSystem.Directory Should Exist
-    ...    ${EXP_DIR}/${RELATIVE_AFTER_RESTORE_DIR}
-    IF    ${directory_exist}
-        Cleanup Directory    ${EXP_DIR}/${RELATIVE_AFTER_RESTORE_DIR}
-    END
-    OperatingSystem.Move Directory    ${EXP_DIR}${host}    ${EXP_DIR}/${RELATIVE_AFTER_RESTORE_DIR}
-    log    "Performing comparison"
-    ${differencesConfigDatastore}=    Json Diff Check Keyword
-    ...    ${EXP_DIR}/${RELATIVE_BEFORE_BACKUP_DIR}/${EXP_DATA_FILE}
-    ...    ${EXP_DIR}/${RELATIVE_AFTER_RESTORE_DIR}/${EXP_DATA_FILE}
-    ...    ${ARG_CONFIG_BEFORE}
-    ...    ${ARG_CONFIG_AFTER}
-    ${differencesOperationalDatastore}=    Json Diff Check Keyword
-    ...    ${EXP_DIR}/${RELATIVE_BEFORE_BACKUP_DIR}/${EXP_OPER_FILE}
-    ...    ${EXP_DIR}/${RELATIVE_AFTER_RESTORE_DIR}/${EXP_OPER_FILE}
-    ...    ${ARG_OPER_BEFORE}
-    ...    ${ARG_OPER_AFTER}
-    Should Be Equal
-    ...    '0'
-    ...    '${differencesConfigDatastore}'
-    ...    Error: Diferences found in the config DS before backup / after restore
-    Should Be Equal
-    ...    '0'
-    ...    '${differencesOperationalDatastore}'
-    ...    Error: Diferences found in the config DS before backup / after restore
diff --git a/csit/libraries/backuprestore/JsonDiffTool.py b/csit/libraries/backuprestore/JsonDiffTool.py
deleted file mode 100644 (file)
index 9d6aac4..0000000
+++ /dev/null
@@ -1,247 +0,0 @@
-import argparse
-import logging
-import jsonpatch
-import json
-from jsonpathl import jsonpath
-import types
-import sys
-
-
-"""
-Library for checking differences between json files,
-allowing pre-filtering those files using a number
-of jsonpath expressions
-This library supports the automated verification
-of backup & restore use cases for applications
-Updated: 2017-04-10
-"""
-
-__author__ = "Diego Granados"
-__copyright__ = "Copyright(c) 2017, Ericsson."
-__license__ = "New-style BSD"
-__email__ = "diego.jesus.granados.lopez@ericsson.com"
-
-
-def from_path_to_jsonpatch(matchedpath):
-    """Given a json path (using jsonpath notation), to a json patch (RFC 6902)
-    which can be used to remove the document fragment pointed by the input path
-    Note that such conversion is not formally specified anywhere, so the conversion
-    rules are experimentation-based
-
-    :param matchedpath: the input path (using jsonpath notation, see http://goessner.net/articles/JsonPath)
-    :return: the corresponding json patch for removing the fragment
-    """
-
-    logging.info("starting. filter path: %s", matchedpath)
-
-    # First step: path format change
-    # typical input: $['ietf-yang-library:modules-state']['module'][57]
-    # desired output: /ietf-yang-library:modules-state/module/57
-
-    matchedpath = matchedpath.replace("$.", "/")
-    matchedpath = matchedpath.replace("$['", "/")
-    matchedpath = matchedpath.replace("']['", "/")
-    matchedpath = matchedpath.replace("']", "/")
-
-    # this one is for the $[2] pattern
-    if "$[" in matchedpath and "]" in matchedpath:
-        matchedpath = matchedpath.replace("$[", "/")
-        matchedpath = matchedpath.replace("]", "")
-
-    matchedpath = matchedpath.replace("[", "")
-    matchedpath = matchedpath.replace("]", "")
-    matchedpath = matchedpath.rstrip("/")
-
-    # Now, for input: /ietf-yang-library:modules-state/module/57
-    # desired output: [{"op":"remove","path":"/ietf-yang-library:modules-state/module/57"}]
-
-    logging.info("final filter path: %s", matchedpath)
-    as_patch = '[{{"op":"remove","path":"{0}"}}]'.format(matchedpath)
-    logging.info("generated patch line: %s", as_patch)
-    return as_patch
-
-
-def apply_filter(json_arg, filtering_line):
-    """Filters a json document by removing the elements identified by a filtering pattern
-
-    :param json_arg: the document to filter
-    :param filtering_line: The filtering pattern. This is specified using jsonpath notation grammar
-            (see http://goessner.net/articles/JsonPath/)
-    :return: the filtered document
-    """
-
-    logging.info("apply_filter:starting. jsonPath filter=[%s]", filtering_line)
-
-    res = jsonpath(json_arg, filtering_line, result_type="PATH")
-    if isinstance(res, types.BooleanType) or len(res) == 0:
-        logging.info("apply_filter: The prefilter [%s] matched nothing", filtering_line)
-        return json_arg
-    if len(res) > 1:
-        raise AssertionError(
-            "Bad pre-filter [%s] (returned [%d] entries, should return one at most",
-            filtering_line,
-            len(res),
-        )
-    as_json_patch = from_path_to_jsonpatch(res[0])
-    logging.info("apply_filter: applying patch! resolved patch =%s", as_json_patch)
-    patched_json = jsonpatch.apply_patch(json_arg, as_json_patch)
-
-    logging.info("apply_filter: json after patching: %s", patched_json)
-    return patched_json
-
-
-def prefilter(json_arg, initial_prefilter):
-    """Performs the prefiltering of a json file
-    :param json_arg: the json document to filter (as string)
-        :type json_arg: str
-    :param initial_prefilter: a file containing a number of filtering patterns (using jsonpath notation)
-    :return: the original document, python-deserialized and having the fragments
-        matched by the filtering patterns removed
-    """
-
-    if not initial_prefilter:
-        logging.info("prefilter not found!")
-        # whether it is filtered or not, return as json so it can be handled uniformly from now on
-        return json.loads(json_arg)
-
-    with open(initial_prefilter) as f:
-        lines = f.read().splitlines()
-    logging.info("prefilter:lines in prefilter file: %d ", len(lines))
-    lines = filter(lambda k: not k.startswith("#"), lines)
-    logging.info("prefilter:lines after removing comments: %d ", len(lines))
-    json_args_as_json = json.loads(json_arg)
-    for filtering_line in lines:
-        json_args_as_json = apply_filter(json_args_as_json, filtering_line)
-
-    return json_args_as_json
-
-
-def prefilter_json_files_then_compare(args):
-    """Main function. Prefilters the input files using provided prefiltering patterns,
-        then returns number of differences (and the differences themselves, when requested)
-
-    :param args: Input arguments, already parsed
-    :return: the number of differences (from a jsonpatch standpoint) between the input
-             json files (those input files can be prefiltered using a number of patterns when
-             requested)
-    """
-
-    logging.info("prefilter_json_files_then_compare: starting!")
-    with open(args.initialFile) as f:
-        json_initial = file.read(f)
-    with open(args.finalFile) as f2:
-        json_final = file.read(f2)
-
-    patch = jsonpatch.JsonPatch.from_diff(json_initial, json_final)
-    logging.info(
-        "prefilter_json_files_then_compare:differences before patching: %d",
-        len(list(patch)),
-    )
-
-    json_initial_filtered = prefilter(json_initial, args.initial_prefilter)
-    json_final_filtered = prefilter(json_final, args.finalPreFilter)
-
-    patch_after_filtering = jsonpatch.JsonPatch.from_diff(
-        json_initial_filtered, json_final_filtered
-    )
-    differences_after_patching = list(patch_after_filtering)
-    logging.info(
-        "prefilter_json_files_then_compare: differences after patching: %d",
-        len(differences_after_patching),
-    )
-
-    if args.printDifferences:
-        for patchline in differences_after_patching:
-            print(json.dumps(patchline))
-
-    print(len(differences_after_patching))
-    return len(differences_after_patching)
-
-
-def Json_Diff_Check_Keyword(json_before, json_after, filter_before, filter_after):
-    input_argv = [
-        "-i",
-        json_before,
-        "-f",
-        json_after,
-        "-ipf",
-        filter_before,
-        "-fpf",
-        filter_after,
-        "-pd",
-    ]
-    sys.argv[1:] = input_argv
-    logging.info("starting. constructed command line: %s", sys.argv)
-    return Json_Diff_Check()
-
-
-def parse_args(args):
-    parser = argparse.ArgumentParser(
-        description="both initial and final json files are compared for differences. "
-        "The program returns 0 when the json contents are the same, or the "
-        "number of"
-        " differences otherwise. Both json files can be prefiltered for "
-        "certain patterns"
-        " before checking the differences"
-    )
-
-    parser.add_argument(
-        "-i",
-        "--initialFile",
-        required="true",
-        dest="initialFile",
-        action="store",
-        help="initial json file",
-    )
-    parser.add_argument(
-        "-f",
-        "--finalFile",
-        required="true",
-        dest="finalFile",
-        action="store",
-        help="final json file",
-    )
-    parser.add_argument(
-        "-ipf",
-        "--initial_prefilter",
-        dest="initial_prefilter",
-        help="File with pre-filtering patterns to apply to the initial json file before comparing",
-    )
-    parser.add_argument(
-        "-fpf",
-        "--finalPreFilter",
-        dest="finalPreFilter",
-        help="File with pre-filtering patterns to apply to the final json file before comparing",
-    )
-    parser.add_argument(
-        "-pd",
-        "--printDifferences",
-        action="store_true",
-        help="on differences found, prints the list of paths for the found differences before exitting",
-    )
-    parser.add_argument(
-        "-v",
-        "--verbose",
-        dest="verbose",
-        action="store_true",
-        help="generate log information",
-    )
-    return parser.parse_args(args)
-
-
-def Json_Diff_Check():
-    args = parse_args(sys.argv[1:])
-
-    if hasattr(args, "verbose"):
-        if args.verbose:
-            logging.basicConfig(level=logging.DEBUG)
-
-    if args.printDifferences:
-        logging.info("(will print differences)")
-
-    result = prefilter_json_files_then_compare(args)
-    return result
-
-
-if __name__ == "__main__":
-    Json_Diff_Check()
diff --git a/csit/libraries/backuprestore/README.txt b/csit/libraries/backuprestore/README.txt
deleted file mode 100644 (file)
index 1f4d410..0000000
+++ /dev/null
@@ -1,232 +0,0 @@
-== Backup-Restore test support library ==
-
-=== 1. Introduction ===
-
-The purpose of this library is to allow the generic verification
-of feature correctness in backup + restore scenarios.
-
-A feature is correct from a backup+restore standpoint when,
-at any provisioning point, a controller backup, followed by a
-restore, can be performed, and the execution of that procedure
-will not have any impact on traffic tests or datastore state
-check in respect to the expected behaviour when no backup + restore
-procedures are performed.
-
-The library can also be used (with minimal modifications) to check
-whether a feature is safe (continues operating correctly) in the
-event of a controller reboot (e.g. SFC is known not to, because of
-keeping certain information (rendered service paths) in the
-operational DS only and being unable to reconstruct that information
-after a reboot).
-
-=== 2. Library usage ===
-
-==== 2.1. Use as Robot Library keywords ====
-
-The library is delivered as a readily-available Robot FW library in
-the ODL integration/test repository. It provides two keywords:
-
-- A new keyword ('''BackupRestoreCheck'''), which:
-
-# Performs a complete datastore export (using Daexim export rpc)
-# Does a backup, then a restore of the backup previously
-  created. NOTE: this step is purposefully not implemented in the
-  keyword (a placeholder for concrete backup & restore scripts is
-  provided instead). ODL does not provide a comprehensive B&R implementation:
-  such implementation shall include both the datastore and certain
-  configuration files, but those configuration files depend on the
-  concrete ODL distribution / deployment, so ODL provides only some
-  pieces to implement that backup (i.e. the datastore backup RPCs).
-  This library is contributed with the purpose of easing the testing
-  of any backup&restore implementation; therefore that implementation
-  shall be incorporated to this library (by modifying this step)
-# Performs a new datastore export
-# Compares both config & operational datastores for differences (that
-  is, pre-backup and post-restore exports for both datastores), optionally
-  prefiltering those exports using pre-filter files (those prefilter files
-  are passed as parameters to the keyword)
-# Fails when pre-backup and post-restore exports are different even after
-  removing the specified filtered parts
-
-- A new keyword ('''ConditionalBackupRestoreCheck'''), which performs
-  the same steps than BackupRestoreCheck only when a command-line flag ("-v
-  BR_TESTING_ENABLED:true") is present. This allows to easily add
-backup-restore verification on existing tests, allowing to toggle
-the execution of that verification
-
-===== 2.1.1. Adding the br verification keyword to an existing robot test =====
-
-The library has been designed from the ground up to allow its use in
-existing testcases, so specific feature provisioning can be tested for
-correctness in backup-restore scenarios. The design premises for the
-library were:
-* To be very easy to incorporate into existing testcases (just one resource
- import + the verification keyword, that shall be inserted in the existing
- testcase just after test specific provisioning and before existing test
-verification steps)
-* To be togglable (that is, to allow whether to execute / to bypass the
-export + backup + restore + export + exports comparison block)
-
-===== 2.1.2. Steps to add backup-restore verification to an existing test suite =====
-1) Suite setup: Add ClusterManagement Setup (it is needed for Daexim export
- to work). Hint: if the testsuite already contains an init suite keyword, you
- can use the Run Keywords construct in order to run both initialization keywords.
-
-(Subsequent examples use diff-format):
-
-*** Settings ***
-Documentation     Test suite for SFC Service Functions, Operates functions from Restconf APIs.
--Suite Setup       Init Suite
-+Suite Setup       Run Keywords    Init Suite    ClusterManagement Setup
-Suite Teardown    Delete All Sessions
-
-2) Import Backup-Restore support library
-
-Resource          ../../../libraries/TemplatedRequests.robot
-+Resource          ../../../libraries/BackupRestoreKeywords.robot
-
-3) Add the verification keyword (after provisioning, before assertions/traffic verification)
-Should Contain    ${ALLOWED_STATUS_CODES}    ${resp.status_code}
-   ${elements}=    Create List    SFC1-100-Path-1    "parent-service-function-path":"SFC1-100"    "hop-number":0    "service-index":255    "ho
-...    "service-index":254    "hop-number":2    "service-index":253
-+    ConditionalBackupRestoreCheck
-Check For Elements At URI    ${OPERATIONAL_RSPS_URI}    ${elements}
-
-4) Execute the suite without passing the enablement flag (or pass it disabled:
-  '-v BR_TESTING_ENABLED:false'). Note how the testcase runs as always
-5)  Execute the suite, now passing the enablement flag ('-v BR_TESTING_ENABLED:true'):
-5.1. If the testcases pass, that means the suite provisioning is safe for B&R
-  (that is, both config and operational DSs are identical before and after the
-  procedure, and any assert / traffic verification the cases perform are also correct.
-5.2. If a testcase fail:
-5.2.1. If it is the ConditionalBackupRestoreCheck keyword what fails: it means
-  differences are found in the datastores before the backup / after the restore. Test
-log should include the list of differences found. Two types of differences:
-5.2.1.1. If differences are non-issues (e.g. elements whose changes are expected
-  after a backup + restore, as elements containing timestamps that are recalculated
-  after the restore, or elements showing transitory states which are not important
-  regarding B&R correctness), then create as many pre-filter entries as necessary
-  in the corresponding prefilter file (4 prefilter files can be passed to the
-  keyword: prefilter for the config DS before the backup, config DS after restore,
-  operational DS before the backup and operational DS after the restore. Repeat until
-  all unimportant DS entries are filtered
-5.2.1.2. Differences found on which the former rule is not applicable should be
-  checked carefully, as they are likely to showcase application bugs (regading B&R /
-  controller reboots)
-5.2.2 Errors in the testcase execution when the BR_TESTING_ENABLED:true flag is
-  passed, in keywords other than the verification keyword, are also candidates to
-  point to application bugs (e.g. because of using runtime-required in-memory
-  state that they fail to reconstruct after the restore), thus requiring careful revision
-
-==== 2.2. Execution as a standalone commandline utility ====
-In scenarios where Robot FW is not used for testing, the library core (this is, the
-prefiltered json comparison) can also be used from the command line. The tool is
-provided as a python commandline utility. Help follows:
-
-  odluser@odluser-VirtualBox:~/odl/test/csit/libraries/backuprestore\> python JsonDiffTool.py -h
-  usage: JsonDiffTool.py [-h] -i INITIALFILE -f FINALFILE [-ipf INITIALPREFILTER] [-fpf FINALPREFILTER] [-pd] [-v]
-  both initial and final json files are compared for differences. The program
-  returns 0 when the json contents are the same, or the number of differences
-  otherwise. Both json files can be prefiltered for certain patterns before
-  checking the differences
-  optional arguments:
-  -h, --help            show this help message and exit
-  -i INITIALFILE, --initialFile INITIALFILE
-                        initial json file
-  -f FINALFILE, --finalFile FINALFILE
-                        final json file
-  -ipf INITIALPREFILTER, --initialPreFilter INITIALPREFILTER
-                        File with pre-filtering patterns to apply to the
-                        initial json file before comparing
-  -fpf FINALPREFILTER, --finalPreFilter FINALPREFILTER
-                        File with pre-filtering patterns to apply to the final
-                        json file before comparing
-  -pd, --printDifferences
-                        on differences found, prints the list of paths for the
-                        found differences before exitting
-  -v, --verbose         generate log information
-
-===== 2.2.1. Command-line usage examples =====
-- Checking for differences between two json files (showing only the number of differences)
-  odluser@odluser-VirtualBox:~/odl/test/csit/libraries/backuprestore\> python JsonDiffTool.py -i ./testinput/arrayTwoNames.json -f ./testinput/arrayThreeNamesSorted.json
-  1
-
-- Checking for differences and displaying the differences (jsonpatch format)
-  odluser@odluser-VirtualBox:~/odl/test/csit/libraries/backuprestore\> python JsonDiffTool.py -i ./testinput/arrayTwoNames.json -f ./testinput/arrayThreeNamesSorted.json -pd
-  {"path": "/2", "value": {"Name": "Tom"}, "op": "add"}
-  1
-
-- Checking for differences (and displaying them), using a pre-filter file for the initial json file
-  odluser@odluser-VirtualBox:~/odl/test/csit/libraries/backuprestore\> python JsonDiffTool.py -i ./testinput/mainTestCase/odl_backup_operational_before.json -f testinput/mainTestCase/odl_backup_operational_after.json -ipf testinput/mainTestCase/json_prefilter.conf -pd
-  {"path": "/entity-owners:entity-owners/entity-type/2", "op": "remove"}
-  {"path": "/entity-owners:entity-owners/entity-type/4", "value": {"type": "iface", "entity": [{"owner": "member-1", "id": "/general-entity:entity[general-entity:name='iface']", "candidate": [{"name": "member-1"}]}]}, "op": "add"}
-  {"path": "/network-topology:network-topology/topology/3", "value": {"node": [{"netconf-node-topology:host": "127.0.0.1", "netconf-node-topology:port": 1830, "netconf-node-topology:connection-status": "connecting", "node-id": "CONTROLLER1"}, {"netconf-node-topology:host": "127.0.0.1", "netconf-node-topology:port": 1830, "netconf-node-topology:connection-status": "connecting", "node-id": "CONTROLLER2"}], "topology-id": "topology-netconf"}, "op": "replace"}
-  {"path": "/ietf-yang-library:modules-state/module-set-id", "value": "3", "op": "replace"}
-  {"path": "/ietf-yang-library:modules-state/module/56", "op": "remove"}
-  {"path": "/ietf-yang-library:modules-state/module/116", "op": "remove"}
-  {"path": "/ietf-yang-library:modules-state/module/127", "op": "remove"}
-  {"path": "/ietf-yang-library:modules-state/module/140", "op": "remove"}
-  {"path": "/ietf-yang-library:modules-state/module/139", "op": "remove"}
-  {"path": "/ietf-yang-library:modules-state/module/185", "op": "remove"}
-  {"path": "/ietf-yang-library:modules-state/module/238", "op": "remove"}
-  {"path": "/ietf-yang-library:modules-state/module/267", "op": "remove"}
-  {"path": "/ietf-yang-library:modules-state/module/269", "op": "remove"}
-  {"path": "/ietf-yang-library:modules-state/module/278", "op": "remove"}
-  {"path": "/ietf-yang-library:modules-state/module/277", "op": "remove"}
-  15
-
-===== 2.2.2. Unit tests =====
-A handful of unit tests (testing both jsonpath - jsonpatch expression transformation,
-difference evaluation, use of filters and error cases) are provided. They can be
-executed as standard python unittests from the commandline:
-
-  odluser@odluser-VirtualBox:~/odl/test/csit/libraries/backuprestore\> python backuprestoretest.py
-  0
-  .2
-  .usage: backuprestoretest.py [-h] -i INITIALFILE -f FINALFILE
-                              [-ipf INITIALPREFILTER] [-fpf FINALPREFILTER]
-                              [-pd] [-v]
-  backuprestoretest.py: error: argument -i/--initialFile is required
-  .14
-  14
-  .16
-  16
-  .16
-  16
-  .1
-  ..16
-  16
-  ...
-  ----------------------------------------------------------------------
-  Ran 11 tests in 0.881s
-  OK
-
-=== 3. Prefilter file format ===
-Prefilter files:
-* Can contain any number of jsonpath expressions ([http://goessner.net/articles/JsonPath/ jsonpath expressions specification])
-* Use "#" as line prefix for comments
-Example:
-  #
-  # Pre-filter file example (removes the module from ietf-yang-library:modules-state which name is 'extension-resync-message')
-  #
-  $.ietf-yang-library:modules-state.module[?(@.name=='extension-resync-message')]
-  # $.ietf-yang-library:modules-state.module[?(@.name=='extension-switchfeatures-message')]
-
-=== 4. Dependencies / discarded alternatives ===
-
-The library includes in the commit itself the jsonpath library by Phil Budne
-(https://pypi.python.org/pypi/jsonpath/). This had to be done in order to rename
-the module (from jsonpath to jsonpathl), because RIDE fails to import a class
-from a module with the same name, which is the case for this library. The library
-license (MIT) allows for including / modifying it, so this inclusion is safe license-wise.
-
-Other alternatives to this library were explored, but were found unfit for the
-purpose. Specifically, we tried to use the popular jsonpath-rw library, but it
-does not support json query filtering by attribute values (only by field names),
-which is a must. Also objectpath, but the library does not support the return of
-the path of matching objects (only matched objects themselves). Those paths are
-required (they are the ones which are transformed into jsonpatch expressions)
-
-jsonpatch library (https://pypi.python.org/pypi/jsonpatch) is expected to be
-installed in order for this library to work. The library is used for removing json
-elements via patches
diff --git a/csit/libraries/backuprestore/backuprestoretest.py b/csit/libraries/backuprestore/backuprestoretest.py
deleted file mode 100644 (file)
index d8f5c58..0000000
+++ /dev/null
@@ -1,237 +0,0 @@
-import unittest
-import sys
-import JsonDiffTool
-
-"""
-Unit tests for the Json Diff Tool library
-Updated: 2017-04-24
-"""
-
-__author__ = "Diego Granados"
-__copyright__ = "Copyright(c) 2017, Ericsson."
-__license__ = "New-style BSD"
-__email__ = "diego.jesus.granados.lopez@ericsson.com"
-
-
-class PathConversionTest(unittest.TestCase):
-    """
-    Conversions from jsonpath paths to jsonpatch patches used to remove the element pointed by the path
-    """
-
-    def testArrayElementConversion(self):
-        self.assertEquals(
-            '[{"op":"remove","path":"/ietf-yang-library:modules-state/module/56"}]',
-            JsonDiffTool.from_path_to_jsonpatch(
-                "/ietf-yang-library:modules-state/module/56"
-            ),
-            "Array element conversion failed!",
-        )
-
-    def testMapValueElementConversion(self):
-        self.assertEquals(
-            '[{"op":"remove","path":"/ietf-yang-library:modules-state/module/blablah"}]',
-            JsonDiffTool.from_path_to_jsonpatch(
-                "/ietf-yang-library:modules-state/module/blablah"
-            ),
-            "Array element conversion failed!",
-        )
-
-
-class JsonDiffToolTest(unittest.TestCase):
-    """
-    Tests for the tool itself, including both command-line and RIDE keyword invokation style
-    """
-
-    def testSimpleDifferenceCountingWithoutFiltering(self):
-        """
-        Identical documents
-        """
-        self.assertEquals(
-            0,
-            JsonDiffTool.Json_Diff_Check_Keyword(
-                "testinput/arrayTwoNames.json",
-                "testinput/arrayTwoNamesCopy.json",
-                "",
-                "",
-            ),
-            "failed! (expected 0 differences)",
-        )
-
-    def testEqualFilesWithScrambledArrayOrder(self):
-        """
-        This is moving an array element from one position to other. RFC 6902 describes this as "moving
-        a value", but this jsonpatch implementation constructs a patch using remove + add. Acceptable though
-        """
-        self.assertEquals(
-            2,
-            JsonDiffTool.Json_Diff_Check_Keyword(
-                "testinput/arrayTwoNames.json",
-                "testinput/arrayTwoNamesReversed.json",
-                "",
-                "",
-            ),
-            "failed! (expected 2 differences)",
-        )
-
-    def testEqualFilesWithChangedAttributeOrder(self):
-        """
-        Attributes in different order. It's not a difference
-        """
-        self.assertEquals(
-            0,
-            JsonDiffTool.Json_Diff_Check_Keyword(
-                "testinput/setTwoNames.json",
-                "testinput/setTwoNamesReversed.json",
-                "",
-                "",
-            ),
-            "failed! (expected 0 differences)",
-        )
-
-    def testSimpleDifferenceSecondFileWithExtraAttrib(self):
-        self.assertEquals(
-            1,
-            JsonDiffTool.Json_Diff_Check_Keyword(
-                "testinput/setTwoNames.json",
-                "testinput/setTwoNamesExtraAttrib.json",
-                "",
-                "",
-            ),
-            "failed! (expected 1 differences)",
-        )
-
-    def testSimpleDifferenceCountingWithoutFiltering(self):
-        """
-        Example coming from a true daexim export. No prefilters used
-        """
-        input_argv = [
-            "-i",
-            "testinput/mainTestCase/odl_backup_operational_before.json",
-            "-f",
-            "testinput/mainTestCase/odl_backup_operational_after.json",
-        ]
-        sys.argv[1:] = input_argv
-        self.assertEquals(
-            16,
-            JsonDiffTool.Json_Diff_Check(),
-            "main failed! expected 16 differences, result was: "
-            + str(JsonDiffTool.Json_Diff_Check()),
-        )
-
-    def testSimpleDifferenceCountingUsingSingleMatchingBeforeFilter(self):
-        """
-        Using a prefilter for the initial file The prefilter contains one expression only
-        """
-        input_argv = [
-            "-i",
-            "testinput/mainTestCase/odl_backup_operational_before.json",
-            "-f",
-            "testinput/mainTestCase/odl_backup_operational_after.json",
-            "-ipf",
-            "testinput/mainTestCase/json_prefilter.conf",
-            "-v",
-        ]
-        sys.argv[1:] = input_argv
-        self.assertEquals(
-            15,
-            JsonDiffTool.Json_Diff_Check(),
-            "main failed! expected 15 differences, result was: "
-            + str(JsonDiffTool.Json_Diff_Check()),
-        )
-
-    def testSimpleDifferenceCountingUsingMatchingBeforeFilterMatchingTwoEntries(self):
-        """
-        Using a prefilter for the initial file The prefilter contains two expressions
-        """
-        input_argv = [
-            "-i",
-            "testinput/mainTestCase/odl_backup_operational_before.json",
-            "-f",
-            "testinput/mainTestCase/odl_backup_operational_after.json",
-            "-ipf",
-            "testinput/mainTestCase/json_prefilter_two_matches.conf",
-            "-v",
-        ]
-        sys.argv[1:] = input_argv
-        self.assertEquals(
-            14,
-            JsonDiffTool.Json_Diff_Check(),
-            "main failed! expected 14 differences, result was: "
-            + str(JsonDiffTool.Json_Diff_Check()),
-        )
-
-    def testSimpleDifferenceCountingUsingSingleMatchingBeforeFilter(self):
-        """
-        Using a prefilter for both initial and final files
-        """
-        input_argv = [
-            "-i",
-            "testinput/mainTestCase/odl_backup_operational_before.json",
-            "-f",
-            "testinput/mainTestCase/odl_backup_operational_after.json",
-            "-ipf",
-            "testinput/mainTestCase/json_prefilter.conf",
-            "-fpf",
-            "testinput/mainTestCase/json_postfilter.conf",
-            "-v",
-        ]
-        sys.argv[1:] = input_argv
-        self.assertEquals(
-            16,
-            JsonDiffTool.Json_Diff_Check(),
-            "main failed! expected 16 differences, result was: "
-            + str(JsonDiffTool.Json_Diff_Check()),
-        )
-
-    def testUsingANonExistingFile(self):
-        """
-        The second file does not exist. Exception expected
-        """
-        self.assertRaises(
-            IOError,
-            JsonDiffTool.Json_Diff_Check_Keyword,
-            "testinput/arrayTwoNames.json",
-            "testinput/thisFileDoesNotExist.json",
-            "",
-            "",
-        )
-
-    def testNotPassingAMandatoryParameter(self):
-        """
-        Both initial and final json files are mandatory
-        """
-        input_argv = ["-f", "testinput/mainTestCase/odl_backup_operational_after.json"]
-        # parser = JsonDiffTool.parseArgs(input_argv)
-
-        with self.assertRaises(SystemExit) as cm:
-            JsonDiffTool.parse_args(input_argv)
-
-        # 2 for missing argument
-        self.assertEqual(cm.exception.code, 2)
-
-    def testUsingNotMatchingFilterExpressions(self):
-        """
-        Using prefilter files whose expressions match nothing
-        """
-        input_argv = [
-            "-i",
-            "testinput/mainTestCase/odl_backup_operational_before.json",
-            "-f",
-            "testinput/mainTestCase/odl_backup_operational_after.json",
-            "-ipf",
-            "testinput/mainTestCase/json_prefilter_zero_matches.conf",
-            "-fpf",
-            "testinput/mainTestCase/json_prefilter_zero_matches.conf",
-            "-v",
-        ]
-        sys.argv[1:] = input_argv
-        self.assertEquals(
-            16,
-            JsonDiffTool.Json_Diff_Check(),
-            "main failed! expected 16 differences, result was: "
-            + str(JsonDiffTool.Json_Diff_Check()),
-        )
-
-
-if __name__ == "__main__":
-    unittest.main()
diff --git a/csit/libraries/backuprestore/jsonpathl.py b/csit/libraries/backuprestore/jsonpathl.py
deleted file mode 100644 (file)
index e5953f1..0000000
+++ /dev/null
@@ -1,368 +0,0 @@
-"""
-An XPath for JSON
-
-A port of the Perl, and JavaScript versions of JSONPath
-see http://goessner.net/articles/JsonPath/
-
-Based on on JavaScript version by Stefan Goessner at:
-        http://code.google.com/p/jsonpath/
-and Perl version by Kate Rhodes at:
-        http://github.com/masukomi/jsonpath-perl/tree/master
-"""
-
-import re
-import sys
-
-__author__ = "Phil Budne"
-__revision__ = "$Revision: 1.13 $"
-__version__ = "0.54"
-
-#   Copyright (c) 2007 Stefan Goessner (goessner.net)
-#       Copyright (c) 2008 Kate Rhodes (masukomi.org)
-#       Copyright (c) 2008-2012 Philip Budne (ultimate.com)
-#   Licensed under the MIT licence:
-#
-#   Permission is hereby granted, free of charge, to any person
-#   obtaining a copy of this software and associated documentation
-#   files (the "Software"), to deal in the Software without
-#   restriction, including without limitation the rights to use,
-#   copy, modify, merge, publish, distribute, sublicense, and/or sell
-#   copies of the Software, and to permit persons to whom the
-#   Software is furnished to do so, subject to the following
-#   conditions:
-#
-#   The above copyright notice and this permission notice shall be
-#   included in all copies or substantial portions of the Software.
-#
-#   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-#   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-#   OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-#   NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-#   HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-#   WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-#   FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-#   OTHER DEALINGS IN THE SOFTWARE.
-
-# XXX BUGS:
-# evalx is generally a crock:
-#       handle !@.name.name???
-# there are probably myriad unexpected ways to get an exception:
-#       wrap initial "trace" call in jsonpath body in a try/except??
-
-# XXX TODO:
-# internally keep paths as lists to preserve integer types
-#       (instead of as ';' delimited strings)
-
-__all__ = ["jsonpath"]
-
-
-# XXX precompile RE objects on load???
-# re_1 = re.compile(.....)
-# re_2 = re.compile(.....)
-
-
-def normalize(x):
-    """normalize the path expression; outside jsonpath to allow testing"""
-    subx = []
-
-    # replace index/filter expressions with placeholders
-    # Python anonymous functions (lambdas) are cryptic, hard to debug
-    def f1(m):
-        n = len(subx)  # before append
-        g1 = m.group(1)
-        subx.append(g1)
-        ret = "[#%d]" % n
-        return ret
-
-    x = re.sub(r"[\['](\??\(.*?\))[\]']", f1, x)
-
-    # added the negative lookbehind -krhodes
-    x = re.sub(r"'?(?<!@)\.'?|\['?", ";", x)
-
-    x = re.sub(r";;;|;;", ";..;", x)
-
-    x = re.sub(r";$|'?\]|'$", "", x)
-
-    # put expressions back
-    def f2(m):
-        g1 = m.group(1)
-        return subx[int(g1)]
-
-    x = re.sub(r"#([0-9]+)", f2, x)
-
-    return x
-
-
-def jsonpath(obj, expr, result_type="VALUE", debug=0, use_eval=True):
-    """traverse JSON object using jsonpath expr, returning values or paths"""
-
-    def s(x, y):
-        """concatenate path elements"""
-        return str(x) + ";" + str(y)
-
-    def isint(x):
-        """check if argument represents a decimal integer"""
-        return x.isdigit()
-
-    def as_path(path):
-        """convert internal path representation to
-        "full bracket notation" for PATH output"""
-        p = "$"
-        for piece in path.split(";")[1:]:
-            # make a guess on how to index
-            # XXX need to apply \ quoting on '!!
-            if isint(piece):
-                p += "[%s]" % piece
-            else:
-                p += "['%s']" % piece
-        return p
-
-    def store(path, object):
-        if result_type == "VALUE":
-            result.append(object)
-        elif result_type == "IPATH":  # Index format path (Python ext)
-            # return list of list of indices -- can be used w/o "eval" or split
-            result.append(path.split(";")[1:])
-        else:  # PATH
-            result.append(as_path(path))
-        return path
-
-    def trace(expr, obj, path):
-        if debug:
-            print("trace", expr, "/", path)
-        if expr:
-            x = expr.split(";")
-            loc = x[0]
-            x = ";".join(x[1:])
-            if debug:
-                print("\t", loc, type(obj))
-            if loc == "*":
-
-                def f03(key, loc, expr, obj, path):
-                    if debug > 1:
-                        print("\tf03", key, loc, expr, path)
-                    trace(s(key, expr), obj, path)
-
-                walk(loc, x, obj, path, f03)
-            elif loc == "..":
-                trace(x, obj, path)
-
-                def f04(key, loc, expr, obj, path):
-                    if debug > 1:
-                        print("\tf04", key, loc, expr, path)
-                    if isinstance(obj, dict):
-                        if key in obj:
-                            trace(s("..", expr), obj[key], s(path, key))
-                    else:
-                        if key < len(obj):
-                            trace(s("..", expr), obj[key], s(path, key))
-
-                walk(loc, x, obj, path, f04)
-            elif loc == "!":
-                # Perl jsonpath extension: return keys
-                def f06(key, loc, expr, obj, path):
-                    if isinstance(obj, dict):
-                        trace(expr, key, path)
-
-                walk(loc, x, obj, path, f06)
-            elif isinstance(obj, dict) and loc in obj:
-                trace(x, obj[loc], s(path, loc))
-            elif isinstance(obj, list) and isint(loc):
-                iloc = int(loc)
-                if len(obj) >= iloc:
-                    trace(x, obj[iloc], s(path, loc))
-            else:
-                # [(index_expression)]
-                if loc.startswith("(") and loc.endswith(")"):
-                    if debug > 1:
-                        print("index", loc)
-                    e = evalx(loc, obj)
-                    trace(s(e, x), obj, path)
-                    return
-
-                # ?(filter_expression)
-                if loc.startswith("?(") and loc.endswith(")"):
-                    if debug > 1:
-                        print("filter", loc)
-
-                    def f05(key, loc, expr, obj, path):
-                        if debug > 1:
-                            print("f05", key, loc, expr, path)
-                        if isinstance(obj, dict):
-                            eval_result = evalx(loc, obj[key])
-                        else:
-                            eval_result = evalx(loc, obj[int(key)])
-                        if eval_result:
-                            trace(s(key, expr), obj, path)
-
-                    loc = loc[2:-1]
-                    walk(loc, x, obj, path, f05)
-                    return
-
-                m = re.match(r"(-?[0-9]*):(-?[0-9]*):?(-?[0-9]*)$", loc)
-                if m:
-                    if isinstance(obj, (dict, list)):
-
-                        def max(x, y):
-                            if x > y:
-                                return x
-                            return y
-
-                        def min(x, y):
-                            if x < y:
-                                return x
-                            return y
-
-                        objlen = len(obj)
-                        s0 = m.group(1)
-                        s1 = m.group(2)
-                        s2 = m.group(3)
-
-                        # XXX int("badstr") raises exception
-                        start = int(s0) if s0 else 0
-                        end = int(s1) if s1 else objlen
-                        step = int(s2) if s2 else 1
-
-                        if start < 0:
-                            start = max(0, start + objlen)
-                        else:
-                            start = min(objlen, start)
-                        if end < 0:
-                            end = max(0, end + objlen)
-                        else:
-                            end = min(objlen, end)
-
-                        for i in xrange(start, end, step):
-                            trace(s(i, x), obj, path)
-                    return
-
-                # after (expr) & ?(expr)
-                if loc.find(",") >= 0:
-                    # [index,index....]
-                    for piece in re.split(r"'?,'?", loc):
-                        if debug > 1:
-                            print("piece", piece)
-                        trace(s(piece, x), obj, path)
-        else:
-            store(path, obj)
-
-    def walk(loc, expr, obj, path, funct):
-        if isinstance(obj, list):
-            for i in xrange(0, len(obj)):
-                funct(i, loc, expr, obj, path)
-        elif isinstance(obj, dict):
-            for key in obj:
-                funct(key, loc, expr, obj, path)
-
-    def evalx(loc, obj):
-        """eval expression"""
-
-        if debug:
-            print("evalx", loc)
-
-        # a nod to JavaScript. doesn't work for @.name.name.length
-        # Write len(@.name.name) instead!!!
-        loc = loc.replace("@.length", "len(__obj)")
-
-        loc = loc.replace("&&", " and ").replace("||", " or ")
-
-        # replace !@.name with 'name' not in obj
-        # XXX handle !@.name.name.name....
-        def notvar(m):
-            return "'%s' not in __obj" % m.group(1)
-
-        loc = re.sub(r"!@\.([a-zA-Z@_]+)", notvar, loc)
-
-        # replace @.name.... with __obj['name']....
-        # handle @.name[.name...].length
-        def varmatch(m):
-            def brackets(elts):
-                ret = "__obj"
-                for e in elts:
-                    if isint(e):
-                        ret += "[%s]" % e  # ain't necessarily so
-                    else:
-                        ret += "['%s']" % e  # XXX beware quotes!!!!
-                return ret
-
-            g1 = m.group(1)
-            elts = g1.split(".")
-            if elts[-1] == "length":
-                return "len(%s)" % brackets(elts[1:-1])
-            return brackets(elts[1:])
-
-        loc = re.sub(r"(?<!\\)(@\.[a-zA-Z@_.]+)", varmatch, loc)
-
-        # removed = -> == translation
-        # causes problems if a string contains =
-
-        # replace @  w/ "__obj", but \@ means a literal @
-        loc = re.sub(r"(?<!\\)@", "__obj", loc).replace(r"\@", "@")
-        if not use_eval:
-            if debug:
-                print("eval disabled")
-            raise Exception("eval disabled")
-        if debug:
-            print("eval", loc)
-        try:
-            # eval w/ caller globals, w/ local "__obj"!
-            v = eval(loc, caller_globals, {"__obj": obj})
-        except Exception as e:
-            if debug:
-                print(e)
-        return False
-
-        if debug:
-            print("->", v)
-        return v
-
-    # body of jsonpath()
-
-    # Get caller globals so eval can pick up user functions!!!
-    caller_globals = sys._getframe(1).f_globals
-    result = []
-    if expr and obj:
-        cleaned_expr = normalize(expr)
-        if cleaned_expr.startswith("$;"):
-            cleaned_expr = cleaned_expr[2:]
-
-        # XXX wrap this in a try??
-        trace(cleaned_expr, obj, "$")
-
-        if len(result) > 0:
-            return result
-    return False
-
-
-if __name__ == "__main__":
-    try:
-        import json  # v2.6
-    except ImportError:
-        import simplejson as json
-
-    import sys
-
-    # XXX take options for output format, output file, debug level
-
-    if len(sys.argv) < 3 or len(sys.argv) > 4:
-        sys.stdout.write("Usage: jsonpath.py FILE PATH [OUTPUT_TYPE]\n")
-        sys.exit(1)
-
-    object = json.load(file(sys.argv[1]))
-    path = sys.argv[2]
-    format = "VALUE"
-
-    if len(sys.argv) > 3:
-        # XXX verify?
-        format = sys.argv[3]
-
-    value = jsonpath(object, path, format)
-
-    if not value:
-        sys.exit(1)
-
-    f = sys.stdout
-    json.dump(value, f, sort_keys=True, indent=1)
-    f.write("\n")
-
-    sys.exit(0)
diff --git a/csit/libraries/backuprestore/testinput/arrayThreeNamesSorted.json b/csit/libraries/backuprestore/testinput/arrayThreeNamesSorted.json
deleted file mode 100644 (file)
index 8b15e47..0000000
+++ /dev/null
@@ -1 +0,0 @@
-[{"Name": "John"},{"Name": "Mark"}, {"Name": "Tom"}]
diff --git a/csit/libraries/backuprestore/testinput/arrayTwoNames.json b/csit/libraries/backuprestore/testinput/arrayTwoNames.json
deleted file mode 100644 (file)
index 3e35dc6..0000000
+++ /dev/null
@@ -1 +0,0 @@
-[{"Name": "John"},{"Name": "Mark"}]
diff --git a/csit/libraries/backuprestore/testinput/arrayTwoNamesCopy.json b/csit/libraries/backuprestore/testinput/arrayTwoNamesCopy.json
deleted file mode 100644 (file)
index 3e35dc6..0000000
+++ /dev/null
@@ -1 +0,0 @@
-[{"Name": "John"},{"Name": "Mark"}]
diff --git a/csit/libraries/backuprestore/testinput/arrayTwoNamesReversed.json b/csit/libraries/backuprestore/testinput/arrayTwoNamesReversed.json
deleted file mode 100644 (file)
index 7322203..0000000
+++ /dev/null
@@ -1 +0,0 @@
-[{"Name": "Mark"},{"Name": "John"}]
diff --git a/csit/libraries/backuprestore/testinput/filterThreeArray.conf b/csit/libraries/backuprestore/testinput/filterThreeArray.conf
deleted file mode 100644 (file)
index 1b80edf..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-# $.*[1]
-$.[?(@.Name=='Tom')]
-#$[@.Name is 'Tom']
-# "$.Name"
-# $.ietf-yang-library:modules-state.module[?(@.name=='extension-resync-message')]
-# $.ietf-yang-library:modules-state.module[?(@.name=='extension-switchfeatures-message')]
-# $.ietf-yang-library:modules-state.module
diff --git a/csit/libraries/backuprestore/testinput/mainTestCase/json_postfilter.conf b/csit/libraries/backuprestore/testinput/mainTestCase/json_postfilter.conf
deleted file mode 100644 (file)
index 4dffd18..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-#
-# aclservice-config
-$.ietf-yang-library:modules-state.module[?(@.name=='aclservice-config')]
-# $.ietf-yang-library:modules-state.module[?(@.name=='extension-switchfeatures-message')]
-# $.ietf-yang-library:modules-state.module
diff --git a/csit/libraries/backuprestore/testinput/mainTestCase/json_prefilter.conf b/csit/libraries/backuprestore/testinput/mainTestCase/json_prefilter.conf
deleted file mode 100644 (file)
index 8b359fe..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-#
-# Pre-filter file example (removes the module from ietf-yang-library:modules-state which name is 'extension-resync-message')
-#
-$.ietf-yang-library:modules-state.module[?(@.name=='extension-resync-message')]
-# $.ietf-yang-library:modules-state.module[?(@.name=='extension-switchfeatures-message')]
diff --git a/csit/libraries/backuprestore/testinput/mainTestCase/json_prefilter_two_matches.conf b/csit/libraries/backuprestore/testinput/mainTestCase/json_prefilter_two_matches.conf
deleted file mode 100644 (file)
index c553d59..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-$.ietf-yang-library:modules-state.module[?(@.name=='extension-resync-message')]
-$.ietf-yang-library:modules-state.module[?(@.name=='extension-switchfeatures-message')]
-# $.ietf-yang-library:modules-state.module
diff --git a/csit/libraries/backuprestore/testinput/mainTestCase/json_prefilter_zero_matches.conf b/csit/libraries/backuprestore/testinput/mainTestCase/json_prefilter_zero_matches.conf
deleted file mode 100644 (file)
index 30a1900..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-#
-# Support file for a negative test case
-# none of this patterns will match anything
-#
-$.ietf-yang-library:modules-state.module[?(@.name=='blablah-name')]
-$.ietf-yang-library:modules-state.module[?(@.name=='blablah-name-two')]
diff --git a/csit/libraries/backuprestore/testinput/mainTestCase/odl_backup_operational_after.json b/csit/libraries/backuprestore/testinput/mainTestCase/odl_backup_operational_after.json
deleted file mode 100644 (file)
index 776dfd8..0000000
+++ /dev/null
@@ -1 +0,0 @@
-{"entity-owners:entity-owners":{"entity-type":[{"type":"bgp","entity":[{"id":"/general-entity:entity[general-entity:name='bgp']","candidate":[{"name":"member-1"}],"owner":"member-1"}]},{"type":"ovsdb-southbound-provider","entity":[{"id":"/general-entity:entity[general-entity:name='ovsdb-southbound-provider']","candidate":[{"name":"member-1"}],"owner":"member-1"}]},{"type":"org.opendaylight.mdsal.ServiceEntityType","entity":[{"id":"/odl-general-entity:entity[odl-general-entity:name='KeyedInstanceIdentifier{targetType=interface org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node, path=[org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology, org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology[key=TopologyKey [_topologyId=Uri [_value=topology-netconf]]], org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node[key=NodeKey [_nodeId=Uri [_value=CONTROLLER1]]]]}']","candidate":[{"name":"member-1"}],"owner":"member-1"},{"id":"/odl-general-entity:entity[odl-general-entity:name='KeyedInstanceIdentifier{targetType=interface org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node, path=[org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology, org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology[key=TopologyKey [_topologyId=Uri [_value=topology-netconf]]], org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node[key=NodeKey [_nodeId=Uri [_value=CONTROLLER2]]]]}']","candidate":[{"name":"member-1"}],"owner":"member-1"}]},{"type":"org.opendaylight.mdsal.AsyncServiceCloseEntityType","entity":[{"id":"/odl-general-entity:entity[odl-general-entity:name='KeyedInstanceIdentifier{targetType=interface org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node, path=[org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology, org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology[key=TopologyKey [_topologyId=Uri [_value=topology-netconf]]], org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node[key=NodeKey [_nodeId=Uri [_value=CONTROLLER1]]]]}']","candidate":[{"name":"member-1"}],"owner":"member-1"},{"id":"/odl-general-entity:entity[odl-general-entity:name='KeyedInstanceIdentifier{targetType=interface org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node, path=[org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology, org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology[key=TopologyKey [_topologyId=Uri [_value=topology-netconf]]], org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node[key=NodeKey [_nodeId=Uri [_value=CONTROLLER2]]]]}']","candidate":[{"name":"member-1"}],"owner":"member-1"}]},{"type":"iface","entity":[{"id":"/general-entity:entity[general-entity:name='iface']","candidate":[{"name":"member-1"}],"owner":"member-1"}]},{"type":"ovsdb-hwvtepsouthbound-provider","entity":[{"id":"/general-entity:entity[general-entity:name='ovsdb-hwvtepsouthbound-provider']","candidate":[{"name":"member-1"}],"owner":"member-1"}]},{"type":"arpmonitoring","entity":[{"id":"/general-entity:entity[general-entity:name='arpmonitoring']","candidate":[{"name":"member-1"}],"owner":"member-1"}]},{"type":"elan","entity":[{"id":"/general-entity:entity[general-entity:name='elan']","candidate":[{"name":"member-1"}],"owner":"member-1"}]},{"type":"netvirt-acl","entity":[{"id":"/general-entity:entity[general-entity:name='netvirt-acl']","candidate":[{"name":"member-1"}],"owner":"member-1"}]}]},"network-topology:network-topology":{"topology":[{"topology-id":"hwvtep:1"},{"topology-id":"flow:1"},{"topology-id":"ovsdb:1"},{"topology-id":"topology-netconf","node":[{"node-id":"CONTROLLER1","netconf-node-topology:connection-status":"connecting","netconf-node-topology:port":1830,"netconf-node-topology:host":"127.0.0.1"},{"node-id":"CONTROLLER2","netconf-node-topology:connection-status":"connecting","netconf-node-topology:port":1830,"netconf-node-topology:host":"127.0.0.1"}]},{"topology-id":"netvirt:1"}]},"ietf-yang-library:modules-state":{"module":[{"name":"entity-owners","revision":"2015-08-04","schema":"/modules/entity-owners/2015-08-04","namespace":"urn:opendaylight:params:xml:ns:yang:controller:md:sal:clustering:entity-owners","conformance-type":"import"},{"name":"opendaylight-md-sal-common","revision":"2013-10-28","schema":"/modules/opendaylight-md-sal-common/2013-10-28","namespace":"urn:opendaylight:params:xml:ns:yang:controller:md:sal:common","conformance-type":"import"},{"name":"ietf-restconf","revision":"2017-01-26","schema":"/modules/ietf-restconf/2017-01-26","namespace":"urn:ietf:params:xml:ns:yang:ietf-restconf","conformance-type":"import"},{"name":"ietf-yang-types","revision":"2010-09-24","schema":"/modules/ietf-yang-types/2010-09-24","namespace":"urn:ietf:params:xml:ns:yang:ietf-yang-types","conformance-type":"import"},{"name":"neutronvpn-config","revision":"2016-08-06","schema":"/modules/neutronvpn-config/2016-08-06","namespace":"urn:opendaylight:netvirt:neutronvpn:config","conformance-type":"import"},{"name":"batch-common","revision":"2016-03-22","schema":"/modules/batch-common/2016-03-22","namespace":"urn:opendaylight:service:batch:common","conformance-type":"import"},{"name":"iana-afn-safi","revision":"2013-07-04","schema":"/modules/iana-afn-safi/2013-07-04","namespace":"urn:ietf:params:xml:ns:yang:iana-afn-safi","conformance-type":"import"},{"name":"l3nexthop","revision":"2015-04-09","schema":"/modules/l3nexthop/2015-04-09","namespace":"urn:opendaylight:netvirt:l3nexthop","conformance-type":"import"},{"name":"dhcpservice-api","revision":"2015-07-10","schema":"/modules/dhcpservice-api/2015-07-10","namespace":"urn:opendaylight:params:xml:ns:yang:dhcpservice:api","conformance-type":"import"},{"name":"forwarding-rules-manager-config","revision":"2016-05-11","schema":"/modules/forwarding-rules-manager-config/2016-05-11","namespace":"urn:opendaylight:params:xml:ns:yang:openflowplugin:app:forwardingrules-manager:config","conformance-type":"import"},{"name":"general-entity","revision":"2015-08-20","schema":"/modules/general-entity/2015-08-20","namespace":"urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:general-entity","conformance-type":"import"},{"name":"dhcpservice-config","revision":"2015-07-10","schema":"/modules/dhcpservice-config/2015-07-10","namespace":"urn:opendaylight:params:xml:ns:yang:dhcpservice:config","conformance-type":"import"},{"name":"aclservice-config","revision":"2016-08-06","schema":"/modules/aclservice-config/2016-08-06","namespace":"urn:opendaylight:netvirt:aclservice-config","conformance-type":"import"},{"name":"ietf-yang-types","revision":"2013-07-15","schema":"/modules/ietf-yang-types/2013-07-15","namespace":"urn:ietf:params:xml:ns:yang:ietf-yang-types","conformance-type":"import"},{"name":"flow-errors","revision":"2013-11-16","schema":"/modules/flow-errors/2013-11-16","namespace":"urn:opendaylight:flow:errors","conformance-type":"import"},{"name":"credential-store","revision":"2015-02-26","schema":"/modules/credential-store/2015-02-26","namespace":"urn:opendaylight:params:xml:ns:yang:aaa:credential-store","conformance-type":"import"},{"name":"rpc-context","revision":"2013-06-17","schema":"/modules/rpc-context/2013-06-17","namespace":"urn:ietf:params:xml:ns:yang:rpc-context","conformance-type":"import"},{"name":"opendaylight-queue-types","revision":"2013-09-25","schema":"/modules/opendaylight-queue-types/2013-09-25","namespace":"urn:opendaylight:flow:types:queue","conformance-type":"import"},{"name":"vpn-rpc","revision":"2016-02-01","schema":"/modules/vpn-rpc/2016-02-01","namespace":"urn:opendaylight:netvirt:vpn:rpc","conformance-type":"import"},{"name":"neutron-attrs","revision":"2015-07-12","schema":"/modules/neutron-attrs/2015-07-12","namespace":"urn:opendaylight:neutron-attrs","conformance-type":"import"},{"name":"neutron-vpnaas","revision":"2015-07-12","schema":"/modules/neutron-vpnaas/2015-07-12","namespace":"urn:opendaylight:neutron-vpnaas","conformance-type":"import"},{"name":"lldp-speaker","revision":"2014-10-23","schema":"/modules/lldp-speaker/2014-10-23","namespace":"urn:opendaylight:params:xml:ns:yang:openflow:applications:lldp-speaker","conformance-type":"import"},{"name":"opendaylight-port-types","revision":"2013-09-25","schema":"/modules/opendaylight-port-types/2013-09-25","namespace":"urn:opendaylight:flow:types:port","conformance-type":"import"},{"name":"neutron-bgpvpns","revision":"2015-09-03","schema":"/modules/neutron-bgpvpns/2015-09-03","namespace":"urn:opendaylight:neutron-bgpvpns","conformance-type":"import"},{"name":"openflow-types","revision":"2013-07-31","schema":"/modules/openflow-types/2013-07-31","namespace":"urn:opendaylight:openflow:common:types","conformance-type":"import"},{"name":"notifications","revision":"2008-07-14","schema":"/modules/notifications/2008-07-14","namespace":"urn:ietf:params:xml:ns:netconf:notification:1.0","conformance-type":"import"},{"name":"openflow-provider-config","revision":"2016-05-10","schema":"/modules/openflow-provider-config/2016-05-10","namespace":"urn:opendaylight:params:xml:ns:yang:openflow:provider:config","conformance-type":"import"},{"name":"yang-ext","revision":"2013-07-09","schema":"/modules/yang-ext/2013-07-09","namespace":"urn:opendaylight:yang:extension:yang-ext","conformance-type":"import"},{"name":"odl-fib","revision":"2015-03-30","schema":"/modules/odl-fib/2015-03-30","namespace":"urn:opendaylight:netvirt:fibmanager","conformance-type":"import"},{"name":"data-export-import","revision":"2016-09-21","schema":"/modules/data-export-import/2016-09-21","namespace":"urn:opendaylight:daexim","conformance-type":"import"},{"name":"data-export-import-internal","revision":"2016-09-21","schema":"/modules/data-export-import-internal/2016-09-21","namespace":"urn:opendaylight:daexim-internal","conformance-type":"import"},{"name":"cluster-admin","revision":"2015-10-13","schema":"/modules/cluster-admin/2015-10-13","namespace":"urn:opendaylight:params:xml:ns:yang:controller:md:sal:cluster:admin","conformance-type":"import"},{"name":"lldp-speaker-config","revision":"2016-05-12","schema":"/modules/lldp-speaker-config/2016-05-12","namespace":"urn:opendaylight:params:xml:ns:yang:openflow:applications:lldp-speaker:config","conformance-type":"import"},{"name":"aaa-encrypt-service-config","revision":"2016-09-15","schema":"/modules/aaa-encrypt-service-config/2016-09-15","namespace":"config:aaa:authn:encrypt:service:config","conformance-type":"import"},{"name":"topology-lldp-discovery-config","revision":"2016-05-11","schema":"/modules/topology-lldp-discovery-config/2016-05-11","namespace":"urn:opendaylight:params:xml:ns:yang:topology-lldp-discovery:config","conformance-type":"import"},{"name":"barrier-common","revision":"2016-03-15","schema":"/modules/barrier-common/2016-03-15","namespace":"urn:opendaylight:service:barrier:common","conformance-type":"import"},{"name":"odl-general-entity","revision":"2015-09-30","schema":"/modules/odl-general-entity/2015-09-30","namespace":"urn:opendaylight:params:xml:ns:yang:mdsal:core:general-entity","conformance-type":"import"},{"name":"opendaylight-meter-types","revision":"2013-09-18","schema":"/modules/opendaylight-meter-types/2013-09-18","namespace":"urn:opendaylight:meter:types","conformance-type":"import"},{"name":"neutron-ml2-services","revision":"2014-09-30","schema":"/modules/neutron-ml2-services/2014-09-30","namespace":"urn:ericsson:neutron:ml2","conformance-type":"import"},{"name":"neutron-ml3-services","revision":"2014-09-30","schema":"/modules/neutron-ml3-services/2014-09-30","namespace":"urn:ericsson:neutron:ml3","conformance-type":"import"},{"name":"sal-remote","revision":"2014-01-14","schema":"/modules/sal-remote/2014-01-14","namespace":"urn:opendaylight:params:xml:ns:yang:controller:md:sal:remote","conformance-type":"import"},{"name":"sal-remote-augment","revision":"2014-07-08","schema":"/modules/sal-remote-augment/2014-07-08","namespace":"urn:sal:restconf:event:subscription","conformance-type":"import"},{"name":"lock-manager","revision":"2016-04-13","schema":"/modules/lock-manager/2016-04-13","namespace":"urn:opendaylight:genius:lockmanager","conformance-type":"import"},{"name":"opendaylight-statistics-types","revision":"2013-09-25","schema":"/modules/opendaylight-statistics-types/2013-09-25","namespace":"urn:opendaylight:model:statistics:types","conformance-type":"import"},{"name":"neutron-sfc","revision":"2016-05-11","schema":"/modules/neutron-sfc/2016-05-11","namespace":"urn:opendaylight:neutron-sfc","conformance-type":"import"},{"name":"aaa-cert","revision":"2015-11-26","schema":"/modules/aaa-cert/2015-11-26","namespace":"urn:opendaylight:yang:aaa:cert","conformance-type":"import"},{"name":"neutron-networks","revision":"2015-07-12","schema":"/modules/neutron-networks/2015-07-12","namespace":"urn:opendaylight:neutron-networks","conformance-type":"import"},{"name":"neutron-trunks","revision":"2017-01-18","schema":"/modules/neutron-trunks/2017-01-18","namespace":"urn:opendaylight:neutron-trunks","conformance-type":"import"},{"name":"neutron-hostconfig","revision":"2015-07-12","schema":"/modules/neutron-hostconfig/2015-07-12","namespace":"urn:opendaylight:neutron-hostconfig","conformance-type":"import"},{"name":"nc-notifications","revision":"2008-07-14","schema":"/modules/nc-notifications/2008-07-14","namespace":"urn:ietf:params:xml:ns:netmod:notification","conformance-type":"import"},{"name":"ietf-inet-types","revision":"2013-07-15","schema":"/modules/ietf-inet-types/2013-07-15","namespace":"urn:ietf:params:xml:ns:yang:ietf-inet-types","conformance-type":"import"},{"name":"neutron-types","revision":"2016-05-17","schema":"/modules/neutron-types/2016-05-17","namespace":"urn:opendaylight:neutron-types","conformance-type":"import"},{"name":"ebgp","revision":"2015-09-01","schema":"/modules/ebgp/2015-09-01","namespace":"urn:ericsson:params:xml:ns:yang:ebgp","conformance-type":"import"},{"name":"opendaylight-arbitrary-bitmask-fields","revision":"2016-01-30","schema":"/modules/opendaylight-arbitrary-bitmask-fields/2016-01-30","namespace":"urn:opendaylight:arbitrary:bitmask:fields","conformance-type":"import"},{"name":"ietf-restconf","revision":"2013-10-19","schema":"/modules/ietf-restconf/2013-10-19","namespace":"urn:ietf:params:xml:ns:yang:ietf-restconf","conformance-type":"import"},{"name":"opendaylight-inventory","revision":"2013-08-19","schema":"/modules/opendaylight-inventory/2013-08-19","namespace":"urn:opendaylight:inventory","conformance-type":"import"},{"name":"neighbor-discovery","revision":"2016-06-20","schema":"/modules/neighbor-discovery/2016-06-20","namespace":"urn:opendaylight:netvirt:ipv6service:nd:packet","conformance-type":"import"},{"name":"odl-nat","revision":"2016-01-11","schema":"/modules/odl-nat/2016-01-11","namespace":"urn:opendaylight:netvirt:natservice","conformance-type":"import"},{"name":"aliveness-monitor","revision":"2016-04-11","schema":"/modules/aliveness-monitor/2016-04-11","namespace":"urn:opendaylight:genius:alivenessmonitor","conformance-type":"import"},{"name":"ietf-yang-library","revision":"2016-06-21","schema":"/modules/ietf-yang-library/2016-06-21","namespace":"urn:ietf:params:xml:ns:yang:ietf-yang-library","conformance-type":"import"},{"name":"odl-nat-rpc","revision":"2017-02-09","schema":"/modules/odl-nat-rpc/2017-02-09","namespace":"urn:opendaylight:netvirt:natservice:rpc","conformance-type":"import"},{"name":"start-resync-download-notification","revision":"2014-02-07","schema":"/modules/start-resync-download-notification/2014-02-07","namespace":"urn:ericsson:resync:start:notification","conformance-type":"import"},{"name":"ietf-netconf","revision":"2011-06-01","schema":"/modules/ietf-netconf/2011-06-01","feature":["rollback-on-error","xpath","validate","writable-running","confirmed-commit","startup","url","candidate"],"namespace":"urn:ietf:params:xml:ns:netconf:base:1.0","conformance-type":"import"},{"name":"neutron-provider","revision":"2015-07-12","schema":"/modules/neutron-provider/2015-07-12","namespace":"urn:opendaylight:neutron-provider","conformance-type":"import"},{"name":"sal-queue","revision":"2015-03-05","schema":"/modules/sal-queue/2015-03-05","namespace":"urn:opendaylight:queue:service","conformance-type":"import"},{"name":"openflowplugin-experimenter-types","revision":"2015-10-20","schema":"/modules/openflowplugin-experimenter-types/2015-10-20","namespace":"urn:opendaylight:openflowplugin:experimenter:types","conformance-type":"import"},{"name":"vpn-config","revision":"2016-11-30","schema":"/modules/vpn-config/2016-11-30","namespace":"urn:opendaylight:netvirt:vpn:config","conformance-type":"import"},{"name":"ietf-yang-library","revision":"2016-04-09","schema":"/modules/ietf-yang-library/2016-04-09","namespace":"urn:ietf:params:xml:ns:yang:ietf-yang-library","conformance-type":"import"},{"name":"network-topology","revision":"2013-07-12","schema":"/modules/network-topology/2013-07-12","namespace":"urn:TBD:params:xml:ns:yang:network-topology","conformance-type":"import"},{"name":"l3-unicast-igp-topology","revision":"2013-07-12","schema":"/modules/l3-unicast-igp-topology/2013-07-12","namespace":"urn:TBD:params:xml:ns:yang:nt:l3-unicast-igp-topology","conformance-type":"import"},{"name":"ietf-inet-types","revision":"2010-09-24","schema":"/modules/ietf-inet-types/2010-09-24","namespace":"urn:ietf:params:xml:ns:yang:ietf-inet-types","conformance-type":"import"},{"name":"switch-features-notification","revision":"2013-08-19","schema":"/modules/switch-features-notification/2013-08-19","namespace":"urn:ericsson:switch-features:notification","conformance-type":"import"},{"name":"id-manager","revision":"2016-04-06","schema":"/modules/id-manager/2016-04-06","namespace":"urn:opendaylight:genius:idmanager","conformance-type":"import"},{"name":"system-notifications","revision":"2013-09-27","schema":"/modules/system-notifications/2013-09-27","namespace":"urn:opendaylight:openflow:system","conformance-type":"import"},{"name":"ted","revision":"2013-07-12","schema":"/modules/ted/2013-07-12","namespace":"urn:TBD:params:xml:ns:yang:network:ted","conformance-type":"import"},{"name":"statistics-manager-control","revision":"2015-08-12","schema":"/modules/statistics-manager-control/2015-08-12","namespace":"urn:opendaylight:params:xml:ns:yang:openflowplugin:sm:control","conformance-type":"import"},{"name":"opendaylight-l2-types","revision":"2013-08-27","schema":"/modules/opendaylight-l2-types/2013-08-27","namespace":"urn:opendaylight:l2:types","conformance-type":"import"},{"name":"isis-topology","revision":"2013-07-12","schema":"/modules/isis-topology/2013-07-12","namespace":"urn:TBD:params:xml:ns:yang:network:isis-topology","conformance-type":"import"},{"name":"elan-config","revision":"2015-07-10","schema":"/modules/elan-config/2015-07-10","namespace":"urn:opendaylight:netvirt:elan:config","conformance-type":"import"},{"name":"experimenter-flow-types","revision":"2014-04-25","schema":"/modules/experimenter-flow-types/2014-04-25","namespace":"urn:ericsson:experimenter:openflow:types","conformance-type":"import"},{"name":"flow-capable-transaction","revision":"2015-03-04","schema":"/modules/flow-capable-transaction/2015-03-04","namespace":"urn:opendaylight:flow:transaction","conformance-type":"import"},{"name":"sal-port","revision":"2013-11-07","schema":"/modules/sal-port/2013-11-07","namespace":"urn:opendaylight:port:service","conformance-type":"import"},{"name":"forwardingrules-manager-reconciliation","revision":"2015-08-04","schema":"/modules/forwardingrules-manager-reconciliation/2015-08-04","namespace":"urn:ericsson:reconciliation:service","conformance-type":"import"},{"name":"node-config","revision":"2014-10-15","schema":"/modules/node-config/2014-10-15","namespace":"urn:opendaylight:module:config","conformance-type":"import"},{"name":"switch-features-extension","revision":"2014-02-07","schema":"/modules/switch-features-extension/2014-02-07","namespace":"urn:ericsson:switch-features:rpcs:notification","conformance-type":"import"},{"name":"config","revision":"2013-04-05","schema":"/modules/config/2013-04-05","namespace":"urn:opendaylight:params:xml:ns:yang:controller:config","conformance-type":"import"},{"name":"openflow-provider","revision":"2014-03-26","schema":"/modules/openflow-provider/2014-03-26","namespace":"urn:opendaylight:params:xml:ns:yang:openflow:common:config","conformance-type":"import"},{"name":"openflowplugin-extension-registry","revision":"2015-04-25","schema":"/modules/openflowplugin-extension-registry/2015-04-25","namespace":"urn:opendaylight:params:xml:ns:yang:openflowplugin:extension:api","conformance-type":"import"},{"name":"netty","revision":"2013-11-19","schema":"/modules/netty/2013-11-19","namespace":"urn:opendaylight:params:xml:ns:yang:controller:netty","conformance-type":"import"},{"name":"shutdown","revision":"2013-12-18","schema":"/modules/shutdown/2013-12-18","namespace":"urn:opendaylight:params:xml:ns:yang:controller:shutdown","conformance-type":"import"},{"name":"netconf-northbound-mapper","revision":"2015-01-14","schema":"/modules/netconf-northbound-mapper/2015-01-14","namespace":"urn:opendaylight:params:xml:ns:yang:controller:netconf:north:mapper","conformance-type":"import"},{"name":"opendaylight-config-dom-datastore","revision":"2014-06-17","schema":"/modules/opendaylight-config-dom-datastore/2014-06-17","namespace":"urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:spi:config-dom-store","conformance-type":"import"},{"name":"shutdown-impl","revision":"2013-12-18","schema":"/modules/shutdown-impl/2013-12-18","namespace":"urn:opendaylight:params:xml:ns:yang:controller:shutdown:impl","conformance-type":"import"},{"name":"opendaylight-operational-dom-datastore","revision":"2014-06-17","schema":"/modules/opendaylight-operational-dom-datastore/2014-06-17","namespace":"urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:spi:operational-dom-store","conformance-type":"import"},{"name":"threadpool","revision":"2013-04-09","schema":"/modules/threadpool/2013-04-09","namespace":"urn:opendaylight:params:xml:ns:yang:controller:threadpool","conformance-type":"import"},{"name":"nicira-extension","revision":"2014-07-11","schema":"/modules/nicira-extension/2014-07-11","namespace":"urn:opendaylight:params:xml:ns:yang:controller:config:openflowplugin:nx:config","conformance-type":"import"},{"name":"threadpool-impl-scheduled","revision":"2013-12-01","schema":"/modules/threadpool-impl-scheduled/2013-12-01","namespace":"urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl:scheduled","conformance-type":"import"},{"name":"netty-timer","revision":"2013-11-19","schema":"/modules/netty-timer/2013-11-19","namespace":"urn:opendaylight:params:xml:ns:yang:controller:netty:timer","conformance-type":"import"},{"name":"openflow-switch-connection-provider","revision":"2014-03-28","schema":"/modules/openflow-switch-connection-provider/2014-03-28","namespace":"urn:opendaylight:params:xml:ns:yang:openflow:switch:connection:provider","conformance-type":"import"},{"name":"netconf-northbound","revision":"2015-01-14","schema":"/modules/netconf-northbound/2015-01-14","namespace":"urn:opendaylight:params:xml:ns:yang:controller:config:netconf:northbound","conformance-type":"import"},{"name":"netconf-northbound-impl","revision":"2015-01-12","schema":"/modules/netconf-northbound-impl/2015-01-12","namespace":"urn:opendaylight:params:xml:ns:yang:controller:config:netconf:northbound:impl","conformance-type":"import"},{"name":"threadpool-impl-fixed","revision":"2013-12-01","schema":"/modules/threadpool-impl-fixed/2013-12-01","namespace":"urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl:fixed","conformance-type":"import"},{"name":"threadpool-impl-flexible","revision":"2013-12-01","schema":"/modules/threadpool-impl-flexible/2013-12-01","namespace":"urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl:flexible","conformance-type":"import"},{"name":"netty-event-executor","revision":"2013-11-12","schema":"/modules/netty-event-executor/2013-11-12","namespace":"urn:opendaylight:params:xml:ns:yang:controller:netty:eventexecutor","conformance-type":"import"},{"name":"inter-vpn-link","revision":"2016-03-11","schema":"/modules/inter-vpn-link/2016-03-11","namespace":"urn:opendaylight:params:xml:ns:yang:netvirt:inter-vpn-link","conformance-type":"import"},{"name":"shared-schema-repository","revision":"2015-07-27","schema":"/modules/shared-schema-repository/2015-07-27","namespace":"urn:opendaylight:params:xml:ns:yang:controller:netconf:topology:shared:schema:repository","conformance-type":"import"},{"name":"resource-manager","revision":"2016-06-22","schema":"/modules/resource-manager/2016-06-22","namespace":"urn:opendaylight:genius:resourcemanager","conformance-type":"import"},{"name":"actor-system-provider-service","revision":"2015-10-05","schema":"/modules/actor-system-provider-service/2015-10-05","namespace":"urn:opendaylight:params:xml:ns:yang:controller:config:actor-system-provider:service","conformance-type":"import"},{"name":"actor-system-provider-impl","revision":"2015-10-05","schema":"/modules/actor-system-provider-impl/2015-10-05","namespace":"urn:opendaylight:params:xml:ns:yang:controller:config:actor-system-provider:impl","conformance-type":"import"},{"name":"protocol-framework","revision":"2014-03-13","schema":"/modules/protocol-framework/2014-03-13","namespace":"urn:opendaylight:params:xml:ns:yang:controller:protocol:framework","conformance-type":"import"},{"name":"ospf-topology","revision":"2013-07-12","schema":"/modules/ospf-topology/2013-07-12","namespace":"urn:ietf:params:xml:ns:yang:ospf-topology","conformance-type":"import"},{"name":"opendaylight-md-sal-binding-v1-codec","revision":"2016-07-14","schema":"/modules/opendaylight-md-sal-binding-v1-codec/2016-07-14","namespace":"urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:v1:codec","conformance-type":"import"},{"name":"threadpool-impl","revision":"2013-04-05","schema":"/modules/threadpool-impl/2013-04-05","namespace":"urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl","conformance-type":"import"},{"name":"cluster-singleton-service-spi","revision":"2016-07-18","schema":"/modules/cluster-singleton-service-spi/2016-07-18","namespace":"urn:opendaylight:params:xml:ns:yang:md:sal:config:spi:cluster-singleton-service","conformance-type":"import"},{"name":"sal-restconf-service","revision":"2015-07-08","schema":"/modules/sal-restconf-service/2015-07-08","namespace":"urn:opendaylight:params:xml:ns:yang:controller:sal:restconf:service","conformance-type":"import"},{"name":"nicira-extension-impl","revision":"2014-07-11","schema":"/modules/nicira-extension-impl/2014-07-11","namespace":"urn:opendaylight:params:xml:ns:yang:openflowplugin:nx:config:impl","conformance-type":"import"},{"name":"resync-output","revision":"2014-02-07","schema":"/modules/resync-output/2014-02-07","namespace":"urn:ericsson:resync:output:notification","conformance-type":"import"},{"name":"ietf-netconf-notifications","revision":"2012-02-06","schema":"/modules/ietf-netconf-notifications/2012-02-06","namespace":"urn:ietf:params:xml:ns:yang:ietf-netconf-notifications","conformance-type":"import"},{"name":"opendaylight-md-sal-binding","revision":"2013-10-28","schema":"/modules/opendaylight-md-sal-binding/2013-10-28","namespace":"urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding","conformance-type":"import"},{"name":"aaa-cert-mdsal","revision":"2016-03-21","schema":"/modules/aaa-cert-mdsal/2016-03-21","namespace":"urn:opendaylight:yang:aaa:cert:mdsal","conformance-type":"import"},{"name":"cluster-admin-provider","revision":"2015-10-13","schema":"/modules/cluster-admin-provider/2015-10-13","namespace":"urn:opendaylight:params:xml:ns:yang:controller:config:cluster-admin-provider","conformance-type":"import"},{"name":"lockmanager-impl","revision":"2016-04-06","schema":"/modules/lockmanager-impl/2016-04-06","namespace":"urn:opendaylight:genius:lockmanager:impl","conformance-type":"import"},{"name":"threadgroup","revision":"2013-11-07","schema":"/modules/threadgroup/2013-11-07","namespace":"urn:opendaylight:params:xml:ns:yang:controller:netty:threadgroup","conformance-type":"import"},{"name":"netconf-northbound-tcp","revision":"2015-04-23","schema":"/modules/netconf-northbound-tcp/2015-04-23","namespace":"urn:opendaylight:params:xml:ns:yang:controller:netconf:northbound:tcp","conformance-type":"import"},{"name":"odl-netconf-cfg","revision":"2014-04-08","schema":"/modules/odl-netconf-cfg/2014-04-08","namespace":"urn:opendaylight:params:xml:ns:yang:controller:config:netconf","conformance-type":"import"},{"name":"odl-netconfig-client-cfg","revision":"2014-04-08","schema":"/modules/odl-netconfig-client-cfg/2014-04-08","namespace":"urn:opendaylight:params:xml:ns:yang:controller:config:netconf:client:dispatcher","conformance-type":"import"},{"name":"opendaylight-port-statistics","revision":"2013-12-14","schema":"/modules/opendaylight-port-statistics/2013-12-14","namespace":"urn:opendaylight:port:statistics","conformance-type":"import"},{"name":"ted","revision":"2013-10-21","schema":"/modules/ted/2013-10-21","namespace":"urn:TBD:params:xml:ns:yang:network:ted","conformance-type":"import"},{"name":"ietf-netconf-monitoring","revision":"2010-10-04","schema":"/modules/ietf-netconf-monitoring/2010-10-04","namespace":"urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring","conformance-type":"import"},{"name":"ietf-netconf-monitoring-extension","revision":"2013-12-10","schema":"/modules/ietf-netconf-monitoring-extension/2013-12-10","namespace":"urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring-extension","conformance-type":"import"},{"name":"data-export-import-spi","revision":"2016-08-16","schema":"/modules/data-export-import-spi/2016-08-16","namespace":"urn:opendaylight:daexim-spi","conformance-type":"import"},{"name":"opendaylight-md-sal-dom","revision":"2013-10-28","schema":"/modules/opendaylight-md-sal-dom/2013-10-28","namespace":"urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom","conformance-type":"import"},{"name":"opendaylight-inmemory-datastore-provider","revision":"2014-06-17","schema":"/modules/opendaylight-inmemory-datastore-provider/2014-06-17","namespace":"urn:opendaylight:params:xml:ns:yang:controller:inmemory-datastore-provider","conformance-type":"import"},{"name":"distributed-datastore-provider","revision":"2014-06-12","schema":"/modules/distributed-datastore-provider/2014-06-12","namespace":"urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider","conformance-type":"import"},{"name":"opendaylight-pingpong-broker","revision":"2014-11-07","schema":"/modules/opendaylight-pingpong-broker/2014-11-07","namespace":"urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:pingpong","conformance-type":"import"},{"name":"opendaylight-rest-connector","revision":"2014-07-24","schema":"/modules/opendaylight-rest-connector/2014-07-24","namespace":"urn:opendaylight:params:xml:ns:yang:controller:md:sal:rest:connector","conformance-type":"import"},{"name":"odl-sal-netconf-connector-cfg","revision":"2015-08-03","schema":"/modules/odl-sal-netconf-connector-cfg/2015-08-03","namespace":"urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf","conformance-type":"import"},{"name":"netconf-topology","revision":"2015-07-27","schema":"/modules/netconf-topology/2015-07-27","namespace":"urn:opendaylight:params:xml:ns:yang:controller:netconf:topology","conformance-type":"import"},{"name":"opendaylight-sal-binding-broker-impl","revision":"2013-10-28","schema":"/modules/opendaylight-sal-binding-broker-impl/2013-10-28","namespace":"urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl","conformance-type":"import"},{"name":"netconf-auth","revision":"2015-07-15","schema":"/modules/netconf-auth/2015-07-15","namespace":"urn:opendaylight:params:xml:ns:yang:controller:config:netconf:auth","conformance-type":"import"},{"name":"netconf-northbound-ssh","revision":"2015-01-14","schema":"/modules/netconf-northbound-ssh/2015-01-14","namespace":"urn:opendaylight:params:xml:ns:yang:controller:netconf:northbound:ssh","conformance-type":"import"},{"name":"aaa-authn-netconf-plugin","revision":"2015-07-15","schema":"/modules/aaa-authn-netconf-plugin/2015-07-15","namespace":"config:aaa:authn:netconf:plugin","conformance-type":"import"},{"name":"cloud-servicechain-api","revision":"2015-12-11","schema":"/modules/cloud-servicechain-api/2015-12-11","namespace":"urn:opendaylight:netvirt:cloud-servicechain:api","conformance-type":"import"},{"name":"network-topology","revision":"2013-10-21","schema":"/modules/network-topology/2013-10-21","namespace":"urn:TBD:params:xml:ns:yang:network-topology","conformance-type":"import"},{"name":"hwvtep","revision":"2015-09-01","schema":"/modules/hwvtep/2015-09-01","namespace":"urn:opendaylight:params:xml:ns:yang:ovsdb:hwvtep","conformance-type":"import"},{"name":"opendaylight-topology","revision":"2013-10-30","schema":"/modules/opendaylight-topology/2013-10-30","namespace":"urn:opendaylight:model:topology:general","conformance-type":"import"},{"name":"l3-unicast-igp-topology","revision":"2013-10-21","schema":"/modules/l3-unicast-igp-topology/2013-10-21","namespace":"urn:TBD:params:xml:ns:yang:nt:l3-unicast-igp-topology","conformance-type":"import"},{"name":"isis-topology","revision":"2013-10-21","schema":"/modules/isis-topology/2013-10-21","namespace":"urn:TBD:params:xml:ns:yang:network:isis-topology","conformance-type":"import"},{"name":"opendaylight-topology-view","revision":"2013-10-30","schema":"/modules/opendaylight-topology-view/2013-10-30","namespace":"urn:opendaylight:model:topology:view","conformance-type":"import"},{"name":"ospf-topology","revision":"2013-10-21","schema":"/modules/ospf-topology/2013-10-21","namespace":"urn:TBD:params:xml:ns:yang:ospf-topology","conformance-type":"import"},{"name":"opendaylight-topology-inventory","revision":"2013-10-30","schema":"/modules/opendaylight-topology-inventory/2013-10-30","namespace":"urn:opendaylight:model:topology:inventory","conformance-type":"import"},{"name":"resync-notification","revision":"2014-02-07","schema":"/modules/resync-notification/2014-02-07","namespace":"urn:ericsson:resync:rpcs:notification","conformance-type":"import"},{"name":"sal-experimenter-mp-message","revision":"2015-10-20","schema":"/modules/sal-experimenter-mp-message/2015-10-20","namespace":"urn:opendaylight:experimenter-mp-message:service","conformance-type":"import"},{"name":"netconf-node-inventory","revision":"2014-01-08","schema":"/modules/netconf-node-inventory/2014-01-08","namespace":"urn:opendaylight:netconf-node-inventory","conformance-type":"import"},{"name":"netconf-northbound-notification","revision":"2015-08-06","schema":"/modules/netconf-northbound-notification/2015-08-06","namespace":"urn:opendaylight:params:xml:ns:yang:controller:netconf:northbound:notification","conformance-type":"import"},{"name":"openflowjava-nx-api-config","revision":"2014-07-11","schema":"/modules/openflowjava-nx-api-config/2014-07-11","namespace":"urn:opendaylight:params:xml:ns:yang:openflowplugin:ofjava:nx:api:config","conformance-type":"import"},{"name":"openflowjava-nx-config","revision":"2014-07-11","schema":"/modules/openflowjava-nx-config/2014-07-11","namespace":"urn:opendaylight:params:xml:ns:yang:openflowplugin:ofjava:nx:config","conformance-type":"import"},{"name":"flow-topology-discovery","revision":"2013-08-19","schema":"/modules/flow-topology-discovery/2013-08-19","namespace":"urn:opendaylight:flow:topology:discovery","conformance-type":"import"},{"name":"openflow-extensible-match","revision":"2015-02-25","schema":"/modules/openflow-extensible-match/2015-02-25","namespace":"urn:opendaylight:openflow:oxm","conformance-type":"import"},{"name":"experimenter-match-type","revision":"2014-03-06","schema":"/modules/experimenter-match-type/2014-03-06","namespace":"urn:experimenter:matchExp","conformance-type":"import"},{"name":"openflow-action","revision":"2015-02-03","schema":"/modules/openflow-action/2015-02-03","namespace":"urn:opendaylight:openflow:common:action","conformance-type":"import"},{"name":"openflow-instruction","revision":"2013-07-31","schema":"/modules/openflow-instruction/2013-07-31","namespace":"urn:opendaylight:openflow:common:instruction","conformance-type":"import"},{"name":"nicira-action","revision":"2014-04-21","schema":"/modules/nicira-action/2014-04-21","namespace":"urn:opendaylight:openflowjava:nx:action","conformance-type":"import"},{"name":"nicira-match","revision":"2014-04-21","schema":"/modules/nicira-match/2014-04-21","namespace":"urn:opendaylight:openflowjava:nx:match","conformance-type":"import"},{"name":"odl-mdsalutil","revision":"2016-04-06","schema":"/modules/odl-mdsalutil/2016-04-06","namespace":"urn:opendaylight:genius:mdsalutil","conformance-type":"import"},{"name":"resourcemanager-impl","revision":"2016-04-06","schema":"/modules/resourcemanager-impl/2016-04-06","namespace":"urn:opendaylight:genius:resourcemanager:impl","conformance-type":"import"},{"name":"arputil-impl","revision":"2016-04-06","schema":"/modules/arputil-impl/2016-04-06","namespace":"urn:opendaylight:genius:arputil:impl","conformance-type":"import"},{"name":"resync-error-notification","revision":"2014-02-07","schema":"/modules/resync-error-notification/2014-02-07","namespace":"urn:ericsson:resync:error:notification","conformance-type":"import"},{"name":"sal-echo","revision":"2015-03-05","schema":"/modules/sal-echo/2015-03-05","namespace":"urn:opendaylight:echo:service","conformance-type":"import"},{"name":"remote-rpc-connector","revision":"2014-07-07","schema":"/modules/remote-rpc-connector/2014-07-07","namespace":"urn:opendaylight:params:xml:ns:yang:controller:config:remote-rpc-connector","conformance-type":"import"},{"name":"vpnservice-dhcp","revision":"2016-04-28","schema":"/modules/vpnservice-dhcp/2016-04-28","namespace":"urn:opendaylight:netvirt:dhcp","conformance-type":"import"},{"name":"opendaylight-ipv6-arbitrary-bitmask-fields","revision":"2016-02-24","schema":"/modules/opendaylight-ipv6-arbitrary-bitmask-fields/2016-02-24","namespace":"urn:opendaylight:opendaylight-ipv6-arbitrary-bitmask-fields","conformance-type":"import"},{"name":"opendaylight-match-types","revision":"2013-10-26","schema":"/modules/opendaylight-match-types/2013-10-26","namespace":"urn:opendaylight:model:match:types","conformance-type":"import"},{"name":"opendaylight-action-types","revision":"2013-11-12","schema":"/modules/opendaylight-action-types/2013-11-12","namespace":"urn:opendaylight:action:types","conformance-type":"import"},{"name":"experimenter-action-types","revision":"2014-02-28","schema":"/modules/experimenter-action-types/2014-02-28","namespace":"urn:ericsson:experimenter:action:types","conformance-type":"import"},{"name":"opendaylight-group-types","revision":"2013-10-18","schema":"/modules/opendaylight-group-types/2013-10-18","namespace":"urn:opendaylight:group:types","conformance-type":"import"},{"name":"sal-group","revision":"2013-09-18","schema":"/modules/sal-group/2013-09-18","namespace":"urn:opendaylight:group:service","conformance-type":"import"},{"name":"sal-groups-batch","revision":"2016-03-15","schema":"/modules/sal-groups-batch/2016-03-15","namespace":"urn:opendaylight:groups:service","conformance-type":"import"},{"name":"opendaylight-sal-dom-broker-impl","revision":"2013-10-28","schema":"/modules/opendaylight-sal-dom-broker-impl/2013-10-28","namespace":"urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl","conformance-type":"import"},{"name":"odl-concurrent-data-broker-cfg","revision":"2014-11-24","schema":"/modules/odl-concurrent-data-broker-cfg/2014-11-24","namespace":"urn:opendaylight:params:xml:ns:yang:controller:config:concurrent-data-broker","conformance-type":"import"},{"name":"mdsalutil-impl","revision":"2016-04-06","schema":"/modules/mdsalutil-impl/2016-04-06","namespace":"urn:opendaylight:genius:mdsalutil:impl","conformance-type":"import"},{"name":"ietf-network","revision":"2015-06-08","schema":"/modules/ietf-network/2015-06-08","namespace":"urn:ietf:params:xml:ns:yang:ietf-network","conformance-type":"import"},{"name":"ietf-network-topology","revision":"2015-06-08","schema":"/modules/ietf-network-topology/2015-06-08","namespace":"urn:ietf:params:xml:ns:yang:ietf-network-topology","conformance-type":"import"},{"name":"sal-meters-batch","revision":"2016-03-16","schema":"/modules/sal-meters-batch/2016-03-16","namespace":"urn:opendaylight:meters:service","conformance-type":"import"},{"name":"sal-meter","revision":"2013-09-18","schema":"/modules/sal-meter/2013-09-18","namespace":"urn:opendaylight:meter:service","conformance-type":"import"},{"name":"neutron-qos","revision":"2016-06-13","schema":"/modules/neutron-qos/2016-06-13","namespace":"urn:opendaylight:neutron-qos","conformance-type":"import"},{"name":"netconf-node-topology","revision":"2015-01-14","schema":"/modules/netconf-node-topology/2015-01-14","namespace":"urn:opendaylight:netconf-node-topology","conformance-type":"import"},{"name":"neutronvpn","revision":"2015-06-02","schema":"/modules/neutronvpn/2015-06-02","namespace":"urn:opendaylight:netvirt:neutronvpn","conformance-type":"import"},{"name":"ietf-restconf-monitoring","revision":"2017-01-26","schema":"/modules/ietf-restconf-monitoring/2017-01-26","namespace":"urn:ietf:params:xml:ns:yang:ietf-restconf-monitoring","conformance-type":"import"},{"name":"neutron-l2gateways","revision":"2015-07-12","schema":"/modules/neutron-l2gateways/2015-07-12","namespace":"urn:opendaylight:neutron-l2gateways","conformance-type":"import"},{"name":"opendaylight-flow-types","revision":"2013-10-26","schema":"/modules/opendaylight-flow-types/2013-10-26","namespace":"urn:opendaylight:flow:types","conformance-type":"import"},{"name":"fib-rpc","revision":"2016-01-21","schema":"/modules/fib-rpc/2016-01-21","namespace":"urn:opendaylight:netvirt:fib:rpc","conformance-type":"import"},{"name":"opendaylight-table-types","revision":"2013-10-26","schema":"/modules/opendaylight-table-types/2013-10-26","namespace":"urn:opendaylight:table:types","conformance-type":"import"},{"name":"experimenter-table-types","revision":"2014-03-06","schema":"/modules/experimenter-table-types/2014-03-06","namespace":"urn:ericsson:experimenter:table:types","conformance-type":"import"},{"name":"flow-node-inventory","revision":"2013-08-19","schema":"/modules/flow-node-inventory/2013-08-19","namespace":"urn:opendaylight:flow:inventory","conformance-type":"import"},{"name":"opendaylight-queue-statistics","revision":"2013-12-16","schema":"/modules/opendaylight-queue-statistics/2013-12-16","namespace":"urn:opendaylight:queue:statistics","conformance-type":"import"},{"name":"sal-flows-batch","revision":"2016-03-14","schema":"/modules/sal-flows-batch/2016-03-14","namespace":"urn:opendaylight:flows:service","conformance-type":"import"},{"name":"sal-table","revision":"2013-10-26","schema":"/modules/sal-table/2013-10-26","namespace":"urn:opendaylight:table:service","conformance-type":"import"},{"name":"packet-processing","revision":"2013-07-09","schema":"/modules/packet-processing/2013-07-09","namespace":"urn:opendaylight:packet:service","conformance-type":"import"},{"name":"experimenter-flow-types","revision":"2014-04-22","schema":"/modules/experimenter-flow-types/2014-04-22","namespace":"urn:ericsson:experimenter:flow:types","conformance-type":"import"},{"name":"sal-flat-batch","revision":"2016-03-21","schema":"/modules/sal-flat-batch/2016-03-21","namespace":"urn:opendaylight:flat-batch:service","conformance-type":"import"},{"name":"sal-flow","revision":"2013-08-19","schema":"/modules/sal-flow/2013-08-19","namespace":"urn:opendaylight:flow:service","conformance-type":"import"},{"name":"node-error","revision":"2014-04-10","schema":"/modules/node-error/2014-04-10","namespace":"urn:opendaylight:node:error:service","conformance-type":"import"},{"name":"opendaylight-group-statistics","revision":"2013-11-11","schema":"/modules/opendaylight-group-statistics/2013-11-11","namespace":"urn:opendaylight:group:statistics","conformance-type":"import"},{"name":"opendaylight-flow-table-statistics","revision":"2013-12-15","schema":"/modules/opendaylight-flow-table-statistics/2013-12-15","namespace":"urn:opendaylight:flow:table:statistics","conformance-type":"import"},{"name":"neutron-L3","revision":"2015-07-12","schema":"/modules/neutron-L3/2015-07-12","namespace":"urn:opendaylight:neutron-L3","conformance-type":"import"},{"name":"bgp","revision":"2013-07-15","schema":"/modules/bgp/2013-07-15","namespace":"urn:cisco:params:xml:ns:yang:bgp","conformance-type":"import"},{"name":"neutron-extensions","revision":"2016-06-17","schema":"/modules/neutron-extensions/2016-06-17","namespace":"urn:opendaylight:neutron-extensions","conformance-type":"import"},{"name":"neutron-constants","revision":"2015-07-12","schema":"/modules/neutron-constants/2015-07-12","namespace":"urn:opendaylight:neutron-constants","conformance-type":"import"},{"name":"neutron-fwaas","revision":"2015-07-12","schema":"/modules/neutron-fwaas/2015-07-12","namespace":"urn:opendaylight:neutron-fwaas","conformance-type":"import"},{"name":"neutron-ports","revision":"2015-07-12","schema":"/modules/neutron-ports/2015-07-12","namespace":"urn:opendaylight:neutron-ports","conformance-type":"import"},{"name":"neutron-metering","revision":"2015-07-12","schema":"/modules/neutron-metering/2015-07-12","namespace":"urn:opendaylight:neutron-metering","conformance-type":"import"},{"name":"neutron-sfc-flow-classifier","revision":"2016-05-11","schema":"/modules/neutron-sfc-flow-classifier/2016-05-11","namespace":"urn:opendaylight:neutron-sfc-flow-classifier","conformance-type":"import"},{"name":"neutron-lbaasv2","revision":"2015-07-12","schema":"/modules/neutron-lbaasv2/2015-07-12","namespace":"urn:opendaylight:neutron-lbaasv2","conformance-type":"import"},{"name":"neutron-secgroups","revision":"2015-07-12","schema":"/modules/neutron-secgroups/2015-07-12","namespace":"urn:opendaylight:neutron-secgroups","conformance-type":"import"},{"name":"idmanager-impl","revision":"2016-04-06","schema":"/modules/idmanager-impl/2016-04-06","namespace":"urn:opendaylight:genius:idmanager:impl","conformance-type":"import"},{"name":"ietf-interfaces","revision":"2014-05-08","schema":"/modules/ietf-interfaces/2014-05-08","feature":["pre-provisioning","arbitrary-names","if-mib"],"namespace":"urn:ietf:params:xml:ns:yang:ietf-interfaces","conformance-type":"import"},{"name":"l3vpn","revision":"2014-08-15","schema":"/modules/l3vpn/2014-08-15","namespace":"urn:huawei:params:xml:ns:yang:l3vpn","conformance-type":"import"},{"name":"ietf-packet-fields","revision":"2016-02-18","schema":"/modules/ietf-packet-fields/2016-02-18","namespace":"urn:ietf:params:xml:ns:yang:ietf-packet-fields","conformance-type":"import"},{"name":"elan","revision":"2015-06-02","schema":"/modules/elan/2015-06-02","namespace":"urn:opendaylight:netvirt:elan","conformance-type":"import"},{"name":"iana-if-type","revision":"2014-05-08","schema":"/modules/iana-if-type/2014-05-08","namespace":"urn:ietf:params:xml:ns:yang:iana-if-type","conformance-type":"import"},{"name":"odl-arputil","revision":"2016-04-06","schema":"/modules/odl-arputil/2016-04-06","namespace":"urn:opendaylight:genius:arputil","conformance-type":"import"},{"name":"etree","revision":"2016-06-14","schema":"/modules/etree/2016-06-14","namespace":"urn:opendaylight:netvirt:elan:etree","conformance-type":"import"},{"name":"ietf-access-control-list","revision":"2016-02-18","schema":"/modules/ietf-access-control-list/2016-02-18","namespace":"urn:ietf:params:xml:ns:yang:ietf-access-control-list","conformance-type":"import"},{"name":"aclservice","revision":"2016-06-08","schema":"/modules/aclservice/2016-06-08","namespace":"urn:opendaylight:netvirt:aclservice","conformance-type":"import"},{"name":"interface-statistics","revision":"2015-08-24","schema":"/modules/interface-statistics/2015-08-24","namespace":"urn:opendaylight:genius:interface:statistics","conformance-type":"import"},{"name":"cloud-service-chain-state","revision":"2017-05-11","schema":"/modules/cloud-service-chain-state/2017-05-11","namespace":"urn:opendaylight:netvirt:cloud-servicechain:state","conformance-type":"import"},{"name":"elan-statistics","revision":"2015-08-24","schema":"/modules/elan-statistics/2015-08-24","namespace":"urn:opendaylight:netvirt:elan:statistics","conformance-type":"import"},{"name":"odl-interface","revision":"2016-04-06","schema":"/modules/odl-interface/2016-04-06","namespace":"urn:opendaylight:genius:interfacemanager","conformance-type":"import"},{"name":"itm-config","revision":"2016-04-06","schema":"/modules/itm-config/2016-04-06","namespace":"urn:opendaylight:genius:itm:config","conformance-type":"import"},{"name":"itm","revision":"2016-04-06","schema":"/modules/itm/2016-04-06","namespace":"urn:opendaylight:genius:itm","conformance-type":"import"},{"name":"odl-l3vpn","revision":"2013-09-11","schema":"/modules/odl-l3vpn/2013-09-11","namespace":"urn:opendaylight:netvirt:l3vpn","conformance-type":"import"},{"name":"itm-state","revision":"2016-04-06","schema":"/modules/itm-state/2016-04-06","namespace":"urn:opendaylight:genius:itm:op","conformance-type":"import"},{"name":"odl-interface-rpc","revision":"2016-04-06","schema":"/modules/odl-interface-rpc/2016-04-06","namespace":"urn:opendaylight:genius:interfacemanager:rpcs","conformance-type":"import"},{"name":"itm-rpc","revision":"2016-04-06","schema":"/modules/itm-rpc/2016-04-06","namespace":"urn:opendaylight:genius:itm:rpcs","conformance-type":"import"},{"name":"itm-impl","revision":"2016-04-06","schema":"/modules/itm-impl/2016-04-06","namespace":"urn:opendaylight:genius:itm:impl","conformance-type":"import"},{"name":"alivenessmonitor-impl","revision":"2016-04-06","schema":"/modules/alivenessmonitor-impl/2016-04-06","namespace":"urn:opendaylight:genius:alivenessmonitor:impl","conformance-type":"import"},{"name":"cluster-singleton-service-impl","revision":"2016-07-18","schema":"/modules/cluster-singleton-service-impl/2016-07-18","namespace":"urn:opendaylight:params:xml:ns:yang:md:sal:config:impl:cluster-singleton-service","conformance-type":"import"},{"name":"opendaylight-entity-ownership-service","revision":"2015-08-10","schema":"/modules/opendaylight-entity-ownership-service/2015-08-10","namespace":"urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:spi:entity-ownership-service","conformance-type":"import"},{"name":"interfacemanager-impl","revision":"2016-04-06","schema":"/modules/interfacemanager-impl/2016-04-06","namespace":"urn:opendaylight:genius:interfacemanager:impl","conformance-type":"import"},{"name":"opendaylight-legacy-entity-ownership-service-provider","revision":"2016-02-26","schema":"/modules/opendaylight-legacy-entity-ownership-service-provider/2016-02-26","namespace":"urn:opendaylight:params:xml:ns:yang:controller:config:legacy-entity-ownership-service-provider","conformance-type":"import"},{"name":"openflow-provider-impl","revision":"2014-03-26","schema":"/modules/openflow-provider-impl/2014-03-26","namespace":"urn:opendaylight:params:xml:ns:yang:openflow:common:config:impl","conformance-type":"import"},{"name":"overlay","revision":"2015-01-05","schema":"/modules/overlay/2015-01-05","namespace":"urn:opendaylight:params:xml:ns:yang:overlay","conformance-type":"import"},{"name":"ovsdb","revision":"2015-01-05","schema":"/modules/ovsdb/2015-01-05","namespace":"urn:opendaylight:params:xml:ns:yang:ovsdb","conformance-type":"import"},{"name":"odl-interface-meta","revision":"2016-04-06","schema":"/modules/odl-interface-meta/2016-04-06","namespace":"urn:opendaylight:genius:interfacemanager:meta","conformance-type":"import"},{"name":"netconf-northbound-notification-impl","revision":"2015-08-07","schema":"/modules/netconf-northbound-notification-impl/2015-08-07","namespace":"urn:opendaylight:params:xml:ns:yang:controller:netconf:northbound:notification:impl","conformance-type":"import"},{"name":"neutron-subnets","revision":"2015-07-12","schema":"/modules/neutron-subnets/2015-07-12","namespace":"urn:opendaylight:neutron-subnets","conformance-type":"import"},{"name":"neutron","revision":"2015-07-12","schema":"/modules/neutron/2015-07-12","namespace":"urn:opendaylight:neutron","conformance-type":"import"},{"name":"neutron-portsecurity","revision":"2015-07-12","schema":"/modules/neutron-portsecurity/2015-07-12","namespace":"urn:opendaylight:neutron-portsecurity","conformance-type":"import"},{"name":"neutron-binding","revision":"2015-07-12","schema":"/modules/neutron-binding/2015-07-12","namespace":"urn:opendaylight:neutron-binding","conformance-type":"import"},{"name":"neutron-port-ext","revision":"2015-11-25","schema":"/modules/neutron-port-ext/2015-11-25","namespace":"urn:opendaylight:neutron-port-ext","conformance-type":"import"},{"name":"neutron-qos-ext","revision":"2016-06-13","schema":"/modules/neutron-qos-ext/2016-06-13","namespace":"urn:opendaylight:neutron-qos-ext","conformance-type":"import"},{"name":"neutron-provider-ext","revision":"2015-07-12","schema":"/modules/neutron-provider-ext/2015-07-12","namespace":"urn:opendaylight:neutron-provider-ext","conformance-type":"import"},{"name":"neutron-L3-ext","revision":"2015-07-12","schema":"/modules/neutron-L3-ext/2015-07-12","namespace":"urn:opendaylight:neutron-L3-ext","conformance-type":"import"},{"name":"subscribe-to-notification","revision":"2016-10-28","schema":"/modules/subscribe-to-notification/2016-10-28","namespace":"subscribe:to:notification","conformance-type":"import"},{"name":"instance-identifier-patch-module","revision":"2015-11-21","schema":"/modules/instance-identifier-patch-module/2015-11-21","namespace":"instance:identifier:patch:module","conformance-type":"import"},{"name":"openflow-configuration","revision":"2014-06-30","schema":"/modules/openflow-configuration/2014-06-30","namespace":"urn:opendaylight:openflow:config","conformance-type":"import"},{"name":"openflow-switch-connection-provider-impl","revision":"2014-03-28","schema":"/modules/openflow-switch-connection-provider-impl/2014-03-28","namespace":"urn:opendaylight:params:xml:ns:yang:openflow:switch:connection:provider:impl","conformance-type":"import"},{"name":"openflow-switch-connection-config","revision":"2016-05-06","schema":"/modules/openflow-switch-connection-config/2016-05-06","namespace":"urn:opendaylight:params:xml:ns:yang:openflow:switch:connection:config","conformance-type":"import"},{"name":"sal-role","revision":"2015-07-27","schema":"/modules/sal-role/2015-07-27","namespace":"urn:opendaylight:role:service","conformance-type":"import"},{"name":"opendaylight-flow-statistics","revision":"2013-08-19","schema":"/modules/opendaylight-flow-statistics/2013-08-19","namespace":"urn:opendaylight:flow:statistics","conformance-type":"import"},{"name":"opendaylight-direct-statistics","revision":"2016-05-11","schema":"/modules/opendaylight-direct-statistics/2016-05-11","namespace":"urn:opendaylight:direct:statistics","conformance-type":"import"},{"name":"openflowplugin-extension-general","revision":"2014-07-14","schema":"/modules/openflowplugin-extension-general/2014-07-14","namespace":"urn:opendaylight:openflowplugin:extension:general","conformance-type":"import"},{"name":"openflowplugin-extension-nicira-match","revision":"2014-07-14","schema":"/modules/openflowplugin-extension-nicira-match/2014-07-14","namespace":"urn:opendaylight:openflowplugin:extension:nicira:match","conformance-type":"import"},{"name":"openflowplugin-extension-nicira-action","revision":"2014-07-14","schema":"/modules/openflowplugin-extension-nicira-action/2014-07-14","namespace":"urn:opendaylight:openflowplugin:extension:nicira:action","conformance-type":"import"},{"name":"interface-service-bindings","revision":"2016-04-06","schema":"/modules/interface-service-bindings/2016-04-06","namespace":"urn:opendaylight:genius:interfacemanager:servicebinding","conformance-type":"import"},{"name":"openflow-protocol","revision":"2013-07-31","schema":"/modules/openflow-protocol/2013-07-31","namespace":"urn:opendaylight:openflow:protocol","conformance-type":"import"},{"name":"openflow-resync","revision":"2014-02-06","schema":"/modules/openflow-resync/2014-02-06","namespace":"urn:opendaylight:openflow:resync","conformance-type":"import"},{"name":"opendaylight-switch-features-extension","revision":"2014-02-06","schema":"/modules/opendaylight-switch-features-extension/2014-02-06","namespace":"urn:opendaylight:switch-features:extension","conformance-type":"import"},{"name":"openflow-augments","revision":"2015-02-25","schema":"/modules/openflow-augments/2015-02-25","namespace":"urn:opendaylight:openflow:augments","conformance-type":"import"},{"name":"openflow-approved-extensions","revision":"2016-08-02","schema":"/modules/openflow-approved-extensions/2016-08-02","namespace":"urn:opendaylight:openflow:approved:extensions","conformance-type":"import"},{"name":"experimenter-action","revision":"2014-03-06","schema":"/modules/experimenter-action/2014-03-06","namespace":"urn:ericsson:openflow:experimenter:action","conformance-type":"import"},{"name":"opendaylight-meter-statistics","revision":"2013-11-11","schema":"/modules/opendaylight-meter-statistics/2013-11-11","namespace":"urn:opendaylight:meter:statistics","conformance-type":"import"},{"name":"aaa-cert-rpc","revision":"2015-12-15","schema":"/modules/aaa-cert-rpc/2015-12-15","namespace":"urn:opendaylight:yang:aaa:cert:rpc","conformance-type":"import"},{"name":"openflow-provider","revision":"2015-03-31","schema":"/modules/openflow-provider/2015-03-31","namespace":"urn:opendaylight:params:xml:ns:yang:openflow:api","conformance-type":"import"},{"name":"openflow-plugin-provider-impl","revision":"2015-03-27","schema":"/modules/openflow-plugin-provider-impl/2015-03-27","namespace":"urn:opendaylight:params:xml:ns:yang:config:openflow:plugin:impl","conformance-type":"import"},{"name":"sal-experimenter-message","revision":"2015-10-20","schema":"/modules/sal-experimenter-message/2015-10-20","namespace":"urn:opendaylight:experimenter-message:service","conformance-type":"import"}],"module-set-id":"3"},"ietf-restconf-monitoring:restconf-state":{"capabilities":{"capability":["urn:ietf:params:restconf:capability:depth:1.0","urn:ietf:params:restconf:capability:fields:1.0","urn:ietf:params:restconf:capability:filter:1.0","urn:ietf:params:restconf:capability:replay:1.0","urn:ietf:params:restconf:capability:with-defaults:1.0"]}},"opendaylight-inventory:nodes":{},"aliveness-monitor:monitor-profiles":{"monitor-profile":[{"id":1,"failure-threshold":2,"monitor-interval":120000,"protocol-type":"arp","monitor-window":4}]},"lock-manager:locks":{}}
\ No newline at end of file
diff --git a/csit/libraries/backuprestore/testinput/mainTestCase/odl_backup_operational_before.json b/csit/libraries/backuprestore/testinput/mainTestCase/odl_backup_operational_before.json
deleted file mode 100644 (file)
index 6ce816d..0000000
+++ /dev/null
@@ -1 +0,0 @@
-{"entity-owners:entity-owners":{"entity-type":[{"type":"bgp","entity":[{"id":"/general-entity:entity[general-entity:name='bgp']","candidate":[{"name":"member-1"}],"owner":"member-1"}]},{"type":"ovsdb-southbound-provider","entity":[{"id":"/general-entity:entity[general-entity:name='ovsdb-southbound-provider']","candidate":[{"name":"member-1"}],"owner":"member-1"}]},{"type":"iface","entity":[{"id":"/general-entity:entity[general-entity:name='iface']","candidate":[{"name":"member-1"}],"owner":"member-1"}]},{"type":"org.opendaylight.mdsal.ServiceEntityType","entity":[{"id":"/odl-general-entity:entity[odl-general-entity:name='KeyedInstanceIdentifier{targetType=interface org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node, path=[org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology, org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology[key=TopologyKey [_topologyId=Uri [_value=topology-netconf]]], org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node[key=NodeKey [_nodeId=Uri [_value=CONTROLLER1]]]]}']","candidate":[{"name":"member-1"}],"owner":"member-1"},{"id":"/odl-general-entity:entity[odl-general-entity:name='KeyedInstanceIdentifier{targetType=interface org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node, path=[org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology, org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology[key=TopologyKey [_topologyId=Uri [_value=topology-netconf]]], org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node[key=NodeKey [_nodeId=Uri [_value=CONTROLLER2]]]]}']","candidate":[{"name":"member-1"}],"owner":"member-1"}]},{"type":"org.opendaylight.mdsal.AsyncServiceCloseEntityType","entity":[{"id":"/odl-general-entity:entity[odl-general-entity:name='KeyedInstanceIdentifier{targetType=interface org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node, path=[org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology, org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology[key=TopologyKey [_topologyId=Uri [_value=topology-netconf]]], org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node[key=NodeKey [_nodeId=Uri [_value=CONTROLLER1]]]]}']","candidate":[{"name":"member-1"}],"owner":"member-1"},{"id":"/odl-general-entity:entity[odl-general-entity:name='KeyedInstanceIdentifier{targetType=interface org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node, path=[org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology, org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology[key=TopologyKey [_topologyId=Uri [_value=topology-netconf]]], org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node[key=NodeKey [_nodeId=Uri [_value=CONTROLLER2]]]]}']","candidate":[{"name":"member-1"}],"owner":"member-1"}]},{"type":"ovsdb-hwvtepsouthbound-provider","entity":[{"id":"/general-entity:entity[general-entity:name='ovsdb-hwvtepsouthbound-provider']","candidate":[{"name":"member-1"}],"owner":"member-1"}]},{"type":"arpmonitoring","entity":[{"id":"/general-entity:entity[general-entity:name='arpmonitoring']","candidate":[{"name":"member-1"}],"owner":"member-1"}]},{"type":"elan","entity":[{"id":"/general-entity:entity[general-entity:name='elan']","candidate":[{"name":"member-1"}],"owner":"member-1"}]},{"type":"netvirt-acl","entity":[{"id":"/general-entity:entity[general-entity:name='netvirt-acl']","candidate":[{"name":"member-1"}],"owner":"member-1"}]}]},"network-topology:network-topology":{"topology":[{"topology-id":"hwvtep:1"},{"topology-id":"flow:1"},{"topology-id":"ovsdb:1"},{"topology-id":"topology-netconf","node":[{"node-id":"CONTROLLER1","netconf-node-topology:clustered-connection-status":{"netconf-master-node":"akka.tcp://opendaylight-cluster-data@127.0.0.1:2550"},"netconf-node-topology:available-capabilities":{"available-capability":["(urn:opendaylight:genius:lockmanager:impl?revision=2016-04-06)lockmanager-impl","(urn:ericsson:experimenter:openflow:types?revision=2014-04-25)experimenter-flow-types","(urn:ietf:params:xml:ns:yang:ietf-inet-types?revision=2010-09-24)ietf-inet-types","(urn:opendaylight:params:xml:ns:yang:controller:sal:restconf:service?revision=2015-07-08)sal-restconf-service","(urn:opendaylight:genius:resourcemanager?revision=2016-06-22)resource-manager","(urn:opendaylight:meters:service?revision=2016-03-16)sal-meters-batch","(urn:opendaylight:params:xml:ns:yang:controller:threadpool?revision=2013-04-09)threadpool","(urn:opendaylight:params:xml:ns:yang:controller:md:sal:remote?revision=2014-01-14)sal-remote","(urn:opendaylight:netvirt:aclservice?revision=2016-06-08)aclservice","(urn:opendaylight:params:xml:ns:yang:openflowplugin:sm:control?revision=2015-08-12)statistics-manager-control","(urn:opendaylight:openflowplugin:extension:nicira:action?revision=2014-07-14)openflowplugin-extension-nicira-action","(urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:spi:operational-dom-store?revision=2014-06-17)opendaylight-operational-dom-datastore","(urn:opendaylight:params:xml:ns:yang:controller:shutdown:impl?revision=2013-12-18)shutdown-impl","(urn:opendaylight:flows:service?revision=2016-03-14)sal-flows-batch","(urn:opendaylight:neutron-qos-ext?revision=2016-06-13)neutron-qos-ext","(urn:opendaylight:params:xml:ns:yang:aaa:credential-store?revision=2015-02-26)credential-store","(urn:ietf:params:xml:ns:yang:ietf-access-control-list?revision=2016-02-18)ietf-access-control-list","(urn:experimenter:matchExp?revision=2014-03-06)experimenter-match-type","(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology","(urn:ericsson:neutron:ml3?revision=2014-09-30)neutron-ml3-services","(urn:opendaylight:params:xml:ns:yang:config:openflow:plugin:impl?revision=2015-03-27)openflow-plugin-provider-impl","(urn:opendaylight:params:xml:ns:yang:controller:netty:eventexecutor?revision=2013-11-12)netty-event-executor","(urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl?revision=2013-04-05)threadpool-impl","(urn:ericsson:switch-features:notification?revision=2013-08-19)switch-features-notification","(urn:opendaylight:genius:interfacemanager:meta?revision=2016-04-06)odl-interface-meta","(urn:opendaylight:groups:service?revision=2016-03-15)sal-groups-batch","(urn:opendaylight:genius:alivenessmonitor?revision=2016-04-11)aliveness-monitor","(urn:opendaylight:flow:service?revision=2013-08-19)sal-flow","(urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring?revision=2010-10-04)ietf-netconf-monitoring","(urn:opendaylight:queue:statistics?revision=2013-12-16)opendaylight-queue-statistics","(urn:opendaylight:model:topology:general?revision=2013-10-30)opendaylight-topology","(urn:ietf:params:xml:ns:yang:ietf-network-topology?revision=2015-06-08)ietf-network-topology","(urn:opendaylight:params:xml:ns:yang:controller:md:sal:cluster:admin?revision=2015-10-13)cluster-admin","(urn:opendaylight:neutron-extensions?revision=2016-06-17)neutron-extensions","(urn:opendaylight:params:xml:ns:yang:controller:config:concurrent-data-broker?revision=2014-11-24)odl-concurrent-data-broker-cfg","(urn:ietf:params:xml:ns:yang:ietf-yang-library?revision=2016-06-21)ietf-yang-library","(urn:opendaylight:netvirt:cloud-servicechain:state?revision=2017-05-11)cloud-service-chain-state","(urn:opendaylight:flow:transaction?revision=2015-03-04)flow-capable-transaction","(urn:opendaylight:neutron-attrs?revision=2015-07-12)neutron-attrs","(urn:ericsson:neutron:ml2?revision=2014-09-30)neutron-ml2-services","(urn:opendaylight:params:xml:ns:yang:controller:protocol:framework?revision=2014-03-13)protocol-framework","(urn:opendaylight:flow:types:port?revision=2013-09-25)opendaylight-port-types","(urn:opendaylight:params:xml:ns:yang:openflow:common:config?revision=2014-03-26)openflow-provider","(urn:opendaylight:neutron-L3-ext?revision=2015-07-12)neutron-L3-ext","(urn:opendaylight:netvirt:natservice:rpc?revision=2017-02-09)odl-nat-rpc","(urn:opendaylight:vendor:extension-resync-message?revision=2016-07-13)extension-resync-message","(urn:opendaylight:params:xml:ns:yang:controller:md:sal:clustering:entity-owners?revision=2015-08-04)entity-owners","(urn:opendaylight:neutron-sfc?revision=2016-05-11)neutron-sfc","(urn:opendaylight:genius:itm:config?revision=2016-04-06)itm-config","(urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:spi:config-dom-store?revision=2014-06-17)opendaylight-config-dom-datastore","(urn:opendaylight:params:xml:ns:yang:openflowplugin:nx:config:impl?revision=2014-07-11)nicira-extension-impl","(urn:opendaylight:genius:interface:statistics?revision=2015-08-24)interface-statistics","(urn:opendaylight:neutron-hostconfig?revision=2015-07-12)neutron-hostconfig","(urn:TBD:params:xml:ns:yang:network:isis-topology?revision=2013-07-12)isis-topology","(urn:opendaylight:netvirt:vpn:rpc?revision=2016-02-01)vpn-rpc","(urn:opendaylight:netvirt:elan:statistics?revision=2015-08-24)elan-statistics","(urn:opendaylight:neutron-bgpvpns?revision=2015-09-03)neutron-bgpvpns","(urn:opendaylight:openflowplugin:extension:nicira:match?revision=2014-07-14)openflowplugin-extension-nicira-match","(urn:ericsson:experimenter:flow:types?revision=2014-04-22)experimenter-flow-types","(urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:v1:codec?revision=2016-07-14)opendaylight-md-sal-binding-v1-codec","(urn:ericsson:params:xml:ns:yang:ebgp?revision=2015-09-01)ebgp","(urn:opendaylight:node:error:service?revision=2014-04-10)node-error","(urn:ericsson:resync:rpcs:notification?revision=2014-02-07)resync-notification","(urn:ietf:params:xml:ns:yang:ospf-topology?revision=2013-07-12)ospf-topology","(urn:opendaylight:direct:statistics?revision=2016-05-11)opendaylight-direct-statistics","(urn:TBD:params:xml:ns:yang:network:ted?revision=2013-10-21)ted","(urn:opendaylight:openflowplugin:extension:resync?revision=2016-07-13)openflowplugin-extension-resync","(urn:opendaylight:netvirt:l3vpn?revision=2013-09-11)odl-l3vpn","(urn:opendaylight:params:xml:ns:yang:controller:netconf:topology?revision=2015-07-27)netconf-topology","(urn:opendaylight:vendor:extension-switchfeatures-message?revision=2016-07-13)extension-switchfeatures-message","(urn:opendaylight:params:xml:ns:yang:ovsdb?revision=2015-01-05)ovsdb","(urn:opendaylight:params:xml:ns:yang:config:openflow:experimenter-switchfeatures-provider?revision=2016-07-13)experimenter-switchfeatures-provider","(urn:opendaylight:yang:aaa:cert:mdsal?revision=2016-03-21)aaa-cert-mdsal","(urn:opendaylight:neutron-binding?revision=2015-07-12)neutron-binding","(urn:opendaylight:openflowplugin:experimenter:types?revision=2015-10-20)openflowplugin-experimenter-types","(urn:ietf:params:xml:ns:yang:ietf-interfaces?revision=2014-05-08)ietf-interfaces","(urn:opendaylight:params:xml:ns:yang:controller:md:sal:common?revision=2013-10-28)opendaylight-md-sal-common","(urn:opendaylight:params:xml:ns:yang:openflow:provider:config?revision=2016-05-10)openflow-provider-config","(urn:opendaylight:params:xml:ns:yang:controller:netty:timer?revision=2013-11-19)netty-timer","(urn:opendaylight:vendor:extension:resync:error:notification?revision=2016-02-07)resync-error-notification","(urn:opendaylight:params:xml:ns:yang:controller:inmemory-datastore-provider?revision=2014-06-17)opendaylight-inmemory-datastore-provider","(urn:opendaylight:genius:resourcemanager:impl?revision=2016-04-06)resourcemanager-impl","(urn:opendaylight:params:xml:ns:yang:netvirt:inter-vpn-link?revision=2016-03-11)inter-vpn-link","(urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf?revision=2015-08-03)odl-sal-netconf-connector-cfg","(urn:ericsson:resync:start:notification?revision=2014-02-07)start-resync-download-notification","(urn:opendaylight:netvirt:cloud-servicechain:api?revision=2015-12-11)cloud-servicechain-api","(urn:opendaylight:netvirt:natservice?revision=2016-01-11)odl-nat","(urn:opendaylight:params:xml:ns:yang:md:sal:config:impl:cluster-singleton-service?revision=2016-07-18)cluster-singleton-service-impl","(urn:opendaylight:group:types?revision=2013-10-18)opendaylight-group-types","(urn:opendaylight:neutron-ports?revision=2015-07-12)neutron-ports","(urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl?revision=2013-10-28)opendaylight-sal-binding-broker-impl","(urn:opendaylight:genius:interfacemanager:servicebinding?revision=2016-04-06)interface-service-bindings","(urn:opendaylight:neutron-fwaas?revision=2015-07-12)neutron-fwaas","(urn:opendaylight:params:xml:ns:yang:controller:config:legacy-entity-ownership-service-provider?revision=2016-02-26)opendaylight-legacy-entity-ownership-service-provider","(urn:opendaylight:netvirt:dhcp?revision=2016-04-28)vpnservice-dhcp","(urn:opendaylight:netvirt:ipv6service:nd:packet?revision=2016-06-20)neighbor-discovery","(urn:opendaylight:params:xml:ns:yang:controller:netty?revision=2013-11-19)netty","(urn:opendaylight:neutron-subnets?revision=2015-07-12)neutron-subnets","(urn:ericsson:openflow:experimenter:action?revision=2014-03-06)experimenter-action","(urn:opendaylight:yang:extension:yang-ext?revision=2013-07-09)yang-ext","(urn:opendaylight:params:xml:ns:yang:openflowplugin:ofjava:nx:config?revision=2014-07-11)openflowjava-nx-config","(urn:opendaylight:service:barrier:common?revision=2016-03-15)barrier-common","(urn:ietf:params:xml:ns:yang:iana-if-type?revision=2014-05-08)iana-if-type","(urn:opendaylight:params:xml:ns:yang:controller:netconf:northbound:ssh?revision=2015-01-14)netconf-northbound-ssh","(urn:opendaylight:module:config?revision=2014-10-15)node-config","(urn:opendaylight:netvirt:aclservice-config?revision=2016-08-06)aclservice-config","(urn:opendaylight:params:xml:ns:yang:openflowplugin:ofjava:nx:api:config?revision=2014-07-11)openflowjava-nx-api-config","(urn:opendaylight:params:xml:ns:yang:openflow:common:config:impl?revision=2014-03-26)openflow-provider-impl","(urn:ietf:params:xml:ns:netconf:base:1.0?revision=2011-06-01)ietf-netconf","(urn:opendaylight:params:xml:ns:yang:ovsdb:hwvtep?revision=2015-09-01)hwvtep","(urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl:scheduled?revision=2013-12-01)threadpool-impl-scheduled","(urn:opendaylight:genius:lockmanager?revision=2016-04-13)lock-manager","(urn:ericsson:switch-features:rpcs:notification?revision=2014-02-07)switch-features-extension","(urn:opendaylight:inventory?revision=2013-08-19)opendaylight-inventory","(urn:opendaylight:neutron-l2gateways?revision=2015-07-12)neutron-l2gateways","(urn:opendaylight:echo:service?revision=2015-03-05)sal-echo","(urn:opendaylight:neutron-secgroups?revision=2015-07-12)neutron-secgroups","(urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:spi:entity-ownership-service?revision=2015-08-10)opendaylight-entity-ownership-service","(urn:opendaylight:neutron-metering?revision=2015-07-12)neutron-metering","(urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl:fixed?revision=2013-12-01)threadpool-impl-fixed","(urn:opendaylight:table:service?revision=2013-10-26)sal-table","(urn:opendaylight:group:statistics?revision=2013-11-11)opendaylight-group-statistics","(urn:opendaylight:params:xml:ns:yang:openflow:api?revision=2015-03-31)openflow-provider","(urn:opendaylight:params:xml:ns:yang:controller:netconf:northbound:tcp?revision=2015-04-23)netconf-northbound-tcp","(urn:opendaylight:genius:mdsalutil?revision=2016-04-06)odl-mdsalutil","(urn:huawei:params:xml:ns:yang:l3vpn?revision=2014-08-15)l3vpn","(urn:opendaylight:openflowjava:extension-switchfeatures?revision=2016-07-13)openflowjava-extension-switchfeatures","(urn:opendaylight:service:batch:common?revision=2016-03-22)batch-common","(urn:opendaylight:params:xml:ns:yang:controller:netconf:topology:shared:schema:repository?revision=2015-07-27)shared-schema-repository","(urn:opendaylight:params:xml:ns:yang:openflowplugin:app:forwardingrules-manager:config?revision=2016-05-11)forwarding-rules-manager-config","(urn:opendaylight:action:types?revision=2013-11-12)opendaylight-action-types","(urn:opendaylight:genius:interfacemanager:impl?revision=2016-04-06)interfacemanager-impl","(urn:opendaylight:port:statistics?revision=2013-12-14)opendaylight-port-statistics","(urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:general-entity?revision=2015-08-20)general-entity","(urn:opendaylight:params:xml:ns:yang:controller:config:netconf:auth?revision=2015-07-15)netconf-auth","(urn:opendaylight:netvirt:elan:config?revision=2015-07-10)elan-config","(urn:opendaylight:genius:idmanager?revision=2016-04-06)id-manager","(urn:opendaylight:netvirt:l3nexthop?revision=2015-04-09)l3nexthop","(urn:opendaylight:packet:service?revision=2013-07-09)packet-processing","(urn:opendaylight:netvirt:neutronvpn:config?revision=2016-08-06)neutronvpn-config","(urn:opendaylight:genius:arputil?revision=2016-04-06)odl-arputil","(urn:opendaylight:openflowjava:nx:match?revision=2014-04-21)nicira-match","(urn:opendaylight:table:types?revision=2013-10-26)opendaylight-table-types","(urn:TBD:params:xml:ns:yang:ospf-topology?revision=2013-10-21)ospf-topology","(urn:opendaylight:port:service?revision=2013-11-07)sal-port","(urn:opendaylight:neutron-trunks?revision=2017-01-18)neutron-trunks","(urn:opendaylight:params:xml:ns:yang:controller:md:sal:rest:connector?revision=2014-07-24)opendaylight-rest-connector","(urn:opendaylight:yang:aaa:cert?revision=2015-11-26)aaa-cert","urn:ietf:params:netconf:capability:notification:1.0","(urn:ietf:params:xml:ns:netmod:notification?revision=2008-07-14)nc-notifications","(urn:ietf:params:xml:ns:yang:ietf-netconf-notifications?revision=2012-02-06)ietf-netconf-notifications","(urn:opendaylight:neutron-portsecurity?revision=2015-07-12)neutron-portsecurity","(urn:opendaylight:openflow:oxm?revision=2015-02-25)openflow-extensible-match","(urn:opendaylight:neutron-sfc-flow-classifier?revision=2016-05-11)neutron-sfc-flow-classifier","(urn:opendaylight:neutron-networks?revision=2015-07-12)neutron-networks","(urn:opendaylight:params:xml:ns:yang:controller:shutdown?revision=2013-12-18)shutdown","(urn:opendaylight:neutron-types?revision=2016-05-17)neutron-types","(urn:opendaylight:experimenter-message:service?revision=2015-10-20)sal-experimenter-message","(urn:opendaylight:genius:mdsalutil:impl?revision=2016-04-06)mdsalutil-impl","(config:aaa:authn:netconf:plugin?revision=2015-07-15)aaa-authn-netconf-plugin","(urn:opendaylight:params:xml:ns:yang:controller:config:netconf:northbound?revision=2015-01-14)netconf-northbound","(urn:opendaylight:params:xml:ns:yang:controller:config:cluster-admin-provider?revision=2015-10-13)cluster-admin-provider","(urn:opendaylight:flow:table:statistics?revision=2013-12-15)opendaylight-flow-table-statistics","(urn:opendaylight:neutron-provider-ext?revision=2015-07-12)neutron-provider-ext","(urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom?revision=2013-10-28)opendaylight-md-sal-dom","(urn:opendaylight:opendaylight-ipv6-arbitrary-bitmask-fields?revision=2016-02-24)opendaylight-ipv6-arbitrary-bitmask-fields","(urn:opendaylight:neutron?revision=2015-07-12)neutron","(urn:opendaylight:netconf-node-inventory?revision=2014-01-08)netconf-node-inventory","(urn:opendaylight:daexim-spi?revision=2016-08-16)data-export-import-spi","(urn:opendaylight:params:xml:ns:yang:controller:netty:threadgroup?revision=2013-11-07)threadgroup","(urn:opendaylight:genius:itm:op?revision=2016-04-06)itm-state","(urn:opendaylight:neutron-vpnaas?revision=2015-07-12)neutron-vpnaas","(urn:ietf:params:xml:ns:yang:ietf-restconf?revision=2017-01-26)ietf-restconf","(urn:opendaylight:params:xml:ns:yang:controller:config:remote-rpc-connector?revision=2014-07-07)remote-rpc-connector","(urn:opendaylight:netvirt:vpn:config?revision=2016-11-30)vpn-config","(urn:opendaylight:params:xml:ns:yang:topology-lldp-discovery:config?revision=2016-05-11)topology-lldp-discovery-config","(urn:ericsson:resync:output:notification?revision=2014-02-07)resync-output","(urn:opendaylight:params:xml:ns:yang:openflowplugin:extension:api?revision=2015-04-25)openflowplugin-extension-registry","(urn:opendaylight:openflowjava:nx:action?revision=2014-04-21)nicira-action","(urn:ietf:params:xml:ns:yang:rpc-context?revision=2013-06-17)rpc-context","(urn:opendaylight:params:xml:ns:yang:sdncconfig:impl?revision=2014-12-10)sdncconfig-impl","(urn:opendaylight:genius:arputil:impl?revision=2016-04-06)arputil-impl","(urn:cisco:params:xml:ns:yang:bgp?revision=2013-07-15)bgp","(urn:opendaylight:params:xml:ns:yang:controller:config:actor-system-provider:service?revision=2015-10-05)actor-system-provider-service","(urn:opendaylight:params:xml:ns:yang:controller:config:openflowplugin:nx:config?revision=2014-07-11)nicira-extension","(urn:opendaylight:params:xml:ns:yang:dhcpservice:api?revision=2015-07-10)dhcpservice-api","(subscribe:to:notification?revision=2016-10-28)subscribe-to-notification","(urn:opendaylight:flow:inventory?revision=2013-08-19)flow-node-inventory","(urn:ericsson:experimenter:action:types?revision=2014-02-28)experimenter-action-types","(urn:opendaylight:params:xml:ns:yang:openflow:applications:lldp-speaker?revision=2014-10-23)lldp-speaker","(urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider?revision=2014-06-12)distributed-datastore-provider","(urn:ietf:params:xml:ns:yang:ietf-yang-types?revision=2013-07-15)ietf-yang-types","(urn:opendaylight:model:statistics:types?revision=2013-09-25)opendaylight-statistics-types","(urn:TBD:params:xml:ns:yang:nt:l3-unicast-igp-topology?revision=2013-10-21)l3-unicast-igp-topology","(urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl?revision=2013-10-28)opendaylight-sal-dom-broker-impl","(urn:ietf:params:xml:ns:netconf:notification:1.0?revision=2008-07-14)notifications","(urn:opendaylight:neutron-provider?revision=2015-07-12)neutron-provider","(urn:opendaylight:vendor:extension:resync:output:notification?revision=2016-08-19)resync-output","(instance:identifier:patch:module?revision=2015-11-21)instance-identifier-patch-module","(urn:opendaylight:openflow:augments?revision=2015-02-25)openflow-augments","(urn:TBD:params:xml:ns:yang:network:isis-topology?revision=2013-10-21)isis-topology","(urn:opendaylight:daexim-internal?revision=2016-09-21)data-export-import-internal","(urn:opendaylight:arbitrary:bitmask:fields?revision=2016-01-30)opendaylight-arbitrary-bitmask-fields","(urn:opendaylight:netvirt:elan?revision=2015-06-02)elan","(urn:opendaylight:netvirt:elan:etree?revision=2016-06-14)etree","(urn:opendaylight:params:xml:ns:yang:controller:config:netconf?revision=2014-04-08)odl-netconf-cfg","(urn:opendaylight:neutron-lbaasv2?revision=2015-07-12)neutron-lbaasv2","(urn:opendaylight:genius:idmanager:impl?revision=2016-04-06)idmanager-impl","(urn:ericsson:reconciliation:service?revision=2015-08-04)forwardingrules-manager-reconciliation","(urn:opendaylight:flow:errors?revision=2013-11-16)flow-errors","(urn:opendaylight:openflow:resync?revision=2014-02-06)openflow-resync","(urn:opendaylight:params:xml:ns:yang:overlay?revision=2015-01-05)overlay","(urn:ietf:params:xml:ns:yang:ietf-inet-types?revision=2013-07-15)ietf-inet-types","(urn:opendaylight:genius:itm?revision=2016-04-06)itm","(urn:opendaylight:genius:interfacemanager?revision=2016-04-06)odl-interface","(urn:opendaylight:params:xml:ns:yang:openflow:switch:connection:provider:impl?revision=2014-03-28)openflow-switch-connection-provider-impl","(urn:opendaylight:params:xml:ns:yang:config:openflow:experimenter-resync-provider?revision=2016-07-13)experimenter-resync-provider","(urn:opendaylight:openflow:common:types?revision=2013-07-31)openflow-types","(urn:opendaylight:params:xml:ns:yang:controller:netconf:northbound:notification?revision=2015-08-06)netconf-northbound-notification","(urn:opendaylight:openflow:protocol?revision=2013-07-31)openflow-protocol","(urn:opendaylight:params:xml:ns:yang:dhcpservice:config?revision=2015-07-10)dhcpservice-config","(urn:opendaylight:params:xml:ns:yang:controller:config:actor-system-provider:impl?revision=2015-10-05)actor-system-provider-impl","(urn:opendaylight:yang:aaa:cert:rpc?revision=2015-12-15)aaa-cert-rpc","(urn:opendaylight:model:topology:inventory?revision=2013-10-30)opendaylight-topology-inventory","(urn:ietf:params:xml:ns:yang:ietf-yang-types?revision=2010-09-24)ietf-yang-types","(urn:opendaylight:genius:itm:rpcs?revision=2016-04-06)itm-rpc","urn:ietf:params:netconf:base:1.1","(urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl:flexible?revision=2013-12-01)threadpool-impl-flexible","(urn:ietf:params:xml:ns:yang:ietf-restconf?revision=2013-10-19)ietf-restconf","(urn:opendaylight:netconf-node-topology?revision=2015-01-14)netconf-node-topology","(urn:opendaylight:meter:service?revision=2013-09-18)sal-meter","(urn:opendaylight:netvirt:fibmanager?revision=2015-03-30)odl-fib","(urn:opendaylight:netvirt:fib:rpc?revision=2016-01-21)fib-rpc","(urn:opendaylight:params:xml:ns:yang:controller:netconf:northbound:notification:impl?revision=2015-08-07)netconf-northbound-notification-impl","(urn:opendaylight:params:xml:ns:yang:openflow:switch:connection:config?revision=2016-05-06)openflow-switch-connection-config","(urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring-extension?revision=2013-12-10)ietf-netconf-monitoring-extension","(urn:opendaylight:group:service?revision=2013-09-18)sal-group","urn:ietf:params:netconf:base:1.0","(urn:opendaylight:neutron-port-ext?revision=2015-11-25)neutron-port-ext","(urn:ietf:params:xml:ns:yang:ietf-network?revision=2015-06-08)ietf-network","(urn:opendaylight:openflow:config?revision=2014-06-30)openflow-configuration","urn:ietf:params:netconf:capability:exi:1.0","(urn:opendaylight:daexim?revision=2016-09-21)data-export-import","(urn:ietf:params:xml:ns:yang:iana-afn-safi?revision=2013-07-04)iana-afn-safi","(urn:opendaylight:genius:alivenessmonitor:impl?revision=2016-04-06)alivenessmonitor-impl","(urn:opendaylight:params:xml:ns:yang:openflow:applications:lldp-speaker:config?revision=2016-05-12)lldp-speaker-config","(urn:ietf:params:xml:ns:yang:ietf-restconf-monitoring?revision=2017-01-26)ietf-restconf-monitoring","(urn:opendaylight:genius:itm:impl?revision=2016-04-06)itm-impl","(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-07-12)network-topology","(urn:opendaylight:openflowplugin:extension:switchfeatures?revision=2016-07-13)openflowplugin-extension-switchfeatures","(urn:opendaylight:neutron-constants?revision=2015-07-12)neutron-constants","(urn:opendaylight:openflow:common:instruction?revision=2013-07-31)openflow-instruction","(urn:opendaylight:params:xml:ns:yang:controller:config:netconf:northbound:impl?revision=2015-01-12)netconf-northbound-impl","(urn:opendaylight:flat-batch:service?revision=2016-03-21)sal-flat-batch","(urn:opendaylight:params:xml:ns:yang:md:sal:config:spi:cluster-singleton-service?revision=2016-07-18)cluster-singleton-service-spi","(urn:opendaylight:flow:types?revision=2013-10-26)opendaylight-flow-types","(urn:opendaylight:meter:statistics?revision=2013-11-11)opendaylight-meter-statistics","(urn:opendaylight:model:match:types?revision=2013-10-26)opendaylight-match-types","(urn:opendaylight:genius:interfacemanager:rpcs?revision=2016-04-06)odl-interface-rpc","(urn:opendaylight:flow:statistics?revision=2013-08-19)opendaylight-flow-statistics","(urn:opendaylight:experimenter-mp-message:service?revision=2015-10-20)sal-experimenter-mp-message","(urn:opendaylight:queue:service?revision=2015-03-05)sal-queue","(urn:opendaylight:openflow:system?revision=2013-09-27)system-notifications","(urn:opendaylight:openflow:common:action?revision=2015-02-03)openflow-action","(urn:opendaylight:openflowjava:extension-resync?revision=2016-07-13)openflowjava-extension-resync","(urn:opendaylight:neutron-qos?revision=2016-06-13)neutron-qos","(urn:opendaylight:params:xml:ns:yang:openflow:switch:connection:provider?revision=2014-03-28)openflow-switch-connection-provider","(urn:TBD:params:xml:ns:yang:network:ted?revision=2013-07-12)ted","(urn:opendaylight:role:service?revision=2015-07-27)sal-role","(urn:opendaylight:vendor:extension-switchfeatures:notification?revision=2016-08-19)switch-features-notification","(urn:opendaylight:params:xml:ns:yang:controller:config?revision=2013-04-05)config","(urn:opendaylight:openflow:approved:extensions?revision=2016-08-02)openflow-approved-extensions","(urn:sal:restconf:event:subscription?revision=2014-07-08)sal-remote-augment","(urn:opendaylight:openflowplugin:extension:general?revision=2014-07-14)openflowplugin-extension-general","(config:aaa:authn:encrypt:service:config?revision=2016-09-15)aaa-encrypt-service-config","(urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding?revision=2013-10-28)opendaylight-md-sal-binding","(urn:opendaylight:switch-features:extension?revision=2014-02-06)opendaylight-switch-features-extension","(urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:pingpong?revision=2014-11-07)opendaylight-pingpong-broker","(urn:opendaylight:flow:topology:discovery?revision=2013-08-19)flow-topology-discovery","(urn:ericsson:experimenter:table:types?revision=2014-03-06)experimenter-table-types","(urn:TBD:params:xml:ns:yang:nt:l3-unicast-igp-topology?revision=2013-07-12)l3-unicast-igp-topology","(urn:ietf:params:xml:ns:yang:ietf-yang-library?revision=2016-04-09)ietf-yang-library","(urn:opendaylight:model:topology:view?revision=2013-10-30)opendaylight-topology-view","(urn:opendaylight:params:xml:ns:yang:controller:netconf:north:mapper?revision=2015-01-14)netconf-northbound-mapper","(urn:opendaylight:params:xml:ns:yang:controller:config:netconf:client:dispatcher?revision=2014-04-08)odl-netconfig-client-cfg","(urn:ietf:params:xml:ns:yang:ietf-packet-fields?revision=2016-02-18)ietf-packet-fields","(urn:ericsson:resync:error:notification?revision=2014-02-07)resync-error-notification","urn:ietf:params:netconf:capability:candidate:1.0","(urn:opendaylight:netvirt:neutronvpn?revision=2015-06-02)neutronvpn","(urn:opendaylight:meter:types?revision=2013-09-18)opendaylight-meter-types","(urn:opendaylight:flow:types:queue?revision=2013-09-25)opendaylight-queue-types","(urn:opendaylight:l2:types?revision=2013-08-27)opendaylight-l2-types","(urn:opendaylight:neutron-L3?revision=2015-07-12)neutron-L3","(urn:opendaylight:params:xml:ns:yang:mdsal:core:general-entity?revision=2015-09-30)odl-general-entity"]},"netconf-node-topology:host":"127.0.0.1","netconf-node-topology:unavailable-capabilities":{},"netconf-node-topology:connection-status":"connected","netconf-node-topology:port":1830},{"node-id":"CONTROLLER2","netconf-node-topology:clustered-connection-status":{"netconf-master-node":"akka.tcp://opendaylight-cluster-data@127.0.0.1:2550"},"netconf-node-topology:available-capabilities":{"available-capability":["(urn:opendaylight:genius:lockmanager:impl?revision=2016-04-06)lockmanager-impl","(urn:ericsson:experimenter:openflow:types?revision=2014-04-25)experimenter-flow-types","(urn:ietf:params:xml:ns:yang:ietf-inet-types?revision=2010-09-24)ietf-inet-types","(urn:opendaylight:params:xml:ns:yang:controller:sal:restconf:service?revision=2015-07-08)sal-restconf-service","(urn:opendaylight:genius:resourcemanager?revision=2016-06-22)resource-manager","(urn:opendaylight:meters:service?revision=2016-03-16)sal-meters-batch","(urn:opendaylight:params:xml:ns:yang:controller:threadpool?revision=2013-04-09)threadpool","(urn:opendaylight:params:xml:ns:yang:controller:md:sal:remote?revision=2014-01-14)sal-remote","(urn:opendaylight:netvirt:aclservice?revision=2016-06-08)aclservice","(urn:opendaylight:params:xml:ns:yang:openflowplugin:sm:control?revision=2015-08-12)statistics-manager-control","(urn:opendaylight:openflowplugin:extension:nicira:action?revision=2014-07-14)openflowplugin-extension-nicira-action","(urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:spi:operational-dom-store?revision=2014-06-17)opendaylight-operational-dom-datastore","(urn:opendaylight:params:xml:ns:yang:controller:shutdown:impl?revision=2013-12-18)shutdown-impl","(urn:opendaylight:flows:service?revision=2016-03-14)sal-flows-batch","(urn:opendaylight:neutron-qos-ext?revision=2016-06-13)neutron-qos-ext","(urn:opendaylight:params:xml:ns:yang:aaa:credential-store?revision=2015-02-26)credential-store","(urn:ietf:params:xml:ns:yang:ietf-access-control-list?revision=2016-02-18)ietf-access-control-list","(urn:experimenter:matchExp?revision=2014-03-06)experimenter-match-type","(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-10-21)network-topology","(urn:ericsson:neutron:ml3?revision=2014-09-30)neutron-ml3-services","(urn:opendaylight:params:xml:ns:yang:config:openflow:plugin:impl?revision=2015-03-27)openflow-plugin-provider-impl","(urn:opendaylight:params:xml:ns:yang:controller:netty:eventexecutor?revision=2013-11-12)netty-event-executor","(urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl?revision=2013-04-05)threadpool-impl","(urn:ericsson:switch-features:notification?revision=2013-08-19)switch-features-notification","(urn:opendaylight:genius:interfacemanager:meta?revision=2016-04-06)odl-interface-meta","(urn:opendaylight:groups:service?revision=2016-03-15)sal-groups-batch","(urn:opendaylight:genius:alivenessmonitor?revision=2016-04-11)aliveness-monitor","(urn:opendaylight:flow:service?revision=2013-08-19)sal-flow","(urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring?revision=2010-10-04)ietf-netconf-monitoring","(urn:opendaylight:queue:statistics?revision=2013-12-16)opendaylight-queue-statistics","(urn:opendaylight:model:topology:general?revision=2013-10-30)opendaylight-topology","(urn:ietf:params:xml:ns:yang:ietf-network-topology?revision=2015-06-08)ietf-network-topology","(urn:opendaylight:params:xml:ns:yang:controller:md:sal:cluster:admin?revision=2015-10-13)cluster-admin","(urn:opendaylight:neutron-extensions?revision=2016-06-17)neutron-extensions","(urn:opendaylight:params:xml:ns:yang:controller:config:concurrent-data-broker?revision=2014-11-24)odl-concurrent-data-broker-cfg","(urn:ietf:params:xml:ns:yang:ietf-yang-library?revision=2016-06-21)ietf-yang-library","(urn:opendaylight:netvirt:cloud-servicechain:state?revision=2017-05-11)cloud-service-chain-state","(urn:opendaylight:flow:transaction?revision=2015-03-04)flow-capable-transaction","(urn:opendaylight:neutron-attrs?revision=2015-07-12)neutron-attrs","(urn:ericsson:neutron:ml2?revision=2014-09-30)neutron-ml2-services","(urn:opendaylight:params:xml:ns:yang:controller:protocol:framework?revision=2014-03-13)protocol-framework","(urn:opendaylight:flow:types:port?revision=2013-09-25)opendaylight-port-types","(urn:opendaylight:params:xml:ns:yang:openflow:common:config?revision=2014-03-26)openflow-provider","(urn:opendaylight:neutron-L3-ext?revision=2015-07-12)neutron-L3-ext","(urn:opendaylight:netvirt:natservice:rpc?revision=2017-02-09)odl-nat-rpc","(urn:opendaylight:vendor:extension-resync-message?revision=2016-07-13)extension-resync-message","(urn:opendaylight:params:xml:ns:yang:controller:md:sal:clustering:entity-owners?revision=2015-08-04)entity-owners","(urn:opendaylight:neutron-sfc?revision=2016-05-11)neutron-sfc","(urn:opendaylight:genius:itm:config?revision=2016-04-06)itm-config","(urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:spi:config-dom-store?revision=2014-06-17)opendaylight-config-dom-datastore","(urn:opendaylight:params:xml:ns:yang:openflowplugin:nx:config:impl?revision=2014-07-11)nicira-extension-impl","(urn:opendaylight:genius:interface:statistics?revision=2015-08-24)interface-statistics","(urn:opendaylight:neutron-hostconfig?revision=2015-07-12)neutron-hostconfig","(urn:TBD:params:xml:ns:yang:network:isis-topology?revision=2013-07-12)isis-topology","(urn:opendaylight:netvirt:vpn:rpc?revision=2016-02-01)vpn-rpc","(urn:opendaylight:netvirt:elan:statistics?revision=2015-08-24)elan-statistics","(urn:opendaylight:neutron-bgpvpns?revision=2015-09-03)neutron-bgpvpns","(urn:opendaylight:openflowplugin:extension:nicira:match?revision=2014-07-14)openflowplugin-extension-nicira-match","(urn:ericsson:experimenter:flow:types?revision=2014-04-22)experimenter-flow-types","(urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:v1:codec?revision=2016-07-14)opendaylight-md-sal-binding-v1-codec","(urn:ericsson:params:xml:ns:yang:ebgp?revision=2015-09-01)ebgp","(urn:opendaylight:node:error:service?revision=2014-04-10)node-error","(urn:ericsson:resync:rpcs:notification?revision=2014-02-07)resync-notification","(urn:ietf:params:xml:ns:yang:ospf-topology?revision=2013-07-12)ospf-topology","(urn:opendaylight:direct:statistics?revision=2016-05-11)opendaylight-direct-statistics","(urn:TBD:params:xml:ns:yang:network:ted?revision=2013-10-21)ted","(urn:opendaylight:openflowplugin:extension:resync?revision=2016-07-13)openflowplugin-extension-resync","(urn:opendaylight:netvirt:l3vpn?revision=2013-09-11)odl-l3vpn","(urn:opendaylight:params:xml:ns:yang:controller:netconf:topology?revision=2015-07-27)netconf-topology","(urn:opendaylight:vendor:extension-switchfeatures-message?revision=2016-07-13)extension-switchfeatures-message","(urn:opendaylight:params:xml:ns:yang:ovsdb?revision=2015-01-05)ovsdb","(urn:opendaylight:params:xml:ns:yang:config:openflow:experimenter-switchfeatures-provider?revision=2016-07-13)experimenter-switchfeatures-provider","(urn:opendaylight:yang:aaa:cert:mdsal?revision=2016-03-21)aaa-cert-mdsal","(urn:opendaylight:neutron-binding?revision=2015-07-12)neutron-binding","(urn:opendaylight:openflowplugin:experimenter:types?revision=2015-10-20)openflowplugin-experimenter-types","(urn:ietf:params:xml:ns:yang:ietf-interfaces?revision=2014-05-08)ietf-interfaces","(urn:opendaylight:params:xml:ns:yang:controller:md:sal:common?revision=2013-10-28)opendaylight-md-sal-common","(urn:opendaylight:params:xml:ns:yang:openflow:provider:config?revision=2016-05-10)openflow-provider-config","(urn:opendaylight:params:xml:ns:yang:controller:netty:timer?revision=2013-11-19)netty-timer","(urn:opendaylight:vendor:extension:resync:error:notification?revision=2016-02-07)resync-error-notification","(urn:opendaylight:params:xml:ns:yang:controller:inmemory-datastore-provider?revision=2014-06-17)opendaylight-inmemory-datastore-provider","(urn:opendaylight:genius:resourcemanager:impl?revision=2016-04-06)resourcemanager-impl","(urn:opendaylight:params:xml:ns:yang:netvirt:inter-vpn-link?revision=2016-03-11)inter-vpn-link","(urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf?revision=2015-08-03)odl-sal-netconf-connector-cfg","(urn:ericsson:resync:start:notification?revision=2014-02-07)start-resync-download-notification","(urn:opendaylight:netvirt:cloud-servicechain:api?revision=2015-12-11)cloud-servicechain-api","(urn:opendaylight:netvirt:natservice?revision=2016-01-11)odl-nat","(urn:opendaylight:params:xml:ns:yang:md:sal:config:impl:cluster-singleton-service?revision=2016-07-18)cluster-singleton-service-impl","(urn:opendaylight:group:types?revision=2013-10-18)opendaylight-group-types","(urn:opendaylight:neutron-ports?revision=2015-07-12)neutron-ports","(urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl?revision=2013-10-28)opendaylight-sal-binding-broker-impl","(urn:opendaylight:genius:interfacemanager:servicebinding?revision=2016-04-06)interface-service-bindings","(urn:opendaylight:neutron-fwaas?revision=2015-07-12)neutron-fwaas","(urn:opendaylight:params:xml:ns:yang:controller:config:legacy-entity-ownership-service-provider?revision=2016-02-26)opendaylight-legacy-entity-ownership-service-provider","(urn:opendaylight:netvirt:dhcp?revision=2016-04-28)vpnservice-dhcp","(urn:opendaylight:netvirt:ipv6service:nd:packet?revision=2016-06-20)neighbor-discovery","(urn:opendaylight:params:xml:ns:yang:controller:netty?revision=2013-11-19)netty","(urn:opendaylight:neutron-subnets?revision=2015-07-12)neutron-subnets","(urn:ericsson:openflow:experimenter:action?revision=2014-03-06)experimenter-action","(urn:opendaylight:yang:extension:yang-ext?revision=2013-07-09)yang-ext","(urn:opendaylight:params:xml:ns:yang:openflowplugin:ofjava:nx:config?revision=2014-07-11)openflowjava-nx-config","(urn:opendaylight:service:barrier:common?revision=2016-03-15)barrier-common","(urn:ietf:params:xml:ns:yang:iana-if-type?revision=2014-05-08)iana-if-type","(urn:opendaylight:params:xml:ns:yang:controller:netconf:northbound:ssh?revision=2015-01-14)netconf-northbound-ssh","(urn:opendaylight:module:config?revision=2014-10-15)node-config","(urn:opendaylight:netvirt:aclservice-config?revision=2016-08-06)aclservice-config","(urn:opendaylight:params:xml:ns:yang:openflowplugin:ofjava:nx:api:config?revision=2014-07-11)openflowjava-nx-api-config","(urn:opendaylight:params:xml:ns:yang:openflow:common:config:impl?revision=2014-03-26)openflow-provider-impl","(urn:ietf:params:xml:ns:netconf:base:1.0?revision=2011-06-01)ietf-netconf","(urn:opendaylight:params:xml:ns:yang:ovsdb:hwvtep?revision=2015-09-01)hwvtep","(urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl:scheduled?revision=2013-12-01)threadpool-impl-scheduled","(urn:opendaylight:genius:lockmanager?revision=2016-04-13)lock-manager","(urn:ericsson:switch-features:rpcs:notification?revision=2014-02-07)switch-features-extension","(urn:opendaylight:inventory?revision=2013-08-19)opendaylight-inventory","(urn:opendaylight:neutron-l2gateways?revision=2015-07-12)neutron-l2gateways","(urn:opendaylight:echo:service?revision=2015-03-05)sal-echo","(urn:opendaylight:neutron-secgroups?revision=2015-07-12)neutron-secgroups","(urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:spi:entity-ownership-service?revision=2015-08-10)opendaylight-entity-ownership-service","(urn:opendaylight:neutron-metering?revision=2015-07-12)neutron-metering","(urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl:fixed?revision=2013-12-01)threadpool-impl-fixed","(urn:opendaylight:table:service?revision=2013-10-26)sal-table","(urn:opendaylight:group:statistics?revision=2013-11-11)opendaylight-group-statistics","(urn:opendaylight:params:xml:ns:yang:openflow:api?revision=2015-03-31)openflow-provider","(urn:opendaylight:params:xml:ns:yang:controller:netconf:northbound:tcp?revision=2015-04-23)netconf-northbound-tcp","(urn:opendaylight:genius:mdsalutil?revision=2016-04-06)odl-mdsalutil","(urn:huawei:params:xml:ns:yang:l3vpn?revision=2014-08-15)l3vpn","(urn:opendaylight:openflowjava:extension-switchfeatures?revision=2016-07-13)openflowjava-extension-switchfeatures","(urn:opendaylight:service:batch:common?revision=2016-03-22)batch-common","(urn:opendaylight:params:xml:ns:yang:controller:netconf:topology:shared:schema:repository?revision=2015-07-27)shared-schema-repository","(urn:opendaylight:params:xml:ns:yang:openflowplugin:app:forwardingrules-manager:config?revision=2016-05-11)forwarding-rules-manager-config","(urn:opendaylight:action:types?revision=2013-11-12)opendaylight-action-types","(urn:opendaylight:genius:interfacemanager:impl?revision=2016-04-06)interfacemanager-impl","(urn:opendaylight:port:statistics?revision=2013-12-14)opendaylight-port-statistics","(urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:general-entity?revision=2015-08-20)general-entity","(urn:opendaylight:params:xml:ns:yang:controller:config:netconf:auth?revision=2015-07-15)netconf-auth","(urn:opendaylight:netvirt:elan:config?revision=2015-07-10)elan-config","(urn:opendaylight:genius:idmanager?revision=2016-04-06)id-manager","(urn:opendaylight:netvirt:l3nexthop?revision=2015-04-09)l3nexthop","(urn:opendaylight:packet:service?revision=2013-07-09)packet-processing","(urn:opendaylight:netvirt:neutronvpn:config?revision=2016-08-06)neutronvpn-config","(urn:opendaylight:genius:arputil?revision=2016-04-06)odl-arputil","(urn:opendaylight:openflowjava:nx:match?revision=2014-04-21)nicira-match","(urn:opendaylight:table:types?revision=2013-10-26)opendaylight-table-types","(urn:TBD:params:xml:ns:yang:ospf-topology?revision=2013-10-21)ospf-topology","(urn:opendaylight:port:service?revision=2013-11-07)sal-port","(urn:opendaylight:neutron-trunks?revision=2017-01-18)neutron-trunks","(urn:opendaylight:params:xml:ns:yang:controller:md:sal:rest:connector?revision=2014-07-24)opendaylight-rest-connector","(urn:opendaylight:yang:aaa:cert?revision=2015-11-26)aaa-cert","urn:ietf:params:netconf:capability:notification:1.0","(urn:ietf:params:xml:ns:netmod:notification?revision=2008-07-14)nc-notifications","(urn:ietf:params:xml:ns:yang:ietf-netconf-notifications?revision=2012-02-06)ietf-netconf-notifications","(urn:opendaylight:neutron-portsecurity?revision=2015-07-12)neutron-portsecurity","(urn:opendaylight:openflow:oxm?revision=2015-02-25)openflow-extensible-match","(urn:opendaylight:neutron-sfc-flow-classifier?revision=2016-05-11)neutron-sfc-flow-classifier","(urn:opendaylight:neutron-networks?revision=2015-07-12)neutron-networks","(urn:opendaylight:params:xml:ns:yang:controller:shutdown?revision=2013-12-18)shutdown","(urn:opendaylight:neutron-types?revision=2016-05-17)neutron-types","(urn:opendaylight:experimenter-message:service?revision=2015-10-20)sal-experimenter-message","(urn:opendaylight:genius:mdsalutil:impl?revision=2016-04-06)mdsalutil-impl","(config:aaa:authn:netconf:plugin?revision=2015-07-15)aaa-authn-netconf-plugin","(urn:opendaylight:params:xml:ns:yang:controller:config:netconf:northbound?revision=2015-01-14)netconf-northbound","(urn:opendaylight:params:xml:ns:yang:controller:config:cluster-admin-provider?revision=2015-10-13)cluster-admin-provider","(urn:opendaylight:flow:table:statistics?revision=2013-12-15)opendaylight-flow-table-statistics","(urn:opendaylight:neutron-provider-ext?revision=2015-07-12)neutron-provider-ext","(urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom?revision=2013-10-28)opendaylight-md-sal-dom","(urn:opendaylight:opendaylight-ipv6-arbitrary-bitmask-fields?revision=2016-02-24)opendaylight-ipv6-arbitrary-bitmask-fields","(urn:opendaylight:neutron?revision=2015-07-12)neutron","(urn:opendaylight:netconf-node-inventory?revision=2014-01-08)netconf-node-inventory","(urn:opendaylight:daexim-spi?revision=2016-08-16)data-export-import-spi","(urn:opendaylight:params:xml:ns:yang:controller:netty:threadgroup?revision=2013-11-07)threadgroup","(urn:opendaylight:genius:itm:op?revision=2016-04-06)itm-state","(urn:opendaylight:neutron-vpnaas?revision=2015-07-12)neutron-vpnaas","(urn:ietf:params:xml:ns:yang:ietf-restconf?revision=2017-01-26)ietf-restconf","(urn:opendaylight:params:xml:ns:yang:controller:config:remote-rpc-connector?revision=2014-07-07)remote-rpc-connector","(urn:opendaylight:netvirt:vpn:config?revision=2016-11-30)vpn-config","(urn:opendaylight:params:xml:ns:yang:topology-lldp-discovery:config?revision=2016-05-11)topology-lldp-discovery-config","(urn:ericsson:resync:output:notification?revision=2014-02-07)resync-output","(urn:opendaylight:params:xml:ns:yang:openflowplugin:extension:api?revision=2015-04-25)openflowplugin-extension-registry","(urn:opendaylight:openflowjava:nx:action?revision=2014-04-21)nicira-action","(urn:ietf:params:xml:ns:yang:rpc-context?revision=2013-06-17)rpc-context","(urn:opendaylight:params:xml:ns:yang:sdncconfig:impl?revision=2014-12-10)sdncconfig-impl","(urn:opendaylight:genius:arputil:impl?revision=2016-04-06)arputil-impl","(urn:cisco:params:xml:ns:yang:bgp?revision=2013-07-15)bgp","(urn:opendaylight:params:xml:ns:yang:controller:config:actor-system-provider:service?revision=2015-10-05)actor-system-provider-service","(urn:opendaylight:params:xml:ns:yang:controller:config:openflowplugin:nx:config?revision=2014-07-11)nicira-extension","(urn:opendaylight:params:xml:ns:yang:dhcpservice:api?revision=2015-07-10)dhcpservice-api","(subscribe:to:notification?revision=2016-10-28)subscribe-to-notification","(urn:opendaylight:flow:inventory?revision=2013-08-19)flow-node-inventory","(urn:ericsson:experimenter:action:types?revision=2014-02-28)experimenter-action-types","(urn:opendaylight:params:xml:ns:yang:openflow:applications:lldp-speaker?revision=2014-10-23)lldp-speaker","(urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider?revision=2014-06-12)distributed-datastore-provider","(urn:ietf:params:xml:ns:yang:ietf-yang-types?revision=2013-07-15)ietf-yang-types","(urn:opendaylight:model:statistics:types?revision=2013-09-25)opendaylight-statistics-types","(urn:TBD:params:xml:ns:yang:nt:l3-unicast-igp-topology?revision=2013-10-21)l3-unicast-igp-topology","(urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl?revision=2013-10-28)opendaylight-sal-dom-broker-impl","(urn:ietf:params:xml:ns:netconf:notification:1.0?revision=2008-07-14)notifications","(urn:opendaylight:neutron-provider?revision=2015-07-12)neutron-provider","(urn:opendaylight:vendor:extension:resync:output:notification?revision=2016-08-19)resync-output","(instance:identifier:patch:module?revision=2015-11-21)instance-identifier-patch-module","(urn:opendaylight:openflow:augments?revision=2015-02-25)openflow-augments","(urn:TBD:params:xml:ns:yang:network:isis-topology?revision=2013-10-21)isis-topology","(urn:opendaylight:daexim-internal?revision=2016-09-21)data-export-import-internal","(urn:opendaylight:arbitrary:bitmask:fields?revision=2016-01-30)opendaylight-arbitrary-bitmask-fields","(urn:opendaylight:netvirt:elan?revision=2015-06-02)elan","(urn:opendaylight:netvirt:elan:etree?revision=2016-06-14)etree","(urn:opendaylight:params:xml:ns:yang:controller:config:netconf?revision=2014-04-08)odl-netconf-cfg","(urn:opendaylight:neutron-lbaasv2?revision=2015-07-12)neutron-lbaasv2","(urn:opendaylight:genius:idmanager:impl?revision=2016-04-06)idmanager-impl","(urn:ericsson:reconciliation:service?revision=2015-08-04)forwardingrules-manager-reconciliation","(urn:opendaylight:flow:errors?revision=2013-11-16)flow-errors","(urn:opendaylight:openflow:resync?revision=2014-02-06)openflow-resync","(urn:opendaylight:params:xml:ns:yang:overlay?revision=2015-01-05)overlay","(urn:ietf:params:xml:ns:yang:ietf-inet-types?revision=2013-07-15)ietf-inet-types","(urn:opendaylight:genius:itm?revision=2016-04-06)itm","(urn:opendaylight:genius:interfacemanager?revision=2016-04-06)odl-interface","(urn:opendaylight:params:xml:ns:yang:openflow:switch:connection:provider:impl?revision=2014-03-28)openflow-switch-connection-provider-impl","(urn:opendaylight:params:xml:ns:yang:config:openflow:experimenter-resync-provider?revision=2016-07-13)experimenter-resync-provider","(urn:opendaylight:openflow:common:types?revision=2013-07-31)openflow-types","(urn:opendaylight:params:xml:ns:yang:controller:netconf:northbound:notification?revision=2015-08-06)netconf-northbound-notification","(urn:opendaylight:openflow:protocol?revision=2013-07-31)openflow-protocol","(urn:opendaylight:params:xml:ns:yang:dhcpservice:config?revision=2015-07-10)dhcpservice-config","(urn:opendaylight:params:xml:ns:yang:controller:config:actor-system-provider:impl?revision=2015-10-05)actor-system-provider-impl","(urn:opendaylight:yang:aaa:cert:rpc?revision=2015-12-15)aaa-cert-rpc","(urn:opendaylight:model:topology:inventory?revision=2013-10-30)opendaylight-topology-inventory","(urn:ietf:params:xml:ns:yang:ietf-yang-types?revision=2010-09-24)ietf-yang-types","(urn:opendaylight:genius:itm:rpcs?revision=2016-04-06)itm-rpc","urn:ietf:params:netconf:base:1.1","(urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl:flexible?revision=2013-12-01)threadpool-impl-flexible","(urn:ietf:params:xml:ns:yang:ietf-restconf?revision=2013-10-19)ietf-restconf","(urn:opendaylight:netconf-node-topology?revision=2015-01-14)netconf-node-topology","(urn:opendaylight:meter:service?revision=2013-09-18)sal-meter","(urn:opendaylight:netvirt:fibmanager?revision=2015-03-30)odl-fib","(urn:opendaylight:netvirt:fib:rpc?revision=2016-01-21)fib-rpc","(urn:opendaylight:params:xml:ns:yang:controller:netconf:northbound:notification:impl?revision=2015-08-07)netconf-northbound-notification-impl","(urn:opendaylight:params:xml:ns:yang:openflow:switch:connection:config?revision=2016-05-06)openflow-switch-connection-config","(urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring-extension?revision=2013-12-10)ietf-netconf-monitoring-extension","(urn:opendaylight:group:service?revision=2013-09-18)sal-group","urn:ietf:params:netconf:base:1.0","(urn:opendaylight:neutron-port-ext?revision=2015-11-25)neutron-port-ext","(urn:ietf:params:xml:ns:yang:ietf-network?revision=2015-06-08)ietf-network","(urn:opendaylight:openflow:config?revision=2014-06-30)openflow-configuration","urn:ietf:params:netconf:capability:exi:1.0","(urn:opendaylight:daexim?revision=2016-09-21)data-export-import","(urn:ietf:params:xml:ns:yang:iana-afn-safi?revision=2013-07-04)iana-afn-safi","(urn:opendaylight:genius:alivenessmonitor:impl?revision=2016-04-06)alivenessmonitor-impl","(urn:opendaylight:params:xml:ns:yang:openflow:applications:lldp-speaker:config?revision=2016-05-12)lldp-speaker-config","(urn:ietf:params:xml:ns:yang:ietf-restconf-monitoring?revision=2017-01-26)ietf-restconf-monitoring","(urn:opendaylight:genius:itm:impl?revision=2016-04-06)itm-impl","(urn:TBD:params:xml:ns:yang:network-topology?revision=2013-07-12)network-topology","(urn:opendaylight:openflowplugin:extension:switchfeatures?revision=2016-07-13)openflowplugin-extension-switchfeatures","(urn:opendaylight:neutron-constants?revision=2015-07-12)neutron-constants","(urn:opendaylight:openflow:common:instruction?revision=2013-07-31)openflow-instruction","(urn:opendaylight:params:xml:ns:yang:controller:config:netconf:northbound:impl?revision=2015-01-12)netconf-northbound-impl","(urn:opendaylight:flat-batch:service?revision=2016-03-21)sal-flat-batch","(urn:opendaylight:params:xml:ns:yang:md:sal:config:spi:cluster-singleton-service?revision=2016-07-18)cluster-singleton-service-spi","(urn:opendaylight:flow:types?revision=2013-10-26)opendaylight-flow-types","(urn:opendaylight:meter:statistics?revision=2013-11-11)opendaylight-meter-statistics","(urn:opendaylight:model:match:types?revision=2013-10-26)opendaylight-match-types","(urn:opendaylight:genius:interfacemanager:rpcs?revision=2016-04-06)odl-interface-rpc","(urn:opendaylight:flow:statistics?revision=2013-08-19)opendaylight-flow-statistics","(urn:opendaylight:experimenter-mp-message:service?revision=2015-10-20)sal-experimenter-mp-message","(urn:opendaylight:queue:service?revision=2015-03-05)sal-queue","(urn:opendaylight:openflow:system?revision=2013-09-27)system-notifications","(urn:opendaylight:openflow:common:action?revision=2015-02-03)openflow-action","(urn:opendaylight:openflowjava:extension-resync?revision=2016-07-13)openflowjava-extension-resync","(urn:opendaylight:neutron-qos?revision=2016-06-13)neutron-qos","(urn:opendaylight:params:xml:ns:yang:openflow:switch:connection:provider?revision=2014-03-28)openflow-switch-connection-provider","(urn:TBD:params:xml:ns:yang:network:ted?revision=2013-07-12)ted","(urn:opendaylight:role:service?revision=2015-07-27)sal-role","(urn:opendaylight:vendor:extension-switchfeatures:notification?revision=2016-08-19)switch-features-notification","(urn:opendaylight:params:xml:ns:yang:controller:config?revision=2013-04-05)config","(urn:opendaylight:openflow:approved:extensions?revision=2016-08-02)openflow-approved-extensions","(urn:sal:restconf:event:subscription?revision=2014-07-08)sal-remote-augment","(urn:opendaylight:openflowplugin:extension:general?revision=2014-07-14)openflowplugin-extension-general","(config:aaa:authn:encrypt:service:config?revision=2016-09-15)aaa-encrypt-service-config","(urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding?revision=2013-10-28)opendaylight-md-sal-binding","(urn:opendaylight:switch-features:extension?revision=2014-02-06)opendaylight-switch-features-extension","(urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:pingpong?revision=2014-11-07)opendaylight-pingpong-broker","(urn:opendaylight:flow:topology:discovery?revision=2013-08-19)flow-topology-discovery","(urn:ericsson:experimenter:table:types?revision=2014-03-06)experimenter-table-types","(urn:TBD:params:xml:ns:yang:nt:l3-unicast-igp-topology?revision=2013-07-12)l3-unicast-igp-topology","(urn:ietf:params:xml:ns:yang:ietf-yang-library?revision=2016-04-09)ietf-yang-library","(urn:opendaylight:model:topology:view?revision=2013-10-30)opendaylight-topology-view","(urn:opendaylight:params:xml:ns:yang:controller:netconf:north:mapper?revision=2015-01-14)netconf-northbound-mapper","(urn:opendaylight:params:xml:ns:yang:controller:config:netconf:client:dispatcher?revision=2014-04-08)odl-netconfig-client-cfg","(urn:ietf:params:xml:ns:yang:ietf-packet-fields?revision=2016-02-18)ietf-packet-fields","(urn:ericsson:resync:error:notification?revision=2014-02-07)resync-error-notification","urn:ietf:params:netconf:capability:candidate:1.0","(urn:opendaylight:netvirt:neutronvpn?revision=2015-06-02)neutronvpn","(urn:opendaylight:meter:types?revision=2013-09-18)opendaylight-meter-types","(urn:opendaylight:flow:types:queue?revision=2013-09-25)opendaylight-queue-types","(urn:opendaylight:l2:types?revision=2013-08-27)opendaylight-l2-types","(urn:opendaylight:neutron-L3?revision=2015-07-12)neutron-L3","(urn:opendaylight:params:xml:ns:yang:mdsal:core:general-entity?revision=2015-09-30)odl-general-entity"]},"netconf-node-topology:host":"127.0.0.1","netconf-node-topology:unavailable-capabilities":{},"netconf-node-topology:connection-status":"connected","netconf-node-topology:port":1830}]},{"topology-id":"netvirt:1"}]},"ietf-yang-library:modules-state":{"module":[{"name":"entity-owners","revision":"2015-08-04","schema":"/modules/entity-owners/2015-08-04","namespace":"urn:opendaylight:params:xml:ns:yang:controller:md:sal:clustering:entity-owners","conformance-type":"import"},{"name":"opendaylight-md-sal-common","revision":"2013-10-28","schema":"/modules/opendaylight-md-sal-common/2013-10-28","namespace":"urn:opendaylight:params:xml:ns:yang:controller:md:sal:common","conformance-type":"import"},{"name":"ietf-restconf","revision":"2017-01-26","schema":"/modules/ietf-restconf/2017-01-26","namespace":"urn:ietf:params:xml:ns:yang:ietf-restconf","conformance-type":"import"},{"name":"ietf-yang-types","revision":"2010-09-24","schema":"/modules/ietf-yang-types/2010-09-24","namespace":"urn:ietf:params:xml:ns:yang:ietf-yang-types","conformance-type":"import"},{"name":"neutronvpn-config","revision":"2016-08-06","schema":"/modules/neutronvpn-config/2016-08-06","namespace":"urn:opendaylight:netvirt:neutronvpn:config","conformance-type":"import"},{"name":"batch-common","revision":"2016-03-22","schema":"/modules/batch-common/2016-03-22","namespace":"urn:opendaylight:service:batch:common","conformance-type":"import"},{"name":"iana-afn-safi","revision":"2013-07-04","schema":"/modules/iana-afn-safi/2013-07-04","namespace":"urn:ietf:params:xml:ns:yang:iana-afn-safi","conformance-type":"import"},{"name":"l3nexthop","revision":"2015-04-09","schema":"/modules/l3nexthop/2015-04-09","namespace":"urn:opendaylight:netvirt:l3nexthop","conformance-type":"import"},{"name":"dhcpservice-api","revision":"2015-07-10","schema":"/modules/dhcpservice-api/2015-07-10","namespace":"urn:opendaylight:params:xml:ns:yang:dhcpservice:api","conformance-type":"import"},{"name":"forwarding-rules-manager-config","revision":"2016-05-11","schema":"/modules/forwarding-rules-manager-config/2016-05-11","namespace":"urn:opendaylight:params:xml:ns:yang:openflowplugin:app:forwardingrules-manager:config","conformance-type":"import"},{"name":"general-entity","revision":"2015-08-20","schema":"/modules/general-entity/2015-08-20","namespace":"urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:general-entity","conformance-type":"import"},{"name":"dhcpservice-config","revision":"2015-07-10","schema":"/modules/dhcpservice-config/2015-07-10","namespace":"urn:opendaylight:params:xml:ns:yang:dhcpservice:config","conformance-type":"import"},{"name":"aclservice-config","revision":"2016-08-06","schema":"/modules/aclservice-config/2016-08-06","namespace":"urn:opendaylight:netvirt:aclservice-config","conformance-type":"import"},{"name":"ietf-yang-types","revision":"2013-07-15","schema":"/modules/ietf-yang-types/2013-07-15","namespace":"urn:ietf:params:xml:ns:yang:ietf-yang-types","conformance-type":"import"},{"name":"flow-errors","revision":"2013-11-16","schema":"/modules/flow-errors/2013-11-16","namespace":"urn:opendaylight:flow:errors","conformance-type":"import"},{"name":"credential-store","revision":"2015-02-26","schema":"/modules/credential-store/2015-02-26","namespace":"urn:opendaylight:params:xml:ns:yang:aaa:credential-store","conformance-type":"import"},{"name":"rpc-context","revision":"2013-06-17","schema":"/modules/rpc-context/2013-06-17","namespace":"urn:ietf:params:xml:ns:yang:rpc-context","conformance-type":"import"},{"name":"opendaylight-queue-types","revision":"2013-09-25","schema":"/modules/opendaylight-queue-types/2013-09-25","namespace":"urn:opendaylight:flow:types:queue","conformance-type":"import"},{"name":"vpn-rpc","revision":"2016-02-01","schema":"/modules/vpn-rpc/2016-02-01","namespace":"urn:opendaylight:netvirt:vpn:rpc","conformance-type":"import"},{"name":"neutron-attrs","revision":"2015-07-12","schema":"/modules/neutron-attrs/2015-07-12","namespace":"urn:opendaylight:neutron-attrs","conformance-type":"import"},{"name":"neutron-vpnaas","revision":"2015-07-12","schema":"/modules/neutron-vpnaas/2015-07-12","namespace":"urn:opendaylight:neutron-vpnaas","conformance-type":"import"},{"name":"lldp-speaker","revision":"2014-10-23","schema":"/modules/lldp-speaker/2014-10-23","namespace":"urn:opendaylight:params:xml:ns:yang:openflow:applications:lldp-speaker","conformance-type":"import"},{"name":"opendaylight-port-types","revision":"2013-09-25","schema":"/modules/opendaylight-port-types/2013-09-25","namespace":"urn:opendaylight:flow:types:port","conformance-type":"import"},{"name":"neutron-bgpvpns","revision":"2015-09-03","schema":"/modules/neutron-bgpvpns/2015-09-03","namespace":"urn:opendaylight:neutron-bgpvpns","conformance-type":"import"},{"name":"openflow-types","revision":"2013-07-31","schema":"/modules/openflow-types/2013-07-31","namespace":"urn:opendaylight:openflow:common:types","conformance-type":"import"},{"name":"notifications","revision":"2008-07-14","schema":"/modules/notifications/2008-07-14","namespace":"urn:ietf:params:xml:ns:netconf:notification:1.0","conformance-type":"import"},{"name":"openflow-provider-config","revision":"2016-05-10","schema":"/modules/openflow-provider-config/2016-05-10","namespace":"urn:opendaylight:params:xml:ns:yang:openflow:provider:config","conformance-type":"import"},{"name":"yang-ext","revision":"2013-07-09","schema":"/modules/yang-ext/2013-07-09","namespace":"urn:opendaylight:yang:extension:yang-ext","conformance-type":"import"},{"name":"odl-fib","revision":"2015-03-30","schema":"/modules/odl-fib/2015-03-30","namespace":"urn:opendaylight:netvirt:fibmanager","conformance-type":"import"},{"name":"data-export-import","revision":"2016-09-21","schema":"/modules/data-export-import/2016-09-21","namespace":"urn:opendaylight:daexim","conformance-type":"import"},{"name":"data-export-import-internal","revision":"2016-09-21","schema":"/modules/data-export-import-internal/2016-09-21","namespace":"urn:opendaylight:daexim-internal","conformance-type":"import"},{"name":"cluster-admin","revision":"2015-10-13","schema":"/modules/cluster-admin/2015-10-13","namespace":"urn:opendaylight:params:xml:ns:yang:controller:md:sal:cluster:admin","conformance-type":"import"},{"name":"lldp-speaker-config","revision":"2016-05-12","schema":"/modules/lldp-speaker-config/2016-05-12","namespace":"urn:opendaylight:params:xml:ns:yang:openflow:applications:lldp-speaker:config","conformance-type":"import"},{"name":"aaa-encrypt-service-config","revision":"2016-09-15","schema":"/modules/aaa-encrypt-service-config/2016-09-15","namespace":"config:aaa:authn:encrypt:service:config","conformance-type":"import"},{"name":"topology-lldp-discovery-config","revision":"2016-05-11","schema":"/modules/topology-lldp-discovery-config/2016-05-11","namespace":"urn:opendaylight:params:xml:ns:yang:topology-lldp-discovery:config","conformance-type":"import"},{"name":"barrier-common","revision":"2016-03-15","schema":"/modules/barrier-common/2016-03-15","namespace":"urn:opendaylight:service:barrier:common","conformance-type":"import"},{"name":"odl-general-entity","revision":"2015-09-30","schema":"/modules/odl-general-entity/2015-09-30","namespace":"urn:opendaylight:params:xml:ns:yang:mdsal:core:general-entity","conformance-type":"import"},{"name":"opendaylight-meter-types","revision":"2013-09-18","schema":"/modules/opendaylight-meter-types/2013-09-18","namespace":"urn:opendaylight:meter:types","conformance-type":"import"},{"name":"neutron-ml2-services","revision":"2014-09-30","schema":"/modules/neutron-ml2-services/2014-09-30","namespace":"urn:ericsson:neutron:ml2","conformance-type":"import"},{"name":"neutron-ml3-services","revision":"2014-09-30","schema":"/modules/neutron-ml3-services/2014-09-30","namespace":"urn:ericsson:neutron:ml3","conformance-type":"import"},{"name":"sal-remote","revision":"2014-01-14","schema":"/modules/sal-remote/2014-01-14","namespace":"urn:opendaylight:params:xml:ns:yang:controller:md:sal:remote","conformance-type":"import"},{"name":"sal-remote-augment","revision":"2014-07-08","schema":"/modules/sal-remote-augment/2014-07-08","namespace":"urn:sal:restconf:event:subscription","conformance-type":"import"},{"name":"lock-manager","revision":"2016-04-13","schema":"/modules/lock-manager/2016-04-13","namespace":"urn:opendaylight:genius:lockmanager","conformance-type":"import"},{"name":"opendaylight-statistics-types","revision":"2013-09-25","schema":"/modules/opendaylight-statistics-types/2013-09-25","namespace":"urn:opendaylight:model:statistics:types","conformance-type":"import"},{"name":"neutron-sfc","revision":"2016-05-11","schema":"/modules/neutron-sfc/2016-05-11","namespace":"urn:opendaylight:neutron-sfc","conformance-type":"import"},{"name":"aaa-cert","revision":"2015-11-26","schema":"/modules/aaa-cert/2015-11-26","namespace":"urn:opendaylight:yang:aaa:cert","conformance-type":"import"},{"name":"neutron-networks","revision":"2015-07-12","schema":"/modules/neutron-networks/2015-07-12","namespace":"urn:opendaylight:neutron-networks","conformance-type":"import"},{"name":"neutron-trunks","revision":"2017-01-18","schema":"/modules/neutron-trunks/2017-01-18","namespace":"urn:opendaylight:neutron-trunks","conformance-type":"import"},{"name":"neutron-hostconfig","revision":"2015-07-12","schema":"/modules/neutron-hostconfig/2015-07-12","namespace":"urn:opendaylight:neutron-hostconfig","conformance-type":"import"},{"name":"nc-notifications","revision":"2008-07-14","schema":"/modules/nc-notifications/2008-07-14","namespace":"urn:ietf:params:xml:ns:netmod:notification","conformance-type":"import"},{"name":"ietf-inet-types","revision":"2013-07-15","schema":"/modules/ietf-inet-types/2013-07-15","namespace":"urn:ietf:params:xml:ns:yang:ietf-inet-types","conformance-type":"import"},{"name":"neutron-types","revision":"2016-05-17","schema":"/modules/neutron-types/2016-05-17","namespace":"urn:opendaylight:neutron-types","conformance-type":"import"},{"name":"ebgp","revision":"2015-09-01","schema":"/modules/ebgp/2015-09-01","namespace":"urn:ericsson:params:xml:ns:yang:ebgp","conformance-type":"import"},{"name":"opendaylight-arbitrary-bitmask-fields","revision":"2016-01-30","schema":"/modules/opendaylight-arbitrary-bitmask-fields/2016-01-30","namespace":"urn:opendaylight:arbitrary:bitmask:fields","conformance-type":"import"},{"name":"ietf-restconf","revision":"2013-10-19","schema":"/modules/ietf-restconf/2013-10-19","namespace":"urn:ietf:params:xml:ns:yang:ietf-restconf","conformance-type":"import"},{"name":"opendaylight-inventory","revision":"2013-08-19","schema":"/modules/opendaylight-inventory/2013-08-19","namespace":"urn:opendaylight:inventory","conformance-type":"import"},{"name":"resync-output","revision":"2016-08-19","schema":"/modules/resync-output/2016-08-19","namespace":"urn:opendaylight:vendor:extension:resync:output:notification","conformance-type":"import"},{"name":"extension-resync-message","revision":"2016-07-13","schema":"/modules/extension-resync-message/2016-07-13","namespace":"urn:opendaylight:vendor:extension-resync-message","conformance-type":"import"},{"name":"neighbor-discovery","revision":"2016-06-20","schema":"/modules/neighbor-discovery/2016-06-20","namespace":"urn:opendaylight:netvirt:ipv6service:nd:packet","conformance-type":"import"},{"name":"odl-nat","revision":"2016-01-11","schema":"/modules/odl-nat/2016-01-11","namespace":"urn:opendaylight:netvirt:natservice","conformance-type":"import"},{"name":"aliveness-monitor","revision":"2016-04-11","schema":"/modules/aliveness-monitor/2016-04-11","namespace":"urn:opendaylight:genius:alivenessmonitor","conformance-type":"import"},{"name":"ietf-yang-library","revision":"2016-06-21","schema":"/modules/ietf-yang-library/2016-06-21","namespace":"urn:ietf:params:xml:ns:yang:ietf-yang-library","conformance-type":"import"},{"name":"odl-nat-rpc","revision":"2017-02-09","schema":"/modules/odl-nat-rpc/2017-02-09","namespace":"urn:opendaylight:netvirt:natservice:rpc","conformance-type":"import"},{"name":"start-resync-download-notification","revision":"2014-02-07","schema":"/modules/start-resync-download-notification/2014-02-07","namespace":"urn:ericsson:resync:start:notification","conformance-type":"import"},{"name":"ietf-netconf","revision":"2011-06-01","schema":"/modules/ietf-netconf/2011-06-01","feature":["rollback-on-error","xpath","validate","writable-running","confirmed-commit","startup","url","candidate"],"namespace":"urn:ietf:params:xml:ns:netconf:base:1.0","conformance-type":"import"},{"name":"neutron-provider","revision":"2015-07-12","schema":"/modules/neutron-provider/2015-07-12","namespace":"urn:opendaylight:neutron-provider","conformance-type":"import"},{"name":"sal-queue","revision":"2015-03-05","schema":"/modules/sal-queue/2015-03-05","namespace":"urn:opendaylight:queue:service","conformance-type":"import"},{"name":"openflowplugin-experimenter-types","revision":"2015-10-20","schema":"/modules/openflowplugin-experimenter-types/2015-10-20","namespace":"urn:opendaylight:openflowplugin:experimenter:types","conformance-type":"import"},{"name":"vpn-config","revision":"2016-11-30","schema":"/modules/vpn-config/2016-11-30","namespace":"urn:opendaylight:netvirt:vpn:config","conformance-type":"import"},{"name":"ietf-yang-library","revision":"2016-04-09","schema":"/modules/ietf-yang-library/2016-04-09","namespace":"urn:ietf:params:xml:ns:yang:ietf-yang-library","conformance-type":"import"},{"name":"network-topology","revision":"2013-07-12","schema":"/modules/network-topology/2013-07-12","namespace":"urn:TBD:params:xml:ns:yang:network-topology","conformance-type":"import"},{"name":"l3-unicast-igp-topology","revision":"2013-07-12","schema":"/modules/l3-unicast-igp-topology/2013-07-12","namespace":"urn:TBD:params:xml:ns:yang:nt:l3-unicast-igp-topology","conformance-type":"import"},{"name":"ietf-inet-types","revision":"2010-09-24","schema":"/modules/ietf-inet-types/2010-09-24","namespace":"urn:ietf:params:xml:ns:yang:ietf-inet-types","conformance-type":"import"},{"name":"switch-features-notification","revision":"2013-08-19","schema":"/modules/switch-features-notification/2013-08-19","namespace":"urn:ericsson:switch-features:notification","conformance-type":"import"},{"name":"id-manager","revision":"2016-04-06","schema":"/modules/id-manager/2016-04-06","namespace":"urn:opendaylight:genius:idmanager","conformance-type":"import"},{"name":"system-notifications","revision":"2013-09-27","schema":"/modules/system-notifications/2013-09-27","namespace":"urn:opendaylight:openflow:system","conformance-type":"import"},{"name":"ted","revision":"2013-07-12","schema":"/modules/ted/2013-07-12","namespace":"urn:TBD:params:xml:ns:yang:network:ted","conformance-type":"import"},{"name":"statistics-manager-control","revision":"2015-08-12","schema":"/modules/statistics-manager-control/2015-08-12","namespace":"urn:opendaylight:params:xml:ns:yang:openflowplugin:sm:control","conformance-type":"import"},{"name":"opendaylight-l2-types","revision":"2013-08-27","schema":"/modules/opendaylight-l2-types/2013-08-27","namespace":"urn:opendaylight:l2:types","conformance-type":"import"},{"name":"isis-topology","revision":"2013-07-12","schema":"/modules/isis-topology/2013-07-12","namespace":"urn:TBD:params:xml:ns:yang:network:isis-topology","conformance-type":"import"},{"name":"elan-config","revision":"2015-07-10","schema":"/modules/elan-config/2015-07-10","namespace":"urn:opendaylight:netvirt:elan:config","conformance-type":"import"},{"name":"experimenter-flow-types","revision":"2014-04-25","schema":"/modules/experimenter-flow-types/2014-04-25","namespace":"urn:ericsson:experimenter:openflow:types","conformance-type":"import"},{"name":"flow-capable-transaction","revision":"2015-03-04","schema":"/modules/flow-capable-transaction/2015-03-04","namespace":"urn:opendaylight:flow:transaction","conformance-type":"import"},{"name":"sal-port","revision":"2013-11-07","schema":"/modules/sal-port/2013-11-07","namespace":"urn:opendaylight:port:service","conformance-type":"import"},{"name":"forwardingrules-manager-reconciliation","revision":"2015-08-04","schema":"/modules/forwardingrules-manager-reconciliation/2015-08-04","namespace":"urn:ericsson:reconciliation:service","conformance-type":"import"},{"name":"node-config","revision":"2014-10-15","schema":"/modules/node-config/2014-10-15","namespace":"urn:opendaylight:module:config","conformance-type":"import"},{"name":"switch-features-extension","revision":"2014-02-07","schema":"/modules/switch-features-extension/2014-02-07","namespace":"urn:ericsson:switch-features:rpcs:notification","conformance-type":"import"},{"name":"config","revision":"2013-04-05","schema":"/modules/config/2013-04-05","namespace":"urn:opendaylight:params:xml:ns:yang:controller:config","conformance-type":"import"},{"name":"openflow-provider","revision":"2014-03-26","schema":"/modules/openflow-provider/2014-03-26","namespace":"urn:opendaylight:params:xml:ns:yang:openflow:common:config","conformance-type":"import"},{"name":"openflowplugin-extension-registry","revision":"2015-04-25","schema":"/modules/openflowplugin-extension-registry/2015-04-25","namespace":"urn:opendaylight:params:xml:ns:yang:openflowplugin:extension:api","conformance-type":"import"},{"name":"netty","revision":"2013-11-19","schema":"/modules/netty/2013-11-19","namespace":"urn:opendaylight:params:xml:ns:yang:controller:netty","conformance-type":"import"},{"name":"shutdown","revision":"2013-12-18","schema":"/modules/shutdown/2013-12-18","namespace":"urn:opendaylight:params:xml:ns:yang:controller:shutdown","conformance-type":"import"},{"name":"netconf-northbound-mapper","revision":"2015-01-14","schema":"/modules/netconf-northbound-mapper/2015-01-14","namespace":"urn:opendaylight:params:xml:ns:yang:controller:netconf:north:mapper","conformance-type":"import"},{"name":"opendaylight-config-dom-datastore","revision":"2014-06-17","schema":"/modules/opendaylight-config-dom-datastore/2014-06-17","namespace":"urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:spi:config-dom-store","conformance-type":"import"},{"name":"shutdown-impl","revision":"2013-12-18","schema":"/modules/shutdown-impl/2013-12-18","namespace":"urn:opendaylight:params:xml:ns:yang:controller:shutdown:impl","conformance-type":"import"},{"name":"opendaylight-operational-dom-datastore","revision":"2014-06-17","schema":"/modules/opendaylight-operational-dom-datastore/2014-06-17","namespace":"urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:spi:operational-dom-store","conformance-type":"import"},{"name":"threadpool","revision":"2013-04-09","schema":"/modules/threadpool/2013-04-09","namespace":"urn:opendaylight:params:xml:ns:yang:controller:threadpool","conformance-type":"import"},{"name":"nicira-extension","revision":"2014-07-11","schema":"/modules/nicira-extension/2014-07-11","namespace":"urn:opendaylight:params:xml:ns:yang:controller:config:openflowplugin:nx:config","conformance-type":"import"},{"name":"threadpool-impl-scheduled","revision":"2013-12-01","schema":"/modules/threadpool-impl-scheduled/2013-12-01","namespace":"urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl:scheduled","conformance-type":"import"},{"name":"netty-timer","revision":"2013-11-19","schema":"/modules/netty-timer/2013-11-19","namespace":"urn:opendaylight:params:xml:ns:yang:controller:netty:timer","conformance-type":"import"},{"name":"openflow-switch-connection-provider","revision":"2014-03-28","schema":"/modules/openflow-switch-connection-provider/2014-03-28","namespace":"urn:opendaylight:params:xml:ns:yang:openflow:switch:connection:provider","conformance-type":"import"},{"name":"netconf-northbound","revision":"2015-01-14","schema":"/modules/netconf-northbound/2015-01-14","namespace":"urn:opendaylight:params:xml:ns:yang:controller:config:netconf:northbound","conformance-type":"import"},{"name":"netconf-northbound-impl","revision":"2015-01-12","schema":"/modules/netconf-northbound-impl/2015-01-12","namespace":"urn:opendaylight:params:xml:ns:yang:controller:config:netconf:northbound:impl","conformance-type":"import"},{"name":"threadpool-impl-fixed","revision":"2013-12-01","schema":"/modules/threadpool-impl-fixed/2013-12-01","namespace":"urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl:fixed","conformance-type":"import"},{"name":"threadpool-impl-flexible","revision":"2013-12-01","schema":"/modules/threadpool-impl-flexible/2013-12-01","namespace":"urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl:flexible","conformance-type":"import"},{"name":"netty-event-executor","revision":"2013-11-12","schema":"/modules/netty-event-executor/2013-11-12","namespace":"urn:opendaylight:params:xml:ns:yang:controller:netty:eventexecutor","conformance-type":"import"},{"name":"inter-vpn-link","revision":"2016-03-11","schema":"/modules/inter-vpn-link/2016-03-11","namespace":"urn:opendaylight:params:xml:ns:yang:netvirt:inter-vpn-link","conformance-type":"import"},{"name":"shared-schema-repository","revision":"2015-07-27","schema":"/modules/shared-schema-repository/2015-07-27","namespace":"urn:opendaylight:params:xml:ns:yang:controller:netconf:topology:shared:schema:repository","conformance-type":"import"},{"name":"resource-manager","revision":"2016-06-22","schema":"/modules/resource-manager/2016-06-22","namespace":"urn:opendaylight:genius:resourcemanager","conformance-type":"import"},{"name":"actor-system-provider-service","revision":"2015-10-05","schema":"/modules/actor-system-provider-service/2015-10-05","namespace":"urn:opendaylight:params:xml:ns:yang:controller:config:actor-system-provider:service","conformance-type":"import"},{"name":"actor-system-provider-impl","revision":"2015-10-05","schema":"/modules/actor-system-provider-impl/2015-10-05","namespace":"urn:opendaylight:params:xml:ns:yang:controller:config:actor-system-provider:impl","conformance-type":"import"},{"name":"protocol-framework","revision":"2014-03-13","schema":"/modules/protocol-framework/2014-03-13","namespace":"urn:opendaylight:params:xml:ns:yang:controller:protocol:framework","conformance-type":"import"},{"name":"ospf-topology","revision":"2013-07-12","schema":"/modules/ospf-topology/2013-07-12","namespace":"urn:ietf:params:xml:ns:yang:ospf-topology","conformance-type":"import"},{"name":"opendaylight-md-sal-binding-v1-codec","revision":"2016-07-14","schema":"/modules/opendaylight-md-sal-binding-v1-codec/2016-07-14","namespace":"urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:v1:codec","conformance-type":"import"},{"name":"threadpool-impl","revision":"2013-04-05","schema":"/modules/threadpool-impl/2013-04-05","namespace":"urn:opendaylight:params:xml:ns:yang:controller:threadpool:impl","conformance-type":"import"},{"name":"cluster-singleton-service-spi","revision":"2016-07-18","schema":"/modules/cluster-singleton-service-spi/2016-07-18","namespace":"urn:opendaylight:params:xml:ns:yang:md:sal:config:spi:cluster-singleton-service","conformance-type":"import"},{"name":"sal-restconf-service","revision":"2015-07-08","schema":"/modules/sal-restconf-service/2015-07-08","namespace":"urn:opendaylight:params:xml:ns:yang:controller:sal:restconf:service","conformance-type":"import"},{"name":"nicira-extension-impl","revision":"2014-07-11","schema":"/modules/nicira-extension-impl/2014-07-11","namespace":"urn:opendaylight:params:xml:ns:yang:openflowplugin:nx:config:impl","conformance-type":"import"},{"name":"extension-switchfeatures-message","revision":"2016-07-13","schema":"/modules/extension-switchfeatures-message/2016-07-13","namespace":"urn:opendaylight:vendor:extension-switchfeatures-message","conformance-type":"import"},{"name":"resync-output","revision":"2014-02-07","schema":"/modules/resync-output/2014-02-07","namespace":"urn:ericsson:resync:output:notification","conformance-type":"import"},{"name":"ietf-netconf-notifications","revision":"2012-02-06","schema":"/modules/ietf-netconf-notifications/2012-02-06","namespace":"urn:ietf:params:xml:ns:yang:ietf-netconf-notifications","conformance-type":"import"},{"name":"opendaylight-md-sal-binding","revision":"2013-10-28","schema":"/modules/opendaylight-md-sal-binding/2013-10-28","namespace":"urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding","conformance-type":"import"},{"name":"aaa-cert-mdsal","revision":"2016-03-21","schema":"/modules/aaa-cert-mdsal/2016-03-21","namespace":"urn:opendaylight:yang:aaa:cert:mdsal","conformance-type":"import"},{"name":"cluster-admin-provider","revision":"2015-10-13","schema":"/modules/cluster-admin-provider/2015-10-13","namespace":"urn:opendaylight:params:xml:ns:yang:controller:config:cluster-admin-provider","conformance-type":"import"},{"name":"lockmanager-impl","revision":"2016-04-06","schema":"/modules/lockmanager-impl/2016-04-06","namespace":"urn:opendaylight:genius:lockmanager:impl","conformance-type":"import"},{"name":"threadgroup","revision":"2013-11-07","schema":"/modules/threadgroup/2013-11-07","namespace":"urn:opendaylight:params:xml:ns:yang:controller:netty:threadgroup","conformance-type":"import"},{"name":"netconf-northbound-tcp","revision":"2015-04-23","schema":"/modules/netconf-northbound-tcp/2015-04-23","namespace":"urn:opendaylight:params:xml:ns:yang:controller:netconf:northbound:tcp","conformance-type":"import"},{"name":"odl-netconf-cfg","revision":"2014-04-08","schema":"/modules/odl-netconf-cfg/2014-04-08","namespace":"urn:opendaylight:params:xml:ns:yang:controller:config:netconf","conformance-type":"import"},{"name":"odl-netconfig-client-cfg","revision":"2014-04-08","schema":"/modules/odl-netconfig-client-cfg/2014-04-08","namespace":"urn:opendaylight:params:xml:ns:yang:controller:config:netconf:client:dispatcher","conformance-type":"import"},{"name":"opendaylight-port-statistics","revision":"2013-12-14","schema":"/modules/opendaylight-port-statistics/2013-12-14","namespace":"urn:opendaylight:port:statistics","conformance-type":"import"},{"name":"switch-features-notification","revision":"2016-08-19","schema":"/modules/switch-features-notification/2016-08-19","namespace":"urn:opendaylight:vendor:extension-switchfeatures:notification","conformance-type":"import"},{"name":"ted","revision":"2013-10-21","schema":"/modules/ted/2013-10-21","namespace":"urn:TBD:params:xml:ns:yang:network:ted","conformance-type":"import"},{"name":"ietf-netconf-monitoring","revision":"2010-10-04","schema":"/modules/ietf-netconf-monitoring/2010-10-04","namespace":"urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring","conformance-type":"import"},{"name":"ietf-netconf-monitoring-extension","revision":"2013-12-10","schema":"/modules/ietf-netconf-monitoring-extension/2013-12-10","namespace":"urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring-extension","conformance-type":"import"},{"name":"data-export-import-spi","revision":"2016-08-16","schema":"/modules/data-export-import-spi/2016-08-16","namespace":"urn:opendaylight:daexim-spi","conformance-type":"import"},{"name":"opendaylight-md-sal-dom","revision":"2013-10-28","schema":"/modules/opendaylight-md-sal-dom/2013-10-28","namespace":"urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom","conformance-type":"import"},{"name":"opendaylight-inmemory-datastore-provider","revision":"2014-06-17","schema":"/modules/opendaylight-inmemory-datastore-provider/2014-06-17","namespace":"urn:opendaylight:params:xml:ns:yang:controller:inmemory-datastore-provider","conformance-type":"import"},{"name":"distributed-datastore-provider","revision":"2014-06-12","schema":"/modules/distributed-datastore-provider/2014-06-12","namespace":"urn:opendaylight:params:xml:ns:yang:controller:config:distributed-datastore-provider","conformance-type":"import"},{"name":"opendaylight-pingpong-broker","revision":"2014-11-07","schema":"/modules/opendaylight-pingpong-broker/2014-11-07","namespace":"urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:pingpong","conformance-type":"import"},{"name":"opendaylight-rest-connector","revision":"2014-07-24","schema":"/modules/opendaylight-rest-connector/2014-07-24","namespace":"urn:opendaylight:params:xml:ns:yang:controller:md:sal:rest:connector","conformance-type":"import"},{"name":"odl-sal-netconf-connector-cfg","revision":"2015-08-03","schema":"/modules/odl-sal-netconf-connector-cfg/2015-08-03","namespace":"urn:opendaylight:params:xml:ns:yang:controller:md:sal:connector:netconf","conformance-type":"import"},{"name":"netconf-topology","revision":"2015-07-27","schema":"/modules/netconf-topology/2015-07-27","namespace":"urn:opendaylight:params:xml:ns:yang:controller:netconf:topology","conformance-type":"import"},{"name":"opendaylight-sal-binding-broker-impl","revision":"2013-10-28","schema":"/modules/opendaylight-sal-binding-broker-impl/2013-10-28","namespace":"urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl","conformance-type":"import"},{"name":"sdncconfig-impl","revision":"2014-12-10","schema":"/modules/sdncconfig-impl/2014-12-10","namespace":"urn:opendaylight:params:xml:ns:yang:sdncconfig:impl","conformance-type":"import"},{"name":"experimenter-resync-provider","revision":"2016-07-13","schema":"/modules/experimenter-resync-provider/2016-07-13","namespace":"urn:opendaylight:params:xml:ns:yang:config:openflow:experimenter-resync-provider","conformance-type":"import"},{"name":"netconf-auth","revision":"2015-07-15","schema":"/modules/netconf-auth/2015-07-15","namespace":"urn:opendaylight:params:xml:ns:yang:controller:config:netconf:auth","conformance-type":"import"},{"name":"netconf-northbound-ssh","revision":"2015-01-14","schema":"/modules/netconf-northbound-ssh/2015-01-14","namespace":"urn:opendaylight:params:xml:ns:yang:controller:netconf:northbound:ssh","conformance-type":"import"},{"name":"aaa-authn-netconf-plugin","revision":"2015-07-15","schema":"/modules/aaa-authn-netconf-plugin/2015-07-15","namespace":"config:aaa:authn:netconf:plugin","conformance-type":"import"},{"name":"cloud-servicechain-api","revision":"2015-12-11","schema":"/modules/cloud-servicechain-api/2015-12-11","namespace":"urn:opendaylight:netvirt:cloud-servicechain:api","conformance-type":"import"},{"name":"network-topology","revision":"2013-10-21","schema":"/modules/network-topology/2013-10-21","namespace":"urn:TBD:params:xml:ns:yang:network-topology","conformance-type":"import"},{"name":"hwvtep","revision":"2015-09-01","schema":"/modules/hwvtep/2015-09-01","namespace":"urn:opendaylight:params:xml:ns:yang:ovsdb:hwvtep","conformance-type":"import"},{"name":"opendaylight-topology","revision":"2013-10-30","schema":"/modules/opendaylight-topology/2013-10-30","namespace":"urn:opendaylight:model:topology:general","conformance-type":"import"},{"name":"l3-unicast-igp-topology","revision":"2013-10-21","schema":"/modules/l3-unicast-igp-topology/2013-10-21","namespace":"urn:TBD:params:xml:ns:yang:nt:l3-unicast-igp-topology","conformance-type":"import"},{"name":"isis-topology","revision":"2013-10-21","schema":"/modules/isis-topology/2013-10-21","namespace":"urn:TBD:params:xml:ns:yang:network:isis-topology","conformance-type":"import"},{"name":"opendaylight-topology-view","revision":"2013-10-30","schema":"/modules/opendaylight-topology-view/2013-10-30","namespace":"urn:opendaylight:model:topology:view","conformance-type":"import"},{"name":"ospf-topology","revision":"2013-10-21","schema":"/modules/ospf-topology/2013-10-21","namespace":"urn:TBD:params:xml:ns:yang:ospf-topology","conformance-type":"import"},{"name":"opendaylight-topology-inventory","revision":"2013-10-30","schema":"/modules/opendaylight-topology-inventory/2013-10-30","namespace":"urn:opendaylight:model:topology:inventory","conformance-type":"import"},{"name":"resync-notification","revision":"2014-02-07","schema":"/modules/resync-notification/2014-02-07","namespace":"urn:ericsson:resync:rpcs:notification","conformance-type":"import"},{"name":"sal-experimenter-mp-message","revision":"2015-10-20","schema":"/modules/sal-experimenter-mp-message/2015-10-20","namespace":"urn:opendaylight:experimenter-mp-message:service","conformance-type":"import"},{"name":"netconf-node-inventory","revision":"2014-01-08","schema":"/modules/netconf-node-inventory/2014-01-08","namespace":"urn:opendaylight:netconf-node-inventory","conformance-type":"import"},{"name":"netconf-northbound-notification","revision":"2015-08-06","schema":"/modules/netconf-northbound-notification/2015-08-06","namespace":"urn:opendaylight:params:xml:ns:yang:controller:netconf:northbound:notification","conformance-type":"import"},{"name":"openflowjava-nx-api-config","revision":"2014-07-11","schema":"/modules/openflowjava-nx-api-config/2014-07-11","namespace":"urn:opendaylight:params:xml:ns:yang:openflowplugin:ofjava:nx:api:config","conformance-type":"import"},{"name":"openflowjava-nx-config","revision":"2014-07-11","schema":"/modules/openflowjava-nx-config/2014-07-11","namespace":"urn:opendaylight:params:xml:ns:yang:openflowplugin:ofjava:nx:config","conformance-type":"import"},{"name":"flow-topology-discovery","revision":"2013-08-19","schema":"/modules/flow-topology-discovery/2013-08-19","namespace":"urn:opendaylight:flow:topology:discovery","conformance-type":"import"},{"name":"openflow-extensible-match","revision":"2015-02-25","schema":"/modules/openflow-extensible-match/2015-02-25","namespace":"urn:opendaylight:openflow:oxm","conformance-type":"import"},{"name":"experimenter-match-type","revision":"2014-03-06","schema":"/modules/experimenter-match-type/2014-03-06","namespace":"urn:experimenter:matchExp","conformance-type":"import"},{"name":"openflow-action","revision":"2015-02-03","schema":"/modules/openflow-action/2015-02-03","namespace":"urn:opendaylight:openflow:common:action","conformance-type":"import"},{"name":"openflow-instruction","revision":"2013-07-31","schema":"/modules/openflow-instruction/2013-07-31","namespace":"urn:opendaylight:openflow:common:instruction","conformance-type":"import"},{"name":"nicira-action","revision":"2014-04-21","schema":"/modules/nicira-action/2014-04-21","namespace":"urn:opendaylight:openflowjava:nx:action","conformance-type":"import"},{"name":"nicira-match","revision":"2014-04-21","schema":"/modules/nicira-match/2014-04-21","namespace":"urn:opendaylight:openflowjava:nx:match","conformance-type":"import"},{"name":"odl-mdsalutil","revision":"2016-04-06","schema":"/modules/odl-mdsalutil/2016-04-06","namespace":"urn:opendaylight:genius:mdsalutil","conformance-type":"import"},{"name":"resourcemanager-impl","revision":"2016-04-06","schema":"/modules/resourcemanager-impl/2016-04-06","namespace":"urn:opendaylight:genius:resourcemanager:impl","conformance-type":"import"},{"name":"arputil-impl","revision":"2016-04-06","schema":"/modules/arputil-impl/2016-04-06","namespace":"urn:opendaylight:genius:arputil:impl","conformance-type":"import"},{"name":"resync-error-notification","revision":"2014-02-07","schema":"/modules/resync-error-notification/2014-02-07","namespace":"urn:ericsson:resync:error:notification","conformance-type":"import"},{"name":"sal-echo","revision":"2015-03-05","schema":"/modules/sal-echo/2015-03-05","namespace":"urn:opendaylight:echo:service","conformance-type":"import"},{"name":"remote-rpc-connector","revision":"2014-07-07","schema":"/modules/remote-rpc-connector/2014-07-07","namespace":"urn:opendaylight:params:xml:ns:yang:controller:config:remote-rpc-connector","conformance-type":"import"},{"name":"vpnservice-dhcp","revision":"2016-04-28","schema":"/modules/vpnservice-dhcp/2016-04-28","namespace":"urn:opendaylight:netvirt:dhcp","conformance-type":"import"},{"name":"opendaylight-ipv6-arbitrary-bitmask-fields","revision":"2016-02-24","schema":"/modules/opendaylight-ipv6-arbitrary-bitmask-fields/2016-02-24","namespace":"urn:opendaylight:opendaylight-ipv6-arbitrary-bitmask-fields","conformance-type":"import"},{"name":"opendaylight-match-types","revision":"2013-10-26","schema":"/modules/opendaylight-match-types/2013-10-26","namespace":"urn:opendaylight:model:match:types","conformance-type":"import"},{"name":"opendaylight-action-types","revision":"2013-11-12","schema":"/modules/opendaylight-action-types/2013-11-12","namespace":"urn:opendaylight:action:types","conformance-type":"import"},{"name":"experimenter-action-types","revision":"2014-02-28","schema":"/modules/experimenter-action-types/2014-02-28","namespace":"urn:ericsson:experimenter:action:types","conformance-type":"import"},{"name":"opendaylight-group-types","revision":"2013-10-18","schema":"/modules/opendaylight-group-types/2013-10-18","namespace":"urn:opendaylight:group:types","conformance-type":"import"},{"name":"sal-group","revision":"2013-09-18","schema":"/modules/sal-group/2013-09-18","namespace":"urn:opendaylight:group:service","conformance-type":"import"},{"name":"sal-groups-batch","revision":"2016-03-15","schema":"/modules/sal-groups-batch/2016-03-15","namespace":"urn:opendaylight:groups:service","conformance-type":"import"},{"name":"opendaylight-sal-dom-broker-impl","revision":"2013-10-28","schema":"/modules/opendaylight-sal-dom-broker-impl/2013-10-28","namespace":"urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl","conformance-type":"import"},{"name":"odl-concurrent-data-broker-cfg","revision":"2014-11-24","schema":"/modules/odl-concurrent-data-broker-cfg/2014-11-24","namespace":"urn:opendaylight:params:xml:ns:yang:controller:config:concurrent-data-broker","conformance-type":"import"},{"name":"mdsalutil-impl","revision":"2016-04-06","schema":"/modules/mdsalutil-impl/2016-04-06","namespace":"urn:opendaylight:genius:mdsalutil:impl","conformance-type":"import"},{"name":"ietf-network","revision":"2015-06-08","schema":"/modules/ietf-network/2015-06-08","namespace":"urn:ietf:params:xml:ns:yang:ietf-network","conformance-type":"import"},{"name":"ietf-network-topology","revision":"2015-06-08","schema":"/modules/ietf-network-topology/2015-06-08","namespace":"urn:ietf:params:xml:ns:yang:ietf-network-topology","conformance-type":"import"},{"name":"sal-meters-batch","revision":"2016-03-16","schema":"/modules/sal-meters-batch/2016-03-16","namespace":"urn:opendaylight:meters:service","conformance-type":"import"},{"name":"sal-meter","revision":"2013-09-18","schema":"/modules/sal-meter/2013-09-18","namespace":"urn:opendaylight:meter:service","conformance-type":"import"},{"name":"resync-error-notification","revision":"2016-02-07","schema":"/modules/resync-error-notification/2016-02-07","namespace":"urn:opendaylight:vendor:extension:resync:error:notification","conformance-type":"import"},{"name":"neutron-qos","revision":"2016-06-13","schema":"/modules/neutron-qos/2016-06-13","namespace":"urn:opendaylight:neutron-qos","conformance-type":"import"},{"name":"netconf-node-topology","revision":"2015-01-14","schema":"/modules/netconf-node-topology/2015-01-14","namespace":"urn:opendaylight:netconf-node-topology","conformance-type":"import"},{"name":"neutronvpn","revision":"2015-06-02","schema":"/modules/neutronvpn/2015-06-02","namespace":"urn:opendaylight:netvirt:neutronvpn","conformance-type":"import"},{"name":"ietf-restconf-monitoring","revision":"2017-01-26","schema":"/modules/ietf-restconf-monitoring/2017-01-26","namespace":"urn:ietf:params:xml:ns:yang:ietf-restconf-monitoring","conformance-type":"import"},{"name":"neutron-l2gateways","revision":"2015-07-12","schema":"/modules/neutron-l2gateways/2015-07-12","namespace":"urn:opendaylight:neutron-l2gateways","conformance-type":"import"},{"name":"opendaylight-flow-types","revision":"2013-10-26","schema":"/modules/opendaylight-flow-types/2013-10-26","namespace":"urn:opendaylight:flow:types","conformance-type":"import"},{"name":"fib-rpc","revision":"2016-01-21","schema":"/modules/fib-rpc/2016-01-21","namespace":"urn:opendaylight:netvirt:fib:rpc","conformance-type":"import"},{"name":"opendaylight-table-types","revision":"2013-10-26","schema":"/modules/opendaylight-table-types/2013-10-26","namespace":"urn:opendaylight:table:types","conformance-type":"import"},{"name":"experimenter-table-types","revision":"2014-03-06","schema":"/modules/experimenter-table-types/2014-03-06","namespace":"urn:ericsson:experimenter:table:types","conformance-type":"import"},{"name":"flow-node-inventory","revision":"2013-08-19","schema":"/modules/flow-node-inventory/2013-08-19","namespace":"urn:opendaylight:flow:inventory","conformance-type":"import"},{"name":"opendaylight-queue-statistics","revision":"2013-12-16","schema":"/modules/opendaylight-queue-statistics/2013-12-16","namespace":"urn:opendaylight:queue:statistics","conformance-type":"import"},{"name":"sal-flows-batch","revision":"2016-03-14","schema":"/modules/sal-flows-batch/2016-03-14","namespace":"urn:opendaylight:flows:service","conformance-type":"import"},{"name":"sal-table","revision":"2013-10-26","schema":"/modules/sal-table/2013-10-26","namespace":"urn:opendaylight:table:service","conformance-type":"import"},{"name":"packet-processing","revision":"2013-07-09","schema":"/modules/packet-processing/2013-07-09","namespace":"urn:opendaylight:packet:service","conformance-type":"import"},{"name":"experimenter-flow-types","revision":"2014-04-22","schema":"/modules/experimenter-flow-types/2014-04-22","namespace":"urn:ericsson:experimenter:flow:types","conformance-type":"import"},{"name":"sal-flat-batch","revision":"2016-03-21","schema":"/modules/sal-flat-batch/2016-03-21","namespace":"urn:opendaylight:flat-batch:service","conformance-type":"import"},{"name":"sal-flow","revision":"2013-08-19","schema":"/modules/sal-flow/2013-08-19","namespace":"urn:opendaylight:flow:service","conformance-type":"import"},{"name":"node-error","revision":"2014-04-10","schema":"/modules/node-error/2014-04-10","namespace":"urn:opendaylight:node:error:service","conformance-type":"import"},{"name":"opendaylight-group-statistics","revision":"2013-11-11","schema":"/modules/opendaylight-group-statistics/2013-11-11","namespace":"urn:opendaylight:group:statistics","conformance-type":"import"},{"name":"opendaylight-flow-table-statistics","revision":"2013-12-15","schema":"/modules/opendaylight-flow-table-statistics/2013-12-15","namespace":"urn:opendaylight:flow:table:statistics","conformance-type":"import"},{"name":"neutron-L3","revision":"2015-07-12","schema":"/modules/neutron-L3/2015-07-12","namespace":"urn:opendaylight:neutron-L3","conformance-type":"import"},{"name":"bgp","revision":"2013-07-15","schema":"/modules/bgp/2013-07-15","namespace":"urn:cisco:params:xml:ns:yang:bgp","conformance-type":"import"},{"name":"neutron-extensions","revision":"2016-06-17","schema":"/modules/neutron-extensions/2016-06-17","namespace":"urn:opendaylight:neutron-extensions","conformance-type":"import"},{"name":"neutron-constants","revision":"2015-07-12","schema":"/modules/neutron-constants/2015-07-12","namespace":"urn:opendaylight:neutron-constants","conformance-type":"import"},{"name":"neutron-fwaas","revision":"2015-07-12","schema":"/modules/neutron-fwaas/2015-07-12","namespace":"urn:opendaylight:neutron-fwaas","conformance-type":"import"},{"name":"neutron-ports","revision":"2015-07-12","schema":"/modules/neutron-ports/2015-07-12","namespace":"urn:opendaylight:neutron-ports","conformance-type":"import"},{"name":"neutron-metering","revision":"2015-07-12","schema":"/modules/neutron-metering/2015-07-12","namespace":"urn:opendaylight:neutron-metering","conformance-type":"import"},{"name":"neutron-sfc-flow-classifier","revision":"2016-05-11","schema":"/modules/neutron-sfc-flow-classifier/2016-05-11","namespace":"urn:opendaylight:neutron-sfc-flow-classifier","conformance-type":"import"},{"name":"neutron-lbaasv2","revision":"2015-07-12","schema":"/modules/neutron-lbaasv2/2015-07-12","namespace":"urn:opendaylight:neutron-lbaasv2","conformance-type":"import"},{"name":"neutron-secgroups","revision":"2015-07-12","schema":"/modules/neutron-secgroups/2015-07-12","namespace":"urn:opendaylight:neutron-secgroups","conformance-type":"import"},{"name":"idmanager-impl","revision":"2016-04-06","schema":"/modules/idmanager-impl/2016-04-06","namespace":"urn:opendaylight:genius:idmanager:impl","conformance-type":"import"},{"name":"ietf-interfaces","revision":"2014-05-08","schema":"/modules/ietf-interfaces/2014-05-08","feature":["pre-provisioning","arbitrary-names","if-mib"],"namespace":"urn:ietf:params:xml:ns:yang:ietf-interfaces","conformance-type":"import"},{"name":"l3vpn","revision":"2014-08-15","schema":"/modules/l3vpn/2014-08-15","namespace":"urn:huawei:params:xml:ns:yang:l3vpn","conformance-type":"import"},{"name":"ietf-packet-fields","revision":"2016-02-18","schema":"/modules/ietf-packet-fields/2016-02-18","namespace":"urn:ietf:params:xml:ns:yang:ietf-packet-fields","conformance-type":"import"},{"name":"elan","revision":"2015-06-02","schema":"/modules/elan/2015-06-02","namespace":"urn:opendaylight:netvirt:elan","conformance-type":"import"},{"name":"iana-if-type","revision":"2014-05-08","schema":"/modules/iana-if-type/2014-05-08","namespace":"urn:ietf:params:xml:ns:yang:iana-if-type","conformance-type":"import"},{"name":"odl-arputil","revision":"2016-04-06","schema":"/modules/odl-arputil/2016-04-06","namespace":"urn:opendaylight:genius:arputil","conformance-type":"import"},{"name":"etree","revision":"2016-06-14","schema":"/modules/etree/2016-06-14","namespace":"urn:opendaylight:netvirt:elan:etree","conformance-type":"import"},{"name":"ietf-access-control-list","revision":"2016-02-18","schema":"/modules/ietf-access-control-list/2016-02-18","namespace":"urn:ietf:params:xml:ns:yang:ietf-access-control-list","conformance-type":"import"},{"name":"aclservice","revision":"2016-06-08","schema":"/modules/aclservice/2016-06-08","namespace":"urn:opendaylight:netvirt:aclservice","conformance-type":"import"},{"name":"interface-statistics","revision":"2015-08-24","schema":"/modules/interface-statistics/2015-08-24","namespace":"urn:opendaylight:genius:interface:statistics","conformance-type":"import"},{"name":"cloud-service-chain-state","revision":"2017-05-11","schema":"/modules/cloud-service-chain-state/2017-05-11","namespace":"urn:opendaylight:netvirt:cloud-servicechain:state","conformance-type":"import"},{"name":"elan-statistics","revision":"2015-08-24","schema":"/modules/elan-statistics/2015-08-24","namespace":"urn:opendaylight:netvirt:elan:statistics","conformance-type":"import"},{"name":"odl-interface","revision":"2016-04-06","schema":"/modules/odl-interface/2016-04-06","namespace":"urn:opendaylight:genius:interfacemanager","conformance-type":"import"},{"name":"itm-config","revision":"2016-04-06","schema":"/modules/itm-config/2016-04-06","namespace":"urn:opendaylight:genius:itm:config","conformance-type":"import"},{"name":"itm","revision":"2016-04-06","schema":"/modules/itm/2016-04-06","namespace":"urn:opendaylight:genius:itm","conformance-type":"import"},{"name":"odl-l3vpn","revision":"2013-09-11","schema":"/modules/odl-l3vpn/2013-09-11","namespace":"urn:opendaylight:netvirt:l3vpn","conformance-type":"import"},{"name":"itm-state","revision":"2016-04-06","schema":"/modules/itm-state/2016-04-06","namespace":"urn:opendaylight:genius:itm:op","conformance-type":"import"},{"name":"odl-interface-rpc","revision":"2016-04-06","schema":"/modules/odl-interface-rpc/2016-04-06","namespace":"urn:opendaylight:genius:interfacemanager:rpcs","conformance-type":"import"},{"name":"itm-rpc","revision":"2016-04-06","schema":"/modules/itm-rpc/2016-04-06","namespace":"urn:opendaylight:genius:itm:rpcs","conformance-type":"import"},{"name":"itm-impl","revision":"2016-04-06","schema":"/modules/itm-impl/2016-04-06","namespace":"urn:opendaylight:genius:itm:impl","conformance-type":"import"},{"name":"alivenessmonitor-impl","revision":"2016-04-06","schema":"/modules/alivenessmonitor-impl/2016-04-06","namespace":"urn:opendaylight:genius:alivenessmonitor:impl","conformance-type":"import"},{"name":"cluster-singleton-service-impl","revision":"2016-07-18","schema":"/modules/cluster-singleton-service-impl/2016-07-18","namespace":"urn:opendaylight:params:xml:ns:yang:md:sal:config:impl:cluster-singleton-service","conformance-type":"import"},{"name":"experimenter-switchfeatures-provider","revision":"2016-07-13","schema":"/modules/experimenter-switchfeatures-provider/2016-07-13","namespace":"urn:opendaylight:params:xml:ns:yang:config:openflow:experimenter-switchfeatures-provider","conformance-type":"import"},{"name":"opendaylight-entity-ownership-service","revision":"2015-08-10","schema":"/modules/opendaylight-entity-ownership-service/2015-08-10","namespace":"urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:spi:entity-ownership-service","conformance-type":"import"},{"name":"interfacemanager-impl","revision":"2016-04-06","schema":"/modules/interfacemanager-impl/2016-04-06","namespace":"urn:opendaylight:genius:interfacemanager:impl","conformance-type":"import"},{"name":"opendaylight-legacy-entity-ownership-service-provider","revision":"2016-02-26","schema":"/modules/opendaylight-legacy-entity-ownership-service-provider/2016-02-26","namespace":"urn:opendaylight:params:xml:ns:yang:controller:config:legacy-entity-ownership-service-provider","conformance-type":"import"},{"name":"openflow-provider-impl","revision":"2014-03-26","schema":"/modules/openflow-provider-impl/2014-03-26","namespace":"urn:opendaylight:params:xml:ns:yang:openflow:common:config:impl","conformance-type":"import"},{"name":"overlay","revision":"2015-01-05","schema":"/modules/overlay/2015-01-05","namespace":"urn:opendaylight:params:xml:ns:yang:overlay","conformance-type":"import"},{"name":"ovsdb","revision":"2015-01-05","schema":"/modules/ovsdb/2015-01-05","namespace":"urn:opendaylight:params:xml:ns:yang:ovsdb","conformance-type":"import"},{"name":"odl-interface-meta","revision":"2016-04-06","schema":"/modules/odl-interface-meta/2016-04-06","namespace":"urn:opendaylight:genius:interfacemanager:meta","conformance-type":"import"},{"name":"netconf-northbound-notification-impl","revision":"2015-08-07","schema":"/modules/netconf-northbound-notification-impl/2015-08-07","namespace":"urn:opendaylight:params:xml:ns:yang:controller:netconf:northbound:notification:impl","conformance-type":"import"},{"name":"neutron-subnets","revision":"2015-07-12","schema":"/modules/neutron-subnets/2015-07-12","namespace":"urn:opendaylight:neutron-subnets","conformance-type":"import"},{"name":"neutron","revision":"2015-07-12","schema":"/modules/neutron/2015-07-12","namespace":"urn:opendaylight:neutron","conformance-type":"import"},{"name":"neutron-portsecurity","revision":"2015-07-12","schema":"/modules/neutron-portsecurity/2015-07-12","namespace":"urn:opendaylight:neutron-portsecurity","conformance-type":"import"},{"name":"neutron-binding","revision":"2015-07-12","schema":"/modules/neutron-binding/2015-07-12","namespace":"urn:opendaylight:neutron-binding","conformance-type":"import"},{"name":"neutron-port-ext","revision":"2015-11-25","schema":"/modules/neutron-port-ext/2015-11-25","namespace":"urn:opendaylight:neutron-port-ext","conformance-type":"import"},{"name":"neutron-qos-ext","revision":"2016-06-13","schema":"/modules/neutron-qos-ext/2016-06-13","namespace":"urn:opendaylight:neutron-qos-ext","conformance-type":"import"},{"name":"neutron-provider-ext","revision":"2015-07-12","schema":"/modules/neutron-provider-ext/2015-07-12","namespace":"urn:opendaylight:neutron-provider-ext","conformance-type":"import"},{"name":"neutron-L3-ext","revision":"2015-07-12","schema":"/modules/neutron-L3-ext/2015-07-12","namespace":"urn:opendaylight:neutron-L3-ext","conformance-type":"import"},{"name":"subscribe-to-notification","revision":"2016-10-28","schema":"/modules/subscribe-to-notification/2016-10-28","namespace":"subscribe:to:notification","conformance-type":"import"},{"name":"instance-identifier-patch-module","revision":"2015-11-21","schema":"/modules/instance-identifier-patch-module/2015-11-21","namespace":"instance:identifier:patch:module","conformance-type":"import"},{"name":"openflow-configuration","revision":"2014-06-30","schema":"/modules/openflow-configuration/2014-06-30","namespace":"urn:opendaylight:openflow:config","conformance-type":"import"},{"name":"openflow-switch-connection-provider-impl","revision":"2014-03-28","schema":"/modules/openflow-switch-connection-provider-impl/2014-03-28","namespace":"urn:opendaylight:params:xml:ns:yang:openflow:switch:connection:provider:impl","conformance-type":"import"},{"name":"openflow-switch-connection-config","revision":"2016-05-06","schema":"/modules/openflow-switch-connection-config/2016-05-06","namespace":"urn:opendaylight:params:xml:ns:yang:openflow:switch:connection:config","conformance-type":"import"},{"name":"sal-role","revision":"2015-07-27","schema":"/modules/sal-role/2015-07-27","namespace":"urn:opendaylight:role:service","conformance-type":"import"},{"name":"opendaylight-flow-statistics","revision":"2013-08-19","schema":"/modules/opendaylight-flow-statistics/2013-08-19","namespace":"urn:opendaylight:flow:statistics","conformance-type":"import"},{"name":"opendaylight-direct-statistics","revision":"2016-05-11","schema":"/modules/opendaylight-direct-statistics/2016-05-11","namespace":"urn:opendaylight:direct:statistics","conformance-type":"import"},{"name":"openflowplugin-extension-general","revision":"2014-07-14","schema":"/modules/openflowplugin-extension-general/2014-07-14","namespace":"urn:opendaylight:openflowplugin:extension:general","conformance-type":"import"},{"name":"openflowplugin-extension-nicira-match","revision":"2014-07-14","schema":"/modules/openflowplugin-extension-nicira-match/2014-07-14","namespace":"urn:opendaylight:openflowplugin:extension:nicira:match","conformance-type":"import"},{"name":"openflowplugin-extension-nicira-action","revision":"2014-07-14","schema":"/modules/openflowplugin-extension-nicira-action/2014-07-14","namespace":"urn:opendaylight:openflowplugin:extension:nicira:action","conformance-type":"import"},{"name":"interface-service-bindings","revision":"2016-04-06","schema":"/modules/interface-service-bindings/2016-04-06","namespace":"urn:opendaylight:genius:interfacemanager:servicebinding","conformance-type":"import"},{"name":"openflow-protocol","revision":"2013-07-31","schema":"/modules/openflow-protocol/2013-07-31","namespace":"urn:opendaylight:openflow:protocol","conformance-type":"import"},{"name":"openflowjava-extension-resync","revision":"2016-07-13","schema":"/modules/openflowjava-extension-resync/2016-07-13","namespace":"urn:opendaylight:openflowjava:extension-resync","conformance-type":"import"},{"name":"openflow-resync","revision":"2014-02-06","schema":"/modules/openflow-resync/2014-02-06","namespace":"urn:opendaylight:openflow:resync","conformance-type":"import"},{"name":"opendaylight-switch-features-extension","revision":"2014-02-06","schema":"/modules/opendaylight-switch-features-extension/2014-02-06","namespace":"urn:opendaylight:switch-features:extension","conformance-type":"import"},{"name":"openflowjava-extension-switchfeatures","revision":"2016-07-13","schema":"/modules/openflowjava-extension-switchfeatures/2016-07-13","namespace":"urn:opendaylight:openflowjava:extension-switchfeatures","conformance-type":"import"},{"name":"openflow-augments","revision":"2015-02-25","schema":"/modules/openflow-augments/2015-02-25","namespace":"urn:opendaylight:openflow:augments","conformance-type":"import"},{"name":"openflow-approved-extensions","revision":"2016-08-02","schema":"/modules/openflow-approved-extensions/2016-08-02","namespace":"urn:opendaylight:openflow:approved:extensions","conformance-type":"import"},{"name":"experimenter-action","revision":"2014-03-06","schema":"/modules/experimenter-action/2014-03-06","namespace":"urn:ericsson:openflow:experimenter:action","conformance-type":"import"},{"name":"opendaylight-meter-statistics","revision":"2013-11-11","schema":"/modules/opendaylight-meter-statistics/2013-11-11","namespace":"urn:opendaylight:meter:statistics","conformance-type":"import"},{"name":"aaa-cert-rpc","revision":"2015-12-15","schema":"/modules/aaa-cert-rpc/2015-12-15","namespace":"urn:opendaylight:yang:aaa:cert:rpc","conformance-type":"import"},{"name":"openflow-provider","revision":"2015-03-31","schema":"/modules/openflow-provider/2015-03-31","namespace":"urn:opendaylight:params:xml:ns:yang:openflow:api","conformance-type":"import"},{"name":"openflow-plugin-provider-impl","revision":"2015-03-27","schema":"/modules/openflow-plugin-provider-impl/2015-03-27","namespace":"urn:opendaylight:params:xml:ns:yang:config:openflow:plugin:impl","conformance-type":"import"},{"name":"sal-experimenter-message","revision":"2015-10-20","schema":"/modules/sal-experimenter-message/2015-10-20","namespace":"urn:opendaylight:experimenter-message:service","conformance-type":"import"},{"name":"openflowplugin-extension-resync","revision":"2016-07-13","schema":"/modules/openflowplugin-extension-resync/2016-07-13","namespace":"urn:opendaylight:openflowplugin:extension:resync","conformance-type":"import"},{"name":"openflowplugin-extension-switchfeatures","revision":"2016-07-13","schema":"/modules/openflowplugin-extension-switchfeatures/2016-07-13","namespace":"urn:opendaylight:openflowplugin:extension:switchfeatures","conformance-type":"import"}],"module-set-id":"6"},"ietf-restconf-monitoring:restconf-state":{"capabilities":{"capability":["urn:ietf:params:restconf:capability:depth:1.0","urn:ietf:params:restconf:capability:fields:1.0","urn:ietf:params:restconf:capability:filter:1.0","urn:ietf:params:restconf:capability:replay:1.0","urn:ietf:params:restconf:capability:with-defaults:1.0"]}},"opendaylight-inventory:nodes":{},"aliveness-monitor:monitor-profiles":{"monitor-profile":[{"id":1,"failure-threshold":2,"monitor-interval":120000,"protocol-type":"arp","monitor-window":4}]},"lock-manager:locks":{}}
\ No newline at end of file
diff --git a/csit/libraries/backuprestore/testinput/patchAfter.json b/csit/libraries/backuprestore/testinput/patchAfter.json
deleted file mode 100644 (file)
index 8b1eafb..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-[
-{"op":"remove","path":"/difference"}
-]
diff --git a/csit/libraries/backuprestore/testinput/patchBefore.json b/csit/libraries/backuprestore/testinput/patchBefore.json
deleted file mode 100644 (file)
index fe51488..0000000
+++ /dev/null
@@ -1 +0,0 @@
-[]
diff --git a/csit/libraries/backuprestore/testinput/patchReference.json b/csit/libraries/backuprestore/testinput/patchReference.json
deleted file mode 100644 (file)
index 582dca5..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-[
-{"op":"add","path":"/difference","value":"yes this is the difference"},
-{"op":"remove","path":"/difference"}
-]
diff --git a/csit/libraries/backuprestore/testinput/setTwoNames.json b/csit/libraries/backuprestore/testinput/setTwoNames.json
deleted file mode 100644 (file)
index a4dae94..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "Name": "John",
- "LastName1":
-   {
-     "lastName1":"ln1"
-   },
-  "LastName2":
-   {
-     "lastName2":"ln2"
-   }
-}
diff --git a/csit/libraries/backuprestore/testinput/setTwoNamesExtraAttrib.json b/csit/libraries/backuprestore/testinput/setTwoNamesExtraAttrib.json
deleted file mode 100644 (file)
index e08ad91..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "Name": "John",
- "LastName1":
-   {
-     "lastName1":"ln1"
-   },
-  "difference": "yes this is the difference",
-  "LastName2":
-   {
-     "lastName2":"ln2"
-   }
-}
diff --git a/csit/libraries/backuprestore/testinput/setTwoNamesReversed.json b/csit/libraries/backuprestore/testinput/setTwoNamesReversed.json
deleted file mode 100644 (file)
index 1b930a9..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "Name": "John",
- "LastName2":
-   {
-     "lastName2":"ln2"
-   },
-  "LastName1":
-   {
-     "lastName1":"ln1"
-   }
-}
diff --git a/csit/suites/backuprestore/br-basic/010__br_library_keywords.robot b/csit/suites/backuprestore/br-basic/010__br_library_keywords.robot
deleted file mode 100644 (file)
index b2d7003..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-*** Settings ***
-Documentation       Test suite for B&R support library itself
-
-Library             SSHLibrary
-Library             Collections
-Library             OperatingSystem
-Library             RequestsLibrary
-Resource            ../../../variables/Variables.robot
-Resource            ../../../libraries/Utils.robot
-Resource            ../../../libraries/TemplatedRequests.robot
-Resource            ../../../libraries/BackupRestoreKeywords.robot
-
-Suite Setup         Run Keywords    Init Suite    ClusterManagement Setup
-Suite Teardown      Delete All Sessions
-Test Setup          Remove All Elements If Exist    ${SERVICE_FUNCTIONS_URI}
-
-
-*** Test Cases ***
-ConditionalBackupRestoreCheck keyword
-    [Documentation]    Demostrates how the ConditionalBackupRestoreCheck keyword can be used together with the flag " -v BR_TESTING_ENABLED:false/true" in order to add backup-restore verification to existing testcases
-    Add Elements To URI From File    ${SERVICE_FUNCTIONS_URI}    ${SERVICE_FUNCTIONS_FILE}
-    ConditionalBackupRestoreCheck
-    ${body}    OperatingSystem.Get File    ${SERVICE_FUNCTIONS_FILE}
-    ${jsonbody}    To Json    ${body}
-    ${functions}    Get From Dictionary    ${jsonbody}    service-functions
-    ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_FUNCTIONS_URI}
-    Should Contain    ${ALLOWED_STATUS_CODES}    ${resp.status_code}
-    ${result}    To JSON    ${resp.content}
-    ${function}    Get From Dictionary    ${result}    service-functions
-    Lists Should be Equal    ${function}    ${functions}
-
-BackupRestoreCheck keyword
-    [Documentation]    Demostrates how the BackupRestoreCheck keyword can be used in order to create specific testcases performing backup-restore verification
-    ${body}    OperatingSystem.Get File    ${SERVICE_FUNCTIONS_FILE}
-    Add Elements To URI From File    ${SERVICE_FUNCTIONS_URI}    ${SERVICE_FUNCTIONS_FILE}
-    Run Keyword And Expect Error
-    ...    *
-    ...    BackupRestoreCheck
-    ...    exclusionsOperationalBefore=../variables/backuprestore/json_prefilter.conf
-    ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_FUNCTIONS_URI}
-    Should Contain    ${ALLOWED_STATUS_CODES}    ${resp.status_code}
-    Remove All Elements At URI    ${SERVICE_FUNCTIONS_URI}
-    ${resp}    RequestsLibrary.Get Request    session    ${SERVICE_FUNCTIONS_URI}
-    Should Be Equal As Strings    ${resp.status_code}    404
-
-
-*** Keywords ***
-Init Suite
-    [Documentation]    Initialize session and ODL version specific variables
-    Create Session    session    http://${ODL_SYSTEM_IP}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS}
-    log    ${ODL_STREAM}
-    Set Suite Variable    ${VERSION_DIR}    master
-    Set Suite Variable    ${SERVICE_FUNCTIONS_URI}    /restconf/config/service-function:service-functions/
-    Set Suite Variable
-    ...    ${SERVICE_FUNCTIONS_FILE}
-    ...    ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-functions.json
-    Set Suite Variable
-    ...    ${SF_DPI102100_URI}
-    ...    /restconf/config/service-function:service-functions/service-function/dpi-102-100/
-    Set Suite Variable    ${SF_DPI102100_FILE}    ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/sf_dpi_102_100.json
-    Set Suite Variable    ${SF_DPL101_FILE}    ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/sf_dpl_101.json
diff --git a/csit/suites/backuprestore/br-basic/020__br_sfc_tests.robot b/csit/suites/backuprestore/br-basic/020__br_sfc_tests.robot
deleted file mode 100644 (file)
index 546cb37..0000000
+++ /dev/null
@@ -1,170 +0,0 @@
-*** Settings ***
-Documentation       Test suite for SFC Service Functions, Operates functions from Restconf APIs.
-
-Library             SSHLibrary
-Library             Collections
-Library             OperatingSystem
-Library             RequestsLibrary
-Resource            ../../../variables/Variables.robot
-Resource            ../../../libraries/Utils.robot
-Resource            ../../../libraries/TemplatedRequests.robot
-Resource            ../../../libraries/BackupRestoreKeywords.robot
-
-Suite Setup         Run Keywords    Init Suite    ClusterManagement Setup
-Suite Teardown      Delete All Sessions
-
-
-*** Test Cases ***
-Basic Environment Setup Tests
-    [Documentation]    Prepare Basic Test Environment
-    Add Elements To URI From File    ${SERVICE_FORWARDERS_URI}    ${SERVICE_FORWARDERS_FILE}
-    Add Elements To URI From File    ${SERVICE_NODES_URI}    ${SERVICE_NODES_FILE}
-    Add Elements To URI From File    ${SERVICE_FUNCTIONS_URI}    ${SERVICE_FUNCTIONS_FILE}
-    Add Elements To URI From File    ${SERVICE_CHAINS_URI}    ${SERVICE_CHAINS_FILE}
-    Add Elements To URI From File    ${SERVICE_FUNCTION_PATHS_URI}    ${SERVICE_FUNCTION_PATHS_FILE}
-
-Create and Get Rendered Service Path
-    [Documentation]    Create and Get Rendered Service Path Through RESTConf APIs
-    Post Elements To URI As JSON    ${OPERATIONS_CREATE_RSP_URI}    ${CREATE_RSP1_INPUT}
-    ${resp}    RequestsLibrary.Get Request    session    ${OPERATIONAL_RSPS_URI}
-    Should Contain    ${ALLOWED_STATUS_CODES}    ${resp.status_code}
-    ${elements}    Create List
-    ...    SFC1-100-Path-1
-    ...    "parent-service-function-path":"SFC1-100"
-    ...    "hop-number":0
-    ...    "service-index":255
-    ...    "hop-number":1
-    ...    "service-index":254
-    ...    "hop-number":2
-    ...    "service-index":253
-    ConditionalBackupRestoreCheck
-    Check For Elements At URI    ${OPERATIONAL_RSPS_URI}    ${elements}
-    Post Elements To URI As JSON    ${OPERATIONS_DELETE_RSP_URI}    ${DELETE_RSP1_INPUT}
-
-Create Get Rendered Service Path Failure
-    [Documentation]    Create and Get Rendered Service Path Through RESTConf APIs
-    Post Elements To URI As JSON    ${OPERATIONS_CREATE_RSP_URI}    ${CREATE_RSP1_INPUT}
-    ${resp}    RequestsLibrary.Get Request    session    ${OPERATIONAL_RSPS_URI}
-    Should Contain    ${ALLOWED_STATUS_CODES}    ${resp.status_code}
-    ${elements}    Create List
-    ...    SFC1-100-Path-1
-    ...    "parent-service-function-path":"SFC1-100"
-    ...    "hop-number":0
-    ...    "service-index":255
-    ...    "hop-number":1
-    ...    "service-index":254
-    ...    "hop-number":2
-    ...    "service-index":253
-    ConditionalBackupRestoreCheck
-    Check For Elements At URI    ${OPERATIONAL_RSPS_URI}    ${elements}
-    Post Elements To URI As JSON    ${OPERATIONS_DELETE_RSP_URI}    ${DELETE_RSP1_INPUT}
-
-Clean Datastore After Tests
-    [Documentation]    Clean All Items In Datastore After Tests
-    Remove All Elements If Exist    ${SERVICE_FUNCTIONS_URI}
-    Remove All Elements If Exist    ${SERVICE_FORWARDERS_URI}
-    Remove All Elements If Exist    ${SERVICE_NODES_URI}
-    Remove All Elements If Exist    ${SERVICE_CHAINS_URI}
-    Remove All Elements If Exist    ${SERVICE_FUNCTION_PATHS_URI}
-
-
-*** Keywords ***
-Post Elements To URI As JSON
-    [Arguments]    ${uri}    ${data}
-    ${resp}    RequestsLibrary.Post Request    session    ${uri}    data=${data}    headers=${headers}
-    Should Contain    ${ALLOWED_STATUS_CODES}    ${resp.status_code}
-
-Get JSON Elements From URI
-    [Arguments]    ${uri}
-    ${resp}    RequestsLibrary.Get Request    session    ${uri}
-    ${value}    To Json    ${resp.content}
-    RETURN    ${value}
-
-Init Suite
-    [Documentation]    Create session and initialize ODL version specific variables
-    Create Session    session    http://${ODL_SYSTEM_IP}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS}
-    log    ${ODL_STREAM}
-    Set Suite Variable    ${VERSION_DIR}    master
-    Set Suite Variable    ${SERVICE_FUNCTIONS_URI}    /restconf/config/service-function:service-functions/
-    Set Suite Variable
-    ...    ${SERVICE_FUNCTIONS_FILE}
-    ...    ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-functions.json
-    Set Suite Variable
-    ...    ${SERVICE_FORWARDERS_URI}
-    ...    /restconf/config/service-function-forwarder:service-function-forwarders/
-    Set Suite Variable
-    ...    ${SERVICE_FORWARDERS_FILE}
-    ...    ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-function-forwarders.json
-    Set Suite Variable    ${SERVICE_NODES_URI}    /restconf/config/service-node:service-nodes/
-    Set Suite Variable    ${SERVICE_NODES_FILE}    ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-nodes.json
-    Set Suite Variable    ${SERVICE_CHAINS_URI}    /restconf/config/service-function-chain:service-function-chains/
-    Set Suite Variable
-    ...    ${SERVICE_CHAINS_FILE}
-    ...    ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-function-chains.json
-    Set Suite Variable
-    ...    ${SERVICE_FUNCTION_PATHS_URI}
-    ...    /restconf/config/service-function-path:service-function-paths/
-    Set Suite Variable
-    ...    ${SERVICE_FUNCTION_PATHS_FILE}
-    ...    ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-function-paths.json
-    Set Suite Variable
-    ...    ${SERVICE_SCHED_TYPES_URI}
-    ...    /restconf/config/service-function-scheduler-type:service-function-scheduler-types/
-    Set Suite Variable
-    ...    ${SERVICE_SCHED_TYPE_URI_BASE}
-    ...    ${SERVICE_SCHED_TYPES_URI}service-function-scheduler-type/service-function-scheduler-type:
-    Set Suite Variable    ${SERVICE_RANDOM_SCHED_TYPE_URI}    ${SERVICE_SCHED_TYPE_URI_BASE}random
-    Set Suite Variable
-    ...    ${SERVICE_RANDOM_SCHED_TYPE_FILE}
-    ...    ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-random-schedule-type.json
-    Set Suite Variable    ${SERVICE_ROUNDROBIN_SCHED_TYPE_URI}    ${SERVICE_SCHED_TYPE_URI_BASE}round-robin
-    Set Suite Variable
-    ...    ${SERVICE_ROUNDROBIN_SCHED_TYPE_FILE}
-    ...    ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-roundrobin-schedule-type.json
-    Set Suite Variable    ${SERVICE_LOADBALANCE_SCHED_TYPE_URI}    ${SERVICE_SCHED_TYPE_URI_BASE}load-balance
-    Set Suite Variable
-    ...    ${SERVICE_LOADBALANCE_SCHED_TYPE_FILE}
-    ...    ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-loadbalance-schedule-type.json
-    Set Suite Variable    ${SERVICE_SHORTESTPATH_SCHED_TYPE_URI}    ${SERVICE_SCHED_TYPE_URI_BASE}shortest-path
-    Set Suite Variable
-    ...    ${SERVICE_SHORTESTPATH_SCHED_TYPE_FILE}
-    ...    ${CURDIR}/../../../variables/sfc/${VERSION_DIR}/service-shortestpath-schedule-type.json
-    Set Suite Variable
-    ...    ${RENDERED_SERVICE_PATHS_URI}
-    ...    /restconf/config/rendered-service-path:rendered-service-paths/
-    Set Suite Variable
-    ...    ${OPERATIONAL_RSPS_URI}
-    ...    /restconf/operational/rendered-service-path:rendered-service-paths/
-    Set Suite Variable
-    ...    ${OPERATIONS_CREATE_RSP_URI}
-    ...    /restconf/operations/rendered-service-path:create-rendered-path/
-    Set Suite Variable
-    ...    ${OPERATIONS_DELETE_RSP_URI}
-    ...    /restconf/operations/rendered-service-path:delete-rendered-path
-    Set Suite Variable
-    ...    ${CREATE_RSP1_INPUT}
-    ...    {"input":{"parent-service-function-path":"SFC1-100","name":"SFC1-100-Path-1"}}
-    Set Suite Variable
-    ...    ${CREATE_RSP2_INPUT}
-    ...    {"input":{"parent-service-function-path":"SFC1-100","name":"SFC1-100-Path-2"}}
-    Set Suite Variable
-    ...    ${CREATE_RSP3_INPUT}
-    ...    {"input":{"parent-service-function-path":"SFC1-100","name":"SFC1-100-Path-3"}}
-    Set Suite Variable
-    ...    ${CREATE_RSP4_INPUT}
-    ...    {"input":{"parent-service-function-path":"SFC1-100","name":"SFC1-100-Path-4"}}
-    Set Suite Variable
-    ...    ${CREATE_RSP5_INPUT}
-    ...    {"input":{"parent-service-function-path":"SFC1-100","name":"SFC1-100-Path-5"}}
-    Set Suite Variable
-    ...    ${CREATE_RSP6_INPUT}
-    ...    {"input":{"parent-service-function-path":"SFC1-100","name":"SFC1-100-Path-6"}}
-    Set Suite Variable
-    ...    ${CREATE_RSP_FAILURE_INPUT}
-    ...    {"input":{"parent-service-function-path":"SFC1-empty","name":"SFC1-empty-Path-1"}}
-    Set Suite Variable    ${DELETE_RSP1_INPUT}    {"input":{"name":"SFC1-100-Path-1"}}
-    Set Suite Variable    ${DELETE_RSP2_INPUT}    {"input":{"name":"SFC1-100-Path-2"}}
-    Set Suite Variable    ${DELETE_RSP3_INPUT}    {"input":{"name":"SFC1-100-Path-3"}}
-    Set Suite Variable    ${DELETE_RSP4_INPUT}    {"input":{"name":"SFC1-100-Path-4"}}
-    Set Suite Variable    ${DELETE_RSP5_INPUT}    {"input":{"name":"SFC1-100-Path-5"}}
-    Set Suite Variable    ${DELETE_RSP6_INPUT}    {"input":{"name":"SFC1-100-Path-6"}}
diff --git a/csit/variables/backuprestore/BackupRestoreVariables.robot b/csit/variables/backuprestore/BackupRestoreVariables.robot
deleted file mode 100644 (file)
index 29b492a..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-*** Settings ***
-Documentation       Resource consisting purely of variable definitions useful for multiple project suites.
-
-
-*** Variables ***
-${EXP_DIR}                          /tmp/Export
-${EXP_DATA_FILE}                    odl_backup_config.json
-${EXP_OPER_FILE}                    odl_backup_operational.json
-${RELATIVE_BEFORE_BACKUP_DIR}       beforeBackup
-${RELATIVE_AFTER_RESTORE_DIR}       afterRestore
diff --git a/csit/variables/backuprestore/json_prefilter.conf b/csit/variables/backuprestore/json_prefilter.conf
deleted file mode 100644 (file)
index bc6e9c4..0000000
+++ /dev/null
@@ -1 +0,0 @@
-$.ietf-yang-library:modules-state.module[?(@.name=='ietf-yang-types')]
diff --git a/csit/variables/backuprestore/json_prefilter_matching_basic.json b/csit/variables/backuprestore/json_prefilter_matching_basic.json
deleted file mode 100644 (file)
index 990f4c6..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-# This example will remove an existing entry in the operational model
-
-$.ietf-yang-library:modules-state.module[@.name is 'sfc-of-renderer']