summaryrefslogtreecommitdiffstats
path: root/tools/pharos-validator/src/validation_tool/src/dhcp.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/pharos-validator/src/validation_tool/src/dhcp.py')
-rw-r--r--tools/pharos-validator/src/validation_tool/src/dhcp.py102
1 files changed, 0 insertions, 102 deletions
diff --git a/tools/pharos-validator/src/validation_tool/src/dhcp.py b/tools/pharos-validator/src/validation_tool/src/dhcp.py
deleted file mode 100644
index 26c42f84..00000000
--- a/tools/pharos-validator/src/validation_tool/src/dhcp.py
+++ /dev/null
@@ -1,102 +0,0 @@
-##############################################################################
-# Copyright (c) 2015 Todd Gaunt and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-import yaml
-import netifaces
-import subprocess
-import copy
-import re
-import os
-import logging
-
-from pharosvalidator.specification import *
-from pharosvalidator import util
-
-init_cmd = ["systemctl", "start", "dhcpd.service"]
-
-def gen_dhcpd_file(dhcpdfile, nodes, network):
- """Generates and associates incremental ip addresses to
- MAC addresses according to restrictions placed by network
- configuration file. Writes all of this out in dhcpd.conf format"""
- logger = logging.getLogger(__name__)
- logger.info("Generating dhcpfile...")
-
- header = "default-lease-time 86400;\n\
- max-lease-time 604800;\n\
- max-lease-time 604800;\n\
- \n\
- allow booting;\n\
- authoritative;\n\
- \n"
-
- # Skip this network if it is disabled
- if network.enabled == False:
- logger.info("Admin network is disabled, please change the configuration to \"enabled\" if you would like this test to run")
- quit()
-
- # Not explicitly in the cofiguration file
- broadcastaddr = "0.0.0.0"
- next_server = "0.0.0.0"
-
- ip_range = util.gen_ip_range(network.cidr, [network.installer_ip], network.usable_ip_range.minimum, \
- network.usable_ip_range.maximum)
-
- tab = ' '
- subnetconf = "subnet {} netmask {} {{\n".format(network.subnet, network.netmask)\
- + tab+"range {} {};\n".format(network.usable_ip_range.minimum, network.usable_ip_range.maximum)\
- + tab+"option broadcast-address {};\n".format(broadcastaddr)\
- + tab+'filename "pxelinux.0";\n'\
- + tab+"next-server {};\n".format(next_server)
-
- # For now no static addresses are assigned
- """
- static_addrs = []
- for node in nodes:
- # Skip the node if it doesn't have a name or mac address specified
- if not node.name or not node.mac_address:
- continue
-
- if node.ipmi_addr in ip_range:
- ip_range.remove(node.ipmi_addr)
-
- static_line = "host {node} {{ hardware ethernet {ipmi_mac}; fixed-address {ip_addr}; }}\n".format\
- (node=node.name, ipmi_mac=node.mac_address, ip_addr=ip_range[0])
- ip_range = ip_range[1::] # Remove the assigned ip address
- static_addrs.append(static_line)
-
- # Now add all statically assigned ip addresses
- for addr in static_addrs:
- subnetconf += tab+addr
- """
-
- subnetconf += "}\n" # Just the closing bracket
-
- # The final text to be written out to a file
- dhcpdtext = header + subnetconf
-
- with open(dhcpdfile, "w+") as fd:
- logger.info("Writing out dhcpd file to {}".format(dhcpdfile))
- fd.write(dhcpdtext)
-
- return dhcpdtext
-
-def start_server():
- logger = logging.getLogger(__name__)
- global init_cmd
- cmd = init_cmd
- with open(os.devnull, 'w') as fn:
- status = subprocess.Popen(cmd, stdout=fn, stderr=fn).wait()
- if int(status) != 0:
- logger.error("Could not bring up dhcpd server")
- else:
- logger.info("Dhcp server brought up")
- return status
-
-if __name__ == "__main__":
- split("inventory.yaml", "eth0")