proxmox-backup/src/api2.rs

57 lines
1.6 KiB
Rust
Raw Normal View History

2019-01-30 17:25:37 +00:00
//use failure::*;
2019-01-22 12:56:27 +00:00
2019-02-17 09:16:33 +00:00
use crate::api_schema::*;
2019-02-17 08:59:20 +00:00
use crate::api_schema::router::*;
2019-01-30 17:25:37 +00:00
use serde_json::{json};
2019-01-25 09:15:32 +00:00
use std::sync::Arc;
2019-01-22 12:56:27 +00:00
pub mod config;
pub mod admin;
pub mod node;
2019-01-22 12:56:27 +00:00
mod version;
mod subscription;
2019-01-30 14:14:20 +00:00
mod access;
2019-01-22 12:56:27 +00:00
2019-01-25 09:15:32 +00:00
use lazy_static::lazy_static;
use crate::tools::common_regex;
// common schema definitions
lazy_static! {
pub static ref IP_FORMAT: Arc<ApiStringFormat> = ApiStringFormat::Pattern(&common_regex::IP_REGEX).into();
pub static ref PVE_CONFIG_DIGEST_FORMAT: Arc<ApiStringFormat> =
ApiStringFormat::Pattern(&common_regex::SHA256_HEX_REGEX).into();
pub static ref PVE_CONFIG_DIGEST_SCHEMA: Arc<Schema> =
StringSchema::new("Prevent changes if current configuration file has different SHA256 digest. This can be used to prevent concurrent modifications.")
.format(PVE_CONFIG_DIGEST_FORMAT.clone()).into();
2019-01-25 09:15:32 +00:00
}
2019-01-22 12:56:27 +00:00
pub fn router() -> Router {
let nodes = Router::new()
.subdir("localhost", node::router());
2019-01-22 12:56:27 +00:00
let route = Router::new()
.get(ApiMethod::new(
|_,_,_| Ok(json!([
2019-01-30 14:14:20 +00:00
{"subdir": "access"},
2019-01-22 12:56:27 +00:00
{"subdir": "admin"},
2019-01-30 14:14:20 +00:00
{"subdir": "config"},
2019-01-22 12:56:27 +00:00
{"subdir": "nodes"},
{"subdir": "subscription"},
{"subdir": "version"},
])),
ObjectSchema::new("Directory index.")))
2019-01-30 14:14:20 +00:00
.subdir("access", access::router())
2019-01-22 12:56:27 +00:00
.subdir("admin", admin::router())
.subdir("config", config::router())
.subdir("nodes", nodes)
.subdir("subscription", subscription::router())
.subdir("version", version::router());
route
}