diff --git a/app/cli/automate.py b/app/cli/automate.py index 88d19c7..e0337dc 100644 --- a/app/cli/automate.py +++ b/app/cli/automate.py @@ -12,6 +12,7 @@ from app.extensions import db from app.models.activity import Activity from app.models.automation import Automation, AutomationState, AutomationLogs from app.terraform import BaseAutomation +from app.terraform.block.block_blocky import BlockBlockyAutomation from app.terraform.block.bridge_dnsc import BlockBridgeDnscAutomation from app.terraform.block.bridge_github import BlockBridgeGitHubAutomation from app.terraform.block.bridge_gitlab import BlockBridgeGitlabAutomation @@ -51,6 +52,7 @@ jobs = { BlockBridgeGitlabAutomation, BlockBridgeRoskomsvobodaAutomation, BlockBridgeScriptzteamAutomation, + BlockBlockyAutomation, BlockExternalAutomation, BlockOONIAutomation, BlockRoskomsvobodaAutomation, diff --git a/app/models/__init__.py b/app/models/__init__.py index 1020e8b..7f723d9 100644 --- a/app/models/__init__.py +++ b/app/models/__init__.py @@ -58,11 +58,11 @@ class AbstractResource(db.Model): # type: ignore __abstract__ = True id: Mapped[int] = mapped_column(db.Integer, primary_key=True) - added: Mapped[datetime] = mapped_column(db.DateTime(), default=datetime.utcnow, nullable=False) - updated: Mapped[datetime] = mapped_column(db.DateTime(), default=datetime.utcnow, nullable=False) - deprecated: Mapped[Optional[datetime]] = mapped_column(db.DateTime()) - deprecation_reason: Mapped[Optional[str]] = mapped_column(db.String()) - destroyed: Mapped[Optional[datetime]] = mapped_column(db.DateTime()) + added: Mapped[datetime] = mapped_column(db.DateTime(), default=datetime.utcnow) + updated: Mapped[datetime] = mapped_column(db.DateTime(), default=datetime.utcnow) + deprecated: Mapped[Optional[datetime]] + deprecation_reason: Mapped[Optional[str]] + destroyed: Mapped[Optional[datetime]] def __init__(self, *, id: Optional[int] = None, diff --git a/app/models/mirrors.py b/app/models/mirrors.py index 67b65fb..1f81683 100644 --- a/app/models/mirrors.py +++ b/app/models/mirrors.py @@ -35,7 +35,7 @@ class OriginDict(TypedDict): class Origin(AbstractConfiguration): group_id: Mapped[int] = mapped_column(db.Integer, db.ForeignKey("group.id")) - domain_name: Mapped[str] = mapped_column(db.String(255), unique=True) + domain_name: Mapped[str] = mapped_column(unique=True) auto_rotation: Mapped[bool] smart: Mapped[bool] assets: Mapped[bool] @@ -129,8 +129,8 @@ class Country(AbstractConfiguration): resource_id=self.country_code ) - country_code = mapped_column(db.String(2), nullable=False) - risk_level_override = mapped_column(db.Integer(), nullable=True) + country_code: Mapped[str] + risk_level_override: Mapped[Optional[int]] origins = db.relationship("Origin", secondary=country_origin, back_populates='countries') diff --git a/app/terraform/block/block_blocky.py b/app/terraform/block/block_blocky.py new file mode 100644 index 0000000..b29746a --- /dev/null +++ b/app/terraform/block/block_blocky.py @@ -0,0 +1,90 @@ +import json +import logging +import time +from typing import Any, Dict + +import requests + +from app.extensions import db +from app.models.mirrors import Country, Origin, Proxy, country_origin +from app.terraform.block_mirror import BlockMirrorAutomation + + +def clean_json_response(raw_response: str) -> Dict[str, Any]: + """ + Seems to be a bug in the API where a