Adding initial test cases, include enumeration conversion, address review comments
Change-Id: I59a19f80289464c934ad16d2d2ce1c78a6ba6f2c
diff --git a/tests/utests/netconf/yang/xos-openstack.yang b/tests/utests/netconf/yang/xos-openstack.yang
new file mode 100644
index 0000000..3f79fe0
--- /dev/null
+++ b/tests/utests/netconf/yang/xos-openstack.yang
@@ -0,0 +1,190 @@
+module xos-controller {
+ namespace "urn:ietf:params:xml:ns:yang:xos-controller";
+ prefix xcontrol;
+ yang-version 1.1;
+
+ import ietf-yang-types { prefix yang; }
+ import ietf-inet-types { prefix inet; }
+ import xos-core { prefix xos; }
+ import xos-types { prefix xtype; }
+
+ organization
+ "Open Networking Lab (XOS) / Corenova Technologies";
+
+ contact
+ "Larry Peterson <llp@onlab.us>
+ Peter K. Lee <peter@corenova.com>";
+
+ description
+ "This module contains a collection of Controller models for XOS.
+
+ Copyright (c) 2016 ON.LAB and the persons identified as authors of
+ the code. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, is permitted pursuant to, and subject to the license
+ terms of the Apache License, Version 2.0 which accompanies this
+ distribution, and is available at
+ (http://www.apache.org/licenses/LICENSE-2.0).";
+
+ revision 2016-09-23 {
+ description "Initial revision.";
+ }
+
+ grouping controller {
+ uses xos:provider;
+ leaf backend-type {
+ type string;
+ }
+ leaf version {
+ type string;
+ }
+ leaf auth-url {
+ type string;
+ }
+ leaf admin-user {
+ type string;
+ }
+ leaf admin-password {
+ type string;
+ }
+ leaf admin-tenant {
+ type string;
+ }
+ leaf domain {
+ type string;
+ }
+ container message-queue {
+ leaf rabbit-host {
+ type string;
+ }
+ leaf rabbit-user {
+ type string;
+ }
+ leaf rabbit-password {
+ type string;
+ }
+ }
+ leaf deployment {
+ type xtype:deployment;
+ }
+ }
+ grouping controller-site-privilege {
+ uses xos:tenant;
+
+ leaf controller {
+ type xtype:controller;
+ }
+
+ leaf site-privilege {
+ type xtype:site-privilege;
+ }
+
+ container synchronizer {
+ if-feature xos:synchronizer;
+ leaf role-id {
+ type string;
+ }
+ }
+ }
+ grouping controller-network {
+ uses xos:tenant;
+ leaf network {
+ type xtype:network;
+ }
+ leaf controller {
+ type xtype:controller;
+ }
+ leaf subnet {
+ type string;
+ }
+ container synchronizer {
+ if-feature synchronizer;
+ leaf net-id {
+ type string;
+ }
+ leaf router-id {
+ type string;
+ }
+ leaf subnet-id {
+ type string;
+ }
+ }
+ }
+ grouping controller-site {
+ uses xos:tenant;
+ leaf site {
+ type xtype:site;
+ }
+
+ leaf controller {
+ type xtype:controller;
+ }
+
+ container synchronizer {
+ if-feature synchronizer;
+ leaf tenant-id {
+ type string;
+ }
+ }
+ }
+ grouping controller-slice {
+ uses xos:tenant;
+ leaf controller {
+ type xtype:controller;
+ }
+ leaf slice {
+ type xtype:slice;
+ }
+
+ container synchronizer {
+ if-feature synchronizer;
+ leaf tenant-id {
+ type string;
+ }
+ }
+ }
+ grouping controller-role {
+ uses xos:tenant;
+ leaf role {
+ type string;
+ }
+ }
+ grouping controller-user {
+ uses xos:tenant;
+ leaf user {
+ type xtype:user;
+ }
+
+ leaf controller {
+ type xtype:controller;
+ }
+
+ container synchronizer {
+ if-feature synchronizer {
+ leaf kuser-id {
+ type string;
+ }
+ }
+ }
+ }
+ grouping controller-slice-privilege {
+ uses xos:tenant;
+ leaf controller {
+ type xtype:controller;
+ }
+
+ leaf slice-privilege {
+ type xtype:slice-privilege;
+ }
+
+ container synchronizer {
+ if-feature synchronizer {
+ leaf role-id {
+ type string;
+ }
+ }
+ }
+ }
+
+}