put/get updates

This commit is contained in:
boneyard93501 2023-04-23 20:29:10 -05:00
parent cdec8be7ae
commit c1f3035c8a
5 changed files with 87 additions and 30 deletions

View File

@ -1,4 +1,12 @@
data GetResult:
stdout: []u8
stderr: string
data PutResult:
stdout: string
stderr: string
service UrlDownloader("url_downloader"): service UrlDownloader("url_downloader"):
get(file_name: string) -> []u8 get(file_name: string) -> GetResult
get_n_save(url: string, file_name: string) -> string get_n_save(url: string, file_name: string) -> PutResult
put(file_name: string, file_content: []u8) -> string put(file_name: string, file_content: []u8) -> PutResult

View File

@ -1,10 +1,10 @@
data GetWorkersInfoDealsDefaultWorker: data GetWorkersInfoDealsDefaultWorker:
definition: string
timestamp: string timestamp: string
dealIdOriginal: string definition: string
dealId: string
chainNetwork: string chainNetwork: string
chainNetworkId: u64 chainNetworkId: u64
dealIdOriginal: string
dealId: string
data GetWorkersInfoDeals: data GetWorkersInfoDeals:
defaultWorker: GetWorkersInfoDealsDefaultWorker defaultWorker: GetWorkersInfoDealsDefaultWorker
@ -28,4 +28,4 @@ data GetWorkersInfo:
hosts: GetWorkersInfoHosts hosts: GetWorkersInfoHosts
func getWorkersInfo() -> GetWorkersInfo: 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")))

View File

@ -7,17 +7,17 @@
version: 0 version: 0
hosts: hosts:
defaultWorker: defaultWorker:
definition: bafkreicdordcic2qmd2pnacl5adffsuhwg4eleu4prcgaldjvzr6ds2f2m definition: bafkreifh4vhq5kqpkbhaxmb4iuzg7rr33oxjvksxmarwkekotj26u2vsju
installation_spells: installation_spells:
- host_id: 12D3KooWJ4bTHirdTFNZpCS72TAzwtdmavTBkkEXtzo6wHL25CtE - host_id: 12D3KooWJ4bTHirdTFNZpCS72TAzwtdmavTBkkEXtzo6wHL25CtE
spell_id: 039f4e06-923e-4a21-8814-8164fa9b137c spell_id: 039f4e06-923e-4a21-8814-8164fa9b137c
worker_id: 12D3KooWKsxVXgnpL4wrTts9d49jiNSEN1auaxotdMYa4HpFS66g worker_id: 12D3KooWKsxVXgnpL4wrTts9d49jiNSEN1auaxotdMYa4HpFS66g
timestamp: 2023-04-23T07:00:05.549Z timestamp: 2023-04-23T23:47:35.550Z
relayId: 12D3KooWAKNos2KogexTXhrkMZzFYpLHuWJ4PgoAhurSAv7o5CWA relayId: 12D3KooWMigkP4jkVyufq5JnDJL6nXvyjeaDNpRfEZqQhsG3sYCU
deals: deals:
defaultWorker: defaultWorker:
definition: bafkreicdordcic2qmd2pnacl5adffsuhwg4eleu4prcgaldjvzr6ds2f2m definition: bafkreifh4vhq5kqpkbhaxmb4iuzg7rr33oxjvksxmarwkekotj26u2vsju
timestamp: 2023-04-23T07:01:18.682Z timestamp: 2023-04-24T00:18:54.042Z
dealIdOriginal: "0x9d7503E13Bc2d3430536e3d5D635D8172141d884" dealIdOriginal: "0x9d7503E13Bc2d3430536e3d5D635D8172141d884"
dealId: 9d7503e13bc2d3430536e3d5d635d8172141d884 dealId: 9d7503e13bc2d3430536e3d5d635d8172141d884
chainNetwork: testnet chainNetwork: testnet

View File

@ -10,26 +10,51 @@ pub fn main() {
WasmLoggerBuilder::new().build().unwrap(); 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`. /// Combining of modules: `curl` and `local_storage`.
/// Calls `curl` and stores returned result into a file. /// Calls `curl` and stores returned result into a file.
#[marine] #[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); log::info!("get_n_save called with {} {}\n", url, file_name);
let result = download(url); let result = download(url);
file_put(file_name, result.into_bytes()); put(file_name, result.into_bytes())
String::from("Ok")
} }
#[marine] #[marine]
pub fn put(file_name: String, file_content: Vec<u8>) -> String { pub fn put(file_name: String, file_content: Vec<u8>) -> PutResult {
file_put(file_name, file_content) 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] #[marine]
pub fn get(file_name: String) -> Vec<u8> { pub fn get(file_name: String) -> GetResult {
file_get(file_name) 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 /// Importing `curl` module

View File

@ -6,54 +6,78 @@ import "@fluencelabs/spell/spell_service.aqua"
import "workers.aqua" import "workers.aqua"
import "services.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 export put_workers, get_workers, get_and_save_workers
-- functions to interact with deal deployed services
func getWorkers() -> []Record: func getWorkers() -> []Record:
workersInfo <- getWorkersInfo() workersInfo <- getWorkersInfo()
dealId = workersInfo.deals.defaultWorker.dealId dealId = workersInfo.deals.defaultWorker.dealId
workersOp <- resolveSubnetwork(dealId) workersOp <- resolveSubnetwork(dealId)
<- workersOp! <- workersOp!
func put(file_name: string, file_content: []u8) -> string: func put(file_name: string, file_content: []u8) -> PutResult, string, string:
workers <- getWorkers() workers <- getWorkers()
w = workers[0] w = workers[5]
on w.metadata.peer_id via w.metadata.relay_id: on w.metadata.peer_id via w.metadata.relay_id:
res <- UrlDownloader.put(file_name, file_content) 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 <- res
func get_bad(file_name: string) -> GetResult:
func get(file_name: string) -> []u8:
workers <- getWorkers() workers <- getWorkers()
w = workers[0] w = workers[0]
on w.metadata.peer_id via w.metadata.relay_id: on w.metadata.peer_id via w.metadata.relay_id:
res <- UrlDownloader.get(file_name) res <- UrlDownloader.get(file_name)
<- res <- res
func get_and_save(url: string, fname: string) -> string: func get_and_save(url: string, fname: string) -> PutResult:
workers <- getWorkers() workers <- getWorkers()
w = workers[0] w = workers[0]
on w.metadata.peer_id via w.metadata.relay_id: on w.metadata.peer_id via w.metadata.relay_id:
res = UrlDownloader.get_n_save(url, fname) res = UrlDownloader.get_n_save(url, fname)
<- res <- 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() info <- getWorkersInfo()
spell = info.hosts.defaultWorker.installationSpells[0] spell = info.hosts.defaultWorker.installationSpells[0]
on spell.workerId via spell.hostId: on spell.workerId via spell.hostId:
res <- UrlDownloader.put(file_name, file_content) res <- UrlDownloader.put(file_name, file_content)
<- res <- res
--func get_workers(file_name: string) -> GetResult:
func get_workers(file_name: string) -> []u8: func get_workers(file_name: string) -> []u8:
info <- getWorkersInfo() info <- getWorkersInfo()
spell = info.hosts.defaultWorker.installationSpells[0] spell = info.hosts.defaultWorker.installationSpells[0]
on spell.workerId via spell.hostId: on spell.workerId via spell.hostId:
res <- UrlDownloader.get(file_name) 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() info <- getWorkersInfo()
spell = info.hosts.defaultWorker.installationSpells[0] spell = info.hosts.defaultWorker.installationSpells[0]
on spell.workerId via spell.hostId: on spell.workerId via spell.hostId:
res = UrlDownloader.get_n_save(url, fname) res = UrlDownloader.get_n_save(url, fname)
<- res <- res