Esempio n. 1
0
class CTDB(SectionPlugin):
    nodes_file = "/etc/ctdb/nodes"
    addresses_file = "/etc/ctdb/public_addresses"

    def init(self):
        self.title = _("Samba Cluster")
        self.icon = "folder-close"
        self.category = _("Software")

        self.append(self.ui.inflate("ctdb:main"))

        self.config_path = {"debian": "/etc/default/ctdb", "centos": "/etc/sysconfig/ctdb"}[ajenti.platform]

        self.config = CTDBConfig(path=self.config_path)
        self.config.load()

        self.binder = Binder(None, self.find("main-config"))
        self.n_binder = Binder(None, self.find("nodes-config"))
        self.a_binder = Binder(None, self.find("addresses-config"))
        self.find("nodes").new_item = lambda c: NodeData()
        self.find("addresses").new_item = lambda c: PublicAddressData()

    def on_page_load(self):
        n_path = self.config.tree.nodes_file
        self.nodes_config = CTDBNodesConfig(path=n_path)
        if not os.path.exists(n_path):
            open(n_path, "w").close()
        self.nodes_config.load()

        a_path = self.config.tree.public_addresses_file
        self.addresses_config = CTDBPublicAddressesConfig(path=a_path)
        if not os.path.exists(a_path):
            open(a_path, "w").close()
        self.addresses_config.load()

        self.config.load()
        self.binder.setup(self.config.tree).populate()
        self.n_binder.setup(self.nodes_config.tree).populate()
        self.a_binder.setup(self.addresses_config.tree).populate()
        self.refresh()

    @on("refresh", "click")
    def refresh(self):
        try:
            self.find("status").value = subprocess.check_output(["ctdb", "status"])
            self.find("status-ip").value = subprocess.check_output(["ctdb", "ip"])
        except:
            self.find("status").value = _("Failed to obtain CTDB status")

    @on("save", "click")
    def save(self):
        self.binder.update()
        self.n_binder.update()
        self.a_binder.update()
        self.config.save()
        self.nodes_config.save()
        self.addresses_config.save()
        self.context.notify("info", _("Saved"))
Esempio n. 2
0
class CTDB(SectionPlugin):
    nodes_file = '/etc/ctdb/nodes'
    addresses_file = '/etc/ctdb/public_addresses'

    def init(self):
        self.title = 'Samba Cluster'
        self.icon = 'folder-close'
        self.category = 'Software'

        self.append(self.ui.inflate('ctdb:main'))

        self.config_path = {
            'debian': '/etc/default/ctdb',
            'centos': '/etc/sysconfig/ctdb'
        }[ajenti.platform]

        self.config = CTDBConfig(path=self.config_path)
        self.config.load()

        self.binder = Binder(None, self.find('main-config'))
        self.n_binder = Binder(None, self.find('nodes-config'))
        self.a_binder = Binder(None, self.find('addresses-config'))
        self.find('nodes').new_item = lambda c: NodeData()
        self.find('addresses').new_item = lambda c: PublicAddressData()

    def on_page_load(self):
        n_path = self.config.tree.nodes_file
        self.nodes_config = CTDBNodesConfig(path=n_path)
        if not os.path.exists(n_path):
            open(n_path, 'w').close()
        self.nodes_config.load()

        a_path = self.config.tree.public_addresses_file
        self.addresses_config = CTDBPublicAddressesConfig(path=a_path)
        if not os.path.exists(a_path):
            open(a_path, 'w').close()
        self.addresses_config.load()

        self.config.load()
        self.binder.reset(self.config.tree).autodiscover().populate()
        self.n_binder.reset(self.nodes_config.tree).autodiscover().populate()
        self.a_binder.reset(
            self.addresses_config.tree).autodiscover().populate()
        self.refresh()

    @on('refresh', 'click')
    def refresh(self):
        try:
            self.find('status').value = subprocess.check_output(
                ['ctdb', 'status'])
            self.find('status-ip').value = subprocess.check_output(
                ['ctdb', 'ip'])
        except:
            self.find('status').value = 'Failed to obtain CTDB status'

    @on('save', 'click')
    def save(self):
        self.binder.update()
        self.n_binder.update()
        self.a_binder.update()
        self.config.save()
        self.nodes_config.save()
        self.addresses_config.save()
        self.context.notify('info', 'Saved')
Esempio n. 3
0
class CTDB (SectionPlugin):
    nodes_file = '/etc/ctdb/nodes'
    addresses_file = '/etc/ctdb/public_addresses'

    def init(self):
        self.title = 'Samba Cluster'
        self.icon = 'folder-close'
        self.category = 'Software'

        self.append(self.ui.inflate('ctdb:main'))

        self.config_path = {
            'debian': '/etc/default/ctdb',
            'centos': '/etc/sysconfig/ctdb'
        }[ajenti.platform]

        self.config = CTDBConfig(path=self.config_path)
        self.config.load()

        self.binder = Binder(None, self.find('main-config'))
        self.n_binder = Binder(None, self.find('nodes-config'))
        self.a_binder = Binder(None, self.find('addresses-config'))
        self.find('nodes').new_item = lambda c: NodeData()
        self.find('addresses').new_item = lambda c: PublicAddressData()

    def on_page_load(self):
        n_path = self.config.tree.nodes_file
        self.nodes_config = CTDBNodesConfig(path=n_path)
        if not os.path.exists(n_path):
            open(n_path, 'w').close()
        self.nodes_config.load()

        a_path = self.config.tree.public_addresses_file
        self.addresses_config = CTDBPublicAddressesConfig(path=a_path)
        if not os.path.exists(a_path):
            open(a_path, 'w').close()
        self.addresses_config.load()

        self.config.load()
        self.binder.reset(self.config.tree).autodiscover().populate()
        self.n_binder.reset(self.nodes_config.tree).autodiscover().populate()
        self.a_binder.reset(self.addresses_config.tree).autodiscover().populate()
        self.refresh()

    @on('refresh', 'click')
    def refresh(self):
        try:
            self.find('status').value = subprocess.check_output(['ctdb', 'status'])
            self.find('status-ip').value = subprocess.check_output(['ctdb', 'ip'])
        except:
            self.find('status').value = 'Failed to obtain CTDB status'

    @on('save', 'click')
    def save(self):
        self.binder.update()
        self.n_binder.update()
        self.a_binder.update()
        self.config.save()
        self.nodes_config.save()
        self.addresses_config.save()
        self.context.notify('info', 'Saved')