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
1=== modified file 'ci-utils/ci_utils/data_store.py'
2--- ci-utils/ci_utils/data_store.py 2014-06-30 18:37:17 +0000
3+++ ci-utils/ci_utils/data_store.py 2014-07-14 08:59:22 +0000
4@@ -86,8 +86,20 @@
5 self.ensure_swift_client()
6 name = _get_file_name(filename)
7 try:
8+ # Move to the end of the file, record the position, then seek back
9+ # to the beginning.
10+ contents.seek(0, 2)
11+ length = contents.tell()
12+ contents.seek(0)
13+ except AttributeError:
14+ length = len(contents)
15+ try:
16+ # Not all object storage providers support chunked transfers, so
17+ # err on the side of caution and always specify the length of the
18+ # file.
19 self.client.put_object(self.container_id, obj=name,
20 contents=contents,
21+ content_length=length,
22 content_type=content_type)
23 except ClientException as e:
24 raise DataStoreException(
25
26=== added file 'juju-deployer/object-storage.yaml'
27--- juju-deployer/object-storage.yaml 1970-01-01 00:00:00 +0000
28+++ juju-deployer/object-storage.yaml 2014-07-14 08:59:22 +0000
29@@ -0,0 +1,25 @@
30+uci-obstore:
31+ series: trusty
32+ services:
33+ uci-ceph:
34+ charm: ceph
35+ branch: lp:~openstack-charmers/charms/trusty/ceph/trunk
36+ # Needed for quorum. Will fail without.
37+ num_units: 3
38+ options:
39+ fsid: ecbb8960-0e21-11e2-b495-83a88f44db01
40+ monitor-secret: AQD1P2xQiKglDhAA4NGUF5j38Mhq56qwz+45wg==
41+ osd-devices: /srv/ceph
42+ uci-radosgw:
43+ charm: ceph-radosgw
44+ branch: lp:~openstack-charmers/charms/trusty/ceph-radosgw/trunk
45+ expose: True
46+ uci-keystone:
47+ charm: keystone
48+ branch: lp:~openstack-charmers/charms/trusty/keystone/trunk
49+ expose: True
50+ options:
51+ admin-password: password
52+ relations:
53+ - ["uci-ceph", "uci-radosgw"]
54+ - ["uci-keystone", "uci-radosgw"]

Subscribers

People subscribed via source and target branches

to all changes: