Commit c3ddde23 authored by Bryton Lacquement's avatar Bryton Lacquement 🚪

wip

parent d5b76d68
...@@ -37,7 +37,7 @@ from slapos.slap.slap import Computer, ComputerPartition, \ ...@@ -37,7 +37,7 @@ from slapos.slap.slap import Computer, ComputerPartition, \
SoftwareRelease, SoftwareInstance, NotFoundError SoftwareRelease, SoftwareInstance, NotFoundError
from slapos.proxy.db_version import DB_VERSION from slapos.proxy.db_version import DB_VERSION
import slapos.slap import slapos.slap
from slapos.util import bytes2str, sqlite_connect from slapos.util import bytes2str, unicode2str, sqlite_connect
from flask import g, Flask, request, abort from flask import g, Flask, request, abort
from xml_marshaller import xml_marshaller from xml_marshaller import xml_marshaller
...@@ -239,9 +239,9 @@ def getFullComputerInformation(): ...@@ -239,9 +239,9 @@ def getFullComputerInformation():
@app.route('/setComputerPartitionConnectionXml', methods=['POST']) @app.route('/setComputerPartitionConnectionXml', methods=['POST'])
def setComputerPartitionConnectionXml(): def setComputerPartitionConnectionXml():
slave_reference = request.form.get('slave_reference', None) slave_reference = request.form.get('slave_reference', None)
computer_partition_id = request.form['computer_partition_id'] computer_partition_id = unicode2str(request.form['computer_partition_id'])
computer_id = request.form['computer_id'] computer_id = unicode2str(request.form['computer_id'])
connection_xml = request.form['connection_xml'] connection_xml = unicode2str(request.form['connection_xml'])
connection_dict = loads(connection_xml) connection_dict = loads(connection_xml)
connection_xml = dict2xml(connection_dict) connection_xml = dict2xml(connection_dict)
if not slave_reference or slave_reference == 'None': if not slave_reference or slave_reference == 'None':
...@@ -338,7 +338,7 @@ def requestComputerPartition(): ...@@ -338,7 +338,7 @@ def requestComputerPartition():
parsed_request_dict = parseRequestComputerPartitionForm(request.form) parsed_request_dict = parseRequestComputerPartitionForm(request.form)
# Is it a slave instance? # Is it a slave instance?
slave = loads(request.form.get('shared_xml', EMPTY_DICT_XML)) slave = loads(unicode2str(request.form.get('shared_xml', EMPTY_DICT_XML)))
# Check first if instance is already allocated # Check first if instance is already allocated
if slave: if slave:
...@@ -382,15 +382,15 @@ def parseRequestComputerPartitionForm(form): ...@@ -382,15 +382,15 @@ def parseRequestComputerPartitionForm(form):
Parse without intelligence a form from a request(), return it. Parse without intelligence a form from a request(), return it.
""" """
parsed_dict = {} parsed_dict = {}
parsed_dict['software_release'] = form['software_release'] parsed_dict['software_release'] = unicode2str(form['software_release'])
parsed_dict['software_type'] = form.get('software_type') parsed_dict['software_type'] = unicode2str(form.get('software_type'))
parsed_dict['partition_reference'] = form.get('partition_reference', '') parsed_dict['partition_reference'] = unicode2str(form.get('partition_reference', ''))
parsed_dict['partition_id'] = form.get('computer_partition_id', '') parsed_dict['partition_id'] = unicode2str(form.get('computer_partition_id', ''))
parsed_dict['partition_parameter_kw'] = loads(form.get('partition_parameter_xml', EMPTY_DICT_XML)) parsed_dict['partition_parameter_kw'] = loads(unicode2str(form.get('partition_parameter_xml', EMPTY_DICT_XML)))
parsed_dict['filter_kw'] = loads(form.get('filter_xml', EMPTY_DICT_XML)) parsed_dict['filter_kw'] = loads(unicode2str(form.get('filter_xml', EMPTY_DICT_XML)))
# Note: currently ignored for slave instance (slave instances # Note: currently ignored for slave instance (slave instances
# are always started). # are always started).
parsed_dict['requested_state'] = loads(form.get('state')) parsed_dict['requested_state'] = loads(unicode2str(form.get('state')))
return parsed_dict return parsed_dict
...@@ -485,13 +485,13 @@ def forwardRequestToExternalMaster(master_url, request_form): ...@@ -485,13 +485,13 @@ def forwardRequestToExternalMaster(master_url, request_form):
else: else:
slap.initializeConnection(master_url) slap.initializeConnection(master_url)
partition_reference = request_form['partition_reference'] partition_reference = unicode2str(request_form['partition_reference'])
# Store in database # Store in database
execute_db('forwarded_partition_request', 'INSERT OR REPLACE INTO %s values(:partition_reference, :master_url)', execute_db('forwarded_partition_request', 'INSERT OR REPLACE INTO %s values(:partition_reference, :master_url)',
{'partition_reference':partition_reference, 'master_url': master_url}) {'partition_reference':partition_reference, 'master_url': master_url})
new_request_form = request_form.copy() new_request_form = request_form.copy()
filter_kw = loads(new_request_form['filter_xml']) filter_kw = loads(unicode2str(new_request_form['filter_xml']))
filter_kw['source_instance_id'] = partition_reference filter_kw['source_instance_id'] = partition_reference
new_request_form['filter_xml'] = dumps(filter_kw) new_request_form['filter_xml'] = dumps(filter_kw)
...@@ -744,9 +744,9 @@ def requestSlave(software_release, software_type, partition_reference, partition ...@@ -744,9 +744,9 @@ def requestSlave(software_release, software_type, partition_reference, partition
@app.route('/softwareInstanceRename', methods=['POST']) @app.route('/softwareInstanceRename', methods=['POST'])
def softwareInstanceRename(): def softwareInstanceRename():
new_name = request.form['new_name'] new_name = unicode2str(request.form['new_name'])
computer_partition_id = request.form['computer_partition_id'] computer_partition_id = unicode2str(request.form['computer_partition_id'])
computer_id = request.form['computer_id'] computer_id = unicode2str(request.form['computer_id'])
q = 'UPDATE %s SET partition_reference = ? WHERE reference = ? AND computer_reference = ?' q = 'UPDATE %s SET partition_reference = ? WHERE reference = ? AND computer_reference = ?'
execute_db('partition', q, [new_name, computer_partition_id, computer_id]) execute_db('partition', q, [new_name, computer_partition_id, computer_id])
......
...@@ -102,6 +102,10 @@ def sqlite_connect(dburi, timeout=None): ...@@ -102,6 +102,10 @@ def sqlite_connect(dburi, timeout=None):
if str is bytes: if str is bytes:
def bytes2str(s): def bytes2str(s):
return s return s
def unicode2str(s):
return s.encode('utf-8')
else: else:
def bytes2str(s): def bytes2str(s):
return s.decode() return s.decode()
def unicode2str(s):
return s
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment