| # 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 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 linksyse2000_ap_configurator |
| import linksysE4200_ap_configurator |
| import Netgear3700_ap_configurator |
| import netgear4500_ap_configurator |
| import trendnet_ap_configurator |
| import netgear614_ap_configurator |
| |
| |
| class APConfiguratorFactory(object): |
| """Class that instantiates all available APConfigurators.""" |
| |
| def __init__(self, config_dict_file_path): |
| if not os.path.exists(config_dict_file_path): |
| raise IOError('The configuration file at path %s is missing' % |
| str(config_dict_file_path)) |
| |
| f = open(config_dict_file_path) |
| contents = f.read() |
| f.close() |
| config_list = None |
| try: |
| config_list = eval(contents) |
| except Exception, e: |
| raise RuntimeError('%s is an invalid data file.' % |
| config_dict_file_path) |
| self.ap_list = [] |
| self._build_all_instances_of_configurator(config_list, |
| 'LinksysAPConfigurator', |
| linksys_ap_configurator.LinksysAPConfigurator) |
| self._build_all_instances_of_configurator(config_list, |
| 'DLinkAPConfigurator', |
| dlink_ap_configurator.DLinkAPConfigurator) |
| self._build_all_instances_of_configurator(config_list, |
| 'TrendnetAPConfigurator', |
| trendnet_ap_configurator.TrendnetAPConfigurator) |
| self._build_all_instances_of_configurator(config_list, |
| 'DLinkDIR655APConfigurator', |
| dlink_dir655_ap_configurator.DLinkDIR655APConfigurator) |
| self._build_all_instances_of_configurator(config_list, |
| 'BuffaloAPConfigurator', |
| buffalo_ap_configurator.BuffaloAPConfigurator) |
| self._build_all_instances_of_configurator(config_list, |
| 'AsusAPConfigurator', |
| asus_ap_configurator.AsusAPConfigurator) |
| self._build_all_instances_of_configurator(config_list, |
| 'Netgear3700APConfigurator', |
| Netgear3700_ap_configurator.Netgear3700APConfigurator) |
| self._build_all_instances_of_configurator(config_list, |
| 'LinksysE4200APConfigurator', |
| linksysE4200_ap_configurator.LinksysAPConfigurator) |
| self._build_all_instances_of_configurator(config_list, |
| 'linksyse2000APConfigurator', |
| linksyse2000_ap_configurator.linksyse2000APConfigurator) |
| self._build_all_instances_of_configurator(config_list, |
| 'Netgear4500APConfigurator', |
| netgear4500_ap_configurator.NetgearAPConfigurator) |
| self._build_all_instances_of_configurator(config_list, |
| 'belkinAPConfigurator', |
| belkin_ap_configurator.belkinAPConfigurator) |
| self._build_all_instances_of_configurator(config_list, |
| 'Netgear614APConfigurator', |
| netgear614_ap_configurator.NetgearAPConfigurator) |
| self._build_all_instances_of_configurator(config_list, |
| 'dlinkwbr1310APConfigurator', |
| dlinkwbr1310_ap_configurator.dlinkwbr1310APConfigurator) |
| |
| def _build_all_instances_of_configurator(self, config_list, name, |
| configurator): |
| for current in config_list: |
| if current['class_name'] == name: |
| self.ap_list.append(configurator(current)) |
| |
| 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() |