summaryrefslogtreecommitdiff
path: root/gstudio/xmlrpc/rpc
diff options
context:
space:
mode:
authorNeha shah <shan.akshata@gmail.com>2012-06-07 17:29:39 +0530
committerNeha shah <shan.akshata@gmail.com>2012-06-07 17:29:39 +0530
commita43739bb925f1c7b825ded7da41c728066e39c90 (patch)
treeaa7ac24b42aeb4e737b0193bdc11b27cf26e3d50 /gstudio/xmlrpc/rpc
parent700ee3fdfdeb7a069e44b4fd01d73c106628d310 (diff)
downloadgnowsys-a43739bb925f1c7b825ded7da41c728066e39c90.tar.gz
Init.py functions made convention compliant.Metaweblog functions take input at list.URLs in demo changed to default django-xmlrpc.Bug in Rss feed fixed.setup.py bug fixed
Diffstat (limited to 'gstudio/xmlrpc/rpc')
-rw-r--r--gstudio/xmlrpc/rpc/.gitignore16
-rw-r--r--gstudio/xmlrpc/rpc/LICENSE24
-rw-r--r--gstudio/xmlrpc/rpc/MANIFEST.in3
-rw-r--r--gstudio/xmlrpc/rpc/README.rst36
-rw-r--r--gstudio/xmlrpc/rpc/__init__.py44
-rw-r--r--gstudio/xmlrpc/rpc/decorators.py175
-rw-r--r--gstudio/xmlrpc/rpc/dispatcher.py76
-rw-r--r--gstudio/xmlrpc/rpc/locale/fr/LC_MESSAGES/django.mobin1030 -> 0 bytes
-rw-r--r--gstudio/xmlrpc/rpc/locale/fr/LC_MESSAGES/django.po49
-rw-r--r--gstudio/xmlrpc/rpc/setup.py31
-rw-r--r--gstudio/xmlrpc/rpc/templates/xmlrpc_get.html26
-rw-r--r--gstudio/xmlrpc/rpc/views.py192
12 files changed, 0 insertions, 672 deletions
diff --git a/gstudio/xmlrpc/rpc/.gitignore b/gstudio/xmlrpc/rpc/.gitignore
deleted file mode 100644
index 7b4dcf61..00000000
--- a/gstudio/xmlrpc/rpc/.gitignore
+++ /dev/null
@@ -1,16 +0,0 @@
-*~
-*.pyc
-TODO.txt
-README.html
-bin
-lib
-dist
-eggs
-parts
-build
-include
-downloads
-src_eggs
-develop-eggs
-.installed.cfg
-django_xmlrpc.egg-info/ \ No newline at end of file
diff --git a/gstudio/xmlrpc/rpc/LICENSE b/gstudio/xmlrpc/rpc/LICENSE
deleted file mode 100644
index 8efdc935..00000000
--- a/gstudio/xmlrpc/rpc/LICENSE
+++ /dev/null
@@ -1,24 +0,0 @@
-Copyright (c) 2007-2008, Graham Binns
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the name of this application nor the
- names of its contributors may be used to endorse or promote products
- derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY GRAHAM BINNS ''AS IS'' AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL GRAHAM BINNS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/gstudio/xmlrpc/rpc/MANIFEST.in b/gstudio/xmlrpc/rpc/MANIFEST.in
deleted file mode 100644
index 2f4671ba..00000000
--- a/gstudio/xmlrpc/rpc/MANIFEST.in
+++ /dev/null
@@ -1,3 +0,0 @@
-include README.rst
-recursive-include django_xmlrpc/locale *
-recursive-include django_xmlrpc/templates *.html
diff --git a/gstudio/xmlrpc/rpc/README.rst b/gstudio/xmlrpc/rpc/README.rst
deleted file mode 100644
index bcf4ac0a..00000000
--- a/gstudio/xmlrpc/rpc/README.rst
+++ /dev/null
@@ -1,36 +0,0 @@
-==============
-Django XML-RPC
-==============
-
-django_xmlrpc offers a means by which a Django developer can expose their views (or indeed any other function) using XML-RPC.
-
-This is a fork of the version hosted at : https://code.launchpad.net/~aartemenko/django-xmlrpc/svetlyak40wt compatible with Django > 1.1.
-
-.. contents::
-
-Installation
-============
-
-You could retrieve the last sources from http://github.com/Fantomas42/django-xmlrpc and run the installation script ::
-
- $> python setup.py install
-
-or use pip ::
-
- $> pip install -e git://github.com/Fantomas42/django-xmlrpc.git#egg=django-xmlrpc
-
-Usage
-=====
-
-Register **django_xmlrpc** in your INSTALLED_APPS section of your project' settings.
-
-Then register methods you want to handle like this in your project' settings. ::
-
- >>> XMLRPC_METHODS = (('path.to.your.method', 'Method name'),
- ... ('path.to.your.othermethod', 'Other Method name'),)
-
-Finally we need to register the url of the XML-RPC server.
-Insert something like this in your project's urls.py: ::
-
- >>> url(r'^xmlrpc/$', 'django_xmlrpc.views.handle_xmlrpc', name='xmlrpc'),
-
diff --git a/gstudio/xmlrpc/rpc/__init__.py b/gstudio/xmlrpc/rpc/__init__.py
deleted file mode 100644
index 1d58f713..00000000
--- a/gstudio/xmlrpc/rpc/__init__.py
+++ /dev/null
@@ -1,44 +0,0 @@
-"""__init__ module for the django_xmlrpc package
-
-Authors::
- Graham Binns
- Julien Fache
-
-Credit must go to Brendan W. McAdams <brendan.mcadams@thewintergrp.com>, who
-posted the original SimpleXMLRPCDispatcher to the Django wiki:
-http://code.djangoproject.com/wiki/XML-RPC
-
-New BSD License
-===============
-Copyright (c) 2007, Graham Binns http://launchpad.net/~codedragon
-
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
- * Neither the name of the <ORGANIZATION> nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-"""
-VERSION = (0, 1, 1)
-__version__ = '.'.join(map(str, VERSION))
-
-from views import xmlrpcdispatcher
diff --git a/gstudio/xmlrpc/rpc/decorators.py b/gstudio/xmlrpc/rpc/decorators.py
deleted file mode 100644
index 4218a4fd..00000000
--- a/gstudio/xmlrpc/rpc/decorators.py
+++ /dev/null
@@ -1,175 +0,0 @@
-"""Offers decorators to make the use of django_xmlrpc a great deal simpler
-
-Authors::
- Graham Binns,
- Reza Mohammadi
-
-Credit must go to Brendan W. McAdams <brendan.mcadams@thewintergrp.com>, who
-posted the original SimpleXMLRPCDispatcher to the Django wiki:
-http://code.djangoproject.com/wiki/XML-RPC
-
-New BSD License
-===============
-Copyright (c) 2007, Graham Binns http://launchpad.net/~codedragon
-
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
- * Neither the name of the <ORGANIZATION> nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-"""
-from xmlrpclib import Fault
-from django.contrib.auth import authenticate
-from django.utils.translation import gettext as _
-
-
-# Some constants for your pleasure
-#XXX: Any standardization?
-AUTHENTICATION_FAILED_CODE = 81
-PERMISSION_DENIED_CODE = 82
-
-
-class AuthenticationFailedException(Fault):
- """An XML-RPC fault to be raised when a permission_required authentication
- check fails
-
- Author
- """
- def __init__(self):
- Fault.__init__(self, AUTHENTICATION_FAILED_CODE,
- _('Username and/or password is incorrect'))
-
-
-class PermissionDeniedException(Fault):
- """An XML-RPC fault to be raised when a permission_required permission
- check fails
- """
- def __init__(self):
- Fault.__init__(self, PERMISSION_DENIED_CODE, _('Permission denied'))
-
-
-def xmlrpc_method(returns='string', args=None, name=None):
- """Adds a signature to an XML-RPC function and register
- it with the dispatcher.
-
- returns
- The return type of the function. This can either be a string
- description (e.g. 'string') or a type (e.g. str, bool) etc.
-
- args
- A list of the types of the arguments that the function accepts. These
- can be strings or types or a mixture of the two e.g.
- [str, bool, 'string']
- """
- # Args should be a list
- if args is None:
- args = []
-
- def _xmlrpc_func(func):
- """Inner function for XML-RPC method decoration. Adds a signature to
- the method passed to it.
-
- func
- The function to add the signature to
- """
- # If name is not None, register the method with the dispatcher.
- from django_xmlrpc.views import xmlrpcdispatcher
- if name is not None:
- xmlrpcdispatcher.register_function(func, name)
-
- # Add a signature to the function
- func._xmlrpc_signature = {
- 'returns': returns,
- 'args': args
- }
- return func
-
- return _xmlrpc_func
-
-xmlrpc_func = xmlrpc_method
-
-
-# Don't use this decorator when your service is going to be
-# available in an unencrpted/untrusted network.
-# Configure HTTPS transport for your web server.
-def permission_required(perm=None):
- """Decorator for authentication. Uses Django's built in authentication
- framework to provide authenticated-only and permission-related access
- to XML-RPC methods
-
- perm
- The permission (as a string) that the user must hold to be able to
- call the function that is decorated with permission_required.
- """
- def _dec(func):
- """An inner decorator. Adds the lookup code for the permission passed
- in the outer method to the function passed to it.
-
- func
- The function to add the permission check to
- """
- def __authenticated_call(username, password, *args):
- """Inner inner decorator. Adds username and password parameters to
- a given XML-RPC function for authentication and permission
- checking purposes and modifies the method signature appropriately
-
- username
- The username used for authentication
-
- password
- The password used for authentication
- """
- try:
- user = authenticate(username=username, password=password)
- if not user:
- raise AuthenticationFailedException
- if perm and not user.has_perm(perm):
- raise PermissionDeniedException
- except AuthenticationFailedException:
- raise
- except PermissionDeniedException:
- raise
- except:
- raise AuthenticationFailedException
- return func(user, *args)
-
- # Update the function's XML-RPC signature, if the method has one
- if hasattr(func, '_xmlrpc_signature'):
- sig = func._xmlrpc_signature
-
- # We just stick two string args on the front of sign['args'] to
- # represent username and password
- sig['args'] = (['string'] * 2) + sig['args']
- __authenticated_call._xmlrpc_signature = sig
-
- # Update the function's docstring
- if func.__doc__:
- __authenticated_call.__doc__ = func.__doc__ + \
- "\nNote: Authentication is required."""
- if perm:
- __authenticated_call.__doc__ += ' this function requires ' \
- + '"%s" permission.' % perm
-
- return __authenticated_call
-
- return _dec
diff --git a/gstudio/xmlrpc/rpc/dispatcher.py b/gstudio/xmlrpc/rpc/dispatcher.py
deleted file mode 100644
index f4014578..00000000
--- a/gstudio/xmlrpc/rpc/dispatcher.py
+++ /dev/null
@@ -1,76 +0,0 @@
-"""Offers a simple XML-RPC dispatcher for django_xmlrpc
-
-Author::
- Graham Binns
-
-Credit must go to Brendan W. McAdams <brendan.mcadams@thewintergrp.com>, who
-posted the original SimpleXMLRPCDispatcher to the Django wiki:
-http://code.djangoproject.com/wiki/XML-RPC
-
-New BSD License
-===============
-Copyright (c) 2007, Graham Binns http://launchpad.net/~codedragon
-
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
- * Neither the name of the <ORGANIZATION> nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-"""
-from inspect import getargspec
-from SimpleXMLRPCServer import SimpleXMLRPCDispatcher
-from django.conf import settings
-
-
-# If we need to debug, now we know
-DEBUG = hasattr(settings, 'XMLRPC_DEBUG') and settings.XMLRPC_DEBUG
-
-
-class DjangoXMLRPCDispatcher(SimpleXMLRPCDispatcher):
- """A simple XML-RPC dispatcher for Django.
-
- Subclassess SimpleXMLRPCServer.SimpleXMLRPCDispatcher for the purpose of
- overriding certain built-in methods (it's nicer than monkey-patching them,
- that's for sure).
- """
-
- def system_methodSignature(self, method):
- """Returns the signature details for a specified method
-
- method
- The name of the XML-RPC method to get the details for
- """
- # See if we can find the method in our funcs dict
- # TODO: Handle this better: We really should return something more
- # formal than an AttributeError
- func = self.funcs[method]
-
- try:
- sig = func._xmlrpc_signature
- except:
- sig = {
- 'returns': 'string',
- 'args': ['string' for arg in getargspec(func)[0]],
- }
-
- return [sig['returns']] + sig['args']
diff --git a/gstudio/xmlrpc/rpc/locale/fr/LC_MESSAGES/django.mo b/gstudio/xmlrpc/rpc/locale/fr/LC_MESSAGES/django.mo
deleted file mode 100644
index 06035ed2..00000000
--- a/gstudio/xmlrpc/rpc/locale/fr/LC_MESSAGES/django.mo
+++ /dev/null
Binary files differ
diff --git a/gstudio/xmlrpc/rpc/locale/fr/LC_MESSAGES/django.po b/gstudio/xmlrpc/rpc/locale/fr/LC_MESSAGES/django.po
deleted file mode 100644
index 091e086f..00000000
--- a/gstudio/xmlrpc/rpc/locale/fr/LC_MESSAGES/django.po
+++ /dev/null
@@ -1,49 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: django-xmlrpc\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-07-31 15:33+0200\n"
-"PO-Revision-Date: 2010-07-31 15:50+0100\n"
-"Last-Translator: Fantomas <Fantomas42@gmail.com>\n"
-"Language-Team: Fantomas42 <fantomas42@gmail.com>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-Language: French\n"
-"X-Poedit-Country: FRANCE\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-#: decorators.py:60
-msgid "Username and/or password is incorrect"
-msgstr "Nom d'utilisateur et/ou mot de passe incorrect"
-
-#: decorators.py:68
-msgid "Permission denied"
-msgstr "Permission refusée"
-
-#: templates/xmlrpc_get.html:4
-#: templates/xmlrpc_get.html.py:7
-msgid "XML-RPC Service"
-msgstr "Service XML-RPC"
-
-#: templates/xmlrpc_get.html:9
-msgid "You need to invoke this service using an XML-RPC Client."
-msgstr "Vous devez invoquer ce service en utilisant un client XML-RPC."
-
-#: templates/xmlrpc_get.html:11
-msgid "The following methods are available :"
-msgstr "Les méthodes suivantes sont disponibles :"
-
-#: templates/xmlrpc_get.html:17
-msgid "Types of argument"
-msgstr "Types d'argument"
-
-#: templates/xmlrpc_get.html:19
-msgid "Type of return"
-msgstr "Type de retour"
-
diff --git a/gstudio/xmlrpc/rpc/setup.py b/gstudio/xmlrpc/rpc/setup.py
deleted file mode 100644
index 10b4b920..00000000
--- a/gstudio/xmlrpc/rpc/setup.py
+++ /dev/null
@@ -1,31 +0,0 @@
-import os
-from setuptools import setup, find_packages
-
-setup(name = 'django-xmlrpc',
- version = '0.1.4',
-
- description = 'XML-RPC Server App for the Django framework.',
- long_description=open(os.path.join('README.rst')).read(),
- keywords = 'django, service, xmlrpc',
-
- author = 'Graham Binns',
- author_email = 'graham.binns@gmail.com',
- maintainer = 'Fantomas42',
- maintainer_email = 'fantomas42@gmail.com',
- url = 'http://github.com/Fantomas42/django-xmlrpc',
-
- packages = find_packages(),
- classifiers=[
- 'Framework :: Django',
- 'Development Status :: 5 - Production/Stable',
- 'Environment :: Web Environment',
- 'Programming Language :: Python',
- 'Intended Audience :: Developers',
- 'Operating System :: OS Independent',
- 'Topic :: Software Development :: Libraries :: Python Modules',],
-
- license = 'New BSD License',
- include_package_data = True,
- zip_safe=False
- )
-
diff --git a/gstudio/xmlrpc/rpc/templates/xmlrpc_get.html b/gstudio/xmlrpc/rpc/templates/xmlrpc_get.html
deleted file mode 100644
index 4c9fdfc6..00000000
--- a/gstudio/xmlrpc/rpc/templates/xmlrpc_get.html
+++ /dev/null
@@ -1,26 +0,0 @@
-{% extends "admin/base_site.html" %}
-{% load i18n %}
-
-{% block title %}{% trans "XML-RPC Service" %}{% endblock %}
-
-{% block content %}
-<h2>{% trans "XML-RPC Service" %}</h2>
-
-<p>{% trans "You need to invoke this service using an XML-RPC Client." %}</p>
-
-<h3>{% trans "The following methods are available :" %}</h3>
-
-{% for m in methods %}
-<div class="functions">
- <h4>{{ m.0 }}</h4>
- <div class="function_desc">
- <strong>{% trans "Types of argument" %}{{ m.1.args|length|pluralize }} :</strong> {{ m.1.args }}
- <br />
- <strong>{% trans "Type of return" %} :</strong> {{ m.1.returns }}
- <br />
- <pre class="function_doc">{{ m.2 }}</pre>
- </div>
-</div>
-{% endfor %}
-{% endblock %}
-
diff --git a/gstudio/xmlrpc/rpc/views.py b/gstudio/xmlrpc/rpc/views.py
deleted file mode 100644
index 1edfa37e..00000000
--- a/gstudio/xmlrpc/rpc/views.py
+++ /dev/null
@@ -1,192 +0,0 @@
-"""Uses SimpleXMLRPCServer's SimpleXMLRPCDispatcher to serve XML-RPC requests
-
-Authors::
- Graham Binns
- Reza Mohammadi
- Julien Fache
-
-Credit must go to Brendan W. McAdams <brendan.mcadams@thewintergrp.com>, who
-posted the original SimpleXMLRPCDispatcher to the Django wiki:
-http://code.djangoproject.com/wiki/XML-RPC
-
-New BSD License
-===============
-Copyright (c) 2007, Graham Binns http://launchpad.net/~codedragon
-
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
- * Neither the name of the <ORGANIZATION> nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-"""
-import sys
-
-import django
-from django.conf import settings
-from django.template import RequestContext
-from django.shortcuts import render_to_response
-from django.core.exceptions import ImproperlyConfigured
-from django.http import HttpResponse, HttpResponseServerError
-from gstudio.xmlrpc.metaweblog import *
-from django.utils.datastructures import SortedDict
-try:
- from django.views.decorators.csrf import csrf_exempt
-except ImportError:
- from django.contrib.csrf.middleware import csrf_exempt
-
-from dispatcher import DjangoXMLRPCDispatcher
-from decorators import xmlrpc_func
-
-
-# We create a local DEBUG variable from the data in settings.
-DEBUG = hasattr(settings, 'XMLRPC_DEBUG') and settings.XMLRPC_DEBUG
-
-# Declare xmlrpcdispatcher correctly depending on our python version
-if sys.version_info[:3] >= (2, 5,):
- xmlrpcdispatcher = DjangoXMLRPCDispatcher(allow_none=True, encoding=None)
-else:
- xmlrpcdispatcher = DjangoXMLRPCDispatcher()
-
-
-def request_datas(request):
- if django.VERSION[1] > 3:
- return request.body
- return request.raw_post_data
-
-
-@xmlrpc_func(returns='string', args=['string'])
-def test_xmlrpc(text):
- """Simply returns the args passed to it as a string"""
- return "Here's a response! %s" % str(text)
-
-
-@csrf_exempt
-def handle_xmlrpc(request):
- """Handles XML-RPC requests. All XML-RPC calls should be forwarded here
-
- request
- The HttpRequest object that carries the XML-RPC call. If this is a
- GET request, nothing will happen (we only accept POST requests)
- """
- if request.method == "POST":
- if DEBUG:
- print request_datas(request)
- try:
- response = HttpResponse(content_type='text/xml')
- response.write(
- xmlrpcdispatcher._marshaled_dispatch(request_datas(request)))
- if DEBUG:
- print response
- return response
- except:
- return HttpResponseServerError()
- else:
- methods = xmlrpcdispatcher.system_listMethods()
- method_list = []
-
- for method in methods:
- sig_ = xmlrpcdispatcher.system_methodSignature(method)
- sig = {
- 'returns': sig_[0],
- 'args': ", ".join(sig_[1:]),
- }
-
- # this just reads your docblock, so fill it in!
- method_help = xmlrpcdispatcher.system_methodHelp(method)
-
- method_list.append((method, sig, method_help))
-
- if hasattr(settings, 'XMLRPC_GET_TEMPLATE'):
- # This behaviour is deprecated
- if settings.DEBUG:
- print "Use of settings.XMLRPC_GET_TEMPLATE is deprecated " \
- + "Please update your code to use django_xmlrpc/templates"
- template = settings.XMLRPC_GET_TEMPLATE
- else:
- template = 'xmlrpc_get.html'
- return render_to_response(template, {'methods': method_list},
- context_instance=RequestContext(request))
-
-
-# Load up any methods that have been registered with the server in settings
-if hasattr(settings, 'XMLRPC_METHODS'):
- for path, name in settings.XMLRPC_METHODS:
- # if "path" is actually a function, just add it without fuss
- if callable(path):
- xmlrpcdispatcher.register_function(path, name)
- continue
-
- # Otherwise we try and find something that we can call
- i = path.rfind('.')
- module, attr = path[:i], path[i + 1:]
-
- try:
- mod = __import__(module, globals(), locals(), [attr])
- except ImportError, ex:
- raise ImproperlyConfigured("Error registering XML-RPC method: " \
- + "module %s can't be imported" % module)
-
- try:
- func = getattr(mod, attr)
- except AttributeError:
- raise ImproperlyConfigured('Error registering XML-RPC method: ' \
- + 'module %s doesn\'t define a method "%s"' % (module, attr))
-
- if not callable(func):
- raise ImproperlyConfigured('Error registering XML-RPC method: ' \
- + '"%s" is not callable in module %s' % (attr, module))
-
- #xmlrpcdispatcher.register_function(func, name)
- xmlrpcdispatcher.register_function(getNodetype,'getNodetype')
- xmlrpcdispatcher.register_function(nidExists,'nidExists')
- xmlrpcdispatcher.register_function(getinfoFromSSID,'getinfoFromSSID')
- xmlrpcdispatcher.register_function(getNeighbourhood,'getNeighbourhood')
- xmlrpcdispatcher.register_function(get_nbh,'get_nbh')
- xmlrpcdispatcher.register_function(getAll,'getAll')
- xmlrpcdispatcher.register_function(getDatatype,'getDatatype')
- xmlrpcdispatcher.register_function(getAttributevalues,'getAttributevalues')
- xmlrpcdispatcher.register_function(getSubjecttypes,'getSubjecttypes')
- xmlrpcdispatcher.register_function(getAttributeType,'getAttributeType')
- xmlrpcdispatcher.register_function(getRoles,'getRoles')
- xmlrpcdispatcher.register_function(getSubtypes,'getSubtypes')
- xmlrpcdispatcher.register_function(getAllSubtypes,'getAllSubtypes')
- xmlrpcdispatcher.register_function(getRestrictions,'getRestrictions')
- xmlrpcdispatcher.register_function(getlatestSSID,'getlatestSSID')
- xmlrpcdispatcher.register_function(getAllSnapshots,'getAllSnapshots')
- xmlrpcdispatcher.register_function(setAttributetype,'setAttributetype')
- xmlrpcdispatcher.register_function(setRelationtype,'setRelationtype')
- xmlrpcdispatcher.register_function(setObjecttype,'setObjecttype')
- xmlrpcdispatcher.register_function(setObject,'setObject')
- xmlrpcdispatcher.register_function(setAttribute,'setAttribute')
- xmlrpcdispatcher.register_function(setRelation,'setRelation')
- xmlrpcdispatcher.register_function(getGbobjectNeighbourhood,'getGbobjectNeighbourhood')
-
-
-
-
-
-
-# Finally, register the introspection and multicall methods with the XML-RPC
-# namespace
-xmlrpcdispatcher.register_introspection_functions()
-xmlrpcdispatcher.register_multicall_functions()