class HiveConfiguration(object): APP_NAME = 'hive' PROPERTIES = [{ "multiple": True, "defaultValue": [], "value": [], "nice_name": _("Files"), "key": "files", "help_text": _("Add one or more files, jars, or archives to the list of resources."), "type": "hdfs-files" }, { "multiple": True, "defaultValue": [], "value": [], "nice_name": _("Functions"), "key": "functions", "help_text": _("Add one or more registered UDFs (requires function name and fully-qualified class name)."), "type": "functions" }, { "multiple": True, "defaultValue": [], "value": [], "nice_name": _("Settings"), "key": "settings", "help_text": _("Hive and Hadoop configuration properties."), "type": "settings", "options": [config.lower() for config in hive_settings.get()] if is_hive_enabled() and hasattr(hive_settings, 'get') else [] } ]
def get_configuration(self): configuration = {} if self.query_server['server_name'] == 'impala': # Return all configuration settings query = 'SET' results = self.execute_query_statement(query, orientation=TFetchOrientation.FETCH_NEXT, close_operation=True) configuration = dict((row[0], row[1]) for row in results.rows()) else: # For Hive, only return white-listed configurations query = 'SET -v' results = self.execute_query_statement(query, orientation=TFetchOrientation.FETCH_FIRST, max_rows=-1, close_operation=True) config_whitelist = [config.lower() for config in CONFIG_WHITELIST.get()] properties = [(row[0].split('=')[0], row[0].split('=')[1]) for row in results.rows() if '=' in row[0]] configuration = dict((prop, value) for prop, value in properties if prop.lower() in config_whitelist) return configuration
def get_configuration(self): configuration = {} if self.query_server['server_name'] == 'impala': # Return all configuration settings query = 'SET' results = self.execute_query_statement(query, orientation=TFetchOrientation.FETCH_NEXT) configuration = dict((row[0], row[1]) for row in results.rows()) else: # For Hive, only return white-listed configurations query = 'SET -v' results = self.execute_query_statement(query, orientation=TFetchOrientation.FETCH_FIRST) config_whitelist = [config.lower() for config in CONFIG_WHITELIST.get()] properties = [(row[0].split('=')[0], row[0].split('=')[1]) for row in results.rows() if '=' in row[0]] configuration = dict((prop, value) for prop, value in properties if prop.lower() in config_whitelist) return configuration