On Fri, 2010-10-29 at 15:41 -0700, Jean-Marc Eurin wrote:
> Testing that we can access the drone before adding it.

Applied, thanks:

http://autotest.kernel.org/changeset/4909


> Signed-off-by: Jean-Marc Eurin <[email protected]>
> 
> --- autotest/scheduler/drone_manager.py       2010-10-28 14:38:16.000000000 
> -0700
> +++ autotest/scheduler/drone_manager.py       2010-10-29 15:37:05.000000000 
> -0700
> @@ -159,8 +159,7 @@
>          self._results_dir = base_results_dir
>  
>          for hostname in drone_hostnames:
> -            drone = self._add_drone(hostname)
> -            drone.call('initialize', self.absolute_path(''))
> +            self._add_drone(hostname)
>  
>          if not self._drones:
>              # all drones failed to initialize
> @@ -205,8 +204,9 @@
>      def _add_drone(self, hostname):
>          logging.info('Adding drone %s' % hostname)
>          drone = drones.get_drone(hostname)
> -        self._drones[drone.hostname] = drone
> -        return drone
> +        if drone:
> +            self._drones[drone.hostname] = drone
> +            drone.call('initialize', self.absolute_path(''))
>  
> 
>      def _remove_drone(self, hostname):
> --- autotest/scheduler/drones.py      2010-03-16 17:23:37.000000000 -0700
> +++ autotest/scheduler/drones.py      2010-10-29 15:37:05.000000000 -0700
> @@ -7,6 +7,11 @@
>  AUTOTEST_INSTALL_DIR = 
> global_config.global_config.get_config_value('SCHEDULER',
>                                                   
> 'drone_installation_directory')
>  
> +class DroneUnreachable(Exception):
> +    """The drone is non-sshable."""
> +    pass
> +
> +
>  class _AbstractDrone(object):
>      """
>      Attributes:
> @@ -111,6 +116,9 @@
>          super(_RemoteDrone, self).__init__()
>          self.hostname = hostname
>          self._host = drone_utility.create_host(hostname)
> +        if not self._host.is_up():
> +            logging.error('Drone %s is unpingable, kicking out', hostname)
> +            raise DroneUnreachable
>          self._autotest_install_dir = AUTOTEST_INSTALL_DIR
>  
> 
> @@ -156,4 +164,7 @@
>      """
>      if hostname == 'localhost':
>          return _LocalDrone()
> -    return _RemoteDrone(hostname)
> +    try:
> +        return _RemoteDrone(hostname)
> +    except DroneUnreachable:
> +        return None
> _______________________________________________
> Autotest mailing list
> [email protected]
> http://test.kernel.org/cgi-bin/mailman/listinfo/autotest


_______________________________________________
Autotest mailing list
[email protected]
http://test.kernel.org/cgi-bin/mailman/listinfo/autotest

Reply via email to