Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions gateway-api/src/apis/experimental/constants.rs
Original file line number Diff line number Diff line change
Expand Up @@ -91,3 +91,32 @@ impl std::fmt::Display for ListenerConditionReason {
write!(f, "{:?}", self)
}
}

#[derive(Debug, PartialEq, Eq)]
pub enum RouteConditionType {
Accepted,
ResolvedRefs,
}
impl std::fmt::Display for RouteConditionType {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
write!(f, "{:?}", self)
}
}

#[derive(Debug, PartialEq, Eq)]
pub enum RouteConditionReason {
Accepted,
NotAllowedByListeners,
NoMatchingListenerHostname,
UnsupportedValue,
Pending,
ResolvedRefs,
RefNotPermitted,
InvalidKind,
BackendNotFound,
}
impl std::fmt::Display for RouteConditionReason {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
write!(f, "{:?}", self)
}
}
33 changes: 33 additions & 0 deletions gateway-api/src/apis/standard/constants.rs
Original file line number Diff line number Diff line change
Expand Up @@ -88,3 +88,36 @@ impl std::fmt::Display for ListenerConditionReason {
write!(f, "{:?}", self)
}
}

#[derive(Debug, PartialEq, Eq)]
pub enum RouteConditionType {
Accepted,
ResolvedRefs,
PartiallyInvalid,
}
impl std::fmt::Display for RouteConditionType {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
write!(f, "{:?}", self)
}
}

#[derive(Debug, PartialEq, Eq)]
pub enum RouteConditionReason {
Accepted,
NotAllowedByListeners,
NoMatchingListenerHostname,
NoMatchingParent,
UnsupportedValue,
Pending,
IncompatibleFilters,
ResolvedRefs,
RefNotPermitted,
InvalidKind,
BackendNotFound,
UnsupportedProtocol,
}
impl std::fmt::Display for RouteConditionReason {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
write!(f, "{:?}", self)
}
}
6 changes: 6 additions & 0 deletions update.sh
Original file line number Diff line number Diff line change
Expand Up @@ -84,10 +84,13 @@ GATEWAY_CONDITION_CONSTANTS="GatewayConditionType=Programmed,Accepted,Ready"
GATEWAY_REASON_CONSTANTS="GatewayConditionReason=Programmed,Invalid,NoResources,AddressNotAssigned,AddressNotUsable,Accepted,ListenersNotValid,Pending,UnsupportedAddress,InvalidParameters,Ready,ListenersNotReady"
LISTENER_CONDITION_CONSTANTS="ListenerConditionType=Conflicted,Accepted,ResolvedRefs,Programmed,Ready"
LISTENER_REASON_CONSTANTS="ListenerConditionReason=HostnameConflict,ProtocolConflict,NoConflicts,Accepted,PortUnavailable,UnsupportedProtocol,ResolvedRefs,InvalidCertificateRef,InvalidRouteKinds,RefNotPermitted,Programmed,Invalid,Pending,Ready"
ROUTE_CONDITION_CONSTANTS="RouteConditionType=Accepted,ResolvedRefs,PartiallyInvalid"
ROUTE_REASON_CONSTANTS="RouteConditionReason=Accepted,NotAllowedByListeners,NoMatchingListenerHostname,NoMatchingParent,UnsupportedValue,Pending,IncompatibleFilters,ResolvedRefs,RefNotPermitted,InvalidKind,BackendNotFound,UnsupportedProtocol"

GATEWAY_CLASS_CONDITION_CONSTANTS=${GATEWAY_CLASS_CONDITION_CONSTANTS} GATEWAY_CLASS_REASON_CONSTANTS=${GATEWAY_CLASS_REASON_CONSTANTS} \
GATEWAY_CONDITION_CONSTANTS=${GATEWAY_CONDITION_CONSTANTS} GATEWAY_REASON_CONSTANTS=${GATEWAY_REASON_CONSTANTS} \
LISTENER_CONDITION_CONSTANTS=${LISTENER_CONDITION_CONSTANTS} LISTENER_REASON_CONSTANTS=${LISTENER_REASON_CONSTANTS} \
ROUTE_CONDITION_CONSTANTS=${ROUTE_CONDITION_CONSTANTS} ROUTE_REASON_CONSTANTS=${ROUTE_REASON_CONSTANTS} \
cargo xtask gen_condition_constants >> $APIS_DIR/standard/constants.rs
echo "pub mod constants;" >> $APIS_DIR/standard/mod.rs

Expand Down Expand Up @@ -122,10 +125,13 @@ echo "mod enum_defaults;" >> $APIS_DIR/experimental/mod.rs
# GatewayClass conditions vary between standard and experimental
GATEWAY_CLASS_CONDITION_CONSTANTS="${GATEWAY_CLASS_CONDITION_CONSTANTS},SupportedVersion"
GATEWAY_CLASS_REASON_CONSTANTS="${GATEWAY_CLASS_REASON_CONSTANTS},SupportedVersion,UnsupportedVersion"
ROUTE_CONDITION_CONSTANTS="RouteConditionType=Accepted,ResolvedRefs"
ROUTE_REASON_CONSTANTS="RouteConditionReason=Accepted,NotAllowedByListeners,NoMatchingListenerHostname,UnsupportedValue,Pending,ResolvedRefs,RefNotPermitted,InvalidKind,BackendNotFound"

GATEWAY_CLASS_CONDITION_CONSTANTS=${GATEWAY_CLASS_CONDITION_CONSTANTS} GATEWAY_CLASS_REASON_CONSTANTS=${GATEWAY_CLASS_REASON_CONSTANTS} \
GATEWAY_CONDITION_CONSTANTS=${GATEWAY_CONDITION_CONSTANTS} GATEWAY_REASON_CONSTANTS=${GATEWAY_REASON_CONSTANTS} \
LISTENER_CONDITION_CONSTANTS=${LISTENER_CONDITION_CONSTANTS} LISTENER_REASON_CONSTANTS=${LISTENER_REASON_CONSTANTS} \
ROUTE_CONDITION_CONSTANTS=${ROUTE_CONDITION_CONSTANTS} ROUTE_REASON_CONSTANTS=${ROUTE_REASON_CONSTANTS} \
cargo xtask gen_condition_constants >> $APIS_DIR/experimental/constants.rs
echo "pub mod constants;" >> $APIS_DIR/experimental/mod.rs

Expand Down
4 changes: 4 additions & 0 deletions xtask/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ fn gen_condition_constants() -> Result<(), DynError> {
let gateway_reason_types = env::var("GATEWAY_REASON_CONSTANTS")?;
let listener_condition_types = env::var("LISTENER_CONDITION_CONSTANTS")?;
let listener_reason_types = env::var("LISTENER_REASON_CONSTANTS")?;
let route_condition_types = env::var("ROUTE_CONDITION_CONSTANTS")?;
let route_reason_types = env::var("ROUTE_REASON_CONSTANTS")?;

let mut scope = Scope::new();
gen_const_enums(&mut scope, gateway_class_condition_types);
Expand All @@ -39,6 +41,8 @@ fn gen_condition_constants() -> Result<(), DynError> {
gen_const_enums(&mut scope, gateway_reason_types);
gen_const_enums(&mut scope, listener_condition_types);
gen_const_enums(&mut scope, listener_reason_types);
gen_const_enums(&mut scope, route_condition_types);
gen_const_enums(&mut scope, route_reason_types);
println!("{}", gen_generated_file_warning());
println!("{}", scope.to_string());
Ok(())
Expand Down
Loading