config/remote: add 'name' to Remote struct

and use it as section id, like with User

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
This commit is contained in:
Dominik Csapak 2020-05-22 14:51:40 +02:00 committed by Dietmar Maurer
parent 880fa939d1
commit db0c228719
2 changed files with 9 additions and 5 deletions

View File

@ -88,7 +88,7 @@ pub fn list_remotes(
},
)]
/// Create new remote.
pub fn create_remote(name: String, param: Value) -> Result<(), Error> {
pub fn create_remote(param: Value) -> Result<(), Error> {
let _lock = crate::tools::open_file_locked(remote::REMOTE_CFG_LOCKFILE, std::time::Duration::new(10, 0))?;
@ -96,11 +96,11 @@ pub fn create_remote(name: String, param: Value) -> Result<(), Error> {
let (mut config, _digest) = remote::config()?;
if let Some(_) = config.sections.get(&name) {
bail!("remote '{}' already exists.", name);
if let Some(_) = config.sections.get(&remote.name) {
bail!("remote '{}' already exists.", remote.name);
}
config.set_data(&name, "remote", &remote)?;
config.set_data(&remote.name, "remote", &remote)?;
remote::save_config(&config)?;

View File

@ -29,6 +29,9 @@ pub const REMOTE_PASSWORD_SCHEMA: Schema = StringSchema::new("Password or auth t
#[api(
properties: {
name: {
schema: REMOTE_ID_SCHEMA,
},
comment: {
optional: true,
schema: SINGLE_LINE_COMMENT_SCHEMA,
@ -51,6 +54,7 @@ pub const REMOTE_PASSWORD_SCHEMA: Schema = StringSchema::new("Password or auth t
#[derive(Serialize,Deserialize)]
/// Remote properties.
pub struct Remote {
pub name: String,
#[serde(skip_serializing_if="Option::is_none")]
pub comment: Option<String>,
pub host: String,
@ -66,7 +70,7 @@ fn init() -> SectionConfig {
_ => unreachable!(),
};
let plugin = SectionConfigPlugin::new("remote".to_string(), None, obj_schema);
let plugin = SectionConfigPlugin::new("remote".to_string(), Some("name".to_string()), obj_schema);
let mut config = SectionConfig::new(&REMOTE_ID_SCHEMA);
config.register_plugin(plugin);