# 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):
"""
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="")
cpu_count = Column(Integer, nullable=False, default=1)
- # CPU Arch
+ # Architecture
- cpu_arch = Column(Text)
+ arch = Column(Text)
# AWS - Instance ID
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,
)
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
);
# 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()