git://git.onelab.eu
/
plstackapi.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
we can no longer access the user from the key object, so just make up a random key...
[plstackapi.git]
/
planetstack
/
openstack
/
manager.py
diff --git
a/planetstack/openstack/manager.py
b/planetstack/openstack/manager.py
index
166ad19
..
b4697ce
100644
(file)
--- a/
planetstack/openstack/manager.py
+++ b/
planetstack/openstack/manager.py
@@
-1,3
+1,8
@@
+import os
+os.environ.setdefault("DJANGO_SETTINGS_MODULE", "planetstack.settings")
+import string
+import random
+
from netaddr import IPAddress, IPNetwork
from planetstack import settings
from django.core import management
from netaddr import IPAddress, IPNetwork
from planetstack import settings
from django.core import management
@@
-10,8
+15,11
@@
try:
except:
has_openstack = False
except:
has_openstack = False
-#manager_enabled = Config().api_nova_enabled
-manager_enabled = False
+manager_enabled = Config().api_nova_enabled
+
+
+def random_string(size=6):
+ return ''.join(random.choice(string.ascii_uppercase + string.digits) for x in range(size))
def require_enabled(callable):
def wrapper(*args, **kwds):
def require_enabled(callable):
def wrapper(*args, **kwds):
@@
-61,27
+69,27
@@
class OpenStackManager:
@require_enabled
def save_role(self, role):
@require_enabled
def save_role(self, role):
- if not role.role
_id
:
+ if not role.role:
keystone_role = self.driver.create_role(role.role_type)
keystone_role = self.driver.create_role(role.role_type)
- role.role
_id
= keystone_role.id
+ role.role = keystone_role.id
@require_enabled
def delete_role(self, role):
@require_enabled
def delete_role(self, role):
- if role.role
_id
:
- self.driver.delete_role({'id': role.role
_id
})
+ if role.role:
+ self.driver.delete_role({'id': role.role})
@require_enabled
def save_key(self, key):
@require_enabled
def save_key(self, key):
- if not key.key_id:
- key_fields = {'name':
key.user.email[:key.user.email.find('@')]
,
+ if not key.
n
key_id:
+ key_fields = {'name':
random_string(8)
,
'key': key.key}
nova_key = self.driver.create_keypair(**key_fields)
'key': key.key}
nova_key = self.driver.create_keypair(**key_fields)
- key.key_id = nova_key.id
+ key.
n
key_id = nova_key.id
@require_enabled
def delete_key(self, key):
@require_enabled
def delete_key(self, key):
- if key.key_id:
- self.driver.delete_keypair(key.key_id)
+ if key.
n
key_id:
+ self.driver.delete_keypair(key.
n
key_id)
@require_enabled
def save_user(self, user):
@require_enabled
def save_user(self, user):
@@
-277,6
+285,7
@@
class OpenStackManager:
Node.objects.filter(name__in=old_node_names).delete()
def refresh_images(self):
Node.objects.filter(name__in=old_node_names).delete()
def refresh_images(self):
+ from core.models.image import Image
# collect local images
images = Image.objects.all()
images_dict = {}
# collect local images
images = Image.objects.all()
images_dict = {}