from optparse import OptionParser
from jinja2 import Environment, FileSystemLoader
+from distutils.version import LooseVersion, StrictVersion
import os
import yaml
+import subprocess
+import socket
+import fcntl
+import struct
#
# Parse parameters
#
# Set Path and configs path
#
+TPL_DIR = os.path.dirname(os.path.abspath(__file__))+'/config_tpl/juju2'
-# Capture our current directory
-TPL_DIR = os.path.dirname(os.path.abspath(__file__))+'/config_tpl'
HOME = os.environ['HOME']
USER = os.environ['USER']
except yaml.YAMLError as exc:
print(exc)
+
+def get_ip_address(ifname):
+ """Get local IP"""
+ s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
+ return socket.inet_ntoa(fcntl.ioctl(
+ s.fileno(),
+ 0x8915, # SIOCGIFADDR
+ struct.pack('256s', bytes(ifname.encode('utf-8')[:15]))
+ )[20:24])
+
+
+#
+# Config import
+#
+
#
# Config import
#
# Add some OS environment variables
config['os'] = {'home': HOME,
'user': USER,
- }
+ 'brAdmIP': get_ip_address(config['opnfv']['spaces_dict']
+ ['admin']['bridge'])}
# Prepare interface-enable, more easy to do it here
ifnamelist = set()
for nic in node['nics']:
if 'admin' not in nic['spaces']:
ifnamelist.add(nic['ifname'])
-config['lab']['racks'][0]['ifnamelist'] = ', '.join(ifnamelist)
+config['lab']['racks'][0]['ifnamelist'] = ','.join(ifnamelist)
#
# Transform template to deployconfig.yaml according to config