Esempio n. 1
0
    def build_widget(self):
        widget = MenuSelectButtonList()
        if self.app.jaas_ok:
            widget.append_option('Juju-as-a-Service (JaaS) '
                                 'Free Controller', 'jaas')
        if len(self.controllers) > 0:
            if self.app.jaas_ok:
                widget.append(HR())
            widget.append(Color.label(
                Text("Existing Self-Hosted Controllers")))
            widget.append(Padding.line_break(""))
            cdict = defaultdict(lambda: defaultdict(list))
            for cname, d in self.controllers.items():
                cdict[d['cloud']][d.get('region', None)].append((cname, d))

            for cloudname, cloud_d in sorted(cdict.items()):
                widget.append(Color.label(Text("  {}".format(cloudname))))
                for regionname, controllers in cloud_d.items():
                    for controller_name, controller in sorted(controllers):
                        label = "    {}".format(controller_name)
                        if regionname:
                            label += " ({})".format(regionname)
                        widget.append_option(
                            label,
                            controller_name,
                            enabled=controller.get('api-endpoints'))
                widget.append(Padding.line_break(""))
            widget.append(Padding.line_break(""))
        widget.append(HR())
        widget.append_option("Deploy New Self-Hosted Controller", None)
        widget.select_first()
        return widget
Esempio n. 2
0
    def _build_widget(self):
        total_items = []
        for controller in sorted(self.controllers):
            models = self.models[controller]['models']
            if len(models) > 0:
                total_items.append(
                    Color.label(
                        Text("{} ({})".format(controller,
                                              models[0].get('cloud', "")))))
                for model in sorted(models, key=itemgetter('name')):
                    if model['name'] == "controller":
                        continue
                    if model['life'] == 'dying':
                        continue

                    label = "  {}, Machine Count: {}{}".format(
                        model['name'], self._total_machines(model),
                        ", Running since: {}".format(
                            model['status'].get('since'))
                        if 'since' in model['status'] else '')
                    total_items.append(
                        Color.body(menu_btn(label=label,
                                            on_press=partial(
                                                self.submit, controller,
                                                model)),
                                   focus_map='menu_button focus'))
                total_items.append(Padding.line_break(""))
            total_items.append(Padding.line_break(""))
        return Padding.center_80(Filler(Pile(total_items), valign='top'))
    def _build_widget(self):
        total_items = []
        if len(self.controllers) > 0:
            total_items.append(HR())
            cdict = defaultdict(lambda: defaultdict(list))
            for cname, d in self.controllers.items():
                cdict[d['cloud']][d.get('region', None)].append(cname)

            for cloudname, cloud_d in sorted(cdict.items()):
                total_items.append(Color.label(
                    Text("  {}".format(cloudname))))
                for regionname, controllers in cloud_d.items():
                    for controller in sorted(controllers):
                        label = "    {}".format(controller)
                        if regionname:
                            label += " ({})".format(regionname)
                        total_items.append(
                            Color.body(
                                menu_btn(label=label,
                                         on_press=partial(self.submit,
                                                          controller)),
                                focus_map='menu_button focus'
                            )
                        )
                total_items.append(Padding.line_break(""))
            total_items.append(Padding.line_break(""))
        total_items.append(HR())
        total_items.append(
            Color.body(
                menu_btn(label="Create New",
                         on_press=self.handle_create_new),
                focus_map='menu_button focus'
            )
        )
        return Padding.center_80(Filler(Pile(total_items), valign='top'))
Esempio n. 4
0
    def _build_widget(self):
        total_items = []
        if len(self.controllers) > 0:
            total_items.append(HR())
            cdict = defaultdict(lambda: defaultdict(list))
            for cname, d in self.controllers.items():
                cdict[d['cloud']][d.get('region', None)].append(cname)

            for cloudname, cloud_d in sorted(cdict.items()):
                total_items.append(Color.label(Text("  {}".format(cloudname))))
                for regionname, controllers in cloud_d.items():
                    for controller in sorted(controllers):
                        label = "    {}".format(controller)
                        if regionname:
                            label += " ({})".format(regionname)
                        total_items.append(
                            Color.body(menu_btn(label=label,
                                                on_press=partial(
                                                    self.submit, controller)),
                                       focus_map='menu_button focus'))
                total_items.append(Padding.line_break(""))
            total_items.append(Padding.line_break(""))
        total_items.append(HR())
        total_items.append(
            Color.body(menu_btn(label="Create New",
                                on_press=self.handle_create_new),
                       focus_map='menu_button focus'))
        return Padding.center_80(Filler(Pile(total_items), valign='top'))
Esempio n. 5
0
 def build_widget(self):
     widget = MenuSelectButtonList()
     prev_cat = None
     for category, spell in self.spells:
         if category == "_unassigned_spells":
             category = "other"
         if category != prev_cat:
             if prev_cat:
                 widget.append(Text(""))
             widget.append(Color.label(Text(category)))
             prev_cat = category
         widget.append_option(spell['name'], spell)
     widget.focus_position = 1
     return widget
Esempio n. 6
0
    def _build_widget(self):
        total_items = [HR()]
        prev_cat = None
        for category, spell in self.spells:
            if category == "_unassigned_spells":
                category = "other"
            if category != prev_cat:
                if prev_cat:
                    total_items.append(Text(""))
                total_items.append(Color.label(Text(category)))
                prev_cat = category
            total_items.append(SpellPickerWidget(spell, self.submit))
        total_items += [HR()]

        self.pile = Pile(total_items)
        return Padding.center_60(Filler(self.pile, valign='top'))