code: def assign_hosting_device_to_cfg_agent(self, context, cfg_agent_id,
                                             hosting_device_id):
          
          hd_db = self._get_hosting_device(context, hosting_device_id)
          if hd_db.cfg_agent_id:
              if hd_db.cfg_agent_id == cfg_agent_id:
                  return
              LOG.debug('Hosting device %(hd_id)s has already been assigned to '
                        'Cisco cfg agent %(agent_id)s',
                        {'hd_id': hosting_device_id, 'agent_id': cfg_agent_id})
              raise ciscocfgagentscheduler.HostingDeviceAssignedToCfgAgent(
                  hosting_device_id=hosting_device_id, agent_id=cfg_agent_id)
          cfg_agent_db = get_agent_db_obj(self._get_agent(context, cfg_agent_id))
          if (cfg_agent_db.agent_type != c_constants.AGENT_TYPE_CFG or
                  cfg_agent_db.admin_state_up is not True):
              raise ciscocfgagentscheduler.InvalidCfgAgent(agent_id=cfg_agent_id)
          self._bind_hosting_device_to_cfg_agent(context, hd_db, cfg_agent_db)
          cfg_notifier = self.agent_notifiers.get(c_constants.AGENT_TYPE_CFG)
          if cfg_notifier:
              cfg_notifier.hosting_devices_assigned_to_cfg_agent(
                  context, [hosting_device_id], cfg_agent_db.host)
docs: Make config agent handle an (unassigned) hosting device.