summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--INFO.yaml9
-rw-r--r--dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/CachedDataSourceFactory.java4
-rwxr-xr-xdblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/DBResourceManager.java11
-rw-r--r--dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/config/DbConfigPool.java5
-rw-r--r--sli/common/src/main/resources/crAseNetwork.sql82
-rwxr-xr-xsli/common/src/main/yang/ase-network.yang179
-rwxr-xr-xsli/common/src/main/yang/ase-type.yang561
-rwxr-xr-xsli/common/src/main/yang/ase.yang558
-rwxr-xr-xsli/common/src/test/resources/svclogic.xsd339
9 files changed, 17 insertions, 1731 deletions
diff --git a/INFO.yaml b/INFO.yaml
index 070df112b..e15dda3ae 100644
--- a/INFO.yaml
+++ b/INFO.yaml
@@ -33,10 +33,9 @@ committers:
company: 'ATT'
id: 'jh245g'
timezone: 'America/New York'
- - name: 'Ryan Goulding'
- email: 'ryandgoulding@gmail.com'
- company: 'Inocybe Technologies'
- id: 'rgoulding'
- timezone: 'America/New York'
tsc:
approval: 'https://lists.onap.org/pipermail/onap-tsc'
+ changes:
+ - type: 'Deletion'
+ name: 'Ryan Goulding'
+ link: 'https://lists.onap.org/g/onap-tsc/message/4261'
diff --git a/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/CachedDataSourceFactory.java b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/CachedDataSourceFactory.java
index 296fe70f1..15aa7a1d0 100644
--- a/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/CachedDataSourceFactory.java
+++ b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/CachedDataSourceFactory.java
@@ -4,6 +4,8 @@
* ================================================================================
* Copyright (C) 2016 - 2017 ONAP
* ================================================================================
+ * Modifications Copyright (C) 2018 IBM.
+ * ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
@@ -38,7 +40,7 @@ public class CachedDataSourceFactory {
if(config instanceof JDBCConfiguration)
return JdbcDBCachedDataSource.createInstance(config);
- return (CachedDataSource)null;
+ return null;
}
}
diff --git a/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/DBResourceManager.java b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/DBResourceManager.java
index 9acae340b..047fa297e 100755
--- a/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/DBResourceManager.java
+++ b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/DBResourceManager.java
@@ -4,6 +4,8 @@
* ================================================================================
* Copyright (C) 2016 - 2017 ONAP
* ================================================================================
+ * Modifications Copyright (C) 2018 IBM.
+ * ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
@@ -68,7 +70,7 @@ public class DBResourceManager implements DataSource, DataAccessor, DBResourceOb
transient protected long retryInterval = 10000L;
transient boolean recoveryMode = true;
- SortedSet<CachedDataSource> dsQueue = new ConcurrentSkipListSet<CachedDataSource>(new DataSourceComparator());
+ SortedSet<CachedDataSource> dsQueue = new ConcurrentSkipListSet<>(new DataSourceComparator());
protected final Set<CachedDataSource> broken = Collections.synchronizedSet(new HashSet<CachedDataSource>());
protected final Object monitor = new Object();
protected final Properties configProps;
@@ -80,6 +82,7 @@ public class DBResourceManager implements DataSource, DataAccessor, DBResourceOb
protected final long monitoringInitialDelay;
protected final long expectedCompletionTime;
protected final long unprocessedFailoverThreshold;
+ private static final String LOGGER_ALARM_MSG="Generated alarm: DBResourceManager.getData - No active DB connection pools are available.";
public DBResourceManager(final DBLIBResourceProvider configuration) {
this(configuration.getProperties());
@@ -393,7 +396,7 @@ public class DBResourceManager implements DataSource, DataAccessor, DBResourceOb
// test if there are any connection pools available
if(this.dsQueue.isEmpty()){
- LOGGER.error("Generated alarm: DBResourceManager.getData - No active DB connection pools are available.");
+ LOGGER.error(LOGGER_ALARM_MSG);
throw new DBLibException("No active DB connection pools are available in RequestDataWithRecovery call.");
}
@@ -457,7 +460,7 @@ public class DBResourceManager implements DataSource, DataAccessor, DBResourceOb
private CachedRowSet requestDataNoRecovery(String statement, ArrayList<Object> arguments, String preferredDS) throws SQLException {
if(dsQueue.isEmpty()){
- LOGGER.error("Generated alarm: DBResourceManager.getData - No active DB connection pools are available.");
+ LOGGER.error(LOGGER_ALARM_MSG);
throw new DBLibException("No active DB connection pools are available in RequestDataNoRecovery call.");
}
CachedDataSource active = this.dsQueue.first();
@@ -533,7 +536,7 @@ public class DBResourceManager implements DataSource, DataAccessor, DBResourceOb
private boolean writeDataNoRecovery(String statement, ArrayList<Object> arguments, String preferredDS) throws SQLException {
if(dsQueue.isEmpty()){
- LOGGER.error("Generated alarm: DBResourceManager.getData - No active DB connection pools are available.");
+ LOGGER.error(LOGGER_ALARM_MSG);
throw new DBLibException("No active DB connection pools are available in RequestDataNoRecovery call.");
}
diff --git a/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/config/DbConfigPool.java b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/config/DbConfigPool.java
index 21fdab245..fb94ea0e7 100644
--- a/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/config/DbConfigPool.java
+++ b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/config/DbConfigPool.java
@@ -4,6 +4,8 @@
* ================================================================================
* Copyright (C) 2016 - 2017 ONAP
* ================================================================================
+ * Modifications Copyright (C) 2018 IBM.
+ * ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
@@ -30,7 +32,7 @@ public class DbConfigPool {
private final String type;
- private ArrayList<BaseDBConfiguration> configurations = new ArrayList<BaseDBConfiguration>();
+ private ArrayList<BaseDBConfiguration> configurations = new ArrayList<>();
public DbConfigPool(Properties properties) {
LOGGER.debug("Initializing DbConfigType");
@@ -38,7 +40,6 @@ public class DbConfigPool {
}
public int getTimeout() {
- // TODO Auto-generated method stub
return 0;
}
diff --git a/sli/common/src/main/resources/crAseNetwork.sql b/sli/common/src/main/resources/crAseNetwork.sql
deleted file mode 100644
index 83f1dfc82..000000000
--- a/sli/common/src/main/resources/crAseNetwork.sql
+++ /dev/null
@@ -1,82 +0,0 @@
----
--- ============LICENSE_START=======================================================
--- ONAP : CCSDK
--- ================================================================================
--- Copyright (C) 2017 AT&T Intellectual Property. All rights
--- reserved.
--- ================================================================================
--- Licensed under the Apache License, Version 2.0 (the "License");
--- you may not use this file except in compliance with the License.
--- You may obtain a copy of the License at
---
--- http://www.apache.org/licenses/LICENSE-2.0
---
--- Unless required by applicable law or agreed to in writing, software
--- distributed under the License is distributed on an "AS IS" BASIS,
--- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
--- See the License for the specific language governing permissions and
--- limitations under the License.
--- ============LICENSE_END=========================================================
----
-
-CREATE TABLE sdnctl.ASE (
- ase_network_id INT NOT NULL,
- topology VARCHAR(25),
- CONSTRAINT P_ASE PRIMARY KEY(ase_network_id));
-
-CREATE TABLE sdnctl.ASE_PORT (
- esm_name VARCHAR(25),
- resource_emt_clli VARCHAR(25) NOT NULL,
- resource_emt_ip_addr VARCHAR(25) NOT NULL,
- port_action VARCHAR(25),
- profile VARCHAR(25) ,
- port VARCHAR(15) NOT NULL,
- state VARCHAR(25),
- resource_mode VARCHAR(25),
- speed INT,
- resource_lldp VARCHAR(1),
- resource_mtu VARCHAR(5),
- resource_autoneg VARCHAR(10),
- resource_twamp VARCHAR(10),
- resource_description VARCHAR(80),
- uni_circuit_id VARCHAR(45),
- CONSTRAINT P_ASE_PORT PRIMARY KEY(resource_emt_clli, port));
-
-CREATE TABLE sdnctl.ASE_EVC (
- esm_name VARCHAR(25),
- emt_ip_addr VARCHAR(25) NOT NULL,
- evc_action VARCHAR(25),
- service_id VARCHAR(25),
- serv_type VARCHAR(25),
- evc_choice VARCHAR(25),
- uni_port VARCHAR(25) NOT NULL,
- lag_port VARCHAR(25),
- mac_onoff VARCHAR(25),
- ppcos VARCHAR(25),
- cir VARCHAR(25),
- cbs VARCHAR(25),
- ebs VARCHAR(25),
- sgos VARCHAR(25),
- pe VARCHAR(25),
- unit VARCHAR(25),
- qinq VARCHAR(25),
- interface VARCHAR(25),
- evc_description VARCHAR(80),
- bandwidth VARCHAR(10),
- svlan VARCHAR(5),
- cvlan VARCHAR(5),
- routing_instance VARCHAR(25),
- rd VARCHAR(25),
- rt VARCHAR(25),
- evc_limit VARCHAR(25),
- label_block_size VARCHAR(25),
- site VARCHAR(25),
- int_mac_limit VARCHAR(5),
- sgos_grade VARCHAR(25),
- bum_rate VARCHAR(25),
- uni_circuit_id VARCHAR(45),
- leg INT,
- CONSTRAINT P_ASE_EVC PRIMARY KEY(emt_ip_addr, uni_port,leg));
-
-
-
diff --git a/sli/common/src/main/yang/ase-network.yang b/sli/common/src/main/yang/ase-network.yang
deleted file mode 100755
index ae654ae04..000000000
--- a/sli/common/src/main/yang/ase-network.yang
+++ /dev/null
@@ -1,179 +0,0 @@
-module ase {
- namespace "att:ase";
- prefix ase;
- revision "2014-06-03" {
- description "Example ASE Network Module";
- }
-
- container ase {
- config true;
- leaf ase-network-id{
- type uint32;
- }
- leaf topology {
- type string ; // check enum
- }
- }
-
- container ase-port {
- config true;
- // is this really a list of cpe ports one for each uni-ckt
- leaf esm-name {
- type string;
- }
-
- leaf resource-emt-clli {
- type string;
- }
-
- leaf resource-emt-ip-addr{
- type string;
- }
- leaf port-action {
- type string;
- }
- leaf profile {
- type string;
- }
- leaf port {
- type string;
- }
- leaf state {
- type string;
- }
- leaf resource-mode {
- type string;
- }
- leaf speed {
- type string;
- }
- leaf resource-lldp {
- type string;
- }
- leaf resource-mtu {
- type string;
- }
- leaf resource-autoneg{
- type string;
- }
- leaf resource-twamp {
- type string;
- }
- leaf resource-description {
- type string;
- }
- leaf uni-circuit-id {
- type string;
- }
- } // ase-port container
-
- container ase-evc {
-// Port contains a list of EVC
-// EVCs are either point to point or multipoint (topology)
-// EVCs are connected ? what ID is used to connected them ? (network-id) ?
- config true;
- leaf esm-name {
- type string;
- }
- leaf emt-ip-addr {
- type string;
- }
- leaf evc-action {
- type string;
- }
- leaf service-id {
- type string;
- }
-
- leaf serv-type {
- type string;
- }
- leaf evc-choice {
- type string;
- }
- leaf uni-port {
- type string;
- }
- leaf lag-port {
- type string;
- }
- leaf mac-onoff {
- type string;
- }
-
- leaf ppcos {
- type string;
- }
- leaf cir {
- type string;
- }
- leaf cbs {
- type string;
- }
- leaf ebs {
- type string;
- }
- leaf sgos {
- type string;
- }
-// ipag Device Data
- leaf pe {
- type string;
- }
- leaf unit {
- type string;
- }
- leaf qinq {
- type string;
- }
- leaf interface {
- type string;
- }
- leaf evc-description {
- type string;
- }
- leaf bandwidth {
- type string;
- }
- leaf svlan {
- type string;
- description "Service VLAN is either outer tag or only tag depending on QinQ";
- }
- leaf cvlan {
- type string;
- description "Customer VLAN is null if not QinQ";
- }
- leaf routing-instance {
- type string;
- }
- leaf rd {
- type string;
- }
- leaf rt {
- type string;
- }
- leaf limit {
- type string;
- }
- leaf label-block-size {
- type string;
- }
- leaf site {
- type string;
- }
- leaf int-mac-limit {
- type string;
- }
- leaf sgos-grade {
- type string;
- }
- leaf bum-rate {
- type string;
- }
- leaf uni-circuit-id {
- type string;
- }
- } // ase-evc container
-
-} // module ase-network
-
diff --git a/sli/common/src/main/yang/ase-type.yang b/sli/common/src/main/yang/ase-type.yang
deleted file mode 100755
index 2de186e69..000000000
--- a/sli/common/src/main/yang/ase-type.yang
+++ /dev/null
@@ -1,561 +0,0 @@
-module ase-type {
-
- namespace "att:ase:type";
- prefix ase-type;
-
- organization "AT&T ASE";
-
- revision 2014-06-09 {
- description
- "Initial version";
- }
-
- /////////////////////////////////////////////////////
- // ASE Service Model Typedefs & Groupings
- /////////////////////////////////////////////////////
-
- typedef query-type {
- type enumeration {
- enum getDevicePortDetails{
- value 0;
- }
- enum GetServiceDetailsRequest{
- value 1;
- }
- }
- }
-
- typedef uni-action-type {
- type enumeration {
- enum PortPreReserveRequest{
- value 0;
- }
- enum PortReleaseRequest{
- value 1;
- }
- enum PortDeProvRequest{
- value 2;
- }
- enum ChangePortProvRequest{
- value 3;
- }
- enum PortActivateRequest{
- value 4;
- }
- enum ChangePortActivateRequest{
- value 5;
- }
- enum DisconnectPortRequest{
- value 6;
- }
- enum getDevicePortDetails{
- value 7;
- }
- }
- }
-
- typedef evc-action-type {
- type enumeration {
- enum ConnectionProvRequest{
- value 0;
- }
- enum ChangeConnectionProvRequest{
- value 1;
- }
- enum ConnectionDeProvrequest{
- value 2;
- }
- enum ConnectionActivateRequest{
- value 3;
- }
- enum ChangeConnectionActivateRequest{
- value 4;
- }
- enum DisconnectConnectionRequest{
- value 5;
- }
- enum GetServiceDetailsRequest{
- value 6;
- }
- }
- }
-
- typedef evc-gos-type {
- type enumeration {
- enum "REAL-TIME"{
- value 0;
- }
- enum "INTERACTIVE"{
- value 1;
- }
- enum "BUSINESS-CRITICAL-HIGH"{
- value 2;
- }
- enum "BUSINESS-CRITICAL-MEDIUM"{
- value 3;
- }
- enum "NON-CRITICAL-HIGH"{
- value 4;
- }
- enum "NON-CRITICAL-LOW"{
- value 5;
- }
- }
- }
-
- typedef cir-rate-type {
- type enumeration {
- enum "Mbps"{
- value 0;
- }
- enum "Gbps"{
- value 1;
- }
- }
- }
-
- typedef ase-yes-no-type {
- type enumeration {
- enum "Y"{
- value 0;
- }
- enum "N"{
- value 1;
- }
- }
- }
-
- typedef provisioning-indicator {
- type enumeration {
- enum "Y"{
- value 0;
- }
- enum "N"{
- value 1;
- }
- }
- }
-
- typedef media-type {
- type enumeration {
- enum "SFP-1GE-SX"{
- value 0;
- }
- enum "SFP-1GE-LX"{
- value 1;
- }
- enum "SFP-1GE"{
- value 2;
- }
- enum "Ethernet-10_100_1000M"{
- value 3;
- }
- }
- }
-
- typedef media-speed-type {
- type enumeration {
- enum "100"{
- value 0;
- }
- enum "1000"{
- value 1;
- }
- enum "10000"{
- value 2;
- }
- }
- }
-
- typedef cos-category-type {
- type enumeration {
- enum "GOS"{
- value 0;
- }
- enum "PPCOS"{
- value 1;
- }
- }
- }
-
- typedef uni-gos-type {
- type enumeration {
- enum "INTERACTIVE"{
- value 0;
- }
- enum "BUSINESS-CRITICAL-HIGH"{
- value 1;
- }
- enum "BUSINESS-CRITICAL-MEDIUM"{
- value 2;
- }
- enum "NON-CRITICAL-HIGH"{
- value 3;
- }
- }
- }
-
- typedef uni-cir-value-type {
- type enumeration {
- enum "2"{
- value 0;
- }
- enum "4"{
- value 1;
- }
- enum "5"{
- value 2;
- }
- enum "8"{
- value 3;
- }
- enum "10"{
- value 4;
- }
- enum "20"{
- value 5;
- }
- enum "30"{
- value 6;
- }
- enum "40"{
- value 7;
- }
- enum "50"{
- value 8;
- }
- enum "60"{
- value 9;
- }
- enum "70"{
- value 10;
- }
- enum "80"{
- value 11;
- }
- enum "90"{
- value 12;
- }
- enum "100"{
- value 13;
- }
- enum "125"{
- value 14;
- }
- enum "150"{
- value 15;
- }
- enum "175"{
- value 16;
- }
- enum "200"{
- value 17;
- }
- enum "225"{
- value 18;
- }
- enum "250"{
- value 19;
- }
- }
- }
-
- typedef uni-mac-limit-type {
- description "MAC address limit for UNI port";
- type enumeration {
- enum "Y"{
- value 0;
- }
- enum "N"{
- value 1;
- }
- }
- }
-
- typedef port-tagging-type {
- type enumeration {
- enum "port-based"{
- value 0;
- }
- enum "vlan-based"{
- value 1;
- }
- }
- }
-
- typedef port-status {
- type enumeration {
- enum "Available"{
- value 0;
- }
- enum "Reserved"{
- value 1;
- }
- enum "Active" {
- value 2;
- }
- }
- }
-
- grouping uni-common-request-hdr {
- leaf request-id {
- type string;
- mandatory true;
- }
- leaf source {
- description "The source system requesting action or info";
- type string;
- mandatory true;
- }
- leaf request-action {
- description "action indicator for this service instance";
- type uni-action-type;
- }
- leaf undo-indicator {
- type provisioning-indicator;
- }
- leaf notification-url {
- description "When this field exists, NCS will return an "
- + "acknowledgement that the request is legal "
- + "Once the activate is finished (or fails) NCS"
- + "will utilize the URL to indicate the status";
- type string;
- }
- }
-
- grouping uni-common-return-hdr {
- leaf request-action {
- description "action indicator for this service instance";
- type uni-action-type;
- }
- leaf request-id {
- description "Identifier for the request from NGO";
- type string;
-
- }
- }
-
- grouping uni-common-error-format {
- leaf error-code {
- description "Error code";
- type int32;
- }
- leaf error-message {
- description "Error text describing the API error occurance";
- type string;
- }
- }
-
- grouping query-common-hdr {
- leaf request-id {
- description "Identifier for the request from NGO";
- type string;
- }
- leaf request-type {
- description "action indicator for this service instance";
- type query-type;
- }
- }
-
- grouping query-error-format {
- leaf error-code {
- description "Error code";
- type int32;
- }
- leaf error-message {
- description "Error text describing the API error occurance";
- type string;
- }
- }
-
- grouping evc-common-request-hdr {
- leaf request-id {
- description "Identifier for the request from NGO";
- type string;
- }
- leaf source {
- description "The source system requesting action or info";
- type string;
- mandatory true;
- }
- leaf uni-order-number {
- type string;
- }
- leaf request-action {
- description "action indicator for this service instance";
- type evc-action-type;
- mandatory true;
- }
- leaf undo-indicator {
- type provisioning-indicator;
- }
- leaf notification-url {
- description "When this field exists, NCS will return an "
- + "acknowledgement that the request is legal "
- + "Once the activate is finished (or fails) NCS"
- + "will utilize the URL to indicate the status";
- type string;
- }
- leaf evc-name {
- type string;
- mandatory true;
- }
- }
-
- grouping evc-common-error-format {
- leaf error-code {
- description "Error code";
- type int32;
- }
- leaf error-message {
- description "Error text describing the API error occurance";
- type string;
- }
- }
-
- /////////////////////////////////////////
- // UNI-PORTS table contains all circuits
- /////////////////////////////////////////
- container uni-ports {
- description
- "UNI port container";
- list uni-port {
- key "uni-circuit-id";
- leaf uni-circuit-id {
- type string;
- mandatory true;
- }
- leaf subscriber-name {
- type string;
- mandatory true;
- }
- leaf uni-order-number {
- type string;
- mandatory true;
- }
- leaf edge-device-clli {
- description "Edge device (e.g. EMT) on which port "
- + " reservation is needed";
- type string;
- mandatory true;
- }
- leaf uni-location-city {
- type string;
- mandatory true;
- }
- leaf uni-location-state {
- type string;
- mandatory true;
- }
- leaf media-type {
- type media-type;
- mandatory true;
- }
- leaf media-speed {
- type media-speed-type;
- mandatory true;
- }
- leaf uni-cir-value {
- description "Integer value for the CIR";
- type uni-cir-value-type;
- mandatory true;
- }
- leaf uni-cir-units {
- description "Units for the CIR";
- type cir-rate-type;
- mandatory true;
- }
- leaf cos-category {
- description "CoS Type";
- type cos-category-type;
- mandatory true;
- }
- leaf gos-profile {
- description "GoS tpye";
- type uni-gos-type;
- mandatory true;
- }
- leaf aditional-mac-allowed {
- type uni-mac-limit-type;
- }
- leaf port-tagging {
- type port-tagging-type;
- mandatory true;
- }
- leaf port-status {
- type port-status;
- }
- leaf name-value-pair {
- type string;
- }
- }
- }
-
- ///////////////////////////////////////////
- // EVCS table contains all evc associations
- ///////////////////////////////////////////
- container evcs {
- list evc {
- key "evc-name";
- leaf evc-name {
- type string;
- mandatory true;
- }
- leaf topology {
- type enumeration {
- enum "MultiPoint"{
- value 0;
- }
- enum "PointToPoint"{
- value 1;
- }
- }
- }
- list evc-leg {
- key evc-access-name;
- leaf evc-access-name {
- type string;
- }
- leaf subscriber-name {
- type string;
- }
- leaf cvlan {
- type uint16 {
- range "2..4090";
- }
- }
- leaf connection-cir-value {
- type uni-cir-value-type;
- }
- leaf connection-cir-units-string {
- type cir-rate-type;
- }
- leaf connection-gos-profile {
- type evc-gos-type;
- }
- leaf connection-additional-mac-allowed {
- type uni-mac-limit-type;
- }
- leaf connection-emc-indicator {
- type enumeration {
- enum "Y"{
- value 0;
- }
- enum "N"{
- value 1;
- }
- }
- }
- leaf connection-emc-speed-value {
- type uni-cir-value-type;
- }
- leaf connection-emc-speed-units-string {
- type cir-rate-type;
- }
- }
- leaf name-value-pair {
- type string;
- }
- }
- }
-}
diff --git a/sli/common/src/main/yang/ase.yang b/sli/common/src/main/yang/ase.yang
deleted file mode 100755
index 0b36a5610..000000000
--- a/sli/common/src/main/yang/ase.yang
+++ /dev/null
@@ -1,558 +0,0 @@
-module ase {
-
- namespace "att:ase";
- prefix ase;
-
- import ase-type {prefix ase-type; revision-date "2014-06-09";}
-
- organization "AT&T ASE";
-
- description
- "This submodule contains a collection of YANG definitions for
- defining the ASE service model(s) for UNI and EVC";
-
- revision 2014-03-27 {
- description
- "Additional detail for UNI and EVC API";
- }
- revision 2014-03-18 {
- description
- "Initial version";
- }
-
-
- /////////////////////////////////////////////////////
- // ASE Query Actions
- /////////////////////////////////////////////////////
-
- ////
- // Port Reserve Request
- ////
- rpc ase-port-reserve {
- input {
- uses ase-type:uni-common-request-hdr;
-
- leaf uni-circuit-id {
- type string;
- mandatory true;
- }
- leaf edge-device-clli {
- description "Edge device (e.g. EMT) on which port "
- + " reservation is needed";
- type string;
- mandatory true;
- }
- leaf uni-cir-value {
- description "Integer value for the CIR";
- type ase-type:uni-cir-value-type;
- mandatory true;
- }
- leaf uni-cir-units {
- description "Units for the CIR";
- type ase-type:cir-rate-type;
- mandatory true;
- }
- }
- output {
- uses ase-type:uni-common-request-hdr;
-
- leaf uni-circuit-id {
- type string;
- }
- leaf uni-port-id {
- description "Allocated UNI port id";
- type string;
- }
-
- uses ase-type:uni-common-error-format;
- }
- }
-
- ////
- // Release Port Request
- ////
- rpc ase-release-port-request {
- input {
- uses ase-type:uni-common-request-hdr;
-
- leaf uni-circuit-id {
- type string;
- mandatory true;
- }
- }
- output {
- uses ase-type:uni-common-return-hdr;
- uses ase-type:uni-common-error-format;
- }
- }
-
- ////
- // Port Provisioning Request
- ////
- rpc ase-port-prov-request {
- input {
- uses ase-type:uni-common-request-hdr;
-
- leaf uni-circuit-id {
- type string;
- mandatory true;
- }
- leaf subscriber-name {
- type string;
- mandatory true;
- }
- leaf uni-order-number {
- type string;
- mandatory true;
- }
- leaf edge-device-clli {
- description "Edge device (e.g. EMT) on which port "
- + " reservation is needed";
- type string;
- mandatory true;
- }
- leaf uni-location-city {
- type string;
- mandatory true;
- }
- leaf uni-location-state {
- type string;
- mandatory true;
- }
- leaf media-type {
- type ase-type:media-type;
- mandatory true;
- }
- leaf media-speed {
- type ase-type:media-speed-type;
- mandatory true;
- }
- leaf uni-cir-value {
- description "Integer value for the CIR";
- type ase-type:uni-cir-value-type;
- mandatory true;
- }
- leaf uni-cir-units {
- description "Units for the CIR";
- type ase-type:cir-rate-type;
- mandatory true;
- }
- leaf cos-category {
- description "CoS Type";
- type ase-type:cos-category-type;
- mandatory true;
- }
- leaf gos-profile {
- description "GoS tpye";
- type ase-type:uni-gos-type;
- mandatory true;
- }
- leaf aditional-mac-allowed {
- type ase-type:uni-mac-limit-type;
- }
- leaf port-tagging {
- type ase-type:port-tagging-type;
- mandatory true;
- }
- leaf name-value-pair {
- type string;
- }
- }
- output {
- uses ase-type:uni-common-return-hdr;
- uses ase-type:uni-common-error-format;
- }
- }
-
- ////
- // Deprovisioning Port Request
- ////
- rpc ase-deprov-port-request {
- input {
- uses ase-type:uni-common-request-hdr;
-
- leaf uni-circuit-id {
- type string;
- mandatory true;
- }
- }
- output {
- uses ase-type:uni-common-error-format;
- }
- }
-
- ////
- // Change Port Provisioning Request
- ////
- rpc ase-change-port-prov-request {
- input {
- uses ase-type:uni-common-request-hdr;
-
- leaf uni-circuit-id {
- type string;
- mandatory true;
- }
- leaf subscriber-name {
- type string;
- }
- leaf media-speed {
- type ase-type:media-speed-type;
- }
- leaf uni-cir-value {
- description "Integer value for the CIR";
- type ase-type:uni-cir-value-type;
- }
- leaf uni-cir-units {
- description "Units for the CIR";
- type ase-type:cir-rate-type;
- }
- leaf cos-catagory {
- type ase-type:cos-category-type;
- }
- leaf gos-profile {
- type ase-type:uni-gos-type;
- }
- leaf additional-mac-allowed {
- type ase-type:uni-mac-limit-type;
- }
- leaf port-tagging {
- type ase-type:port-tagging-type;
- mandatory true;
- }
- leaf name-value-pair {
- type string;
- }
- }
- output {
- uses ase-type:uni-common-error-format;
- }
- }
-
- ////
- // Port Activate Request
- ////
- rpc ase-port-activate-request {
- input {
- uses ase-type:uni-common-request-hdr;
-
- leaf uni-circuit-id {
- type string;
- mandatory true;
- }
- }
- output {
- uses ase-type:uni-common-error-format;
- }
- }
-
- ////
- // Port Change Activation Request
- ////
- rpc ase-change-port-activation-request {
- input {
- uses ase-type:uni-common-request-hdr;
-
- leaf uni-circuit-id {
- type string;
- mandatory true;
- }
- }
- output {
- uses ase-type:uni-common-error-format;
- }
- }
-
- ////
- // Port Disconnect Request
- ////
- rpc ase-port-disconnect-request {
- input {
- uses ase-type:uni-common-request-hdr;
-
- leaf uni-circuit-id {
- type string;
- mandatory true;
- }
- }
- output {
- uses ase-type:uni-common-error-format;
- }
- }
-
- /////////////////////////////////////////////////////
- // EVC API
- /////////////////////////////////////////////////////
-
- ////
- // EVC Provision Request
- ////
- rpc ase-evc-activation {
- input {
- uses ase-type:evc-common-request-hdr;
- leaf topology {
- type enumeration {
- enum "MultiPoint"{
- value 0;
- }
- enum "PointToPoint"{
- value 1;
- }
- }
- }
- list evc-leg {
- key evc-access-name;
- leaf evc-access-name {
- type string;
- }
- leaf subscriber-name {
- type string;
- }
- leaf cvlan {
- type uint16 {
- range "2..4090";
- }
- }
- leaf connection-cir-value {
- type ase-type:uni-cir-value-type;
- }
- leaf connection-cir-units-string {
- type ase-type:cir-rate-type;
- }
- leaf connection-gos-profile {
- type ase-type:evc-gos-type;
- }
- leaf connection-additional-mac-allowed {
- type ase-type:uni-mac-limit-type;
- }
- leaf connection-emc-indicator {
- type enumeration {
- enum "Y"{
- value 0;
- }
- enum "N"{
- value 1;
- }
- }
- }
- leaf connection-emc-speed-value {
- type ase-type:uni-cir-value-type;
- }
- leaf connection-emc-speed-units-string {
- type ase-type:cir-rate-type;
- }
- }
- leaf name-value-pair {
- type string;
- }
- }
- output {
- uses ase-type:evc-common-error-format;
- }
- }
-
- ////
- // EVC Change Activation Request
- ////
- rpc ase-evc-change-activation {
- input {
- uses ase-type:evc-common-request-hdr;
- leaf topology {
- type enumeration {
- enum "MultiPoint"{
- value 0;
- }
- enum "PointToPoint"{
- value 1;
- }
- }
- }
- list evc-leg {
- key evc-access-name;
- leaf evc-access-name {
- type string;
- }
- leaf connection-cir-value {
- type ase-type:uni-cir-value-type;
- }
- leaf connection-cir-units-string {
- type ase-type:cir-rate-type;
- }
- leaf connection-gos-profile {
- type ase-type:evc-gos-type;
- }
- leaf connection-additional-mac-allowed {
- type ase-type:uni-mac-limit-type;
- }
-
- }
- leaf name-value-pair {
- type string;
- }
-
- }
- output {
- uses ase-type:evc-common-error-format;
- }
- }
-
- ////
- // EVC Disconnet Connection Request
- ////
- rpc ase-evc-disconnect-request {
- input {
- uses ase-type:evc-common-request-hdr;
- leaf topology {
- type enumeration {
- enum "MultiPoint"{
- value 0;
- }
- enum "PointToPoint"{
- value 1;
- }
- }
- }
- list evc-leg {
- key evc-access-name;
- leaf evc-access-name {
- type string;
- }
- }
- leaf name-value-pair {
- type string;
- }
-
- }
- output {
- uses ase-type:evc-common-error-format;
- }
- }
-
- /////////////////////////////////////////////////////
- // ASE Query Actions
- /////////////////////////////////////////////////////
-
- rpc find-available-ports {
- description "Return a count of available ports";
- input {
- uses ase-type:query-common-hdr;
- leaf edge-device-clli {
- type string;
- mandatory true;
- }
-
- leaf port-role {
- type enumeration {
- enum "NETWORK"{
- value 0;
- }
- enum "ACCESS"{
- value 1;
- }
- enum "SDN-ACCESS"{
- value 2;
- }
- }
- mandatory true;
- }
- leaf port-assigned {
- type string;
- }
- }
- output {
- uses ase-type:query-common-hdr;
- container statuss {
- leaf edge-device-clli {
- type string;
- }
- container max-cir {
- leaf cir-value {
- type uint16;
- }
- leaf cir-type {
- type ase-type:cir-rate-type;
- }
- }
- leaf if-count {
- type uint16;
- }
- }
- uses ase-type:query-error-format;
- }
- }
-
- rpc find-evcs-in-uni {
- description "Return EVC instances for a specified UNI";
- input {
- uses ase-type:query-common-hdr;
-
- leaf uni-circuit-id {
- type string; //leafref
- }
- leaf edge-device-clli {
- description "Edge device (e.g. EMT) on which port "
- + " reservation is needed";
- type string;
- }
- }
- output {
- uses ase-type:query-common-hdr;
-
- leaf uni-leg-name {
- description "NGO-proivded named";
- type string;
- }
- uses ase-type:query-error-format;
- }
- }
-
- rpc find-service-details {
- description "Return EVC instances for a specified UNI";
- input {
- uses ase-type:query-common-hdr;
- leaf uni-circuit-id {
- type string; //leafref
- }
- leaf source {
- type string;
- mandatory true;
- }
- leaf service-name {
- type string;
- mandatory true;
- }
- leaf service-type {
- type string;
- mandatory true;
- }
- }
- output {
- uses ase-type:query-common-hdr;
-
- leaf service-name {
- type string;
- mandatory true;
- }
- leaf service-type {
- type string;
- mandatory true;
- }
- leaf service-state {
- type enumeration {
- enum "Active"{
- value 0;
- }
- enum "NotActive"{
- value 1;
- }
- }
- }
- leaf has-pending-change {
- type ase-type:ase-yes-no-type;
- }
- leaf allowed-connection-count {
- type int16;
- }
- uses ase-type:query-error-format;
- }
- }
-} //module
diff --git a/sli/common/src/test/resources/svclogic.xsd b/sli/common/src/test/resources/svclogic.xsd
deleted file mode 100755
index 3e109c7c2..000000000
--- a/sli/common/src/test/resources/svclogic.xsd
+++ /dev/null
@@ -1,339 +0,0 @@
-<?xml version = "1.0" encoding = "UTF-8"?>
-<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.onap.org/sdnc/svclogic" xmlns="http://www.onap.org/sdnc/svclogic">
-
- <xsd:simpleType name="modeType">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="sync" />
- <xsd:enumeration value="async" />
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:group name="node">
- <xsd:choice>
- <xsd:element ref="block" />
- <xsd:element ref="is-available" />
- <xsd:element ref="exists" />
- <xsd:element ref="reserve" />
- <xsd:element ref="release" />
- <xsd:element ref="allocate" />
- <xsd:element ref="get-resource" />
- <xsd:element ref="configure" />
- <xsd:element ref="return" />
- <xsd:element ref="switch" />
- <xsd:element ref="record" />
- <xsd:element ref="save" />
- <xsd:element ref="for" />
- <xsd:element ref="set" />
- <xsd:element ref="execute" />
- <xsd:element ref="delete" />
- <xsd:element ref="update" />
- <xsd:element ref="call" />
- <xsd:element ref="notify" />
- <xsd:element ref="break" />
- <xsd:element ref="while" />
- <xsd:element ref="exit" />
- </xsd:choice>
- </xsd:group>
-
- <xsd:element name="service-logic">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element ref="method" minOccurs="0" maxOccurs="100" />
- </xsd:sequence>
- <xsd:attribute name="module" use="required" type="xsd:string" />
- <xsd:attribute name="version" use="required" type="xsd:string" />
- </xsd:complexType>
- </xsd:element>
-
- <xsd:element name="method">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:group ref="node" minOccurs="0" maxOccurs="100" />
- </xsd:sequence>
- <xsd:attribute name="rpc" use="required" type="xsd:string" />
- <xsd:attribute name="mode" use="optional" type="modeType" />
- </xsd:complexType>
- </xsd:element>
-
- <xsd:element name="block">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:group ref="node" minOccurs="0" maxOccurs="100" />
- </xsd:sequence>
- <xsd:attribute name="atomic" use="optional" type="xsd:boolean" />
- </xsd:complexType>
- </xsd:element>
-
- <xsd:element name="is-available">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element ref="outcome" minOccurs="0" maxOccurs="100" />
- </xsd:sequence>
- <xsd:attribute name="pfx" use="optional" type="xsd:string" />
- <xsd:attribute name="plugin" use="required" type="xsd:string" />
- <xsd:attribute name="resource" use="required" type="xsd:string" />
- <xsd:attribute name="key" use="optional" type="xsd:string" />
- </xsd:complexType>
- </xsd:element>
-
- <xsd:element name="exists">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element ref="outcome" minOccurs="0" maxOccurs="100" />
- </xsd:sequence>
- <xsd:attribute name="pfx" use="optional" type="xsd:string" />
- <xsd:attribute name="plugin" use="required" type="xsd:string" />
- <xsd:attribute name="resource" use="required" type="xsd:string" />
- <xsd:attribute name="key" use="required" type="xsd:string" />
- </xsd:complexType>
- </xsd:element>
-
- <xsd:element name="outcome">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:group ref="node" minOccurs="0" maxOccurs="100" />
- </xsd:sequence>
- <xsd:attribute name="ref" use="optional" type="xsd:string" />
- <xsd:attribute name="value" use="required" type="xsd:string" />
- </xsd:complexType>
- </xsd:element>
-
- <xsd:element name="reserve">
- <xsd:complexType>
- <xsd:sequence>
- <!-- This node does not actually read from parameters -->
- <xsd:element ref="parameter" minOccurs="0" maxOccurs="100" />
- <xsd:element ref="outcome" minOccurs="0" maxOccurs="100" />
- </xsd:sequence>
- <xsd:attribute name="plugin" use="required" type="xsd:string" />
- <xsd:attribute name="resource" use="required" type="xsd:string" />
- <xsd:attribute name="key" use="optional" type="xsd:string" />
- <xsd:attribute name="select" use="optional" type="xsd:string" />
- <xsd:attribute name="pfx" use="optional" type="xsd:string" />
- </xsd:complexType>
- </xsd:element>
-
- <xsd:element name="release">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element ref="outcome" minOccurs="0" maxOccurs="100" />
- </xsd:sequence>
- <xsd:attribute name="plugin" use="required" type="xsd:string" />
- <xsd:attribute name="resource" use="required" type="xsd:string" />
- <xsd:attribute name="key" use="optional" type="xsd:string" />
- <xsd:attribute name="pfx" use="optional" type="xsd:string" />
- </xsd:complexType>
- </xsd:element>
-
- <xsd:element name="record">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element ref="parameter" minOccurs="0" maxOccurs="100" />
- <xsd:element ref="outcome" minOccurs="0" maxOccurs="100" />
- </xsd:sequence>
- <xsd:attribute name="plugin" use="required" type="xsd:string" />
- </xsd:complexType>
- </xsd:element>
-
- <xsd:element name="allocate">
- <xsd:complexType>
- <xsd:sequence>
- <!-- This node does not actually read from parameters -->
- <xsd:element ref="parameter" minOccurs="0" maxOccurs="100" />
- <xsd:element ref="outcome" minOccurs="0" maxOccurs="100" />
- </xsd:sequence>
- <xsd:attribute name="plugin" use="required" type="xsd:string" />
- <xsd:attribute name="resource" use="required" type="xsd:string" />
- <xsd:attribute name="key" use="required" type="xsd:string" />
- <xsd:attribute name="pfx" use="required" type="xsd:string" />
- </xsd:complexType>
- </xsd:element>
-
- <xsd:element name="get-resource">
- <xsd:complexType>
- <xsd:sequence>
- <!-- This node does not actually read from parameters -->
- <xsd:element ref="parameter" minOccurs="0" maxOccurs="100" />
- <xsd:element ref="outcome" minOccurs="0" maxOccurs="100" />
- </xsd:sequence>
- <xsd:attribute name="plugin" use="required" type="xsd:string" />
- <xsd:attribute name="resource" use="required" type="xsd:string" />
- <xsd:attribute name="key" use="optional" type="xsd:string" />
- <xsd:attribute name="local-only" use="optional" type="xsd:boolean" />
- <xsd:attribute name="order-by" use="optional" type="xsd:string" />
- <xsd:attribute name="pfx" use="optional" type="xsd:string" />
- <!-- force is retired and does not do anything -->
- <xsd:attribute name="force" use="optional" type="xsd:string" />
- </xsd:complexType>
- </xsd:element>
-
- <xsd:element name="configure">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element ref="parameter" minOccurs="0" maxOccurs="100" />
- <xsd:element ref="outcome" minOccurs="0" maxOccurs="100" />
- </xsd:sequence>
- <xsd:attribute name="adaptor" use="required" type="xsd:string" />
- <xsd:attribute name="key" use="required" type="xsd:string" />
- <xsd:attribute name="activate" use="optional" type="xsd:boolean" />
- </xsd:complexType>
- </xsd:element>
-
-
- <xsd:element name="parameter">
- <xsd:complexType>
- <xsd:attribute name="name" use="required" type="xsd:string" />
- <xsd:attribute name="value" use="required" type="xsd:string" />
- </xsd:complexType>
- </xsd:element>
-
-
- <xsd:element name="return">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element ref="parameter" minOccurs="0" maxOccurs="100" />
- </xsd:sequence>
- <xsd:attribute name="status" use="optional" type="xsd:string" />
- </xsd:complexType>
- </xsd:element>
-
- <xsd:element name="switch">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element ref="outcome" minOccurs="0" maxOccurs="100" />
- </xsd:sequence>
- <xsd:attribute name="test" use="required" type="xsd:string" />
- </xsd:complexType>
- </xsd:element>
-
- <xsd:element name="save">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element ref="parameter" minOccurs="0" maxOccurs="100" />
- <xsd:element ref="outcome" minOccurs="0" maxOccurs="100" />
- </xsd:sequence>
- <xsd:attribute name="plugin" use="required" type="xsd:string" />
- <xsd:attribute name="resource" use="required" type="xsd:string" />
- <xsd:attribute name="key" use="optional" type="xsd:string" />
- <xsd:attribute name="force" use="optional" type="xsd:boolean" />
- <xsd:attribute name="local-only" use="optional" type="xsd:boolean" />
- <xsd:attribute name="pfx" use="optional" type="xsd:string" />
- </xsd:complexType>
- </xsd:element>
-
- <xsd:element name="delete">
- <xsd:complexType>
- <xsd:sequence>
- <!-- This node does not actually read from parameters -->
- <xsd:element ref="parameter" minOccurs="0" maxOccurs="100" />
- <xsd:element ref="outcome" minOccurs="0" maxOccurs="100" />
- </xsd:sequence>
- <xsd:attribute name="plugin" use="required" type="xsd:string" />
- <xsd:attribute name="resource" use="required" type="xsd:string" />
- <xsd:attribute name="key" use="optional" type="xsd:string" />
- <!-- force is retired and does not do anything -->
- <xsd:attribute name="force" use="optional" type="xsd:string" />
- <!-- local-only is retired and does not do anything -->
- <xsd:attribute name="local-only" use="optional" type="xsd:string" />
- <!-- pfx is retired and does not do anything -->
- <xsd:attribute name="pfx" use="optional" type="xsd:string" />
- </xsd:complexType>
- </xsd:element>
-
- <xsd:element name="for">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:group ref="node" minOccurs="0" maxOccurs="100" />
- </xsd:sequence>
- <xsd:attribute name="atomic" use="optional" type="xsd:boolean" />
- <xsd:attribute name="index" use="required" type="xsd:string" />
- <xsd:attribute name="start" use="required" type="xsd:string" />
- <xsd:attribute name="end" use="required" type="xsd:string" />
- <xsd:attribute name="silentFailure" use="optional" type="xsd:boolean" default="false" />
- </xsd:complexType>
- </xsd:element>
-
- <xsd:element name="set">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element ref="parameter" minOccurs="0" maxOccurs="100" />
- </xsd:sequence>
- <xsd:attribute name="only-if-unset" use="optional"
- type="xsd:boolean" />
- </xsd:complexType>
- </xsd:element>
-
- <xsd:element name="execute">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element ref="parameter" minOccurs="0" maxOccurs="100" />
- <xsd:element ref="outcome" minOccurs="0" maxOccurs="100" />
- </xsd:sequence>
- <xsd:attribute name="plugin" use="required" type="xsd:string" />
- <xsd:attribute name="method" use="required" type="xsd:string" />
- <xsd:attribute name="emitsOutcome" use="optional" type="xsd:boolean" />
- </xsd:complexType>
- </xsd:element>
-
- <xsd:element name="update">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element ref="parameter" minOccurs="0" maxOccurs="100" />
- <xsd:element ref="outcome" minOccurs="0" maxOccurs="100" />
- </xsd:sequence>
- <xsd:attribute name="plugin" use="required" type="xsd:string" />
- <xsd:attribute name="resource" use="required" type="xsd:string" />
- <xsd:attribute name="key" use="optional" type="xsd:string" />
- <xsd:attribute name="force" use="optional" type="xsd:boolean" />
- <xsd:attribute name="local-only" use="optional" type="xsd:boolean" />
- <xsd:attribute name="pfx" use="optional" type="xsd:string" />
- </xsd:complexType>
- </xsd:element>
-
- <xsd:element name="call">
- <xsd:complexType>
- <xsd:sequence>
- <!-- This node does not actually read from parameters -->
- <xsd:element ref="parameter" minOccurs="0" maxOccurs="100" />
- <xsd:element ref="outcome" minOccurs="0" maxOccurs="100" />
- </xsd:sequence>
- <xsd:attribute name="module" use="optional" type="xsd:string" />
- <xsd:attribute name="rpc" use="required" type="xsd:string" />
- <xsd:attribute name="version" use="optional" type="xsd:string" />
- <xsd:attribute name="mode" use="required" type="xsd:string" />
- </xsd:complexType>
- </xsd:element>
-
- <xsd:element name="notify">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element ref="outcome" minOccurs="0" maxOccurs="100" />
- </xsd:sequence>
- <xsd:attribute name="plugin" use="optional" type="xsd:string" />
- <xsd:attribute name="resource" use="optional" type="xsd:string" />
- <xsd:attribute name="action" use="required" type="xsd:string" />
- <xsd:attribute name="key" use="optional" type="xsd:string" />
- <!-- force is retired and does not do anything -->
- <xsd:attribute name="force" use="optional" type="xsd:string" />
- </xsd:complexType>
- </xsd:element>
-
- <xsd:element name="break">
- <xsd:complexType />
- </xsd:element>
-
- <xsd:element name="exit">
- <xsd:complexType />
- </xsd:element>
-
- <xsd:element name="while">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:group ref="node" minOccurs="0" maxOccurs="100" />
- </xsd:sequence>
- <xsd:attribute name="test" use="required" type="xsd:string" />
- <xsd:attribute name="do" use="optional" type="xsd:boolean" />
- </xsd:complexType>
- </xsd:element>
-
-</xsd:schema>