blob: 231637c05ceff0c3bdf2cf52b9272b3b0043a1d1 [file] [log] [blame]
# Copyright (c) 2012 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""File containing class to build all available ap_configurators."""
from autotest_lib.server.cros.chaos_ap_configurators import ap_cartridge
from autotest_lib.server.cros.chaos_config import ChaosAPList
import asus_ap_configurator
import asus_ac66r_ap_configurator
import asus_qis_ap_configurator
import belkin_ap_configurator
import belkinF9K_ap_configurator
import buffalo_ap_configurator
import dlink_ap_configurator
import dlink_dir655_ap_configurator
import dlinkwbr1310_ap_configurator
import linksys_ap_configurator
import linksys_ap_15_configurator
import linksyse_dual_band_configurator
import linksyse_single_band_configurator
import linksyse1000_ap_configurator
import linksyse2000_ap_configurator
import linksyse2100_ap_configurator
import linksyse2500_ap_configurator
import linksyswrt160_ap_configurator
import medialink_ap_configurator
import netgear3700_ap_configurator
import netgear4300_ap_configurator
import netgearR6200_ap_configurator
import netgear2000_ap_configurator
import netgear_WNDR_dual_band_configurator
import netgear_single_band_configurator
import trendnet_ap_configurator
import trendnet691gr_ap_configurator
import westerndigitaln600_ap_configurator
class APConfiguratorFactory(object):
"""Class that instantiates all available APConfigurators."""
configurator_map = {
'LinksysAPConfigurator':
linksys_ap_configurator.LinksysAPConfigurator,
'LinksysAP15Configurator':
linksys_ap_15_configurator.LinksysAP15Configurator,
'DLinkAPConfigurator':
dlink_ap_configurator.DLinkAPConfigurator,
'TrendnetAPConfigurator':
trendnet_ap_configurator.TrendnetAPConfigurator,
'Trendnet691grAPConfigurator':
trendnet691gr_ap_configurator.Trendnet691grAPConfigurator,
'DLinkDIR655APConfigurator':
dlink_dir655_ap_configurator.DLinkDIR655APConfigurator,
'BuffaloAPConfigurator':
buffalo_ap_configurator.BuffaloAPConfigurator,
'AsusAPConfigurator':
asus_ap_configurator.AsusAPConfigurator,
'AsusQISAPConfigurator':
asus_qis_ap_configurator.AsusQISAPConfigurator,
'Asus66RAPConfigurator':
asus_ac66r_ap_configurator.Asus66RAPConfigurator,
'Netgear3700APConfigurator':
netgear3700_ap_configurator.Netgear3700APConfigurator,
'NetgearR6200APConfigurator':
netgearR6200_ap_configurator.NetgearR6200APConfigurator,
'Netgear2000APConfigurator':
netgear2000_ap_configurator.Netgear2000APConfigurator,
'Netgear4300APConfigurator':
netgear4300_ap_configurator.Netgear4300APConfigurator,
'LinksyseDualBandAPConfigurator':
linksyse_dual_band_configurator.LinksyseDualBandAPConfigurator,
'Linksyse2000APConfigurator':
linksyse2000_ap_configurator.Linksyse2000APConfigurator,
'NetgearDualBandAPConfigurator':
netgear_WNDR_dual_band_configurator.NetgearDualBandAPConfigurator,
'BelkinAPConfigurator':
belkin_ap_configurator.BelkinAPConfigurator,
'BelkinF9KAPConfigurator':
belkinF9K_ap_configurator.BelkinF9KAPConfigurator,
'MediaLinkAPConfigurator':
medialink_ap_configurator.MediaLinkAPConfigurator,
'NetgearSingleBandAPConfigurator':
netgear_single_band_configurator.NetgearSingleBandAPConfigurator,
'DLinkwbr1310APConfigurator':
dlinkwbr1310_ap_configurator.DLinkwbr1310APConfigurator,
'Linksyse2100APConfigurator':
linksyse2100_ap_configurator.Linksyse2100APConfigurator,
'LinksyseSingleBandAPConfigurator':
linksyse_single_band_configurator.LinksyseSingleBandAPConfigurator,
'Linksyse2500APConfigurator':
linksyse2500_ap_configurator.Linksyse2500APConfigurator,
'WesternDigitalN600APConfigurator':
westerndigitaln600_ap_configurator.WesternDigitalN600APConfigurator
'Linksyse1000APConfigurator':
linksyse1000_ap_configurator.Linksyse1000APConfigurator,
'LinksysWRT160APConfigurator':
linksyswrt160_ap_configurator.LinksysWRT160APConfigurator,
}
def __init__(self):
chaos_config = ChaosAPList(static_config=False)
self.ap_list = []
for ap in chaos_config:
configurator = self.configurator_map[ap.get_class()]
self.ap_list.append(configurator(ap))
def get_ap_configurators(self):
"""Returns all available configurators."""
return self.ap_list
def get_ap_configurator_by_short_name(self, name):
"""Returns a configurator by short name.
@param name: short name of the configurator
"""
for ap in self.ap_list:
if ap.get_router_short_name() == name:
return ap
return None
def get_aps_with_security_mode(self, security_mode):
"""Returns all configurators that support a given security mode.
@param security_mode: desired security mode
"""
aps = []
for ap in self.ap_list:
if ap.is_security_mode_supported(security_mode):
aps.append(ap)
return aps
def turn_off_all_routers(self):
"""Powers down all of the routers."""
ap_power_cartridge = ap_cartridge.APCartridge()
for ap in self.ap_list:
ap.power_down_router()
ap_power_cartridge.push_configurator(ap)
ap_power_cartridge.run_configurators()