Merge branch 'master' of ssh://git.planet-lab.org/git/plstackapi
diff --git a/opencloud.spec b/opencloud.spec
index 26f67f8..56de9d9 100644
--- a/opencloud.spec
+++ b/opencloud.spec
@@ -1,7 +1,7 @@
Summary: OpenCloud core services
Name: opencloud
-Version: 1.0.22
-Release: 2
+Version: 1.0.23
+Release: 0
License: GPL+
Group: Development/Tools
Source0: %{_tmppath}/%{name}-%{version}.tar.gz
@@ -73,12 +73,26 @@
install -d %{buildroot}/etc/init.d
# in builddir
-cp -rp ./planetstack %{buildroot}/opt/.
+
+
+# don't copy symbolic links (they are handled in %post)
+rsync -rptgoD ./planetstack %{buildroot}/opt/.
cp observer-initscript %{buildroot}/etc/init.d/plstackobserver
find %{buildroot}/opt/planetstack -type f -print | sed "s@^$RPM_BUILD_ROOT@@g" > %{_tmppath}/tmp-filelist
+echo /etc/init.d/plstackobserver >> %{_tmppath}/tmp-filelist
+
+# remove config files from the file list (see %config below)
+cat > %{_tmppath}/config-files << "EOF"
+/opt/planetstack/plstackapi_config
+/opt/planetstack/deployment_auth.py
+EOF
+
+sort %{_tmppath}/tmp-filelist > %{_tmppath}/tmp-filelist.sorted
+sort %{_tmppath}/config-files > %{_tmppath}/config-files.sorted
+comm -13 %{_tmppath}/config-files.sorted %{_tmppath}/tmp-filelist.sorted > %{_tmppath}/tmp-filelist
+
cp %{_tmppath}/tmp-filelist /tmp/tmp-filelist
-echo /etc/init.d/plstackobserver > %{_tmppath}/tmp-filelist
%clean
rm -rf %{buildroot}
@@ -89,6 +103,9 @@
%config /opt/planetstack/deployment_auth.py
%post
+ln -s ec2_observer /opt/planetstack/observer
+ln -s config-opencloud.py /opt/planetstack/syndicate_observer/syndicatelib_config/config.py
+
if [ "$1" == 1 ] ; then
echo "NEW INSTALL - initializing database"
/opt/planetstack/scripts/opencloud initdb
diff --git a/planetstack/core/admin.py b/planetstack/core/admin.py
index 9f8fbb0..dddebbf 100644
--- a/planetstack/core/admin.py
+++ b/planetstack/core/admin.py
@@ -826,14 +826,14 @@
def save_model(self, request, obj, form, change):
# update openstack connection to use this site/tenant
auth = request.session.get('auth', {})
- auth['tenant'] = obj.slice.name
+ auth['tenant'] = obj.slice.slicename
obj.os_manager = OpenStackManager(auth=auth, caller=request.user)
obj.save()
def delete_model(self, request, obj):
# update openstack connection to use this site/tenant
auth = request.session.get('auth', {})
- auth['tenant'] = obj.slice.name
+ auth['tenant'] = obj.slice.slicename
obj.os_manager = OpenStackManager(auth=auth, caller=request.user)
obj.delete()
diff --git a/planetstack/core/models/slice.py b/planetstack/core/models/slice.py
index bd41f87..50b10c5 100644
--- a/planetstack/core/models/slice.py
+++ b/planetstack/core/models/slice.py
@@ -32,6 +32,10 @@
def __unicode__(self): return u'%s' % (self.name)
+ @property
+ def slicename(self):
+ return "%s_%s" % (self.site.login_base, self.name)
+
def save(self, *args, **kwds):
if self.serviceClass is None:
# We allowed None=True for serviceClass because Django evolution