Przeglądaj źródła

[oozie] Add oozie examples to shared Doc2 examples directory

Jenny Kim 9 lat temu
rodzic
commit
eb4e9ab

+ 19 - 2
apps/oozie/src/oozie/management/commands/oozie_setup.py

@@ -25,14 +25,14 @@ from django.utils.translation import ugettext as _
 
 from hadoop import cluster
 
-from desktop.models import Document
+from desktop.models import Directory, Document, Document2, Document2Permission
 from liboozie.submittion import create_directories
 from oozie.conf import LOCAL_SAMPLE_DATA_DIR, LOCAL_SAMPLE_DIR, REMOTE_SAMPLE_DIR, ENABLE_V2
 from oozie.models import Workflow, Coordinator, Bundle
 from oozie.importlib.workflows import import_workflow_root
 from oozie.importlib.coordinators import import_coordinator_root
 from oozie.importlib.bundles import import_bundle_root
-from useradmin.models import install_sample_user
+from useradmin.models import get_default_user_group, install_sample_user
 
 
 LOG = logging.getLogger(__name__)
@@ -137,6 +137,23 @@ class Command(NoArgsCommand):
     if ENABLE_V2.get():
       management.call_command('loaddata', 'initial_oozie_examples.json', verbosity=2)
 
+    # Get or create sample user directories
+    home_dir = Directory.objects.get_home_directory(self.user)
+    examples_dir, created = Directory.objects.get_or_create(
+      parent_directory=home_dir,
+      owner=self.user,
+      name=Document2.EXAMPLES_DIR
+    )
+
+    # Share oozie examples with default group
+    oozie_examples = Document2.objects.filter(
+      type__in=['oozie-workflow2', 'oozie-coordinator2', 'oozie-bundle2'],
+      owner=self.user,
+      parent_directory=None
+    )
+    oozie_examples.update(parent_directory=examples_dir)
+    examples_dir.share(self.user, Document2Permission.READ_PERM, groups=[get_default_user_group()])
+
     self.install_examples()
 
     Document.objects.sync()