Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
slapos.core
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Labels
Merge Requests
22
Merge Requests
22
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Jobs
Commits
Open sidebar
nexedi
slapos.core
Commits
c3ddde23
Commit
c3ddde23
authored
Oct 31, 2018
by
Bryton Lacquement
🚪
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wip
parent
d5b76d68
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
21 additions
and
17 deletions
+21
-17
slapos/proxy/views.py
slapos/proxy/views.py
+17
-17
slapos/util.py
slapos/util.py
+4
-0
No files found.
slapos/proxy/views.py
View file @
c3ddde23
...
@@ -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
])
...
...
slapos/util.py
View file @
c3ddde23
...
@@ -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
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment