use std::env;
use containerd_shim::{publisher::RemotePublisher, Context};
use containerd_shim_protos::events::task::TaskOOM;
#[cfg(not(feature = "async"))]
fn main() {
let args: Vec<String> = env::args().collect();
let address = args
.get(1)
.ok_or("First argument must be containerd's TTRPC address to publish events")
.unwrap();
println!("Connecting: {}", &address);
let publisher = RemotePublisher::new(address).expect("Connect failed");
let mut event = TaskOOM::new();
event.set_container_id("123".into());
let ctx = Context::default();
println!("Sending event");
publisher
.publish(ctx, "/tasks/oom", "default", Box::new(event))
.expect("Publish failed");
println!("Done");
}
#[cfg(feature = "async")]
#[tokio::main]
async fn main() {
let args: Vec<String> = env::args().collect();
let address = args
.get(1)
.ok_or("First argument must be containerd's TTRPC address to publish events")
.unwrap();
println!("Connecting: {}", &address);
let publisher = RemotePublisher::new(address).await.expect("Connect failed");
let mut event = TaskOOM::new();
event.set_container_id("123".into());
let ctx = Context::default();
println!("Sending event");
publisher
.publish(ctx, "/tasks/oom", "default", Box::new(event))
.await
.expect("Publish failed");
println!("Done");
}