acirb 1.1.2.1 → 1.1.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (210) hide show
  1. checksums.yaml +4 -4
  2. data/lib/acirb.rb +9 -9
  3. data/lib/acirb/autoloadmap.rb +6617 -0
  4. data/lib/{events.rb → acirb/events.rb} +1 -1
  5. data/lib/{loader.rb → acirb/loader.rb} +0 -0
  6. data/lib/{logging.rb → acirb/logging.rb} +0 -0
  7. data/lib/{lookup.rb → acirb/lookup.rb} +0 -9
  8. data/lib/acirb/mo.rb +254 -71
  9. data/lib/acirb/{aaa.rb → model/aaa.rb} +1 -1
  10. data/lib/acirb/{ac.rb → model/ac.rb} +1 -1
  11. data/lib/acirb/{action.rb → model/action.rb} +1 -1
  12. data/lib/acirb/{actrl.rb → model/actrl.rb} +1 -1
  13. data/lib/acirb/{actrlcap.rb → model/actrlcap.rb} +1 -1
  14. data/lib/acirb/{adcom.rb → model/adcom.rb} +1 -1
  15. data/lib/acirb/{aib.rb → model/aib.rb} +1 -1
  16. data/lib/acirb/{arp.rb → model/arp.rb} +1 -1
  17. data/lib/acirb/{bfd.rb → model/bfd.rb} +1 -1
  18. data/lib/acirb/{bgp.rb → model/bgp.rb} +1 -1
  19. data/lib/acirb/{callhome.rb → model/callhome.rb} +1 -1
  20. data/lib/acirb/{cap.rb → model/cap.rb} +1 -1
  21. data/lib/acirb/{cdp.rb → model/cdp.rb} +1 -1
  22. data/lib/acirb/{cnw.rb → model/cnw.rb} +1 -1
  23. data/lib/acirb/{comm.rb → model/comm.rb} +1 -1
  24. data/lib/acirb/{comp.rb → model/comp.rb} +1 -1
  25. data/lib/acirb/{compat.rb → model/compat.rb} +1 -1
  26. data/lib/acirb/{condition.rb → model/condition.rb} +1 -1
  27. data/lib/acirb/{config.rb → model/config.rb} +1 -1
  28. data/lib/acirb/{coop.rb → model/coop.rb} +1 -1
  29. data/lib/acirb/{copp.rb → model/copp.rb} +1 -1
  30. data/lib/acirb/{ctrlr.rb → model/ctrlr.rb} +1 -1
  31. data/lib/acirb/{ctx.rb → model/ctx.rb} +1 -1
  32. data/lib/acirb/{datetime.rb → model/datetime.rb} +1 -1
  33. data/lib/acirb/{dbg.rb → model/dbg.rb} +1 -1
  34. data/lib/acirb/{dbgac.rb → model/dbgac.rb} +1 -1
  35. data/lib/acirb/{dbgexp.rb → model/dbgexp.rb} +1 -1
  36. data/lib/acirb/{dhcp.rb → model/dhcp.rb} +1 -1
  37. data/lib/acirb/{dhcptlv.rb → model/dhcptlv.rb} +1 -1
  38. data/lib/acirb/{dhcptlvpol.rb → model/dhcptlvpol.rb} +1 -1
  39. data/lib/acirb/{dlgt.rb → model/dlgt.rb} +1 -1
  40. data/lib/acirb/{dns.rb → model/dns.rb} +1 -1
  41. data/lib/acirb/model/dpp.rb +2295 -0
  42. data/lib/acirb/{draw.rb → model/draw.rb} +1 -1
  43. data/lib/acirb/{edr.rb → model/edr.rb} +1 -1
  44. data/lib/acirb/{eigrp.rb → model/eigrp.rb} +1 -1
  45. data/lib/acirb/{ep.rb → model/ep.rb} +1 -1
  46. data/lib/acirb/{epm.rb → model/epm.rb} +1 -1
  47. data/lib/acirb/{eptrk.rb → model/eptrk.rb} +1 -1
  48. data/lib/acirb/{eqpt.rb → model/eqpt.rb} +1 -1
  49. data/lib/acirb/{eqptcap.rb → model/eqptcap.rb} +1 -1
  50. data/lib/acirb/{eqptcapacity.rb → model/eqptcapacity.rb} +1 -1
  51. data/lib/acirb/{eqptdiag.rb → model/eqptdiag.rb} +1 -1
  52. data/lib/acirb/{eqptdiagp.rb → model/eqptdiagp.rb} +1 -1
  53. data/lib/acirb/{ethpm.rb → model/ethpm.rb} +1 -1
  54. data/lib/acirb/{event.rb → model/event.rb} +1 -1
  55. data/lib/acirb/{extnw.rb → model/extnw.rb} +1 -1
  56. data/lib/acirb/{fabric.rb → model/fabric.rb} +1 -1
  57. data/lib/acirb/{fault.rb → model/fault.rb} +1 -1
  58. data/lib/acirb/model/fcpr.rb +353 -0
  59. data/lib/acirb/{file.rb → model/file.rb} +1 -1
  60. data/lib/acirb/{firmware.rb → model/firmware.rb} +1 -1
  61. data/lib/acirb/{fmcast.rb → model/fmcast.rb} +1 -1
  62. data/lib/acirb/{frmwrk.rb → model/frmwrk.rb} +1 -1
  63. data/lib/acirb/{fsm.rb → model/fsm.rb} +1 -1
  64. data/lib/acirb/{fv.rb → model/fv.rb} +1 -1
  65. data/lib/acirb/{fvcap.rb → model/fvcap.rb} +1 -1
  66. data/lib/acirb/{fvns.rb → model/fvns.rb} +1 -1
  67. data/lib/acirb/{fvtopo.rb → model/fvtopo.rb} +1 -1
  68. data/lib/acirb/{geo.rb → model/geo.rb} +1 -1
  69. data/lib/acirb/{glean.rb → model/glean.rb} +1 -1
  70. data/lib/acirb/{ha.rb → model/ha.rb} +1 -1
  71. data/lib/acirb/{health.rb → model/health.rb} +1 -1
  72. data/lib/acirb/{hvs.rb → model/hvs.rb} +1 -1
  73. data/lib/acirb/{icmp.rb → model/icmp.rb} +1 -1
  74. data/lib/acirb/{icmpv4.rb → model/icmpv4.rb} +1 -1
  75. data/lib/acirb/{icmpv6.rb → model/icmpv6.rb} +1 -24
  76. data/lib/acirb/{ident.rb → model/ident.rb} +1 -1
  77. data/lib/acirb/{igmp.rb → model/igmp.rb} +1 -1
  78. data/lib/acirb/{igmpsnoop.rb → model/igmpsnoop.rb} +1 -55
  79. data/lib/acirb/{im.rb → model/im.rb} +1 -1
  80. data/lib/acirb/{imginstall.rb → model/imginstall.rb} +1 -1
  81. data/lib/acirb/{infra.rb → model/infra.rb} +1 -35
  82. data/lib/acirb/{ip.rb → model/ip.rb} +1 -1
  83. data/lib/acirb/{ipmcsnoop.rb → model/ipmcsnoop.rb} +1 -1
  84. data/lib/acirb/{ipv4.rb → model/ipv4.rb} +1 -1
  85. data/lib/acirb/{ipv6.rb → model/ipv6.rb} +1 -1
  86. data/lib/acirb/{isis.rb → model/isis.rb} +1 -1
  87. data/lib/acirb/{isistlv.rb → model/isistlv.rb} +1 -1
  88. data/lib/acirb/{l1.rb → model/l1.rb} +1 -1
  89. data/lib/acirb/{l1cap.rb → model/l1cap.rb} +1 -1
  90. data/lib/acirb/{l2.rb → model/l2.rb} +1 -1
  91. data/lib/acirb/{l2cap.rb → model/l2cap.rb} +1 -1
  92. data/lib/acirb/{l2ext.rb → model/l2ext.rb} +1 -1
  93. data/lib/acirb/{l3.rb → model/l3.rb} +1 -1
  94. data/lib/acirb/{l3cap.rb → model/l3cap.rb} +1 -1
  95. data/lib/acirb/{l3ext.rb → model/l3ext.rb} +1 -1
  96. data/lib/acirb/{l3vm.rb → model/l3vm.rb} +1 -1
  97. data/lib/acirb/{l4.rb → model/l4.rb} +1 -1
  98. data/lib/acirb/{lacp.rb → model/lacp.rb} +1 -1
  99. data/lib/acirb/{lbp.rb → model/lbp.rb} +1 -1
  100. data/lib/acirb/{leqpt.rb → model/leqpt.rb} +1 -1
  101. data/lib/acirb/{lldp.rb → model/lldp.rb} +1 -38
  102. data/lib/acirb/{lldptlv.rb → model/lldptlv.rb} +1 -1
  103. data/lib/acirb/{lldptlvpol.rb → model/lldptlvpol.rb} +1 -1
  104. data/lib/acirb/{maint.rb → model/maint.rb} +1 -1
  105. data/lib/acirb/{mcast.rb → model/mcast.rb} +1 -1
  106. data/lib/acirb/{mcp.rb → model/mcp.rb} +1 -1
  107. data/lib/acirb/{memory.rb → model/memory.rb} +1 -1
  108. data/lib/acirb/{mgmt.rb → model/mgmt.rb} +1 -1
  109. data/lib/acirb/{mldsnoop.rb → model/mldsnoop.rb} +1 -1
  110. data/lib/acirb/model/mo.rb +77 -0
  111. data/lib/acirb/{mock.rb → model/mock.rb} +1 -1
  112. data/lib/acirb/{mon.rb → model/mon.rb} +1 -1
  113. data/lib/acirb/{monitor.rb → model/monitor.rb} +1 -1
  114. data/lib/acirb/model/naming.rb +48 -0
  115. data/lib/acirb/{nd.rb → model/nd.rb} +1 -1
  116. data/lib/acirb/{nw.rb → model/nw.rb} +1 -1
  117. data/lib/acirb/{nws.rb → model/nws.rb} +1 -25
  118. data/lib/acirb/{oam.rb → model/oam.rb} +1 -1
  119. data/lib/acirb/{observer.rb → model/observer.rb} +1 -1
  120. data/lib/acirb/{opflex.rb → model/opflex.rb} +1 -1
  121. data/lib/acirb/model/opflexp.rb +405 -0
  122. data/lib/acirb/{os.rb → model/os.rb} +1 -1
  123. data/lib/acirb/{ospf.rb → model/ospf.rb} +1 -46
  124. data/lib/acirb/{ospfv3.rb → model/ospfv3.rb} +1 -1
  125. data/lib/acirb/{pc.rb → model/pc.rb} +1 -1
  126. data/lib/acirb/{pcons.rb → model/pcons.rb} +1 -1
  127. data/lib/acirb/{phys.rb → model/phys.rb} +1 -1
  128. data/lib/acirb/{ping.rb → model/ping.rb} +1 -1
  129. data/lib/acirb/{pki.rb → model/pki.rb} +1 -1
  130. data/lib/acirb/{planner.rb → model/planner.rb} +1 -1
  131. data/lib/acirb/{pol.rb → model/pol.rb} +1 -1
  132. data/lib/acirb/{policer.rb → model/policer.rb} +1 -1
  133. data/lib/acirb/{pool.rb → model/pool.rb} +1 -1
  134. data/lib/acirb/{pres.rb → model/pres.rb} +1 -1
  135. data/lib/acirb/{proc.rb → model/proc.rb} +1 -1
  136. data/lib/acirb/{psu.rb → model/psu.rb} +1 -1
  137. data/lib/acirb/{qos.rb → model/qos.rb} +1 -1
  138. data/lib/acirb/{qosm.rb → model/qosm.rb} +1 -1
  139. data/lib/acirb/{qosp.rb → model/qosp.rb} +1 -1
  140. data/lib/acirb/{rbqm.rb → model/rbqm.rb} +1 -1
  141. data/lib/acirb/model/recovery.rb +303 -0
  142. data/lib/acirb/{regress.rb → model/regress.rb} +1 -1
  143. data/lib/acirb/{reln.rb → model/reln.rb} +1 -1
  144. data/lib/acirb/{repl.rb → model/repl.rb} +1 -1
  145. data/lib/acirb/{res.rb → model/res.rb} +1 -1
  146. data/lib/acirb/{rib.rb → model/rib.rb} +1 -1
  147. data/lib/acirb/{rmon.rb → model/rmon.rb} +1 -1
  148. data/lib/acirb/{rpm.rb → model/rpm.rb} +1 -1
  149. data/lib/acirb/{rtcom.rb → model/rtcom.rb} +1 -1
  150. data/lib/acirb/{rtctrl.rb → model/rtctrl.rb} +1 -1
  151. data/lib/acirb/{rtextcom.rb → model/rtextcom.rb} +1 -1
  152. data/lib/acirb/{rtflt.rb → model/rtflt.rb} +1 -1
  153. data/lib/acirb/{rtleak.rb → model/rtleak.rb} +1 -1
  154. data/lib/acirb/{rtmap.rb → model/rtmap.rb} +1 -1
  155. data/lib/acirb/{rtpfx.rb → model/rtpfx.rb} +1 -1
  156. data/lib/acirb/{rtregcom.rb → model/rtregcom.rb} +1 -1
  157. data/lib/acirb/{rtsum.rb → model/rtsum.rb} +1 -1
  158. data/lib/acirb/{rule.rb → model/rule.rb} +1 -1
  159. data/lib/acirb/{satm.rb → model/satm.rb} +1 -1
  160. data/lib/acirb/{snmp.rb → model/snmp.rb} +1 -1
  161. data/lib/acirb/{span.rb → model/span.rb} +1 -1
  162. data/lib/acirb/{stats.rb → model/stats.rb} +1 -1
  163. data/lib/acirb/{statstore.rb → model/statstore.rb} +1 -1
  164. data/lib/acirb/{stormctrl.rb → model/stormctrl.rb} +1 -1
  165. data/lib/acirb/{stp.rb → model/stp.rb} +1 -1
  166. data/lib/acirb/{sts.rb → model/sts.rb} +1 -1
  167. data/lib/acirb/{svccore.rb → model/svccore.rb} +1 -1
  168. data/lib/acirb/{svi.rb → model/svi.rb} +1 -1
  169. data/lib/acirb/{synthetic.rb → model/synthetic.rb} +1 -1
  170. data/lib/acirb/{sysdebug.rb → model/sysdebug.rb} +1 -1
  171. data/lib/acirb/{sysfile.rb → model/sysfile.rb} +1 -1
  172. data/lib/acirb/{syshist.rb → model/syshist.rb} +1 -1
  173. data/lib/acirb/{syslog.rb → model/syslog.rb} +1 -1
  174. data/lib/acirb/{sysmgr.rb → model/sysmgr.rb} +1 -1
  175. data/lib/acirb/{sysmgrp.rb → model/sysmgrp.rb} +1 -1
  176. data/lib/acirb/{tag.rb → model/tag.rb} +1 -1
  177. data/lib/acirb/{task.rb → model/task.rb} +1 -1
  178. data/lib/acirb/{test.rb → model/test.rb} +1 -1
  179. data/lib/acirb/{testinfralab.rb → model/testinfralab.rb} +1 -1
  180. data/lib/acirb/model/throttler.rb +297 -0
  181. data/lib/acirb/{tlv.rb → model/tlv.rb} +1 -1
  182. data/lib/acirb/{top.rb → model/top.rb} +1 -1
  183. data/lib/acirb/{topoctrl.rb → model/topoctrl.rb} +1 -1
  184. data/lib/acirb/{traceroute.rb → model/traceroute.rb} +1 -1
  185. data/lib/acirb/{traceroutep.rb → model/traceroutep.rb} +1 -1
  186. data/lib/acirb/{trig.rb → model/trig.rb} +1 -1
  187. data/lib/acirb/{troubleshoot.rb → model/troubleshoot.rb} +1 -31
  188. data/lib/acirb/{tunnel.rb → model/tunnel.rb} +1 -1
  189. data/lib/acirb/model/ui.rb +57 -0
  190. data/lib/acirb/{uribv4.rb → model/uribv4.rb} +1 -1
  191. data/lib/acirb/{uribv6.rb → model/uribv6.rb} +1 -1
  192. data/lib/acirb/{viz.rb → model/viz.rb} +1 -1
  193. data/lib/acirb/{vlan.rb → model/vlan.rb} +1 -1
  194. data/lib/acirb/{vlanmgr.rb → model/vlanmgr.rb} +1 -1
  195. data/lib/acirb/{vmm.rb → model/vmm.rb} +1 -1
  196. data/lib/acirb/{vns.rb → model/vns.rb} +1 -1
  197. data/lib/acirb/{vpc.rb → model/vpc.rb} +1 -1
  198. data/lib/acirb/{vsvc.rb → model/vsvc.rb} +1 -1
  199. data/lib/acirb/{vtap.rb → model/vtap.rb} +1 -1
  200. data/lib/acirb/{vxlan.rb → model/vxlan.rb} +1 -1
  201. data/lib/acirb/{vz.rb → model/vz.rb} +1 -1
  202. data/lib/acirb/naming.rb +119 -43
  203. data/lib/{query.rb → acirb/query.rb} +1 -1
  204. data/lib/{restclient.rb → acirb/restclient.rb} +13 -3
  205. data/lib/acirb/version.rb +3 -0
  206. metadata +225 -207
  207. data/lib/autoloadmap.rb +0 -6626
  208. data/lib/mo.rb +0 -260
  209. data/lib/naming.rb +0 -124
  210. data/lib/version.rb +0 -3
@@ -1,4 +1,4 @@
1
- require 'restclient'
1
+ require 'acirb/restclient'
2
2
  require 'websocket'
3
3
  require 'socket'
4
4
  require 'openssl'
File without changes
File without changes
@@ -3216,7 +3216,6 @@ module ACIrb
3216
3216
  CLASSMAP['icmpv4Entity'] = 'Icmpv4Entity'
3217
3217
  CLASSMAP['icmpv4If'] = 'Icmpv4If'
3218
3218
  CLASSMAP['icmpv4Inst'] = 'Icmpv4Inst'
3219
- CLASSMAP['icmpv6Dom'] = 'Icmpv6Dom'
3220
3219
  CLASSMAP['icmpv6Entity'] = 'Icmpv6Entity'
3221
3220
  CLASSMAP['icmpv6If'] = 'Icmpv6If'
3222
3221
  CLASSMAP['icmpv6IfStats'] = 'Icmpv6IfStats'
@@ -3274,12 +3273,10 @@ module ACIrb
3274
3273
  CLASSMAP['igmpsnoopEntity'] = 'IgmpsnoopEntity'
3275
3274
  CLASSMAP['igmpsnoopEpgRec'] = 'IgmpsnoopEpgRec'
3276
3275
  CLASSMAP['igmpsnoopHostRec'] = 'IgmpsnoopHostRec'
3277
- CLASSMAP['igmpsnoopIf'] = 'IgmpsnoopIf'
3278
3276
  CLASSMAP['igmpsnoopInst'] = 'IgmpsnoopInst'
3279
3277
  CLASSMAP['igmpsnoopInstStats'] = 'IgmpsnoopInstStats'
3280
3278
  CLASSMAP['igmpsnoopMcGrpRec'] = 'IgmpsnoopMcGrpRec'
3281
3279
  CLASSMAP['igmpsnoopOIFRec'] = 'IgmpsnoopOIFRec'
3282
- CLASSMAP['igmpsnoopQuerier'] = 'IgmpsnoopQuerier'
3283
3280
  CLASSMAP['igmpsnoopQuerierP'] = 'IgmpsnoopQuerierP'
3284
3281
  CLASSMAP['igmpsnoopQuerierSt'] = 'IgmpsnoopQuerierSt'
3285
3282
  CLASSMAP['igmpsnoopRec'] = 'IgmpsnoopRec'
@@ -3449,7 +3446,6 @@ module ACIrb
3449
3446
  CLASSMAP['infraRsFexp'] = 'InfraRsFexp'
3450
3447
  CLASSMAP['infraRsFuncToEpg'] = 'InfraRsFuncToEpg'
3451
3448
  CLASSMAP['infraRsFuncToEpgTask'] = 'InfraRsFuncToEpgTask'
3452
- CLASSMAP['infraRsFwPol'] = 'InfraRsFwPol'
3453
3449
  CLASSMAP['infraRsHIfPol'] = 'InfraRsHIfPol'
3454
3450
  CLASSMAP['infraRsHPathAtt'] = 'InfraRsHPathAtt'
3455
3451
  CLASSMAP['infraRsInfraBD'] = 'InfraRsInfraBD'
@@ -4193,7 +4189,6 @@ module ACIrb
4193
4189
  CLASSMAP['lldpInstSendTask'] = 'LldpInstSendTask'
4194
4190
  CLASSMAP['lldpInstSendTaskTask'] = 'LldpInstSendTaskTask'
4195
4191
  CLASSMAP['lldpInstStats'] = 'LldpInstStats'
4196
- CLASSMAP['lldpInstTask'] = 'LldpInstTask'
4197
4192
  CLASSMAP['lldpMgmtAddr'] = 'LldpMgmtAddr'
4198
4193
  CLASSMAP['lldpRsCtrlrAdjEpToStAdjEp'] = 'LldpRsCtrlrAdjEpToStAdjEp'
4199
4194
  CLASSMAP['lldpRsLldpInstPolCons'] = 'LldpRsLldpInstPolCons'
@@ -4482,7 +4477,6 @@ module ACIrb
4482
4477
  CLASSMAP['nwsFwPol'] = 'NwsFwPol'
4483
4478
  CLASSMAP['nwsFwPolDef'] = 'NwsFwPolDef'
4484
4479
  CLASSMAP['nwsRtDefaultFwPol'] = 'NwsRtDefaultFwPol'
4485
- CLASSMAP['nwsRtFwPol'] = 'NwsRtFwPol'
4486
4480
  CLASSMAP['nwsRtOverrideFwPol'] = 'NwsRtOverrideFwPol'
4487
4481
  CLASSMAP['nwsRtResNwsFwPol'] = 'NwsRtResNwsFwPol'
4488
4482
  CLASSMAP['oamExec'] = 'OamExec'
@@ -4705,7 +4699,6 @@ module ACIrb
4705
4699
  CLASSMAP['ospfCtxDefAf'] = 'OspfCtxDefAf'
4706
4700
  CLASSMAP['ospfCtxPol'] = 'OspfCtxPol'
4707
4701
  CLASSMAP['ospfDb'] = 'OspfDb'
4708
- CLASSMAP['ospfDbRec'] = 'OspfDbRec'
4709
4702
  CLASSMAP['ospfDefRtLeakP'] = 'OspfDefRtLeakP'
4710
4703
  CLASSMAP['ospfDom'] = 'OspfDom'
4711
4704
  CLASSMAP['ospfDomStats'] = 'OspfDomStats'
@@ -4729,7 +4722,6 @@ module ACIrb
4729
4722
  CLASSMAP['ospfLsaRec'] = 'OspfLsaRec'
4730
4723
  CLASSMAP['ospfMaxLsaP'] = 'OspfMaxLsaP'
4731
4724
  CLASSMAP['ospfMcNexthop'] = 'OspfMcNexthop'
4732
- CLASSMAP['ospfNexthop'] = 'OspfNexthop'
4733
4725
  CLASSMAP['ospfRibLeakP'] = 'OspfRibLeakP'
4734
4726
  CLASSMAP['ospfRoute'] = 'OspfRoute'
4735
4727
  CLASSMAP['ospfRsIfDefToOspfIf'] = 'OspfRsIfDefToOspfIf'
@@ -5931,7 +5923,6 @@ module ACIrb
5931
5923
  CLASSMAP['trigTriggeredWindow'] = 'TrigTriggeredWindow'
5932
5924
  CLASSMAP['trigWindow'] = 'TrigWindow'
5933
5925
  CLASSMAP['troubleshootEpTransition'] = 'TroubleshootEpTransition'
5934
- CLASSMAP['troubleshootReportGenStatus'] = 'TroubleshootReportGenStatus'
5935
5926
  CLASSMAP['troubleshootReportStatus'] = 'TroubleshootReportStatus'
5936
5927
  CLASSMAP['troubleshootRsSessionScheduler'] = 'TroubleshootRsSessionScheduler'
5937
5928
  CLASSMAP['troubleshootRtTroubleshootSessionRel'] = 'TroubleshootRtTroubleshootSessionRel'
@@ -1,77 +1,260 @@
1
- # auto-generated code
2
- require 'mo'
1
+ require 'acirb/restclient'
2
+ require 'rexml/document'
3
+ require 'json'
4
+
5
+ # rubocop:disable ClassLength
3
6
  module ACIrb
4
- class MoASubj < MO
5
- @class_name = 'mo.ASubj'
6
- @ruby_class = 'MoASubj'
7
- @prefix = ''
8
- @prefixes = []
9
- @rn_format = ''
10
- @containers = []
11
- @props = { 'childAction' => { 'isAdmin' => true, 'isImplicit' => true, 'isCreateOnly' => false, 'isDn' => false, 'isRn' => false },
12
- 'dn' => { 'isAdmin' => true, 'isImplicit' => true, 'isCreateOnly' => true, 'isDn' => true, 'isRn' => false },
13
- 'oCl' => { 'isAdmin' => true, 'isImplicit' => true, 'isCreateOnly' => false, 'isDn' => false, 'isRn' => false },
14
- 'oDn' => { 'isAdmin' => true, 'isImplicit' => false, 'isCreateOnly' => true, 'isDn' => false, 'isRn' => false },
15
- 'rn' => { 'isAdmin' => true, 'isImplicit' => true, 'isCreateOnly' => true, 'isDn' => false, 'isRn' => true },
16
- 'status' => { 'isAdmin' => true, 'isImplicit' => true, 'isCreateOnly' => false, 'isDn' => false, 'isRn' => false } }
17
- @child_classes = []
18
- @label = 'None'
19
- @naming_props = []
20
- @read_only = false
21
-
22
- def rn
23
- ''
7
+ # A generic managed object class
8
+ class MO
9
+ # Class variable properties
10
+ class << self
11
+ # for class variables
12
+ attr_reader :prefix, :class_name, :child_classes, :props,
13
+ :naming_props, :prefixes, :ruby_class, :containers,
14
+ :read_only
24
15
  end
25
- end
26
- class MoCount < MO
27
- @class_name = 'mo.Count'
28
- @ruby_class = 'MoCount'
29
- @prefix = 'cnt'
30
- @prefixes = [['cnt', false]]
31
- @rn_format = 'cnt'
32
- @containers = ['TopRoot']
33
- @props = { 'childAction' => { 'isAdmin' => true, 'isImplicit' => true, 'isCreateOnly' => false, 'isDn' => false, 'isRn' => false },
34
- 'count' => { 'isAdmin' => true, 'isImplicit' => true, 'isCreateOnly' => false, 'isDn' => false, 'isRn' => false },
35
- 'dn' => { 'isAdmin' => true, 'isImplicit' => true, 'isCreateOnly' => true, 'isDn' => true, 'isRn' => false },
36
- 'lcOwn' => { 'isAdmin' => true, 'isImplicit' => true, 'isCreateOnly' => false, 'isDn' => false, 'isRn' => false },
37
- 'modTs' => { 'isAdmin' => true, 'isImplicit' => true, 'isCreateOnly' => false, 'isDn' => false, 'isRn' => false },
38
- 'rn' => { 'isAdmin' => true, 'isImplicit' => true, 'isCreateOnly' => true, 'isDn' => false, 'isRn' => true },
39
- 'status' => { 'isAdmin' => true, 'isImplicit' => true, 'isCreateOnly' => false, 'isDn' => false, 'isRn' => false } }
40
- @child_classes = []
41
- @label = 'None'
42
- @naming_props = []
43
- @read_only = true
44
-
45
- def rn
46
- 'cnt'
16
+
17
+ # for instance variables
18
+ attr_reader :children, :attributes
19
+ attr_accessor :parent, :dirty_props
20
+
21
+ # Internal: Returns class prefixes
22
+ def prefixes
23
+ self.class.prefixes
47
24
  end
48
- end
49
- class MoUpdateInfo < MO
50
- @class_name = 'mo.UpdateInfo'
51
- @ruby_class = 'MoUpdateInfo'
52
- @prefix = 'updateinfo-'
53
- @prefixes = [['updateinfo-', true]]
54
- @rn_format = 'updateinfo-%(index)s'
55
- @containers = []
56
- @props = { 'chgBmp' => { 'isAdmin' => true, 'isImplicit' => false, 'isCreateOnly' => false, 'isDn' => false, 'isRn' => false },
57
- 'childAction' => { 'isAdmin' => true, 'isImplicit' => true, 'isCreateOnly' => false, 'isDn' => false, 'isRn' => false },
58
- 'dn' => { 'isAdmin' => true, 'isImplicit' => true, 'isCreateOnly' => true, 'isDn' => true, 'isRn' => false },
59
- 'index' => { 'isAdmin' => true, 'isImplicit' => false, 'isCreateOnly' => true, 'isDn' => false, 'isRn' => false },
60
- 'lcOwn' => { 'isAdmin' => true, 'isImplicit' => true, 'isCreateOnly' => false, 'isDn' => false, 'isRn' => false },
61
- 'moDn' => { 'isAdmin' => true, 'isImplicit' => false, 'isCreateOnly' => false, 'isDn' => false, 'isRn' => false },
62
- 'modTs' => { 'isAdmin' => true, 'isImplicit' => true, 'isCreateOnly' => false, 'isDn' => false, 'isRn' => false },
63
- 'priKey' => { 'isAdmin' => true, 'isImplicit' => false, 'isCreateOnly' => false, 'isDn' => false, 'isRn' => false },
64
- 'rn' => { 'isAdmin' => true, 'isImplicit' => true, 'isCreateOnly' => true, 'isDn' => false, 'isRn' => true },
65
- 'status' => { 'isAdmin' => true, 'isImplicit' => true, 'isCreateOnly' => false, 'isDn' => false, 'isRn' => false },
66
- 'uid' => { 'isAdmin' => true, 'isImplicit' => true, 'isCreateOnly' => false, 'isDn' => false, 'isRn' => false } }
67
- @child_classes = []
68
- @label = 'None'
69
- @naming_props = ['index']
70
- @read_only = false
71
-
72
- def rn
73
- 'updateinfo-' << @attributes['index'] << ''
25
+
26
+ # Internal: Returns child classes
27
+ def child_classes
28
+ self.class.child_classes
29
+ end
30
+
31
+ # Internal: Returns containiner classes
32
+ def containers
33
+ self.class.containers
34
+ end
35
+
36
+ # Internal: Returns naming properties
37
+ def naming_props
38
+ self.class.naming_props
39
+ end
40
+
41
+ # Internal: Returns class properties
42
+ def props
43
+ self.class.props
44
+ end
45
+
46
+ # Internal: Returns object class name in APIC package.class notation
47
+ def class_name
48
+ self.class.class_name
74
49
  end
75
- end
76
50
 
51
+ # Internal: Returns class name as ruby package notation
52
+ def ruby_class
53
+ self.class.ruby_class
54
+ end
55
+
56
+ # Interal: Returns boolean for if this class is read only
57
+ def read_only
58
+ self.class.read_only
59
+ end
60
+
61
+ def initialize(create_parent, create_options = {})
62
+ # always mark dirty unless otherwise specified
63
+ if create_options[:mark_dirty] == false
64
+ mark_dirty = false
65
+ else
66
+ mark_dirty = true
67
+ end
68
+ create_options.delete(:mark_dirty)
69
+
70
+ @attributes = {}
71
+ @dirty_props = []
72
+ props.each do |prop, _flags|
73
+ @attributes[prop.to_s] = ''
74
+ end
75
+ @children = []
76
+
77
+ if create_parent.nil?
78
+ @parent = nil
79
+ else
80
+ @parent = create_parent
81
+ @parent.add_child(self)
82
+ end
83
+
84
+ # for performance reasons, do not use set_prop here
85
+ # and build the dn string after all attributes are set
86
+ create_options.each do |k, v|
87
+ flags = props[k.to_s]
88
+ @attributes[k.to_s] = v.to_s
89
+ @dirty_props.push(k.to_s) if mark_dirty
90
+ end
91
+ @attributes['dn'] = build_dn
92
+ @attributes['rn'] = rn
93
+ end
94
+
95
+ # Internal: Adds another MO object as a child to this class
96
+ def add_child(child)
97
+ unless child.containers.include?(ruby_class)
98
+ fail child.class.to_s + ' cannot be child of ' + self.class.to_s
99
+ end
100
+ @children.each do |mo|
101
+ return nil if mo.dn == child.dn
102
+ end
103
+ @children.push(child)
104
+ child.parent = self
105
+ end
106
+
107
+ def set_prop(key, val)
108
+ key = key.to_s
109
+ val = val.to_s
110
+
111
+ return if key == 'dn' || key == 'rn'
112
+
113
+ @attributes[key] = val
114
+ @dirty_props.push(key)
115
+
116
+ if naming_props.include? key
117
+ dn_str = build_dn
118
+ @attributes['dn'] = dn_str
119
+ @attributes['rn'] = rn
120
+ end
121
+ end
122
+
123
+ def root
124
+ p = self
125
+ p = p.parent until p.parent.nil?
126
+ p
127
+ end
128
+
129
+ def get_attributes_to_include
130
+ incl_attr = {}
131
+ @attributes.each do |key, value|
132
+ if props[key.to_s]['isDn'] == true || props[key.to_s]['isRn'] == true || @dirty_props.include?(key) || naming_props.include?(key)
133
+ incl_attr[key.to_s] = value
134
+ end
135
+ end
136
+ incl_attr
137
+ end
138
+
139
+ def get_children_to_include
140
+ incl_children = []
141
+ @children.each do |child|
142
+ incl_children.push(child) if child.read_only == false
143
+ end
144
+ incl_children
145
+ end
146
+
147
+ def to_xml
148
+ # TODO: Use nokogiri here
149
+ # https://github.com/sparklemotion/nokogiri/wiki/Cheat-sheet
150
+ x = REXML::Element.new mo_type.to_s
151
+
152
+ get_attributes_to_include.each do |key, value|
153
+ x.attributes[key.to_s] = value
154
+ end
155
+
156
+ get_children_to_include.each do |child|
157
+ x.add_element(child.to_xml)
158
+ end
159
+ x
160
+ end
161
+
162
+ def to_hash
163
+ h = {}
164
+ h[mo_type.to_s] = {}
165
+ h[mo_type.to_s]['attributes'] = {}
166
+ get_attributes_to_include.each do |key, value|
167
+ h[mo_type.to_s]['attributes'][key.to_s] = value
168
+ end
169
+ h[mo_type.to_s]['attributes']['dn'] = dn
170
+ h[mo_type.to_s]['children'] = [] if children.length > 0
171
+ get_children_to_include.each do |child|
172
+ h[mo_type.to_s]['children'].push(child.to_hash)
173
+ end
174
+ h
175
+ end
176
+
177
+ def to_json
178
+ JSON.dump(to_hash)
179
+ end
180
+
181
+ def create(restclient)
182
+ self.status = 'created,modified'
183
+ restclient.post(data: self,
184
+ url: "/api/mo/#{dn}.#{restclient.format}")
185
+ @dirty_props = []
186
+ end
187
+
188
+ def destroy(restclient)
189
+ self.status = 'deleted'
190
+ restclient.post(data: self,
191
+ url: "/api/mo/#{dn}.#{restclient.format}")
192
+ @dirty_props = []
193
+ end
194
+
195
+ def exists(restclient, recurse = false)
196
+ options = {}
197
+ options[:subtree] = 'full' if recurse
198
+ if restclient.lookupByDn(dn, options)
199
+ if recurse == true
200
+ children.each do |child|
201
+ unless child.exists(restclient, recurse = true)
202
+ return false
203
+ end
204
+ end
205
+ end
206
+ return true
207
+ else
208
+ return false
209
+ end
210
+ end
211
+
212
+ def build_dn
213
+ if @parent.nil?
214
+ return rn
215
+ else
216
+ parent_dn = '' << @parent.dn
217
+ if parent_dn == ''
218
+ return rn
219
+ else
220
+ parent_dn << '/'
221
+ parent_dn << rn
222
+ return parent_dn
223
+ end
224
+ end
225
+ end
226
+
227
+ def mo_type
228
+ self.class.class_name.delete('.')
229
+ end
230
+
231
+ def to_s
232
+ def hash_to_table(h)
233
+ len = h.keys.map(&:length).max
234
+ ret = []
235
+ h.each do |k, v|
236
+ ret.push(('%' + len.to_s + 's: %s') % [k.to_s, v.to_s])
237
+ end
238
+ ret
239
+ end
240
+ header_table = hash_to_table(
241
+ 'Class' => class_name
242
+ )
243
+ attribute_table = hash_to_table(attributes)
244
+ header_table.push(attribute_table)
245
+ header_table.join("\n")
246
+ end
247
+
248
+ def method_missing(name, *args, &block)
249
+ lookup_name = name.to_s
250
+ return @attributes[lookup_name] if @attributes.key? lookup_name
251
+ return set_prop(lookup_name.chomp('='), args[0]) if @attributes.key? lookup_name.chomp('=')
252
+ child_matches = []
253
+ @children.each do |child|
254
+ child_matches.push(child) if child.class.prefix.sub('-', '') == lookup_name
255
+ end
256
+ return child_matches if child_matches.length > 0
257
+ super
258
+ end
259
+ end
77
260
  end
@@ -1,5 +1,5 @@
1
1
  # auto-generated code
2
- require 'mo'
2
+ require 'acirb/mo'
3
3
  module ACIrb
4
4
  class AaaADomainRef < MO
5
5
  @class_name = 'aaa.ADomainRef'
@@ -1,5 +1,5 @@
1
1
  # auto-generated code
2
- require 'mo'
2
+ require 'acirb/mo'
3
3
  module ACIrb
4
4
  class AcBank < MO
5
5
  @class_name = 'ac.Bank'
@@ -1,5 +1,5 @@
1
1
  # auto-generated code
2
- require 'mo'
2
+ require 'acirb/mo'
3
3
  module ACIrb
4
4
  class ActionACont < MO
5
5
  @class_name = 'action.ACont'
@@ -1,5 +1,5 @@
1
1
  # auto-generated code
2
- require 'mo'
2
+ require 'acirb/mo'
3
3
  module ACIrb
4
4
  class ActrlARule < MO
5
5
  @class_name = 'actrl.ARule'
@@ -1,5 +1,5 @@
1
1
  # auto-generated code
2
- require 'mo'
2
+ require 'acirb/mo'
3
3
  module ACIrb
4
4
  class ActrlcapProv < MO
5
5
  @class_name = 'actrlcap.Prov'
@@ -1,5 +1,5 @@
1
1
  # auto-generated code
2
- require 'mo'
2
+ require 'acirb/mo'
3
3
  module ACIrb
4
4
  class AdcomAcap < MO
5
5
  @class_name = 'adcom.Acap'