Honeynode test tool
[transportpce.git] / tests / honeynode / honeynode-plugin-impl / src / main / resources / honeycomb-minimal-resources / config / device / OperToConfig.xsl
1 <?xml version="1.0" encoding="UTF-8"?>\r
2 <xsl:stylesheet version="1.0"\r
3 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"\r
4 xmlns:d="urn:ietf:params:xml:ns:netconf:base:1.0"\r
5 xmlns:oor="http://org/openroadm/device"\r
6 exclude-result-prefixes="oor d">\r
7 \r
8   <xsl:output method="xml" encoding="UTF-8" indent="yes"/>\r
9   \r
10   <xsl:template match="/">\r
11     <xsl:element name="config" namespace="urn:ietf:params:xml:ns:netconf:base:1.0">\r
12     <xsl:element name="org-openroadm-device" namespace="http://org/openroadm/device">\r
13     <xsl:element name="info">\r
14       <xsl:apply-templates select="d:data/oor:org-openroadm-device/oor:info"/>\r
15     </xsl:element>\r
16 \r
17     <xsl:copy-of select="d:data/oor:org-openroadm-device/oor:users" />\r
18 \r
19     <xsl:for-each select="d:data/oor:org-openroadm-device/oor:shelves">\r
20       <xsl:element name="shelves" >\r
21         <xsl:call-template name="shelve-body"/>\r
22       </xsl:element>\r
23     </xsl:for-each>\r
24 \r
25     <xsl:for-each select="d:data/oor:org-openroadm-device/oor:circuit-packs">\r
26       <xsl:element name="circuit-packs" >\r
27         <xsl:call-template name="cp-body"/>\r
28       </xsl:element>\r
29     </xsl:for-each>\r
30     \r
31     <xsl:for-each select="d:data/oor:org-openroadm-device/oor:interface">\r
32         <xsl:element name="interface" >\r
33             <xsl:call-template name="inter-body"/>\r
34         </xsl:element>\r
35     </xsl:for-each>\r
36     \r
37     <xsl:for-each select="d:data/oor:org-openroadm-device/oor:protocols">\r
38         <xsl:element name="protocols" >\r
39             <xsl:call-template name="proto-body"/>\r
40         </xsl:element>\r
41     </xsl:for-each>\r
42 \r
43     <xsl:for-each select="d:data/oor:org-openroadm-device/oor:degree">\r
44       <xsl:element name="degree" >\r
45         <xsl:call-template name="degree-body"/>\r
46       </xsl:element>\r
47     </xsl:for-each>\r
48 \r
49     <xsl:for-each select="d:data/oor:org-openroadm-device/oor:shared-risk-group">\r
50       <xsl:element name="shared-risk-group" >\r
51         <xsl:call-template name="srg-body"/>\r
52       </xsl:element>\r
53     </xsl:for-each>\r
54 \r
55     </xsl:element>\r
56     </xsl:element>\r
57   </xsl:template>\r
58   \r
59   <xsl:template match="oor:info">\r
60     <xsl:for-each select="./*">\r
61       <xsl:if test="name(.) = 'node-id' or name(.) = 'node-number' or name(.) = 'clli' or name(.) = 'ipAddress' or name(.) = 'prefix-length' or name(.) = 'defaultGateway' or name(.) = 'template' or name(.) = 'geoLocation'">\r
62         <xsl:copy-of select="." />\r
63       </xsl:if>\r
64      </xsl:for-each> \r
65   </xsl:template>\r
66 \r
67   <xsl:template name="shelve-body">\r
68     <xsl:for-each select="./*">\r
69       <xsl:if test="name(.) ='shelf-name' or name(.) = 'shelf-type' or name(.) = 'rack' or name(.) = 'shelf-position' or name(.) = 'administrative-state' or name(.) = 'equipment-state' or name(.) = 'due-date'">\r
70         <xsl:copy-of select="." />\r
71       </xsl:if>\r
72     </xsl:for-each>\r
73   </xsl:template>\r
74 \r
75   <xsl:template name="cp-body">\r
76     <xsl:for-each select="./*">\r
77       <xsl:if test="name(.) = 'circuit-pack-type' or name(.) = 'circuit-pack-product-code' or name(.) = 'circuit-pack-name' or name(.) = 'administrative-state' or name(.) = 'equipment-state' or name(.) = 'circuit-pack-mode' or name(.) = 'shelf' or name(.) = 'slot' or name(.) = 'subSlot' or name(.) = 'due-date' or name(.) = 'parent-circuit-pack'">\r
78         <xsl:copy-of select="." />\r
79       </xsl:if>\r
80       <xsl:if test="name(.) = 'ports'">\r
81         <xsl:for-each select=".">\r
82           <xsl:element name="ports" >\r
83             <xsl:call-template name="ports-body"/>\r
84           </xsl:element>\r
85         </xsl:for-each>\r
86       </xsl:if>\r
87      </xsl:for-each> \r
88   </xsl:template>\r
89 \r
90   <xsl:template name="inter-body">\r
91     <xsl:for-each select="./*">\r
92         <xsl:if test="not(name(.) = 'operational-state' or name(.)='ethernet')">\r
93          <xsl:copy-of select="." />\r
94         </xsl:if>\r
95         <xsl:if test="name(.)='ethernet'">\r
96             <xsl:element name="ethernet" >\r
97                 <xsl:call-template name="eth-body"/>\r
98             </xsl:element>\r
99         </xsl:if>\r
100     </xsl:for-each>\r
101   </xsl:template>\r
102   \r
103    <xsl:template name="eth-body">\r
104     <xsl:for-each select="./*">\r
105       <xsl:if test="not(name(.) = 'curr-speed' or name(.)='curr-duplex') ">\r
106          <xsl:copy-of select="." />\r
107       </xsl:if>\r
108     </xsl:for-each>\r
109   </xsl:template>\r
110   \r
111   <xsl:template name="proto-body">\r
112     <xsl:for-each select="./*">\r
113       <xsl:if test="name(.) = 'lldp'">\r
114         <xsl:for-each select=".">\r
115           <xsl:element name="lldp" >\r
116             <xsl:call-template name="lldp-body"/>\r
117           </xsl:element>\r
118         </xsl:for-each>\r
119       </xsl:if>\r
120      </xsl:for-each> \r
121   </xsl:template>\r
122 \r
123   <xsl:template name="ports-body">\r
124     <xsl:for-each select="./*">\r
125       <xsl:if test="name(.) = 'port-name' or name(.) = 'port-type' or name(.) = 'port-qual' or name(.) = 'circuit-id' or name(.) = 'administrative-state' or name(.) = 'logical-connection-point' or name(.) = 'otdr-port' ">\r
126          <xsl:copy-of select="." />\r
127       </xsl:if>\r
128     </xsl:for-each>\r
129   </xsl:template>\r
130   \r
131   <xsl:template name="lldp-body">\r
132     <xsl:for-each select="./*">\r
133       <xsl:if test="not(name(.) = 'nbr-list') ">\r
134          <xsl:copy-of select="." />\r
135       </xsl:if>\r
136     </xsl:for-each>\r
137   </xsl:template>\r
138   \r
139   <xsl:template name="degree-body">\r
140     <xsl:for-each select="./*">\r
141       <xsl:if test="not(name(.) = 'max-wavelengths')">\r
142          <xsl:copy-of select="." />\r
143       </xsl:if>\r
144     </xsl:for-each>\r
145   </xsl:template>\r
146 \r
147   <xsl:template name="srg-body">\r
148     <xsl:for-each select="./*">\r
149       <xsl:if test="not(name(.) = 'max-add-drop-ports' or name(.) = 'wavelengthDuplication')">\r
150          <xsl:copy-of select="." />\r
151       </xsl:if>\r
152     </xsl:for-each>\r
153   </xsl:template>\r
154 \r
155  </xsl:stylesheet>\r