[pve-devel] [PATCH manager 1/2] ceph: add api call for config database
Dominik Csapak
d.csapak at proxmox.com
Fri Jul 5 09:16:33 CEST 2019
simply returns the database content
Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
---
PVE/API2/Ceph.pm | 44 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 44 insertions(+)
diff --git a/PVE/API2/Ceph.pm b/PVE/API2/Ceph.pm
index a1ae7020..9c7b0dde 100644
--- a/PVE/API2/Ceph.pm
+++ b/PVE/API2/Ceph.pm
@@ -195,6 +195,50 @@ __PACKAGE__->register_method ({
}});
+__PACKAGE__->register_method ({
+ name => 'configdb',
+ path => 'configdb',
+ method => 'GET',
+ proxyto => 'node',
+ protected => 1,
+ permissions => {
+ check => ['perm', '/', [ 'Sys.Audit', 'Datastore.Audit' ], any => 1],
+ },
+ description => "Get Ceph configuration database.",
+ parameters => {
+ additionalProperties => 0,
+ properties => {
+ node => get_standard_option('pve-node'),
+ },
+ },
+ returns => {
+ type => 'array',
+ items => {
+ type => 'object',
+ properties => {
+ section => { type => "string", },
+ name => { type => "string", },
+ value => { type => "string", },
+ level => { type => "string", },
+ 'can_update_at_runtime' => { type => "boolean", },
+ mask => { type => "string" },
+ },
+ },
+ },
+ code => sub {
+ my ($param) = @_;
+
+ PVE::Ceph::Tools::check_ceph_inited();
+
+ my $rados = PVE::RADOS->new();
+ my $res = $rados->mon_command( { prefix => 'config dump', format => 'json' });
+ foreach my $entry (@$res) {
+ $entry->{can_update_at_runtime} = $entry->{can_update_at_runtime}? 1 : 0; # JSON::true/false -> 1/0
+ }
+
+ return $res;
+ }});
+
my $add_storage = sub {
my ($pool, $storeid) = @_;
--
2.20.1
More information about the pve-devel
mailing list