Removed code for no more active backuprestore project.
JIRA: INTTEST-140
Change-Id: Ifd69475d6858c25c5437ae2a262d4e2ff4cdaaae
Signed-off-by: Oleksandr Zharov <oleksandr.zharov@pantheon.tech>
+++ /dev/null
-*** 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
+++ /dev/null
-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()
+++ /dev/null
-== 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
+++ /dev/null
-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()
+++ /dev/null
-"""
-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)
+++ /dev/null
-[{"Name": "John"},{"Name": "Mark"}, {"Name": "Tom"}]
+++ /dev/null
-[{"Name": "John"},{"Name": "Mark"}]
+++ /dev/null
-[{"Name": "John"},{"Name": "Mark"}]
+++ /dev/null
-[{"Name": "Mark"},{"Name": "John"}]
+++ /dev/null
-# $.*[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
+++ /dev/null
-#
-# 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
+++ /dev/null
-#
-# 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')]
+++ /dev/null
-$.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
+++ /dev/null
-#
-# 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')]
+++ /dev/null
-{"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
+++ /dev/null
-{"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
+++ /dev/null
-[
-{"op":"remove","path":"/difference"}
-]
+++ /dev/null
-[
-{"op":"add","path":"/difference","value":"yes this is the difference"},
-{"op":"remove","path":"/difference"}
-]
+++ /dev/null
-{
- "Name": "John",
- "LastName1":
- {
- "lastName1":"ln1"
- },
- "LastName2":
- {
- "lastName2":"ln2"
- }
-}
+++ /dev/null
-{
- "Name": "John",
- "LastName1":
- {
- "lastName1":"ln1"
- },
- "difference": "yes this is the difference",
- "LastName2":
- {
- "lastName2":"ln2"
- }
-}
+++ /dev/null
-{
- "Name": "John",
- "LastName2":
- {
- "lastName2":"ln2"
- },
- "LastName1":
- {
- "lastName1":"ln1"
- }
-}
+++ /dev/null
-*** 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
+++ /dev/null
-*** 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"}}
+++ /dev/null
-*** 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
+++ /dev/null
-$.ietf-yang-library:modules-state.module[?(@.name=='ietf-yang-types')]
+++ /dev/null
-# This example will remove an existing entry in the operational model
-
-$.ietf-yang-library:modules-state.module[@.name is 'sfc-of-renderer']