]> git.proxmox.com Git - pve-manager.git/blobdiff - PVE/API2/Ceph.pm
api: ceph: remove deprecrated config and configdb endpoints
[pve-manager.git] / PVE / API2 / Ceph.pm
index 0490f4a2dfa2a3307849bd323dcb0c7f44d63343..1b765b759ebfb9951fa2f5d803ea3c3bf8609ca9 100644 (file)
@@ -18,18 +18,24 @@ use PVE::RPCEnvironment;
 use PVE::Storage;
 use PVE::Tools qw(run_command file_get_contents file_set_contents extract_param);
 
+use PVE::API2::Ceph::Cfg;
 use PVE::API2::Ceph::OSD;
 use PVE::API2::Ceph::FS;
 use PVE::API2::Ceph::MDS;
 use PVE::API2::Ceph::MGR;
 use PVE::API2::Ceph::MON;
-use PVE::API2::Ceph::Pools;
+use PVE::API2::Ceph::Pool;
 use PVE::API2::Storage::Config;
 
 use base qw(PVE::RESTHandler);
 
 my $pve_osd_default_journal_size = 1024*5;
 
+__PACKAGE__->register_method ({
+    subclass => "PVE::API2::Ceph::Cfg",
+    path => 'cfg',
+});
+
 __PACKAGE__->register_method ({
     subclass => "PVE::API2::Ceph::OSD",
     path => 'osd',
@@ -56,8 +62,8 @@ __PACKAGE__->register_method ({
 });
 
 __PACKAGE__->register_method ({
-    subclass => "PVE::API2::Ceph::Pools",
-    path => 'pools',
+    subclass => "PVE::API2::Ceph::Pool",
+    path => 'pool',
 });
 
 __PACKAGE__->register_method ({
@@ -87,96 +93,29 @@ __PACKAGE__->register_method ({
        my ($param) = @_;
 
        my $result = [
+           { name => 'cmd-safety' },
+           { name => 'cfg' },
+           { name => 'config' },
+           { name => 'configdb' },
+           { name => 'crush' },
+           { name => 'fs' },
            { name => 'init' },
+           { name => 'log' },
+           { name => 'mds' },
+           { name => 'mgr' },
            { name => 'mon' },
            { name => 'osd' },
            { name => 'pools' },
-           { name => 'fs' },
-           { name => 'mds' },
-           { name => 'stop' },
-           { name => 'start' },
            { name => 'restart' },
-           { name => 'status' },
-           { name => 'crush' },
-           { name => 'config' },
-           { name => 'log' },
            { name => 'rules' },
+           { name => 'start' },
+           { name => 'status' },
+           { name => 'stop' },
        ];
 
        return $result;
     }});
 
-__PACKAGE__->register_method ({
-    name => 'config',
-    path => 'config',
-    method => 'GET',
-    proxyto => 'node',
-    permissions => {
-       check => ['perm', '/', [ 'Sys.Audit', 'Datastore.Audit' ], any => 1],
-    },
-    description => "Get the Ceph configuration file.",
-    parameters => {
-       additionalProperties => 0,
-       properties => {
-           node => get_standard_option('pve-node'),
-       },
-    },
-    returns => { type => 'string' },
-    code => sub {
-       my ($param) = @_;
-
-       PVE::Ceph::Tools::check_ceph_inited();
-
-       my $path = PVE::Ceph::Tools::get_config('pve_ceph_cfgpath');
-       return file_get_contents($path);
-
-    }});
-
-__PACKAGE__->register_method ({
-    name => 'configdb',
-    path => 'configdb',
-    method => 'GET',
-    proxyto => 'node',
-    protected => 1,
-    permissions => {
-       check => ['perm', '/', [ 'Sys.Audit', 'Datastore.Audit' ], any => 1],
-    },
-    description => "Get the 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;
-    }});
-
-
 __PACKAGE__->register_method ({
     name => 'init',
     path => 'init',
@@ -619,7 +558,12 @@ __PACKAGE__->register_method ({
        type => 'array',
        items => {
            type => "object",
-           properties => {},
+           properties => {
+               name => {
+                   description => "Name of the CRUSH rule.",
+                   type => "string",
+               }
+           },
        },
        links => [ { rel => 'child', href => "{name}" } ],
     },
@@ -649,7 +593,7 @@ __PACKAGE__->register_method ({
     proxyto => 'node',
     protected => 1,
     permissions => {
-       check => ['perm', '/', [ 'Sys.audit' ]],
+       check => ['perm', '/', [ 'Sys.Audit' ]],
     },
     parameters => {
        additionalProperties => 0,