pbs-client: avoid mut self in http_client methods.
It is not necessary, so avoid it. The client can now be used with multiple threads (without using a Mutex). Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
This commit is contained in:
parent
7549114c9f
commit
d4877712f8
@ -587,7 +587,7 @@ impl HttpClient {
|
||||
}
|
||||
|
||||
pub async fn delete(
|
||||
&mut self,
|
||||
&self,
|
||||
path: &str,
|
||||
data: Option<Value>,
|
||||
) -> Result<Value, Error> {
|
||||
@ -596,7 +596,7 @@ impl HttpClient {
|
||||
}
|
||||
|
||||
pub async fn post(
|
||||
&mut self,
|
||||
&self,
|
||||
path: &str,
|
||||
data: Option<Value>,
|
||||
) -> Result<Value, Error> {
|
||||
@ -605,7 +605,7 @@ impl HttpClient {
|
||||
}
|
||||
|
||||
pub async fn put(
|
||||
&mut self,
|
||||
&self,
|
||||
path: &str,
|
||||
data: Option<Value>,
|
||||
) -> Result<Value, Error> {
|
||||
@ -614,7 +614,7 @@ impl HttpClient {
|
||||
}
|
||||
|
||||
pub async fn download(
|
||||
&mut self,
|
||||
&self,
|
||||
path: &str,
|
||||
output: &mut (dyn Write + Send),
|
||||
) -> Result<(), Error> {
|
||||
@ -651,7 +651,7 @@ impl HttpClient {
|
||||
}
|
||||
|
||||
pub async fn upload(
|
||||
&mut self,
|
||||
&self,
|
||||
content_type: &str,
|
||||
body: Body,
|
||||
path: &str,
|
||||
|
@ -18,7 +18,7 @@ use super::HttpClient;
|
||||
/// the user presses CTRL-C. Two interrupts cause an immediate end of
|
||||
/// the loop. The task may still run in that case.
|
||||
pub async fn display_task_log(
|
||||
client: &mut HttpClient,
|
||||
client: &HttpClient,
|
||||
upid_str: &str,
|
||||
strip_date: bool,
|
||||
) -> Result<(), Error> {
|
||||
@ -100,7 +100,7 @@ pub async fn display_task_log(
|
||||
|
||||
/// Display task result (upid), or view task log - depending on output format
|
||||
pub async fn view_task_result(
|
||||
client: &mut HttpClient,
|
||||
client: &HttpClient,
|
||||
result: Value,
|
||||
output_format: &str,
|
||||
) -> Result<(), Error> {
|
||||
|
@ -329,7 +329,7 @@ async fn change_backup_owner(group: String, mut param: Value) -> Result<(), Erro
|
||||
|
||||
let repo = extract_repository_from_value(¶m)?;
|
||||
|
||||
let mut client = connect(&repo)?;
|
||||
let client = connect(&repo)?;
|
||||
|
||||
param.as_object_mut().unwrap().remove("repository");
|
||||
|
||||
@ -464,7 +464,7 @@ async fn start_garbage_collection(param: Value) -> Result<Value, Error> {
|
||||
|
||||
let output_format = get_output_format(¶m);
|
||||
|
||||
let mut client = connect(&repo)?;
|
||||
let client = connect(&repo)?;
|
||||
|
||||
let path = format!("api2/json/admin/datastore/{}/gc", repo.store());
|
||||
|
||||
@ -472,7 +472,7 @@ async fn start_garbage_collection(param: Value) -> Result<Value, Error> {
|
||||
|
||||
record_repository(&repo);
|
||||
|
||||
view_task_result(&mut client, result, &output_format).await?;
|
||||
view_task_result(&client, result, &output_format).await?;
|
||||
|
||||
Ok(Value::Null)
|
||||
}
|
||||
@ -1310,7 +1310,7 @@ async fn prune(
|
||||
) -> Result<Value, Error> {
|
||||
let repo = extract_repository_from_value(¶m)?;
|
||||
|
||||
let mut client = connect(&repo)?;
|
||||
let client = connect(&repo)?;
|
||||
|
||||
let path = format!("api2/json/admin/datastore/{}/prune", repo.store());
|
||||
|
||||
|
@ -171,7 +171,7 @@ async fn forget_snapshots(param: Value) -> Result<Value, Error> {
|
||||
let path = required_string_param(¶m, "snapshot")?;
|
||||
let snapshot: BackupDir = path.parse()?;
|
||||
|
||||
let mut client = connect(&repo)?;
|
||||
let client = connect(&repo)?;
|
||||
|
||||
let path = format!("api2/json/admin/datastore/{}/snapshots", repo.store());
|
||||
|
||||
@ -225,7 +225,7 @@ async fn upload_log(param: Value) -> Result<Value, Error> {
|
||||
let snapshot = required_string_param(¶m, "snapshot")?;
|
||||
let snapshot: BackupDir = snapshot.parse()?;
|
||||
|
||||
let mut client = connect(&repo)?;
|
||||
let client = connect(&repo)?;
|
||||
|
||||
let crypto = crypto_parameters(¶m)?;
|
||||
|
||||
@ -342,7 +342,7 @@ async fn update_notes(param: Value) -> Result<Value, Error> {
|
||||
let notes = required_string_param(¶m, "notes")?;
|
||||
|
||||
let snapshot: BackupDir = path.parse()?;
|
||||
let mut client = connect(&repo)?;
|
||||
let client = connect(&repo)?;
|
||||
|
||||
let path = format!("api2/json/admin/datastore/{}/notes", repo.store());
|
||||
|
||||
@ -438,7 +438,7 @@ async fn update_protection(protected: bool, param: Value) -> Result<(), Error> {
|
||||
let path = required_string_param(¶m, "snapshot")?;
|
||||
|
||||
let snapshot: BackupDir = path.parse()?;
|
||||
let mut client = connect(&repo)?;
|
||||
let client = connect(&repo)?;
|
||||
|
||||
let path = format!("api2/json/admin/datastore/{}/protected", repo.store());
|
||||
|
||||
|
@ -99,9 +99,9 @@ async fn task_log(param: Value) -> Result<Value, Error> {
|
||||
let repo = extract_repository_from_value(¶m)?;
|
||||
let upid = required_string_param(¶m, "upid")?;
|
||||
|
||||
let mut client = connect(&repo)?;
|
||||
let client = connect(&repo)?;
|
||||
|
||||
display_task_log(&mut client, upid, true).await?;
|
||||
display_task_log(&client, upid, true).await?;
|
||||
|
||||
Ok(Value::Null)
|
||||
}
|
||||
@ -125,7 +125,7 @@ async fn task_stop(param: Value) -> Result<Value, Error> {
|
||||
let repo = extract_repository_from_value(¶m)?;
|
||||
let upid_str = required_string_param(¶m, "upid")?;
|
||||
|
||||
let mut client = connect(&repo)?;
|
||||
let client = connect(&repo)?;
|
||||
|
||||
let path = format!("api2/json/nodes/localhost/tasks/{}", percent_encode_component(upid_str));
|
||||
let _ = client.delete(&path, None).await?;
|
||||
|
@ -47,13 +47,13 @@ async fn start_garbage_collection(param: Value) -> Result<Value, Error> {
|
||||
|
||||
let store = required_string_param(¶m, "store")?;
|
||||
|
||||
let mut client = connect_to_localhost()?;
|
||||
let client = connect_to_localhost()?;
|
||||
|
||||
let path = format!("api2/json/admin/datastore/{}/gc", store);
|
||||
|
||||
let result = client.post(&path, None).await?;
|
||||
|
||||
view_task_result(&mut client, result, &output_format).await?;
|
||||
view_task_result(&client, result, &output_format).await?;
|
||||
|
||||
Ok(Value::Null)
|
||||
}
|
||||
@ -178,9 +178,9 @@ async fn task_log(param: Value) -> Result<Value, Error> {
|
||||
|
||||
let upid = required_string_param(¶m, "upid")?;
|
||||
|
||||
let mut client = connect_to_localhost()?;
|
||||
let client = connect_to_localhost()?;
|
||||
|
||||
display_task_log(&mut client, upid, true).await?;
|
||||
display_task_log(&client, upid, true).await?;
|
||||
|
||||
Ok(Value::Null)
|
||||
}
|
||||
@ -199,7 +199,7 @@ async fn task_stop(param: Value) -> Result<Value, Error> {
|
||||
|
||||
let upid_str = required_string_param(¶m, "upid")?;
|
||||
|
||||
let mut client = connect_to_localhost()?;
|
||||
let client = connect_to_localhost()?;
|
||||
|
||||
let path = format!("api2/json/nodes/localhost/tasks/{}", percent_encode_component(upid_str));
|
||||
let _ = client.delete(&path, None).await?;
|
||||
@ -263,7 +263,7 @@ async fn pull_datastore(
|
||||
|
||||
let output_format = get_output_format(¶m);
|
||||
|
||||
let mut client = connect_to_localhost()?;
|
||||
let client = connect_to_localhost()?;
|
||||
|
||||
let mut args = json!({
|
||||
"store": local_store,
|
||||
@ -281,7 +281,7 @@ async fn pull_datastore(
|
||||
|
||||
let result = client.post("api2/json/pull", Some(args)).await?;
|
||||
|
||||
view_task_result(&mut client, result, &output_format).await?;
|
||||
view_task_result(&client, result, &output_format).await?;
|
||||
|
||||
Ok(Value::Null)
|
||||
}
|
||||
@ -315,7 +315,7 @@ async fn verify(
|
||||
|
||||
let output_format = extract_output_format(&mut param);
|
||||
|
||||
let mut client = connect_to_localhost()?;
|
||||
let client = connect_to_localhost()?;
|
||||
|
||||
let args = json!(param);
|
||||
|
||||
@ -323,7 +323,7 @@ async fn verify(
|
||||
|
||||
let result = client.post(&path, Some(args)).await?;
|
||||
|
||||
view_task_result(&mut client, result, &output_format).await?;
|
||||
view_task_result(&client, result, &output_format).await?;
|
||||
|
||||
Ok(Value::Null)
|
||||
}
|
||||
|
@ -146,12 +146,12 @@ async fn format_media(mut param: Value) -> Result<(), Error> {
|
||||
|
||||
let drive = extract_drive_name(&mut param, &config)?;
|
||||
|
||||
let mut client = connect_to_localhost()?;
|
||||
let client = connect_to_localhost()?;
|
||||
|
||||
let path = format!("api2/json/tape/drive/{}/format-media", drive);
|
||||
let result = client.post(&path, Some(param)).await?;
|
||||
|
||||
view_task_result(&mut client, result, &output_format).await?;
|
||||
view_task_result(&client, result, &output_format).await?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
@ -179,12 +179,12 @@ async fn rewind(mut param: Value) -> Result<(), Error> {
|
||||
|
||||
let drive = extract_drive_name(&mut param, &config)?;
|
||||
|
||||
let mut client = connect_to_localhost()?;
|
||||
let client = connect_to_localhost()?;
|
||||
|
||||
let path = format!("api2/json/tape/drive/{}/rewind", drive);
|
||||
let result = client.post(&path, Some(param)).await?;
|
||||
|
||||
view_task_result(&mut client, result, &output_format).await?;
|
||||
view_task_result(&client, result, &output_format).await?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
@ -212,12 +212,12 @@ async fn eject_media(mut param: Value) -> Result<(), Error> {
|
||||
|
||||
let drive = extract_drive_name(&mut param, &config)?;
|
||||
|
||||
let mut client = connect_to_localhost()?;
|
||||
let client = connect_to_localhost()?;
|
||||
|
||||
let path = format!("api2/json/tape/drive/{}/eject-media", drive);
|
||||
let result = client.post(&path, Some(param)).await?;
|
||||
|
||||
view_task_result(&mut client, result, &output_format).await?;
|
||||
view_task_result(&client, result, &output_format).await?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
@ -248,12 +248,12 @@ async fn load_media(mut param: Value) -> Result<(), Error> {
|
||||
|
||||
let drive = extract_drive_name(&mut param, &config)?;
|
||||
|
||||
let mut client = connect_to_localhost()?;
|
||||
let client = connect_to_localhost()?;
|
||||
|
||||
let path = format!("api2/json/tape/drive/{}/load-media", drive);
|
||||
let result = client.post(&path, Some(param)).await?;
|
||||
|
||||
view_task_result(&mut client, result, &output_format).await?;
|
||||
view_task_result(&client, result, &output_format).await?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
@ -278,7 +278,7 @@ async fn export_media(mut param: Value) -> Result<(), Error> {
|
||||
|
||||
let drive = extract_drive_name(&mut param, &config)?;
|
||||
|
||||
let mut client = connect_to_localhost()?;
|
||||
let client = connect_to_localhost()?;
|
||||
|
||||
let path = format!("api2/json/tape/drive/{}/export-media", drive);
|
||||
client.put(&path, Some(param)).await?;
|
||||
@ -308,7 +308,7 @@ async fn load_media_from_slot(mut param: Value) -> Result<(), Error> {
|
||||
|
||||
let drive = extract_drive_name(&mut param, &config)?;
|
||||
|
||||
let mut client = connect_to_localhost()?;
|
||||
let client = connect_to_localhost()?;
|
||||
|
||||
let path = format!("api2/json/tape/drive/{}/load-slot", drive);
|
||||
client.put(&path, Some(param)).await?;
|
||||
@ -345,12 +345,12 @@ async fn unload_media(mut param: Value) -> Result<(), Error> {
|
||||
|
||||
let drive = extract_drive_name(&mut param, &config)?;
|
||||
|
||||
let mut client = connect_to_localhost()?;
|
||||
let client = connect_to_localhost()?;
|
||||
|
||||
let path = format!("api2/json/tape/drive/{}/unload", drive);
|
||||
let result = client.post(&path, Some(param)).await?;
|
||||
|
||||
view_task_result(&mut client, result, &output_format).await?;
|
||||
view_task_result(&client, result, &output_format).await?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
@ -385,12 +385,12 @@ async fn label_media(mut param: Value) -> Result<(), Error> {
|
||||
|
||||
let drive = extract_drive_name(&mut param, &config)?;
|
||||
|
||||
let mut client = connect_to_localhost()?;
|
||||
let client = connect_to_localhost()?;
|
||||
|
||||
let path = format!("api2/json/tape/drive/{}/label-media", drive);
|
||||
let result = client.post(&path, Some(param)).await?;
|
||||
|
||||
view_task_result(&mut client, result, &output_format).await?;
|
||||
view_task_result(&client, result, &output_format).await?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
@ -484,7 +484,7 @@ async fn inventory(
|
||||
|
||||
let do_read = read_labels.unwrap_or(false) || read_all_labels.unwrap_or(false);
|
||||
|
||||
let mut client = connect_to_localhost()?;
|
||||
let client = connect_to_localhost()?;
|
||||
|
||||
let path = format!("api2/json/tape/drive/{}/inventory", drive);
|
||||
|
||||
@ -496,7 +496,7 @@ async fn inventory(
|
||||
}
|
||||
|
||||
let result = client.put(&path, Some(param)).await?; // update inventory
|
||||
view_task_result(&mut client, result, &output_format).await?;
|
||||
view_task_result(&client, result, &output_format).await?;
|
||||
}
|
||||
|
||||
let mut result = client.get(&path, None).await?;
|
||||
@ -541,12 +541,12 @@ async fn barcode_label_media(mut param: Value) -> Result<(), Error> {
|
||||
|
||||
let drive = extract_drive_name(&mut param, &config)?;
|
||||
|
||||
let mut client = connect_to_localhost()?;
|
||||
let client = connect_to_localhost()?;
|
||||
|
||||
let path = format!("api2/json/tape/drive/{}/barcode-label-media", drive);
|
||||
let result = client.post(&path, Some(param)).await?;
|
||||
|
||||
view_task_result(&mut client, result, &output_format).await?;
|
||||
view_task_result(&client, result, &output_format).await?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
@ -819,12 +819,12 @@ async fn clean_drive(mut param: Value) -> Result<(), Error> {
|
||||
|
||||
let drive = extract_drive_name(&mut param, &config)?;
|
||||
|
||||
let mut client = connect_to_localhost()?;
|
||||
let client = connect_to_localhost()?;
|
||||
|
||||
let path = format!("api2/json/tape/drive/{}/clean", drive);
|
||||
let result = client.put(&path, Some(param)).await?;
|
||||
|
||||
view_task_result(&mut client, result, &output_format).await?;
|
||||
view_task_result(&client, result, &output_format).await?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
@ -894,11 +894,11 @@ async fn backup(mut param: Value) -> Result<(), Error> {
|
||||
|
||||
param["drive"] = extract_drive_name(&mut param, &config)?.into();
|
||||
|
||||
let mut client = connect_to_localhost()?;
|
||||
let client = connect_to_localhost()?;
|
||||
|
||||
let result = client.post("api2/json/tape/backup", Some(param)).await?;
|
||||
|
||||
view_task_result(&mut client, result, &output_format).await?;
|
||||
view_task_result(&client, result, &output_format).await?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
@ -949,11 +949,11 @@ async fn restore(mut param: Value) -> Result<(), Error> {
|
||||
|
||||
param["drive"] = extract_drive_name(&mut param, &config)?.into();
|
||||
|
||||
let mut client = connect_to_localhost()?;
|
||||
let client = connect_to_localhost()?;
|
||||
|
||||
let result = client.post("api2/json/tape/restore", Some(param)).await?;
|
||||
|
||||
view_task_result(&mut client, result, &output_format).await?;
|
||||
view_task_result(&client, result, &output_format).await?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
@ -996,12 +996,12 @@ async fn catalog_media(mut param: Value) -> Result<(), Error> {
|
||||
|
||||
let drive = extract_drive_name(&mut param, &config)?;
|
||||
|
||||
let mut client = connect_to_localhost()?;
|
||||
let client = connect_to_localhost()?;
|
||||
|
||||
let path = format!("api2/json/tape/drive/{}/catalog", drive);
|
||||
let result = client.post(&path, Some(param)).await?;
|
||||
|
||||
view_task_result(&mut client, result, &output_format).await?;
|
||||
view_task_result(&client, result, &output_format).await?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
@ -190,7 +190,7 @@ async fn call_api(
|
||||
}
|
||||
|
||||
async fn call_api_http(method: &str, path: &str, params: Option<Value>) -> Result<Value, Error> {
|
||||
let mut client = connect_to_localhost()?;
|
||||
let client = connect_to_localhost()?;
|
||||
|
||||
let path = format!(
|
||||
"api2/json/{}",
|
||||
@ -260,8 +260,8 @@ async fn call_api_and_format_result(
|
||||
if let Some(upid) = result.as_str() {
|
||||
if PROXMOX_UPID_REGEX.is_match(upid) {
|
||||
if use_http_client() {
|
||||
let mut client = connect_to_localhost()?;
|
||||
view_task_result(&mut client, json!({ "data": upid }), &output_format).await?;
|
||||
let client = connect_to_localhost()?;
|
||||
view_task_result(&client, json!({ "data": upid }), &output_format).await?;
|
||||
return Ok(());
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user