update Press to Jcloude

This commit is contained in:
jingrow 2025-12-24 02:08:36 +08:00
parent 8226a31793
commit 2e1e6d961b
64 changed files with 230 additions and 230 deletions

View File

@ -3,7 +3,7 @@
<template #body-content> <template #body-content>
<div class="space-y-4"> <div class="space-y-4">
<div class="flex items-center space-x-2"> <div class="flex items-center space-x-2">
<PressAutocomplete <JcloudeAutocomplete
v-model="selectedTag" v-model="selectedTag"
:options="tagOptions" :options="tagOptions"
label="Select or create a tag" label="Select or create a tag"
@ -31,7 +31,7 @@ import Autocomplete from '../components/Autocomplete.vue';
export default { export default {
name: 'TagsDialog', name: 'TagsDialog',
props: ['docname', 'pagetype'], props: ['docname', 'pagetype'],
components: { ErrorMessage, PressAutocomplete: Autocomplete }, components: { ErrorMessage, JcloudeAutocomplete: Autocomplete },
data() { data() {
return { return {
showDialog: true, showDialog: true,

View File

@ -542,7 +542,7 @@ def get_permissions():
docperms = jingrow.db.sql( docperms = jingrow.db.sql(
f""" f"""
SELECT `document_name`, GROUP_CONCAT(`action`) as `actions` SELECT `document_name`, GROUP_CONCAT(`action`) as `actions`
FROM `tabPress User Permission` FROM `tabJcloude User Permission`
WHERE user='{user}' or `group` in {groups} WHERE user='{user}' or `group` in {groups}
GROUP BY `document_name` GROUP BY `document_name`
""", """,
@ -1194,29 +1194,29 @@ def remove_permission_group_user(name, user):
@jingrow.whitelist() @jingrow.whitelist()
def get_permission_roles(): def get_permission_roles():
PressRole = jingrow.qb.PageType("Jcloude Role") JcloudeRole = jingrow.qb.PageType("Jcloude Role")
PressRoleUser = jingrow.qb.PageType("Jcloude Role User") JcloudeRoleUser = jingrow.qb.PageType("Jcloude Role User")
return ( return (
jingrow.qb.from_(PressRole) jingrow.qb.from_(JcloudeRole)
.select( .select(
PressRole.name, JcloudeRole.name,
PressRole.admin_access, JcloudeRole.admin_access,
PressRole.allow_billing, JcloudeRole.allow_billing,
PressRole.allow_apps, JcloudeRole.allow_apps,
PressRole.allow_partner, JcloudeRole.allow_partner,
PressRole.allow_site_creation, JcloudeRole.allow_site_creation,
PressRole.allow_bench_creation, JcloudeRole.allow_bench_creation,
PressRole.allow_server_creation, JcloudeRole.allow_server_creation,
PressRole.allow_webhook_configuration, JcloudeRole.allow_webhook_configuration,
PressRole.allow_dashboard, JcloudeRole.allow_dashboard,
PressRole.allow_customer, JcloudeRole.allow_customer,
PressRole.allow_leads, JcloudeRole.allow_leads,
PressRole.allow_contribution, JcloudeRole.allow_contribution,
) )
.join(PressRoleUser) .join(JcloudeRoleUser)
.on((PressRole.name == PressRoleUser.parent) & (PressRoleUser.user == jingrow.session.user)) .on((JcloudeRole.name == JcloudeRoleUser.parent) & (JcloudeRoleUser.user == jingrow.session.user))
.where(PressRole.team == get_current_team()) .where(JcloudeRole.team == get_current_team())
.run(as_dict=True) .run(as_dict=True)
) )

View File

@ -39,7 +39,7 @@ if TYPE_CHECKING:
from elasticsearch_dsl.response import AggResponse from elasticsearch_dsl.response import AggResponse
from elasticsearch_dsl.response.aggs import FieldBucket, FieldBucketData from elasticsearch_dsl.response.aggs import FieldBucket, FieldBucketData
from jcloude.jcloude.pagetype.jcloude_settings.jcloude_settings import PressSettings from jcloude.jcloude.pagetype.jcloude_settings.jcloude_settings import JcloudeSettings
class Dataset(TypedDict): class Dataset(TypedDict):
"""Single element of list of Datasets returned for stacked histogram chart""" """Single element of list of Datasets returned for stacked histogram chart"""
@ -366,7 +366,7 @@ class NginxRequestGroupByChart(StackedGroupByChart):
def setup_search_filters(self): def setup_search_filters(self):
super().setup_search_filters() super().setup_search_filters()
jcloude_settings: PressSettings = jingrow.get_cached_pg("Jcloude Settings") jcloude_settings: JcloudeSettings = jingrow.get_cached_pg("Jcloude Settings")
if not ( if not (
jcloude_settings.monitor_server jcloude_settings.monitor_server
and ( and (

View File

@ -19,7 +19,7 @@ from jcloude.api.site import site_config, update_config
from jcloude.utils import log_error from jcloude.utils import log_error
if TYPE_CHECKING: if TYPE_CHECKING:
from jcloude.jcloude.pagetype.jcloude_settings.jcloude_settings import PressSettings from jcloude.jcloude.pagetype.jcloude_settings.jcloude_settings import JcloudeSettings
class EmailLimitExceeded(TooManyRequestsError): class EmailLimitExceeded(TooManyRequestsError):
@ -156,7 +156,7 @@ def validate_plan(secret_key):
) )
def make_spamd_request(jcloude_settings: PressSettings, message: bytes): def make_spamd_request(jcloude_settings: JcloudeSettings, message: bytes):
headers = {} headers = {}
if jcloude_settings.spamd_api_key: if jcloude_settings.spamd_api_key:
spamd_api_secret = get_decrypted_password("Jcloude Settings", "Jcloude Settings", "spamd_api_secret") spamd_api_secret = get_decrypted_password("Jcloude Settings", "Jcloude Settings", "spamd_api_secret")

View File

@ -26,23 +26,23 @@ def get_notifications(
if not filters: if not filters:
filters = {} filters = {}
PressNotification = jingrow.qb.PageType("Jcloude Notification") JcloudeNotification = jingrow.qb.PageType("Jcloude Notification")
query = ( query = (
jingrow.qb.from_(PressNotification) jingrow.qb.from_(JcloudeNotification)
.select( .select(
PressNotification.name, JcloudeNotification.name,
PressNotification.type, JcloudeNotification.type,
PressNotification.read, JcloudeNotification.read,
PressNotification.title, JcloudeNotification.title,
PressNotification.message, JcloudeNotification.message,
PressNotification.creation, JcloudeNotification.creation,
PressNotification.is_addressed, JcloudeNotification.is_addressed,
PressNotification.is_actionable, JcloudeNotification.is_actionable,
PressNotification.document_type, JcloudeNotification.document_type,
PressNotification.document_name, JcloudeNotification.document_name,
) )
.where(PressNotification.team == get_current_team()) .where(JcloudeNotification.team == get_current_team())
.orderby(PressNotification.creation, order=jingrow.qb.desc) .orderby(JcloudeNotification.creation, order=jingrow.qb.desc)
.limit(limit_page_length) .limit(limit_page_length)
.offset(limit_start) .offset(limit_start)
) )
@ -54,10 +54,10 @@ def get_notifications(
resources.update(release_groups) resources.update(release_groups)
if resources: if resources:
query = query.where(PressNotification.reference_name.isin(resources)) query = query.where(JcloudeNotification.reference_name.isin(resources))
if filters.get("read") == "Unread": if filters.get("read") == "Unread":
query = query.where(PressNotification.read == 0) query = query.where(JcloudeNotification.read == 0)
notifications = query.run(as_dict=True) notifications = query.run(as_dict=True)

View File

@ -53,22 +53,22 @@ def attempts(webhook: str):
pg = jingrow.get_pg("Jcloude Webhook", webhook) pg = jingrow.get_pg("Jcloude Webhook", webhook)
pg.has_permission("read") pg.has_permission("read")
PressWebhookAttempt = jingrow.qb.PageType("Jcloude Webhook Attempt") JcloudeWebhookAttempt = jingrow.qb.PageType("Jcloude Webhook Attempt")
PressWebhookLog = jingrow.qb.PageType("Jcloude Webhook Log") JcloudeWebhookLog = jingrow.qb.PageType("Jcloude Webhook Log")
query = ( query = (
jingrow.qb.from_(PressWebhookAttempt) jingrow.qb.from_(JcloudeWebhookAttempt)
.select( .select(
PressWebhookAttempt.name, JcloudeWebhookAttempt.name,
PressWebhookAttempt.endpoint, JcloudeWebhookAttempt.endpoint,
PressWebhookLog.event, JcloudeWebhookLog.event,
PressWebhookAttempt.status, JcloudeWebhookAttempt.status,
PressWebhookAttempt.response_status_code, JcloudeWebhookAttempt.response_status_code,
PressWebhookAttempt.timestamp, JcloudeWebhookAttempt.timestamp,
) )
.left_join(PressWebhookLog) .left_join(JcloudeWebhookLog)
.on(PressWebhookAttempt.parent == PressWebhookLog.name) .on(JcloudeWebhookAttempt.parent == JcloudeWebhookLog.name)
.where(PressWebhookAttempt.webhook == pg.name) .where(JcloudeWebhookAttempt.webhook == pg.name)
.orderby(PressWebhookAttempt.timestamp, order=jingrow.qb.desc) .orderby(JcloudeWebhookAttempt.timestamp, order=jingrow.qb.desc)
) )
return query.run(as_dict=1) return query.run(as_dict=1)

View File

@ -37,16 +37,16 @@ def api(scope: Literal["billing", "partner"]):
team: Team = get_current_team(get_pg=True) team: Team = get_current_team(get_pg=True)
if team.is_team_owner() or team.is_admin_user(): if team.is_team_owner() or team.is_admin_user():
return fn(*args, **kwargs) return fn(*args, **kwargs)
PressRole = jingrow.qb.PageType("Jcloude Role") JcloudeRole = jingrow.qb.PageType("Jcloude Role")
PressRoleUser = jingrow.qb.PageType("Jcloude Role User") JcloudeRoleUser = jingrow.qb.PageType("Jcloude Role User")
has_permission = ( has_permission = (
jingrow.qb.from_(PressRole) jingrow.qb.from_(JcloudeRole)
.inner_join(PressRoleUser) .inner_join(JcloudeRoleUser)
.on(PressRoleUser.parent == PressRole.name) .on(JcloudeRoleUser.parent == JcloudeRole.name)
.select(Count(PressRole.name).as_("count")) .select(Count(JcloudeRole.name).as_("count"))
.where(PressRole.team == team.name) .where(JcloudeRole.team == team.name)
.where(PressRole[key] == 1) .where(JcloudeRole[key] == 1)
.where(PressRoleUser.user == jingrow.session.user) .where(JcloudeRoleUser.user == jingrow.session.user)
.run(as_dict=True) .run(as_dict=True)
.pop() .pop()
.get("count") .get("count")
@ -74,16 +74,16 @@ def action():
team: Team = get_current_team(get_pg=True) team: Team = get_current_team(get_pg=True)
if team.is_team_owner() or team.is_admin_user(): if team.is_team_owner() or team.is_admin_user():
return fn(self, *args, **kwargs) return fn(self, *args, **kwargs)
PressRole = jingrow.qb.PageType("Jcloude Role") JcloudeRole = jingrow.qb.PageType("Jcloude Role")
PressRoleUser = jingrow.qb.PageType("Jcloude Role User") JcloudeRoleUser = jingrow.qb.PageType("Jcloude Role User")
has_permission = ( has_permission = (
jingrow.qb.from_(PressRole) jingrow.qb.from_(JcloudeRole)
.inner_join(PressRoleUser) .inner_join(JcloudeRoleUser)
.on(PressRoleUser.parent == PressRole.name) .on(JcloudeRoleUser.parent == JcloudeRole.name)
.select(Count(PressRole.name).as_("count")) .select(Count(JcloudeRole.name).as_("count"))
.where(PressRole.team == team.name) .where(JcloudeRole.team == team.name)
.where(PressRole[key] == 1) .where(JcloudeRole[key] == 1)
.where(PressRoleUser.user == jingrow.session.user) .where(JcloudeRoleUser.user == jingrow.session.user)
.run(as_dict=True) .run(as_dict=True)
.pop() .pop()
.get("count") .get("count")
@ -159,15 +159,15 @@ def base_query() -> QueryBuilder:
""" """
Get a base query for Jcloude Role documents based on the current team context. Get a base query for Jcloude Role documents based on the current team context.
""" """
PressRole = jingrow.qb.PageType("Jcloude Role") JcloudeRole = jingrow.qb.PageType("Jcloude Role")
PressRoleUser = jingrow.qb.PageType("Jcloude Role User") JcloudeRoleUser = jingrow.qb.PageType("Jcloude Role User")
return ( return (
jingrow.qb.from_(PressRole) jingrow.qb.from_(JcloudeRole)
.select(PressRole.name) .select(JcloudeRole.name)
.left_join(PressRoleUser) .left_join(JcloudeRoleUser)
.on(PressRoleUser.parent == PressRole.name) .on(JcloudeRoleUser.parent == JcloudeRole.name)
.where(PressRole.team == get_current_team()) .where(JcloudeRole.team == get_current_team())
.where(PressRoleUser.user == jingrow.session.user) .where(JcloudeRoleUser.user == jingrow.session.user)
) )

View File

@ -11,33 +11,33 @@ def check(base_query: QueryBuilder, document_type: str, document_name: str) -> b
def documents(base_query: QueryBuilder, document_type: str) -> list[str]: def documents(base_query: QueryBuilder, document_type: str) -> list[str]:
PressRole = jingrow.qb.PageType("Jcloude Role") JcloudeRole = jingrow.qb.PageType("Jcloude Role")
PressRoleResource = jingrow.qb.PageType("Jcloude Role Resource") JcloudeRoleResource = jingrow.qb.PageType("Jcloude Role Resource")
return [ return [
pg.document_name pg.document_name
for pg in base_query.inner_join(PressRoleResource) for pg in base_query.inner_join(JcloudeRoleResource)
.on( .on(
(PressRoleResource.parent == PressRole.name) (JcloudeRoleResource.parent == JcloudeRole.name)
& (PressRoleResource.document_type == document_type) & (JcloudeRoleResource.document_type == document_type)
& (Not(PressRoleResource.document_name.isnull())) & (Not(JcloudeRoleResource.document_name.isnull()))
) )
.select(PressRoleResource.document_name) .select(JcloudeRoleResource.document_name)
.distinct() .distinct()
.run(as_dict=True) .run(as_dict=True)
] ]
def document(base_query: QueryBuilder, document_type: str, document_name: str) -> bool: def document(base_query: QueryBuilder, document_type: str, document_name: str) -> bool:
PressRole = jingrow.qb.PageType("Jcloude Role") JcloudeRole = jingrow.qb.PageType("Jcloude Role")
PressRoleResource = jingrow.qb.PageType("Jcloude Role Resource") JcloudeRoleResource = jingrow.qb.PageType("Jcloude Role Resource")
return ( return (
base_query.inner_join(PressRoleResource) base_query.inner_join(JcloudeRoleResource)
.on( .on(
(PressRoleResource.parent == PressRole.name) (JcloudeRoleResource.parent == JcloudeRole.name)
& (PressRoleResource.document_type == document_type) & (JcloudeRoleResource.document_type == document_type)
& (PressRoleResource.document_name == document_name) & (JcloudeRoleResource.document_name == document_name)
) )
.select(Count(PressRole.name).as_("document_count")) .select(Count(JcloudeRole.name).as_("document_count"))
.run(as_dict=True) .run(as_dict=True)
.pop() .pop()
.get("document_count") .get("document_count")

View File

@ -4,10 +4,10 @@ from jingrow.query_builder.terms import QueryBuilder
def check(base_query: QueryBuilder) -> bool: def check(base_query: QueryBuilder) -> bool:
PressRole = jingrow.qb.PageType("Jcloude Role") JcloudeRole = jingrow.qb.PageType("Jcloude Role")
return ( return (
base_query.where(PressRole.allow_apps == 1) base_query.where(JcloudeRole.allow_apps == 1)
.select(Count(PressRole.name).as_("count")) .select(Count(JcloudeRole.name).as_("count"))
.run(as_dict=True) .run(as_dict=True)
.pop() .pop()
.get("count") .get("count")

View File

@ -4,17 +4,17 @@ from jingrow.query_builder.terms import QueryBuilder
def check(base_query: QueryBuilder, document_name: str) -> bool: def check(base_query: QueryBuilder, document_name: str) -> bool:
PressRole = jingrow.qb.PageType("Jcloude Role") JcloudeRole = jingrow.qb.PageType("Jcloude Role")
PressRoleResource = jingrow.qb.PageType("Jcloude Role Resource") JcloudeRoleResource = jingrow.qb.PageType("Jcloude Role Resource")
ServerSnapshot = jingrow.qb.PageType("Server Snapshot") ServerSnapshot = jingrow.qb.PageType("Server Snapshot")
return ( return (
base_query.left_join(PressRoleResource) base_query.left_join(JcloudeRoleResource)
.on(PressRoleResource.parent == PressRole.name) .on(JcloudeRoleResource.parent == JcloudeRole.name)
.left_join(ServerSnapshot) .left_join(ServerSnapshot)
.on(ServerSnapshot.name == document_name) .on(ServerSnapshot.name == document_name)
.select(Count(PressRole.name).as_("count")) .select(Count(JcloudeRole.name).as_("count"))
.where(PressRoleResource.document_type == "Server") .where(JcloudeRoleResource.document_type == "Server")
.where(PressRoleResource.document_name == ServerSnapshot.app_server) .where(JcloudeRoleResource.document_name == ServerSnapshot.app_server)
.run(as_dict=True) .run(as_dict=True)
.pop() .pop()
.get("count") .get("count")

View File

@ -4,17 +4,17 @@ from jingrow.query_builder.terms import QueryBuilder
def check(base_query: QueryBuilder, document_name: str) -> bool: def check(base_query: QueryBuilder, document_name: str) -> bool:
PressRole = jingrow.qb.PageType("Jcloude Role") JcloudeRole = jingrow.qb.PageType("Jcloude Role")
PressRoleResource = jingrow.qb.PageType("Jcloude Role Resource") JcloudeRoleResource = jingrow.qb.PageType("Jcloude Role Resource")
SiteBackup = jingrow.qb.PageType("Site Backup") SiteBackup = jingrow.qb.PageType("Site Backup")
return ( return (
base_query.left_join(PressRoleResource) base_query.left_join(JcloudeRoleResource)
.on(PressRoleResource.parent == PressRole.name) .on(JcloudeRoleResource.parent == JcloudeRole.name)
.left_join(SiteBackup) .left_join(SiteBackup)
.on(SiteBackup.name == document_name) .on(SiteBackup.name == document_name)
.select(Count(PressRole.name).as_("count")) .select(Count(JcloudeRole.name).as_("count"))
.where(PressRoleResource.document_type == "Site") .where(JcloudeRoleResource.document_type == "Site")
.where(PressRoleResource.document_name == SiteBackup.site) .where(JcloudeRoleResource.document_name == SiteBackup.site)
.run(as_dict=True) .run(as_dict=True)
.pop() .pop()
.get("count") .get("count")

View File

@ -4,10 +4,10 @@ from jingrow.query_builder.terms import QueryBuilder
def check(base_query: QueryBuilder) -> bool: def check(base_query: QueryBuilder) -> bool:
PressRole = jingrow.qb.PageType("Jcloude Role") JcloudeRole = jingrow.qb.PageType("Jcloude Role")
return ( return (
base_query.where(PressRole.allow_webhook_configuration == 1) base_query.where(JcloudeRole.allow_webhook_configuration == 1)
.select(Count(PressRole.name).as_("document_count")) .select(Count(JcloudeRole.name).as_("document_count"))
.run(as_dict=True) .run(as_dict=True)
.pop() .pop()
.get("document_count") .get("document_count")

View File

@ -25,7 +25,7 @@ class AccountRequest(Page):
from jingrow.types import DF from jingrow.types import DF
from jcloude.jcloude.pagetype.account_request_jcloude_role.account_request_jcloude_role import ( from jcloude.jcloude.pagetype.account_request_jcloude_role.account_request_jcloude_role import (
AccountRequestPressRole, AccountRequestJcloudeRole,
) )
agreed_to_partner_consent: DF.Check agreed_to_partner_consent: DF.Check
@ -52,7 +52,7 @@ class AccountRequest(Page):
otp_generated_at: DF.Datetime | None otp_generated_at: DF.Datetime | None
phone_number: DF.Data | None phone_number: DF.Data | None
plan: DF.Link | None plan: DF.Link | None
jcloude_roles: DF.TableMultiSelect[AccountRequestPressRole] jcloude_roles: DF.TableMultiSelect[AccountRequestJcloudeRole]
product_trial: DF.Link | None product_trial: DF.Link | None
referral_source: DF.Data | None referral_source: DF.Data | None
referrer_id: DF.Data | None referrer_id: DF.Data | None

View File

@ -5,7 +5,7 @@
from jingrow.model.page import Page from jingrow.model.page import Page
class AccountRequestPressRole(Page): class AccountRequestJcloudeRole(Page):
# begin: auto-generated types # begin: auto-generated types
# This code is auto-generated. Do not modify anything in this block. # This code is auto-generated. Do not modify anything in this block.

View File

@ -62,7 +62,7 @@ if TYPE_CHECKING:
from jcloude.jcloude.pagetype.bench_update_app.bench_update_app import BenchUpdateApp from jcloude.jcloude.pagetype.bench_update_app.bench_update_app import BenchUpdateApp
from jcloude.jcloude.pagetype.deploy_candidate.deploy_candidate import DeployCandidate from jcloude.jcloude.pagetype.deploy_candidate.deploy_candidate import DeployCandidate
from jcloude.jcloude.pagetype.deploy_candidate_build.deploy_candidate_build import DeployCandidateBuild from jcloude.jcloude.pagetype.deploy_candidate_build.deploy_candidate_build import DeployCandidateBuild
from jcloude.jcloude.pagetype.jcloude_settings.jcloude_settings import PressSettings from jcloude.jcloude.pagetype.jcloude_settings.jcloude_settings import JcloudeSettings
SupervisorctlActions = Literal[ SupervisorctlActions = Literal[
"start", "start",
@ -725,7 +725,7 @@ class Bench(Page):
def get_memory_info(self) -> tuple[bool, float, float]: def get_memory_info(self) -> tuple[bool, float, float]:
"""Returns a tuple: (is_info_available, free_memory_in_gb, required_memory_in_gb)""" """Returns a tuple: (is_info_available, free_memory_in_gb, required_memory_in_gb)"""
jcloude_settings: PressSettings = jingrow.get_cached_pg("Jcloude Settings") jcloude_settings: JcloudeSettings = jingrow.get_cached_pg("Jcloude Settings")
required_memory_gb = jcloude_settings.minimum_rebuild_memory required_memory_gb = jcloude_settings.minimum_rebuild_memory
free_memory_bytes = self.get_free_memory() free_memory_bytes = self.get_free_memory()

View File

@ -46,7 +46,7 @@ from jcloude.utils import get_current_team
from jcloude.utils.test import foreground_enqueue, foreground_enqueue_pg from jcloude.utils.test import foreground_enqueue, foreground_enqueue_pg
if TYPE_CHECKING: if TYPE_CHECKING:
from jcloude.jcloude.pagetype.jcloude_settings.jcloude_settings import PressSettings from jcloude.jcloude.pagetype.jcloude_settings.jcloude_settings import JcloudeSettings
from jcloude.jcloude.pagetype.team.team import Team from jcloude.jcloude.pagetype.team.team import Team
@ -107,7 +107,7 @@ class TestBench(JingrowTestCase):
high_memory_max = 4020 high_memory_max = 4020
low_memory_max = 1029 low_memory_max = 1029
jcloude_settings: PressSettings = jingrow.get_pg("Jcloude Settings") jcloude_settings: JcloudeSettings = jingrow.get_pg("Jcloude Settings")
if not jcloude_settings.minimum_rebuild_memory: if not jcloude_settings.minimum_rebuild_memory:
jcloude_settings.certbot_directory = "./" jcloude_settings.certbot_directory = "./"

View File

@ -42,8 +42,8 @@ if typing.TYPE_CHECKING:
from jcloude.jcloude.pagetype.log_server.log_server import LogServer from jcloude.jcloude.pagetype.log_server.log_server import LogServer
from jcloude.jcloude.pagetype.monitor_server.monitor_server import MonitorServer from jcloude.jcloude.pagetype.monitor_server.monitor_server import MonitorServer
from jcloude.jcloude.pagetype.jcloude_job.jcloude_job import PressJob from jcloude.jcloude.pagetype.jcloude_job.jcloude_job import JcloudeJob
from jcloude.jcloude.pagetype.jcloude_settings.jcloude_settings import PressSettings from jcloude.jcloude.pagetype.jcloude_settings.jcloude_settings import JcloudeSettings
from jcloude.jcloude.pagetype.server.server import BaseServer from jcloude.jcloude.pagetype.server.server import BaseServer
from jcloude.jcloude.pagetype.server_plan.server_plan import ServerPlan from jcloude.jcloude.pagetype.server_plan.server_plan import ServerPlan
from jcloude.jcloude.pagetype.virtual_machine.virtual_machine import VirtualMachine from jcloude.jcloude.pagetype.virtual_machine.virtual_machine import VirtualMachine
@ -132,7 +132,7 @@ class Cluster(Page):
self.validate_hetzner_api_token() self.validate_hetzner_api_token()
def validate_hetzner_api_token(self): def validate_hetzner_api_token(self):
settings: "PressSettings" = jingrow.get_single("Jcloude Settings") settings: "JcloudeSettings" = jingrow.get_single("Jcloude Settings")
api_token = settings.get_password("hetzner_api_token") api_token = settings.get_password("hetzner_api_token")
client = Client(token=api_token) client = Client(token=api_token)
try: try:
@ -150,7 +150,7 @@ class Cluster(Page):
jingrow.throw(f"An error occurred while validating the API token: {e}") jingrow.throw(f"An error occurred while validating the API token: {e}")
def validate_aws_credentials(self): def validate_aws_credentials(self):
settings: "PressSettings" = jingrow.get_single("Jcloude Settings") settings: "JcloudeSettings" = jingrow.get_single("Jcloude Settings")
if self.public and not self.aws_access_key_id: if self.public and not self.aws_access_key_id:
self.aws_access_key_id = settings.aws_access_key_id self.aws_access_key_id = settings.aws_access_key_id
self.aws_secret_access_key = settings.get_password("aws_secret_access_key") self.aws_secret_access_key = settings.get_password("aws_secret_access_key")
@ -193,7 +193,7 @@ class Cluster(Page):
] ]
# Get Hetzner API token from Jcloude Settings # Get Hetzner API token from Jcloude Settings
settings: "PressSettings" = jingrow.get_single("Jcloude Settings") settings: "JcloudeSettings" = jingrow.get_single("Jcloude Settings")
api_token = settings.get_password("hetzner_api_token") api_token = settings.get_password("hetzner_api_token")
client = Client(token=api_token) client = Client(token=api_token)
@ -893,7 +893,7 @@ class Cluster(Page):
kms_key_id: str | None = None, kms_key_id: str | None = None,
is_secondary: bool = False, is_secondary: bool = False,
primary: str | None = None, primary: str | None = None,
) -> tuple[BaseServer | MonitorServer | LogServer, PressJob]: ) -> tuple[BaseServer | MonitorServer | LogServer, JcloudeJob]:
"""Creates a server for the cluster """Creates a server for the cluster
temporary_server: If you are creating a temporary server for some special purpose, set this to True. temporary_server: If you are creating a temporary server for some special purpose, set this to True.

View File

@ -63,7 +63,7 @@
"fieldname": "status", "fieldname": "status",
"fieldtype": "Select", "fieldtype": "Select",
"label": "Status", "label": "Status",
"options": "Validating\nConfirmed\nAcknowledged\nInvestigating\nResolved\nAuto-Resolved\nPress-Resolved" "options": "Validating\nConfirmed\nAcknowledged\nInvestigating\nResolved\nAuto-Resolved\nJcloude-Resolved"
}, },
{ {
"default": "Database Down", "default": "Database Down",

View File

@ -43,7 +43,7 @@ if TYPE_CHECKING:
IncidentSettingsUser, IncidentSettingsUser,
) )
from jcloude.jcloude.pagetype.monitor_server.monitor_server import MonitorServer from jcloude.jcloude.pagetype.monitor_server.monitor_server import MonitorServer
from jcloude.jcloude.pagetype.jcloude_settings.jcloude_settings import PressSettings from jcloude.jcloude.pagetype.jcloude_settings.jcloude_settings import JcloudeSettings
from jcloude.jcloude.pagetype.server.server import Server from jcloude.jcloude.pagetype.server.server import Server
INCIDENT_ALERT = "Sites Down" # TODO: make it a field or child table somewhere # INCIDENT_ALERT = "Sites Down" # TODO: make it a field or child table somewhere #
@ -367,7 +367,7 @@ class Incident(WebsiteGenerator):
@cached_property @cached_property
def monitor_server(self) -> MonitorServer: def monitor_server(self) -> MonitorServer:
jcloude_settings: PressSettings = jingrow.get_cached_pg("Jcloude Settings") jcloude_settings: JcloudeSettings = jingrow.get_cached_pg("Jcloude Settings")
if not (monitor_url := jcloude_settings.monitor_server): if not (monitor_url := jcloude_settings.monitor_server):
jingrow.throw("Monitor Server not set in Jcloude Settings") jingrow.throw("Monitor Server not set in Jcloude Settings")
return jingrow.get_cached_pg("Monitor Server", monitor_url) return jingrow.get_cached_pg("Monitor Server", monitor_url)
@ -482,12 +482,12 @@ class Incident(WebsiteGenerator):
@property @property
def twilio_phone_number(self): def twilio_phone_number(self):
jcloude_settings: PressSettings = jingrow.get_cached_pg("Jcloude Settings") jcloude_settings: JcloudeSettings = jingrow.get_cached_pg("Jcloude Settings")
return Phone(jcloude_settings.twilio_phone_number) return Phone(jcloude_settings.twilio_phone_number)
@property @property
def twilio_client(self): def twilio_client(self):
jcloude_settings: PressSettings = jingrow.get_cached_pg("Jcloude Settings") jcloude_settings: JcloudeSettings = jingrow.get_cached_pg("Jcloude Settings")
try: try:
return jcloude_settings.twilio_client return jcloude_settings.twilio_client
except Exception: except Exception:

View File

@ -6,7 +6,7 @@ from __future__ import annotations
from jingrow.model.page import Page from jingrow.model.page import Page
class PressFeedback(Page): class JcloudeFeedback(Page):
# begin: auto-generated types # begin: auto-generated types
# This code is auto-generated. Do not modify anything in this block. # This code is auto-generated. Do not modify anything in this block.

View File

@ -6,5 +6,5 @@
from jingrow.tests.utils import JingrowTestCase from jingrow.tests.utils import JingrowTestCase
class TestPressFeedback(JingrowTestCase): class TestJcloudeFeedback(JingrowTestCase):
pass pass

View File

@ -10,7 +10,7 @@ from jingrow.utils import add_days, add_to_date
from jcloude.jcloude.pagetype.jcloude_job_step.jcloude_job_step import safe_exec from jcloude.jcloude.pagetype.jcloude_job_step.jcloude_job_step import safe_exec
class PressJob(Page): class JcloudeJob(Page):
# begin: auto-generated types # begin: auto-generated types
# This code is auto-generated. Do not modify anything in this block. # This code is auto-generated. Do not modify anything in this block.
@ -232,7 +232,7 @@ def fail_stuck_jcloude_jobs():
limit=100, limit=100,
) )
for job_name in jobs: for job_name in jobs:
job = PressJob("Jcloude Job", job_name) job = JcloudeJob("Jcloude Job", job_name)
job.force_fail() job.force_fail()
jingrow.db.commit() jingrow.db.commit()

View File

@ -5,5 +5,5 @@
from jingrow.tests.utils import JingrowTestCase from jingrow.tests.utils import JingrowTestCase
class TestPressJob(JingrowTestCase): class TestJcloudeJob(JingrowTestCase):
pass pass

View File

@ -9,10 +9,10 @@ from jingrow.model.page import Page
from jingrow.utils.safe_exec import safe_exec from jingrow.utils.safe_exec import safe_exec
if TYPE_CHECKING: if TYPE_CHECKING:
from jcloude.jcloude.pagetype.jcloude_job.jcloude_job import PressJob from jcloude.jcloude.pagetype.jcloude_job.jcloude_job import JcloudeJob
class PressJobStep(Page): class JcloudeJobStep(Page):
# begin: auto-generated types # begin: auto-generated types
# This code is auto-generated. Do not modify anything in this block. # This code is auto-generated. Do not modify anything in this block.
@ -45,7 +45,7 @@ class PressJobStep(Page):
{"parent": self.job_type, "step_name": self.step_name}, {"parent": self.job_type, "step_name": self.step_name},
"script", "script",
) )
job: PressJob = jingrow.get_pg("Jcloude Job", self.job) job: JcloudeJob = jingrow.get_pg("Jcloude Job", self.job)
arguments = json.loads(job.arguments) arguments = json.loads(job.arguments)
try: try:
local = {"arguments": jingrow._dict(arguments), "result": None, "pg": job} local = {"arguments": jingrow._dict(arguments), "result": None, "pg": job}

View File

@ -5,5 +5,5 @@
from jingrow.tests.utils import JingrowTestCase from jingrow.tests.utils import JingrowTestCase
class TestPressJobStep(JingrowTestCase): class TestJcloudeJobStep(JingrowTestCase):
pass pass

View File

@ -5,7 +5,7 @@
from jingrow.model.page import Page from jingrow.model.page import Page
class PressJobType(Page): class JcloudeJobType(Page):
# begin: auto-generated types # begin: auto-generated types
# This code is auto-generated. Do not modify anything in this block. # This code is auto-generated. Do not modify anything in this block.
@ -14,11 +14,11 @@ class PressJobType(Page):
if TYPE_CHECKING: if TYPE_CHECKING:
from jingrow.types import DF from jingrow.types import DF
from jcloude.jcloude.pagetype.jcloude_job_type_step.jcloude_job_type_step import PressJobTypeStep from jcloude.jcloude.pagetype.jcloude_job_type_step.jcloude_job_type_step import JcloudeJobTypeStep
callback_max_retry: DF.Int callback_max_retry: DF.Int
callback_script: DF.Code | None callback_script: DF.Code | None
steps: DF.Table[PressJobTypeStep] steps: DF.Table[JcloudeJobTypeStep]
# end: auto-generated types # end: auto-generated types
pass pass

View File

@ -5,5 +5,5 @@
from jingrow.tests.utils import JingrowTestCase from jingrow.tests.utils import JingrowTestCase
class TestPressJobType(JingrowTestCase): class TestJcloudeJobType(JingrowTestCase):
pass pass

View File

@ -5,7 +5,7 @@
from jingrow.model.page import Page from jingrow.model.page import Page
class PressJobTypeStep(Page): class JcloudeJobTypeStep(Page):
# begin: auto-generated types # begin: auto-generated types
# This code is auto-generated. Do not modify anything in this block. # This code is auto-generated. Do not modify anything in this block.

View File

@ -5,5 +5,5 @@
from jingrow.tests.utils import JingrowTestCase from jingrow.tests.utils import JingrowTestCase
class TestPressJobTypeStep(JingrowTestCase): class TestJcloudeJobTypeStep(JingrowTestCase):
pass pass

View File

@ -5,7 +5,7 @@ import jingrow
from jingrow.model.page import Page from jingrow.model.page import Page
class PressMethodPermission(Page): class JcloudeMethodPermission(Page):
# begin: auto-generated types # begin: auto-generated types
# This code is auto-generated. Do not modify anything in this block. # This code is auto-generated. Do not modify anything in this block.

View File

@ -5,5 +5,5 @@
from jingrow.tests.utils import JingrowTestCase from jingrow.tests.utils import JingrowTestCase
class TestPressMethodPermission(JingrowTestCase): class TestJcloudeMethodPermission(JingrowTestCase):
pass pass

View File

@ -9,7 +9,7 @@ from jcloude.api.client import dashboard_whitelist
from jcloude.jcloude.pagetype.communication_info.communication_info import get_communication_info from jcloude.jcloude.pagetype.communication_info.communication_info import get_communication_info
class PressNotification(Page): class JcloudeNotification(Page):
# begin: auto-generated types # begin: auto-generated types
# This code is auto-generated. Do not modify anything in this block. # This code is auto-generated. Do not modify anything in this block.

View File

@ -17,7 +17,7 @@ from jcloude.jcloude.pagetype.release_group.test_release_group import (
from jcloude.jcloude.pagetype.site.test_site import create_test_bench, create_test_site from jcloude.jcloude.pagetype.site.test_site import create_test_bench, create_test_site
class TestPressNotification(JingrowTestCase): class TestJcloudeNotification(JingrowTestCase):
def setUp(self): def setUp(self):
super().setUp() super().setUp()

View File

@ -13,7 +13,7 @@ DEFAULT_PERMISSIONS = {
} }
class PressPermissionGroup(Page): class JcloudePermissionGroup(Page):
# begin: auto-generated types # begin: auto-generated types
# This code is auto-generated. Do not modify anything in this block. # This code is auto-generated. Do not modify anything in this block.
@ -23,13 +23,13 @@ class PressPermissionGroup(Page):
from jingrow.types import DF from jingrow.types import DF
from jcloude.jcloude.pagetype.jcloude_permission_group_user.jcloude_permission_group_user import ( from jcloude.jcloude.pagetype.jcloude_permission_group_user.jcloude_permission_group_user import (
PressPermissionGroupUser, JcloudePermissionGroupUser,
) )
permissions: DF.JSON | None permissions: DF.JSON | None
team: DF.Link team: DF.Link
title: DF.Data title: DF.Data
users: DF.Table[PressPermissionGroupUser] users: DF.Table[JcloudePermissionGroupUser]
# end: auto-generated types # end: auto-generated types
dashboard_fields: ClassVar = ["title", "users"] dashboard_fields: ClassVar = ["title", "users"]

View File

@ -11,7 +11,7 @@ from jcloude.jcloude.pagetype.jcloude_permission_group.jcloude_permission_group
from jcloude.jcloude.pagetype.team.test_team import create_test_team from jcloude.jcloude.pagetype.team.test_team import create_test_team
class TestPressPermissionGroup(JingrowTestCase): class TestJcloudePermissionGroup(JingrowTestCase):
def setUp(self): def setUp(self):
super().setUp() super().setUp()

View File

@ -5,7 +5,7 @@
from jingrow.model.page import Page from jingrow.model.page import Page
class PressPermissionGroupUser(Page): class JcloudePermissionGroupUser(Page):
# begin: auto-generated types # begin: auto-generated types
# This code is auto-generated. Do not modify anything in this block. # This code is auto-generated. Do not modify anything in this block.

View File

@ -16,7 +16,7 @@ if TYPE_CHECKING:
from jcloude.jcloude.pagetype.team.team import Team from jcloude.jcloude.pagetype.team.team import Team
class PressRole(Page): class JcloudeRole(Page):
# begin: auto-generated types # begin: auto-generated types
# This code is auto-generated. Do not modify anything in this block. # This code is auto-generated. Do not modify anything in this block.
@ -25,8 +25,8 @@ class PressRole(Page):
if TYPE_CHECKING: if TYPE_CHECKING:
from jingrow.types import DF from jingrow.types import DF
from jcloude.jcloude.pagetype.jcloude_role_resource.jcloude_role_resource import PressRoleResource from jcloude.jcloude.pagetype.jcloude_role_resource.jcloude_role_resource import JcloudeRoleResource
from jcloude.jcloude.pagetype.jcloude_role_user.jcloude_role_user import PressRoleUser from jcloude.jcloude.pagetype.jcloude_role_user.jcloude_role_user import JcloudeRoleUser
admin_access: DF.Check admin_access: DF.Check
allow_apps: DF.Check allow_apps: DF.Check
@ -40,10 +40,10 @@ class PressRole(Page):
allow_server_creation: DF.Check allow_server_creation: DF.Check
allow_site_creation: DF.Check allow_site_creation: DF.Check
allow_webhook_configuration: DF.Check allow_webhook_configuration: DF.Check
resources: DF.Table[PressRoleResource] resources: DF.Table[JcloudeRoleResource]
team: DF.Link team: DF.Link
title: DF.Data title: DF.Data
users: DF.Table[PressRoleUser] users: DF.Table[JcloudeRoleUser]
# end: auto-generated types # end: auto-generated types
dashboard_fields = ( dashboard_fields = (

View File

@ -6,5 +6,5 @@ import jingrow
def execute(): def execute():
jingrow.db.sql( jingrow.db.sql(
"UPDATE `tabPress Role` SET allow_billing = enable_billing, allow_apps = enable_apps" "UPDATE `tabJcloude Role` SET allow_billing = enable_billing, allow_apps = enable_apps"
) )

View File

@ -8,7 +8,7 @@ from jingrow.tests.utils import JingrowTestCase
from jcloude.jcloude.pagetype.team.test_team import create_test_team from jcloude.jcloude.pagetype.team.test_team import create_test_team
class TestPressRole(JingrowTestCase): class TestJcloudeRole(JingrowTestCase):
def setUp(self): def setUp(self):
jingrow.set_user("Administrator") jingrow.set_user("Administrator")
jingrow.db.delete("Jcloude Role") jingrow.db.delete("Jcloude Role")

View File

@ -8,7 +8,7 @@ from jingrow.model.page import Page
from jcloude.api.client import dashboard_whitelist from jcloude.api.client import dashboard_whitelist
class PressRolePermission(Page): class JcloudeRolePermission(Page):
# begin: auto-generated types # begin: auto-generated types
# This code is auto-generated. Do not modify anything in this block. # This code is auto-generated. Do not modify anything in this block.

View File

@ -5,5 +5,5 @@
from jingrow.tests.utils import JingrowTestCase from jingrow.tests.utils import JingrowTestCase
class TestPressRolePermission(JingrowTestCase): class TestJcloudeRolePermission(JingrowTestCase):
pass pass

View File

@ -5,7 +5,7 @@
from jingrow.model.page import Page from jingrow.model.page import Page
class PressRoleResource(Page): class JcloudeRoleResource(Page):
# begin: auto-generated types # begin: auto-generated types
# This code is auto-generated. Do not modify anything in this block. # This code is auto-generated. Do not modify anything in this block.

View File

@ -5,7 +5,7 @@
from jingrow.model.page import Page from jingrow.model.page import Page
class PressRoleUser(Page): class JcloudeRoleUser(Page):
# begin: auto-generated types # begin: auto-generated types
# This code is auto-generated. Do not modify anything in this block. # This code is auto-generated. Do not modify anything in this block.

View File

@ -14,7 +14,7 @@ from jcloude.jcloude.pagetype.telegram_message.telegram_message import TelegramM
from jcloude.telegram_utils import Telegram from jcloude.telegram_utils import Telegram
class PressSettings(Page): class JcloudeSettings(Page):
# begin: auto-generated types # begin: auto-generated types
# This code is auto-generated. Do not modify anything in this block. # This code is auto-generated. Do not modify anything in this block.

View File

@ -7,12 +7,12 @@ import typing
import jingrow import jingrow
if typing.TYPE_CHECKING: if typing.TYPE_CHECKING:
from jcloude.jcloude.pagetype.jcloude_settings.jcloude_settings import PressSettings from jcloude.jcloude.pagetype.jcloude_settings.jcloude_settings import JcloudeSettings
def execute(): def execute():
jingrow.reload_pagetype("Jcloude Settings") jingrow.reload_pagetype("Jcloude Settings")
settings: PressSettings = jingrow.get_single("Jcloude Settings") settings: JcloudeSettings = jingrow.get_single("Jcloude Settings")
if not settings.minimum_rebuild_memory: if not settings.minimum_rebuild_memory:
settings.minimum_rebuild_memory = 2 settings.minimum_rebuild_memory = 2

View File

@ -46,5 +46,5 @@ def create_test_jcloude_settings():
return settings return settings
class TestPressSettings(JingrowTestCase): class TestJcloudeSettings(JingrowTestCase):
pass pass

View File

@ -5,7 +5,7 @@
from jingrow.model.page import Page from jingrow.model.page import Page
class PressTag(Page): class JcloudeTag(Page):
# begin: auto-generated types # begin: auto-generated types
# This code is auto-generated. Do not modify anything in this block. # This code is auto-generated. Do not modify anything in this block.

View File

@ -21,5 +21,5 @@ def create_and_add_test_tag(name: str, pagetype: str, tag: str = "test_tag"):
return test_tag return test_tag
class TestPressTag(JingrowTestCase): class TestJcloudeTag(JingrowTestCase):
pass pass

View File

@ -8,7 +8,7 @@ from jingrow.model.page import Page
ALLOWED_CONFIG_PERMS = ["global", "restricted"] ALLOWED_CONFIG_PERMS = ["global", "restricted"]
class PressUserPermission(Page): class JcloudeUserPermission(Page):
# begin: auto-generated types # begin: auto-generated types
# This code is auto-generated. Do not modify anything in this block. # This code is auto-generated. Do not modify anything in this block.

View File

@ -11,7 +11,7 @@ from jcloude.jcloude.pagetype.site.test_site import create_test_site
from jcloude.jcloude.pagetype.team.test_team import create_test_team from jcloude.jcloude.pagetype.team.test_team import create_test_team
class TestPressUserPermission(JingrowTestCase): class TestJcloudeUserPermission(JingrowTestCase):
def setUp(self): def setUp(self):
super().setUp() super().setUp()

View File

@ -20,7 +20,7 @@ from jcloude.overrides import get_permission_query_conditions_for_pagetype
from jcloude.utils import is_valid_hostname from jcloude.utils import is_valid_hostname
class PressWebhook(Page): class JcloudeWebhook(Page):
# begin: auto-generated types # begin: auto-generated types
# This code is auto-generated. Do not modify anything in this block. # This code is auto-generated. Do not modify anything in this block.
@ -30,12 +30,12 @@ class PressWebhook(Page):
from jingrow.types import DF from jingrow.types import DF
from jcloude.jcloude.pagetype.jcloude_webhook_selected_event.jcloude_webhook_selected_event import ( from jcloude.jcloude.pagetype.jcloude_webhook_selected_event.jcloude_webhook_selected_event import (
PressWebhookSelectedEvent, JcloudeWebhookSelectedEvent,
) )
enabled: DF.Check enabled: DF.Check
endpoint: DF.Data endpoint: DF.Data
events: DF.Table[PressWebhookSelectedEvent] events: DF.Table[JcloudeWebhookSelectedEvent]
secret: DF.Data secret: DF.Data
team: DF.Link team: DF.Link
# end: auto-generated types # end: auto-generated types
@ -164,7 +164,7 @@ class PressWebhook(Page):
@dashboard_whitelist() @dashboard_whitelist()
def delete(self): def delete(self):
jingrow.db.sql("delete from `tabPress Webhook Attempt` where webhook = %s", (self.name,)) jingrow.db.sql("delete from `tabJcloude Webhook Attempt` where webhook = %s", (self.name,))
jingrow.delete_pg("Jcloude Webhook", self.name) jingrow.delete_pg("Jcloude Webhook", self.name)
@ -176,7 +176,7 @@ def auto_disable_high_delivery_failure_webhooks():
data = jingrow.db.sql( data = jingrow.db.sql(
""" """
SELECT `endpoint` SELECT `endpoint`
FROM `tabPress Webhook Attempt` FROM `tabJcloude Webhook Attempt`
WHERE `creation` >= NOW() - INTERVAL 1 HOUR WHERE `creation` >= NOW() - INTERVAL 1 HOUR
GROUP BY `endpoint` GROUP BY `endpoint`
HAVING (COUNT(CASE WHEN `status` = 'Failed' THEN 1 END) / COUNT(*)) * 100 > 70; HAVING (COUNT(CASE WHEN `status` = 'Failed' THEN 1 END) / COUNT(*)) * 100 > 70;

View File

@ -5,5 +5,5 @@
from jingrow.tests.utils import JingrowTestCase from jingrow.tests.utils import JingrowTestCase
class TestPressWebhook(JingrowTestCase): class TestJcloudeWebhook(JingrowTestCase):
pass pass

View File

@ -7,7 +7,7 @@ import jingrow
from jingrow.model.page import Page from jingrow.model.page import Page
class PressWebhookAttempt(Page): class JcloudeWebhookAttempt(Page):
# begin: auto-generated types # begin: auto-generated types
# This code is auto-generated. Do not modify anything in this block. # This code is auto-generated. Do not modify anything in this block.

View File

@ -5,5 +5,5 @@
from jingrow.tests.utils import JingrowTestCase from jingrow.tests.utils import JingrowTestCase
class TestPressWebhookAttempt(JingrowTestCase): class TestJcloudeWebhookAttempt(JingrowTestCase):
pass pass

View File

@ -5,7 +5,7 @@
from jingrow.model.page import Page from jingrow.model.page import Page
class PressWebhookEvent(Page): class JcloudeWebhookEvent(Page):
# begin: auto-generated types # begin: auto-generated types
# This code is auto-generated. Do not modify anything in this block. # This code is auto-generated. Do not modify anything in this block.

View File

@ -5,5 +5,5 @@
from jingrow.tests.utils import JingrowTestCase from jingrow.tests.utils import JingrowTestCase
class TestPressWebhookEvent(JingrowTestCase): class TestJcloudeWebhookEvent(JingrowTestCase):
pass pass

View File

@ -13,7 +13,7 @@ from jingrow.utils import add_to_date, now
from jcloude.overrides import get_permission_query_conditions_for_pagetype from jcloude.overrides import get_permission_query_conditions_for_pagetype
class PressWebhookLog(Page): class JcloudeWebhookLog(Page):
# begin: auto-generated types # begin: auto-generated types
# This code is auto-generated. Do not modify anything in this block. # This code is auto-generated. Do not modify anything in this block.
@ -22,9 +22,9 @@ class PressWebhookLog(Page):
if TYPE_CHECKING: if TYPE_CHECKING:
from jingrow.types import DF from jingrow.types import DF
from jcloude.jcloude.pagetype.jcloude_webhook_attempt.jcloude_webhook_attempt import PressWebhookAttempt from jcloude.jcloude.pagetype.jcloude_webhook_attempt.jcloude_webhook_attempt import JcloudeWebhookAttempt
attempts: DF.Table[PressWebhookAttempt] attempts: DF.Table[JcloudeWebhookAttempt]
event: DF.Link event: DF.Link
next_retry_at: DF.Datetime | None next_retry_at: DF.Datetime | None
request_payload: DF.JSON request_payload: DF.JSON
@ -92,16 +92,16 @@ class PressWebhookLog(Page):
def _process_webhook_call(self): def _process_webhook_call(self):
try: try:
PressWebhookSelectedEvent = jingrow.qb.PageType("Jcloude Webhook Selected Event") JcloudeWebhookSelectedEvent = jingrow.qb.PageType("Jcloude Webhook Selected Event")
PressWebhook = jingrow.qb.PageType("Jcloude Webhook") JcloudeWebhook = jingrow.qb.PageType("Jcloude Webhook")
query = ( query = (
jingrow.qb.from_(PressWebhookSelectedEvent) jingrow.qb.from_(JcloudeWebhookSelectedEvent)
.select(PressWebhook.name, PressWebhook.endpoint, PressWebhook.secret) .select(JcloudeWebhook.name, JcloudeWebhook.endpoint, JcloudeWebhook.secret)
.left_join(PressWebhook) .left_join(JcloudeWebhook)
.on(PressWebhookSelectedEvent.parent == PressWebhook.name) .on(JcloudeWebhookSelectedEvent.parent == JcloudeWebhook.name)
.where(PressWebhookSelectedEvent.event == self.event) .where(JcloudeWebhookSelectedEvent.event == self.event)
.where(PressWebhook.team == self.team) .where(JcloudeWebhook.team == self.team)
.where(PressWebhook.enabled == 1) .where(JcloudeWebhook.enabled == 1)
) )
webhooks = query.run(as_dict=True) webhooks = query.run(as_dict=True)
payload = json.loads(self.request_payload) payload = json.loads(self.request_payload)

View File

@ -5,5 +5,5 @@
from jingrow.tests.utils import JingrowTestCase from jingrow.tests.utils import JingrowTestCase
class TestPressWebhookLog(JingrowTestCase): class TestJcloudeWebhookLog(JingrowTestCase):
pass pass

View File

@ -5,7 +5,7 @@
from jingrow.model.page import Page from jingrow.model.page import Page
class PressWebhookSelectedEvent(Page): class JcloudeWebhookSelectedEvent(Page):
# begin: auto-generated types # begin: auto-generated types
# This code is auto-generated. Do not modify anything in this block. # This code is auto-generated. Do not modify anything in this block.

View File

@ -53,7 +53,7 @@ if typing.TYPE_CHECKING:
from jcloude.jcloude.pagetype.database_server.database_server import DatabaseServer from jcloude.jcloude.pagetype.database_server.database_server import DatabaseServer
from jcloude.jcloude.pagetype.mariadb_variable.mariadb_variable import MariaDBVariable from jcloude.jcloude.pagetype.mariadb_variable.mariadb_variable import MariaDBVariable
from jcloude.jcloude.pagetype.nfs_volume_detachment.nfs_volume_detachment import NFSVolumeDetachment from jcloude.jcloude.pagetype.nfs_volume_detachment.nfs_volume_detachment import NFSVolumeDetachment
from jcloude.jcloude.pagetype.jcloude_job.jcloude_job import PressJob from jcloude.jcloude.pagetype.jcloude_job.jcloude_job import JcloudeJob
from jcloude.jcloude.pagetype.release_group.release_group import ReleaseGroup from jcloude.jcloude.pagetype.release_group.release_group import ReleaseGroup
from jcloude.jcloude.pagetype.server_mount.server_mount import ServerMount from jcloude.jcloude.pagetype.server_mount.server_mount import ServerMount
from jcloude.jcloude.pagetype.server_plan.server_plan import ServerPlan from jcloude.jcloude.pagetype.server_plan.server_plan import ServerPlan
@ -1152,7 +1152,7 @@ class BaseServer(Page, TagHelpers):
def create_image(self): def create_image(self):
self.run_jcloude_job("Create Server Snapshot") self.run_jcloude_job("Create Server Snapshot")
def run_jcloude_job(self, job_name, arguments=None) -> PressJob: def run_jcloude_job(self, job_name, arguments=None) -> JcloudeJob:
if arguments is None: if arguments is None:
arguments = {} arguments = {}
return jingrow.get_pg( return jingrow.get_pg(

View File

@ -13,7 +13,7 @@ from time import time
import jingrow import jingrow
import pytz import pytz
from jcloude.jcloude.pagetype.jcloude_settings.jcloude_settings import PressSettings from jcloude.jcloude.pagetype.jcloude_settings.jcloude_settings import JcloudeSettings
from jcloude.jcloude.pagetype.remote_file.remote_file import delete_remote_backup_objects from jcloude.jcloude.pagetype.remote_file.remote_file import delete_remote_backup_objects
from jcloude.jcloude.pagetype.site.site import Literal, Site from jcloude.jcloude.pagetype.site.site import Literal, Site
from jcloude.jcloude.pagetype.site_backup.site_backup import SiteBackup from jcloude.jcloude.pagetype.site_backup.site_backup import SiteBackup
@ -256,7 +256,7 @@ class ScheduledBackupJob:
or 6 or 6
) )
self.offsite_setup = PressSettings.is_offsite_setup() self.offsite_setup = JcloudeSettings.is_offsite_setup()
self.server_time = datetime.now() self.server_time = datetime.now()
self.sites = Site.get_sites_for_backup(self.interval, backup_type=self.backup_type) self.sites = Site.get_sites_for_backup(self.interval, backup_type=self.backup_type)
if self.backup_type == "Logical": if self.backup_type == "Logical":

View File

@ -383,14 +383,14 @@ class Team(Page):
if member_to_remove: if member_to_remove:
self.remove(member_to_remove) self.remove(member_to_remove)
PressRole = jingrow.qb.PageType("Jcloude Role") JcloudeRole = jingrow.qb.PageType("Jcloude Role")
PressRoleUser = jingrow.qb.PageType("Jcloude Role User") JcloudeRoleUser = jingrow.qb.PageType("Jcloude Role User")
roles = ( roles = (
jingrow.qb.from_(PressRole) jingrow.qb.from_(JcloudeRole)
.join(PressRoleUser) .join(JcloudeRoleUser)
.on(PressRole.name == PressRoleUser.parent) .on(JcloudeRole.name == JcloudeRoleUser.parent)
.where(PressRoleUser.user == member) .where(JcloudeRoleUser.user == member)
.select(PressRole.name) .select(JcloudeRole.name)
.run(as_dict=True, pluck="name") .run(as_dict=True, pluck="name")
) )
@ -839,16 +839,16 @@ class Team(Page):
""" """
Checks if the current user has admin access in the team via roles. Checks if the current user has admin access in the team via roles.
""" """
PressRole = jingrow.qb.PageType("Jcloude Role") JcloudeRole = jingrow.qb.PageType("Jcloude Role")
PressRoleUser = jingrow.qb.PageType("Jcloude Role User") JcloudeRoleUser = jingrow.qb.PageType("Jcloude Role User")
return ( return (
jingrow.qb.from_(PressRoleUser) jingrow.qb.from_(JcloudeRoleUser)
.left_join(PressRole) .left_join(JcloudeRole)
.on(PressRole.name == PressRoleUser.parent) .on(JcloudeRole.name == JcloudeRoleUser.parent)
.select(Count(PressRoleUser.name).as_("count")) .select(Count(JcloudeRoleUser.name).as_("count"))
.where(PressRole.team == self.name) .where(JcloudeRole.team == self.name)
.where(PressRoleUser.user == jingrow.session.user) .where(JcloudeRoleUser.user == jingrow.session.user)
.where(PressRole.admin_access == 1) .where(JcloudeRole.admin_access == 1)
.run(as_dict=1) .run(as_dict=1)
.pop() .pop()
.get("count", 0) .get("count", 0)
@ -864,16 +864,16 @@ class Team(Page):
def invite_team_member(self, email, roles=None): def invite_team_member(self, email, roles=None):
from jingrow.utils.user import is_system_user from jingrow.utils.user import is_system_user
PressRole = jingrow.qb.PageType("Jcloude Role") JcloudeRole = jingrow.qb.PageType("Jcloude Role")
PressRoleUser = jingrow.qb.PageType("Jcloude Role User") JcloudeRoleUser = jingrow.qb.PageType("Jcloude Role User")
has_admin_access = ( has_admin_access = (
jingrow.qb.from_(PressRole) jingrow.qb.from_(JcloudeRole)
.select(PressRole.name) .select(JcloudeRole.name)
.join(PressRoleUser) .join(JcloudeRoleUser)
.on((PressRole.name == PressRoleUser.parent) & (PressRoleUser.user == jingrow.session.user)) .on((JcloudeRole.name == JcloudeRoleUser.parent) & (JcloudeRoleUser.user == jingrow.session.user))
.where(PressRole.team == self.name) .where(JcloudeRole.team == self.name)
.where(PressRole.admin_access == 1) .where(JcloudeRole.admin_access == 1)
) )
if not is_system_user() and jingrow.session.user != self.user and not has_admin_access.run(): if not is_system_user() and jingrow.session.user != self.user and not has_admin_access.run():

View File

@ -52,7 +52,7 @@ func logError(format string, args ...interface{}) {
// waitForUser pauses execution and waits for user to jcloude Enter // waitForUser pauses execution and waits for user to jcloude Enter
// This ensures error messages are visible before program exits // This ensures error messages are visible before program exits
func waitForUser() { func waitForUser() {
fmt.Println("\nPress Enter to exit...") fmt.Println("\nJcloude Enter to exit...")
fmt.Scanln() fmt.Scanln()
} }

View File

@ -99,7 +99,7 @@ func (m *Monitor) logFindings() {
latest.Disk.WriteLatencyMillis) latest.Disk.WriteLatencyMillis)
fmt.Fprintf(m.logFile, " Queue Depth: %.2f\n", latest.Disk.QueueDepth) fmt.Fprintf(m.logFile, " Queue Depth: %.2f\n", latest.Disk.QueueDepth)
fmt.Fprintf(m.logFile, "\nPSI (Pressure Stall Information):\n") fmt.Fprintf(m.logFile, "\nPSI (Jcloudeure Stall Information):\n")
fmt.Fprintf(m.logFile, " I/O: Some=%.2f%% Full=%.2f%%\n", fmt.Fprintf(m.logFile, " I/O: Some=%.2f%% Full=%.2f%%\n",
latest.PSI.IO_SomeAvg10, latest.PSI.IO_FullAvg10) latest.PSI.IO_SomeAvg10, latest.PSI.IO_FullAvg10)
fmt.Fprintf(m.logFile, " Memory: Some=%.2f%% Full=%.2f%%\n", fmt.Fprintf(m.logFile, " Memory: Some=%.2f%% Full=%.2f%%\n",