Add an init API function to force the reload of the root intra-extension. 77/3477/1
authorasteroide <thomas.duval@orange.com>
Fri, 20 Nov 2015 14:38:46 +0000 (15:38 +0100)
committerasteroide <thomas.duval@orange.com>
Fri, 20 Nov 2015 14:38:46 +0000 (15:38 +0100)
Change-Id: Ieee84a30cbd1ee0a5d4ca3359b7f5afbc39afffc

keystone-moon/keystone/contrib/moon/controllers.py
keystone-moon/keystone/contrib/moon/routers.py
moonclient/moonclient/intraextension.py
moonclient/setup.py

index 58e62a2..84e27fa 100644 (file)
@@ -208,6 +208,10 @@ class IntraExtensions(controller.V3Controller):
         intra_extension_dict['description'] = kw.get('intra_extension_description', None)
         return self.admin_api.set_intra_extension_dict(user_id, intra_extension_id, intra_extension_dict)
 
+    @controller.protected()
+    def load_root_intra_extension(self, context, **kw):
+        self.admin_api.load_root_intra_extension_dict()
+
     # Metadata functions
     @controller.protected()
     def get_subject_categories(self, context, **kw):
index 357ae06..fd1c0ad 100644 (file)
@@ -87,6 +87,12 @@ class Routers(wsgi.V3ExtensionRouter):
             })
 
         # IntraExtensions/Admin route
+        self._add_resource(
+            mapper, intra_ext_controller,
+            path=self.PATH_PREFIX+'/intra_extensions/init',
+            get_action='load_root_intra_extension',
+            rel=self._get_rel('intra_extensions'),
+            path_vars={})
         self._add_resource(
             mapper, intra_ext_controller,
             path=self.PATH_PREFIX+'/intra_extensions',
index 569a99f..24286dd 100644 (file)
@@ -110,6 +110,21 @@ class IntraExtensionDelete(Command):
                          authtoken=True)
 
 
+class IntraExtensionInit(Command):
+    """Initialize the root Intra_Extension (if needed)."""
+
+    log = logging.getLogger(__name__)
+
+    def get_parser(self, prog_name):
+        parser = super(IntraExtensionInit, self).get_parser(prog_name)
+        return parser
+
+    def take_action(self, parsed_args):
+        self.app.get_url("/v3/OS-MOON/intra_extensions/init",
+                         method="GET",
+                         authtoken=True)
+
+
 class IntraExtensionShow(ShowOne):
     """Show detail about one Intra_Extension."""
 
index e048bf9..71ea704 100644 (file)
@@ -73,6 +73,7 @@ setup(
             'intraextension_list = moonclient.intraextension:IntraExtensionList',
             'intraextension_delete = moonclient.intraextension:IntraExtensionDelete',
             'intraextension_show = moonclient.intraextension:IntraExtensionShow',
+            'intraextension_init = moonclient.intraextension:IntraExtensionInit',
 
             'subject_list = moonclient.subjects:SubjectsList',
             'subject_add = moonclient.subjects:SubjectsAdd',