Update powercode integration to use the unified config

This commit is contained in:
Herbert Wolverson 2024-01-08 10:12:22 -06:00
parent 475e997482
commit a0f04840cc
4 changed files with 32 additions and 6 deletions

View File

@ -2,20 +2,20 @@ from pythonCheck import checkPythonVersion
checkPythonVersion() checkPythonVersion()
import requests import requests
import warnings import warnings
from ispConfig import excludeSites, findIPv6usingMikrotik, bandwidthOverheadFactor, exceptionCPEs, powercode_api_key, powercode_api_url from liblqos_python import find_ipv6_using_mikrotik, powercode_api_key, powercode_api_url
from integrationCommon import isIpv4Permitted from integrationCommon import isIpv4Permitted
import base64 import base64
from requests.auth import HTTPBasicAuth from requests.auth import HTTPBasicAuth
if findIPv6usingMikrotik == True: if find_ipv6_using_mikrotik() == True:
from mikrotikFindIPv6 import pullMikrotikIPv6 from mikrotikFindIPv6 import pullMikrotikIPv6
from integrationCommon import NetworkGraph, NetworkNode, NodeType from integrationCommon import NetworkGraph, NetworkNode, NodeType
from urllib3.exceptions import InsecureRequestWarning from urllib3.exceptions import InsecureRequestWarning
def getCustomerInfo(): def getCustomerInfo():
headers= {'Content-Type': 'application/x-www-form-urlencoded'} headers= {'Content-Type': 'application/x-www-form-urlencoded'}
url = powercode_api_url + ":444/api/preseem/index.php" url = powercode_api_url() + ":444/api/preseem/index.php"
data = {} data = {}
data['apiKey'] = powercode_api_key data['apiKey'] = powercode_api_key()
data['action'] = 'list_customers' data['action'] = 'list_customers'
r = requests.post(url, data=data, headers=headers, verify=False, timeout=10) r = requests.post(url, data=data, headers=headers, verify=False, timeout=10)
@ -23,9 +23,9 @@ def getCustomerInfo():
def getListServices(): def getListServices():
headers= {'Content-Type': 'application/x-www-form-urlencoded'} headers= {'Content-Type': 'application/x-www-form-urlencoded'}
url = powercode_api_url + ":444/api/preseem/index.php" url = powercode_api_url() + ":444/api/preseem/index.php"
data = {} data = {}
data['apiKey'] = powercode_api_key data['apiKey'] = powercode_api_key()
data['action'] = 'list_services' data['action'] = 'list_services'
r = requests.post(url, data=data, headers=headers, verify=False, timeout=10) r = requests.post(url, data=data, headers=headers, verify=False, timeout=10)

View File

@ -11,6 +11,7 @@ mod integration_common;
mod ip_ranges; mod ip_ranges;
mod spylnx_integration; mod spylnx_integration;
mod uisp_integration; mod uisp_integration;
mod powercode_integration;
pub use bridge::*; pub use bridge::*;
pub use long_term_stats::LongTermStats; pub use long_term_stats::LongTermStats;
pub use tuning::Tunables; pub use tuning::Tunables;

View File

@ -58,6 +58,9 @@ pub struct Config {
/// UISP Integration /// UISP Integration
pub uisp_integration: super::uisp_integration::UispIntegration, pub uisp_integration: super::uisp_integration::UispIntegration,
/// Powercode Integration
pub powercode_integration: super::powercode_integration::PowercodeIntegration,
} }
impl Config { impl Config {
@ -116,6 +119,7 @@ impl Default for Config {
integration_common: super::integration_common::IntegrationConfig::default(), integration_common: super::integration_common::IntegrationConfig::default(),
spylnx_integration: super::spylnx_integration::SplynxIntegration::default(), spylnx_integration: super::spylnx_integration::SplynxIntegration::default(),
uisp_integration: super::uisp_integration::UispIntegration::default(), uisp_integration: super::uisp_integration::UispIntegration::default(),
powercode_integration: super::powercode_integration::PowercodeIntegration::default(),
packet_capture_time: 10, packet_capture_time: 10,
queue_check_period_ms: 1000, queue_check_period_ms: 1000,
} }

View File

@ -71,6 +71,9 @@ fn liblqos_python(_py: Python, m: &PyModule) -> PyResult<()> {
m.add_wrapped(wrap_pyfunction!(automatic_import_uisp))?; m.add_wrapped(wrap_pyfunction!(automatic_import_uisp))?;
m.add_wrapped(wrap_pyfunction!(automatic_import_splynx))?; m.add_wrapped(wrap_pyfunction!(automatic_import_splynx))?;
m.add_wrapped(wrap_pyfunction!(queue_refresh_interval_mins))?; m.add_wrapped(wrap_pyfunction!(queue_refresh_interval_mins))?;
m.add_wrapped(wrap_pyfunction!(automatic_import_powercode))?;
m.add_wrapped(wrap_pyfunction!(powercode_api_key))?;
m.add_wrapped(wrap_pyfunction!(powercode_api_url))?;
Ok(()) Ok(())
} }
@ -532,4 +535,22 @@ fn automatic_import_splynx() -> PyResult<bool> {
fn queue_refresh_interval_mins() -> PyResult<u32> { fn queue_refresh_interval_mins() -> PyResult<u32> {
let config = lqos_config::load_config().unwrap(); let config = lqos_config::load_config().unwrap();
Ok(config.integration_common.queue_refresh_interval_mins) Ok(config.integration_common.queue_refresh_interval_mins)
}
#[pyfunction]
fn automatic_import_powercode() -> PyResult<bool> {
let config = lqos_config::load_config().unwrap();
Ok(config.powercode_integration.enable_powercode)
}
#[pyfunction]
fn powercode_api_key() -> PyResult<String> {
let config = lqos_config::load_config().unwrap();
Ok(config.powercode_integration.powercode_api_key)
}
#[pyfunction]
fn powercode_api_url() -> PyResult<String> {
let config = lqos_config::load_config().unwrap();
Ok(config.powercode_integration.powercode_api_url)
} }