Exemplo n.º 1
0
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"])
Exemplo n.º 2
0
 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