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> {
|
fn create_datastore(param: Value, _info: &ApiMethod) -> Result<Value, Error> {
|
||||||
println!("This is a test {}", param);
|
|
||||||
|
|
||||||
// fixme: locking ?
|
// fixme: locking ?
|
||||||
|
|
||||||
|
@ -53,11 +52,39 @@ fn create_datastore(param: Value, _info: &ApiMethod) -> Result<Value, Error> {
|
||||||
Ok(Value::Null)
|
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 {
|
pub fn router() -> Router {
|
||||||
|
|
||||||
let route = Router::new()
|
let route = Router::new()
|
||||||
.get(get())
|
.get(get())
|
||||||
.post(post());
|
.post(post())
|
||||||
|
.delete(delete());
|
||||||
|
|
||||||
|
|
||||||
route
|
route
|
||||||
|
|
|
@ -72,6 +72,12 @@ fn main() {
|
||||||
fixed_param: vec![],
|
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) {
|
if let Err(err) = run_cli_command(&cmd_def) {
|
||||||
eprintln!("Error: {}", err);
|
eprintln!("Error: {}", err);
|
||||||
print_cli_usage();
|
print_cli_usage();
|
||||||
|
|
Loading…
Reference in New Issue