Эх сурвалжийг харах

HUE-9369 [editor] Adding Airline sample queries

Only available via automated setup via their `auto_load_only`.
Could be added in the future to the manual installs, but we should
also add their table creation.
Romain 5 жил өмнө
parent
commit
332fa7c0cd

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 9 - 0
apps/beeswax/data/queries.json


+ 14 - 9
apps/beeswax/src/beeswax/management/commands/beeswax_install_examples.py

@@ -56,6 +56,8 @@ class Command(BaseCommand):
       db_name = args[1] if len(args) > 1 else 'default'
       user = User.objects.get(username=pwd.getpwuid(os.getuid()).pw_name)
       request = None
+      self.queries = None
+      self.tables = None
     else:
       dialect = options['dialect']
       db_name = options.get('db_name', 'default')
@@ -128,20 +130,23 @@ class Command(BaseCommand):
     design_list = [d for d in design_list if int(d['type']) == app_type]
     if app_type == RDBMS:
       design_list = [d for d in design_list if dialect in d['dialects']]
+    if self.queries is None:  # Manual install
+      design_list = [d for d in design_list if not d.get('auto_load_only')]
+    if self.queries:  # Automated install
+      design_list = [d for d in design_list if d['name'] in self.queries]
 
     if not design_list:
       raise InstallException(_('No %s queries are available as samples') % dialect)
 
     for design_dict in design_list:
-      if self.queries is None or design_dict['name'] in self.queries:
-        design = SampleQuery(design_dict)
-        try:
-          design.install(django_user, interpreter=interpreter)
-          self.successes.append(_('Query %s %s installed.') % (design_dict['name'], dialect))
-        except Exception as ex:
-          msg = str(ex)
-          LOG.error(msg)
-          self.errors.append(_('Could not install %s query: %s') % (dialect, msg))
+      design = SampleQuery(design_dict)
+      try:
+        design.install(django_user, interpreter=interpreter)
+        self.successes.append(_('Query %s %s installed.') % (design_dict['name'], dialect))
+      except Exception as ex:
+        msg = str(ex)
+        LOG.error(msg)
+        self.errors.append(_('Could not install %s query: %s') % (dialect, msg))
 
 
 class SampleTable(object):

+ 1 - 1
desktop/libs/notebook/src/notebook/models.py

@@ -675,7 +675,7 @@ def install_custom_examples():
           tables=tables,
           request=None
       )
-      LOG.info('Dialect %(dialect)s: %(successes)s, %(errors)s,' % {
+      LOG.info('Dialect %(dialect)s installed samples: %(successes)s, %(errors)s,' % {
         'dialect': dialect,
         'successes': successes,
         'errors': errors,

+ 32 - 31
desktop/libs/notebook/src/notebook/models_tests.py

@@ -47,41 +47,42 @@ class TestInstallCustomExamples():
 
 
   def test_install_only_hive_queries(self):
-    f = EXAMPLES.AUTO_LOAD.set_for_testing(True)
+    finish = [
+      EXAMPLES.AUTO_LOAD.set_for_testing(True),
+      EXAMPLES.QUERIES.set_for_testing(['Sample: Top salary', 'Queries Does not Exist'])
+    ]
 
     try:
       with patch('notebook.models.get_ordered_interpreters') as get_ordered_interpreters:
-        with patch('notebook.models.EXAMPLES.QUERIES.get') as QUERIES:
-
-          QUERIES.return_value = ['Sample: Top salary', 'Queries Does not Exist']
-
-          get_ordered_interpreters.return_value = [
-            {
-              'name': 'Hive',
-              'type': 11,
-              'dialect': 'hive',
-              'interface': 'hiveserver2',
-            },
-            {
-              'name': 'MySql',
-              'type': 10,
-              'dialect': 'mysql',
-              'interface': 'sqlalchemy',
-            }
-          ]
-
-          result = install_custom_examples()
-
-          assert_equal(1, len(result))
-          successes, errors = result[0]
-
-          assert_equal([], errors)
-          assert_equal(
-              ['Query Sample: Top salary hive installed.'],
-              successes,
-          )
+
+        get_ordered_interpreters.return_value = [
+          {
+            'name': 'Hive',
+            'type': 11,
+            'dialect': 'hive',
+            'interface': 'hiveserver2',
+          },
+          {
+            'name': 'MySql',
+            'type': 10,
+            'dialect': 'mysql',
+            'interface': 'sqlalchemy',
+          }
+        ]
+
+        result = install_custom_examples()
+
+        assert_equal(1, len(result))
+        successes, errors = result[0]
+
+        assert_equal([], errors)
+        assert_equal(
+            ['Query Sample: Top salary hive installed.'],
+            successes,
+        )
     finally:
-      f()
+      for f in finish:
+        f()
 
 
   def test_install_auto_load_disabled(self):

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно