Files
mgmt/examples/lang/http-server-flag1.mcl
James Shubin 0fd6970c0a engine: resources: The http server flag res should autogroup
If we want to receive more than on flag (key) value, then these
obviously need to autogroup together, because it's the same http server
request that comes in and which should be shared by everyone with the
same path.
2025-05-25 04:46:34 -04:00

67 lines
1.8 KiB
Plaintext

# example of dual flag resource autogrouping+send/recv into http:server
# mkdir -p '/tmp/testing/.ssh/' -m 700 && ssh-keygen -N '' -t 'ed25519' -f '/tmp/testing/.ssh/id_ed25519'
# run mgmt...
# /usr/bin/curl --data-urlencode 'done=true' --data-urlencode 'password=sha1TODO' --data-urlencode 'sshtype=ssh-ed25519' --data-urlencode "val2=$(cut -d ' ' -f 2 '/tmp/testing/.ssh/id_ed25519.pub')" --data-urlencode 'sshcomment=root@foo' -o - 'http://localhost:9090/action/done/mac=some_mac'
import "fmt"
import "value"
$name1 = "foo"
$name2 = "bar"
$some_key = "some_mac"
$key1 = "done"
$key2 = "sshkey"
http:server ":9090" {
}
http:server:file "/file1" {
data => "hello, world, i'm file1 and i don't exist on disk!\n",
}
http:server:flag "${name1}" {
key => "${key1}",
path => "/action/done/mac=${some_key}",
#mapped => {$str_true => $str_true, $str_false => $str_false,},
}
kv "${name1}" {
key => $name1,
}
value "${name1}" {
#any => true, # bool
}
Http:Server:Flag["${name1}"].value -> Kv["${name1}"].value
Http:Server:Flag["${name1}"].value -> Value["${name1}"].any
#$st_val1 = value.get_bool($name1)
$st_val1 = value.get_str($name1)
$val1 = $st_val1->ready and $st_val1->value == "true" # export this value to parent scope
http:server:flag "${name2}" {
key => "${key2}", # different key!
path => "/action/done/mac=${some_key}", # same path
}
kv "${name2}" {
key => $name2,
}
value "${name2}" {
#any => true, # bool
}
Http:Server:Flag["${name2}"].value -> Kv["${name2}"].value
Http:Server:Flag["${name2}"].value -> Value["${name2}"].any
#$st_val2 = value.get_bool($name2)
$st_val2 = value.get_str($name2)
$val2 = $st_val2->value # possibly empty at the start
file "/tmp/testing/info" {
state => "exists",
content => fmt.printf("val1: %t\nval2: %s\n", $val1, $val2),
}