mirror of
https://gitlab.com/fabinfra/fabaccess/bffh.git
synced 2025-06-11 10:53:19 +02:00
prodable machines
This commit is contained in:
@ -6,10 +6,12 @@ use api::general_capnp::optional;
|
||||
use api::machine_capnp::machine::{
|
||||
self, admin, admin::Server as AdminServer, check, check::Server as CheckServer,
|
||||
in_use as inuse, in_use::Server as InUseServer, info, info::Server as InfoServer, manage,
|
||||
manage::Server as ManageServer, use_, use_::Server as UseServer, MachineState,
|
||||
manage::Server as ManageServer, use_, use_::Server as UseServer, MachineState, prodable::Server as ProdableServer,
|
||||
};
|
||||
use capnp::capability::Promise;
|
||||
use capnp::Error;
|
||||
use capnp_rpc::pry;
|
||||
use api::machine_capnp::machine::prodable::{ProdWithDataParams, ProdWithDataResults};
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct Machine {
|
||||
@ -67,6 +69,9 @@ impl Machine {
|
||||
ArchivedStatus::InUse(owner) => {
|
||||
if owner == &user {
|
||||
builder.set_inuse(capnp_rpc::new_client(self.clone()));
|
||||
if self.resource.get_description().prodable {
|
||||
builder.set_prodable(capnp_rpc::new_client(self.clone()));
|
||||
}
|
||||
}
|
||||
MachineState::InUse
|
||||
}
|
||||
@ -182,6 +187,14 @@ impl InUseServer for Machine {
|
||||
}
|
||||
}
|
||||
|
||||
impl ProdableServer for Machine {
|
||||
fn prod_with_data(&mut self, mut params: ProdWithDataParams, _: ProdWithDataResults) -> Promise<(), Error> {
|
||||
let data: Vec<u8> = pry!(pry!(params.get()).get_data()).to_vec();
|
||||
self.resource.send_raw(data);
|
||||
Promise::ok(())
|
||||
}
|
||||
}
|
||||
|
||||
impl CheckServer for Machine {
|
||||
fn check(
|
||||
&mut self,
|
||||
|
Reference in New Issue
Block a user