def test_write_gui_config_insecure(self): write_gui_config( False, 'This is login help.', True, True, self.charmworld_url, self.build_dir, secure=False, config_js_path='config') js_conf = self.files['config'] self.assertIn("socket_url: 'ws://", js_conf) self.assertIn('socket_protocol: "ws"', js_conf)
def start(self, backend): log('Starting Juju GUI.') config = backend.config build_dir = utils.compute_build_dir(config['juju-gui-debug'], config['serve-tests']) # Check if a secure WebSocket client connection is required. secure = config.get('ws-secure') if secure is None: # WebSocket security is not explicitly provided: use secure # WebSocket if the GUI server is running in secure mode. secure = config['secure'] utils.write_gui_config( config['juju-gui-console-enabled'], config.get('login-help'), config['read-only'], config['charmworld-url'], config['charmstore-url'], build_dir, secure=secure, sandbox=config['sandbox'], cached_fonts=config['cached-fonts'], ga_key=config['ga-key'], hide_login_button=config['hide-login-button'], juju_core_version=config.get('juju-core-version'), password=config.get('password'), juju_env_uuid=os.getenv('JUJU_ENV_UUID', None)) # Set up TCP ports. previous_port = backend.prev_config.get('port') current_port = backend.config.get('port') utils.setup_ports(previous_port, current_port)
def start(self, backend): log("Starting Juju GUI.") config = backend.config build_dir = utils.compute_build_dir(config["juju-gui-debug"], config["serve-tests"]) # Check if a secure WebSocket client connection is required. secure = config.get("ws-secure") if secure is None: # WebSocket security is not explicitly provided: use secure # WebSocket if the GUI server is running in secure mode. secure = config["secure"] utils.write_gui_config( config["juju-gui-console-enabled"], config.get("login-help"), config["read-only"], config["charmworld-url"], config["charmstore-url"], build_dir, secure=secure, sandbox=config["sandbox"], cached_fonts=config["cached-fonts"], ga_key=config["ga-key"], hide_login_button=config["hide-login-button"], juju_core_version=config.get("juju-core-version"), password=config.get("password"), juju_env_uuid=os.getenv("JUJU_ENV_UUID", None), ) # Set up TCP ports. previous_port = backend.prev_config.get("port") current_port = backend.config.get("port") utils.setup_ports(previous_port, current_port)
def test_write_gui_config_sandbox(self): write_gui_config( False, 'This is login help.', False, False, self.charmworld_url, self.build_dir, sandbox=True, config_js_path='config') js_conf = self.files['config'] self.assertIn('sandbox: true', js_conf) self.assertIn('user: "******"', js_conf) self.assertIn('password: "******"', js_conf)
def test_write_gui_config_default_go_password(self, mock_legacy_juju): mock_legacy_juju.return_value = False write_gui_config( False, 'This is login help.', True, True, self.charmworld_url, self.build_dir, config_js_path='config', password='******') js_conf = self.files['config'] self.assertIn('user: "******"', js_conf) self.assertIn('password: "******"', js_conf)
def test_write_gui_config_default_sandbox_backend(self, mock_legacy_juju): mock_legacy_juju.return_value = True write_gui_config( False, 'This is login help.', True, True, self.charmworld_url, self.build_dir, config_js_path='config', password='******', sandbox=True) js_conf = self.files['config'] # Because this is sandbox, the apiBackend is always go, even though it # is legacy_juju. self.assertIn('apiBackend: "go"', js_conf)
def test_write_gui_config(self): write_gui_config( False, 'This is login help.', True, True, self.charmworld_url, self.build_dir, config_js_path='config', ga_key='UA-123456') js_conf = self.files['config'] self.assertIn('consoleEnabled: false', js_conf) self.assertIn('user: "******"', js_conf) self.assertIn('password: "******"', js_conf) self.assertIn('login_help: "This is login help."', js_conf) self.assertIn('readOnly: true', js_conf) self.assertIn("socket_url: 'wss://", js_conf) self.assertIn('socket_protocol: "wss"', js_conf) self.assertIn('charmworldURL: "http://charmworld.example.com/"', js_conf) self.assertIn('GA_key: "UA-123456"', js_conf)
def start(self, backend): log("Starting Juju GUI.") config = backend.config build_dir = utils.compute_build_dir(config["juju-gui-debug"], config["serve-tests"]) utils.write_gui_config( config["juju-gui-console-enabled"], config["login-help"], config["read-only"], config["staging"], config["charmworld-url"], build_dir, secure=config["secure"], sandbox=config["sandbox"], ga_key=config["ga-key"], default_viewmode=config["default-viewmode"], show_get_juju_button=config["show-get-juju-button"], password=config.get("password"), ) # Expose the service. open_port(80) open_port(443)
def test_write_gui_config_with_button(self): write_gui_config( False, 'This is login help.', False, False, self.charmworld_url, self.build_dir, sandbox=True, show_get_juju_button=True, config_js_path='config') self.assertIn('showGetJujuButton: true', self.files['config'])
def test_write_gui_config_fullscreen(self): write_gui_config( False, 'This is login help.', False, False, self.charmworld_url, self.build_dir, sandbox=True, default_viewmode='fullscreen', config_js_path='config') self.assertIn('defaultViewmode: "fullscreen"', self.files['config'])