Merge lp:~ev/uci-engine/ceph into lp:uci-engine

Proposed by Evan
Status: Work in progress
Proposed branch: lp:~ev/uci-engine/ceph
Merge into: lp:uci-engine
Diff against target: 54 lines (+37/-0)
2 files modified
ci-utils/ci_utils/data_store.py (+12/-0)
juju-deployer/object-storage.yaml (+25/-0)
To merge this branch: bzr merge lp:~ev/uci-engine/ceph
Reviewer Review Type Date Requested Status
Canonical CI Engineering Pending
Review via email: mp+226644@code.launchpad.net

Commit message

Add a deployer configuration for object storage on ceph and radosgw (implementing the Swift API). This kills one more need for public cloud credentials in the development deployment and brings us closer to what IS will be using in production.

Description of the change

Warning: you'll run into https://bugs.launchpad.net/juju-core/+bug/1307215 if you deploy this.

To post a comment you must log in.
Revision history for this message
Vincent Ladeuil (vila) wrote :

I don't even know when I typed that inline comment :-/

Unmerged revisions

674. By Evan

Always specify the length of the file when uploading to object storage, since not all providers support chunked transfers.

673. By Evan

Add a deployer configuration for object storage on ceph and radosgw (implementing the Swift API). This kills one more need for public cloud credentials in the development deployment and brings us closer to what IS will be using in production.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'ci-utils/ci_utils/data_store.py'
--- ci-utils/ci_utils/data_store.py 2014-06-30 18:37:17 +0000
+++ ci-utils/ci_utils/data_store.py 2014-07-14 08:59:22 +0000
@@ -86,8 +86,20 @@
86 self.ensure_swift_client()86 self.ensure_swift_client()
87 name = _get_file_name(filename)87 name = _get_file_name(filename)
88 try:88 try:
89 # Move to the end of the file, record the position, then seek back
90 # to the beginning.
91 contents.seek(0, 2)
92 length = contents.tell()
93 contents.seek(0)
94 except AttributeError:
95 length = len(contents)
96 try:
97 # Not all object storage providers support chunked transfers, so
98 # err on the side of caution and always specify the length of the
99 # file.
89 self.client.put_object(self.container_id, obj=name,100 self.client.put_object(self.container_id, obj=name,
90 contents=contents,101 contents=contents,
102 content_length=length,
91 content_type=content_type)103 content_type=content_type)
92 except ClientException as e:104 except ClientException as e:
93 raise DataStoreException(105 raise DataStoreException(
94106
=== added file 'juju-deployer/object-storage.yaml'
--- juju-deployer/object-storage.yaml 1970-01-01 00:00:00 +0000
+++ juju-deployer/object-storage.yaml 2014-07-14 08:59:22 +0000
@@ -0,0 +1,25 @@
1uci-obstore:
2 series: trusty
3 services:
4 uci-ceph:
5 charm: ceph
6 branch: lp:~openstack-charmers/charms/trusty/ceph/trunk
7 # Needed for quorum. Will fail without.
8 num_units: 3
9 options:
10 fsid: ecbb8960-0e21-11e2-b495-83a88f44db01
11 monitor-secret: AQD1P2xQiKglDhAA4NGUF5j38Mhq56qwz+45wg==
12 osd-devices: /srv/ceph
13 uci-radosgw:
14 charm: ceph-radosgw
15 branch: lp:~openstack-charmers/charms/trusty/ceph-radosgw/trunk
16 expose: True
17 uci-keystone:
18 charm: keystone
19 branch: lp:~openstack-charmers/charms/trusty/keystone/trunk
20 expose: True
21 options:
22 admin-password: password
23 relations:
24 - ["uci-ceph", "uci-radosgw"]
25 - ["uci-keystone", "uci-radosgw"]

Subscribers

People subscribed via source and target branches

to all changes: