# mode file (relative to /c3d)
755 firstboot/scripts/*.sh
640 postinstall/install-data/etc/named.conf
+755 postinstall/install-data/usr/local/bin/*.py
600 postinstall/install-data/var/named/*.private
640 postinstall/install-data/var/named/*.zonesource
755 postinstall/scripts/*.sh
--- /dev/null
+#!/usr/bin/env python
+
+
+import sys
+
+
+list_of_containers = [('dhcp', 'is'),
+ ('efg', 'pm'),
+ ('ens', 'pm'),
+ ('fdc', 'is'),
+ ('fds', 'is'),
+ ('ifg', 'is'),
+ ('mx', 'pm'),
+ ('ns', 'is'),
+ ('pki', 'is'),
+ ('pns', 'pm'),
+ ('sns', 'is'),
+ ('vpn', 'is'),
+ ('ws', 'pm')]
+
+def get_ip_of_name(name):
+ name_value = 0
+ for position in range(len(name)):
+ name_value *= 10
+ name_character = name[position].lower()
+ if name_character in '0123456789':
+ character_value = int(name_character)
+ else:
+ character_value = ord(name_character) + 1 - ord('a')
+ name_value += character_value
+ return name_value % 256
+
+def list_ip_addresses():
+ ip_addresses = {}
+ for (name, network) in list_of_containers:
+ if network not in ip_addresses:
+ ip_addresses[network] = {}
+ ip_address = get_ip_of_name(name)
+ iteration = 1
+ while ip_address in ip_addresses[network].values():
+ iteration += 1
+ print('{} is a duplicate, trying {}'.format(name,
+ name * iteration))
+ ip_address = get_ip_of_name(name * iteration)
+ ip_addresses[network][name] = ip_address
+ for network in ip_addresses:
+ network_address = get_ip_of_name(network)
+ hex_network_address = hex(network_address)
+ print('{} network ({}, {}):'.format(network,
+ network_address,
+ hex_network_address))
+ ip_name_list = []
+ for name in ip_addresses[network]:
+ ip_name_list.append((ip_addresses[network][name], name))
+ for (ip_address, name) in sorted(ip_name_list):
+ print(' {:11}: {:3} ({})'.format(name,
+ ip_address,
+ hex(ip_address)))
+
+if __name__ == '__main__':
+ if len(sys.argv) == 1:
+ list_ip_addresses()
+ elif len(sys.argv) == 3:
+ machine_ip = get_ip_of_name(sys.argv[1])
+ network_ip = get_ip_of_name(sys.argv[2])
+ print('{} network: {:3} ({})'.format(sys.argv[2],
+ network_ip,
+ hex(network_ip)))
+ print('{:10}: {:3} ({})'.format(sys.argv[1],
+ machine_ip,
+ hex(machine_ip)))
+ else:
+ print(len(sys.argv))