Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
CIRCLE
/
cloud
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
94
Merge Requests
10
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
A prog2-höz tartozó friss repo anyagok itt elérhetőek:
https://git.iit.bme.hu/
Commit
fc00f3a5
authored
Nov 19, 2014
by
Kálmán Viktor
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
occi: rework occi post data to list function into a mixin
parent
0c07829d
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
22 additions
and
15 deletions
+22
-15
circle/occi/views.py
+22
-15
No files found.
circle/occi/views.py
View file @
fc00f3a5
...
@@ -31,12 +31,23 @@ class CSRFExemptMixin(object):
...
@@ -31,12 +31,23 @@ class CSRFExemptMixin(object):
return
super
(
CSRFExemptMixin
,
self
)
.
dispatch
(
*
args
,
**
kwargs
)
return
super
(
CSRFExemptMixin
,
self
)
.
dispatch
(
*
args
,
**
kwargs
)
def
get_post_data_from_request
(
request
):
class
OCCIPostDataAsListMixin
(
object
):
def
get_post_data
(
self
,
request
):
""" Returns the post data in an array
""" Returns the post data in an array
"""
"""
post_data
=
[]
post_data
=
[]
accept
=
request
.
META
.
get
(
"HTTP_ACCEPT"
)
accept
=
request
.
META
.
get
(
"HTTP_ACCEPT"
)
if
accept
and
accept
.
split
(
","
)[
0
]
==
"text/occi"
:
if
accept
and
accept
.
split
(
","
)[
0
]
==
"text/occi"
:
post_data
=
self
.
_parse_from_header
(
request
)
else
:
# text/plain or missing
for
l
in
request
.
readlines
():
if
l
:
post_data
.
append
(
l
.
strip
())
return
post_data
def
_parse_from_header
(
self
,
request
):
post_data
=
[]
for
k
,
v
in
request
.
META
.
iteritems
():
for
k
,
v
in
request
.
META
.
iteritems
():
if
k
.
startswith
(
"HTTP_X_OCCI_ATTRIBUTE"
):
if
k
.
startswith
(
"HTTP_X_OCCI_ATTRIBUTE"
):
for
l
in
v
.
split
(
","
):
for
l
in
v
.
split
(
","
):
...
@@ -44,10 +55,6 @@ def get_post_data_from_request(request):
...
@@ -44,10 +55,6 @@ def get_post_data_from_request(request):
if
k
.
startswith
(
"HTTP_CATEGORY"
):
if
k
.
startswith
(
"HTTP_CATEGORY"
):
for
l
in
v
.
split
(
","
):
for
l
in
v
.
split
(
","
):
post_data
.
append
(
"Category:
%
s"
%
l
.
strip
())
post_data
.
append
(
"Category:
%
s"
%
l
.
strip
())
else
:
# text/plain or missing
for
l
in
request
.
readlines
():
if
l
:
post_data
.
append
(
l
.
strip
())
return
post_data
return
post_data
...
@@ -77,7 +84,7 @@ class QueryInterface(CSRFExemptMixin, View):
...
@@ -77,7 +84,7 @@ class QueryInterface(CSRFExemptMixin, View):
return
response
return
response
class
ComputeInterface
(
CSRFExemptMixin
,
View
):
class
ComputeInterface
(
CSRFExemptMixin
,
OCCIPostDataAsListMixin
,
View
):
def
get
(
self
,
request
,
*
args
,
**
kwargs
):
def
get
(
self
,
request
,
*
args
,
**
kwargs
):
response
=
"
\n
"
.
join
([
Compute
(
instance
=
i
)
.
render_location
()
response
=
"
\n
"
.
join
([
Compute
(
instance
=
i
)
.
render_location
()
...
@@ -88,7 +95,7 @@ class ComputeInterface(CSRFExemptMixin, View):
...
@@ -88,7 +95,7 @@ class ComputeInterface(CSRFExemptMixin, View):
)
)
def
post
(
self
,
request
,
*
args
,
**
kwargs
):
def
post
(
self
,
request
,
*
args
,
**
kwargs
):
data
=
get_post_data_from_request
(
request
)
data
=
self
.
get_post_data
(
request
)
c
=
Compute
.
create_object
(
data
=
data
)
c
=
Compute
.
create_object
(
data
=
data
)
response
=
HttpResponse
(
response
=
HttpResponse
(
...
@@ -99,7 +106,7 @@ class ComputeInterface(CSRFExemptMixin, View):
...
@@ -99,7 +106,7 @@ class ComputeInterface(CSRFExemptMixin, View):
return
response
return
response
class
VmInterface
(
CSRFExemptMixin
,
DetailView
):
class
VmInterface
(
CSRFExemptMixin
,
OCCIPostDataAsListMixin
,
DetailView
):
model
=
Instance
model
=
Instance
def
get_object
(
self
):
def
get_object
(
self
):
...
@@ -115,7 +122,7 @@ class VmInterface(CSRFExemptMixin, DetailView):
...
@@ -115,7 +122,7 @@ class VmInterface(CSRFExemptMixin, DetailView):
)
)
def
post
(
self
,
request
,
*
args
,
**
kwargs
):
def
post
(
self
,
request
,
*
args
,
**
kwargs
):
data
=
get_post_data_from_request
(
request
)
data
=
self
.
get_post_data
(
request
)
action
=
request
.
GET
.
get
(
"action"
)
action
=
request
.
GET
.
get
(
"action"
)
vm
=
self
.
get_object
()
vm
=
self
.
get_object
()
if
action
:
if
action
:
...
@@ -143,7 +150,7 @@ class OsTplInterface(CSRFExemptMixin, View):
...
@@ -143,7 +150,7 @@ class OsTplInterface(CSRFExemptMixin, View):
pass
pass
class
StorageInterface
(
CSRFExemptMixin
,
View
):
class
StorageInterface
(
CSRFExemptMixin
,
OCCIPostDataAsListMixin
,
View
):
def
get
(
self
,
request
,
*
args
,
**
kwargs
):
def
get
(
self
,
request
,
*
args
,
**
kwargs
):
response
=
"
\n
"
.
join
([
Storage
(
disk
=
d
)
.
render_location
()
response
=
"
\n
"
.
join
([
Storage
(
disk
=
d
)
.
render_location
()
...
@@ -154,7 +161,7 @@ class StorageInterface(CSRFExemptMixin, View):
...
@@ -154,7 +161,7 @@ class StorageInterface(CSRFExemptMixin, View):
)
)
def
post
(
self
,
request
,
*
args
,
**
kwargs
):
def
post
(
self
,
request
,
*
args
,
**
kwargs
):
data
=
get_post_data_from_request
(
request
)
data
=
self
.
get_post_data
(
request
)
d
=
Storage
.
create_object
(
data
=
data
)
d
=
Storage
.
create_object
(
data
=
data
)
response
=
HttpResponse
(
response
=
HttpResponse
(
...
@@ -165,7 +172,7 @@ class StorageInterface(CSRFExemptMixin, View):
...
@@ -165,7 +172,7 @@ class StorageInterface(CSRFExemptMixin, View):
return
response
return
response
class
DiskInterface
(
CSRFExemptMixin
,
DetailView
):
class
DiskInterface
(
CSRFExemptMixin
,
OCCIPostDataAsListMixin
,
DetailView
):
model
=
Disk
model
=
Disk
def
get
(
self
,
request
,
*
args
,
**
kwargs
):
def
get
(
self
,
request
,
*
args
,
**
kwargs
):
...
@@ -178,7 +185,7 @@ class DiskInterface(CSRFExemptMixin, DetailView):
...
@@ -178,7 +185,7 @@ class DiskInterface(CSRFExemptMixin, DetailView):
def
post
(
self
,
request
,
*
args
,
**
kwargs
):
def
post
(
self
,
request
,
*
args
,
**
kwargs
):
# TODO actions (we only support resize)
# TODO actions (we only support resize)
data
=
get_post_data_from_request
(
request
)
data
=
self
.
get_post_data
(
request
)
action
=
request
.
GET
.
get
(
"action"
)
action
=
request
.
GET
.
get
(
"action"
)
disk
=
self
.
get_object
()
disk
=
self
.
get_object
()
if
action
:
if
action
:
...
@@ -190,7 +197,7 @@ class DiskInterface(CSRFExemptMixin, DetailView):
...
@@ -190,7 +197,7 @@ class DiskInterface(CSRFExemptMixin, DetailView):
return
HttpResponse
(
""
)
return
HttpResponse
(
""
)
class
StorageLinkInterface
(
CSRFExemptMixin
,
View
):
class
StorageLinkInterface
(
CSRFExemptMixin
,
OCCIPostDataAsListMixin
,
View
):
def
get_vm_and_disk
(
self
):
def
get_vm_and_disk
(
self
):
vm
=
get_object_or_404
(
Instance
.
objects
.
filter
(
destroyed_at
=
None
),
vm
=
get_object_or_404
(
Instance
.
objects
.
filter
(
destroyed_at
=
None
),
...
@@ -217,7 +224,7 @@ class StorageLinkInterface(CSRFExemptMixin, View):
...
@@ -217,7 +224,7 @@ class StorageLinkInterface(CSRFExemptMixin, View):
if
request
.
GET
.
get
(
"action"
):
if
request
.
GET
.
get
(
"action"
):
return
HttpResponse
(
""
,
status
=
500
)
return
HttpResponse
(
""
,
status
=
500
)
data
=
get_post_data_from_request
(
request
)
data
=
self
.
get_post_data
(
request
)
sl
=
StorageLink
.
create_object
(
data
=
data
)
sl
=
StorageLink
.
create_object
(
data
=
data
)
if
sl
:
if
sl
:
response
=
HttpResponse
(
response
=
HttpResponse
(
...
...
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