+++ /dev/null
-package PVE::API2::Storage::Scan;
-
-use strict;
-use warnings;
-
-use PVE::SafeSyslog;
-use PVE::Storage;
-use PVE::Storage::LVMPlugin;
-use HTTP::Status qw(:constants);
-use PVE::JSONSchema qw(get_standard_option);
-
-use PVE::RESTHandler;
-
-use base qw(PVE::RESTHandler);
-
-__PACKAGE__->register_method ({
- name => 'index',
- path => '',
- method => 'GET',
- description => "Index of available scan methods",
- permissions => {
- user => 'all',
- },
- parameters => {
- additionalProperties => 0,
- properties => {
- node => get_standard_option('pve-node'),
- },
- },
- returns => {
- type => 'array',
- items => {
- type => "object",
- properties => { method => { type => 'string'} },
- },
- links => [ { rel => 'child', href => "{method}" } ],
- },
- code => sub {
- my ($param) = @_;
-
- my $res = [
- { method => 'lvm' },
- { method => 'iscsi' },
- { method => 'nfs' },
- { method => 'glusterfs' },
- { method => 'usb' },
- { method => 'zfs' },
- { method => 'cifs' },
- ];
-
- return $res;
- }});
-
-__PACKAGE__->register_method ({
- name => 'usbscan',
- path => 'usb',
- method => 'GET',
- description => "List local USB devices.",
- protected => 1,
- proxyto => "node",
- permissions => {
- check => ['perm', '/', ['Sys.Modify']],
- },
- parameters => {
- additionalProperties => 0,
- properties => {
- node => get_standard_option('pve-node'),
- },
- },
- returns => {
- type => 'array',
- items => {
- type => "object",
- properties => {
- busnum => { type => 'integer'},
- devnum => { type => 'integer'},
- port => { type => 'integer'},
- usbpath => { type => 'string', optional => 1},
- level => { type => 'integer'},
- class => { type => 'integer'},
- vendid => { type => 'string'},
- prodid => { type => 'string'},
- speed => { type => 'string'},
-
- product => { type => 'string', optional => 1 },
- serial => { type => 'string', optional => 1 },
- manufacturer => { type => 'string', optional => 1 },
- },
- },
- },
- code => sub {
- my ($param) = @_;
-
- return PVE::Storage::scan_usb();
- }});
-
-1;