Skip to content
This repository was archived by the owner on Dec 15, 2025. It is now read-only.

Commit fa53489

Browse files
committed
implemented missing fuction in zinit-http
1 parent 8a6acfd commit fa53489

File tree

2 files changed

+66
-2
lines changed

2 files changed

+66
-2
lines changed

src/bin/zinit-http.rs

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -320,6 +320,70 @@ async fn run_http_server(socket: &str, port: u16) -> Result<()> {
320320
})?;
321321
serde_json::Value::Null
322322
},
323+
"service.create" => {
324+
if let Some(name) = params.as_ref().and_then(|p| p.get("name")).and_then(|v| v.as_str()) {
325+
if let Some(content) = params.as_ref().and_then(|p| p.get("content")).and_then(|v| v.as_object()) {
326+
let result = client.create_service(name, content.clone()).await.map_err(|e| {
327+
(
328+
StatusCode::INTERNAL_SERVER_ERROR,
329+
format!("Failed to execute create_service: {}", e),
330+
)
331+
})?;
332+
serde_json::to_value(result).map_err(|e| {
333+
(
334+
StatusCode::INTERNAL_SERVER_ERROR,
335+
format!("Failed to serialize result: {}", e),
336+
)
337+
})?
338+
} else {
339+
return Err((
340+
StatusCode::BAD_REQUEST,
341+
"Missing or invalid 'content' parameter".to_string(),
342+
));
343+
}
344+
} else {
345+
return Err((
346+
StatusCode::BAD_REQUEST,
347+
"Missing or invalid 'name' parameter".to_string(),
348+
));
349+
}
350+
},
351+
"service.delete" => {
352+
if let Some(name) = params.as_ref().and_then(|p| p.get("name")).and_then(|v| v.as_str()) {
353+
let result = client.delete_service(name).await.map_err(|e| {
354+
(
355+
StatusCode::INTERNAL_SERVER_ERROR,
356+
format!("Failed to execute delete_service: {}", e),
357+
)
358+
})?;
359+
serde_json::to_value(result).map_err(|e| {
360+
(
361+
StatusCode::INTERNAL_SERVER_ERROR,
362+
format!("Failed to serialize result: {}", e),
363+
)
364+
})?
365+
} else {
366+
return Err((
367+
StatusCode::BAD_REQUEST,
368+
"Missing or invalid 'name' parameter".to_string(),
369+
));
370+
}
371+
},
372+
"service.get" => {
373+
if let Some(name) = params.as_ref().and_then(|p| p.get("name")).and_then(|v| v.as_str()) {
374+
client.get_service(name).await.map_err(|e| {
375+
(
376+
StatusCode::INTERNAL_SERVER_ERROR,
377+
format!("Failed to execute get_service: {}", e),
378+
)
379+
})?
380+
} else {
381+
return Err((
382+
StatusCode::BAD_REQUEST,
383+
"Missing or invalid 'name' parameter".to_string(),
384+
));
385+
}
386+
},
323387
// Add other methods as needed
324388
_ => {
325389
return Err((

zinit-client/examples/basic_usage.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ async fn main() -> Result<()> {
1616
let client = http_client;
1717

1818
// Service name for our example
19-
let service_name = "test123";
19+
let service_name = "test1234";
2020

2121
// Step 1: List existing services
2222
println!("Listing all services before creating our test service:");
@@ -32,7 +32,7 @@ async fn main() -> Result<()> {
3232

3333
// Create the service configuration
3434
let service_config = json!({
35-
"exec": "echo 'test123 hello'",
35+
"exec": "echo 'hello from test service'",
3636
"oneshot": false,
3737
"log": "stdout"
3838
}).as_object().unwrap().clone();

0 commit comments

Comments
 (0)