feat: add debug logging for slice calculation and node management operations
This commit is contained in:
@@ -427,6 +427,28 @@ impl DashboardController {
|
|||||||
// Get resource provider nodes with updated slice calculations
|
// Get resource provider nodes with updated slice calculations
|
||||||
let resource_provider_nodes = resource_provider_service.get_resource_provider_nodes(&user_email);
|
let resource_provider_nodes = resource_provider_service.get_resource_provider_nodes(&user_email);
|
||||||
|
|
||||||
|
// DEBUG: Log template data being prepared
|
||||||
|
log::info!(
|
||||||
|
target: "debug.slice_trace",
|
||||||
|
"dashboard:template_data_prep user={} nodes_loaded_count={}",
|
||||||
|
user_email,
|
||||||
|
resource_provider_nodes.len()
|
||||||
|
);
|
||||||
|
|
||||||
|
// DEBUG: Log each node's slice data being sent to template
|
||||||
|
for node in &resource_provider_nodes {
|
||||||
|
log::info!(
|
||||||
|
target: "debug.slice_trace",
|
||||||
|
"dashboard:node_template_data user={} node_id={} grid_node_id={:?} total_base_slices={} allocated_base_slices={} available_combinations_count={}",
|
||||||
|
user_email,
|
||||||
|
node.id,
|
||||||
|
node.grid_node_id,
|
||||||
|
node.total_base_slices,
|
||||||
|
node.allocated_base_slices,
|
||||||
|
node.available_combinations.len()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
// Calculate resource_provider statistics from nodes
|
// Calculate resource_provider statistics from nodes
|
||||||
let total_nodes = resource_provider_nodes.len() as u32;
|
let total_nodes = resource_provider_nodes.len() as u32;
|
||||||
let mut online_nodes = 0u32;
|
let mut online_nodes = 0u32;
|
||||||
@@ -2524,6 +2546,17 @@ impl DashboardController {
|
|||||||
pricing_mode
|
pricing_mode
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// DEBUG: Log which path will be taken
|
||||||
|
log::info!(
|
||||||
|
target: "debug.slice_trace",
|
||||||
|
"add_grid_nodes:path_decision req_id={} email={} slice_formats_count={} full_node_rental_enabled={} pricing_mode={}",
|
||||||
|
req_id,
|
||||||
|
user_email,
|
||||||
|
slice_formats.len(),
|
||||||
|
full_node_rental_enabled,
|
||||||
|
pricing_mode
|
||||||
|
);
|
||||||
|
|
||||||
let add_result = if !slice_formats.is_empty() || full_node_rental_enabled {
|
let add_result = if !slice_formats.is_empty() || full_node_rental_enabled {
|
||||||
// Create rental options if full node rental is enabled
|
// Create rental options if full node rental is enabled
|
||||||
let rental_options = if full_node_rental_enabled {
|
let rental_options = if full_node_rental_enabled {
|
||||||
@@ -2561,6 +2594,13 @@ impl DashboardController {
|
|||||||
|
|
||||||
// Choose the appropriate method based on pricing mode
|
// Choose the appropriate method based on pricing mode
|
||||||
if pricing_mode == "individual" && individual_node_pricing.is_some() {
|
if pricing_mode == "individual" && individual_node_pricing.is_some() {
|
||||||
|
log::info!(
|
||||||
|
target: "debug.slice_trace",
|
||||||
|
"add_grid_nodes:calling_individual_pricing req_id={} email={} node_count={}",
|
||||||
|
req_id,
|
||||||
|
user_email,
|
||||||
|
node_ids.len()
|
||||||
|
);
|
||||||
resource_provider_service.add_multiple_grid_nodes_with_individual_pricing(
|
resource_provider_service.add_multiple_grid_nodes_with_individual_pricing(
|
||||||
&user_email,
|
&user_email,
|
||||||
node_ids.clone(),
|
node_ids.clone(),
|
||||||
@@ -2568,6 +2608,13 @@ impl DashboardController {
|
|||||||
individual_node_pricing.unwrap()
|
individual_node_pricing.unwrap()
|
||||||
).await
|
).await
|
||||||
} else {
|
} else {
|
||||||
|
log::info!(
|
||||||
|
target: "debug.slice_trace",
|
||||||
|
"add_grid_nodes:calling_comprehensive_config req_id={} email={} node_count={}",
|
||||||
|
req_id,
|
||||||
|
user_email,
|
||||||
|
node_ids.len()
|
||||||
|
);
|
||||||
resource_provider_service.add_multiple_grid_nodes_with_comprehensive_config(
|
resource_provider_service.add_multiple_grid_nodes_with_comprehensive_config(
|
||||||
&user_email,
|
&user_email,
|
||||||
node_ids.clone(),
|
node_ids.clone(),
|
||||||
@@ -2576,6 +2623,13 @@ impl DashboardController {
|
|||||||
).await
|
).await
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
log::info!(
|
||||||
|
target: "debug.slice_trace",
|
||||||
|
"add_grid_nodes:calling_simple_add req_id={} email={} node_count={}",
|
||||||
|
req_id,
|
||||||
|
user_email,
|
||||||
|
node_ids.len()
|
||||||
|
);
|
||||||
resource_provider_service.add_multiple_grid_nodes(&user_email, node_ids.clone()).await
|
resource_provider_service.add_multiple_grid_nodes(&user_email, node_ids.clone()).await
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -98,15 +98,42 @@ impl ResourceProviderService {
|
|||||||
|
|
||||||
/// Get all nodes for a resource_provider
|
/// Get all nodes for a resource_provider
|
||||||
pub fn get_resource_provider_nodes(&self, user_email: &str) -> Vec<FarmNode> {
|
pub fn get_resource_provider_nodes(&self, user_email: &str) -> Vec<FarmNode> {
|
||||||
|
log::info!(
|
||||||
|
target: "debug.slice_trace",
|
||||||
|
"get_resource_provider_nodes:start user={}",
|
||||||
|
user_email
|
||||||
|
);
|
||||||
|
|
||||||
if let Some(data) = UserPersistence::load_user_data(user_email) {
|
if let Some(data) = UserPersistence::load_user_data(user_email) {
|
||||||
// Debug: Log marketplace SLA data for all nodes
|
log::info!(
|
||||||
|
target: "debug.slice_trace",
|
||||||
|
"get_resource_provider_nodes:loaded_data user={} nodes_count={}",
|
||||||
|
user_email,
|
||||||
|
data.nodes.len()
|
||||||
|
);
|
||||||
|
|
||||||
|
// DEBUG: Log slice data for each node to verify what's stored
|
||||||
for node in &data.nodes {
|
for node in &data.nodes {
|
||||||
if let Some(ref sla) = node.marketplace_sla {
|
log::info!(
|
||||||
} else {
|
target: "debug.slice_trace",
|
||||||
}
|
"get_resource_provider_nodes:node_data user={} node_id={} grid_node_id={:?} total_base_slices={} allocated_base_slices={} available_combinations_count={} slice_last_calculated={:?}",
|
||||||
|
user_email,
|
||||||
|
node.id,
|
||||||
|
node.grid_node_id,
|
||||||
|
node.total_base_slices,
|
||||||
|
node.allocated_base_slices,
|
||||||
|
node.available_combinations.len(),
|
||||||
|
node.slice_last_calculated
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
data.nodes
|
data.nodes
|
||||||
} else {
|
} else {
|
||||||
|
log::info!(
|
||||||
|
target: "debug.slice_trace",
|
||||||
|
"get_resource_provider_nodes:no_data user={} returning_empty",
|
||||||
|
user_email
|
||||||
|
);
|
||||||
Vec::new()
|
Vec::new()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1390,10 +1417,25 @@ impl ResourceProviderService {
|
|||||||
|
|
||||||
/// Add multiple grid nodes at once
|
/// Add multiple grid nodes at once
|
||||||
pub async fn add_multiple_grid_nodes(&self, user_email: &str, grid_node_ids: Vec<u32>) -> Result<Vec<FarmNode>, String> {
|
pub async fn add_multiple_grid_nodes(&self, user_email: &str, grid_node_ids: Vec<u32>) -> Result<Vec<FarmNode>, String> {
|
||||||
|
// DEBUG: Log entry point
|
||||||
|
log::info!(
|
||||||
|
target: "debug.slice_trace",
|
||||||
|
"add_multiple_grid_nodes:start user={} node_ids={:?}",
|
||||||
|
user_email,
|
||||||
|
grid_node_ids
|
||||||
|
);
|
||||||
|
|
||||||
// Batch approach: load once, add all nodes, save once
|
// Batch approach: load once, add all nodes, save once
|
||||||
let mut added_nodes: Vec<FarmNode> = Vec::new();
|
let mut added_nodes: Vec<FarmNode> = Vec::new();
|
||||||
let mut persistent_data = crate::models::builders::SessionDataBuilder::load_or_create(user_email);
|
let mut persistent_data = crate::models::builders::SessionDataBuilder::load_or_create(user_email);
|
||||||
|
|
||||||
|
log::info!(
|
||||||
|
target: "debug.slice_trace",
|
||||||
|
"add_multiple_grid_nodes:loaded_existing user={} existing_node_count={}",
|
||||||
|
user_email,
|
||||||
|
persistent_data.nodes.len()
|
||||||
|
);
|
||||||
|
|
||||||
for grid_node_id in grid_node_ids {
|
for grid_node_id in grid_node_ids {
|
||||||
let node_id = format!("grid_node_{}", grid_node_id);
|
let node_id = format!("grid_node_{}", grid_node_id);
|
||||||
|
|
||||||
@@ -1415,8 +1457,24 @@ impl ResourceProviderService {
|
|||||||
let grid_data = self.grid_service.fetch_node_data(grid_node_id).await.map_err(|e| e.to_string())?;
|
let grid_data = self.grid_service.fetch_node_data(grid_node_id).await.map_err(|e| e.to_string())?;
|
||||||
|
|
||||||
// FIX: Calculate slice data using the slice calculator (same as add_node_from_grid)
|
// FIX: Calculate slice data using the slice calculator (same as add_node_from_grid)
|
||||||
|
log::info!(
|
||||||
|
target: "debug.slice_trace",
|
||||||
|
"add_multiple_grid_nodes:calculating_slices user={} grid_node_id={} resources={:?}",
|
||||||
|
user_email,
|
||||||
|
grid_node_id,
|
||||||
|
grid_data.total_resources
|
||||||
|
);
|
||||||
|
|
||||||
let total_base_slices = self.slice_calculator.calculate_max_base_slices(&grid_data.total_resources);
|
let total_base_slices = self.slice_calculator.calculate_max_base_slices(&grid_data.total_resources);
|
||||||
|
|
||||||
|
log::info!(
|
||||||
|
target: "debug.slice_trace",
|
||||||
|
"add_multiple_grid_nodes:calculated_slices user={} grid_node_id={} total_base_slices={}",
|
||||||
|
user_email,
|
||||||
|
grid_node_id,
|
||||||
|
total_base_slices
|
||||||
|
);
|
||||||
|
|
||||||
// Generate unique node ID for SLA
|
// Generate unique node ID for SLA
|
||||||
let node_id_for_sla = node_id.clone();
|
let node_id_for_sla = node_id.clone();
|
||||||
|
|
||||||
@@ -1481,23 +1539,93 @@ impl ResourceProviderService {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// FIX: Generate initial slice combinations
|
// FIX: Generate initial slice combinations
|
||||||
|
log::info!(
|
||||||
|
target: "debug.slice_trace",
|
||||||
|
"add_multiple_grid_nodes:generating_combinations user={} grid_node_id={} total_base_slices={} allocated_base_slices={}",
|
||||||
|
user_email,
|
||||||
|
grid_node_id,
|
||||||
|
node.total_base_slices,
|
||||||
|
node.allocated_base_slices
|
||||||
|
);
|
||||||
|
|
||||||
let combinations = self.slice_calculator.generate_slice_combinations(
|
let combinations = self.slice_calculator.generate_slice_combinations(
|
||||||
node.total_base_slices as u32,
|
node.total_base_slices as u32,
|
||||||
node.allocated_base_slices as u32,
|
node.allocated_base_slices as u32,
|
||||||
&node,
|
&node,
|
||||||
user_email
|
user_email
|
||||||
);
|
);
|
||||||
|
|
||||||
|
log::info!(
|
||||||
|
target: "debug.slice_trace",
|
||||||
|
"add_multiple_grid_nodes:generated_combinations user={} grid_node_id={} combinations_count={}",
|
||||||
|
user_email,
|
||||||
|
grid_node_id,
|
||||||
|
combinations.len()
|
||||||
|
);
|
||||||
|
|
||||||
node.available_combinations = combinations.iter()
|
node.available_combinations = combinations.iter()
|
||||||
.map(|c| serde_json::to_value(c).unwrap_or_default())
|
.map(|c| serde_json::to_value(c).unwrap_or_default())
|
||||||
.collect();
|
.collect();
|
||||||
|
|
||||||
|
log::info!(
|
||||||
|
target: "debug.slice_trace",
|
||||||
|
"add_multiple_grid_nodes:node_created user={} node_id={} grid_node_id={} total_slices={} available_combinations={}",
|
||||||
|
user_email,
|
||||||
|
node.id,
|
||||||
|
grid_node_id,
|
||||||
|
node.total_base_slices,
|
||||||
|
node.available_combinations.len()
|
||||||
|
);
|
||||||
|
|
||||||
persistent_data.nodes.push(node.clone());
|
persistent_data.nodes.push(node.clone());
|
||||||
added_nodes.push(node);
|
added_nodes.push(node);
|
||||||
}
|
}
|
||||||
|
|
||||||
if !added_nodes.is_empty() {
|
if !added_nodes.is_empty() {
|
||||||
|
log::info!(
|
||||||
|
target: "debug.slice_trace",
|
||||||
|
"add_multiple_grid_nodes:saving_data user={} total_nodes_to_save={} added_nodes_count={}",
|
||||||
|
user_email,
|
||||||
|
persistent_data.nodes.len(),
|
||||||
|
added_nodes.len()
|
||||||
|
);
|
||||||
|
|
||||||
UserPersistence::save_user_data(&persistent_data).map_err(|e| e.to_string())?;
|
UserPersistence::save_user_data(&persistent_data).map_err(|e| e.to_string())?;
|
||||||
|
|
||||||
|
log::info!(
|
||||||
|
target: "debug.slice_trace",
|
||||||
|
"add_multiple_grid_nodes:data_saved user={} added_nodes_count={}",
|
||||||
|
user_email,
|
||||||
|
added_nodes.len()
|
||||||
|
);
|
||||||
|
|
||||||
|
// DEBUG: Log final node data to verify what was actually saved
|
||||||
|
for node in &added_nodes {
|
||||||
|
log::info!(
|
||||||
|
target: "debug.slice_trace",
|
||||||
|
"add_multiple_grid_nodes:final_node_data user={} node_id={} grid_node_id={:?} total_base_slices={} slice_last_calculated={:?}",
|
||||||
|
user_email,
|
||||||
|
node.id,
|
||||||
|
node.grid_node_id,
|
||||||
|
node.total_base_slices,
|
||||||
|
node.slice_last_calculated
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
log::info!(
|
||||||
|
target: "debug.slice_trace",
|
||||||
|
"add_multiple_grid_nodes:no_nodes_added user={} (all were duplicates or failed)",
|
||||||
|
user_email
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
log::info!(
|
||||||
|
target: "debug.slice_trace",
|
||||||
|
"add_multiple_grid_nodes:complete user={} result_count={}",
|
||||||
|
user_email,
|
||||||
|
added_nodes.len()
|
||||||
|
);
|
||||||
|
|
||||||
Ok(added_nodes)
|
Ok(added_nodes)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -143,12 +143,30 @@ impl SliceCalculatorService {
|
|||||||
|
|
||||||
/// Calculate maximum base slices from node capacity
|
/// Calculate maximum base slices from node capacity
|
||||||
pub fn calculate_max_base_slices(&self, capacity: &NodeCapacity) -> u32 {
|
pub fn calculate_max_base_slices(&self, capacity: &NodeCapacity) -> u32 {
|
||||||
|
log::info!(
|
||||||
|
target: "debug.slice_trace",
|
||||||
|
"calculate_max_base_slices:start capacity={:?} base_slice={:?}",
|
||||||
|
capacity,
|
||||||
|
self.base_slice
|
||||||
|
);
|
||||||
|
|
||||||
let cpu_slices = capacity.cpu_cores as u32 / self.base_slice.cpu_cores;
|
let cpu_slices = capacity.cpu_cores as u32 / self.base_slice.cpu_cores;
|
||||||
let memory_slices = capacity.memory_gb as u32 / self.base_slice.memory_gb;
|
let memory_slices = capacity.memory_gb as u32 / self.base_slice.memory_gb;
|
||||||
let storage_slices = capacity.storage_gb as u32 / self.base_slice.storage_gb;
|
let storage_slices = capacity.storage_gb as u32 / self.base_slice.storage_gb;
|
||||||
|
|
||||||
|
let result = std::cmp::min(std::cmp::min(cpu_slices, memory_slices), storage_slices);
|
||||||
|
|
||||||
|
log::info!(
|
||||||
|
target: "debug.slice_trace",
|
||||||
|
"calculate_max_base_slices:result cpu_slices={} memory_slices={} storage_slices={} limiting_factor={}",
|
||||||
|
cpu_slices,
|
||||||
|
memory_slices,
|
||||||
|
storage_slices,
|
||||||
|
result
|
||||||
|
);
|
||||||
|
|
||||||
// Return the limiting factor
|
// Return the limiting factor
|
||||||
std::cmp::min(std::cmp::min(cpu_slices, memory_slices), storage_slices)
|
result
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Generate all possible slice combinations from available base slices
|
/// Generate all possible slice combinations from available base slices
|
||||||
@@ -159,10 +177,31 @@ impl SliceCalculatorService {
|
|||||||
node: &FarmNode,
|
node: &FarmNode,
|
||||||
resource_provider_email: &str
|
resource_provider_email: &str
|
||||||
) -> Vec<SliceCombination> {
|
) -> Vec<SliceCombination> {
|
||||||
|
log::info!(
|
||||||
|
target: "debug.slice_trace",
|
||||||
|
"generate_slice_combinations:start max_base_slices={} allocated_slices={} node_id={} user={}",
|
||||||
|
max_base_slices,
|
||||||
|
allocated_slices,
|
||||||
|
node.id,
|
||||||
|
resource_provider_email
|
||||||
|
);
|
||||||
|
|
||||||
let available_base_slices = max_base_slices.saturating_sub(allocated_slices);
|
let available_base_slices = max_base_slices.saturating_sub(allocated_slices);
|
||||||
let mut combinations = Vec::new();
|
let mut combinations = Vec::new();
|
||||||
|
|
||||||
|
log::info!(
|
||||||
|
target: "debug.slice_trace",
|
||||||
|
"generate_slice_combinations:available_base_slices={} node_id={}",
|
||||||
|
available_base_slices,
|
||||||
|
node.id
|
||||||
|
);
|
||||||
|
|
||||||
if available_base_slices == 0 {
|
if available_base_slices == 0 {
|
||||||
|
log::info!(
|
||||||
|
target: "debug.slice_trace",
|
||||||
|
"generate_slice_combinations:no_available_slices node_id={} returning_empty",
|
||||||
|
node.id
|
||||||
|
);
|
||||||
return combinations;
|
return combinations;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -216,6 +255,30 @@ impl SliceCalculatorService {
|
|||||||
|
|
||||||
// Sort by multiplier (smallest slices first)
|
// Sort by multiplier (smallest slices first)
|
||||||
combinations.sort_by_key(|c| c.multiplier);
|
combinations.sort_by_key(|c| c.multiplier);
|
||||||
|
|
||||||
|
log::info!(
|
||||||
|
target: "debug.slice_trace",
|
||||||
|
"generate_slice_combinations:result node_id={} combinations_count={} available_base_slices={}",
|
||||||
|
node.id,
|
||||||
|
combinations.len(),
|
||||||
|
available_base_slices
|
||||||
|
);
|
||||||
|
|
||||||
|
// DEBUG: Log each combination for detailed analysis
|
||||||
|
for combination in &combinations {
|
||||||
|
log::info!(
|
||||||
|
target: "debug.slice_trace",
|
||||||
|
"generate_slice_combinations:combination node_id={} id={} multiplier={} quantity={} cpu={} memory={} storage={}",
|
||||||
|
node.id,
|
||||||
|
combination.id,
|
||||||
|
combination.multiplier,
|
||||||
|
combination.quantity_available,
|
||||||
|
combination.cpu_cores,
|
||||||
|
combination.memory_gb,
|
||||||
|
combination.storage_gb
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
combinations
|
combinations
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,47 +0,0 @@
|
|||||||
{
|
|
||||||
"user_email": "account@example.com",
|
|
||||||
"wallet_balance_usd": 0.0,
|
|
||||||
"transactions": [],
|
|
||||||
"staked_amount_usd": 0.0,
|
|
||||||
"pool_positions": {},
|
|
||||||
"name": "account",
|
|
||||||
"country": null,
|
|
||||||
"timezone": null,
|
|
||||||
"password_hash": "$2b$12$.JKEdRSl1XdJ0PoF38vPZeG1t1iP5X48mVix0IEwvpPwCR8BoMa2m",
|
|
||||||
"services": [],
|
|
||||||
"service_requests": [],
|
|
||||||
"service_bookings": [],
|
|
||||||
"availability": null,
|
|
||||||
"slas": [],
|
|
||||||
"apps": [],
|
|
||||||
"app_deployments": [],
|
|
||||||
"deleted": null,
|
|
||||||
"deleted_at": null,
|
|
||||||
"deletion_reason": null,
|
|
||||||
"nodes": [],
|
|
||||||
"farmer_earnings": [],
|
|
||||||
"farmer_settings": null,
|
|
||||||
"slice_products": [],
|
|
||||||
"user_activities": [],
|
|
||||||
"user_preferences": null,
|
|
||||||
"usage_statistics": null,
|
|
||||||
"orders": [],
|
|
||||||
"active_product_rentals": [],
|
|
||||||
"farmer_rental_earnings": [],
|
|
||||||
"node_rentals": [],
|
|
||||||
"node_groups": [],
|
|
||||||
"slice_rentals": [],
|
|
||||||
"slice_assignments": [],
|
|
||||||
"display_currency": "USD",
|
|
||||||
"quick_topup_amounts": [
|
|
||||||
10.0,
|
|
||||||
25.0,
|
|
||||||
50.0,
|
|
||||||
100.0
|
|
||||||
],
|
|
||||||
"auto_topup_settings": null,
|
|
||||||
"products": [],
|
|
||||||
"owned_products": [],
|
|
||||||
"owned_product_ids": [],
|
|
||||||
"ssh_keys": []
|
|
||||||
}
|
|
@@ -1,47 +0,0 @@
|
|||||||
{
|
|
||||||
"user_email": "as@example.com",
|
|
||||||
"wallet_balance_usd": 0.0,
|
|
||||||
"transactions": [],
|
|
||||||
"staked_amount_usd": 0.0,
|
|
||||||
"pool_positions": {},
|
|
||||||
"name": "as",
|
|
||||||
"country": null,
|
|
||||||
"timezone": null,
|
|
||||||
"password_hash": "$2b$12$ufHU5KPFcSoX6MRyCS8nXeBl.ABeo3jQX8mwy7s5KWvX/ZSn3Sqku",
|
|
||||||
"services": [],
|
|
||||||
"service_requests": [],
|
|
||||||
"service_bookings": [],
|
|
||||||
"availability": null,
|
|
||||||
"slas": [],
|
|
||||||
"apps": [],
|
|
||||||
"app_deployments": [],
|
|
||||||
"deleted": true,
|
|
||||||
"deleted_at": "2025-08-28T02:06:04.008732444+00:00",
|
|
||||||
"deletion_reason": "User requested account deletion",
|
|
||||||
"nodes": [],
|
|
||||||
"farmer_earnings": [],
|
|
||||||
"farmer_settings": null,
|
|
||||||
"slice_products": [],
|
|
||||||
"user_activities": [],
|
|
||||||
"user_preferences": null,
|
|
||||||
"usage_statistics": null,
|
|
||||||
"orders": [],
|
|
||||||
"active_product_rentals": [],
|
|
||||||
"farmer_rental_earnings": [],
|
|
||||||
"node_rentals": [],
|
|
||||||
"node_groups": [],
|
|
||||||
"slice_rentals": [],
|
|
||||||
"slice_assignments": [],
|
|
||||||
"display_currency": "USD",
|
|
||||||
"quick_topup_amounts": [
|
|
||||||
10.0,
|
|
||||||
25.0,
|
|
||||||
50.0,
|
|
||||||
100.0
|
|
||||||
],
|
|
||||||
"auto_topup_settings": null,
|
|
||||||
"products": [],
|
|
||||||
"owned_products": [],
|
|
||||||
"owned_product_ids": [],
|
|
||||||
"ssh_keys": []
|
|
||||||
}
|
|
@@ -1,82 +0,0 @@
|
|||||||
{
|
|
||||||
"user_email": "asdf@example.com",
|
|
||||||
"wallet_balance_usd": 0.0,
|
|
||||||
"transactions": [],
|
|
||||||
"staked_amount_usd": 0.0,
|
|
||||||
"pool_positions": {},
|
|
||||||
"name": "Johny",
|
|
||||||
"country": "Bahamas",
|
|
||||||
"timezone": "UTC-03:30",
|
|
||||||
"password_hash": "$2b$12$JQLUbKe4Ac/VoTmfxENJzebRhbutn6vVSKpwqgeqZdD78L55exXpC",
|
|
||||||
"services": [],
|
|
||||||
"service_requests": [],
|
|
||||||
"service_bookings": [],
|
|
||||||
"availability": null,
|
|
||||||
"slas": [],
|
|
||||||
"apps": [],
|
|
||||||
"app_deployments": [],
|
|
||||||
"deleted": true,
|
|
||||||
"deleted_at": "2025-08-28T02:03:31.789334123+00:00",
|
|
||||||
"deletion_reason": "User requested account deletion",
|
|
||||||
"nodes": [],
|
|
||||||
"farmer_earnings": [],
|
|
||||||
"farmer_settings": null,
|
|
||||||
"slice_products": [],
|
|
||||||
"user_activities": [],
|
|
||||||
"user_preferences": {
|
|
||||||
"theme": "light",
|
|
||||||
"language": "en",
|
|
||||||
"currency_display": "USD",
|
|
||||||
"email_notifications": true,
|
|
||||||
"push_notifications": true,
|
|
||||||
"marketing_emails": false,
|
|
||||||
"data_sharing": false,
|
|
||||||
"preferred_currency": "USD",
|
|
||||||
"preferred_language": "en",
|
|
||||||
"timezone": "UTC",
|
|
||||||
"notification_settings": {
|
|
||||||
"email_enabled": true,
|
|
||||||
"push_enabled": false,
|
|
||||||
"sms_enabled": false,
|
|
||||||
"slack_webhook": null,
|
|
||||||
"discord_webhook": null,
|
|
||||||
"enabled": false,
|
|
||||||
"push": true,
|
|
||||||
"node_offline_alerts": true,
|
|
||||||
"maintenance_reminders": true,
|
|
||||||
"earnings_reports": false
|
|
||||||
},
|
|
||||||
"privacy_settings": {
|
|
||||||
"profile_public": false,
|
|
||||||
"email_public": false,
|
|
||||||
"activity_public": false,
|
|
||||||
"stats_public": false,
|
|
||||||
"profile_visibility": "private",
|
|
||||||
"marketing_emails": false,
|
|
||||||
"data_sharing": false,
|
|
||||||
"activity_tracking": false
|
|
||||||
},
|
|
||||||
"dashboard_layout": "grid",
|
|
||||||
"last_payment_method": null
|
|
||||||
},
|
|
||||||
"usage_statistics": null,
|
|
||||||
"orders": [],
|
|
||||||
"active_product_rentals": [],
|
|
||||||
"farmer_rental_earnings": [],
|
|
||||||
"node_rentals": [],
|
|
||||||
"node_groups": [],
|
|
||||||
"slice_rentals": [],
|
|
||||||
"slice_assignments": [],
|
|
||||||
"display_currency": "CAD",
|
|
||||||
"quick_topup_amounts": [
|
|
||||||
10.0,
|
|
||||||
25.0,
|
|
||||||
50.0,
|
|
||||||
100.0
|
|
||||||
],
|
|
||||||
"auto_topup_settings": null,
|
|
||||||
"products": [],
|
|
||||||
"owned_products": [],
|
|
||||||
"owned_product_ids": [],
|
|
||||||
"ssh_keys": []
|
|
||||||
}
|
|
@@ -1,82 +0,0 @@
|
|||||||
{
|
|
||||||
"user_email": "name@example.com",
|
|
||||||
"wallet_balance_usd": 0.0,
|
|
||||||
"transactions": [],
|
|
||||||
"staked_amount_usd": 0.0,
|
|
||||||
"pool_positions": {},
|
|
||||||
"name": "name2",
|
|
||||||
"country": "",
|
|
||||||
"timezone": "",
|
|
||||||
"password_hash": "$2b$12$RUOgaY9dKK6QGrQ8E.Fsgus0eteppjzG6NeBDtgAPZKdGblK56PFq",
|
|
||||||
"services": [],
|
|
||||||
"service_requests": [],
|
|
||||||
"service_bookings": [],
|
|
||||||
"availability": null,
|
|
||||||
"slas": [],
|
|
||||||
"apps": [],
|
|
||||||
"app_deployments": [],
|
|
||||||
"deleted": true,
|
|
||||||
"deleted_at": "2025-08-22T15:08:44.196197805+00:00",
|
|
||||||
"deletion_reason": "User requested account deletion",
|
|
||||||
"nodes": [],
|
|
||||||
"farmer_earnings": [],
|
|
||||||
"farmer_settings": null,
|
|
||||||
"slice_products": [],
|
|
||||||
"user_activities": [],
|
|
||||||
"user_preferences": {
|
|
||||||
"theme": "light",
|
|
||||||
"language": "en",
|
|
||||||
"currency_display": "USD",
|
|
||||||
"email_notifications": true,
|
|
||||||
"push_notifications": true,
|
|
||||||
"marketing_emails": false,
|
|
||||||
"data_sharing": false,
|
|
||||||
"preferred_currency": "USD",
|
|
||||||
"preferred_language": "en",
|
|
||||||
"timezone": "UTC",
|
|
||||||
"notification_settings": {
|
|
||||||
"email_enabled": true,
|
|
||||||
"push_enabled": true,
|
|
||||||
"sms_enabled": false,
|
|
||||||
"slack_webhook": null,
|
|
||||||
"discord_webhook": null,
|
|
||||||
"enabled": false,
|
|
||||||
"push": true,
|
|
||||||
"node_offline_alerts": true,
|
|
||||||
"maintenance_reminders": true,
|
|
||||||
"earnings_reports": false
|
|
||||||
},
|
|
||||||
"privacy_settings": {
|
|
||||||
"profile_public": false,
|
|
||||||
"email_public": false,
|
|
||||||
"activity_public": false,
|
|
||||||
"stats_public": false,
|
|
||||||
"profile_visibility": "private",
|
|
||||||
"marketing_emails": false,
|
|
||||||
"data_sharing": false,
|
|
||||||
"activity_tracking": false
|
|
||||||
},
|
|
||||||
"dashboard_layout": "grid",
|
|
||||||
"last_payment_method": null
|
|
||||||
},
|
|
||||||
"usage_statistics": null,
|
|
||||||
"orders": [],
|
|
||||||
"active_product_rentals": [],
|
|
||||||
"farmer_rental_earnings": [],
|
|
||||||
"node_rentals": [],
|
|
||||||
"node_groups": [],
|
|
||||||
"slice_rentals": [],
|
|
||||||
"slice_assignments": [],
|
|
||||||
"display_currency": "USD",
|
|
||||||
"quick_topup_amounts": [
|
|
||||||
10.0,
|
|
||||||
25.0,
|
|
||||||
50.0,
|
|
||||||
100.0
|
|
||||||
],
|
|
||||||
"auto_topup_settings": null,
|
|
||||||
"products": [],
|
|
||||||
"owned_products": [],
|
|
||||||
"owned_product_ids": [],
|
|
||||||
"ssh_keys": []
|
|
||||||
}
|
|
@@ -1,231 +0,0 @@
|
|||||||
{
|
|
||||||
"user_email": "new@example.com",
|
|
||||||
"wallet_balance_usd": 887.0,
|
|
||||||
"transactions": [
|
|
||||||
{
|
|
||||||
"id": "41594920-3783-4def-bf88-c83ad247be8d",
|
|
||||||
"user_id": "new@example.com",
|
|
||||||
"transaction_type": {
|
|
||||||
"Purchase": {
|
|
||||||
"product_id": "credits"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"amount": 888.0,
|
|
||||||
"currency": "USD",
|
|
||||||
"exchange_rate_usd": 1.0,
|
|
||||||
"amount_usd": 888.0,
|
|
||||||
"description": "Credits purchase via paypal",
|
|
||||||
"reference_id": "41594920-3783-4def-bf88-c83ad247be8d",
|
|
||||||
"metadata": null,
|
|
||||||
"timestamp": "2025-08-27T07:00:10.506808621Z",
|
|
||||||
"status": "Completed"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "69a6ad1c-52dd-477b-b3ae-5784cc18773f",
|
|
||||||
"user_id": "new@example.com",
|
|
||||||
"transaction_type": {
|
|
||||||
"CreditsTransfer": {
|
|
||||||
"to_user": "user1@example.com",
|
|
||||||
"note": null
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"amount": 1.0,
|
|
||||||
"currency": "USD",
|
|
||||||
"exchange_rate_usd": 1.0,
|
|
||||||
"amount_usd": 1.0,
|
|
||||||
"description": "Credits transfer to user1@example.com: No note",
|
|
||||||
"reference_id": "transfer-016c4451-eb04-4373-88fe-31c0a1375996",
|
|
||||||
"metadata": null,
|
|
||||||
"timestamp": "2025-08-27T07:00:18.582850390Z",
|
|
||||||
"status": "Completed"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"staked_amount_usd": 0.0,
|
|
||||||
"pool_positions": {},
|
|
||||||
"name": "new",
|
|
||||||
"country": null,
|
|
||||||
"timezone": null,
|
|
||||||
"password_hash": "$2b$12$4urVNAajnRgoyWBQWW9PyuQRCiWehnqK.71/qu6PyEIEVVDW/Vo0W",
|
|
||||||
"services": [],
|
|
||||||
"service_requests": [],
|
|
||||||
"service_bookings": [],
|
|
||||||
"availability": null,
|
|
||||||
"slas": [],
|
|
||||||
"apps": [],
|
|
||||||
"app_deployments": [],
|
|
||||||
"deleted": null,
|
|
||||||
"deleted_at": null,
|
|
||||||
"deletion_reason": null,
|
|
||||||
"nodes": [],
|
|
||||||
"farmer_earnings": [],
|
|
||||||
"farmer_settings": null,
|
|
||||||
"slice_products": [],
|
|
||||||
"user_activities": [
|
|
||||||
{
|
|
||||||
"id": "028ec6ce-6e86-4da6-a514-0a4a2e249e9e",
|
|
||||||
"user_email": "new@example.com",
|
|
||||||
"activity_type": "WalletTransaction",
|
|
||||||
"description": "Transferred $1 credits to user1@example.com",
|
|
||||||
"metadata": null,
|
|
||||||
"timestamp": "2025-08-27T07:00:18.582870563Z",
|
|
||||||
"ip_address": null,
|
|
||||||
"user_agent": null,
|
|
||||||
"session_id": null,
|
|
||||||
"importance": "Medium",
|
|
||||||
"category": "Wallet"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "05d20135-52af-4fb4-9f51-77bcf1d5010c",
|
|
||||||
"user_email": "new@example.com",
|
|
||||||
"activity_type": "WalletTransaction",
|
|
||||||
"description": "Purchased $888 credits via paypal",
|
|
||||||
"metadata": null,
|
|
||||||
"timestamp": "2025-08-27T07:00:10.507159414Z",
|
|
||||||
"ip_address": null,
|
|
||||||
"user_agent": null,
|
|
||||||
"session_id": null,
|
|
||||||
"importance": "Medium",
|
|
||||||
"category": "Wallet"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"user_preferences": {
|
|
||||||
"theme": "light",
|
|
||||||
"language": "en",
|
|
||||||
"currency_display": "symbol",
|
|
||||||
"email_notifications": true,
|
|
||||||
"push_notifications": true,
|
|
||||||
"marketing_emails": false,
|
|
||||||
"data_sharing": false,
|
|
||||||
"preferred_currency": "USD",
|
|
||||||
"preferred_language": "en",
|
|
||||||
"timezone": "UTC",
|
|
||||||
"notification_settings": {
|
|
||||||
"email_enabled": true,
|
|
||||||
"push_enabled": true,
|
|
||||||
"sms_enabled": false,
|
|
||||||
"slack_webhook": null,
|
|
||||||
"discord_webhook": null,
|
|
||||||
"enabled": true,
|
|
||||||
"push": true,
|
|
||||||
"node_offline_alerts": true,
|
|
||||||
"maintenance_reminders": true,
|
|
||||||
"earnings_reports": true
|
|
||||||
},
|
|
||||||
"privacy_settings": {
|
|
||||||
"profile_public": false,
|
|
||||||
"email_public": false,
|
|
||||||
"activity_public": false,
|
|
||||||
"stats_public": false,
|
|
||||||
"profile_visibility": "private",
|
|
||||||
"marketing_emails": false,
|
|
||||||
"data_sharing": false,
|
|
||||||
"activity_tracking": true
|
|
||||||
},
|
|
||||||
"dashboard_layout": "default",
|
|
||||||
"last_payment_method": "paypal"
|
|
||||||
},
|
|
||||||
"usage_statistics": null,
|
|
||||||
"orders": [],
|
|
||||||
"active_product_rentals": [],
|
|
||||||
"farmer_rental_earnings": [],
|
|
||||||
"node_rentals": [],
|
|
||||||
"node_groups": [
|
|
||||||
{
|
|
||||||
"id": "compute",
|
|
||||||
"name": "Compute",
|
|
||||||
"description": "General compute workloads",
|
|
||||||
"node_ids": [],
|
|
||||||
"group_type": {
|
|
||||||
"Default": "compute"
|
|
||||||
},
|
|
||||||
"updated_at": "2025-08-27T07:00:02.494038779Z",
|
|
||||||
"created_at": "2025-08-27T07:00:02.494030010Z",
|
|
||||||
"group_config": {
|
|
||||||
"group_name": "Compute Nodes",
|
|
||||||
"max_nodes": 100,
|
|
||||||
"allocation_strategy": "balanced",
|
|
||||||
"auto_scaling": true,
|
|
||||||
"preferred_slice_formats": [
|
|
||||||
"1x1",
|
|
||||||
"2x2"
|
|
||||||
],
|
|
||||||
"default_pricing": 50.0,
|
|
||||||
"resource_optimization": {
|
|
||||||
"cpu_optimization": 0.5,
|
|
||||||
"memory_optimization": 0.5,
|
|
||||||
"storage_optimization": 0.5,
|
|
||||||
"network_optimization": 0.5
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "storage",
|
|
||||||
"name": "Storage",
|
|
||||||
"description": "Storage and data workloads",
|
|
||||||
"node_ids": [],
|
|
||||||
"group_type": {
|
|
||||||
"Default": "storage"
|
|
||||||
},
|
|
||||||
"updated_at": "2025-08-27T07:00:02.494050216Z",
|
|
||||||
"created_at": "2025-08-27T07:00:02.494049839Z",
|
|
||||||
"group_config": {
|
|
||||||
"group_name": "Storage Nodes",
|
|
||||||
"max_nodes": 50,
|
|
||||||
"allocation_strategy": "storage_optimized",
|
|
||||||
"auto_scaling": false,
|
|
||||||
"preferred_slice_formats": [
|
|
||||||
"1x1"
|
|
||||||
],
|
|
||||||
"default_pricing": 30.0,
|
|
||||||
"resource_optimization": {
|
|
||||||
"cpu_optimization": 0.3,
|
|
||||||
"memory_optimization": 0.3,
|
|
||||||
"storage_optimization": 0.8,
|
|
||||||
"network_optimization": 0.6
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "ai-gpu",
|
|
||||||
"name": "AI/GPU",
|
|
||||||
"description": "AI and GPU-intensive workloads",
|
|
||||||
"node_ids": [],
|
|
||||||
"group_type": {
|
|
||||||
"Default": "ai-gpu"
|
|
||||||
},
|
|
||||||
"updated_at": "2025-08-27T07:00:02.494057927Z",
|
|
||||||
"created_at": "2025-08-27T07:00:02.494057555Z",
|
|
||||||
"group_config": {
|
|
||||||
"group_name": "AI/GPU Nodes",
|
|
||||||
"max_nodes": 20,
|
|
||||||
"allocation_strategy": "gpu_optimized",
|
|
||||||
"auto_scaling": true,
|
|
||||||
"preferred_slice_formats": [
|
|
||||||
"4x4",
|
|
||||||
"8x8"
|
|
||||||
],
|
|
||||||
"default_pricing": 200.0,
|
|
||||||
"resource_optimization": {
|
|
||||||
"cpu_optimization": 0.8,
|
|
||||||
"memory_optimization": 0.7,
|
|
||||||
"storage_optimization": 0.4,
|
|
||||||
"network_optimization": 0.5
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"slice_rentals": [],
|
|
||||||
"slice_assignments": [],
|
|
||||||
"display_currency": "USD",
|
|
||||||
"quick_topup_amounts": [
|
|
||||||
10.0,
|
|
||||||
25.0,
|
|
||||||
50.0,
|
|
||||||
100.0
|
|
||||||
],
|
|
||||||
"auto_topup_settings": null,
|
|
||||||
"products": [],
|
|
||||||
"owned_products": [],
|
|
||||||
"owned_product_ids": [],
|
|
||||||
"ssh_keys": []
|
|
||||||
}
|
|
@@ -1 +0,0 @@
|
|||||||
[]
|
|
@@ -1,12 +0,0 @@
|
|||||||
[
|
|
||||||
{"id":"user1","email":"user1@example.com","password":"password","roles":["provider"],"profile":{"display_name":"User 1","kind":"provider"}},
|
|
||||||
{"id":"user2","email":"user2@example.com","password":"password","roles":["provider"],"profile":{"display_name":"User 2","kind":"provider"}},
|
|
||||||
{"id":"user3","email":"user3@example.com","password":"password","roles":["provider"],"profile":{"display_name":"User 3","kind":"provider"}},
|
|
||||||
{"id":"user4","email":"user4@example.com","password":"password","roles":["provider","buyer"],"profile":{"display_name":"User 4","kind":"provider_buyer"}},
|
|
||||||
{"id":"user5","email":"user5@example.com","password":"password","roles":["provider","buyer"],"profile":{"display_name":"User 5","kind":"provider_buyer"}},
|
|
||||||
{"id":"user6","email":"user6@example.com","password":"password","roles":["provider","buyer"],"profile":{"display_name":"User 6","kind":"provider_buyer"}},
|
|
||||||
{"id":"user7","email":"user7@example.com","password":"password","roles":["buyer"],"profile":{"display_name":"User 7","kind":"buyer"}},
|
|
||||||
{"id":"user8","email":"user8@example.com","password":"password","roles":["buyer"],"profile":{"display_name":"User 8","kind":"buyer"}},
|
|
||||||
{"id":"user9","email":"user9@example.com","password":"password","roles":["buyer"],"profile":{"display_name":"User 9","kind":"buyer"}},
|
|
||||||
{"id":"user10","email":"user10@example.com","password":"password","roles":["buyer"],"profile":{"display_name":"User 10","kind":"buyer"}}
|
|
||||||
]
|
|
@@ -1 +0,0 @@
|
|||||||
[]
|
|
File diff suppressed because it is too large
Load Diff
@@ -1,49 +0,0 @@
|
|||||||
{
|
|
||||||
"user_email": "user111@example.com",
|
|
||||||
"wallet_balance_usd": 0.0,
|
|
||||||
"transactions": [],
|
|
||||||
"staked_amount_usd": 0.0,
|
|
||||||
"pool_positions": {},
|
|
||||||
"name": "user111",
|
|
||||||
"country": null,
|
|
||||||
"timezone": null,
|
|
||||||
"password_hash": "$2b$12$0I0taABmXC9qgK/oe1ynjO/eVIG4sdguLm6DLQffvbjU33jkSe6Ti",
|
|
||||||
"services": [],
|
|
||||||
"service_requests": [],
|
|
||||||
"service_bookings": [],
|
|
||||||
"availability": null,
|
|
||||||
"slas": [],
|
|
||||||
"apps": [],
|
|
||||||
"application_deployments": [],
|
|
||||||
"deleted": null,
|
|
||||||
"deleted_at": null,
|
|
||||||
"deletion_reason": null,
|
|
||||||
"nodes": [],
|
|
||||||
"resource_provider_earnings": [],
|
|
||||||
"resource_provider_settings": null,
|
|
||||||
"slice_products": [],
|
|
||||||
"user_activities": [],
|
|
||||||
"user_preferences": null,
|
|
||||||
"usage_statistics": null,
|
|
||||||
"orders": [],
|
|
||||||
"active_product_rentals": [],
|
|
||||||
"resource_provider_rental_earnings": [],
|
|
||||||
"node_rentals": [],
|
|
||||||
"node_groups": [],
|
|
||||||
"slice_rentals": [],
|
|
||||||
"slice_assignments": [],
|
|
||||||
"display_currency": "MC",
|
|
||||||
"quick_topup_amounts": [
|
|
||||||
10.0,
|
|
||||||
25.0,
|
|
||||||
50.0,
|
|
||||||
100.0
|
|
||||||
],
|
|
||||||
"auto_topup_settings": null,
|
|
||||||
"products": [],
|
|
||||||
"owned_products": [],
|
|
||||||
"owned_product_ids": [],
|
|
||||||
"ssh_keys": [],
|
|
||||||
"message_threads": null,
|
|
||||||
"messages": null
|
|
||||||
}
|
|
@@ -1,541 +0,0 @@
|
|||||||
{
|
|
||||||
"user_email": "user123@example.com",
|
|
||||||
"wallet_balance_usd": 12.0,
|
|
||||||
"transactions": [
|
|
||||||
{
|
|
||||||
"id": "5590075e-2ec3-4ece-b64e-2ab2bd8a4a92",
|
|
||||||
"user_id": "user123@example.com",
|
|
||||||
"transaction_type": {
|
|
||||||
"Purchase": {
|
|
||||||
"product_id": "credits"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"amount": 12.0,
|
|
||||||
"currency": "USD",
|
|
||||||
"exchange_rate_usd": 1.0,
|
|
||||||
"amount_usd": 12.0,
|
|
||||||
"description": "Credits purchase via credit_card",
|
|
||||||
"reference_id": "5590075e-2ec3-4ece-b64e-2ab2bd8a4a92",
|
|
||||||
"metadata": null,
|
|
||||||
"timestamp": "2025-09-08T17:16:29.777650952Z",
|
|
||||||
"status": "Completed"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"staked_amount_usd": 0.0,
|
|
||||||
"pool_positions": {},
|
|
||||||
"name": "user123",
|
|
||||||
"country": null,
|
|
||||||
"timezone": null,
|
|
||||||
"password_hash": "$2b$12$g8daTd2i0nUXUOJEBFMGKuRhJTNye6hae1hDETWLTKBTPs.3WasQu",
|
|
||||||
"services": [],
|
|
||||||
"service_requests": [],
|
|
||||||
"service_bookings": [],
|
|
||||||
"availability": null,
|
|
||||||
"slas": [],
|
|
||||||
"apps": [],
|
|
||||||
"application_deployments": [],
|
|
||||||
"deleted": null,
|
|
||||||
"deleted_at": null,
|
|
||||||
"deletion_reason": null,
|
|
||||||
"nodes": [
|
|
||||||
{
|
|
||||||
"id": "grid_node_1",
|
|
||||||
"location": "Unknown, Belgium",
|
|
||||||
"status": "Online",
|
|
||||||
"capacity": {
|
|
||||||
"cpu_cores": 56,
|
|
||||||
"memory_gb": 188,
|
|
||||||
"storage_gb": 135975,
|
|
||||||
"bandwidth_mbps": 1000,
|
|
||||||
"ssd_storage_gb": 1863,
|
|
||||||
"hdd_storage_gb": 134112,
|
|
||||||
"ram_gb": 188
|
|
||||||
},
|
|
||||||
"used_capacity": {
|
|
||||||
"cpu_cores": 25,
|
|
||||||
"memory_gb": 92,
|
|
||||||
"storage_gb": 1021,
|
|
||||||
"bandwidth_mbps": 0,
|
|
||||||
"ssd_storage_gb": 1021,
|
|
||||||
"hdd_storage_gb": 0,
|
|
||||||
"ram_gb": 92
|
|
||||||
},
|
|
||||||
"uptime_percentage": 99.0,
|
|
||||||
"farming_start_date": "2025-08-10T03:03:44.241167749Z",
|
|
||||||
"last_updated": "2025-09-09T03:03:44.241194575Z",
|
|
||||||
"utilization_7_day_avg": 65.0,
|
|
||||||
"slice_formats_supported": [
|
|
||||||
"1x1",
|
|
||||||
"2x2",
|
|
||||||
"4x4"
|
|
||||||
],
|
|
||||||
"rental_options": null,
|
|
||||||
"total_base_slices": 0,
|
|
||||||
"allocated_base_slices": 0,
|
|
||||||
"earnings_today_usd": 0.0,
|
|
||||||
"grid_node_id": "1",
|
|
||||||
"available_combinations": [],
|
|
||||||
"slice_allocations": [],
|
|
||||||
"slice_last_calculated": null,
|
|
||||||
"marketplace_sla": {
|
|
||||||
"id": "sla-repair-90a36bcd-b6e2-45e7-872a-baeaa485f220",
|
|
||||||
"name": "Repaired Node SLA",
|
|
||||||
"uptime_guarantee": 99.8,
|
|
||||||
"response_time_hours": 24,
|
|
||||||
"resolution_time_hours": 48,
|
|
||||||
"penalty_rate": 0.01,
|
|
||||||
"uptime_guarantee_percentage": 99.8,
|
|
||||||
"base_slice_price": 0.5,
|
|
||||||
"bandwidth_guarantee_mbps": 100.0,
|
|
||||||
"last_updated": "2025-09-09T03:04:23.227212978Z"
|
|
||||||
},
|
|
||||||
"slice_pricing": {
|
|
||||||
"base_price_per_hour": 1.0,
|
|
||||||
"currency": "USD",
|
|
||||||
"pricing_multiplier": 1.0
|
|
||||||
},
|
|
||||||
"grid_data": {
|
|
||||||
"capacity": {
|
|
||||||
"bandwidth_mbps": 1000,
|
|
||||||
"cpu_cores": 56,
|
|
||||||
"hdd_storage_gb": 134112,
|
|
||||||
"memory_gb": 188,
|
|
||||||
"ram_gb": 188,
|
|
||||||
"ssd_storage_gb": 1863,
|
|
||||||
"storage_gb": 135975
|
|
||||||
},
|
|
||||||
"certification_type": "Diy",
|
|
||||||
"city": "Unknown",
|
|
||||||
"country": "Belgium",
|
|
||||||
"farm_id": 1,
|
|
||||||
"farm_name": "Freefarm",
|
|
||||||
"farming_policy_id": 1,
|
|
||||||
"grid_node_id": 1,
|
|
||||||
"last_updated": "2025-09-09T03:03:44.240833231Z",
|
|
||||||
"location": "Unknown, Belgium",
|
|
||||||
"node_id": 1,
|
|
||||||
"public_ips": [
|
|
||||||
"192.168.1.100"
|
|
||||||
],
|
|
||||||
"status": "Online",
|
|
||||||
"total_resources": {
|
|
||||||
"bandwidth_mbps": 1000,
|
|
||||||
"cpu_cores": 56,
|
|
||||||
"hdd_storage_gb": 134112,
|
|
||||||
"memory_gb": 188,
|
|
||||||
"ram_gb": 188,
|
|
||||||
"ssd_storage_gb": 1863,
|
|
||||||
"storage_gb": 135975
|
|
||||||
},
|
|
||||||
"uptime": 99.5,
|
|
||||||
"used_resources": {
|
|
||||||
"bandwidth_mbps": 0,
|
|
||||||
"cpu_cores": 25,
|
|
||||||
"hdd_storage_gb": 0,
|
|
||||||
"memory_gb": 92,
|
|
||||||
"ram_gb": 92,
|
|
||||||
"ssd_storage_gb": 1021,
|
|
||||||
"storage_gb": 1021
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"slice_formats": null,
|
|
||||||
"name": "Grid Node 1",
|
|
||||||
"region": "Belgium",
|
|
||||||
"node_type": "MyceliumNode",
|
|
||||||
"staking_options": null,
|
|
||||||
"availability_status": "Available",
|
|
||||||
"node_group_id": null,
|
|
||||||
"group_assignment_date": null,
|
|
||||||
"group_slice_format": null,
|
|
||||||
"group_slice_price": null,
|
|
||||||
"last_seen": "2025-09-09T03:03:44.241206636Z",
|
|
||||||
"health_score": 100.0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "grid_node_10",
|
|
||||||
"location": "Unknown, Belgium",
|
|
||||||
"status": "Online",
|
|
||||||
"capacity": {
|
|
||||||
"cpu_cores": 8,
|
|
||||||
"memory_gb": 15,
|
|
||||||
"storage_gb": 402559,
|
|
||||||
"bandwidth_mbps": 1000,
|
|
||||||
"ssd_storage_gb": 223,
|
|
||||||
"hdd_storage_gb": 402336,
|
|
||||||
"ram_gb": 15
|
|
||||||
},
|
|
||||||
"used_capacity": {
|
|
||||||
"cpu_cores": 4,
|
|
||||||
"memory_gb": 10,
|
|
||||||
"storage_gb": 137,
|
|
||||||
"bandwidth_mbps": 0,
|
|
||||||
"ssd_storage_gb": 137,
|
|
||||||
"hdd_storage_gb": 0,
|
|
||||||
"ram_gb": 10
|
|
||||||
},
|
|
||||||
"uptime_percentage": 99.0,
|
|
||||||
"farming_start_date": "2025-08-10T03:10:19.936729614Z",
|
|
||||||
"last_updated": "2025-09-09T03:10:19.936733378Z",
|
|
||||||
"utilization_7_day_avg": 65.0,
|
|
||||||
"slice_formats_supported": [
|
|
||||||
"1x1",
|
|
||||||
"2x2",
|
|
||||||
"4x4"
|
|
||||||
],
|
|
||||||
"rental_options": null,
|
|
||||||
"total_base_slices": 0,
|
|
||||||
"allocated_base_slices": 0,
|
|
||||||
"earnings_today_usd": 0.0,
|
|
||||||
"grid_node_id": "10",
|
|
||||||
"available_combinations": [],
|
|
||||||
"slice_allocations": [],
|
|
||||||
"slice_last_calculated": null,
|
|
||||||
"marketplace_sla": {
|
|
||||||
"id": "sla-repair-e3b05c2c-5eb6-4304-93c0-7a9c7348636a",
|
|
||||||
"name": "Repaired Node SLA",
|
|
||||||
"uptime_guarantee": 99.8,
|
|
||||||
"response_time_hours": 24,
|
|
||||||
"resolution_time_hours": 48,
|
|
||||||
"penalty_rate": 0.01,
|
|
||||||
"uptime_guarantee_percentage": 99.8,
|
|
||||||
"base_slice_price": 0.5,
|
|
||||||
"bandwidth_guarantee_mbps": 100.0,
|
|
||||||
"last_updated": "2025-09-09T03:13:53.570999450Z"
|
|
||||||
},
|
|
||||||
"slice_pricing": {
|
|
||||||
"base_price_per_hour": 1.0,
|
|
||||||
"currency": "USD",
|
|
||||||
"pricing_multiplier": 1.0
|
|
||||||
},
|
|
||||||
"grid_data": {
|
|
||||||
"capacity": {
|
|
||||||
"bandwidth_mbps": 1000,
|
|
||||||
"cpu_cores": 8,
|
|
||||||
"hdd_storage_gb": 402336,
|
|
||||||
"memory_gb": 15,
|
|
||||||
"ram_gb": 15,
|
|
||||||
"ssd_storage_gb": 223,
|
|
||||||
"storage_gb": 402559
|
|
||||||
},
|
|
||||||
"certification_type": "Diy",
|
|
||||||
"city": "Unknown",
|
|
||||||
"country": "Belgium",
|
|
||||||
"farm_id": 1,
|
|
||||||
"farm_name": "Freefarm",
|
|
||||||
"farming_policy_id": 1,
|
|
||||||
"grid_node_id": 10,
|
|
||||||
"last_updated": "2025-09-09T03:10:19.936676347Z",
|
|
||||||
"location": "Unknown, Belgium",
|
|
||||||
"node_id": 10,
|
|
||||||
"public_ips": [
|
|
||||||
"192.168.1.100"
|
|
||||||
],
|
|
||||||
"status": "Online",
|
|
||||||
"total_resources": {
|
|
||||||
"bandwidth_mbps": 1000,
|
|
||||||
"cpu_cores": 8,
|
|
||||||
"hdd_storage_gb": 402336,
|
|
||||||
"memory_gb": 15,
|
|
||||||
"ram_gb": 15,
|
|
||||||
"ssd_storage_gb": 223,
|
|
||||||
"storage_gb": 402559
|
|
||||||
},
|
|
||||||
"uptime": 99.5,
|
|
||||||
"used_resources": {
|
|
||||||
"bandwidth_mbps": 0,
|
|
||||||
"cpu_cores": 4,
|
|
||||||
"hdd_storage_gb": 0,
|
|
||||||
"memory_gb": 10,
|
|
||||||
"ram_gb": 10,
|
|
||||||
"ssd_storage_gb": 137,
|
|
||||||
"storage_gb": 137
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"slice_formats": null,
|
|
||||||
"name": "Grid Node 10",
|
|
||||||
"region": "Belgium",
|
|
||||||
"node_type": "MyceliumNode",
|
|
||||||
"staking_options": null,
|
|
||||||
"availability_status": "Available",
|
|
||||||
"node_group_id": null,
|
|
||||||
"group_assignment_date": null,
|
|
||||||
"group_slice_format": null,
|
|
||||||
"group_slice_price": null,
|
|
||||||
"last_seen": "2025-09-09T03:10:19.936736220Z",
|
|
||||||
"health_score": 100.0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "grid_node_12",
|
|
||||||
"location": "Unknown, Belgium",
|
|
||||||
"status": "Online",
|
|
||||||
"capacity": {
|
|
||||||
"cpu_cores": 8,
|
|
||||||
"memory_gb": 15,
|
|
||||||
"storage_gb": 402559,
|
|
||||||
"bandwidth_mbps": 1000,
|
|
||||||
"ssd_storage_gb": 223,
|
|
||||||
"hdd_storage_gb": 402336,
|
|
||||||
"ram_gb": 15
|
|
||||||
},
|
|
||||||
"used_capacity": {
|
|
||||||
"cpu_cores": 5,
|
|
||||||
"memory_gb": 12,
|
|
||||||
"storage_gb": 165,
|
|
||||||
"bandwidth_mbps": 0,
|
|
||||||
"ssd_storage_gb": 165,
|
|
||||||
"hdd_storage_gb": 0,
|
|
||||||
"ram_gb": 12
|
|
||||||
},
|
|
||||||
"uptime_percentage": 99.0,
|
|
||||||
"farming_start_date": "2025-08-10T03:30:24.732131670Z",
|
|
||||||
"last_updated": "2025-09-09T03:30:24.732143334Z",
|
|
||||||
"utilization_7_day_avg": 65.0,
|
|
||||||
"slice_formats_supported": [
|
|
||||||
"1x1",
|
|
||||||
"2x2",
|
|
||||||
"4x4"
|
|
||||||
],
|
|
||||||
"rental_options": null,
|
|
||||||
"total_base_slices": 0,
|
|
||||||
"allocated_base_slices": 0,
|
|
||||||
"earnings_today_usd": 0.0,
|
|
||||||
"grid_node_id": "12",
|
|
||||||
"available_combinations": [],
|
|
||||||
"slice_allocations": [],
|
|
||||||
"slice_last_calculated": null,
|
|
||||||
"marketplace_sla": {
|
|
||||||
"id": "sla-repair-25c05a40-790f-4a80-8ef8-fa12a726c0ff",
|
|
||||||
"name": "Repaired Node SLA",
|
|
||||||
"uptime_guarantee": 99.8,
|
|
||||||
"response_time_hours": 24,
|
|
||||||
"resolution_time_hours": 48,
|
|
||||||
"penalty_rate": 0.01,
|
|
||||||
"uptime_guarantee_percentage": 99.8,
|
|
||||||
"base_slice_price": 0.5,
|
|
||||||
"bandwidth_guarantee_mbps": 100.0,
|
|
||||||
"last_updated": "2025-09-09T03:30:27.416132016Z"
|
|
||||||
},
|
|
||||||
"slice_pricing": {
|
|
||||||
"base_price_per_hour": 1.0,
|
|
||||||
"currency": "USD",
|
|
||||||
"pricing_multiplier": 1.0
|
|
||||||
},
|
|
||||||
"grid_data": {
|
|
||||||
"capacity": {
|
|
||||||
"bandwidth_mbps": 1000,
|
|
||||||
"cpu_cores": 8,
|
|
||||||
"hdd_storage_gb": 402336,
|
|
||||||
"memory_gb": 15,
|
|
||||||
"ram_gb": 15,
|
|
||||||
"ssd_storage_gb": 223,
|
|
||||||
"storage_gb": 402559
|
|
||||||
},
|
|
||||||
"certification_type": "Diy",
|
|
||||||
"city": "Unknown",
|
|
||||||
"country": "Belgium",
|
|
||||||
"farm_id": 1,
|
|
||||||
"farm_name": "Freefarm",
|
|
||||||
"farming_policy_id": 1,
|
|
||||||
"grid_node_id": 12,
|
|
||||||
"last_updated": "2025-09-09T03:30:24.731928799Z",
|
|
||||||
"location": "Unknown, Belgium",
|
|
||||||
"node_id": 12,
|
|
||||||
"public_ips": [
|
|
||||||
"192.168.1.100"
|
|
||||||
],
|
|
||||||
"status": "Online",
|
|
||||||
"total_resources": {
|
|
||||||
"bandwidth_mbps": 1000,
|
|
||||||
"cpu_cores": 8,
|
|
||||||
"hdd_storage_gb": 402336,
|
|
||||||
"memory_gb": 15,
|
|
||||||
"ram_gb": 15,
|
|
||||||
"ssd_storage_gb": 223,
|
|
||||||
"storage_gb": 402559
|
|
||||||
},
|
|
||||||
"uptime": 99.5,
|
|
||||||
"used_resources": {
|
|
||||||
"bandwidth_mbps": 0,
|
|
||||||
"cpu_cores": 5,
|
|
||||||
"hdd_storage_gb": 0,
|
|
||||||
"memory_gb": 12,
|
|
||||||
"ram_gb": 12,
|
|
||||||
"ssd_storage_gb": 165,
|
|
||||||
"storage_gb": 165
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"slice_formats": null,
|
|
||||||
"name": "Grid Node 12",
|
|
||||||
"region": "Belgium",
|
|
||||||
"node_type": "MyceliumNode",
|
|
||||||
"staking_options": null,
|
|
||||||
"availability_status": "Available",
|
|
||||||
"node_group_id": null,
|
|
||||||
"group_assignment_date": null,
|
|
||||||
"group_slice_format": null,
|
|
||||||
"group_slice_price": null,
|
|
||||||
"last_seen": "2025-09-09T03:30:24.732150580Z",
|
|
||||||
"health_score": 100.0
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"resource_provider_earnings": [],
|
|
||||||
"resource_provider_settings": null,
|
|
||||||
"slice_products": [],
|
|
||||||
"user_activities": [
|
|
||||||
{
|
|
||||||
"id": "1db56139-8a5f-4e32-a235-c0f1bb4ab357",
|
|
||||||
"user_email": "user123@example.com",
|
|
||||||
"activity_type": "WalletTransaction",
|
|
||||||
"description": "Purchased $12 credits via credit_card",
|
|
||||||
"metadata": null,
|
|
||||||
"timestamp": "2025-09-08T17:16:29.777958164Z",
|
|
||||||
"ip_address": null,
|
|
||||||
"user_agent": null,
|
|
||||||
"session_id": null,
|
|
||||||
"importance": "Medium",
|
|
||||||
"category": "Wallet"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"user_preferences": {
|
|
||||||
"theme": "light",
|
|
||||||
"language": "en",
|
|
||||||
"currency_display": "symbol",
|
|
||||||
"email_notifications": true,
|
|
||||||
"push_notifications": true,
|
|
||||||
"marketing_emails": false,
|
|
||||||
"data_sharing": false,
|
|
||||||
"preferred_currency": "USD",
|
|
||||||
"preferred_language": "en",
|
|
||||||
"timezone": "UTC",
|
|
||||||
"notification_settings": {
|
|
||||||
"email_enabled": true,
|
|
||||||
"push_enabled": true,
|
|
||||||
"sms_enabled": false,
|
|
||||||
"slack_webhook": null,
|
|
||||||
"discord_webhook": null,
|
|
||||||
"enabled": true,
|
|
||||||
"push": true,
|
|
||||||
"node_offline_alerts": true,
|
|
||||||
"maintenance_reminders": true,
|
|
||||||
"earnings_reports": true
|
|
||||||
},
|
|
||||||
"privacy_settings": {
|
|
||||||
"profile_public": false,
|
|
||||||
"email_public": false,
|
|
||||||
"activity_public": false,
|
|
||||||
"stats_public": false,
|
|
||||||
"profile_visibility": "private",
|
|
||||||
"marketing_emails": false,
|
|
||||||
"data_sharing": false,
|
|
||||||
"activity_tracking": true
|
|
||||||
},
|
|
||||||
"dashboard_layout": "default",
|
|
||||||
"last_payment_method": "credit_card"
|
|
||||||
},
|
|
||||||
"usage_statistics": null,
|
|
||||||
"orders": [],
|
|
||||||
"active_product_rentals": [],
|
|
||||||
"resource_provider_rental_earnings": [],
|
|
||||||
"node_rentals": [],
|
|
||||||
"node_groups": [
|
|
||||||
{
|
|
||||||
"id": "compute",
|
|
||||||
"name": "Compute",
|
|
||||||
"description": "General compute workloads",
|
|
||||||
"node_ids": [],
|
|
||||||
"group_type": {
|
|
||||||
"Default": "compute"
|
|
||||||
},
|
|
||||||
"updated_at": "2025-09-08T18:44:31.238377407Z",
|
|
||||||
"created_at": "2025-09-08T18:44:31.238375624Z",
|
|
||||||
"group_config": {
|
|
||||||
"group_name": "Compute Nodes",
|
|
||||||
"max_nodes": 100,
|
|
||||||
"allocation_strategy": "balanced",
|
|
||||||
"auto_scaling": true,
|
|
||||||
"preferred_slice_formats": [
|
|
||||||
"1x1",
|
|
||||||
"2x2"
|
|
||||||
],
|
|
||||||
"default_pricing": 50.0,
|
|
||||||
"resource_optimization": {
|
|
||||||
"cpu_optimization": 0.5,
|
|
||||||
"memory_optimization": 0.5,
|
|
||||||
"storage_optimization": 0.5,
|
|
||||||
"network_optimization": 0.5
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "storage",
|
|
||||||
"name": "Storage",
|
|
||||||
"description": "Storage and data workloads",
|
|
||||||
"node_ids": [],
|
|
||||||
"group_type": {
|
|
||||||
"Default": "storage"
|
|
||||||
},
|
|
||||||
"updated_at": "2025-09-08T18:44:31.238384425Z",
|
|
||||||
"created_at": "2025-09-08T18:44:31.238383997Z",
|
|
||||||
"group_config": {
|
|
||||||
"group_name": "Storage Nodes",
|
|
||||||
"max_nodes": 50,
|
|
||||||
"allocation_strategy": "storage_optimized",
|
|
||||||
"auto_scaling": false,
|
|
||||||
"preferred_slice_formats": [
|
|
||||||
"1x1"
|
|
||||||
],
|
|
||||||
"default_pricing": 30.0,
|
|
||||||
"resource_optimization": {
|
|
||||||
"cpu_optimization": 0.3,
|
|
||||||
"memory_optimization": 0.3,
|
|
||||||
"storage_optimization": 0.8,
|
|
||||||
"network_optimization": 0.6
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "ai-gpu",
|
|
||||||
"name": "AI/GPU",
|
|
||||||
"description": "AI and GPU-intensive workloads",
|
|
||||||
"node_ids": [],
|
|
||||||
"group_type": {
|
|
||||||
"Default": "ai-gpu"
|
|
||||||
},
|
|
||||||
"updated_at": "2025-09-08T18:44:31.238388576Z",
|
|
||||||
"created_at": "2025-09-08T18:44:31.238388156Z",
|
|
||||||
"group_config": {
|
|
||||||
"group_name": "AI/GPU Nodes",
|
|
||||||
"max_nodes": 20,
|
|
||||||
"allocation_strategy": "gpu_optimized",
|
|
||||||
"auto_scaling": true,
|
|
||||||
"preferred_slice_formats": [
|
|
||||||
"4x4",
|
|
||||||
"8x8"
|
|
||||||
],
|
|
||||||
"default_pricing": 200.0,
|
|
||||||
"resource_optimization": {
|
|
||||||
"cpu_optimization": 0.8,
|
|
||||||
"memory_optimization": 0.7,
|
|
||||||
"storage_optimization": 0.4,
|
|
||||||
"network_optimization": 0.5
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"slice_rentals": [],
|
|
||||||
"slice_assignments": [],
|
|
||||||
"display_currency": "AED",
|
|
||||||
"quick_topup_amounts": [
|
|
||||||
10.0,
|
|
||||||
25.0,
|
|
||||||
50.0,
|
|
||||||
100.0
|
|
||||||
],
|
|
||||||
"auto_topup_settings": null,
|
|
||||||
"products": [],
|
|
||||||
"owned_products": [],
|
|
||||||
"owned_product_ids": [],
|
|
||||||
"ssh_keys": [],
|
|
||||||
"message_threads": null,
|
|
||||||
"messages": null
|
|
||||||
}
|
|
@@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
"user_id": "user123@example.com",
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"product_id": "user_user0_example_com_fa373486",
|
|
||||||
"quantity": 1,
|
|
||||||
"selected_specifications": {},
|
|
||||||
"added_at": "2025-09-09T03:32:30.573242755Z",
|
|
||||||
"updated_at": "2025-09-09T03:32:30.573242755Z"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"session_id": null,
|
|
||||||
"created_at": "2025-09-09T03:32:30.573133861Z",
|
|
||||||
"updated_at": "2025-09-09T03:32:30.573271484Z"
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load Diff
@@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
"user_id": "user1@example.com",
|
|
||||||
"items": [],
|
|
||||||
"session_id": null,
|
|
||||||
"created_at": "2025-08-28T03:10:49.436820705Z",
|
|
||||||
"updated_at": "2025-08-29T04:46:03.458815283Z"
|
|
||||||
}
|
|
@@ -1,247 +0,0 @@
|
|||||||
{
|
|
||||||
"user_email": "user321@example.com",
|
|
||||||
"wallet_balance_usd": 0.0,
|
|
||||||
"transactions": [],
|
|
||||||
"staked_amount_usd": 0.0,
|
|
||||||
"pool_positions": {},
|
|
||||||
"name": "user321",
|
|
||||||
"country": null,
|
|
||||||
"timezone": null,
|
|
||||||
"password_hash": "$2b$12$3I5q1NB/ukv2isB6p5RN1ecn6Wkb92gmD2O5gzQ8YF3veOLUa1JXu",
|
|
||||||
"services": [],
|
|
||||||
"service_requests": [],
|
|
||||||
"service_bookings": [],
|
|
||||||
"availability": null,
|
|
||||||
"slas": [],
|
|
||||||
"apps": [],
|
|
||||||
"application_deployments": [],
|
|
||||||
"deleted": null,
|
|
||||||
"deleted_at": null,
|
|
||||||
"deletion_reason": null,
|
|
||||||
"nodes": [
|
|
||||||
{
|
|
||||||
"id": "grid_node_2007",
|
|
||||||
"location": "Unknown, Belgium",
|
|
||||||
"status": "Online",
|
|
||||||
"capacity": {
|
|
||||||
"cpu_cores": 24,
|
|
||||||
"memory_gb": 188,
|
|
||||||
"storage_gb": 8859,
|
|
||||||
"bandwidth_mbps": 1000,
|
|
||||||
"ssd_storage_gb": 476,
|
|
||||||
"hdd_storage_gb": 8383,
|
|
||||||
"ram_gb": 188
|
|
||||||
},
|
|
||||||
"used_capacity": {
|
|
||||||
"cpu_cores": 9,
|
|
||||||
"memory_gb": 55,
|
|
||||||
"storage_gb": 343,
|
|
||||||
"bandwidth_mbps": 0,
|
|
||||||
"ssd_storage_gb": 343,
|
|
||||||
"hdd_storage_gb": 0,
|
|
||||||
"ram_gb": 55
|
|
||||||
},
|
|
||||||
"uptime_percentage": 99.0,
|
|
||||||
"farming_start_date": "2025-08-10T03:27:08.942256607Z",
|
|
||||||
"last_updated": "2025-09-09T03:27:08.942268123Z",
|
|
||||||
"utilization_7_day_avg": 65.0,
|
|
||||||
"slice_formats_supported": [
|
|
||||||
"1x1",
|
|
||||||
"2x2",
|
|
||||||
"4x4"
|
|
||||||
],
|
|
||||||
"rental_options": null,
|
|
||||||
"total_base_slices": 0,
|
|
||||||
"allocated_base_slices": 0,
|
|
||||||
"earnings_today_usd": 0.0,
|
|
||||||
"grid_node_id": "2007",
|
|
||||||
"available_combinations": [],
|
|
||||||
"slice_allocations": [],
|
|
||||||
"slice_last_calculated": null,
|
|
||||||
"marketplace_sla": {
|
|
||||||
"id": "sla-repair-8fa25e61-493a-46cc-b942-ce8cef923ae6",
|
|
||||||
"name": "Repaired Node SLA",
|
|
||||||
"uptime_guarantee": 99.8,
|
|
||||||
"response_time_hours": 24,
|
|
||||||
"resolution_time_hours": 48,
|
|
||||||
"penalty_rate": 0.01,
|
|
||||||
"uptime_guarantee_percentage": 99.8,
|
|
||||||
"base_slice_price": 0.5,
|
|
||||||
"bandwidth_guarantee_mbps": 100.0,
|
|
||||||
"last_updated": "2025-09-09T03:27:12.489433171Z"
|
|
||||||
},
|
|
||||||
"slice_pricing": {
|
|
||||||
"base_price_per_hour": 1.0,
|
|
||||||
"currency": "USD",
|
|
||||||
"pricing_multiplier": 1.0
|
|
||||||
},
|
|
||||||
"grid_data": {
|
|
||||||
"capacity": {
|
|
||||||
"bandwidth_mbps": 1000,
|
|
||||||
"cpu_cores": 24,
|
|
||||||
"hdd_storage_gb": 8383,
|
|
||||||
"memory_gb": 188,
|
|
||||||
"ram_gb": 188,
|
|
||||||
"ssd_storage_gb": 476,
|
|
||||||
"storage_gb": 8859
|
|
||||||
},
|
|
||||||
"certification_type": "Diy",
|
|
||||||
"city": "Unknown",
|
|
||||||
"country": "Belgium",
|
|
||||||
"farm_id": 1,
|
|
||||||
"farm_name": "Freefarm",
|
|
||||||
"farming_policy_id": 1,
|
|
||||||
"grid_node_id": 2007,
|
|
||||||
"last_updated": "2025-09-09T03:27:08.942100965Z",
|
|
||||||
"location": "Unknown, Belgium",
|
|
||||||
"node_id": 2007,
|
|
||||||
"public_ips": [
|
|
||||||
"192.168.1.100"
|
|
||||||
],
|
|
||||||
"status": "Online",
|
|
||||||
"total_resources": {
|
|
||||||
"bandwidth_mbps": 1000,
|
|
||||||
"cpu_cores": 24,
|
|
||||||
"hdd_storage_gb": 8383,
|
|
||||||
"memory_gb": 188,
|
|
||||||
"ram_gb": 188,
|
|
||||||
"ssd_storage_gb": 476,
|
|
||||||
"storage_gb": 8859
|
|
||||||
},
|
|
||||||
"uptime": 99.5,
|
|
||||||
"used_resources": {
|
|
||||||
"bandwidth_mbps": 0,
|
|
||||||
"cpu_cores": 9,
|
|
||||||
"hdd_storage_gb": 0,
|
|
||||||
"memory_gb": 55,
|
|
||||||
"ram_gb": 55,
|
|
||||||
"ssd_storage_gb": 343,
|
|
||||||
"storage_gb": 343
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"slice_formats": null,
|
|
||||||
"name": "Grid Node 2007",
|
|
||||||
"region": "Belgium",
|
|
||||||
"node_type": "MyceliumNode",
|
|
||||||
"staking_options": null,
|
|
||||||
"availability_status": "Available",
|
|
||||||
"node_group_id": null,
|
|
||||||
"group_assignment_date": null,
|
|
||||||
"group_slice_format": null,
|
|
||||||
"group_slice_price": null,
|
|
||||||
"last_seen": "2025-09-09T03:27:08.942273898Z",
|
|
||||||
"health_score": 100.0
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"resource_provider_earnings": [],
|
|
||||||
"resource_provider_settings": null,
|
|
||||||
"slice_products": [],
|
|
||||||
"user_activities": [],
|
|
||||||
"user_preferences": null,
|
|
||||||
"usage_statistics": null,
|
|
||||||
"orders": [],
|
|
||||||
"active_product_rentals": [],
|
|
||||||
"resource_provider_rental_earnings": [],
|
|
||||||
"node_rentals": [],
|
|
||||||
"node_groups": [
|
|
||||||
{
|
|
||||||
"id": "compute",
|
|
||||||
"name": "Compute",
|
|
||||||
"description": "General compute workloads",
|
|
||||||
"node_ids": [],
|
|
||||||
"group_type": {
|
|
||||||
"Default": "compute"
|
|
||||||
},
|
|
||||||
"updated_at": "2025-09-09T03:26:57.639840151Z",
|
|
||||||
"created_at": "2025-09-09T03:26:57.639836172Z",
|
|
||||||
"group_config": {
|
|
||||||
"group_name": "Compute Nodes",
|
|
||||||
"max_nodes": 100,
|
|
||||||
"allocation_strategy": "balanced",
|
|
||||||
"auto_scaling": true,
|
|
||||||
"preferred_slice_formats": [
|
|
||||||
"1x1",
|
|
||||||
"2x2"
|
|
||||||
],
|
|
||||||
"default_pricing": 50.0,
|
|
||||||
"resource_optimization": {
|
|
||||||
"cpu_optimization": 0.5,
|
|
||||||
"memory_optimization": 0.5,
|
|
||||||
"storage_optimization": 0.5,
|
|
||||||
"network_optimization": 0.5
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "storage",
|
|
||||||
"name": "Storage",
|
|
||||||
"description": "Storage and data workloads",
|
|
||||||
"node_ids": [],
|
|
||||||
"group_type": {
|
|
||||||
"Default": "storage"
|
|
||||||
},
|
|
||||||
"updated_at": "2025-09-09T03:26:57.639846621Z",
|
|
||||||
"created_at": "2025-09-09T03:26:57.639846284Z",
|
|
||||||
"group_config": {
|
|
||||||
"group_name": "Storage Nodes",
|
|
||||||
"max_nodes": 50,
|
|
||||||
"allocation_strategy": "storage_optimized",
|
|
||||||
"auto_scaling": false,
|
|
||||||
"preferred_slice_formats": [
|
|
||||||
"1x1"
|
|
||||||
],
|
|
||||||
"default_pricing": 30.0,
|
|
||||||
"resource_optimization": {
|
|
||||||
"cpu_optimization": 0.3,
|
|
||||||
"memory_optimization": 0.3,
|
|
||||||
"storage_optimization": 0.8,
|
|
||||||
"network_optimization": 0.6
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "ai-gpu",
|
|
||||||
"name": "AI/GPU",
|
|
||||||
"description": "AI and GPU-intensive workloads",
|
|
||||||
"node_ids": [],
|
|
||||||
"group_type": {
|
|
||||||
"Default": "ai-gpu"
|
|
||||||
},
|
|
||||||
"updated_at": "2025-09-09T03:26:57.639850994Z",
|
|
||||||
"created_at": "2025-09-09T03:26:57.639850646Z",
|
|
||||||
"group_config": {
|
|
||||||
"group_name": "AI/GPU Nodes",
|
|
||||||
"max_nodes": 20,
|
|
||||||
"allocation_strategy": "gpu_optimized",
|
|
||||||
"auto_scaling": true,
|
|
||||||
"preferred_slice_formats": [
|
|
||||||
"4x4",
|
|
||||||
"8x8"
|
|
||||||
],
|
|
||||||
"default_pricing": 200.0,
|
|
||||||
"resource_optimization": {
|
|
||||||
"cpu_optimization": 0.8,
|
|
||||||
"memory_optimization": 0.7,
|
|
||||||
"storage_optimization": 0.4,
|
|
||||||
"network_optimization": 0.5
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"slice_rentals": [],
|
|
||||||
"slice_assignments": [],
|
|
||||||
"display_currency": "MC",
|
|
||||||
"quick_topup_amounts": [
|
|
||||||
10.0,
|
|
||||||
25.0,
|
|
||||||
50.0,
|
|
||||||
100.0
|
|
||||||
],
|
|
||||||
"auto_topup_settings": null,
|
|
||||||
"products": [],
|
|
||||||
"owned_products": [],
|
|
||||||
"owned_product_ids": [],
|
|
||||||
"ssh_keys": [],
|
|
||||||
"message_threads": null,
|
|
||||||
"messages": null
|
|
||||||
}
|
|
@@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
"version": "2025-08-09",
|
|
||||||
"schema": 1,
|
|
||||||
"notes": "Initial fixture scaffold with demo users user1..user10"
|
|
||||||
}
|
|
Reference in New Issue
Block a user