Files
herolib/examples/threefold/gridproxy/node.vsh
2025-03-07 16:00:15 -08:00

95 lines
2.5 KiB
GLSL
Executable File

#!/usr/bin/env -S v -n -w -gc none -cc tcc -d use_openssl -enable-globals run
import freeflowuniverse.herolib.threefold.grid3.gridproxy
import freeflowuniverse.herolib.ui.console
fn get_nodes_example() ! {
mut myfilter := gridproxy.nodefilter()!
myfilter.status = 'up'
myfilter.country = 'belgium'
mut gp_client := gridproxy.new(net: .main, cache: true)!
mynodes := gp_client.get_nodes(myfilter)!
console.print_debug('${mynodes}')
}
fn get_node_by_id_example(node_id u64) ! {
mut myfilter := gridproxy.nodefilter()!
myfilter.node_id = node_id
mut gp_client := gridproxy.new(net: .dev, cache: true)!
mynodes := gp_client.get_nodes(myfilter)!
console.print_debug('${mynodes}')
// get node available resources
node_available_resources := mynodes[0].calc_available_resources()
console.print_debug('${node_available_resources}')
}
fn get_node_stats_by_id_example(node_id u64) ! {
mut gp_client := gridproxy.new(net: .dev, cache: true)!
node_stats := gp_client.get_node_stats_by_id(node_id)!
console.print_debug('${node_stats}')
}
fn get_node_by_available_capacity_example() ! {
mut myfilter := gridproxy.nodefilter()!
// minimum free capacity
myfilter.free_mru = u64(0)
myfilter.free_sru = u64(1024) // 1 tb
myfilter.free_hru = u64(0)
myfilter.free_ips = u64(1)
// init gridproxy client on devnet with redis cash
mut gp_client := gridproxy.new(net: .dev, cache: true)!
mynodes := gp_client.get_nodes(myfilter)!
console.print_debug('${mynodes}')
}
fn get_node_by_city_country_example() ! {
mut myfilter := gridproxy.nodefilter()!
myfilter.city = 'Rio de Janeiro'
myfilter.country = 'Brazil'
mut gp_client := gridproxy.new(net: .main, cache: false)!
mynodes := gp_client.get_nodes(myfilter)!
console.print_debug('${mynodes}')
}
fn get_node_box_poc_example() ! {
mut myfilter := gridproxy.nodefilter()!
myfilter.status = 'up'
mut gp_client := gridproxy.new(net: .main, cache: true)!
mynodes := gp_client.get_nodes(myfilter)!
for node in mynodes {
console.print_debug('${node}')
console.print_debug('${node.capacity.total_resources.hru.to_gigabytes()}')
node_available_resources := node.calc_available_resources()
console.print_debug('${node_available_resources}')
node_stats := gp_client.get_node_stats_by_id(node.node_id)!
console.print_debug('${node_stats}')
}
}
get_nodes_example()!
get_node_by_id_example(u64(11))!
get_node_stats_by_id_example(u64(11))!
get_node_by_available_capacity_example()!
get_node_by_city_country_example()!
get_node_box_poc_example()!