def render(self): existing_controllers = juju.get_controllers()['controllers'] clouds = juju.get_compatible_clouds() cloud_types = juju.get_cloud_types_by_name() app.jaas_ok = set(clouds) & JAAS_CLOUDS jaas_controller = { n for n, c in existing_controllers.items() if JAAS_ENDPOINT in c['api-endpoints'] } if jaas_controller: app.jaas_controller = jaas_controller.pop() filtered_controllers = { n: d for n, d in existing_controllers.items() if cloud_types.get(d['cloud']) in clouds } if not app.jaas_ok and len(filtered_controllers) == 0: return controllers.use('clouds').render() track_screen("Controller Picker") excerpt = app.config.get( 'description', "Please select an existing controller," " or choose to bootstrap a new one.") view = ControllerListView(app, filtered_controllers, self.finish) app.ui.set_header(title="Choose a Controller or Create new", excerpt=excerpt) app.ui.set_body(view)
def finish(self, controller): if controller is None: app.current_controller = "conjure-up-{}-{}".format( app.current_cloud, utils.gen_hash()) return controllers.use('bootstrap').render() if controller == 'jaas': if not app.jaas_controller or not juju.has_jaas_auth(): # jaas is either not registered or not logged in return controllers.use('jaaslogin').render() # jaas already registered app.current_controller = app.jaas_controller app.is_jaas = True else: app.current_controller = controller if app.current_controller not in juju.get_controllers()['controllers']: return controllers.use('bootstrap').render() events.Bootstrapped.set() app.loop.create_task( juju.add_model(app.current_model, app.current_controller, app.current_cloud)) return controllers.use('deploy').render()
def timeout(self): self.authenticating.clear() controllers = juju.get_controllers() if app.jaas_controller in controllers['controllers']: # registration seems to have worked; maybe we should remove and # try again to be safe, but hopefully it's safe to just move on return self.finish() self.__remove_alarm() self.render(error='Timed out connecting to JaaS. Please try again.')
def check_jaas(self): existing_controllers = juju.get_controllers()['controllers'] app.jaas_ok = app.current_cloud_type in JAAS_CLOUDS jaas_controller = { n for n, c in existing_controllers.items() if JAAS_ENDPOINT in c['api-endpoints'] } if jaas_controller: app.jaas_controller = jaas_controller.pop()
def render(self): models_map = {} existing_controllers = juju.get_controllers()['controllers'] for cname, d in existing_controllers.items(): models_map[cname] = juju.get_models(cname) track_screen("Destroy Controller") excerpt = ("Press [ENTER] on the highlighted item to destroy") view = DestroyView(app, models=models_map, cb=self.finish) app.ui.set_header(title="Choose a deployment to teardown", excerpt=excerpt) app.ui.set_body(view)
def get_controller_in_cloud(cloud): """ Returns a controller that is bootstrapped on the named cloud Arguments: cloud: cloud to check for Returns: available controller or None if nothing available """ controllers = juju.get_controllers()['controllers'].items() for controller_name, controller in controllers: if cloud == controller['cloud']: return controller_name return None
def render(self, going_back=False): existing_controllers = juju.get_controllers()['controllers'] self.check_jaas() filtered_controllers = { n: d for n, d in existing_controllers.items() if d['cloud'] == app.provider.cloud } if not app.jaas_ok and len(filtered_controllers) == 0: return self.finish(None) view = ControllerListView(app, filtered_controllers, self.finish, self.back) view.show()
def render(self): existing_controllers = juju.get_controllers()['controllers'] self.check_jaas() filtered_controllers = { n: d for n, d in existing_controllers.items() if d['cloud'] == app.provider.cloud } if not app.jaas_ok and len(filtered_controllers) == 0: return self.finish(None) track_screen("Controller Picker") excerpt = app.config.get( 'description', "Please select an existing controller," " or choose to bootstrap a new one.") view = ControllerListView(app, filtered_controllers, self.finish) app.ui.set_header(title="Controller", excerpt=excerpt) app.ui.set_body(view)
def is_existing_controller(self): controllers = juju.get_controllers()['controllers'] return app.current_controller in controllers
def is_existing_controller(self): controllers = juju.get_controllers()['controllers'] return app.provider.controller in controllers