feat: add broadcast field to interfaces
This commit is contained in:
@@ -60,6 +60,7 @@ class Interface(Base):
|
||||
config_id: Mapped[int] = mapped_column(Integer, ForeignKey("configs.id"), nullable=False)
|
||||
name: Mapped[str] = mapped_column(String(32), nullable=False)
|
||||
zone_id: Mapped[int | None] = mapped_column(Integer, ForeignKey("zones.id"), nullable=True)
|
||||
broadcast: Mapped[str] = mapped_column(String(64), default="")
|
||||
options: Mapped[str] = mapped_column(Text, default="")
|
||||
|
||||
config: Mapped["Config"] = relationship("Config", back_populates="interfaces")
|
||||
|
||||
@@ -65,12 +65,14 @@ class ZoneOut(BaseModel):
|
||||
class InterfaceCreate(BaseModel):
|
||||
name: str
|
||||
zone_id: Optional[int] = None
|
||||
broadcast: str = ""
|
||||
options: str = ""
|
||||
|
||||
|
||||
class InterfaceUpdate(BaseModel):
|
||||
name: Optional[str] = None
|
||||
zone_id: Optional[int] = None
|
||||
broadcast: Optional[str] = None
|
||||
options: Optional[str] = None
|
||||
|
||||
|
||||
@@ -79,6 +81,7 @@ class InterfaceOut(BaseModel):
|
||||
config_id: int
|
||||
name: str
|
||||
zone_id: Optional[int]
|
||||
broadcast: str
|
||||
options: str
|
||||
|
||||
model_config = {"from_attributes": True}
|
||||
|
||||
@@ -26,10 +26,10 @@ class ShorewallGenerator:
|
||||
return "".join(lines)
|
||||
|
||||
def interfaces(self) -> str:
|
||||
lines = [self._header("interfaces"), "#ZONE".ljust(16) + "INTERFACE".ljust(16) + "OPTIONS\n"]
|
||||
lines = [self._header("interfaces"), "#ZONE".ljust(16) + "INTERFACE".ljust(16) + "BROADCAST".ljust(16) + "OPTIONS\n"]
|
||||
for iface in self._config.interfaces:
|
||||
zone = iface.zone.name if iface.zone else "-"
|
||||
lines.append(self._col(zone, iface.name, iface.options or "-"))
|
||||
lines.append(self._col(zone, iface.name, iface.broadcast or "-", iface.options or "-"))
|
||||
return "".join(lines)
|
||||
|
||||
def policy(self) -> str:
|
||||
|
||||
Reference in New Issue
Block a user