]> git.ipfire.org Git - pbs.git/commitdiff
builders: Rename a couple of fields and add system
authorMichael Tremer <michael.tremer@ipfire.org>
Sat, 25 Jan 2025 17:52:41 +0000 (17:52 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Sat, 25 Jan 2025 17:52:41 +0000 (17:52 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/buildservice/builders.py
src/database.sql
src/templates/builders/show.html
src/web/builders.py

index 040b096998381bf49c94b4e114c6b383ab1f11e2..ec9673d91dcbfc14f5027d75b12b369bc7f87841 100644 (file)
@@ -512,13 +512,6 @@ class Builder(database.Base, database.BackendMixin, database.SoftDeleteMixin):
                # Admins have all permissions
                return user.is_admin()
 
-       @property
-       def arch(self):
-               """
-                       The native architecture - Alias for "cpu_arch"
-               """
-               return self.cpu_arch
-
        @property
        def supported_arches(self):
                """
@@ -610,14 +603,22 @@ class Builder(database.Base, database.BackendMixin, database.SoftDeleteMixin):
 
        name = Column(Text, unique=True, nullable=False)
 
-       # Pakfire Version
+       # (Pakfire) Version
 
-       pakfire_version = Column(Text, nullable=False, default="")
+       version = Column(Text, nullable=False, default="")
 
        # OS Name
 
        os_name = Column(Text, nullable=False, default="")
 
+       # System Vendor
+
+       sys_vendor = Column(Text)
+
+       # System Name
+
+       sys_name = Column(Text)
+
        # CPU Model
 
        cpu_model = Column(Text, nullable=False, default="")
@@ -626,9 +627,9 @@ class Builder(database.Base, database.BackendMixin, database.SoftDeleteMixin):
 
        cpu_count = Column(Integer, nullable=False, default=1)
 
-       # CPU Arch
+       # Architecture
 
-       cpu_arch = Column(Text)
+       arch = Column(Text)
 
        # AWS - Instance ID
 
@@ -823,21 +824,10 @@ class Builder(database.Base, database.BackendMixin, database.SoftDeleteMixin):
 
                return await self.db.fetch_one(stmt)
 
-       async def log_stats(self, cpu_model=None, cpu_count=None, cpu_arch=None,
-                       pakfire_version=None, os_name=None, **kwargs):
+       async def log_stats(self, **kwargs):
                """
                        Logs some stats about this builder
                """
-               # Update CPU information
-               self.cpu_model = cpu_model
-               self.cpu_count = cpu_count
-               self.cpu_arch  = cpu_arch
-
-               # Update Pakfire & OS information
-               self.pakfire_version = pakfire_version
-               self.os_name         = os_name
-
-               # Log Stats
                stats = await self.db.insert(
                        BuilderStat, builder=self, **kwargs,
                )
index fc504b201f3d27d05d96680dcbfb8c7640d40a0c..b9f04e968bdd4654219ac67b9e310ffa63ad18a8 100644 (file)
@@ -196,18 +196,20 @@ CREATE TABLE public.builders (
     loadavg text DEFAULT '0'::character varying NOT NULL,
     maintenance boolean DEFAULT false NOT NULL,
     max_jobs bigint DEFAULT (1)::bigint NOT NULL,
-    pakfire_version text,
+    version text,
     os_name text,
     cpu_model text,
     cpu_count integer DEFAULT 1 NOT NULL,
     host_key_id text,
-    cpu_arch text,
+    arch text,
     instance_id text,
     instance_type text,
     created_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
     created_by_id integer,
     deleted_at timestamp without time zone,
-    deleted_by_id integer
+    deleted_by_id integer,
+    sys_vendor text,
+    sys_name text
 );
 
 
index d02a65231d5509285000fe538b485215013c0937..6427cf8072a931da1425d7dcdef1b5c1135f9023 100644 (file)
                                                </div>
                                        {% endif %}
 
-                                       {% if builder.pakfire_version %}
+                                       {% if builder.version %}
                                                <div class="level-item has-text-centered">
                                                        <div>
                                                                <p class="heading">{{ _("Pakfire Version") }}</p>
                                                                <p>
-                                                                       {{ builder.pakfire_version }}
+                                                                       {{ builder.version }}
                                                                </p>
                                                        </div>
                                                </div>
index f7f66d7b19cddf14fe4c5f56f1b1d64924b7e57d..46d96293d8ce59c9b5a2a49c0f1f8bb474cd98ca 100644 (file)
@@ -21,6 +21,27 @@ class APIv1ControlHandler(base.APIMixin, base.BackendMixin, tornado.websocket.We
                # The builder has opened a new connection
                self.builder.connected(self)
 
+               # Update the builder information
+               async with await self.db.transaction():
+                       # Update arch
+                       self.builder.arch       = self.get_argument("arch")
+
+                       # Update system information
+                       self.builder.sys_vendor = self.get_argument("sys_vendor", None)
+                       self.builder.sys_name   = self.get_argument("sys_name", None)
+
+                       # Update CPU information
+                       self.builder.cpu_model  = self.get_argument("cpu_model", None)
+                       self.builder.cpu_count  = self.get_argument_int("cpu_count", None)
+
+                       # Update Pakfire & OS information
+                       self.builder.version    = self.get_argument("version")
+                       self.builder.os_name    = self.get_argument("os_name", None)
+
+               # Manually perform a database commit because this won't happen
+               # until the builder disconnects again.
+               await self.db.commit()
+
                # After the builder has connected, try to dispatch some jobs
                await self.backend.jobs.queue.dispatch()