client/remote: allow using ApiToken + secret
in place of user + password. Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
This commit is contained in:
		
				
					committed by
					
						 Wolfgang Bumiller
						Wolfgang Bumiller
					
				
			
			
				
	
			
			
			
						parent
						
							babab85b56
						
					
				
				
					commit
					34aa8e13b6
				
			| @ -193,7 +193,7 @@ pub fn complete_repository(_arg: &str, _param: &HashMap<String, String>) -> Vec< | ||||
|     result | ||||
| } | ||||
|  | ||||
| fn connect(server: &str, port: u16, userid: &Userid) -> Result<HttpClient, Error> { | ||||
| fn connect(server: &str, port: u16, auth_id: &Authid) -> Result<HttpClient, Error> { | ||||
|  | ||||
|     let fingerprint = std::env::var(ENV_VAR_PBS_FINGERPRINT).ok(); | ||||
|  | ||||
| @ -212,7 +212,7 @@ fn connect(server: &str, port: u16, userid: &Userid) -> Result<HttpClient, Error | ||||
|         .fingerprint_cache(true) | ||||
|         .ticket_cache(true); | ||||
|  | ||||
|     HttpClient::new(server, port, userid, options) | ||||
|     HttpClient::new(server, port, auth_id, options) | ||||
| } | ||||
|  | ||||
| async fn view_task_result( | ||||
| @ -366,7 +366,7 @@ async fn list_backup_groups(param: Value) -> Result<Value, Error> { | ||||
|  | ||||
|     let repo = extract_repository_from_value(¶m)?; | ||||
|  | ||||
|     let client = connect(repo.host(), repo.port(), repo.user())?; | ||||
|     let client = connect(repo.host(), repo.port(), repo.auth_id())?; | ||||
|  | ||||
|     let path = format!("api2/json/admin/datastore/{}/groups", repo.store()); | ||||
|  | ||||
| @ -435,7 +435,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.host(), repo.port(), repo.user())?; | ||||
|     let mut client = connect(repo.host(), repo.port(), repo.auth_id())?; | ||||
|  | ||||
|     param.as_object_mut().unwrap().remove("repository"); | ||||
|  | ||||
| @ -478,7 +478,7 @@ async fn list_snapshots(param: Value) -> Result<Value, Error> { | ||||
|  | ||||
|     let output_format = get_output_format(¶m); | ||||
|  | ||||
|     let client = connect(repo.host(), repo.port(), repo.user())?; | ||||
|     let client = connect(repo.host(), repo.port(), repo.auth_id())?; | ||||
|  | ||||
|     let group: Option<BackupGroup> = if let Some(path) = param["group"].as_str() { | ||||
|         Some(path.parse()?) | ||||
| @ -543,7 +543,7 @@ async fn forget_snapshots(param: Value) -> Result<Value, Error> { | ||||
|     let path = tools::required_string_param(¶m, "snapshot")?; | ||||
|     let snapshot: BackupDir = path.parse()?; | ||||
|  | ||||
|     let mut client = connect(repo.host(), repo.port(), repo.user())?; | ||||
|     let mut client = connect(repo.host(), repo.port(), repo.auth_id())?; | ||||
|  | ||||
|     let path = format!("api2/json/admin/datastore/{}/snapshots", repo.store()); | ||||
|  | ||||
| @ -573,7 +573,7 @@ async fn api_login(param: Value) -> Result<Value, Error> { | ||||
|  | ||||
|     let repo = extract_repository_from_value(¶m)?; | ||||
|  | ||||
|     let client = connect(repo.host(), repo.port(), repo.user())?; | ||||
|     let client = connect(repo.host(), repo.port(), repo.auth_id())?; | ||||
|     client.login().await?; | ||||
|  | ||||
|     record_repository(&repo); | ||||
| @ -630,7 +630,7 @@ async fn api_version(param: Value) -> Result<(), Error> { | ||||
|  | ||||
|     let repo = extract_repository_from_value(¶m); | ||||
|     if let Ok(repo) = repo { | ||||
|         let client = connect(repo.host(), repo.port(), repo.user())?; | ||||
|         let client = connect(repo.host(), repo.port(), repo.auth_id())?; | ||||
|  | ||||
|         match client.get("api2/json/version", None).await { | ||||
|             Ok(mut result) => version_info["server"] = result["data"].take(), | ||||
| @ -680,7 +680,7 @@ async fn list_snapshot_files(param: Value) -> Result<Value, Error> { | ||||
|  | ||||
|     let output_format = get_output_format(¶m); | ||||
|  | ||||
|     let client = connect(repo.host(), repo.port(), repo.user())?; | ||||
|     let client = connect(repo.host(), repo.port(), repo.auth_id())?; | ||||
|  | ||||
|     let path = format!("api2/json/admin/datastore/{}/files", repo.store()); | ||||
|  | ||||
| @ -724,7 +724,7 @@ async fn start_garbage_collection(param: Value) -> Result<Value, Error> { | ||||
|  | ||||
|     let output_format = get_output_format(¶m); | ||||
|  | ||||
|     let mut client = connect(repo.host(), repo.port(), repo.user())?; | ||||
|     let mut client = connect(repo.host(), repo.port(), repo.auth_id())?; | ||||
|  | ||||
|     let path = format!("api2/json/admin/datastore/{}/gc", repo.store()); | ||||
|  | ||||
| @ -1036,7 +1036,7 @@ async fn create_backup( | ||||
|  | ||||
|     let backup_time = backup_time_opt.unwrap_or_else(|| epoch_i64()); | ||||
|  | ||||
|     let client = connect(repo.host(), repo.port(), repo.user())?; | ||||
|     let client = connect(repo.host(), repo.port(), repo.auth_id())?; | ||||
|     record_repository(&repo); | ||||
|  | ||||
|     println!("Starting backup: {}/{}/{}", backup_type, backup_id, BackupDir::backup_time_to_string(backup_time)?); | ||||
| @ -1339,7 +1339,7 @@ async fn restore(param: Value) -> Result<Value, Error> { | ||||
|  | ||||
|     let archive_name = tools::required_string_param(¶m, "archive-name")?; | ||||
|  | ||||
|     let client = connect(repo.host(), repo.port(), repo.user())?; | ||||
|     let client = connect(repo.host(), repo.port(), repo.auth_id())?; | ||||
|  | ||||
|     record_repository(&repo); | ||||
|  | ||||
| @ -1512,7 +1512,7 @@ async fn upload_log(param: Value) -> Result<Value, Error> { | ||||
|     let snapshot = tools::required_string_param(¶m, "snapshot")?; | ||||
|     let snapshot: BackupDir = snapshot.parse()?; | ||||
|  | ||||
|     let mut client = connect(repo.host(), repo.port(), repo.user())?; | ||||
|     let mut client = connect(repo.host(), repo.port(), repo.auth_id())?; | ||||
|  | ||||
|     let (keydata, crypt_mode) = keyfile_parameters(¶m)?; | ||||
|  | ||||
| @ -1583,7 +1583,7 @@ fn prune<'a>( | ||||
| async fn prune_async(mut param: Value) -> Result<Value, Error> { | ||||
|     let repo = extract_repository_from_value(¶m)?; | ||||
|  | ||||
|     let mut client = connect(repo.host(), repo.port(), repo.user())?; | ||||
|     let mut client = connect(repo.host(), repo.port(), repo.auth_id())?; | ||||
|  | ||||
|     let path = format!("api2/json/admin/datastore/{}/prune", repo.store()); | ||||
|  | ||||
| @ -1669,7 +1669,7 @@ async fn status(param: Value) -> Result<Value, Error> { | ||||
|  | ||||
|     let output_format = get_output_format(¶m); | ||||
|  | ||||
|     let client = connect(repo.host(), repo.port(), repo.user())?; | ||||
|     let client = connect(repo.host(), repo.port(), repo.auth_id())?; | ||||
|  | ||||
|     let path = format!("api2/json/admin/datastore/{}/status", repo.store()); | ||||
|  | ||||
| @ -1714,7 +1714,7 @@ async fn try_get(repo: &BackupRepository, url: &str) -> Value { | ||||
|         .fingerprint_cache(true) | ||||
|         .ticket_cache(true); | ||||
|  | ||||
|     let client = match HttpClient::new(repo.host(), repo.port(), repo.user(), options) { | ||||
|     let client = match HttpClient::new(repo.host(), repo.port(), repo.auth_id(), options) { | ||||
|         Ok(v) => v, | ||||
|         _ => return Value::Null, | ||||
|     }; | ||||
|  | ||||
		Reference in New Issue
	
	Block a user