Tait Hoyem 2 years ago
parent 8d4bf401ca
commit 6ec62dc50f

@ -17,12 +17,14 @@ use crate::{
EmailUserListResponse,
EmailUserAddResponse,
EmailUserRemoveResponse,
EmailUserSetPasswordResponse,
MonitorCheckListResponse,
MonitorCheckTypesResponse,
MonitorContactListResponse,
VmStartResponse,
VmStopResponse,
VmRebootResponse,
VmIpListResponse,
},
types::{
LNError,
@ -35,9 +37,11 @@ use parse_display_derive::Display;
use ureq::post;
use serde::{
Serialize,
Serializer,
Deserialize,
de::DeserializeOwned,
};
use serde_with::serde_as;
use hmac::Hmac;
use sha2::Sha512;
@ -65,6 +69,7 @@ pub enum EmailUserSubArgs {
List(EmailUserListRequest),
Add(EmailUserAddRequest),
Remove(EmailUserRemoveRequest),
SetPassword(EmailUserSetPasswordRequest),
}
#[derive(Serialize, Deserialize, Debug, clap::Subcommand)]
@ -95,6 +100,12 @@ pub enum RecordSubArgs {
List(RecordListRequest),
}
#[derive(Serialize, Deserialize, Debug, clap::Subcommand)]
#[serde(untagged)]
pub enum VmIpSubArgs {
List(VmIpListRequest),
}
#[derive(Serialize, Deserialize, Debug, clap::Subcommand)]
#[serde(untagged)]
pub enum VmSubArgs {
@ -106,6 +117,9 @@ pub enum VmSubArgs {
Stop(VmStopRequest),
/// Turn on a VM, given an ID.
Start(VmStartRequest),
/// IP subcommands
#[clap(subcommand)]
Ip(VmIpSubArgs),
}
#[derive(Serialize, Deserialize, Debug, clap::Subcommand)]
#[serde(untagged)]
@ -225,6 +239,7 @@ impl Args {
Self::Vm(VmSubArgs::List(vm_list)) => print_req(vm_list)?,
Self::Vm(VmSubArgs::Start(vm_to_start)) => print_req(vm_to_start)?,
Self::Vm(VmSubArgs::Stop(vm_to_stop)) => print_req(vm_to_stop)?,
Self::Vm(VmSubArgs::Ip(VmIpSubArgs::List(vm_ips))) => print_req(vm_ips)?,
Self::Vm(VmSubArgs::Reboot(vm_to_reboot)) => print_req(vm_to_reboot)?,
Self::Volume(VolumeSubArgs::List(vol_list)) => print_req(vol_list)?,
Self::Image(ImageSubArgs::List(image_list)) => print_req(image_list)?,
@ -238,6 +253,7 @@ impl Args {
Self::Email(EmailSubArgs::User(EmailUserSubArgs::List(email_user_list))) => print_req(email_user_list)?,
Self::Email(EmailSubArgs::User(EmailUserSubArgs::Add(email_add_user_req))) => print_req(email_add_user_req)?,
Self::Email(EmailSubArgs::User(EmailUserSubArgs::Remove(email_del_req))) => print_req(email_del_req)?,
Self::Email(EmailSubArgs::User(EmailUserSubArgs::SetPassword(email_user_set_password))) => print_req(email_user_set_password)?,
}
Ok(())
}
@ -337,3 +353,15 @@ pub struct EmailUserRemoveRequest {
domain_id: i32,
user_id: i32,
}
#[lunanode_request(response="EmailUserSetPasswordResponse", endpoint="email/user-set-password/")]
pub struct EmailUserSetPasswordRequest {
domain_id: i32,
user_id: i32,
password: String,
}
#[lunanode_request(response="VmIpListResponse", endpoint="vm/iplist/")]
pub struct VmIpListRequest {
vm_id: String,
}

@ -618,3 +618,25 @@ pub struct EmailUserAddResponse {}
#[lunanode_response]
pub struct EmailUserRemoveResponse {}
#[lunanode_response]
pub struct EmailUserSetPasswordResponse {}
#[serde_as]
#[derive(Serialize, Deserialize, Debug)]
pub struct VmIp {
floating: std::net::Ipv4Addr,
/// A network UUID
network: String,
#[serde_as(as="DisplayFromStr")]
network_id: i32,
/// Port UUID? What is this?
port: String,
/// This is an ip/subnet pair, so it could/should be stricter.
subnet: String,
}
#[lunanode_response]
pub struct VmIpListResponse {
ips: std::collections::HashMap<String, VmIp>,
}

Loading…
Cancel
Save