add insecure openstack connection support
diff --git a/wally/start_vms.py b/wally/start_vms.py
index 1457da6..432594a 100644
--- a/wally/start_vms.py
+++ b/wally/start_vms.py
@@ -5,6 +5,7 @@
import os.path
import logging
import subprocess
+import collections
from concurrent.futures import ThreadPoolExecutor
@@ -28,50 +29,61 @@
return NOVA_CONNECTION is not None
+OSCreds = collections.namedtuple("OSCreds",
+ ["name", "passwd",
+ "tenant", "auth_url", "insecure"])
+
+
def ostack_get_creds():
if STORED_OPENSTACK_CREDS is None:
- env = os.environ.get
- name = env('OS_USERNAME')
- passwd = env('OS_PASSWORD')
- tenant = env('OS_TENANT_NAME')
- auth_url = env('OS_AUTH_URL')
- return name, passwd, tenant, auth_url
+ return OSCreds(os.environ.get('OS_USERNAME'),
+ os.environ.get('OS_PASSWORD'),
+ os.environ.get('OS_TENANT_NAME'),
+ os.environ.get('OS_AUTH_URL'),
+ os.environ.get('OS_INSECURE', False))
else:
return STORED_OPENSTACK_CREDS
-def nova_connect(name=None, passwd=None, tenant=None, auth_url=None):
+def nova_connect(os_creds=None):
global NOVA_CONNECTION
global STORED_OPENSTACK_CREDS
if NOVA_CONNECTION is None:
- if name is None:
- name, passwd, tenant, auth_url = ostack_get_creds()
+ if os_creds is None:
+ os_creds = ostack_get_creds()
else:
- STORED_OPENSTACK_CREDS = (name, passwd, tenant, auth_url)
+ STORED_OPENSTACK_CREDS = os_creds
- NOVA_CONNECTION = n_client('1.1', name, passwd, tenant, auth_url)
+ NOVA_CONNECTION = n_client('1.1',
+ os_creds.name,
+ os_creds.passwd,
+ os_creds.tenant,
+ os_creds.auth_url,
+ insecure=os_creds.insecure)
return NOVA_CONNECTION
-def cinder_connect(name=None, passwd=None, tenant=None, auth_url=None):
+def cinder_connect(os_creds=None):
global CINDER_CONNECTION
global STORED_OPENSTACK_CREDS
if CINDER_CONNECTION is None:
- if name is None:
- name, passwd, tenant, auth_url = ostack_get_creds()
+ if os_creds is None:
+ os_creds = ostack_get_creds()
else:
- STORED_OPENSTACK_CREDS = (name, passwd, tenant, auth_url)
- CINDER_CONNECTION = c_client(name, passwd, tenant, auth_url)
+ STORED_OPENSTACK_CREDS = os_creds
+ CINDER_CONNECTION = c_client(os_creds.name,
+ os_creds.passwd,
+ os_creds.tenant,
+ os_creds.auth_url,
+ insecure=os_creds.insecure)
return CINDER_CONNECTION
-def prepare_os_subpr(nova, params, name=None,
- passwd=None, tenant=None,
- auth_url=None):
- if name is None:
- name, passwd, tenant, auth_url = ostack_get_creds()
+def prepare_os_subpr(nova, params, os_creds):
+ if os_creds is None:
+ os_creds = ostack_get_creds()
MAX_VM_PER_NODE = 8
serv_groups = " ".join(map(params['aa_group_name'].format,
@@ -81,10 +93,11 @@
env = os.environ.copy()
env.update(dict(
- OS_USERNAME=name,
- OS_PASSWORD=passwd,
- OS_TENANT_NAME=tenant,
- OS_AUTH_URL=auth_url,
+ OS_USERNAME=os_creds.name,
+ OS_PASSWORD=os_creds.passwd,
+ OS_TENANT_NAME=os_creds.tenant,
+ OS_AUTH_URL=os_creds.auth_url,
+ OS_INSECURE="1" if os_creds.insecure else "0",
FLAVOR_NAME=params['flavor']['name'],
FLAVOR_RAM=str(params['flavor']['ram_size']),