Merge "Support region"
This commit is contained in:
commit
2b5a281c59
|
@ -45,6 +45,10 @@ def main(args=None):
|
|||
default=os.environ.get("OS_TENANT_NAME"),
|
||||
help="Name of project. "
|
||||
"Defaults to env[OS_TENANT_NAME]")
|
||||
parser.add_argument("--region",
|
||||
default=os.environ.get("OS_REGION_NAME"),
|
||||
help="Name of region. "
|
||||
"Defaults to env[OS_REGION_NAME]")
|
||||
parser.add_argument("--auth_url", type=str,
|
||||
default=os.environ.get("OS_AUTH_URL"),
|
||||
help="Authentication URL. "
|
||||
|
@ -69,7 +73,7 @@ def main(args=None):
|
|||
args = parser.parse_args()
|
||||
template = flame.TemplateGenerator(args.username, args.password,
|
||||
args.project, args.auth_url,
|
||||
args.insecure)
|
||||
args.insecure, region_name=args.region)
|
||||
template.extract_vm_details(args.exclude_servers, args.exclude_volumes,
|
||||
args.generate_stack_data)
|
||||
template.extract_data()
|
||||
|
|
|
@ -50,11 +50,12 @@ class TemplateGenerator(object):
|
|||
template = None
|
||||
stack_data = None
|
||||
|
||||
def __init__(self, username, password, tenant_name, auth_url, insecure):
|
||||
def __init__(self, username, password, tenant_name, auth_url, insecure,
|
||||
region_name=None):
|
||||
self.generate_data = False
|
||||
self._setup_templates()
|
||||
self._setup_managers(username, password, tenant_name, auth_url,
|
||||
insecure)
|
||||
insecure, region_name=region_name)
|
||||
|
||||
def _setup_templates(self):
|
||||
self.template = yaml.load(template_skeleton)
|
||||
|
@ -65,13 +66,16 @@ class TemplateGenerator(object):
|
|||
self.stack_data['resources'] = {}
|
||||
|
||||
def _setup_managers(self, username, password, tenant_name, auth_url,
|
||||
insecure):
|
||||
insecure, region_name=None):
|
||||
self.neutron = managers.NeutronManager(username, password, tenant_name,
|
||||
auth_url, insecure)
|
||||
auth_url, insecure,
|
||||
region_name=region_name)
|
||||
self.nova = managers.NovaManager(username, password, tenant_name,
|
||||
auth_url, insecure)
|
||||
auth_url, insecure,
|
||||
region_name=region_name)
|
||||
self.cinder = managers.CinderManager(username, password, tenant_name,
|
||||
auth_url, insecure)
|
||||
auth_url, insecure,
|
||||
region_name=region_name)
|
||||
|
||||
def extract_vm_details(self, exclude_servers, exclude_volumes,
|
||||
generate_data):
|
||||
|
|
|
@ -32,12 +32,14 @@ class KeystoneManager(object):
|
|||
"""Manages Keystone queries."""
|
||||
_client = None
|
||||
|
||||
def __init__(self, username, password, project, auth_url, insecure):
|
||||
def __init__(self, username, password, project, auth_url, insecure,
|
||||
region_name=None):
|
||||
self.username = username
|
||||
self.password = password
|
||||
self.project = project
|
||||
self.auth_url = auth_url
|
||||
self.insecure = insecure
|
||||
self.region_name = region_name
|
||||
|
||||
def client(self):
|
||||
if not self._client:
|
||||
|
@ -45,6 +47,7 @@ class KeystoneManager(object):
|
|||
password=self.password,
|
||||
tenant_name=self.project,
|
||||
auth_url=self.auth_url,
|
||||
region_name=self.region_name,
|
||||
insecure=self.insecure)
|
||||
return self._client
|
||||
|
||||
|
@ -66,12 +69,14 @@ class NeutronManager(object):
|
|||
_client = None
|
||||
_project_id = None
|
||||
|
||||
def __init__(self, username, password, project, auth_url, insecure):
|
||||
def __init__(self, username, password, project, auth_url, insecure,
|
||||
region_name=None):
|
||||
self.username = username
|
||||
self.password = password
|
||||
self.project = project
|
||||
self.auth_url = auth_url
|
||||
self.insecure = insecure
|
||||
self.region_name = region_name
|
||||
|
||||
def client(self):
|
||||
if not self._client:
|
||||
|
@ -79,11 +84,13 @@ class NeutronManager(object):
|
|||
password=self.password,
|
||||
tenant_name=self.project,
|
||||
auth_url=self.auth_url,
|
||||
region_name=self.region_name,
|
||||
insecure=self.insecure)
|
||||
if not self._project_id:
|
||||
keystone_mgr = KeystoneManager(self.username, self.password,
|
||||
self.project, self.auth_url,
|
||||
self.insecure)
|
||||
self.insecure,
|
||||
region_name=self.region_name)
|
||||
self._project_id = keystone_mgr.get_project_id()
|
||||
return self._client
|
||||
|
||||
|
@ -128,17 +135,20 @@ class NovaManager(object):
|
|||
"""Manage nova resources."""
|
||||
_client = None
|
||||
|
||||
def __init__(self, username, password, project, auth_url, insecure):
|
||||
def __init__(self, username, password, project, auth_url, insecure,
|
||||
region_name=None):
|
||||
self.username = username
|
||||
self.password = password
|
||||
self.project = project
|
||||
self.auth_url = auth_url
|
||||
self.region_name = region_name
|
||||
self.insecure = insecure
|
||||
|
||||
def client(self):
|
||||
if not self._client:
|
||||
self._client = nova_client.Client(self.username, self.password,
|
||||
self.project, self.auth_url,
|
||||
region_name=self.region_name,
|
||||
insecure=self.insecure)
|
||||
return self._client
|
||||
|
||||
|
@ -171,11 +181,13 @@ class CinderManager(object):
|
|||
"""Manage Cinder resources."""
|
||||
_client = None
|
||||
|
||||
def __init__(self, username, password, project, auth_url, insecure):
|
||||
def __init__(self, username, password, project, auth_url, insecure,
|
||||
region_name=None):
|
||||
self.username = username
|
||||
self.password = password
|
||||
self.project = project
|
||||
self.auth_url = auth_url
|
||||
self.region_name = region_name
|
||||
self.insecure = insecure
|
||||
|
||||
def client(self):
|
||||
|
@ -184,6 +196,7 @@ class CinderManager(object):
|
|||
self.password,
|
||||
self.project,
|
||||
self.auth_url,
|
||||
region_name=self.region_name,
|
||||
insecure=self.insecure)
|
||||
return self._client
|
||||
|
||||
|
|
Loading…
Reference in New Issue