Description:
Implementation of a provider using native OpenStack apis, and using
swift for file storage. There is still some important features to
complete here, but the core is done and the remaining gaps documented.
Also included is an openstack_s3 provider fudge that uses the Nova api,
with the S3 api for storage. This allows for running against deployments
using nova-objectstore rather than swift, which currently includes
canonistack.
The basics are modelled on the EC2 provider implementation, with the
addition of a client module that handles the details of the OpenStack
api in the manner of txaws. Along the way I also refactored the
security_groups module into helper class for port management.
I've made an effort to document all the tricky bits as clearly as
possible, to guard against important details getting lost in
translation. See those docstrings for a deeper description of the
implementation.
Apologies for the size of the delta, all feedback welcome.
Affected files:
A [revision details]
M juju/environment/config.py
M juju/errors.py
M juju/providers/common/findzookeepers.py
M juju/providers/ec2/tests/test_launch.py
A juju/providers/openstack/__init__.py
A juju/providers/openstack/client.py
A juju/providers/openstack/files.py
A juju/providers/openstack/launch.py
A juju/providers/openstack/machine.py
A juju/providers/openstack/ports.py
A juju/providers/openstack/provider.py
A juju/providers/openstack/tests/__init__.py
A juju/providers/openstack/tests/test_bootstrap.py
A juju/providers/openstack/tests/test_client.py
A juju/providers/openstack/tests/test_files.py
A juju/providers/openstack/tests/test_getmachines.py
A juju/providers/openstack/tests/test_machine.py
A juju/providers/openstack/tests/test_ports.py
A juju/providers/openstack/tests/test_provider.py
A juju/providers/openstack/tests/test_shutdown.py
A juju/providers/openstack/tests/test_state.py
A juju/providers/openstack_s3/__init__.py
A juju/providers/openstack_s3/tests/__init__.py
A juju/providers/openstack_s3/tests/test_provider.py
M juju/unit/address.py
M juju/unit/tests/test_address.py
Reviewers: mp+110860_ code.launchpad. net,
Message:
Please take a look.
Description:
Implementation of a provider using native OpenStack apis, and using
swift for file storage. There is still some important features to
complete here, but the core is done and the remaining gaps documented.
Also included is an openstack_s3 provider fudge that uses the Nova api,
with the S3 api for storage. This allows for running against deployments
using nova-objectstore rather than swift, which currently includes
canonistack.
The basics are modelled on the EC2 provider implementation, with the
addition of a client module that handles the details of the OpenStack
api in the manner of txaws. Along the way I also refactored the
security_groups module into helper class for port management.
I've made an effort to document all the tricky bits as clearly as
possible, to guard against important details getting lost in
translation. See those docstrings for a deeper description of the
implementation.
Apologies for the size of the delta, all feedback welcome.
https:/ /code.launchpad .net/~gz/ juju/openstack_ provider/ +merge/ 110860
(do not edit description out of merge proposal)
Please review this at https:/ /codereview. appspot. com/6312050/
Affected files: t/config. py common/ findzookeepers. py ec2/tests/ test_launch. py openstack/ __init_ _.py openstack/ client. py openstack/ files.py openstack/ launch. py openstack/ machine. py openstack/ ports.py openstack/ provider. py openstack/ tests/_ _init__ .py openstack/ tests/test_ bootstrap. py openstack/ tests/test_ client. py openstack/ tests/test_ files.py openstack/ tests/test_ getmachines. py openstack/ tests/test_ machine. py openstack/ tests/test_ ports.py openstack/ tests/test_ provider. py openstack/ tests/test_ shutdown. py openstack/ tests/test_ state.py openstack_ s3/__init_ _.py openstack_ s3/tests/ __init_ _.py openstack_ s3/tests/ test_provider. py address. py tests/test_ address. py
A [revision details]
M juju/environmen
M juju/errors.py
M juju/providers/
M juju/providers/
A juju/providers/
A juju/providers/
A juju/providers/
A juju/providers/
A juju/providers/
A juju/providers/
A juju/providers/
A juju/providers/
A juju/providers/
A juju/providers/
A juju/providers/
A juju/providers/
A juju/providers/
A juju/providers/
A juju/providers/
A juju/providers/
A juju/providers/
A juju/providers/
A juju/providers/
A juju/providers/
M juju/unit/
M juju/unit/