YANGTOOLS-706: Split out yang-parser-rfc7950
[yangtools.git] / yang / yang-parser-rfc7950 / src / test / resources / sal-broker-impl / opendaylight-dom-broker-impl.yang
diff --git a/yang/yang-parser-rfc7950/src/test/resources/sal-broker-impl/opendaylight-dom-broker-impl.yang b/yang/yang-parser-rfc7950/src/test/resources/sal-broker-impl/opendaylight-dom-broker-impl.yang
new file mode 100644 (file)
index 0000000..944a63d
--- /dev/null
@@ -0,0 +1,218 @@
+module opendaylight-sal-dom-broker-impl {
+    yang-version 1;
+    namespace "urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl";
+    prefix "broker";
+
+    import config { prefix config; revision-date 2013-04-05; }
+    import ietf-yang-types { prefix yang; }
+    import opendaylight-md-sal-dom { prefix sal; }
+    import opendaylight-md-sal-common { prefix common; }
+    import opendaylight-config-dom-datastore { prefix config-dom-store-spi; }
+    import opendaylight-operational-dom-datastore { prefix operational-dom-store-spi; }
+    import rpc-context { prefix rpcx; revision-date 2013-06-17; }
+
+    description
+        "Service definition for Binding Aware MD-SAL. Note: The dom-inmemory-data-broker
+        utilizes configurable config-dom-datastore and operation-dom-datastore.
+        If configuration is not done for this stores then it defaults
+        to InMemoryDOMDataStore";
+
+    revision "2013-10-28" {
+        description
+                "Initial revision";
+    }
+
+    identity dom-broker-impl {
+        base config:module-type;
+        config:provided-service sal:dom-broker-osgi-registry;
+        config:java-name-prefix DomBrokerImpl;
+    }
+
+    identity dom-inmemory-data-broker {
+        base config:module-type;
+        config:provided-service sal:dom-async-data-broker;
+    }
+
+    identity schema-service-singleton {
+        base config:module-type;
+        config:provided-service sal:schema-service;
+        config:java-name-prefix SchemaServiceImplSingleton;
+    }
+
+    typedef max-queue-depth {
+        type uint32 {
+            range 1..1073741824;
+        }
+    }
+
+    augment "/config:modules/config:module/config:configuration" {
+        case dom-broker-impl {
+            when "/config:modules/config:module/config:type = 'dom-broker-impl'";
+
+            container async-data-broker {
+                uses config:service-ref {
+                    refine type {
+                        mandatory false;
+                        config:required-identity sal:dom-async-data-broker;
+                    }
+                }
+            }
+
+            container root-schema-service {
+                uses config:service-ref {
+                    refine type {
+                        mandatory false;
+                        config:required-identity sal:schema-service;
+                    }
+                }
+            }
+
+            leaf notification-queue-depth {
+                description "Maximum number of elements in the notification queue, must be
+                                power-of-two.";
+                type max-queue-depth;
+                default 65536;
+            }
+            leaf notification-queue-spin {
+                description "Number of milliseconds notification queue should spin for new
+                                requests before parking.";
+                type uint16;
+                units milliseconds;
+                default 1;
+            }
+            leaf notification-queue-park {
+                description "Number of milliseconds notification queue should park for new
+                                requests before blocking.";
+                type uint16;
+                units milliseconds;
+                default 30;
+            }
+        }
+    }
+
+    grouping dom-broker-config {
+        container schema-service {
+            uses config:service-ref {
+                refine type {
+                    mandatory false;
+                    config:required-identity sal:schema-service;
+                }
+            }
+        }
+
+        container config-data-store {
+            uses config:service-ref {
+                refine type {
+                    mandatory false;
+                    config:required-identity config-dom-store-spi:config-dom-datastore;
+                }
+            }
+        }
+
+        container operational-data-store {
+            uses config:service-ref {
+                refine type {
+                    mandatory false;
+                    config:required-identity operational-dom-store-spi:operational-dom-datastore;
+                }
+            }
+        }
+
+        leaf max-data-broker-future-callback-queue-size {
+            default 1000;
+            type uint16;
+            description "The maximum queue size for the data broker's commit future callback
+                        executor.";
+        }
+
+        leaf max-data-broker-future-callback-pool-size {
+            default 20;
+            type uint16;
+            description "The maximum thread pool size for the data broker's commit future
+                        callback executor.";
+        }
+
+        leaf max-data-broker-commit-queue-size {
+            default 5000;
+            type uint16;
+            description "The maximum queue size for the data broker's commit executor.";
+        }
+    }
+
+    grouping dom-broker-operational {
+        leaf total-commits {
+            type uint64;
+        }
+
+        leaf average-commit {
+            type uint64;
+            units ns;
+        }
+
+        leaf longest-commit-duration {
+            type uint64;
+            units ns;
+        }
+
+        leaf longest-commit-timestamp {
+            type yang:date-and-time;
+        }
+
+        leaf shortest-commit-duration {
+            type uint64;
+            units ns;
+        }
+
+        leaf shortest-commit-timestamp {
+            type yang:date-and-time;
+        }
+
+        rpcx:rpc-context-instance dom-broker-rpc-ctx;
+    }
+
+    identity dom-broker-rpc-ctx;
+
+    rpc reset-statistics {
+        description
+                "JMX call to clear the toasts-made counter.";
+
+        input {
+            uses rpcx:rpc-context-ref {
+                refine context-instance {
+                    rpcx:rpc-context-instance dom-broker-rpc-ctx;
+                }
+            }
+        }
+    }
+
+    augment "/config:modules/config:module/config:configuration" {
+        case dom-inmemory-data-broker {
+            when "/config:modules/config:module/config:type = 'dom-inmemory-data-broker'";
+
+            uses dom-broker-config;
+        }
+    }
+
+    augment "/config:modules/config:module/config:state" {
+        case dom-inmemory-data-broker {
+            when "/config:modules/config:module/config:type = 'dom-inmemory-data-broker'";
+
+            uses dom-broker-operational;
+        }
+    }
+
+    augment "/config:modules/config:module/config:state" {
+        case schema-service-singleton {
+            when "/config:modules/config:module/config:type = 'schema-service-singleton'";
+        }
+    }
+
+    augment "/config:modules/config:module/config:state" {
+        case dom-broker-impl {
+            when "/config:modules/config:module/config:type = 'dom-broker-impl'";
+            container data {
+                uses common:data-state;
+            }
+        }
+    }
+}