class Pool(vTMConfigObject): def __init__(self, name, config=None, nodes=None, **kwargs): if config is not None: super(Pool, self).__init__(name, "Pool") self.create_from_config_data(config) elif nodes: super(Pool, self).__init__(name, "Pool", **kwargs) self.nodes_table = nodes else: raise Exception("Invalid parameters specified") def create_from_config_data(self, data): super(Pool, self).create_from_config_data(data) nodes_table = self.nodes_table self.nodes_table = SubList(Node, self) for node in nodes_table: try: self.nodes_table.instantiate( node['node'], ip=node['node'].split(":")[0], port=node['node'].split(":")[1], state=node['state'], weight=node['weight'], priority=node['priority'] ) except KeyError: self.nodes_table.instantiate( node['node'], ip=node['node'].split(":")[0], port=node['node'].split(":")[1], state=node['state'], weight=node['weight'] or 1 ) self.nodes = self.nodes_table def to_dict(self): return super(Pool, self).to_dict(["nodes"])
def create_from_config_data(self, data): super(Pool, self).create_from_config_data(data) nodes_table = self.nodes_table self.nodes_table = SubList(Node, self) for node in nodes_table: try: self.nodes_table.instantiate( node['node'], ip=node['node'].split(":")[0], port=node['node'].split(":")[1], state=node['state'], weight=node['weight'], priority=node['priority'] ) except KeyError: self.nodes_table.instantiate( node['node'], ip=node['node'].split(":")[0], port=node['node'].split(":")[1], state=node['state'], weight=node['weight'] or 1 ) self.nodes = self.nodes_table