acirb 1.1.2.1 → 1.1.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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'