mirror of
https://github.com/fluencelabs/examples
synced 2025-04-25 02:32:16 +00:00
put/get updates
This commit is contained in:
parent
cdec8be7ae
commit
c1f3035c8a
@ -1,4 +1,12 @@
|
||||
data GetResult:
|
||||
stdout: []u8
|
||||
stderr: string
|
||||
|
||||
data PutResult:
|
||||
stdout: string
|
||||
stderr: string
|
||||
|
||||
service UrlDownloader("url_downloader"):
|
||||
get(file_name: string) -> []u8
|
||||
get_n_save(url: string, file_name: string) -> string
|
||||
put(file_name: string, file_content: []u8) -> string
|
||||
get(file_name: string) -> GetResult
|
||||
get_n_save(url: string, file_name: string) -> PutResult
|
||||
put(file_name: string, file_content: []u8) -> PutResult
|
||||
|
@ -1,10 +1,10 @@
|
||||
data GetWorkersInfoDealsDefaultWorker:
|
||||
definition: string
|
||||
timestamp: string
|
||||
dealIdOriginal: string
|
||||
dealId: string
|
||||
definition: string
|
||||
chainNetwork: string
|
||||
chainNetworkId: u64
|
||||
dealIdOriginal: string
|
||||
dealId: string
|
||||
|
||||
data GetWorkersInfoDeals:
|
||||
defaultWorker: GetWorkersInfoDealsDefaultWorker
|
||||
@ -28,4 +28,4 @@ data GetWorkersInfo:
|
||||
hosts: GetWorkersInfoHosts
|
||||
|
||||
func getWorkersInfo() -> GetWorkersInfo:
|
||||
<- GetWorkersInfo(deals=GetWorkersInfoDeals(defaultWorker=GetWorkersInfoDealsDefaultWorker(definition="bafkreicdordcic2qmd2pnacl5adffsuhwg4eleu4prcgaldjvzr6ds2f2m",timestamp="2023-04-23T07:01:18.682Z",dealIdOriginal="0x9d7503E13Bc2d3430536e3d5D635D8172141d884",dealId="9d7503e13bc2d3430536e3d5d635d8172141d884",chainNetwork="testnet",chainNetworkId=1313161555)),hosts=GetWorkersInfoHosts(defaultWorker=GetWorkersInfoHostsDefaultWorker(definition="bafkreicdordcic2qmd2pnacl5adffsuhwg4eleu4prcgaldjvzr6ds2f2m",installationSpells=[GetWorkersInfoHostsDefaultWorkerInstallationSpells(hostId="12D3KooWJ4bTHirdTFNZpCS72TAzwtdmavTBkkEXtzo6wHL25CtE",spellId="039f4e06-923e-4a21-8814-8164fa9b137c",workerId="12D3KooWKsxVXgnpL4wrTts9d49jiNSEN1auaxotdMYa4HpFS66g")],timestamp="2023-04-23T07:00:05.549Z",relayId="12D3KooWAKNos2KogexTXhrkMZzFYpLHuWJ4PgoAhurSAv7o5CWA")))
|
||||
<- GetWorkersInfo(deals=GetWorkersInfoDeals(defaultWorker=GetWorkersInfoDealsDefaultWorker(timestamp="2023-04-24T00:18:54.042Z",definition="bafkreifh4vhq5kqpkbhaxmb4iuzg7rr33oxjvksxmarwkekotj26u2vsju",chainNetwork="testnet",chainNetworkId=1313161555,dealIdOriginal="0x9d7503E13Bc2d3430536e3d5D635D8172141d884",dealId="9d7503e13bc2d3430536e3d5d635d8172141d884")),hosts=GetWorkersInfoHosts(defaultWorker=GetWorkersInfoHostsDefaultWorker(definition="bafkreifh4vhq5kqpkbhaxmb4iuzg7rr33oxjvksxmarwkekotj26u2vsju",installationSpells=[GetWorkersInfoHostsDefaultWorkerInstallationSpells(hostId="12D3KooWJ4bTHirdTFNZpCS72TAzwtdmavTBkkEXtzo6wHL25CtE",spellId="039f4e06-923e-4a21-8814-8164fa9b137c",workerId="12D3KooWKsxVXgnpL4wrTts9d49jiNSEN1auaxotdMYa4HpFS66g")],timestamp="2023-04-23T23:47:35.550Z",relayId="12D3KooWMigkP4jkVyufq5JnDJL6nXvyjeaDNpRfEZqQhsG3sYCU")))
|
||||
|
@ -7,17 +7,17 @@
|
||||
version: 0
|
||||
hosts:
|
||||
defaultWorker:
|
||||
definition: bafkreicdordcic2qmd2pnacl5adffsuhwg4eleu4prcgaldjvzr6ds2f2m
|
||||
definition: bafkreifh4vhq5kqpkbhaxmb4iuzg7rr33oxjvksxmarwkekotj26u2vsju
|
||||
installation_spells:
|
||||
- host_id: 12D3KooWJ4bTHirdTFNZpCS72TAzwtdmavTBkkEXtzo6wHL25CtE
|
||||
spell_id: 039f4e06-923e-4a21-8814-8164fa9b137c
|
||||
worker_id: 12D3KooWKsxVXgnpL4wrTts9d49jiNSEN1auaxotdMYa4HpFS66g
|
||||
timestamp: 2023-04-23T07:00:05.549Z
|
||||
relayId: 12D3KooWAKNos2KogexTXhrkMZzFYpLHuWJ4PgoAhurSAv7o5CWA
|
||||
timestamp: 2023-04-23T23:47:35.550Z
|
||||
relayId: 12D3KooWMigkP4jkVyufq5JnDJL6nXvyjeaDNpRfEZqQhsG3sYCU
|
||||
deals:
|
||||
defaultWorker:
|
||||
definition: bafkreicdordcic2qmd2pnacl5adffsuhwg4eleu4prcgaldjvzr6ds2f2m
|
||||
timestamp: 2023-04-23T07:01:18.682Z
|
||||
definition: bafkreifh4vhq5kqpkbhaxmb4iuzg7rr33oxjvksxmarwkekotj26u2vsju
|
||||
timestamp: 2023-04-24T00:18:54.042Z
|
||||
dealIdOriginal: "0x9d7503E13Bc2d3430536e3d5D635D8172141d884"
|
||||
dealId: 9d7503e13bc2d3430536e3d5d635d8172141d884
|
||||
chainNetwork: testnet
|
||||
|
@ -10,26 +10,51 @@ pub fn main() {
|
||||
WasmLoggerBuilder::new().build().unwrap();
|
||||
}
|
||||
|
||||
|
||||
#[marine]
|
||||
pub struct PutResult {
|
||||
stdout: String,
|
||||
stderr: String,
|
||||
}
|
||||
|
||||
#[marine]
|
||||
pub struct GetResult {
|
||||
stdout: Vec<u8>,
|
||||
stderr: String,
|
||||
}
|
||||
|
||||
/// Combining of modules: `curl` and `local_storage`.
|
||||
/// Calls `curl` and stores returned result into a file.
|
||||
#[marine]
|
||||
pub fn get_n_save(url: String, file_name: String) -> String {
|
||||
pub fn get_n_save(url: String, file_name: String) -> PutResult {
|
||||
log::info!("get_n_save called with {} {}\n", url, file_name);
|
||||
|
||||
let result = download(url);
|
||||
file_put(file_name, result.into_bytes());
|
||||
|
||||
String::from("Ok")
|
||||
put(file_name, result.into_bytes())
|
||||
}
|
||||
|
||||
#[marine]
|
||||
pub fn put(file_name: String, file_content: Vec<u8>) -> String {
|
||||
file_put(file_name, file_content)
|
||||
pub fn put(file_name: String, file_content: Vec<u8>) -> PutResult {
|
||||
let res = file_put(file_name, file_content);
|
||||
|
||||
if res == String::from("Ok") {
|
||||
PutResult { stdout: res, stderr: String::from("")}
|
||||
}
|
||||
else {
|
||||
PutResult { stdout: String::from(""), stderr: res}
|
||||
}
|
||||
}
|
||||
|
||||
#[marine]
|
||||
pub fn get(file_name: String) -> Vec<u8> {
|
||||
file_get(file_name)
|
||||
pub fn get(file_name: String) -> GetResult {
|
||||
let res = file_get(file_name);
|
||||
|
||||
if res == b"error while reading file" {
|
||||
GetResult { stdout: vec!(), stderr: String::from_utf8(res).unwrap()}
|
||||
}
|
||||
else {
|
||||
GetResult { stdout: res, stderr: String::from("")}
|
||||
}
|
||||
}
|
||||
|
||||
/// Importing `curl` module
|
||||
|
@ -6,54 +6,78 @@ import "@fluencelabs/spell/spell_service.aqua"
|
||||
import "workers.aqua"
|
||||
import "services.aqua"
|
||||
|
||||
export put, get
|
||||
export put, get_with_ids, get_without_ids, get_bad
|
||||
export put_workers, get_workers, get_and_save_workers
|
||||
|
||||
-- functions to interact with deal deployed services
|
||||
func getWorkers() -> []Record:
|
||||
workersInfo <- getWorkersInfo()
|
||||
dealId = workersInfo.deals.defaultWorker.dealId
|
||||
workersOp <- resolveSubnetwork(dealId)
|
||||
<- workersOp!
|
||||
|
||||
func put(file_name: string, file_content: []u8) -> string:
|
||||
func put(file_name: string, file_content: []u8) -> PutResult, string, string:
|
||||
workers <- getWorkers()
|
||||
w = workers[0]
|
||||
w = workers[5]
|
||||
on w.metadata.peer_id via w.metadata.relay_id:
|
||||
res <- UrlDownloader.put(file_name, file_content)
|
||||
<- res, w.metadata.peer_id, w.metadata.relay_id!
|
||||
|
||||
func get_without_ids(file_name: string) -> [][]u8:
|
||||
result: *[]u8
|
||||
workers <- getWorkers()
|
||||
for w <- workers par:
|
||||
on w.metadata.peer_id via w.metadata.relay_id:
|
||||
res <- UrlDownloader.get(file_name)
|
||||
-- if res.stderr == "":
|
||||
-- result <<- res.stdout
|
||||
-- else:
|
||||
-- result <<- []
|
||||
result <<- res.stdout
|
||||
par Peer.timeout(10000, "Finding file timed out.")
|
||||
join result[workers.length - 1]
|
||||
<- result
|
||||
|
||||
func get_with_ids(file_name: string, peer_id: string, relay_id: string) -> GetResult:
|
||||
on peer_id via relay_id:
|
||||
res <- UrlDownloader.get(file_name)
|
||||
<- res
|
||||
|
||||
|
||||
func get(file_name: string) -> []u8:
|
||||
func get_bad(file_name: string) -> GetResult:
|
||||
workers <- getWorkers()
|
||||
w = workers[0]
|
||||
on w.metadata.peer_id via w.metadata.relay_id:
|
||||
res <- UrlDownloader.get(file_name)
|
||||
<- res
|
||||
|
||||
func get_and_save(url: string, fname: string) -> string:
|
||||
func get_and_save(url: string, fname: string) -> PutResult:
|
||||
workers <- getWorkers()
|
||||
w = workers[0]
|
||||
on w.metadata.peer_id via w.metadata.relay_id:
|
||||
res = UrlDownloader.get_n_save(url, fname)
|
||||
<- res
|
||||
|
||||
func put_workers(file_name: string, file_content: []u8) -> string:
|
||||
-- functions to interact with workers deployed service
|
||||
func put_workers(file_name: string, file_content: []u8) -> PutResult:
|
||||
info <- getWorkersInfo()
|
||||
spell = info.hosts.defaultWorker.installationSpells[0]
|
||||
on spell.workerId via spell.hostId:
|
||||
res <- UrlDownloader.put(file_name, file_content)
|
||||
<- res
|
||||
|
||||
--func get_workers(file_name: string) -> GetResult:
|
||||
func get_workers(file_name: string) -> []u8:
|
||||
info <- getWorkersInfo()
|
||||
spell = info.hosts.defaultWorker.installationSpells[0]
|
||||
on spell.workerId via spell.hostId:
|
||||
res <- UrlDownloader.get(file_name)
|
||||
<- res
|
||||
--<- res
|
||||
<- res.stdout
|
||||
|
||||
func get_and_save_workers(url: string, fname: string) -> string:
|
||||
func get_and_save_workers(url: string, fname: string) -> PutResult:
|
||||
info <- getWorkersInfo()
|
||||
spell = info.hosts.defaultWorker.installationSpells[0]
|
||||
on spell.workerId via spell.hostId:
|
||||
res = UrlDownloader.get_n_save(url, fname)
|
||||
<- res
|
||||
<- res
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user