Exemplo n.º 1
0
    def __init__(self) -> None:
        """Construct."""
        self.init_robot_fromenv()
        # Processed robotrequest CRs dictionary
        self._processed_robotrequests: OrderedDict[  # pylint: disable=unsubscriptable-object
            str, str] = OrderedDict()
        self._processed_robotrequests_lock = threading.RLock()
        self._deleted_robotrequests: OrderedDict[  # pylint: disable=unsubscriptable-object
            str, bool] = OrderedDict()

        template_cr = get_sample_cr('robotrequest')

        labels = {}
        labels['cloudrobotics.com/robot-name'] = self.robco_robot_name
        super().__init__(
            'ewm.sap.com',
            'v1alpha1',
            'robotrequests',
            'default',
            template_cr,
            labels
        )

        # Register robotrequest status update callback
        self.register_callback(
            'cleanup_robotrequests', ['ADDED', 'MODIFIED', 'REPROCESS'],
            self._cleanup_robotrequests_cb)
        self.register_callback('robotrequest_deleted', ['DELETED'], self._robotrequest_deleted_cb)

        # Thread to check for deleted robotrequest CRs
        self.deleted_robotrequests_thread = threading.Thread(
            target=self._deleted_robotrequests_checker)
    def __init__(self) -> None:
        """Construct."""
        template_cr = get_sample_cr('robco_mission')

        labels: Dict[str, str] = {}
        super().__init__('mission.cloudrobotics.com', 'v1alpha1', 'missions',
                         'default', template_cr, labels)
    def __init__(self) -> None:
        """Constructor."""
        template_cr = get_sample_cr('robco_robot')

        self.labels = {}
        super().__init__('registry.cloudrobotics.com', 'v1alpha1', 'robots',
                         'default', template_cr, self.labels)
    def __init__(self) -> None:
        """Construct."""
        template_cr = get_sample_cr('robotconfiguration')

        labels: Dict[str, str] = {}
        super().__init__('ewm.sap.com', 'v1alpha1', 'robotconfigurations',
                         'default', template_cr, labels)
    def __init__(self) -> None:
        """Constructor."""
        template_cr = get_sample_cr('robotrequest')

        labels = {}
        super().__init__('sap.com', 'v1', 'robotrequests', 'default',
                         template_cr, labels)
Exemplo n.º 6
0
    def __init__(self) -> None:
        """Constructor."""
        self.init_default_values_fromenv()

        template_cr = get_sample_cr('robotconfiguration')

        labels = {}
        super().__init__('sap.com', 'v1', 'robotconfigurations', 'default',
                         template_cr, labels)
Exemplo n.º 7
0
    def __init__(self) -> None:
        """Constructor."""
        self.init_robot_fromenv()
        template_cr = get_sample_cr('robco_robot')

        labels = {}
        labels['cloudrobotics.com/robot-name'] = self.robco_robot_name
        super().__init__('registry.cloudrobotics.com', 'v1alpha1', 'robots',
                         'default', template_cr, labels)
Exemplo n.º 8
0
    def __init__(self) -> None:
        """Constructor."""
        self.init_robot_fromenv()
        # Last successfully processed spec of warehouse order
        self.processed_order_spec = {}

        template_cr = get_sample_cr('warehouseorder')

        labels = {}
        labels['cloudrobotics.com/robot-name'] = self.robco_robot_name
        super().__init__('sap.com', 'v1', 'warehouseorders', 'default',
                         template_cr, labels)
Exemplo n.º 9
0
    def __init__(self) -> None:
        """Construct."""
        template_cr = get_sample_cr('warehouseorder')

        labels: Dict[str, str] = {}
        super().__init__(
            'ewm.sap.com',
            'v1alpha1',
            'warehouseorders',
            'default',
            template_cr,
            labels
        )
Exemplo n.º 10
0
    def __init__(self) -> None:
        """Construct."""
        self.init_default_values_fromenv()

        template_cr = get_sample_cr('robotconfiguration')

        super().__init__('ewm.sap.com', 'v1alpha1', 'robotconfigurations',
                         'default', template_cr, {})

        # Register callbacks
        self.register_callback('robotconfiguration',
                               ['ADDED', 'MODIFIED', 'REPROCESS'],
                               self.reset_recovery_flag_cb)
Exemplo n.º 11
0
    def __init__(self) -> None:
        """Construct."""
        template_cr = get_sample_cr('orderauction')

        super().__init__('ewm.sap.com', 'v1alpha1', 'orderauctions', 'default',
                         template_cr, {})

        # Robots where the bid agent seems to work
        self._robot_bid_agent_working: DefaultDict[str, bool] = defaultdict(
            lambda: True)

        # Register callbacks
        self.register_callback('CheckBidAgentStatus', ['ADDED', 'MODIFIED'],
                               self._check_bid_agent_status_cb)
Exemplo n.º 12
0
    def __init__(self) -> None:
        """Construct."""
        self.init_robot_fromenv()
        # Last successfully processed spec of warehouse order
        self.processed_order_spec: Dict[str, Dict] = {}

        template_cr = get_sample_cr('warehouseorder')

        labels = {}
        labels['cloudrobotics.com/robot-name'] = self.robco_robot_name
        super().__init__('ewm.sap.com', 'v1alpha1', 'warehouseorders',
                         'default', template_cr, labels)

        # Set finalizer name for robot controller
        self.finalizer = '{}.ewm-robot-controller.sap.com'.format(
            self.robco_robot_name)
Exemplo n.º 13
0
    def __init__(self) -> None:
        """Construct."""
        template_cr = get_sample_cr('orderreservation')

        super().__init__('ewm.sap.com', 'v1alpha1', 'orderreservations',
                         'default', template_cr, {})

        # Open reservations per auctioneer
        self._open_reservations: DefaultDict[str, Dict] = defaultdict(dict)
        self._open_reservations_lock = RLock()

        # Register callbacks
        self.register_callback('GetOpenReservations',
                               ['ADDED', 'MODIFIED', 'REPROCESS'],
                               self._get_open_reservations_cb)
        self.register_callback('DeleteOpenReservations', ['DELETED'],
                               self._delete_open_reservations_cb)
Exemplo n.º 14
0
    def __init__(self, robot_config: RobotConfigurationController,
                 robot_api: RobCoRobotAPI) -> None:
        """Construct."""
        # Robot Configuration Controller
        self.robot_config = robot_config
        # Mission status dictionary
        self.mission_status: OrderedDict[  # pylint: disable=unsubscriptable-object
            str, RobotMission] = OrderedDict()
        self.mission_status_lock = threading.RLock()

        template_cr = get_sample_cr('robco_mission')

        self.labels = {}
        self.labels[
            'cloudrobotics.com/robot-name'] = self.robot_config.robco_robot_name
        super().__init__('mission.cloudrobotics.com', 'v1alpha1', 'missions',
                         'default', template_cr, self.labels)

        # RobCo Robot API
        self.robot_api = robot_api
        self.battery_percentage = 100.0
        self.robot_state = RobcoRobotStates.STATE_UNDEFINED
        self.trolley_attached = False

        # Set active charger
        self._chargers = self.robot_config.conf.chargers.copy()
        self._chargers_generator = self._iterate_chargers()
        self.charger = next(self._chargers_generator, '')
        _LOGGER.info('Using chargers: %s', self._chargers)

        # Register robot status update callback
        self.robot_api.register_callback('RobCoMissionAPI',
                                         ['ADDED', 'MODIFIED'],
                                         self.update_robot_status_cb)

        # Register mission status update callback
        self.register_callback('update_mission_status',
                               ['ADDED', 'MODIFIED', 'REPROCESS'],
                               self.update_mission_status_cb)
        self.register_callback('mission_deleted', ['DELETED'],
                               self.mission_deleted_cb)

        # Thread to check for deleted mission CRs
        self.deleted_missions_thread = threading.Thread(
            target=self._deleted_missions_checker)
    def __init__(self) -> None:
        """Construct."""
        self.init_robot_fromenv()

        # Robot configuration attributes
        self.conf = RobotConfigurationSpec()

        template_cr = get_sample_cr('robotconfiguration')

        labels = {}
        labels['cloudrobotics.com/robot-name'] = self.robco_robot_name
        super().__init__('ewm.sap.com', 'v1alpha1', 'robotconfigurations',
                         'default', template_cr, labels)

        # Register callbacks
        self.register_callback('configUpdate',
                               ['ADDED', 'MODIFIED', 'REPROCESS'],
                               self.robotconfiguration_cb)
    def __init__(self) -> None:
        """Construct."""
        template_cr = get_sample_cr('auctioneer')

        super().__init__('ewm.sap.com', 'v1alpha1', 'auctioneers', 'default',
                         template_cr, {})

        # Robots which are controlled by an auctioneer
        self._robots_in_scope: Dict[str, str] = {}
        self._robots_in_scope_lock = RLock()

        # Status of the auctioneer
        self.auctioneer_status: Dict[str, str] = {}

        # Register callbacks
        self.register_callback('GetRobotsInScope',
                               ['ADDED', 'MODIFIED', 'REPROCESS'],
                               self._get_robots_in_scope_cb)
        self.register_callback('DeleteRobotsInScope', ['DELETED'],
                               self._delete_robots_in_scope_cb)
Exemplo n.º 17
0
    def __init__(self, robot_api: RobCoRobotAPI) -> None:
        """Constructor."""
        self.init_robco_fromenv()
        # Mission status dictionary
        self.mission_status = OrderedDict()
        self.mission_status_lock = threading.RLock()

        template_cr = get_sample_cr('robco_mission')

        self.labels = {}
        self.labels['cloudrobotics.com/robot-name'] = self.robco_robot_name
        super().__init__(
            'mission.cloudrobotics.com',
            'v1alpha1',
            'missions',
            'default',
            template_cr,
            self.labels
        )

        # RobCo Robot API
        self.robot_api = robot_api
        self.battery_percentage = 100.0
        self.robot_state = None
        self.trolley_attached = None

        # Set active charger
        self.charger = next(self._chargers_generator)

        # Register robot status update callback
        self.robot_api.register_callback(
            'RobCoMissionAPI', ['ADDED', 'MODIFIED'], self.update_robot_status_cb)

        # Register mission status update callback
        self.register_callback(
            'update_mission_status', ['ADDED', 'MODIFIED', 'REPROCESS'],
            self.update_mission_status_cb)
        self.register_callback('mission_deleted', ['DELETED'], self.mission_deleted_cb)

        # Thread to check for deleted mission CRs
        self.deleted_missions_thread = threading.Thread(target=self._deleted_missions_checker)
    def __init__(self) -> None:
        """Constructor."""
        # Warehouse order spec dictionary
        self.warehouse_order_spec = OrderedDict()
        self.warehouse_order_spec_lock = threading.RLock()

        template_cr = get_sample_cr('warehouseorder')

        labels = {}
        super().__init__(
            'sap.com',
            'v1',
            'warehouseorders',
            'default',
            template_cr,
            labels
        )

        # Thread to check for deleted warehouse order CRs
        self.deleted_warehouse_orders_thread = threading.Thread(
            target=self._deleted_warehouse_orders_checker)
Exemplo n.º 19
0
    def __init__(self) -> None:
        """Construct."""
        # Processed warehouse order CRs dictionary
        self._processed_orders: TOrderedDict[str, str] = OrderedDict()
        self._processed_orders_lock = threading.RLock()
        self._deleted_orders: TOrderedDict[str, bool] = OrderedDict()

        template_cr = get_sample_cr('warehouseorder')

        super().__init__('ewm.sap.com', 'v1alpha1', 'warehouseorders',
                         'default', template_cr, {})

        # Thread to check for deleted warehouse order CRs
        self.deleted_warehouse_orders_thread = threading.Thread(
            target=self._deleted_orders_checker)

        # Register callbacks
        self.register_callback('CleanupOrders',
                               ['ADDED', 'MODIFIED', 'REPROCESS'],
                               self._cleanup_orders_cb)
        self.register_callback('DeletedOrders', ['DELETED'],
                               self._order_deleted_cb)
    def __init__(self) -> None:
        """Constructor."""
        self.init_robot_fromenv()
        # Robotrequest status dictionary
        self.robotrequest_status = OrderedDict()
        self.robotrequest_status_lock = threading.RLock()
        template_cr = get_sample_cr('robotrequest')

        labels = {}
        labels['cloudrobotics.com/robot-name'] = self.robco_robot_name
        super().__init__('sap.com', 'v1', 'robotrequests', 'default',
                         template_cr, labels)

        # Register robotrequest status update callback
        self.register_callback('update_robotrequest_status',
                               ['ADDED', 'MODIFIED', 'REPROCESS'],
                               self.update_robotrequest_status_cb)
        self.register_callback('robotrequest_deleted', ['DELETED'],
                               self.robotrequest_deleted_cb)

        # Thread to check for deleted robotrequest CRs
        self.deleted_robotrequests_thread = threading.Thread(
            target=self._deleted_robotrequests_checker)
    def __init__(self) -> None:
        """Construct."""
        template_cr = get_sample_cr('robotrequest')

        super().__init__('ewm.sap.com', 'v1alpha1', 'robotrequests', 'default',
                         template_cr, {})