use crate::common;
use crate::cluster;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct NodeAllocationExplanation {
#[serde(rename = "weight_ranking", default, skip_serializing_if = "Option::is_none")]
pub weight_ranking: Option<u32>,
#[serde(rename = "deciders")]
pub deciders: Vec<cluster::allocation_explain::AllocationDecision>,
#[serde(rename = "node_attributes")]
pub node_attributes: serde_json::Value,
#[serde(rename = "node_decision")]
pub node_decision: String,
#[serde(rename = "store", default, skip_serializing_if = "Option::is_none")]
pub store: Option<cluster::allocation_explain::AllocationStore>,
#[serde(rename = "node_id")]
pub node_id: String,
#[serde(rename = "transport_address")]
pub transport_address: String,
#[serde(rename = "node_name")]
pub node_name: String,
}
impl NodeAllocationExplanation {
pub fn new(deciders: Vec<cluster::allocation_explain::AllocationDecision>, node_attributes: serde_json::Value, node_decision: String, node_id: String, transport_address: String, node_name: String) -> NodeAllocationExplanation {
NodeAllocationExplanation {
weight_ranking: None,
deciders,
node_attributes,
node_decision,
store: None,
node_id,
transport_address,
node_name,
}
}
}