api3/config/datastore.rs: implement delete
This commit is contained in:
parent
1a7bc3dd5e
commit
34d3ba52eb
|
@ -30,7 +30,6 @@ pub fn post() -> ApiMethod {
|
|||
}
|
||||
|
||||
fn create_datastore(param: Value, _info: &ApiMethod) -> Result<Value, Error> {
|
||||
println!("This is a test {}", param);
|
||||
|
||||
// fixme: locking ?
|
||||
|
||||
|
@ -53,11 +52,39 @@ fn create_datastore(param: Value, _info: &ApiMethod) -> Result<Value, Error> {
|
|||
Ok(Value::Null)
|
||||
}
|
||||
|
||||
pub fn delete() -> ApiMethod {
|
||||
ApiMethod::new(
|
||||
delete_datastore,
|
||||
ObjectSchema::new("Remove a datastore configuration.")
|
||||
.required("name", StringSchema::new("Datastore name.")))
|
||||
}
|
||||
|
||||
fn delete_datastore(param: Value, _info: &ApiMethod) -> Result<Value, Error> {
|
||||
println!("This is a test {}", param);
|
||||
|
||||
// fixme: locking ?
|
||||
// fixme: check digest ?
|
||||
|
||||
let mut config = datastore::config()?;
|
||||
|
||||
let name = param["name"].as_str().unwrap();
|
||||
|
||||
match config.sections.get(name) {
|
||||
Some(_) => { config.sections.remove(name); },
|
||||
None => bail!("datastore '{}' does not exist.", name),
|
||||
}
|
||||
|
||||
datastore::save_config(&config)?;
|
||||
|
||||
Ok(Value::Null)
|
||||
}
|
||||
|
||||
pub fn router() -> Router {
|
||||
|
||||
let route = Router::new()
|
||||
.get(get())
|
||||
.post(post());
|
||||
.post(post())
|
||||
.delete(delete());
|
||||
|
||||
|
||||
route
|
||||
|
|
|
@ -72,6 +72,12 @@ fn main() {
|
|||
fixed_param: vec![],
|
||||
});
|
||||
|
||||
cmd_def.insert("remove".to_owned(), CliCommand {
|
||||
info: api3::config::datastore::delete(),
|
||||
arg_param: vec!["name"],
|
||||
fixed_param: vec![],
|
||||
});
|
||||
|
||||
if let Err(err) = run_cli_command(&cmd_def) {
|
||||
eprintln!("Error: {}", err);
|
||||
print_cli_usage();
|
||||
|
|
Loading…
Reference in New Issue