blob: d96217353acfe8da9e88531fadb1c6df659e3f71 [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.
import os
import sys
sys.path.append('../')
from chaos_config import ChaosAPList
import asus_ap_configurator
import belkin_ap_configurator
import buffalo_ap_configurator
import dlink_ap_configurator
import dlink_dir655_ap_configurator
import dlinkwbr1310_ap_configurator
import linksys_ap_configurator
import linksyse_dual_band_configurator
import linksyse_single_band_configurator
import linksyse2000_ap_configurator
import linksyse2100_ap_configurator
import netgear3700_ap_configurator
import netgearR6200_ap_configurator
import netgear_WNDR_dual_band_configurator
import netgear_single_band_configurator
import trendnet_ap_configurator
class APConfiguratorFactory(object):
"""Class that instantiates all available APConfigurators."""
configurator_map = {
'LinksysAPConfigurator':
linksys_ap_configurator.LinksysAPConfigurator,
'DLinkAPConfigurator':
dlink_ap_configurator.DLinkAPConfigurator,
'TrendnetAPConfigurator':
trendnet_ap_configurator.TrendnetAPConfigurator,
'DLinkDIR655APConfigurator':
dlink_dir655_ap_configurator.DLinkDIR655APConfigurator,
'BuffaloAPConfigurator':
buffalo_ap_configurator.BuffaloAPConfigurator,
'AsusAPConfigurator':
asus_ap_configurator.AsusAPConfigurator,
'Netgear3700APConfigurator':
netgear3700_ap_configurator.Netgear3700APConfigurator,
'NetgearR6200APConfigurator':
netgearR6200_ap_configurator.NetgearR6200APConfigurator,
'LinksyseDualBandAPConfigurator':
linksyse_dual_band_configurator.LinksyseDualBandAPConfigurator,
'Linksyse2000APConfigurator':
linksyse2000_ap_configurator.Linksyse2000APConfigurator,
'NetgearDualBandAPConfigurator':
netgear_WNDR_dual_band_configurator.NetgearDualBandAPConfigurator,
'BelkinAPConfigurator':
belkin_ap_configurator.BelkinAPConfigurator,
'NetgearSingleBandAPConfigurator':
netgear_single_band_configurator.NetgearSingleBandAPConfigurator,
'DLinkwbr1310APConfigurator':
dlinkwbr1310_ap_configurator.DLinkwbr1310APConfigurator,
'Linksyse2100APConfigurator':
linksyse2100_ap_configurator.Linksyse2100APConfigurator,
'LinksyseSingleBandAPConfigurator':
linksyse_single_band_configurator.LinksyseSingleBandAPConfigurator,
}
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):
return self.ap_list
def get_ap_configurator_by_short_name(self, name):
for ap in self.ap_list:
if ap.get_router_short_name() == name:
return ap
return None
def turn_off_all_routers(self):
for ap in self.ap_list:
ap.power_down_router()