Flame needed pemanent adjustments to mathe the changes in the
python-openstackclients. We now use openstacksdk or shade which will
handle themselves the compatibility.
We also made flame modular so that any-one can add features by
implementing there own flame managers and adding their modules to
the `openstack_flame` entry point.
This new flame version is also fully compatible with python 3.
Change-Id: I586a165b5022031963f504874bd50e1b11fe0d27
Allow the user to establish a two way SSL connection by
adding the cert and key parameters in the client of
keystone manager
Change-Id: I4418a45a58139d63d23f1939be61e90d7cd6a062
When the extract-ports flag is used, flame extracts the neutron ports
and connects them (according to the other flags) to :
- floating ips
- nova:compute instances
- security groups
- subnets and networks
This allows the exported stack to have the same network configuration as
its source.
When the flag is used in conjunction with --generate-stack-data,
the generated stack data also contains the assocation between
ports and floating IPs.
Change-Id: Id2e406c7aac5457cdef822b78edf7e30bd833a2d
This change improves the performance of flame by fetching the different
Openstack resources through a ThreadPoolExecutor.
The resources to fetch are declared in a dict inside
flame.TemplateGenerator.extract_vm_details of the form
{'resource_type' : (fetch_method, filter_method), ...}
Co-Authored-By: zarrouk <mzarrouk.ext@orange.com>
Change-Id: I8f34ecbfff236e5469b83d1c79d1f98accb125c0
The heat client now requires the stack data and the stack template to be
passed through the same file.
This change affects the output of flameclient.Client.generate and
replaces flameclient.Client.heat_template and
flameclient.Client.stack_data_template by a single method :
heat_template_and_data.
Change-Id: I14f703cb09e9dc81c5fa89d60ed10c53c61ce004
Extraction server-groups for export tenant information.
Add the "scheduler_hints" at nova creation stage.
Change-Id: I2359de035e219709d6f2359ea90de092d1b3d1ed
This replaces the block_device_mapping of OS::Nova:Server attribute with
a block_device_mapping_v2 attribute.
Change-Id: Ibc552069b5e8eab367fb36fdb98a0a8cdfaa9fa0
Volume objects in the cinder client don't always provide the
display_name and display_description attributes. Don't fail in this
case.
Change-Id: I08448f002912c2382fcc6728ce3ecf75038faec2
depending on any oslo-incubator code from another project is
dangerous. keystoneclient makes its exceptions public and it's
not recommended to use any code from
keystoneclient.openstack.common.apiclient since it's maintained
by oslo-incubator.
Change-Id: I9dcbb36a482979758167351640eb6cacef62e43d
Added all options of TemplateGenerator in client. Also added default values for
insecure and endpoint_type.
Change-Id: I938ba640a23adc0a0277fadc806f147bcc88d580
__version__ computation fails when flame is installed in dev mode[1]
and run outside of its git folder. This change sets __version__ to
"unknown" when its computation fails.
[1]: python setup.py develop or pîp install -e
Change-Id: Ie5ea2bcb548623a059c450d1a7d541ff1cd242b0
Currently flame TemplateGenerator generates the heat template while
visiting OpenStack (nova,neutron,cinder) resources. It implies lots
of code duplication associated to the template generation.
This change introduces a Resource class in order to split the heat
template generation in 2 parts:
* Extraction: extracting OpenStack resources and creating Resource
instances
* Generation: generating heat template from Resource instances.
It allows to:
* Reduce code duplication associated to the template generation,
* Allow to test smaller methods,
* Add steps between the extraction and the generation (for
customization for example).
This change will be followed by daughter changes in order to:
* Improve tests by taking advantage of Resource use,
* Improve flameclient.flame by simplifying relationships between heat
template resources and also with parameters.
Change-Id: If5e26c6210145103e729d42b149f177439acaddb
Currently flame does not support deployment without cinder and crashs
on the first cinder request (even with --exclude-volumes option). This
change updates CinderManager to support such case.
Change-Id: I57a5b9049f9644e7fc1f5975b6b0683494271575
This change updates code to respect flake8/pep8 rules. It changes:
* correct KeystoneManager.set_client signature
* correct code indentation
* remove useless variables
* support py3X
* use netaddr instead of ipaddr (not supported by py34)
* use dict.values instead of dict.itervalues.
* correct tests
* "fake.networks[0]['router:external'] = True" update had side
effects on other tests, fake managers attributes are now builded
at instantiation to avoid such trouble.
Change-Id: I56943e198c3dc0e28be5f5b799e62f4a6427292c