Skip to content

list_towers networking filters don't scope to runway_name #104

Description

@NavarrePratt

Problem

When list_towers() is called with both runway_name and a networking filter (ingress_mode or egress_mode), the two filters can be satisfied by different runways on the same tower.

# Intent: find towers where the "prod" runway has internet egress
towers = cwsandbox.list_towers(runway_name="prod", egress_mode="internet")

What actually happens:

  1. Server returns towers that have a runway named "prod"
  2. Client fetches ALL runways (unfiltered), aggregates networking modes per tower
  3. Client checks if the tower has internet egress on ANY runway

If a tower has runway "prod" (no internet egress) and runway "dev" (internet egress), it passes both filters even though "prod" doesn't support internet egress.

Every other filter combination on list_towers uses AND semantics against the same entity. The networking filters break this expectation by checking across all runways on the tower rather than scoping to the runway specified by runway_name.

Expected behavior

When runway_name is specified alongside ingress_mode/egress_mode, the networking check should scope to that runway rather than aggregating across all runways on the tower.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions