Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'render_renderfarmfi/rpc.py')
-rw-r--r--render_renderfarmfi/rpc.py198
1 files changed, 0 insertions, 198 deletions
diff --git a/render_renderfarmfi/rpc.py b/render_renderfarmfi/rpc.py
deleted file mode 100644
index bb5d6a45..00000000
--- a/render_renderfarmfi/rpc.py
+++ /dev/null
@@ -1,198 +0,0 @@
-# ##### BEGIN GPL LICENSE BLOCK #####
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# ##### END GPL LICENSE BLOCK #####
-
-import xmlrpc.client
-import imp
-import time
-import bpy
-
-from .exceptions import LoginFailedException, SessionCancelFailedException, \
- GetSessionsFailedException
-from .utils import _read_credentials, _xmlsessions_to_oresessions, \
- update_complete_session_list
-
-def _is_dev():
- is_dev = False
- pwfile = bpy.utils.user_resource('CONFIG', 'rffi', True)
- pwmod = None
- try:
- pwmod = imp.find_module('rffi_dev',[pwfile])
- try:
- user_creds = imp.load_module('rffi_dev', pwmod[0], pwmod[1], pwmod[2])
- if 'dev' in dir(user_creds) and user_creds.dev:
- is_dev = True
- except ImportError:
- is_dev = False
- finally:
- if pwmod and pwmod[0]: pwmod[0].close()
- except ImportError:
- is_dev = False
- finally:
- if pwmod and pwmod[0]: pwmod[0].close()
-
- return is_dev
-
-def _be_verbose():
- be_verbose = False
- pwfile = bpy.utils.user_resource('CONFIG', 'rffi', True)
- pwmod = None
- try:
- pwmod = imp.find_module('rffi_dev',[pwfile])
- try:
- user_creds = imp.load_module('rffi_dev', pwmod[0], pwmod[1], pwmod[2])
- if 'verbose' in dir(user_creds) and user_creds.verbose:
- be_verbose = True
- except ImportError:
- be_verbose = False
- finally:
- if pwmod and pwmod[0]: pwmod[0].close()
- except ImportError:
- be_verbose = False
- finally:
- if pwmod and pwmod[0]: pwmod[0].close()
-
- return be_verbose
-
-RFFI_DEV = _is_dev()
-RFFI_VERBOSE = _be_verbose()
-
-if RFFI_DEV:
- print("DEVELOPER MODE")
- rffi_xmlrpc_secure = r'http://renderfarm.server/burp/xmlrpc'
- rffi_xmlrpc = r'http://renderfarm.server/burp/xmlrpc'
- rffi_xmlrpc_upload = 'renderfarm.server'
-else:
- rffi_xmlrpc_secure = r'http://xmlrpc.renderfarm.fi/burp/xmlrpc'
- rffi_xmlrpc = r'http://xmlrpc.renderfarm.fi/burp/xmlrpc'
- rffi_xmlrpc_upload = 'xmlrpc.renderfarm.fi'
-
-
-def _get_proxy():
- proxy = xmlrpc.client.ServerProxy(rffi_xmlrpc, verbose=RFFI_VERBOSE)
- return proxy
-
-def _get_secure_proxy():
- proxy = xmlrpc.client.ServerProxy(rffi_xmlrpc_secure, verbose=RFFI_VERBOSE)
- return proxy
-
-def _do_refresh(op, rethrow=False, print_errors=True):
- sce = bpy.context.scene
- ore = sce.ore_render
-
- if _read_credentials():
- try:
- bpy.ore_sessions = []
- bpy.ore_pending_sessions = []
- bpy.ore_active_sessions = []
- bpy.ore_completed_sessions = []
- bpy.ore_cancelled_sessions = []
- update_complete_session_list(ore)
-
- res = rffi.login(op, True, print_errors)
- userid = res['userID']
-
- sessions = rffi.get_sessions(userid, 'accept', 0, 100, 'full')
- bpy.ore_sessions = _xmlsessions_to_oresessions(sessions, stage='Pending')
- bpy.ore_pending_sessions = bpy.ore_sessions
-
- sessions = rffi.get_sessions(userid, 'completed', 0, 100, 'full')
- bpy.ore_sessions = _xmlsessions_to_oresessions(sessions, stage='Completed')
- bpy.ore_completed_sessions = bpy.ore_sessions
-
- sessions = rffi.get_sessions(userid, 'cancelled', 0, 100, 'full')
- bpy.ore_sessions = _xmlsessions_to_oresessions(sessions, stage='Cancelled')
- bpy.ore_cancelled_sessions = bpy.ore_sessions
-
- sessions = rffi.get_sessions(userid, 'render', 0, 100, 'full')
- bpy.ore_sessions = _xmlsessions_to_oresessions(sessions, stage='Rendering')
- bpy.ore_active_sessions = bpy.ore_sessions
-
- update_complete_session_list(ore)
-
- return 0
- except LoginFailedException as lfe:
- if print_errors: print("_do_refresh login failed", lfe)
- if rethrow:
- raise lfe
- return 1
- else:
- return 1
-
-
-class RffiRpc(object):
- def __init__(self):
- self.proxy = _get_proxy()
- self.sproxy = _get_secure_proxy()
- self.res = None
-
- def login(self, op, rethrow=False, print_errors=True):
- self.res = None
-
- if bpy.rffi_user=='':
- raise LoginFailedException("No email address given")
-
- if bpy.rffi_hash=='':
- raise LoginFailedException("No password given")
-
- try:
- self.res = self.sproxy.auth.getSessionKey(bpy.rffi_user, bpy.rffi_hash)
- except xmlrpc.client.Error as v:
- if op: op.report({'WARNING'}, "Error at login : " + str(type(v)) + " -> " + str(v.faultCode) + ": " + v.faultString)
- if print_errors: print("Error at login: ",v)
- if rethrow:
- vstr = str(v)
- if "Failed to invoke method getSessionKey" in vstr:
- raise LoginFailedException('User '+bpy.rffi_user+' doesn\'t exist')
- raise LoginFailedException(v.faultString)
- return None
- except Exception as v:
- if op: op.report({'WARNING'}, "Non XMLRPC Error at login: " + str(v))
- if print_errors: print(v)
- if rethrow:
- raise LoginFailedException(str(v))
- return None
- return self.res
-
- def get_sessions(self, user, queue, start, end, level):
- try:
- sessions = self.proxy.session.getSessions(user, queue, start, end, level)
- except xmlrpc.client.Error as v:
- raise GetSessionsFailedException(str(v))
- return sessions
-
- def cancel_session(self, op, session):
- res = self.login(op)
- if res:
- try:
- key = res['key']
- userid = res['userId']
- res = self.proxy.session.cancelSession(userid, key, session.id)
- _do_refresh(op, True)
- op.report({'INFO'}, 'Session ' + session.title + ' with id ' + str(session.id) + ' cancelled')
- except xmlrpc.client.Error as v:
- op.report({'ERROR'}, 'Could not cancel session ' + session.title + ' with id ' + str(session.id))
- bpy.cancelError = True
- bpy.errorStartTime = time.time()
- raise SessionCancelFailedException(str(v))
-
- def check_status(self):
- res = self.proxy.service.motd()
- bpy.rffi_accepting = res['accepting']
- bpy.rffi_motd = res['motd']
-
-rffi = RffiRpc()