Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
slapos
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Xiaowu Zhang
slapos
Commits
04c0d5f7
Commit
04c0d5f7
authored
Mar 09, 2020
by
Bryton Lacquement
🚪
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
recipe/simplehttpserver: add support for Python 3
parent
67d76c7e
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
11 additions
and
7 deletions
+11
-7
slapos/recipe/simplehttpserver/__init__.py
slapos/recipe/simplehttpserver/__init__.py
+2
-1
slapos/recipe/simplehttpserver/simplehttpserver.py
slapos/recipe/simplehttpserver/simplehttpserver.py
+9
-6
No files found.
slapos/recipe/simplehttpserver/__init__.py
View file @
04c0d5f7
...
...
@@ -27,6 +27,7 @@
from
slapos.recipe.librecipe
import
GenericBaseRecipe
import
string
,
random
import
os
from
six.moves
import
range
class
Recipe
(
GenericBaseRecipe
):
...
...
@@ -35,7 +36,7 @@ class Recipe(GenericBaseRecipe):
base_path
=
options
[
'base-path'
]
if
options
.
get
(
'use-hash-url'
,
'True'
)
in
[
'true'
,
'True'
]:
pool
=
string
.
letters
+
string
.
digits
hash_string
=
''
.
join
(
random
.
choice
(
pool
)
for
i
in
x
range
(
64
))
hash_string
=
''
.
join
(
random
.
choice
(
pool
)
for
i
in
range
(
64
))
path
=
os
.
path
.
join
(
base_path
,
hash_string
)
if
os
.
path
.
exists
(
base_path
):
...
...
slapos/recipe/simplehttpserver/simplehttpserver.py
View file @
04c0d5f7
# -*- coding: utf-8 -*-
from
SimpleHTTPServer
import
SimpleHTTPRequestHandler
from
BaseHTTPServer
import
HTTPServer
from
six.moves.
SimpleHTTPServer
import
SimpleHTTPRequestHandler
from
six.moves.
BaseHTTPServer
import
HTTPServer
import
ssl
import
os
import
logging
...
...
@@ -8,6 +8,9 @@ from netaddr import valid_ipv4, valid_ipv6
import
socket
import
cgi
,
errno
from
slapos.util
import
str2bytes
class
ServerHandler
(
SimpleHTTPRequestHandler
):
document_path
=
''
...
...
@@ -22,7 +25,7 @@ class ServerHandler(SimpleHTTPRequestHandler):
if
self
.
restrict_root_folder
and
self
.
path
and
self
.
path
==
'/'
:
# no access to root path
self
.
respond
(
403
)
self
.
wfile
.
write
(
"Forbidden"
)
self
.
wfile
.
write
(
b
"Forbidden"
)
return
True
return
False
...
...
@@ -46,11 +49,11 @@ class ServerHandler(SimpleHTTPRequestHandler):
name
=
form
[
'path'
].
value
content
=
form
[
'content'
].
value
method
=
'a'
if
form
.
has_key
(
'clear'
)
and
form
[
'clear'
].
value
==
'1'
:
if
'clear'
in
form
and
form
[
'clear'
].
value
==
'1'
:
method
=
'w'
self
.
writeFile
(
name
,
content
,
method
)
self
.
respond
(
200
,
type
=
self
.
headers
[
'Content-Type'
])
self
.
wfile
.
write
(
"Content written to %s"
%
name
)
self
.
wfile
.
write
(
b"Content written to %s"
%
str2bytes
(
name
)
)
def
writeFile
(
self
,
filename
,
content
,
method
=
'a'
):
file_path
=
os
.
path
.
join
(
self
.
document_path
,
filename
)
...
...
@@ -97,7 +100,7 @@ def run(args):
httpd
=
server
((
host
,
port
),
Handler
)
scheme
=
'http'
if
args
.
has_key
(
'cert-file'
)
and
args
.
has_key
(
'key-file'
)
and
\
if
'cert-file'
in
args
and
'key-file'
in
args
and
\
os
.
path
.
exists
(
args
[
'cert-file'
])
and
os
.
path
.
exists
(
args
[
'key-file'
]):
scheme
=
'https'
httpd
.
socket
=
ssl
.
wrap_socket
(
httpd
.
socket
,
...
...
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