Interact with migrations via cli (#2816)

* Interact with migrations via cli

* Move command under notifications
This commit is contained in:
Teo Voinea
2023-02-08 17:02:40 -05:00
committed by GitHub
parent f13f52ab71
commit a13bb2feb3
3 changed files with 38 additions and 1 deletions

View File

@ -13,7 +13,7 @@ import time
import uuid import uuid
from enum import Enum from enum import Enum
from shutil import which from shutil import which
from typing import Callable, Dict, List, Optional, Tuple, Type, TypeVar from typing import Callable, Dict, List, Optional, Tuple, Type, TypeVar, Union
from urllib.parse import urlparse from urllib.parse import urlparse
from uuid import UUID from uuid import UUID
@ -859,6 +859,30 @@ class Notifications(Endpoint):
data=requests.NotificationSearch(container=container), data=requests.NotificationSearch(container=container),
) )
def migrate_jinja_to_scriban(
self, dry_run: bool = False
) -> Union[
responses.JinjaToScribanMigrationResponse,
responses.JinjaToScribanMigrationDryRunResponse,
]:
"""Migrates all notification templates from jinja to scriban"""
migration_endpoint = "migrations/jinja_to_scriban"
if dry_run:
return self._req_model(
"POST",
responses.JinjaToScribanMigrationDryRunResponse,
data=requests.JinjaToScribanMigrationPost(dry_run=dry_run),
alternate_endpoint=migration_endpoint,
)
else:
return self._req_model(
"POST",
responses.JinjaToScribanMigrationResponse,
data=requests.JinjaToScribanMigrationPost(dry_run=dry_run),
alternate_endpoint=migration_endpoint,
)
class Tasks(Endpoint): class Tasks(Endpoint):
"""Interact with tasks""" """Interact with tasks"""

View File

@ -262,4 +262,8 @@ class TemplateValidationPost(BaseModel):
context: Optional[TemplateRenderContext] context: Optional[TemplateRenderContext]
class JinjaToScribanMigrationPost(BaseModel):
dry_run: bool = Field(default=False)
_check_hotfix() _check_hotfix()

View File

@ -89,3 +89,12 @@ class CanSchedule(BaseResponse):
class TemplateValidationResponse(BaseResponse): class TemplateValidationResponse(BaseResponse):
rendered_template: str rendered_template: str
available_context: TemplateRenderContext available_context: TemplateRenderContext
class JinjaToScribanMigrationResponse(BaseResponse):
updated_notification_ids: List[UUID]
failed_notification_ids: List[UUID]
class JinjaToScribanMigrationDryRunResponse(BaseResponse):
notification_ids_to_update: List[UUID]