Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Revert "Adds signal env" #3771

Merged
merged 1 commit into from
Sep 11, 2023
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

This file was deleted.

8 changes: 1 addition & 7 deletions src/dispatch/signal/flows.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,7 @@
from dispatch.signal import flows as signal_flows
from dispatch.signal import service as signal_service
from dispatch.signal.enums import SignalEngagementStatus
from dispatch.signal.models import (
SignalFilterAction,
SignalInstance,
SignalInstanceCreate,
SignalEnvironment,
)
from dispatch.signal.models import SignalFilterAction, SignalInstance, SignalInstanceCreate
from dispatch.workflow import flows as workflow_flows
from dispatch.entity_type.models import EntityScopeEnum

Expand Down Expand Up @@ -172,7 +167,6 @@ def create_signal_instance(
signal = signal_service.get_by_variant_or_external_id(
db_session=db_session,
project_id=project.id,
environment=signal_instance_data.get("environment", SignalEnvironment.PROD),
external_id=signal_instance_data.get("id"),
variant=signal_instance_data["variant"],
)
Expand Down
9 changes: 0 additions & 9 deletions src/dispatch/signal/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -129,11 +129,6 @@ class SignalFilterAction(DispatchEnum):
none = "none"


class SignalEnvironment(DispatchEnum):
PROD = "prod"
TEST = "test"


class Signal(Base, TimeStampMixin, ProjectMixin):
id = Column(Integer, primary_key=True)
name = Column(String)
Expand All @@ -146,7 +141,6 @@ class Signal(Base, TimeStampMixin, ProjectMixin):
variant = Column(String)
loopin_signal_identity = Column(Boolean, default=False)
enabled = Column(Boolean, default=False)
environment = Column(String, default=SignalEnvironment.PROD)
case_type_id = Column(Integer, ForeignKey(CaseType.id))
case_type = relationship("CaseType", backref="signals")
case_priority_id = Column(Integer, ForeignKey(CasePriority.id))
Expand Down Expand Up @@ -310,7 +304,6 @@ class SignalBase(DispatchBase):
enabled: Optional[bool] = False
external_url: Optional[str]
create_case: Optional[bool] = True
environment: Optional[SignalEnvironment] = SignalEnvironment.PROD
oncall_service: Optional[Service]
source: Optional[SourceBase]
created_at: Optional[datetime] = None
Expand All @@ -337,7 +330,6 @@ class SignalUpdate(SignalBase):
class SignalRead(SignalBase):
id: PrimaryKey
engagements: Optional[List[SignalEngagementRead]] = []
environment: Optional[SignalEnvironment] = SignalEnvironment.PROD
entity_types: Optional[List[EntityTypeRead]] = []
filters: Optional[List[SignalFilterRead]] = []
workflows: Optional[List[WorkflowRead]] = []
Expand All @@ -352,7 +344,6 @@ class SignalReadMinimal(DispatchBase):
description: Optional[str]
variant: Optional[str]
external_id: str
environment: Optional[SignalEnvironment] = SignalEnvironment.PROD
enabled: Optional[bool] = False
external_url: Optional[str]
create_case: Optional[bool] = True
Expand Down
19 changes: 3 additions & 16 deletions src/dispatch/signal/service.py
Original file line number Diff line number Diff line change
Expand Up @@ -225,31 +225,18 @@ def get_by_primary_or_external_id(


def get_by_variant_or_external_id(
*,
db_session: Session,
project_id: int,
environment: str,
external_id: str = None,
variant: str = None,
*, db_session: Session, project_id: int, external_id: str = None, variant: str = None
) -> Optional[Signal]:
"""Gets a signal it's external id (and variant if supplied)."""
if variant:
return (
db_session.query(Signal)
.filter(
Signal.project_id == project_id,
Signal.environment == environment,
Signal.variant == variant,
)
.filter(Signal.project_id == project_id, Signal.variant == variant)
.one_or_none()
)
return (
db_session.query(Signal)
.filter(
Signal.project_id == project_id,
Signal.environment == environment,
Signal.external_id == external_id,
)
.filter(Signal.project_id == project_id, Signal.external_id == external_id)
.one_or_none()
)

Expand Down
10 changes: 4 additions & 6 deletions src/dispatch/signal/views.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import logging
from typing import Union

from fastapi import APIRouter, BackgroundTasks, Depends, HTTPException, Request, Response, status
from fastapi import APIRouter, BackgroundTasks, HTTPException, Request, Response, status, Depends
from pydantic.error_wrappers import ErrorWrapper, ValidationError
from sqlalchemy.exc import IntegrityError

from dispatch.auth.permissions import PermissionsDependency, SensitiveProjectActionPermission
from dispatch.auth.permissions import SensitiveProjectActionPermission, PermissionsDependency
from dispatch.auth.service import CurrentUser
from dispatch.database.core import DbSession
from dispatch.database.service import CommonParameters, search_filter_sort_paginate
Expand All @@ -15,13 +15,11 @@
from dispatch.rate_limiter import limiter
from dispatch.signal import service as signal_service

from .flows import signal_instance_update_flow
from .models import (
SignalCreate,
SignalEngagementCreate,
SignalEngagementPagination,
SignalEngagementRead,
SignalEnvironment,
SignalFilterCreate,
SignalFilterPagination,
SignalFilterRead,
Expand All @@ -46,6 +44,8 @@
update_signal_filter,
)

from .flows import signal_instance_update_flow

router = APIRouter()

log = logging.getLogger(__name__)
Expand Down Expand Up @@ -75,14 +75,12 @@ def create_signal_instance(
if not signal_instance_in.signal:
external_id = signal_instance_in.raw.get("externalId")
variant = signal_instance_in.raw.get("variant")
environment = signal_instance_in.raw.get("environment", SignalEnvironment.PROD)

if external_id or variant:
signal = signal_service.get_by_variant_or_external_id(
db_session=db_session,
project_id=project.id,
external_id=external_id,
environment=environment,
variant=variant,
)

Expand Down
1 change: 0 additions & 1 deletion tests/factories.py
Original file line number Diff line number Diff line change
Expand Up @@ -817,7 +817,6 @@ class SignalFactory(BaseFactory):
description = "Test Description"
external_url = "https://test.com"
external_id = "1234"
environment = "test"
variant = "Test Variant"
enabled = True
loopin_signal_identity = False
Expand Down
23 changes: 2 additions & 21 deletions tests/signal/test_signal_flow.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ def test_create_signal_instance(session, signal, case_severity, case_priority, u
case_severity.default = True
case_severity.project_id = signal.project_id

instance_data = {"variant": signal.variant, "environment": "test"}
instance_data = {"variant": signal.variant}

assert create_signal_instance(
db_session=session,
Expand All @@ -31,25 +31,6 @@ def test_create_signal_instance_no_variant(session, signal, case_severity, case_
case_severity.default = True
case_severity.project_id = signal.project_id

instance_data = {"variant": "unknown", "environment": "test"}
with pytest.raises(DispatchException):
create_signal_instance(
db_session=session,
project=signal.project,
signal_instance_data=instance_data,
current_user=user,
)


def test_create_signal_instance_no_environment(session, signal, case_severity, case_priority, user):
from dispatch.signal.flows import create_signal_instance

case_priority.default = True
case_priority.project_id = signal.project_id

case_severity.default = True
case_severity.project_id = signal.project_id

instance_data = {"variant": "unknown"}
with pytest.raises(DispatchException):
create_signal_instance(
Expand All @@ -70,7 +51,7 @@ def test_create_signal_instance_not_enabled(session, signal, case_severity, case
case_severity.project_id = signal.project_id

signal.enabled = False
instance_data = {"variant": signal.variant, "environment": "test"}
instance_data = {"variant": signal.variant}
with pytest.raises(DispatchException):
create_signal_instance(
db_session=session,
Expand Down