Fix some bugs when testing opensds ansible
[stor4nfv.git] / src / ceph / src / brag / server / ceph_brag / json.py
1 from pecan.jsonify import jsonify
2 from ceph_brag.model import db
3
4 @jsonify.register(db.version_info)
5 def jsonify_version(vi):
6     return dict(
7             version_number=vi.version_number,
8             version_date=str(vi.version_date)
9             )
10
11 @jsonify.register(db.cluster_info)
12 def jsonify_cluster_info(ci):
13     return dict(
14               uuid=ci.uuid,
15               organization=ci.organization,
16               email=ci.contact_email,
17               cluster_name=ci.cluster_name,
18               cluster_creation_date=str(ci.cluster_creation_date),
19               num_versions=ci.num_versions
20               )
21
22 @jsonify.register(db.components_info)
23 def jsonify_components_info(comps):
24     return dict(
25             num_data_bytes=comps.num_data_bytes,
26             num_bytes_total=comps.num_bytes_total,
27             num_osds=comps.num_osds,
28             num_objects=comps.num_objects,
29             num_pgs=comps.num_pgs,
30             num_pools=comps.num_pools,
31             num_mdss=comps.num_mdss,
32             num_mons=comps.num_mons)
33
34 @jsonify.register(db.crush_types)
35 def jsonify_crush_types(crush):
36     return dict(type=crush.crush_type,
37                 count=crush.crush_count)
38
39 @jsonify.register(db.pools_info)
40 def jsonify_pools_info(pool):
41     return dict(size=pool.pool_rep_size,
42                 type=pool.pool_type,
43                 id=pool.pool_id)
44
45 @jsonify.register(db.os_info)
46 def jsonify_os_info(value):
47     return dict(os=value.os,
48                 count=value.count)
49
50 @jsonify.register(db.kernel_versions)
51 def jsonify_kernel_versions(value):
52     return dict(version=value.version,
53                 count=value.count)
54
55 @jsonify.register(db.kernel_types)
56 def jsonify_kernel_types(value):
57     return dict(type=value.type,
58                 count=value.count)
59
60 @jsonify.register(db.distros)
61 def jsonify_distros(value):
62     return dict(distro=value.distro,
63                 count=value.count)
64
65 @jsonify.register(db.cpus)
66 def jsonify_cpus(value):
67     return dict(cpu=value.cpu,
68                 count=value.count)
69
70 @jsonify.register(db.cpu_archs)
71 def jsonify_cpu_archs(value):
72     return dict(arch=value.arch,
73                 count=value.count)
74
75 @jsonify.register(db.ceph_versions)
76 def jsonify_ceph_versions(value):
77     return dict(version=value.version,
78                 count=value.count)
79
80 @jsonify.register(db.sysinfo)
81 def jsonify_sysinfo(value):
82     retval = {}
83
84     if value.os:
85       retval['os_info'] = value.os
86     if value.kern_vers:
87       retval['kernel_versions'] = value.kern_vers
88     if value.kern_types:
89       retval['kernel_types'] = value.kern_types
90     if value.distros:
91       retval['distros'] = value.distros
92     if value.cpus:
93       retval['cpus'] = value.cpus
94     if value.cpu_archs:
95       retval['cpu_archs'] = value.cpu_archs
96     if value.ceph_vers:
97       retval['ceph_versions'] = value.ceph_vers
98
99     return retval
100
101 @jsonify.register(db.brag)
102 def jsonify_brag(b):
103     ownership = {'organization':b.ci.organization,
104                  'description':b.ci.description,
105                  'email':b.ci.contact_email,
106                  'name':b.ci.cluster_name
107                 }
108     return dict(uuid=b.ci.uuid,
109                 cluster_creation_date=str(b.ci.cluster_creation_date),
110                 components_count=b.comps,
111                 crush_types=b.crush,
112                 ownership=ownership,
113                 pool_metadata=b.pools,
114                 sysinfo=b.sysinfo
115                 )