From 1ef095e709e0b8ac3ccdb47c4b4a619610a12bc2 Mon Sep 17 00:00:00 2001
From: Finn <finn.ball@codethink.co.uk>
Date: Mon, 29 Oct 2018 15:49:02 +0000
Subject: [PATCH] Remove hardware descriptions from bot_session.

Also move `bot_session` to simply `session`.
---
 buildgrid/bot/{bot_session.py => session.py} | 117 +++----------------
 1 file changed, 13 insertions(+), 104 deletions(-)
 rename buildgrid/bot/{bot_session.py => session.py} (55%)

diff --git a/buildgrid/bot/bot_session.py b/buildgrid/bot/session.py
similarity index 55%
rename from buildgrid/bot/bot_session.py
rename to buildgrid/bot/session.py
index 8110d4671..b0e8581b3 100644
--- a/buildgrid/bot/bot_session.py
+++ b/buildgrid/bot/session.py
@@ -18,7 +18,7 @@
 
 """
 Bot Session
-====
+===========
 
 Allows connections
 """
@@ -36,7 +36,7 @@ from buildgrid._exceptions import BotError
 
 
 class BotSession:
-    def __init__(self, parent, interface):
+    def __init__(self, parent, interface, worker):
         """ Unique bot ID within the farm used to identify this bot
         Needs to be human readable.
         All prior sessions with bot_id of same ID are invalidated.
@@ -45,23 +45,20 @@ class BotSession:
         """
 
         self.logger = logging.getLogger(__name__)
-
-        self._bot_id = '{}.{}'.format(parent, platform.node())
         self._context = None
+
+        self._worker = worker
         self._interface = interface
         self._leases = {}
-        self._name = None
         self._parent = parent
         self._status = BotStatus.OK.value
-        self._work = None
-        self._worker = None
+
+        self.__bot_id = '{}.{}'.format(parent, platform.node())
+        self.__name = None
 
     @property
     def bot_id(self):
-        return self._bot_id
-
-    def add_worker(self, worker):
-        self._worker = worker
+        return self.__bot_id
 
     def create_bot_session(self, work, context=None):
         self.logger.debug("Creating bot session")
@@ -69,15 +66,15 @@ class BotSession:
         self._context = context
 
         session = self._interface.create_bot_session(self._parent, self.get_pb2())
-        self._name = session.name
+        self.__name = session.name
 
-        self.logger.info("Created bot session with name: [{}]".format(self._name))
+        self.logger.info("Created bot session with name: [{}]".format(self.__name))
 
         for lease in session.leases:
             self._update_lease_from_server(lease)
 
     def update_bot_session(self):
-        self.logger.debug("Updating bot session: [{}]".format(self._bot_id))
+        self.logger.debug("Updating bot session: [{}]".format(self.__bot_id))
         session = self._interface.update_bot_session(self.get_pb2())
         for k, v in list(self._leases.items()):
             if v.state == LeaseState.COMPLETED.value:
@@ -94,8 +91,8 @@ class BotSession:
         return bots_pb2.BotSession(worker=self._worker.get_pb2(),
                                    status=self._status,
                                    leases=leases,
-                                   bot_id=self._bot_id,
-                                   name=self._name)
+                                   bot_id=self.__bot_id,
+                                   name=self.__name)
 
     def lease_completed(self, lease):
         lease.state = LeaseState.COMPLETED.value
@@ -133,91 +130,3 @@ class BotSession:
 
         self.logger.debug("Work complete: [{}]".format(lease.id))
         self.lease_completed(lease)
-
-
-class Worker:
-    def __init__(self, properties=None, configs=None):
-        self.properties = {}
-        self._configs = {}
-        self._devices = []
-
-        if properties:
-            for k, v in properties.items():
-                if k == 'pool':
-                    self.properties[k] = v
-                else:
-                    raise KeyError('Key not supported: [{}]'.format(k))
-
-        if configs:
-            for k, v in configs.items():
-                if k == 'DockerImage':
-                    self.configs[k] = v
-                else:
-                    raise KeyError('Key not supported: [{}]'.format(k))
-
-    @property
-    def configs(self):
-        return self._configs
-
-    def add_device(self, device):
-        self._devices.append(device)
-
-    def get_pb2(self):
-        devices = [device.get_pb2() for device in self._devices]
-        worker = worker_pb2.Worker(devices=devices)
-        property_message = worker_pb2.Worker.Property()
-        for k, v in self.properties.items():
-            property_message.key = k
-            property_message.value = v
-            worker.properties.extend([property_message])
-
-        config_message = worker_pb2.Worker.Config()
-        for k, v in self.properties.items():
-            property_message.key = k
-            property_message.value = v
-            worker.configs.extend([config_message])
-
-        return worker
-
-
-class Device:
-    def __init__(self, properties=None):
-        """ Creates devices available to the worker
-        The first device is know as the Primary Device - the revice which
-        is running a bit and responsible to actually executing commands.
-        All other devices are known as Attatched Devices and must be controlled
-        by the Primary Device.
-        """
-
-        self._name = str(uuid.uuid4())
-        self._properties = {}
-
-        if properties:
-            for k, v in properties.items():
-                if k == 'os':
-                    self._properties[k] = v
-
-                elif k == 'docker':
-                    if v not in ('True', 'False'):
-                        raise ValueError('Value not supported: [{}]'.format(v))
-                    self._properties[k] = v
-
-                else:
-                    raise KeyError('Key not supported: [{}]'.format(k))
-
-    @property
-    def name(self):
-        return self._name
-
-    @property
-    def properties(self):
-        return self._properties
-
-    def get_pb2(self):
-        device = worker_pb2.Device(handle=self._name)
-        property_message = worker_pb2.Device.Property()
-        for k, v in self._properties.items():
-            property_message.key = k
-            property_message.value = v
-            device.properties.extend([property_message])
-        return device
-- 
GitLab