Exemplo n.º 1
0
    def update_node_states(self):
        """ Updating node states

        PegasusGUI only
        """
        if not self.juju_state:
            return
        deployed_services = sorted(self.juju_state.services,
                                   key=attrgetter('service_name'))
        deployed_service_names = [s.service_name for s in deployed_services]

        charm_classes = sorted(
            [m.__charm_class__ for m in
             utils.load_charms(self.config.getopt('charm_plugin_dir'))
             if m.__charm_class__.charm_name in
             deployed_service_names],
            key=attrgetter('charm_name'))

        self.nodes = list(zip(charm_classes, deployed_services))

        for n in deployed_services:
            for u in n.units:
                if u.is_horizon and u.agent_state == "started":
                    self.ui.set_dashboard_url(
                        u.public_address, 'ubuntu',
                        self.config.getopt('openstack_password'))
                if u.is_jujugui and u.agent_state == "started":
                    self.ui.set_jujugui_url(u.public_address)
        if len(self.nodes) == 0:
            return
        else:
            self.ui.render_services_view(self.nodes, self.juju_state,
                                         self.maas_state, self.config)
Exemplo n.º 2
0
    def update_node_states(self):
        """ Updating node states
        """
        if not self.juju_state:
            return
        deployed_services = sorted(self.juju_state.services,
                                   key=attrgetter('service_name'))
        deployed_service_names = [s.service_name for s in deployed_services]

        charm_classes = sorted([m.__charm_class__ for m in utils.load_charms()
                                if m.__charm_class__.charm_name in
                                deployed_service_names],
                               key=attrgetter('charm_name'))

        self.nodes = list(zip(charm_classes, deployed_services))

        for n in deployed_services:
            for u in n.units:
                if u.is_horizon and u.agent_state == "started":
                    self.set_dashboard_url(u.public_address)
                if u.is_jujugui and u.agent_state == "started":
                    self.set_jujugui_url(u.public_address)
        if len(self.nodes) == 0:
            return
        else:
            self.stop_rendering(self.node_install_wait_alarm)
            self.render_nodes(self.nodes, self.juju_state, self.maas_state)
Exemplo n.º 3
0
    def update_node_states(self):
        """ Updating node states

        PegasusGUI only
        """
        if not self.juju_state:
            return
        deployed_services = sorted(self.juju_state.services,
                                   key=attrgetter('service_name'))
        deployed_service_names = [s.service_name for s in deployed_services]

        charm_classes = sorted(
            [m.__charm_class__ for m in
             utils.load_charms(self.config.getopt('charm_plugin_dir'))
             if m.__charm_class__.charm_name in
             deployed_service_names],
            key=attrgetter('charm_name'))

        self.nodes = list(zip(charm_classes, deployed_services))

        if len(self.nodes) == 0:
            return
        else:
            if not self.ui.services_view:
                self.ui.render_services_view(
                    self.nodes, self.juju_state,
                    self.maas_state, self.config)
            else:
                self.ui.refresh_services_view(self.nodes, self.config)
Exemplo n.º 4
0
    def update_node_states(self):
        """ Updating node states

        PegasusGUI only
        """
        if not self.juju_state:
            return
        deployed_services = sorted(self.juju_state.services,
                                   key=attrgetter('service_name'))
        deployed_service_names = [s.service_name for s in deployed_services]

        charm_classes = sorted(
            [m.__charm_class__ for m in
             utils.load_charms(self.config.getopt('charm_plugin_dir'))
             if m.__charm_class__.charm_name in
             deployed_service_names],
            key=attrgetter('charm_name'))

        self.nodes = list(zip(charm_classes, deployed_services))

        for n in deployed_services:
            for u in n.units:
                if u.is_horizon and u.agent_state == "started":
                    self.ui.set_dashboard_url(
                        u.public_address, 'ubuntu',
                        self.config.getopt('openstack_password'))
                if u.is_jujugui and u.agent_state == "started":
                    self.ui.set_jujugui_url(u.public_address)
        if len(self.nodes) == 0:
            return
        else:
            self.ui.render_services_view(self.nodes, self.juju_state,
                                         self.maas_state, self.config)
Exemplo n.º 5
0
    def update_node_states(self):
        """ Updating node states

        PegasusGUI only
        """
        if not self.juju_state:
            return
        deployed_services = sorted(self.juju_state.services,
                                   key=attrgetter('service_name'))
        deployed_service_names = [s.service_name for s in deployed_services]

        charm_classes = sorted(
            [m.__charm_class__ for m in
             utils.load_charms(self.config.getopt('charm_plugin_dir'))
             if m.__charm_class__.charm_name in
             deployed_service_names],
            key=attrgetter('charm_name'))

        self.nodes = list(zip(charm_classes, deployed_services))

        if len(self.nodes) == 0:
            return
        else:
            if not self.ui.services_view:
                self.ui.render_services_view(
                    self.nodes, self.juju_state,
                    self.maas_state, self.config)
            else:
                self.ui.refresh_services_view(self.nodes, self.config)
Exemplo n.º 6
0
    def update_node_states(self):
        """ Updating node states
        """
        if not self.juju_state:
            return
        deployed_services = sorted(self.juju_state.services,
                                   key=attrgetter('service_name'))
        deployed_service_names = [s.service_name for s in deployed_services]

        charm_classes = sorted([
            m.__charm_class__ for m in utils.load_charms()
            if m.__charm_class__.charm_name in deployed_service_names
        ],
                               key=attrgetter('charm_name'))

        self.nodes = list(zip(charm_classes, deployed_services))

        for n in deployed_services:
            for u in n.units:
                if u.is_horizon and u.agent_state == "started":
                    self.set_dashboard_url(u.public_address)
                if u.is_jujugui and u.agent_state == "started":
                    self.set_jujugui_url(u.public_address)
        if len(self.nodes) == 0:
            return
        else:
            self.stop_rendering(self.node_install_wait_alarm)
            self.render_nodes(self.nodes, self.juju_state, self.maas_state)
    def charm_classes(self):
        cl = [
            m.__charm_class__
            for m in load_charms(self.config.getopt("charm_plugin_dir"))
            if not m.__charm_class__.disabled
        ]

        return cl
Exemplo n.º 8
0
    def charm_classes(self):
        cl = [
            m.__charm_class__
            for m in load_charms(self.config.getopt('charm_plugin_dir'))
            if not m.__charm_class__.disabled
        ]

        return cl
Exemplo n.º 9
0
def get_charm(charm_name, juju, juju_state, ui):
    """ returns single charm class

    :param str charm_name: name of charm to query
    :param juju_state: status of juju
    :rtype: Charm
    :returns: charm class
    """
    for charm in utils.load_charms():
        c = charm.__charm_class__(juju=juju, juju_state=juju_state, ui=ui)
        if charm_name == c.name():
            return c
Exemplo n.º 10
0
def get_charm(charm_name, juju, juju_state, ui):
    """ returns single charm class

    :param str charm_name: name of charm to query
    :param juju_state: status of juju
    :rtype: Charm
    :returns: charm class
    """
    for charm in utils.load_charms():
        c = charm.__charm_class__(juju=juju, juju_state=juju_state, ui=ui)
        if charm_name == c.name():
            return c
Exemplo n.º 11
0
 def header_hotkeys(self, key):
     if key in ['j', 'down']:
         self.ui.focus_next()
     if key in ['k', 'up']:
         self.ui.focus_previous()
     if key == 'esc':
         self.ui.hide_widget_on_top()
     if key in ['h', 'H', '?']:
         self.ui.show_help_info()
     if key in ['a', 'A', 'f6']:
         charm_modules = utils.load_charms()
         charm_classes = [m.__charm_class__ for m in charm_modules
                          if m.__charm_class__.allow_multi_units and
                          not m.__charm_class__.disabled]
         self.ui.show_add_charm_info(charm_classes, self.add_charm)
     if key in ['q', 'Q']:
         self.exit()
     if key in ['r', 'R', 'f5']:
         self.info_message("View was refreshed.")
         self.render_nodes(self.nodes, self.juju_state, self.maas_state)
Exemplo n.º 12
0
 def header_hotkeys(self, key):
     if key in ['j', 'down']:
         self.ui.focus_next()
     if key in ['k', 'up']:
         self.ui.focus_previous()
     if key == 'esc':
         self.ui.hide_widget_on_top()
     if key in ['h', 'H', '?']:
         self.ui.show_help_info()
     if key in ['a', 'A', 'f6']:
         if self.current_state != ControllerState.SERVICES:
             return
         charm_modules = utils.load_charms()
         charm_classes = [m.__charm_class__ for m in charm_modules
                          if m.__charm_class__.allow_multi_units and
                          not m.__charm_class__.disabled]
         self.ui.show_add_charm_info(charm_classes, self.add_charm)
     if key in ['q', 'Q']:
         self.exit()
     if key in ['r', 'R', 'f5']:
         self.info_message("View was refreshed")
         self.update()
Exemplo n.º 13
0
 def header_hotkeys(self, key):
     if key in ['j', 'down']:
         self.ui.focus_next()
     if key in ['k', 'up']:
         self.ui.focus_previous()
     if key == 'esc':
         self.ui.hide_widget_on_top()
     if key in ['h', 'H', '?']:
         self.ui.show_help_info()
     if key in ['a', 'A', 'f6']:
         charm_modules = utils.load_charms()
         charm_classes = [
             m.__charm_class__ for m in charm_modules
             if m.__charm_class__.allow_multi_units
             and not m.__charm_class__.disabled
         ]
         self.ui.show_add_charm_info(charm_classes, self.add_charm)
     if key in ['q', 'Q']:
         self.exit()
     if key in ['r', 'R', 'f5']:
         self.info_message("View was refreshed.")
         self.render_nodes(self.nodes, self.juju_state, self.maas_state)
Exemplo n.º 14
0
 def __init__(self, **kwds):
     self.charm_modules = utils.load_charms()
     self.deployed_charm_classes = []
     self.single_net_configured = False
     self.lxc_root_tarball_configured = False
     super().__init__(**kwds)
Exemplo n.º 15
0
 def __init__(self, **kwds):
     self.charm_modules = utils.load_charms()
     self.deployed_charm_classes = []
     self.single_net_configured = False
     self.lxc_root_tarball_configured = False
     super().__init__(**kwds)
Exemplo n.º 16
0
    def charm_classes(self):
        cl = [m.__charm_class__ for m in load_charms()
              if not m.__charm_class__.disabled]

        return cl
Exemplo n.º 17
0
 def __init__(self, **kwds):
     self.charm_modules = utils.load_charms()
     self.juju_m_idmap = None  # for single, {instance_id: machine id}
     self.deployed_charm_classes = []
     super().__init__(**kwds)