Charm needed: block-storage-broker
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Juju Charms Collection |
Fix Released
|
Undecided
|
David Britton |
Bug Description
We need a generic block-storage-
The relation interface named "volume-request" will interact in the following manner:
- block-storage-charm will consume the following relation data (provided by related charms)
volume-id (optional preexisting volume-id that will get associated to the instance provided)
size (optional size requested for the volume)
- block-storage-charm will provide the following relation data
Block-storage-
the block-storage-
region, endpoint, key, secret, tenant, default_
The intent of this charm would be to interact with the storage subordinate charm that can be related to any deployed juju unit. The storage subordinate will then proxy volume requests to the block-storage-
The bug is also tied to lp:1259630 and the postgresql branch https:/
When block-storage-
The charm readme included describes the current bundle that will allow testing using either your EC2 or Openstack credentials and states the following:
$ cat >block-
common:
services:
doit-openstack:
inherits: common
series: precise
services:
relations:
- ["postgresql", "storage"]
- ["storage", "block-
doit-ec2:
inherits: common
series: precise
services:
relations:
- ["postgresql", "storage"]
- ["storage", "block-
END
# To deploy and relate volumes using your openstack credentials
$ juju-deployer -c block-storage-
# To deploy and relate volumes using your ec2 credentials
$ juju-deployer -c block-storage-
Related branches
description: | updated |
Changed in charms: | |
assignee: | nobody → Chad Smith (chad.smith) |
status: | New → In Progress |
description: | updated |
description: | updated |
Changed in charms: | |
status: | In Progress → Incomplete |
description: | updated |
description: | updated |
description: | updated |
Changed in charms: | |
status: | Incomplete → Fix Committed |
description: | updated |
Changed in charms: | |
assignee: | Chad Smith (chad.smith) → David Britton (davidpbritton) |
=== General/yaml files ===
[1] metadata.yaml: "to attach new or existing volumes to the cloud instance"...
[2] Add a make clean target?
clean:
find . -name *.pyc | xargs rm
find . -name _trial_temp | xargs rm -rf
[3] Need to resolve charm proof warnings/errors (not infos)
[9] incorporate makefile target to update charmhelpers?
=== hook.py ===
[4] kill the extra log method and just import hookenv.log as log departed install_ packages( ) call. apt-get natively does this. Or leave it in and file a bug upstream. It will not take into considration package updates and will skip them, where apt would "do the right thing"
[5] line 38 and 39 can be combined and stay under 80 characters
[6] missing hook symlink for b-s-b-relation-
[7] move _load_environment into main() ? you call it in a few places. Or move it into nova_util so it's hidden from here. I guess that might be part of the refactoring that needs to be done when EBS comes in.
[8] take out the filter_
=== nova_util.py ===
[10] get_volume_id() docstring, A couple ideas here that are not included:
"""Return the nova volume id attached to the relating unit
Optionally, C{volume_name} can be specified to return the volume_id that
has the matching C{volume_name}. This name can also be an exact volume_id. If no matching volume is found, return
C{None}.
"""
[11] docstring in attach_nova_volume "attach a volume to *the remote unit if none*"
[12] attach_ nova_volume( ): "in-use" is OK, if it's the relating unit, right? Should that be validated? i.e., it's already attached. Ah, I see, it's just the docstring that is a bit inconsistent with the behavior of the code here.
[13] attach_ nova_volume( ): range(10) can be used instead of the two argument option.
[14] detach_ nova_volume( ): docstring s/this unit/remote unit/