Quellcode durchsuchen

HUE-1626 [beeswax] Create home directory of sample user

Romain Rigaux vor 12 Jahren
Ursprung
Commit
4bd6aa1

+ 3 - 15
apps/beeswax/src/beeswax/management/commands/beeswax_install_examples.py

@@ -31,12 +31,11 @@ from beeswax.models import SavedQuery, IMPALA
 from beeswax.design import hql_query
 from beeswax.server import dbms
 from beeswax.server.dbms import get_query_server_config, QueryServerException
+from useradmin.models import install_sample_user
 
 
 LOG = logging.getLogger(__name__)
 
-DEFAULT_INSTALL_USER = 'sample'
-
 
 class InstallException(Exception):
   pass
@@ -49,24 +48,14 @@ class Command(NoArgsCommand):
   def handle_noargs(self, **options):
     """Main entry point to install or re-install examples. May raise InstallException"""
     try:
-      user = self._install_user()
+      user = install_sample_user()
       self._install_tables(user, options['app_name'])
       self._install_queries(user, options['app_name'])
     except Exception, ex:
       LOG.exception(ex)
       raise InstallException(ex)
 
-  def _install_user(self):
-    """
-    Setup the sample user
-    """
-    USERNAME = DEFAULT_INSTALL_USER
-    try:
-      user = User.objects.get(username=USERNAME)
-    except User.DoesNotExist:
-      user = User.objects.create(username=USERNAME, password='!', is_active=False, is_superuser=False, id=1100713, pk=1100713)
-      LOG.info('Installed a user called "%s"' % (USERNAME,))
-    return user
+    Document.objects.sync()
 
   def _install_tables(self, django_user, app_name):
     data_dir = beeswax.conf.LOCAL_EXAMPLES_DATA_DIR.get()
@@ -119,7 +108,6 @@ class SampleTable(object):
   def install(self, django_user):
     self.create(django_user)
     self.load(django_user)
-    Document.objects.sync()
 
   def create(self, django_user):
     """

+ 5 - 8
apps/oozie/src/oozie/management/commands/oozie_setup.py

@@ -26,10 +26,11 @@ from django.utils.translation import ugettext as _
 
 from hadoop import cluster
 
+from desktop.models import Document
+from liboozie.submittion import create_directories
 from oozie.conf import LOCAL_SAMPLE_DATA_DIR, LOCAL_SAMPLE_DIR,\
   REMOTE_SAMPLE_DIR
-from liboozie.submittion import create_directories
-from desktop.models import Document
+from useradmin.models import install_sample_user
 
 
 LOG = logging.getLogger(__name__)
@@ -37,7 +38,7 @@ LOG = logging.getLogger(__name__)
 
 class Command(NoArgsCommand):
   def handle_noargs(self, **options):
-    fs = cluster.get_hdfs()    
+    fs = cluster.get_hdfs()
     create_directories(fs, [REMOTE_SAMPLE_DIR.get()])
     remote_dir = REMOTE_SAMPLE_DIR.get()
 
@@ -57,10 +58,6 @@ class Command(NoArgsCommand):
     fs.do_as_user(fs.DEFAULT_USER, fs.copyFromLocal, local_dir, remote_data_dir)
 
     # Load jobs
-    USERNAME = 'sample'
-    try:
-      sample_user = User.objects.get(username=USERNAME)
-    except User.DoesNotExist:
-      sample_user = User.objects.create(username=USERNAME, password='!', is_active=False, is_superuser=False, id=1100713, pk=1100713)
+    install_sample_user()
     management.call_command('loaddata', 'initial_oozie_examples.json', verbosity=2)
     Document.objects.sync()

+ 4 - 7
apps/pig/src/pig/management/commands/pig_setup.py

@@ -26,10 +26,11 @@ from django.utils.translation import ugettext as _
 
 from hadoop import cluster
 
-from pig.conf import LOCAL_SAMPLE_DIR, REMOTE_SAMPLE_DIR
-from liboozie.submittion import create_directories
 from desktop.lib import paths
 from desktop.models import Document
+from liboozie.submittion import create_directories
+from pig.conf import LOCAL_SAMPLE_DIR, REMOTE_SAMPLE_DIR
+from useradmin.models import install_sample_user
 
 LOG = logging.getLogger(__name__)
 
@@ -56,10 +57,6 @@ class Command(NoArgsCommand):
     fs.do_as_user(fs.DEFAULT_USER, fs.copyFromLocal, local_dir, remote_data_dir)
 
     # Load jobs
-    USERNAME = 'sample'
-    try:
-      sample_user = User.objects.get(username=USERNAME)
-    except User.DoesNotExist:
-      sample_user = User.objects.create(username=USERNAME, password='!', is_active=False, is_superuser=False, id=1100713, pk=1100713)
+    install_sample_user()
     management.call_command('loaddata', 'initial_pig_examples.json', verbosity=2)
     Document.objects.sync()

+ 20 - 0
apps/useradmin/src/useradmin/models.py

@@ -58,6 +58,7 @@ from django.utils.translation import ugettext_lazy as _t
 
 from desktop import appmanager
 from desktop.lib.exceptions_renderable import PopupException
+from hadoop import cluster
 
 import useradmin.conf
 
@@ -274,3 +275,22 @@ def update_app_permissions(**kwargs):
 
 models.signals.post_syncdb.connect(update_app_permissions)
 models.signals.post_syncdb.connect(get_default_user_group)
+
+
+SAMPLE_USERNAME = 'sample'
+
+def install_sample_user():
+  """
+  Setup the de-activated sample user with a certain id. Do not create a user profile.
+  """
+
+  try:
+    user = auth_models.User.objects.get(username=SAMPLE_USERNAME)
+  except auth_models.User.DoesNotExist:
+    user = auth_models.User.objects.create(username=SAMPLE_USERNAME, password='!', is_active=False, is_superuser=False, id=1100713, pk=1100713)
+    LOG.info('Installed a user called "%s"' % (SAMPLE_USERNAME,))
+
+  fs = cluster.get_hdfs()
+  fs.do_as_user(SAMPLE_USERNAME, fs.create_home_dir)
+
+  return user