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
37f608b2
authored
Dec 01, 2014
by
Kálmán Viktor
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
occi: handle public keys on compute creation
parent
1ee6bb83
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
25 additions
and
0 deletions
+25
-0
circle/occi/occi.py
+25
-0
No files found.
circle/occi/occi.py
View file @
37f608b2
import
re
import
logging
from
django.contrib.auth.models
import
User
from
django.template.loader
import
render_to_string
from
django.utils
import
timezone
from
django.utils.formats
import
date_format
from
django_sshkey.models
import
UserKey
from
firewall.models
import
Vlan
from
storage.models
import
Disk
...
...
@@ -10,6 +14,8 @@ from vm.models import Instance, InstanceTemplate, Lease, Interface
from
vm.models.common
import
ARCHITECTURES
from
vm.models.instance
import
ACCESS_METHODS
,
pwgen
logger
=
logging
.
getLogger
(
__name__
)
OCCI_ADDR
=
"http://localhost:8080/"
X86_ARCH
=
ARCHITECTURES
[
1
][
0
]
...
...
@@ -168,6 +174,8 @@ class Compute(Resource):
if
link
:
links
.
append
(
d
)
cls
.
create_public_key
(
user
,
attributes
)
params
=
{}
params
[
'owner'
]
=
user
title
=
attributes
.
get
(
"occi.core.title"
)
...
...
@@ -234,6 +242,23 @@ class Compute(Resource):
for
sl
in
storagelinks
:
cls
.
instance
.
attach_disk
(
user
=
user
,
disk
=
disk
)
@classmethod
def
create_public_key
(
cls
,
user
,
attributes
):
key_name
=
attributes
.
get
(
"org.openstack.credentials.publickey.name"
)
key_data
=
attributes
.
get
(
"org.openstack.credentials.publickey.data"
)
if
key_name
and
key_data
:
if
UserKey
.
objects
.
filter
(
name
=
key_name
,
user
=
user
):
key_name
=
"
%
s via OCCI @
%
s"
%
(
key_name
,
date_format
(
timezone
.
now
(),
"DATETIME_FORMAT"
)
)
key
=
UserKey
(
name
=
key_name
[:
50
],
key
=
key_data
,
user
=
user
)
if
not
UserKey
.
objects
.
filter
(
key
=
key
.
key
):
key
.
full_clean
()
key
.
save
()
def
render_location
(
self
):
return
"
%
s"
%
self
.
location
...
...
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