mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2024-10-01 02:55:45 +00:00
api: http: handle cpu according to openapi
openapi definition defines an object for cpus not an integer Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
This commit is contained in:
parent
205b8c1cd5
commit
78e2f7a99a
@ -346,7 +346,7 @@ fn main() {
|
|||||||
"Cloud Hypervisor Guest\n\tAPI server: {}\n\tvCPUs: {}\n\tMemory: {} MB\
|
"Cloud Hypervisor Guest\n\tAPI server: {}\n\tvCPUs: {}\n\tMemory: {} MB\
|
||||||
\n\tKernel: {:?}\n\tKernel cmdline: {}\n\tDisk(s): {:?}",
|
\n\tKernel: {:?}\n\tKernel cmdline: {}\n\tDisk(s): {:?}",
|
||||||
api_socket_path,
|
api_socket_path,
|
||||||
u8::from(&vm_config.cpus),
|
vm_config.cpus.cpu_count,
|
||||||
vm_config.memory.size >> 20,
|
vm_config.memory.size >> 20,
|
||||||
vm_config.kernel,
|
vm_config.kernel,
|
||||||
vm_config.cmdline.args.as_str(),
|
vm_config.cmdline.args.as_str(),
|
||||||
@ -901,7 +901,7 @@ mod tests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn api_create_body(&self, cpu_count: u8) -> String {
|
fn api_create_body(&self, cpu_count: u8) -> String {
|
||||||
format! {"{{\"cpus\":{},\"kernel\":{{\"path\":\"{}\"}},\"cmdline\":{{\"args\": \"\"}},\"net\":[{{\"ip\":\"{}\", \"mask\":\"255.255.255.0\", \"mac\":\"{}\"}}], \"disks\":[{{\"path\":\"{}\"}}, {{\"path\":\"{}\"}}]}}",
|
format! {"{{\"cpus\":{{\"cpu_count\":{}}},\"kernel\":{{\"path\":\"{}\"}},\"cmdline\":{{\"args\": \"\"}},\"net\":[{{\"ip\":\"{}\", \"mask\":\"255.255.255.0\", \"mac\":\"{}\"}}], \"disks\":[{{\"path\":\"{}\"}}, {{\"path\":\"{}\"}}]}}",
|
||||||
cpu_count,
|
cpu_count,
|
||||||
self.fw_path.as_str(),
|
self.fw_path.as_str(),
|
||||||
self.network.host_ip,
|
self.network.host_ip,
|
||||||
|
@ -131,25 +131,23 @@ fn parse_iommu(iommu: &str) -> Result<bool> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Debug, Deserialize, Serialize)]
|
#[derive(Clone, Debug, Deserialize, Serialize)]
|
||||||
pub struct CpusConfig(pub u8);
|
pub struct CpusConfig {
|
||||||
|
pub cpu_count: u8,
|
||||||
|
}
|
||||||
|
|
||||||
impl CpusConfig {
|
impl CpusConfig {
|
||||||
pub fn parse(cpus: &str) -> Result<Self> {
|
pub fn parse(cpus: &str) -> Result<Self> {
|
||||||
Ok(CpusConfig(
|
Ok(CpusConfig {
|
||||||
cpus.parse::<u8>().map_err(Error::ParseCpusParams)?,
|
cpu_count: cpus.parse().map_err(Error::ParseCpusParams)?,
|
||||||
))
|
})
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl From<&CpusConfig> for u8 {
|
|
||||||
fn from(val: &CpusConfig) -> Self {
|
|
||||||
val.0
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Default for CpusConfig {
|
impl Default for CpusConfig {
|
||||||
fn default() -> Self {
|
fn default() -> Self {
|
||||||
CpusConfig(DEFAULT_VCPUS)
|
CpusConfig {
|
||||||
|
cpu_count: DEFAULT_VCPUS,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -711,7 +711,7 @@ impl Vm {
|
|||||||
.map_err(Error::DeviceManager)?;
|
.map_err(Error::DeviceManager)?;
|
||||||
|
|
||||||
let on_tty = unsafe { libc::isatty(libc::STDIN_FILENO as i32) } != 0;
|
let on_tty = unsafe { libc::isatty(libc::STDIN_FILENO as i32) } != 0;
|
||||||
let threads = Vec::with_capacity(u8::from(&config.cpus) as usize + 1);
|
let threads = Vec::with_capacity(config.cpus.cpu_count as usize + 1);
|
||||||
|
|
||||||
Ok(Vm {
|
Ok(Vm {
|
||||||
fd,
|
fd,
|
||||||
@ -767,7 +767,7 @@ impl Vm {
|
|||||||
&cmdline_cstring,
|
&cmdline_cstring,
|
||||||
)
|
)
|
||||||
.map_err(|_| Error::CmdLine)?;
|
.map_err(|_| Error::CmdLine)?;
|
||||||
let vcpu_count = u8::from(&self.config.cpus);
|
let vcpu_count = self.config.cpus.cpu_count;
|
||||||
let end_of_range = GuestAddress((1 << get_host_cpu_phys_bits()) - 1);
|
let end_of_range = GuestAddress((1 << get_host_cpu_phys_bits()) - 1);
|
||||||
match entry_addr.setup_header {
|
match entry_addr.setup_header {
|
||||||
Some(hdr) => {
|
Some(hdr) => {
|
||||||
@ -918,7 +918,7 @@ impl Vm {
|
|||||||
current_state.valid_transition(new_state)?;
|
current_state.valid_transition(new_state)?;
|
||||||
|
|
||||||
let entry_addr = self.load_kernel()?;
|
let entry_addr = self.load_kernel()?;
|
||||||
let vcpu_count = u8::from(&self.config.cpus);
|
let vcpu_count = self.config.cpus.cpu_count;
|
||||||
let vcpu_thread_barrier = Arc::new(Barrier::new((vcpu_count + 1) as usize));
|
let vcpu_thread_barrier = Arc::new(Barrier::new((vcpu_count + 1) as usize));
|
||||||
|
|
||||||
for cpu_id in 0..vcpu_count {
|
for cpu_id in 0..vcpu_count {
|
||||||
|
Loading…
Reference in New Issue
Block a user