WIP: migrate existing functions to new query builder
ci/woodpecker/push/lint Pipeline failed
Details
ci/woodpecker/push/lint Pipeline failed
Details
parent
847a904e8d
commit
54c66f062c
47
containers.v
47
containers.v
|
@ -37,18 +37,11 @@ pub:
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn (mut d DockerConn) container_create(c NewContainer) ?CreatedContainer {
|
pub fn (mut d DockerConn) container_create(c NewContainer) ?CreatedContainer {
|
||||||
d.send_request_with_json(Method.post, '/containers/create', c)?
|
d.post('/containers/create')
|
||||||
head, res := d.read_response()?
|
d.json(c)
|
||||||
|
d.send()?
|
||||||
|
|
||||||
if head.status_code != 201 {
|
return d.read_json_response<CreatedContainer>()
|
||||||
data := json.decode(DockerError, res)?
|
|
||||||
|
|
||||||
return error(data.message)
|
|
||||||
}
|
|
||||||
|
|
||||||
data := json.decode(CreatedContainer, res)?
|
|
||||||
|
|
||||||
return data
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// start_container starts the container with the given id.
|
// start_container starts the container with the given id.
|
||||||
|
@ -103,8 +96,18 @@ pub fn (mut d DockerConn) container_inspect(id string) ?ContainerInspect {
|
||||||
return data
|
return data
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn (mut d DockerConn) container_remove(id string) ? {
|
[params]
|
||||||
d.send_request(Method.delete, '/containers/$id')?
|
pub struct ContainerRemoveConfig {
|
||||||
|
v bool
|
||||||
|
force bool
|
||||||
|
link bool
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn (mut d DockerConn) container_remove(id string, c ContainerRemoveConfig) ? {
|
||||||
|
d.request(Method.delete, '/containers/$id')
|
||||||
|
d.params(c)
|
||||||
|
d.send()?
|
||||||
|
|
||||||
head, body := d.read_response()?
|
head, body := d.read_response()?
|
||||||
|
|
||||||
if head.status_code != 204 {
|
if head.status_code != 204 {
|
||||||
|
@ -114,8 +117,22 @@ pub fn (mut d DockerConn) container_remove(id string) ? {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn (mut d DockerConn) container_get_logs(id string) ?&StreamFormatReader {
|
[params]
|
||||||
d.send_request(Method.get, '/containers/$id/logs?stdout=true&stderr=true')?
|
pub struct ContainerGetLogsConfig {
|
||||||
|
follow bool
|
||||||
|
stdout bool
|
||||||
|
stderr bool
|
||||||
|
since int
|
||||||
|
until int
|
||||||
|
timestamps bool
|
||||||
|
tail string = "all"
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn (mut d DockerConn) container_get_logs(id string, c ContainerGetLogsConfig) ?&StreamFormatReader {
|
||||||
|
d.get('/containers/$id/logs')
|
||||||
|
d.params(c)
|
||||||
|
d.send()?
|
||||||
|
|
||||||
head := d.read_response_head()?
|
head := d.read_response_head()?
|
||||||
|
|
||||||
if head.status_code != 200 {
|
if head.status_code != 200 {
|
||||||
|
|
21
request.v
21
request.v
|
@ -3,6 +3,7 @@ module docker
|
||||||
import net.http
|
import net.http
|
||||||
import net.urllib
|
import net.urllib
|
||||||
import io
|
import io
|
||||||
|
import json
|
||||||
|
|
||||||
fn (mut d DockerConn) request(method http.Method, url_str string) {
|
fn (mut d DockerConn) request(method http.Method, url_str string) {
|
||||||
d.method = method
|
d.method = method
|
||||||
|
@ -16,6 +17,14 @@ fn (mut d DockerConn) get(url_str string) {
|
||||||
d.request(http.Method.get, url_str)
|
d.request(http.Method.get, url_str)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn (mut d DockerConn) post(url_str string) {
|
||||||
|
d.request(http.Method.post, url_str)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn (mut d DockerConn) delete(url_str string) {
|
||||||
|
d.request(http.Method.delete, url_str)
|
||||||
|
}
|
||||||
|
|
||||||
fn (mut d DockerConn) params<T>(o T) {
|
fn (mut d DockerConn) params<T>(o T) {
|
||||||
$for field in T.fields {
|
$for field in T.fields {
|
||||||
v := o.$(field.name)
|
v := o.$(field.name)
|
||||||
|
@ -26,6 +35,18 @@ fn (mut d DockerConn) params<T>(o T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn (mut d DockerConn) body(content_type string, body string) {
|
||||||
|
d.content_type = content_type
|
||||||
|
d.body = body
|
||||||
|
}
|
||||||
|
|
||||||
|
fn (mut d DockerConn) json<T>(o T) {
|
||||||
|
body := json.encode(o)
|
||||||
|
|
||||||
|
d.content_type = 'application/json'
|
||||||
|
d.body = body
|
||||||
|
}
|
||||||
|
|
||||||
fn (mut d DockerConn) send() ? {
|
fn (mut d DockerConn) send() ? {
|
||||||
mut full_url := d.url
|
mut full_url := d.url
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue