Struct haproxy_api::Core

source ·
pub struct Core<'lua> { /* private fields */ }
Expand description

The “Core” class contains all the HAProxy core functions.

Implementations§

source§

impl<'lua> Core<'lua>

source

pub fn new(lua: &'lua Lua) -> Result<Self>

Creates new Core object using Lua global core

source

pub fn proxies(&self) -> Result<HashMap<String, Proxy<'lua>>>

Returns a map of declared proxies (frontends and backends), indexed by proxy name.

source

pub fn backends(&self) -> Result<HashMap<String, Proxy<'lua>>>

Returns a map of declared proxies with backend capability, indexed by the backend name.

source

pub fn frontends(&self) -> Result<HashMap<String, Proxy<'lua>>>

Returns a map of declared proxies with frontend capability, indexed by the frontend name.

source

pub fn thread(&self) -> Result<u16>

Returns the executing thread number starting at 0. If thread is 0, Lua scope is shared by all threads, otherwise the scope is dedicated to a single thread. This is HAProxy >=2.4 feature.

source

pub fn log(&self, level: LogLevel, msg: impl AsRef<str>) -> Result<()>

Sends a log on the default syslog server if it is configured and on the stderr if it is allowed.

source

pub fn add_acl(&self, filename: &str, key: &str) -> Result<()>

Adds the ACL key in the ACLs list referenced by filename.

source

pub fn del_acl(&self, filename: &str, key: &str) -> Result<()>

Deletes the ACL entry by key in the ACLs list referenced by filename.

source

pub fn del_map(&self, filename: &str, key: &str) -> Result<()>

Deletes the map entry indexed with the specified key in the list of maps referenced by his filename.

source

pub fn set_map(&self, filename: &str, key: &str, value: &str) -> Result<()>

Sets the value associated to the key in the map referenced by filename.

source

pub fn get_info(&self) -> Result<Vec<String>>

Returns HAProxy core information (uptime, pid, memory pool usage, tasks number, …).

source

pub fn now(&self) -> Result<Time>

Returns the current time. The time returned is fixed by the HAProxy core and assures than the hour will be monotonic and that the system call gettimeofday will not be called too.

source

pub fn http_date(&self, date: &str) -> Result<u64>

Takes a string representing http date, and returns an integer containing the corresponding date with a epoch format. A valid http date me respect the format IMF, RFC850 or ASCTIME.

source

pub fn imf_date(&self, date: &str) -> Result<u64>

Take a string representing IMF date, and returns an integer containing the corresponding date with a epoch format.

source

pub fn rfc850_date(&self, date: &str) -> Result<u64>

Takess a string representing RFC850 date, and returns an integer containing the corresponding date with a epoch format.

source

pub fn asctime_date(&self, date: &str) -> Result<u64>

Takes a string representing ASCTIME date, and returns an integer containing the corresponding date with a epoch format.

source

pub fn register_action<A, F>( &self, name: &str, actions: &[Action], nb_args: usize, func: F ) -> Result<()>where A: FromLuaMulti<'lua>, F: Fn(&'lua Lua, A) -> Result<()> + Send + 'static,

Registers a function executed as an action. The expected actions are tcp-req, tcp-res, http-req or http-res. All the registered actions can be used in HAProxy with the prefix lua..

source

pub fn register_async_action<A, F, FR>( &self, name: &str, actions: &[&str], nb_args: usize, func: F ) -> Result<()>where A: FromLuaMulti<'lua>, F: Fn(&'lua Lua, A) -> FR + Send + 'static, FR: Future<Output = Result<()>> + 'static,

Registers an asynchronous function executed as an action.

source

pub fn register_lua_action<'a, S>( &self, name: &str, actions: &[&str], nb_args: usize, code: S ) -> Result<()>where S: AsChunk<'lua, 'a>,

Same as register_action but using Lua function.

source

pub fn register_converters<A, R, F>(&self, name: &str, func: F) -> Result<()>where A: FromLuaMulti<'lua>, R: IntoLua<'lua>, F: Fn(&'lua Lua, A) -> Result<R> + Send + 'static,

Registers a function executed as a converter. All the registered converters can be used in HAProxy with the prefix lua..

source

pub fn register_async_converters<A, R, F, FR>( &self, name: &str, func: F ) -> Result<()>where A: FromLuaMulti<'lua>, R: IntoLua<'lua>, F: Fn(&'lua Lua, A) -> FR + Send + 'static, FR: Future<Output = Result<R>> + 'static,

Registers an asynchronous function executed as a converter.

source

pub fn register_lua_converters<'a, S>(&self, name: &str, code: S) -> Result<()>where S: AsChunk<'lua, 'a>,

Same as register_converters but using Lua function.

source

pub fn register_fetches<A, R, F>(&self, name: &str, func: F) -> Result<()>where A: FromLuaMulti<'lua>, R: IntoLua<'lua>, F: Fn(&'lua Lua, A) -> Result<R> + Send + 'static,

Registers a function executed as sample fetch. All the registered sample fetch can be used in HAProxy with the prefix lua..

source

pub fn register_async_fetches<A, R, F, FR>( &self, name: &str, func: F ) -> Result<()>where A: FromLuaMulti<'lua>, R: IntoLua<'lua>, F: Fn(&'lua Lua, A) -> FR + Send + 'static, FR: Future<Output = Result<R>> + 'static,

Registers an asynchronous function executed as sample fetch.

source

pub fn register_lua_fetches<'a, S>(&self, name: &str, code: S) -> Result<()>where S: AsChunk<'lua, 'a>,

Same as register_fetches but using Lua function.

source

pub fn register_filter<T: UserFilter + 'static>(&self, name: &str) -> Result<()>

Registers a custom filter that implements UserFilter trait.

source

pub fn register_lua_service<'a, S>( &self, name: &str, mode: ServiceMode, code: S ) -> Result<()>where S: AsChunk<'lua, 'a>,

Registers a Lua function executed as a service. All the registered service can be used in HAProxy with the prefix lua..

source

pub fn register_init<F>(&self, func: F) -> Result<()>where F: Fn(&'lua Lua) -> Result<()> + Send + 'static,

Registers a function executed after the configuration parsing. This is useful to check any parameters.

source

pub fn register_task<F>(&self, func: F) -> Result<()>where F: Fn(&'lua Lua) -> Result<()> + Send + 'static,

Registers and start an independent task. The task is started when the HAProxy main scheduler starts.

source

pub fn register_async_task<F, FR>(&self, func: F) -> Result<()>where F: Fn(&'lua Lua) -> FR + Send + 'static, FR: Future<Output = Result<()>> + 'static,

Registers and start an independent asynchronous task.

source

pub fn register_lua_task<'a, S>(&self, code: S) -> Result<()>where S: AsChunk<'lua, 'a>,

Same as register_task but using Lua function.

source

pub fn register_lua_cli<'a, S>( &self, path: &[&str], usage: &str, code: S ) -> Result<()>where S: AsChunk<'lua, 'a>,

Registers a Lua function executed as a cli command.

source

pub fn set_nice(&self, nice: i32) -> Result<()>

Changes the nice of the current task or current session.

source

pub fn parse_addr(&self, addr: &str) -> Result<AnyUserData<'lua>>

Parses ipv4 or ipv6 addresses and its facultative associated network.

source

pub fn match_addr( &self, addr1: AnyUserData<'_>, addr2: AnyUserData<'_> ) -> Result<bool>

Matches two networks. For example “127.0.0.1/32” matches “127.0.0.0/8”. The order of network is not important.

Trait Implementations§

source§

impl<'lua> Clone for Core<'lua>

source§

fn clone(&self) -> Core<'lua>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

§

impl<'lua> !RefUnwindSafe for Core<'lua>

§

impl<'lua> !Send for Core<'lua>

§

impl<'lua> !Sync for Core<'lua>

§

impl<'lua> Unpin for Core<'lua>

§

impl<'lua> !UnwindSafe for Core<'lua>

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.