diem_config/config/
debug_interface_config.rs

1// Copyright (c) The Diem Core Contributors
2// SPDX-License-Identifier: Apache-2.0
3
4// Copyright 2021 Conflux Foundation. All rights reserved.
5// Conflux is free software and distributed under GNU General Public License.
6// See http://www.gnu.org/licenses/
7
8use crate::utils;
9use serde::{Deserialize, Serialize};
10
11#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
12#[serde(default, deny_unknown_fields)]
13pub struct DebugInterfaceConfig {
14    pub admission_control_node_debug_port: u16,
15    pub address: String,
16    pub metrics_server_port: u16,
17    pub public_metrics_server_port: u16,
18}
19
20impl Default for DebugInterfaceConfig {
21    fn default() -> DebugInterfaceConfig {
22        DebugInterfaceConfig {
23            admission_control_node_debug_port: 6191,
24            address: "0.0.0.0".to_string(),
25            metrics_server_port: 9101,
26            public_metrics_server_port: 9102,
27        }
28    }
29}
30
31impl DebugInterfaceConfig {
32    pub fn randomize_ports(&mut self) {
33        self.admission_control_node_debug_port = utils::get_available_port();
34        self.metrics_server_port = utils::get_available_port();
35        self.public_metrics_server_port = utils::get_available_port();
36    }
37}