7b5152fcdbfbfe15820cb39bb139bf6d7048787f
[transportpce.git] / tests / honeynode / 2.2.1 / honeynode-plugin-impl / src / main / resources / honeycomb-minimal-resources / config / device / OperToConfig.xsl
1 <?xml version="1.0" encoding="UTF-8"?>
2 <xsl:stylesheet version="1.0"
3 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
4 xmlns:d="urn:ietf:params:xml:ns:netconf:base:1.0"
5 xmlns:oor="http://org/openroadm/device"
6 exclude-result-prefixes="oor d">
7
8   <xsl:output method="xml" encoding="UTF-8" indent="yes"/>
9
10   <xsl:template match="/">
11     <xsl:element name="config" namespace="urn:ietf:params:xml:ns:netconf:base:1.0">
12     <xsl:element name="org-openroadm-device" namespace="http://org/openroadm/device">
13     <xsl:element name="info" namespace="http://org/openroadm/device">
14       <xsl:apply-templates select="d:data/oor:org-openroadm-device/oor:info"/>
15     </xsl:element>
16
17     <xsl:copy-of select="d:data/oor:org-openroadm-device/oor:users" />
18
19     <xsl:for-each select="d:data/oor:org-openroadm-device/oor:shelves">
20       <xsl:element name="shelves" namespace="http://org/openroadm/device">
21         <xsl:call-template name="shelve-body"/>
22       </xsl:element>
23     </xsl:for-each>
24
25     <xsl:for-each select="d:data/oor:org-openroadm-device/oor:circuit-packs">
26       <xsl:element name="circuit-packs" namespace="http://org/openroadm/device">
27         <xsl:call-template name="cp-body"/>
28       </xsl:element>
29     </xsl:for-each>
30
31     <xsl:for-each select="d:data/oor:org-openroadm-device/oor:interface">
32         <xsl:element name="interface" namespace="http://org/openroadm/device">
33             <xsl:call-template name="inter-body"/>
34         </xsl:element>
35     </xsl:for-each>
36
37     <xsl:for-each select="d:data/oor:org-openroadm-device/oor:protocols">
38         <xsl:element name="protocols" namespace="http://org/openroadm/device">
39             <xsl:call-template name="proto-body"/>
40         </xsl:element>
41     </xsl:for-each>
42
43     <xsl:for-each select="d:data/oor:org-openroadm-device/oor:degree">
44       <xsl:element name="degree" namespace="http://org/openroadm/device">
45         <xsl:call-template name="degree-body"/>
46       </xsl:element>
47     </xsl:for-each>
48
49     <xsl:for-each select="d:data/oor:org-openroadm-device/oor:shared-risk-group">
50       <xsl:element name="shared-risk-group" namespace="http://org/openroadm/device">
51         <xsl:call-template name="srg-body"/>
52       </xsl:element>
53     </xsl:for-each>
54
55     </xsl:element>
56     </xsl:element>
57   </xsl:template>
58
59   <xsl:template match="oor:info">
60     <xsl:for-each select="./*">
61       <xsl:if test="name(.) = 'node-id' or name(.) = 'node-number' or name(.) = 'node-type' or name(.) = 'clli' or name(.) = 'ipAddress' or name(.) = 'prefix-length' or name(.) = 'defaultGateway' or name(.) = 'template' or name(.) = 'geoLocation'">
62         <xsl:copy-of select="." />
63       </xsl:if>
64      </xsl:for-each>
65   </xsl:template>
66
67   <xsl:template name="shelve-body">
68     <xsl:for-each select="./*">
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'">
70         <xsl:copy-of select="." />
71       </xsl:if>
72     </xsl:for-each>
73   </xsl:template>
74
75   <xsl:template name="cp-body">
76     <xsl:for-each select="./*">
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'">
78         <xsl:copy-of select="." />
79       </xsl:if>
80       <xsl:if test="name(.) = 'ports'">
81         <xsl:for-each select=".">
82           <xsl:element name="ports" namespace="http://org/openroadm/device">
83             <xsl:call-template name="ports-body"/>
84           </xsl:element>
85         </xsl:for-each>
86       </xsl:if>
87      </xsl:for-each>
88   </xsl:template>
89
90   <xsl:template name="inter-body">
91     <xsl:for-each select="./*">
92         <xsl:if test="not(name(.) = 'operational-state' or name(.) = 'ethernet' or name(.) = 'och' or name(.) = 'otu'  or name(.) = 'odu')">
93           <xsl:copy-of select="." />
94         </xsl:if>
95         <xsl:if test="name(.)='ethernet'">
96           <xsl:element name="ethernet" xmlns="http://org/openroadm/ethernet-interfaces">
97             <xsl:call-template name="eth-body"/>
98           </xsl:element>
99         </xsl:if>
100         <xsl:if test="name(.)='och'">
101           <xsl:element name="och" xmlns="http://org/openroadm/optical-channel-interfaces">
102             <xsl:call-template name="och-body"/>
103           </xsl:element>
104         </xsl:if>
105         <xsl:if test="name(.)='otu'">
106           <xsl:element name="otu" xmlns="http://org/openroadm/otn-otu-interfaces">
107             <xsl:call-template name="otu-body"/>
108           </xsl:element>
109         </xsl:if>
110         <xsl:if test="name(.)='odu'">
111           <xsl:element name="odu" xmlns="http://org/openroadm/otn-odu-interfaces">
112             <xsl:call-template name="odu-body"/>
113           </xsl:element>
114         </xsl:if>
115     </xsl:for-each>
116   </xsl:template>
117
118    <xsl:template name="eth-body">
119     <xsl:for-each select="./*">
120       <xsl:if test="not(name(.) = 'curr-speed' or name(.)='curr-duplex') ">
121          <xsl:copy-of select="." />
122       </xsl:if>
123     </xsl:for-each>
124   </xsl:template>
125
126    <xsl:template name="och-body">
127     <xsl:for-each select="./*">
128       <xsl:if test="not(name(.) = 'width') ">
129          <xsl:copy-of select="." />
130       </xsl:if>
131     </xsl:for-each>
132   </xsl:template>
133
134    <xsl:template name="otu-body">
135     <xsl:for-each select="./*">
136       <xsl:if test="not(name(.)='accepted-sapi' or name(.) = 'accepted-dapi' or name(.)='accepted-operator' or name(.)='tim-act-enabled') ">
137          <xsl:copy-of select="." />
138       </xsl:if>
139     </xsl:for-each>
140   </xsl:template>
141
142    <xsl:template name="odu-body">
143     <xsl:for-each select="./*">
144       <xsl:if test="not(name(.)='no-oam-function' or name(.)='accepted-sapi' or name(.) = 'accepted-dapi' or name(.)='accepted-operator' or name(.)='tim-act-enabled' or name(.)='opu') ">
145          <xsl:copy-of select="." />
146       </xsl:if>
147       <xsl:if test="name(.)='opu'">
148         <xsl:element name="opu" xmlns="http://org/openroadm/otn-odu-interfaces">
149           <xsl:call-template name="opu-body"/>
150         </xsl:element>
151       </xsl:if>
152     </xsl:for-each>
153   </xsl:template>
154
155    <xsl:template name="opu-body">
156     <xsl:for-each select="./*">
157       <xsl:if test="not(name(.)='rx-payload-type' or name(.) = 'msi') ">
158          <xsl:copy-of select="." />
159       </xsl:if>
160     </xsl:for-each>
161   </xsl:template>
162
163   <xsl:template name="proto-body">
164     <xsl:for-each select="./*">
165       <xsl:if test="name(.) = 'lldp'">
166         <xsl:for-each select=".">
167           <xsl:element name="lldp" xmlns="http://org/openroadm/lldp">
168             <xsl:call-template name="lldp-body"/>
169           </xsl:element>
170         </xsl:for-each>
171       </xsl:if>
172      </xsl:for-each>
173   </xsl:template>
174
175   <xsl:template name="ports-body">
176     <xsl:for-each select="./*">
177       <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(.) = 'roadm-port' or name(.) = 'otdr-port' or name(.) = 'ila-port' ">
178          <xsl:copy-of select="." />
179       </xsl:if>
180     </xsl:for-each>
181   </xsl:template>
182
183   <xsl:template name="lldp-body">
184     <xsl:for-each select="./*">
185       <xsl:if test="not(name(.) = 'nbr-list') ">
186          <xsl:copy-of select="." />
187       </xsl:if>
188     </xsl:for-each>
189   </xsl:template>
190
191   <xsl:template name="degree-body">
192     <xsl:for-each select="./*">
193       <xsl:if test="not(name(.) = 'max-wavelengths')">
194          <xsl:copy-of select="." />
195       </xsl:if>
196     </xsl:for-each>
197   </xsl:template>
198
199   <xsl:template name="srg-body">
200     <xsl:for-each select="./*">
201       <xsl:if test="not(name(.) = 'max-add-drop-ports' or name(.) = 'wavelength-duplication' or name(.) = 'current-provisioned-add-drop-ports')">
202          <xsl:copy-of select="." />
203       </xsl:if>
204     </xsl:for-each>
205   </xsl:template>
206
207  </xsl:stylesheet>