tape: use type Uuid instead of String

This commit is contained in:
Dietmar Maurer
2021-01-20 17:53:06 +01:00
parent 2b191385ea
commit f490dda05a
4 changed files with 68 additions and 35 deletions

View File

@ -316,7 +316,7 @@ pub const DATASTORE_SCHEMA: Schema = StringSchema::new("Datastore name.")
.schema();
pub const MEDIA_SET_UUID_SCHEMA: Schema =
StringSchema::new("MediaSet Uuid.")
StringSchema::new("MediaSet Uuid (We use the all-zero Uuid to reseve an empty media for a specific pool).")
.format(&UUID_FORMAT)
.schema();

View File

@ -1,8 +1,13 @@
use ::serde::{Deserialize, Serialize};
use proxmox::api::api;
use proxmox::{
api::api,
tools::Uuid,
};
use super::{
use crate::api2::types::{
MEDIA_UUID_SCHEMA,
MEDIA_SET_UUID_SCHEMA,
MediaStatus,
MediaLocation,
};
@ -15,6 +20,13 @@ use super::{
status: {
type: MediaStatus,
},
uuid: {
schema: MEDIA_UUID_SCHEMA,
},
"media-set-uuid": {
schema: MEDIA_SET_UUID_SCHEMA,
optional: true,
},
},
)]
#[derive(Serialize,Deserialize)]
@ -23,8 +35,7 @@ use super::{
pub struct MediaListEntry {
/// Media label text (or Barcode)
pub label_text: String,
/// Media Uuid
pub uuid: String,
pub uuid: Uuid,
/// Creation time stamp
pub ctime: i64,
pub location: MediaLocation,
@ -36,9 +47,8 @@ pub struct MediaListEntry {
/// Media set name
#[serde(skip_serializing_if="Option::is_none")]
pub media_set_name: Option<String>,
/// Media set uuid
#[serde(skip_serializing_if="Option::is_none")]
pub media_set_uuid: Option<String>,
pub media_set_uuid: Option<Uuid>,
/// Media set seq_nr
#[serde(skip_serializing_if="Option::is_none")]
pub seq_nr: Option<u64>,
@ -50,13 +60,23 @@ pub struct MediaListEntry {
pub pool: Option<String>,
}
#[api()]
#[api(
properties: {
uuid: {
schema: MEDIA_UUID_SCHEMA,
},
"media-set-uuid": {
schema: MEDIA_SET_UUID_SCHEMA,
optional: true,
},
},
)]
#[derive(Serialize,Deserialize)]
#[serde(rename_all = "kebab-case")]
/// Media label info
pub struct MediaIdFlat {
/// Unique ID
pub uuid: String,
pub uuid: Uuid,
/// Media label text (or Barcode)
pub label_text: String,
/// Creation time stamp
@ -65,9 +85,8 @@ pub struct MediaIdFlat {
/// MediaSet Pool
#[serde(skip_serializing_if="Option::is_none")]
pub pool: Option<String>,
/// MediaSet Uuid. We use the all-zero Uuid to reseve an empty media for a specific pool
#[serde(skip_serializing_if="Option::is_none")]
pub media_set_uuid: Option<String>,
pub media_set_uuid: Option<Uuid>,
/// MediaSet media sequence number
#[serde(skip_serializing_if="Option::is_none")]
pub seq_nr: Option<u64>,
@ -79,7 +98,14 @@ pub struct MediaIdFlat {
pub encryption_key_fingerprint: Option<String>,
}
#[api()]
#[api(
properties: {
uuid: {
schema: MEDIA_UUID_SCHEMA,
optional: true,
},
},
)]
#[derive(Serialize,Deserialize)]
#[serde(rename_all = "kebab-case")]
/// Label with optional Uuid
@ -87,10 +113,19 @@ pub struct LabelUuidMap {
/// Changer label text (or Barcode)
pub label_text: String,
/// Associated Uuid (if any)
pub uuid: Option<String>,
pub uuid: Option<Uuid>,
}
#[api()]
#[api(
properties: {
uuid: {
schema: MEDIA_UUID_SCHEMA,
},
"media-set-uuid": {
schema: MEDIA_SET_UUID_SCHEMA,
},
},
)]
#[derive(Serialize,Deserialize)]
#[serde(rename_all = "kebab-case")]
/// Media content list entry
@ -98,11 +133,11 @@ pub struct MediaContentEntry {
/// Media label text (or Barcode)
pub label_text: String,
/// Media Uuid
pub uuid: String,
pub uuid: Uuid,
/// Media set name
pub media_set_name: String,
/// Media set uuid
pub media_set_uuid: String,
pub media_set_uuid: Uuid,
/// Media set seq_nr
pub seq_nr: u64,
/// Media Pool