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
|
model = Instance
|
||||||
exclude = [
|
exclude = [
|
||||||
"license_key",
|
"license_key",
|
||||||
"user_count"
|
|
||||||
]
|
]
|
||||||
read_only_fields = [
|
read_only_fields = [
|
||||||
"id",
|
"id",
|
||||||
|
|
|
||||||
|
|
@ -52,6 +52,17 @@ def instance_traces():
|
||||||
span.set_attribute(
|
span.set_attribute(
|
||||||
"is_telemetry_enabled", instance.is_telemetry_enabled
|
"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("user_count", user_count)
|
||||||
span.set_attribute("workspace_count", workspace_count)
|
span.set_attribute("workspace_count", workspace_count)
|
||||||
span.set_attribute("project_count", project_count)
|
span.set_attribute("project_count", project_count)
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
# Python imports
|
# Python imports
|
||||||
import json
|
import json
|
||||||
import secrets
|
import secrets
|
||||||
|
import os
|
||||||
|
|
||||||
# Django imports
|
# Django imports
|
||||||
from django.core.management.base import BaseCommand, CommandError
|
from django.core.management.base import BaseCommand, CommandError
|
||||||
|
|
@ -8,10 +9,7 @@ from django.utils import timezone
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
|
||||||
# Module imports
|
# Module imports
|
||||||
from plane.license.models import Instance
|
from plane.license.models import Instance, EditiontTypes
|
||||||
from plane.db.models import (
|
|
||||||
User,
|
|
||||||
)
|
|
||||||
from plane.license.bgtasks.tracer import instance_traces
|
from plane.license.bgtasks.tracer import instance_traces
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -32,7 +30,6 @@ class Command(BaseCommand):
|
||||||
payload = {
|
payload = {
|
||||||
"instance_key": settings.INSTANCE_KEY,
|
"instance_key": settings.INSTANCE_KEY,
|
||||||
"version": data.get("version", 0.1),
|
"version": data.get("version", 0.1),
|
||||||
"user_count": User.objects.filter(is_bot=False).count(),
|
|
||||||
}
|
}
|
||||||
return payload
|
return payload
|
||||||
|
|
||||||
|
|
@ -54,11 +51,11 @@ class Command(BaseCommand):
|
||||||
instance = Instance.objects.create(
|
instance = Instance.objects.create(
|
||||||
instance_name="Plane Community Edition",
|
instance_name="Plane Community Edition",
|
||||||
instance_id=secrets.token_hex(12),
|
instance_id=secrets.token_hex(12),
|
||||||
license_key=None,
|
|
||||||
current_version=payload.get("version"),
|
current_version=payload.get("version"),
|
||||||
latest_version=payload.get("version"),
|
latest_version=payload.get("version"),
|
||||||
last_checked_at=timezone.now(),
|
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"))
|
self.stdout.write(self.style.SUCCESS("Instance registered"))
|
||||||
|
|
@ -69,9 +66,10 @@ class Command(BaseCommand):
|
||||||
payload = self.read_package_json()
|
payload = self.read_package_json()
|
||||||
# Update the instance details
|
# Update the instance details
|
||||||
instance.last_checked_at = timezone.now()
|
instance.last_checked_at = timezone.now()
|
||||||
instance.user_count = payload.get("user_count", 0)
|
|
||||||
instance.current_version = payload.get("version")
|
instance.current_version = payload.get("version")
|
||||||
instance.latest_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()
|
instance.save()
|
||||||
|
|
||||||
# Call the instance traces task
|
# 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"),)
|
ROLE_CHOICES = ((20, "Admin"),)
|
||||||
|
|
||||||
|
|
||||||
class ProductTypes(Enum):
|
class EditiontTypes(Enum):
|
||||||
PLANE_CE = "plane-ce"
|
PLANE_CE = "plane-ce"
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -20,11 +20,10 @@ class Instance(BaseModel):
|
||||||
instance_name = models.CharField(max_length=255)
|
instance_name = models.CharField(max_length=255)
|
||||||
whitelist_emails = models.TextField(blank=True, null=True)
|
whitelist_emails = models.TextField(blank=True, null=True)
|
||||||
instance_id = models.CharField(max_length=255, unique=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)
|
current_version = models.CharField(max_length=255)
|
||||||
latest_version = models.CharField(max_length=255, null=True, blank=True)
|
latest_version = models.CharField(max_length=255, null=True, blank=True)
|
||||||
product = models.CharField(
|
edition = models.CharField(
|
||||||
max_length=255, default=ProductTypes.PLANE_CE.value
|
max_length=255, default=EditiontTypes.PLANE_CE.value
|
||||||
)
|
)
|
||||||
domain = models.TextField(blank=True)
|
domain = models.TextField(blank=True)
|
||||||
# Instance specifics
|
# Instance specifics
|
||||||
|
|
@ -37,9 +36,8 @@ class Instance(BaseModel):
|
||||||
is_setup_done = models.BooleanField(default=False)
|
is_setup_done = models.BooleanField(default=False)
|
||||||
# signup screen
|
# signup screen
|
||||||
is_signup_screen_visited = models.BooleanField(default=False)
|
is_signup_screen_visited = models.BooleanField(default=False)
|
||||||
# users
|
|
||||||
user_count = models.PositiveBigIntegerField(default=0)
|
|
||||||
is_verified = models.BooleanField(default=False)
|
is_verified = models.BooleanField(default=False)
|
||||||
|
is_test = models.BooleanField(default=False)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
verbose_name = "Instance"
|
verbose_name = "Instance"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue