chore: instances
This commit is contained in:
parent
d5a55de17a
commit
f3ac26e5c9
6 changed files with 58 additions and 16 deletions
|
|
@ -13,7 +13,6 @@ class InstanceSerializer(BaseSerializer):
|
|||
model = Instance
|
||||
exclude = [
|
||||
"license_key",
|
||||
"user_count"
|
||||
]
|
||||
read_only_fields = [
|
||||
"id",
|
||||
|
|
|
|||
|
|
@ -52,6 +52,17 @@ def instance_traces():
|
|||
span.set_attribute(
|
||||
"is_telemetry_enabled", instance.is_telemetry_enabled
|
||||
)
|
||||
span.set_attribute(
|
||||
"is_support_required", instance.is_support_required
|
||||
)
|
||||
span.set_attribute("is_setup_done", instance.is_setup_done)
|
||||
span.set_attribute(
|
||||
"is_signup_screen_visited", instance.is_signup_screen_visited
|
||||
)
|
||||
span.set_attribute("is_verified", instance.is_verified)
|
||||
span.set_attribute("edition", instance.edition)
|
||||
span.set_attribute("domain", instance.domain)
|
||||
span.set_attribute("is_test", instance.is_test)
|
||||
span.set_attribute("user_count", user_count)
|
||||
span.set_attribute("workspace_count", workspace_count)
|
||||
span.set_attribute("project_count", project_count)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
# Python imports
|
||||
import json
|
||||
import secrets
|
||||
import os
|
||||
|
||||
# Django imports
|
||||
from django.core.management.base import BaseCommand, CommandError
|
||||
|
|
@ -8,10 +9,7 @@ from django.utils import timezone
|
|||
from django.conf import settings
|
||||
|
||||
# Module imports
|
||||
from plane.license.models import Instance
|
||||
from plane.db.models import (
|
||||
User,
|
||||
)
|
||||
from plane.license.models import Instance, EditiontTypes
|
||||
from plane.license.bgtasks.tracer import instance_traces
|
||||
|
||||
|
||||
|
|
@ -32,7 +30,6 @@ class Command(BaseCommand):
|
|||
payload = {
|
||||
"instance_key": settings.INSTANCE_KEY,
|
||||
"version": data.get("version", 0.1),
|
||||
"user_count": User.objects.filter(is_bot=False).count(),
|
||||
}
|
||||
return payload
|
||||
|
||||
|
|
@ -54,11 +51,11 @@ class Command(BaseCommand):
|
|||
instance = Instance.objects.create(
|
||||
instance_name="Plane Community Edition",
|
||||
instance_id=secrets.token_hex(12),
|
||||
license_key=None,
|
||||
current_version=payload.get("version"),
|
||||
latest_version=payload.get("version"),
|
||||
last_checked_at=timezone.now(),
|
||||
user_count=payload.get("user_count", 0),
|
||||
is_test=os.environ.get("IS_TEST", "0") == "1",
|
||||
edition=EditiontTypes.PLANE_CE.value,
|
||||
)
|
||||
|
||||
self.stdout.write(self.style.SUCCESS("Instance registered"))
|
||||
|
|
@ -69,9 +66,10 @@ class Command(BaseCommand):
|
|||
payload = self.read_package_json()
|
||||
# Update the instance details
|
||||
instance.last_checked_at = timezone.now()
|
||||
instance.user_count = payload.get("user_count", 0)
|
||||
instance.current_version = payload.get("version")
|
||||
instance.latest_version = payload.get("version")
|
||||
instance.is_test = os.environ.get("IS_TEST", "0") == "1"
|
||||
instance.edition = EditiontTypes.PLANE_CE.value
|
||||
instance.save()
|
||||
|
||||
# Call the instance traces task
|
||||
|
|
|
|||
|
|
@ -0,0 +1,31 @@
|
|||
# Generated by Django 4.2.15 on 2024-11-19 14:04
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('license', '0004_changelog_deleted_at_instance_deleted_at_and_more'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RenameField(
|
||||
model_name='instance',
|
||||
old_name='product',
|
||||
new_name='edition',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='instance',
|
||||
name='license_key',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='instance',
|
||||
name='user_count',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='instance',
|
||||
name='is_test',
|
||||
field=models.BooleanField(default=False),
|
||||
),
|
||||
]
|
||||
|
|
@ -1 +1,6 @@
|
|||
from .instance import Instance, InstanceAdmin, InstanceConfiguration
|
||||
from .instance import (
|
||||
Instance,
|
||||
InstanceAdmin,
|
||||
InstanceConfiguration,
|
||||
EditiontTypes,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ from plane.db.models import BaseModel
|
|||
ROLE_CHOICES = ((20, "Admin"),)
|
||||
|
||||
|
||||
class ProductTypes(Enum):
|
||||
class EditiontTypes(Enum):
|
||||
PLANE_CE = "plane-ce"
|
||||
|
||||
|
||||
|
|
@ -20,11 +20,10 @@ class Instance(BaseModel):
|
|||
instance_name = models.CharField(max_length=255)
|
||||
whitelist_emails = models.TextField(blank=True, null=True)
|
||||
instance_id = models.CharField(max_length=255, unique=True)
|
||||
license_key = models.CharField(max_length=256, null=True, blank=True)
|
||||
current_version = models.CharField(max_length=255)
|
||||
latest_version = models.CharField(max_length=255, null=True, blank=True)
|
||||
product = models.CharField(
|
||||
max_length=255, default=ProductTypes.PLANE_CE.value
|
||||
edition = models.CharField(
|
||||
max_length=255, default=EditiontTypes.PLANE_CE.value
|
||||
)
|
||||
domain = models.TextField(blank=True)
|
||||
# Instance specifics
|
||||
|
|
@ -37,9 +36,8 @@ class Instance(BaseModel):
|
|||
is_setup_done = models.BooleanField(default=False)
|
||||
# signup screen
|
||||
is_signup_screen_visited = models.BooleanField(default=False)
|
||||
# users
|
||||
user_count = models.PositiveBigIntegerField(default=0)
|
||||
is_verified = models.BooleanField(default=False)
|
||||
is_test = models.BooleanField(default=False)
|
||||
|
||||
class Meta:
|
||||
verbose_name = "Instance"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue