Merge lp:~hopem/charm-helpers/lp1517846 into lp:charm-helpers

Proposed by Edward Hope-Morley
Status: Merged
Merged at revision: 485
Proposed branch: lp:~hopem/charm-helpers/lp1517846
Merge into: lp:charm-helpers
Diff against target: 66 lines (+26/-17)
1 file modified
charmhelpers/contrib/storage/linux/ceph.py (+26/-17)
To merge this branch: bzr merge lp:~hopem/charm-helpers/lp1517846
Reviewer Review Type Date Requested Status
Liam Young (community) Approve
Review via email: mp+278036@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Liam Young (gnuoy) wrote :

Approve

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'charmhelpers/contrib/storage/linux/ceph.py'
2--- charmhelpers/contrib/storage/linux/ceph.py 2015-11-19 13:44:07 +0000
3+++ charmhelpers/contrib/storage/linux/ceph.py 2015-11-19 16:45:38 +0000
4@@ -26,6 +26,7 @@
5
6 import os
7 import shutil
8+import six
9 import json
10 import time
11 import uuid
12@@ -125,29 +126,37 @@
13 return None
14
15
16-def create_pool(service, name, replicas=3):
17+def update_pool(client, pool, settings):
18+ cmd = ['ceph', '--id', client, 'osd', 'pool', 'set', pool]
19+ for k, v in six.iteritems(settings):
20+ cmd.append(k)
21+ cmd.append(v)
22+
23+ check_call(cmd)
24+
25+
26+def create_pool(service, name, replicas=3, pg_num=None):
27 """Create a new RADOS pool."""
28 if pool_exists(service, name):
29 log("Ceph pool {} already exists, skipping creation".format(name),
30 level=WARNING)
31 return
32
33- # Calculate the number of placement groups based
34- # on upstream recommended best practices.
35- osds = get_osds(service)
36- if osds:
37- pgnum = (len(osds) * 100 // replicas)
38- else:
39- # NOTE(james-page): Default to 200 for older ceph versions
40- # which don't support OSD query from cli
41- pgnum = 200
42-
43- cmd = ['ceph', '--id', service, 'osd', 'pool', 'create', name, str(pgnum)]
44- check_call(cmd)
45-
46- cmd = ['ceph', '--id', service, 'osd', 'pool', 'set', name, 'size',
47- str(replicas)]
48- check_call(cmd)
49+ if not pg_num:
50+ # Calculate the number of placement groups based
51+ # on upstream recommended best practices.
52+ osds = get_osds(service)
53+ if osds:
54+ pg_num = (len(osds) * 100 // replicas)
55+ else:
56+ # NOTE(james-page): Default to 200 for older ceph versions
57+ # which don't support OSD query from cli
58+ pg_num = 200
59+
60+ cmd = ['ceph', '--id', service, 'osd', 'pool', 'create', name, str(pg_num)]
61+ check_call(cmd)
62+
63+ update_pool(service, name, settings={'size': str(replicas)})
64
65
66 def delete_pool(service, name):

Subscribers

People subscribed via source and target branches