from prox_ctrl import prox_ctrl
import ConfigParser
-version="17.12.15"
+version="18.2.12"
stack = "rapid" #Default string for stack
yaml = "rapid.yaml" #Default string for yaml file
key = "prox" # This is also the default in the yaml file....
subnet_cidr="10.10.10.0/24" # cidr for dataplane
internal_network="admin_internal_net"
floating_network="admin_floating_net"
+vm1_availability_zone="nova"
+vm2_availability_zone="nova"
+vm3_availability_zone="nova"
loglevel="DEBUG" # sets log level for writing to file
runtime=10 # time in seconds for 1 test run
print(" [--subnet_cidr SUBNET_CIDR]")
print(" [--internal_network ADMIN_NETWORK]")
print(" [--floating_network ADMIN_NETWORK]")
+ print(" [--vm1_availability_zone ZONE_FOR_VM1]")
+ print(" [--vm2_availability_zone ZONE_FOR_VM2]")
+ print(" [--vm3_availability_zone ZONE_FOR_VM3]")
print(" [--log DEBUG|INFO|WARNING|ERROR|CRITICAL")
print(" [-h] [--help]")
print("")
print(" --subnet DP_SUBNET Specify the subnet name to be used for the dataplane. Default is %s."%subnet)
print(" --subnet_cidr SUBNET_CIDR Specify the subnet CIDR to be used for the dataplane. Default is %s."%subnet_cidr)
print(" --internal_network NETWORK Specify the network name to be used for the control plane. Default is %s."%internal_network)
- print(" --floating_network NETWORK Specify the external floating ip network name. Default is %s."%floating_network)
+ print(" --floating_network NETWORK Specify the external floating ip network name. Default is %s. NO if no floating ip used."%floating_network)
+ print(" --vm1_availability_zone ZONE Specify the availability zone for VM1. Default is %s."%vm1_availability_zone)
+ print(" --vm2_availability_zone ZONE Specify the availability zone for VM2. Default is %s."%vm2_availability_zone)
+ print(" --vm3_availability_zone ZONE Specify the availability zone for VM3. Default is %s."%vm3_availability_zone)
print(" --log Specify logging level for log file output, screen output level is hard coded")
print(" -h, --help Show help message and exit.")
print("")
print("Note that %s is the default stack name. Replace with STACK_NAME if needed"%stack)
try:
- opts, args = getopt.getopt(sys.argv[1:], "vh", ["version","help", "yaml=","stack=","key=","flavor=","image=","image_file=","dataplane_network=","subnet=","subnet_cidr=","internal_network=","floating_network=","log="])
+ opts, args = getopt.getopt(sys.argv[1:], "vh", ["version","help", "yaml=","stack=","key=","flavor=","image=","image_file=","dataplane_network=","subnet=","subnet_cidr=","internal_network=","floating_network=","vm1_availability_zone=","vm2_availability_zone=","vm3_availability_zone=","log="])
except getopt.GetoptError as err:
print("===========================================")
print(str(err))
elif opt in ("--floating_network"):
floating_network = arg
print ("Using floating ip network: "+ floating_network)
+ elif opt in ("--vm1_availability_zone"):
+ vm1_availability_zone = arg
+ print ("Using VM1 availability zone: "+ vm1_availability_zone)
+ elif opt in ("--vm2_availability_zone"):
+ vm2_availability_zone = arg
+ print ("Using VM2 availability zone: "+ vm2_availability_zone)
+ elif opt in ("--vm3_availability_zone"):
+ vm3_availability_zone = arg
+ print ("Using VM3 availability zone: "+ vm3_availability_zone)
elif opt in ("--log"):
loglevel = arg
print ("Log level: "+ loglevel)
raise Exception("Control plane network " + internal_network + " not existing")
# Checking if the floating ip network already exists, if not, stop the script
-log.debug("Checking floating ip network: "+floating_network)
-cmd = 'openstack network show '+floating_network
-log.debug (cmd)
-cmd = cmd + ' |grep "status " | tr -s " " | cut -d" " -f 4'
-NetworkExist = subprocess.check_output(cmd , shell=True).strip()
-if NetworkExist == 'ACTIVE':
- log.info("Floating ip network ("+floating_network+") already active")
-else:
- log.exception("Floating ip network " + floating_network + " not existing")
- raise Exception("Floating ip network " + floating_network + " not existing")
+if floating_network <>'NO':
+ log.debug("Checking floating ip network: "+floating_network)
+ cmd = 'openstack network show '+floating_network
+ log.debug (cmd)
+ cmd = cmd + ' |grep "status " | tr -s " " | cut -d" " -f 4'
+ NetworkExist = subprocess.check_output(cmd , shell=True).strip()
+ if NetworkExist == 'ACTIVE':
+ log.info("Floating ip network ("+floating_network+") already active")
+ else:
+ log.exception("Floating ip network " + floating_network + " not existing")
+ raise Exception("Floating ip network " + floating_network + " not existing")
# Checking if the image already exists, if not create it
log.debug("Checking image: "+image)
cmd = cmd + ' |grep "name " | tr -s " " | cut -d" " -f 4'
FlavorExist = subprocess.check_output(cmd , shell=True).strip()
if FlavorExist == flavor:
- cmd = 'openstack flavor set '+ flavor +' --property hw:mem_page_size="large" --property hw:cpu_policy="dedicated" --property hw:cpu_threads_policy="isolate"'
+ cmd = 'openstack flavor set '+ flavor +' --property hw:mem_page_size="large" --property hw:cpu_policy="dedicated" --property hw:cpu_thread_policy="isolate"'
log.debug(cmd)
subprocess.check_call(cmd , shell=True)
log.info("Flavor created")
StackRunning = subprocess.check_output(cmd , shell=True).strip()
if StackRunning == '':
log.info('Creating Stack ...')
- cmd = 'openstack stack create -t '+ yaml + ' --parameter flavor="'+flavor +'" --parameter key="'+ key + '" --parameter image="'+image + '" --parameter dataplane_network="'+dataplane_network+ '" --parameter internal_network="'+internal_network+'" --parameter floating_network="'+floating_network+'" --wait '+stack
+ cmd = 'openstack stack create -t '+ yaml + ' --parameter flavor="'+flavor +'" --parameter key="'+ key + '" --parameter image="'+image + '" --parameter dataplane_network="'+dataplane_network+ '" --parameter internal_network="'+internal_network+'" --parameter floating_network="'+floating_network+'" --parameter vm1_availability_zone="'+vm1_availability_zone+'" --parameter vm2_availability_zone="'+vm2_availability_zone+'" --parameter vm3_availability_zone="'+vm3_availability_zone+'" --wait '+stack
log.debug(cmd)
cmd = cmd + ' |grep "stack_status " | tr -s " " | cut -d"|" -f 3'
StackRunning = subprocess.check_output(cmd , shell=True).strip()
searchString = '.*vm%d_dataplane_ip.*?([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*)' % vm
matchObj = re.search(searchString, output, re.DOTALL)
vmDPIP.append(matchObj.group(1))
- searchString = '.*vm%d_public_ip.*?([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*)' % vm
- matchObj = re.search(searchString, output, re.DOTALL)
- vmAdminIP.append(matchObj.group(1))
+ if floating_network <> 'NO':
+ searchString = '.*vm%d_public_ip.*?([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*)' % vm
+ matchObj = re.search(searchString, output, re.DOTALL)
+ vmAdminIP.append(matchObj.group(1))
+ else:
+ searchString = '.*vm%d_private_ip.*?([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*)' % vm
+ matchObj = re.search(searchString, output, re.DOTALL)
+ vmAdminIP.append(matchObj.group(1))
searchString = '.*vm%d_dataplane_mac.*?([a-fA-F0-9:]{17})' % vm
matchObj = re.search(searchString, output, re.DOTALL)
vmDPmac.append(matchObj.group(1))