Exemplo n.º 1
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
Exemplo n.º 2
0
    def build_widget(self):
        widget = MenuSelectButtonList()
        cloud_types_by_name = juju.get_cloud_types_by_name()

        if len(self.public_clouds) > 0:
            widget.append(Text("Public Clouds"))
            widget.append(HR())
            for cloud_name in self.public_clouds:
                cloud_type = cloud_types_by_name[cloud_name]
                allowed = cloud_type in self.compatible_cloud_types
                widget.append_option(cloud_name, enabled=allowed)
            widget.append(Padding.line_break(""))

        if len(self.custom_clouds) > 0:
            widget.append(Text("Your Clouds"))
            widget.append(HR())
            for cloud_name in self.custom_clouds:
                cloud_type = cloud_types_by_name[cloud_name]
                allowed = cloud_type in self.compatible_cloud_types
                widget.append_option(cloud_name, enabled=allowed)
            widget.append(Padding.line_break(""))

        lxd_allowed = cloud_types.LOCALHOST in self.compatible_cloud_types
        widget.append(Text("Configure a New Cloud"))
        widget.append(HR())
        for cloud_type in sorted(CUSTOM_PROVIDERS):
            if cloud_type == cloud_types.LOCALHOST and lxd_allowed:
                self._items_localhost_idx = len(widget.contents)
                widget.append_option(cloud_type,
                                     enabled=events.LXDAvailable.is_set(),
                                     user_data={
                                         'disabled_msg':
                                         self.lxd_unavailable_msg,
                                     })
            else:
                allowed = cloud_type in self.compatible_cloud_types
                widget.append_option(cloud_type, enabled=allowed)

        if app.provider and app.provider.cloud:
            widget.select_item_by_value(app.provider.cloud)
        elif app.metadata.cloud_whitelist:
            widget.select_first_of_values(app.metadata.cloud_whitelist)
        else:
            widget.select_first()
        return widget
Exemplo n.º 3
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
Exemplo n.º 4
0
 def build_widget(self):
     return MenuSelectButtonList(self.regions, self.default)
Exemplo n.º 5
0
 def build_widget(self):
     widget = MenuSelectButtonList(self.credentials, self.default)
     widget.append(Padding.line_break(""))
     widget.append(HR())
     widget.append_option("Add a new credential", None)
     return widget