import sys
import time
import threading
+import math
import six
from flask import jsonify
return ipaddress.IPv4Address(six.text_type(ip_addr))
+def get_ip_range_count(iprange):
+ start_range, end_range = iprange.split("-")
+ start = int(make_ipv4_address(start_range))
+ end = int(make_ipv4_address(end_range))
+ return end - start
+
+
+def get_ip_range_start(iprange):
+ return str(make_ipv4_address(iprange.split("-")[0]))
+
+
def safe_ip_address(ip_addr):
""" get ip address version v6 or v4 """
try:
return output
+def setup_hugepages(ssh_client, size_kb):
+ """Setup needed number of hugepages for the size specified"""
+
+ NR_HUGEPAGES_PATH = '/proc/sys/vm/nr_hugepages'
+ meminfo = read_meminfo(ssh_client)
+ hp_size_kb = int(meminfo['Hugepagesize'])
+ hp_number = int(math.ceil(size_kb / float(hp_size_kb)))
+ ssh_client.execute(
+ 'echo %s | sudo tee %s' % (hp_number, NR_HUGEPAGES_PATH))
+ hp = six.BytesIO()
+ ssh_client.get_file_obj(NR_HUGEPAGES_PATH, hp)
+ hp_number_set = int(hp.getvalue().decode('utf-8').splitlines()[0])
+ logger.info('Hugepages size (kB): %s, number claimed: %s, number set: %s',
+ hp_size_kb, hp_number, hp_number_set)
+ return hp_size_kb, hp_number, hp_number_set
+
+
def find_relative_file(path, task_path):
"""
Find file in one of places: in abs of path or relative to a directory path,