Project

General

Profile

Add CRUSH management to calamari API » History » Version 1

Jessica Mack, 06/22/2015 06:21 AM

1 1 Jessica Mack
h1. Add CRUSH management to calamari API
2
3
h3. Summary
4
5
Add CRUSH management to calamari API
6
7
h3. Owners
8
9
* Gregory Meno (redhat)
10
* John Spray (redhat)
11
* Name
12
13
h3. Interested Parties
14
15
* Name (Affiliation)
16
* Name (Affiliation)
17
* Name
18
19
h3. Current Status
20
21
Already implemented in ceph
22
23
h3. Detailed Description
24
25
Blueprint recommendations
26
27
p(. * Nodes and rules get CRUD - query filtering (depth, children_of)
28
29
Communications:
30
Rules:
31
/api/v2/cluster/<FSID>/crush_rule_set
32
GET     -> CrushRuleSetViewSet.list(request, fsid)
33
POST    -> CrushRuleSetViewSet.update(request, fsid)
34
/api/v2/cluster/<FSID>/crush_rule/<rule_id>
35
GET     -> CrushRuleViewSet.retreive(request, fsid, rule_id) 
36
POST    -> CrushRuleViewSet.create(request, fsid, rule_id)
37
PATCH   -> CrushRuleViewSet.update(request, fsid, rule_id)
38
DELETE  -> CrushRuleViewSet.destroy(request, fsid, rule_id)
39
40
Nodes:
41
/api/vs/cluster/<FSID>/crush_node
42
GET     -> CrushNodeViewSet.list(request, fsid)
43
POST    -> CrushNodeViewSet.create(request, fsid)
44
/api/vs/cluster/<FSID>/crush_node/<node_id>?depth&children_of
45
GET     -> CrushNodeViewSet.retreive(request, fsid, depth=None, children_of=False)
46
PATCH   -> CrushNodeViewSet.update(request, fsid)
47
DELETE  -> CrushNodeViewSet.destroy(request, fsid)
48
/api/vs/cluster/<FSID>/crush_map
49
GET     -> CrushMapViewSet.retreive(request, fsid)
50
POST    -> CrushMapViewSet.replace(request, fsid) #is POST the right verb for this?
51
52
p(. * resolve an (OSD, host) to crush node, decorate the OSD, host details with that
53
54
/api/v2/cluster/<FSID>/osd
55
GET     -> OsdViewSet.list(request, fsid)
56
/api/v2/cluster/<FSID>/osd/<osd_id>
57
GET     -> OsdViewSet.retrieve(request, fsid, osd_id)
58
/api/v2/cluster/<FSID>/server
59
GET     -> ServerClusterViewSet.list(request, fsid)
60
/api/v2/cluster/<FSID>/server/<FQDN>
61
GET     -> ServerClusterViewSet.retreive(request, fsid, fqdn)
62
63
p(. * override 'crush location' in the ceph config so that modifications to OSD position in the CRUSH map stick
64
65
h3. Work items
66
67
h4. Coding tasks
68
69
# Task 1
70
# Task 2
71
# Task 3
72
73
h4. Build / release tasks
74
75
# Task 1
76
# Task 2
77
# Task 3
78
79
h4. Documentation tasks
80
81
# Task 1
82
# Task 2
83
# Task 3
84
85
h4. Deprecation tasks
86
87
# Task 1
88
# Task 2
89
# Task 3