def process_error(self, error):
        """ process synchronization API errors
		"""
        if error == 'ApplicationIsNotRegistered':
            # Application was deleted in ProAdmin - now need to switch scheme to local

            # remove remote settings
            from proadmin_remote_settings import RemoteSettings
            RemoteSettings.delete()

            # unregister current scheme
            ProAdmin.stop_sync()
            ProAdmin.unregister_default_scheme()
    def set_local_scheme(self):
        """ set local scheme
		"""
        if not self.is_admin():
            raise AuthorizationError()

        from proadmin_remote_settings import RemoteSettings
        try:
            if RemoteSettings.get_remote_settings(): RemoteSettings.delete()
        except:
            pass

        import ProAdmin
        ProAdmin.unregister_default_scheme()
Example #3
0
def create_remote_scheme():
    """ insert here creating of application scheme
	"""
    import ProAdmin
    from vdom_remote_api import VDOMService
    from md5 import md5
    from proadmin_remote_sync import RemoteSync

    from proadmin_remote_application_scheme import RemoteApplicationScheme
    from proadmin_db_connection import DbConnection

    from class_remote_settings import RemoteSettings

    # create connection to ProAdmin
    remote = RemoteSettings.get_remote_setting()

    server = remote.server
    login = remote.login
    password = md5(remote.password).hexdigest()
    app_id = '491d4c93-4089-4517-93d3-82326298da44'

    # create ldap connection

    import os

    db_path = application.storage.abs_path('test_db.sqlite')
    if not os.path.exists(application.storage.abs_path('')):
        os.makedirs(application.storage.abs_path(''))
    connection = DbConnection(db_path)

    try:
        service = VDOMService(server, login, password, app_id).open_session()

        # create application scheme
        scheme = RemoteApplicationScheme(application.id, connection)
        scheme.set_sync_service(service)

    except Exception, ex:
        RemoteSettings.delete()
        scheme = create_local_scheme()