old_contents: #!/usr/bin/env python
  
  # This is a sample python script for going through all observed mac addresses
  # and assuming they are BMC related and printing nodeattrib commands
  # for each node to access the bmc using the interface specified on the command
  # line
  
  # Not necessarily as useful if there may be mistakes in the
  # net.switch/net.switchport attributes, but a handy utility in a pinch when
  # you really know
  
  
  import confluent.client as cl
  import socket
  import struct
  c = cl.Command()
  macs = []
  interface = sys.argv[1]
  for mac in c.read('/networking/macs/by-mac/'):
      macs.append(mac['item']['href'])
  for mac in macs:
      macinfo = list(c.read('/networking/macs/by-mac/{0}'.format(mac)))[0]
      if 'possiblenode' in macinfo and macinfo['possiblenode']:
          if macinfo['macsonport'] > 1:
              print('Ambiguous set of macs on port for ' + macinfo[
                  'possiblenode'])
          prefix = int(mac.replace('-', '')[:6], 16) ^ 0b100000000000000000
          prefix = prefix << 8
          prefix |= 0xff
          suffix = int(mac.replace('-', '')[6:], 16)
          suffix |= 0xfe000000
          rawn = struct.pack('!QLL', 0xfe80000000000000, prefix, suffix)
          bmc = socket.inet_ntop(socket.AF_INET6, rawn)
          print('nodeattrib {0} bmc={1}%{2}'.format(macinfo['possiblenode'],
                                                    bmc, interface))
  
new_contents: #!/usr/bin/env python
  
  # This is a sample python script for going through all observed mac addresses
  # and assuming they are BMC related and printing nodeattrib commands
  # for each node to access the bmc using the interface specified on the command
  # line
  
  # Not necessarily as useful if there may be mistakes in the
  # net.switch/net.switchport attributes, but a handy utility in a pinch when
  # you really know
  
  
  import confluent.client as cl
  import socket
  import struct
  c = cl.Command()
  macs = []
  interface = sys.argv[1]
  for mac in c.read('/networking/macs/by-mac/'):
      macs.append(mac['item']['href'])
  for mac in macs:
      macinfo = list(c.read('/networking/macs/by-mac/{0}'.format(mac)))[0]
      if 'possiblenode' in macinfo and macinfo['possiblenode']:
          if macinfo['macsonport'] > 1:
              print('#Ambiguous set of macs on port for ' + macinfo[
                  'possiblenode'])
          prefix = int(mac.replace('-', '')[:6], 16) ^ 0b100000000000000000
          prefix = prefix << 8
          prefix |= 0xff
          suffix = int(mac.replace('-', '')[6:], 16)
          suffix |= 0xfe000000
          rawn = struct.pack('!QLL', 0xfe80000000000000, prefix, suffix)
          bmc = socket.inet_ntop(socket.AF_INET6, rawn)
          print('nodeattrib {0} bmc={1}%{2}'.format(macinfo['possiblenode'],
                                                    bmc, interface))
  
subject: Update warning to be commented out, just in case..