from nodeconductor.core import NodeConductorExtension


class OpenStackTenantExtension(NodeConductorExtension):

    @staticmethod
    def django_app():
        return 'nodeconductor_openstack.openstack_tenant'

    @staticmethod
    def rest_urls():
        from .urls import register_in
        return register_in

    @staticmethod
    def celery_tasks():
        from datetime import timedelta
        return {
            'openstacktenant-pull-resources': {
                'task': 'openstack_tenant.PullResources',
                'schedule': timedelta(minutes=30),
                'args': (),
            },
            'openstacktenant-schedule-backups': {
                'task': 'openstack_tenant.ScheduleBackups',
                'schedule': timedelta(minutes=10),
                'args': (),
            },
            'openstacktenant-delete-expired-backups': {
                'task': 'openstack_tenant.DeleteExpiredBackups',
                'schedule': timedelta(minutes=10),
                'args': (),
            },
        }

@@ -106,16 +106,268 @@
 sion):%0A%0A
+    class Settings:%0A        NODECONDUCTOR_OPENSTACK_TENANT = %7B%0A            'MAX_CONCURRENT_PROVISION': %7B%0A                'OpenStack.Instance': 4,%0A                'OpenStack.Volume': 4,%0A                'OpenStack.Snapshot': 4,%0A            %7D,%0A        %7D%0A%0A
     @sta
@@ -1267,30 +1267,250 @@
  (),%0A            %7D,%0A
+            'openstacktenant-set-erred-stuck-resources': %7B%0A                'task': 'openstack_tenant.SetErredStuckResources',%0A                'schedule': timedelta(minutes=10),%0A                'args': (),%0A            %7D,%0A
         %7D%0A

Fix openstack_tenant extension.py