api2/tape/changer: add changer filter to list_drives api call
so that an api user can get the drives belonging to a changer without having to parse the config listing themselves Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
This commit is contained in:
parent
87f4be7998
commit
18262a88c9
@ -11,9 +11,9 @@ use crate::{
|
|||||||
api2::types::{
|
api2::types::{
|
||||||
CHANGER_NAME_SCHEMA,
|
CHANGER_NAME_SCHEMA,
|
||||||
DriveListEntry,
|
DriveListEntry,
|
||||||
ScsiTapeChanger,
|
|
||||||
MtxStatusEntry,
|
|
||||||
MtxEntryKind,
|
MtxEntryKind,
|
||||||
|
MtxStatusEntry,
|
||||||
|
ScsiTapeChanger,
|
||||||
},
|
},
|
||||||
tape::{
|
tape::{
|
||||||
TAPE_STATUS_DIR,
|
TAPE_STATUS_DIR,
|
||||||
|
@ -27,6 +27,7 @@ use crate::{
|
|||||||
api2::{
|
api2::{
|
||||||
types::{
|
types::{
|
||||||
UPID_SCHEMA,
|
UPID_SCHEMA,
|
||||||
|
CHANGER_NAME_SCHEMA,
|
||||||
DRIVE_NAME_SCHEMA,
|
DRIVE_NAME_SCHEMA,
|
||||||
MEDIA_LABEL_SCHEMA,
|
MEDIA_LABEL_SCHEMA,
|
||||||
MEDIA_POOL_NAME_SCHEMA,
|
MEDIA_POOL_NAME_SCHEMA,
|
||||||
@ -1100,7 +1101,12 @@ pub fn catalog_media(
|
|||||||
|
|
||||||
#[api(
|
#[api(
|
||||||
input: {
|
input: {
|
||||||
properties: {},
|
properties: {
|
||||||
|
changer: {
|
||||||
|
schema: CHANGER_NAME_SCHEMA,
|
||||||
|
optional: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
returns: {
|
returns: {
|
||||||
description: "The list of configured drives with model information.",
|
description: "The list of configured drives with model information.",
|
||||||
@ -1112,6 +1118,7 @@ pub fn catalog_media(
|
|||||||
)]
|
)]
|
||||||
/// List drives
|
/// List drives
|
||||||
pub fn list_drives(
|
pub fn list_drives(
|
||||||
|
changer: Option<String>,
|
||||||
_param: Value,
|
_param: Value,
|
||||||
) -> Result<Vec<DriveListEntry>, Error> {
|
) -> Result<Vec<DriveListEntry>, Error> {
|
||||||
|
|
||||||
@ -1124,6 +1131,10 @@ pub fn list_drives(
|
|||||||
let mut list = Vec::new();
|
let mut list = Vec::new();
|
||||||
|
|
||||||
for drive in drive_list {
|
for drive in drive_list {
|
||||||
|
if changer.is_some() && drive.changer != changer {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
let mut entry = DriveListEntry {
|
let mut entry = DriveListEntry {
|
||||||
name: drive.name,
|
name: drive.name,
|
||||||
path: drive.path.clone(),
|
path: drive.path.clone(),
|
||||||
|
Loading…
Reference in New Issue
Block a user