Hello community,

here is the log from the commit of package openstack-dashboard for 
openSUSE:Factory checked in at 2012-12-08 15:52:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openstack-dashboard (Old)
 and      /work/SRC/openSUSE:Factory/.openstack-dashboard.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "openstack-dashboard", Maintainer is "cth...@suse.com"

Changes:
--------
New Changes file:

--- /dev/null   2012-11-30 12:21:47.308011256 +0100
+++ 
/work/SRC/openSUSE:Factory/.openstack-dashboard.new/openstack-dashboard.changes 
    2012-12-08 15:52:17.000000000 +0100
@@ -0,0 +1,273 @@
+-------------------------------------------------------------------
+Fri Dec  7 11:19:52 UTC 2012 - vu...@suse.com
+
+- Comment out python-selenium Requires from test subpackage: the
+  selenium tests are not run by default, and pushing selenium to
+  Factory would require too much time for now.
+
+-------------------------------------------------------------------
+Thu Nov  8 13:34:00 UTC 2012 - sasc...@suse.de
+
+- Drop from_vcs build flag
+
+-------------------------------------------------------------------
+Tue Oct 30 10:29:30 UTC 2012 - sasc...@suse.de
+
+- Add horizon-launch-from-volume.patch: Launch from volume with valid
+  volume size (fixes bnc#780982, lp#1047568)
+
+-------------------------------------------------------------------
+Mon Oct  8 15:25:42 UTC 2012 - sasc...@suse.de
+
+- Update (green) branding: Ship local copies of various Google fonts
+  (bnc#772230)
+
+-------------------------------------------------------------------
+Mon Oct  1 15:05:08 UTC 2012 - sasc...@suse.de
+
+- Add horizon-suse-branding.patch: SUSE Cloud branding according
+  to documentation (bnc#770065)
+
+-------------------------------------------------------------------
+Sun Sep 16 18:20:10 UTC 2012 - jenk...@suse.de
+
+- Update to latest git (35eada8):
+  + Do not crash when deleting image or volume with no name (bnc#776890)
+  + Fix open redirect in Horizon. (bnc#776559)
+
+-------------------------------------------------------------------
+Wed Sep 12 11:09:15 UTC 2012 - vu...@suse.com
+
+- Do not use a sed to modify /usr/bin/gensslcert in %post: this
+  file belongs to another package, and we actually don't do any
+  change with the sed... Fix bnc#779747.
+
+-------------------------------------------------------------------
+Mon Sep 10 09:06:01 UTC 2012 - vu...@suse.com
+
+- Add horizon-keep-image-properties.patch: fix the test accordingly
+  too. This test isn't in Folsom anymore, so wasn't in the
+  backported patch.
+
+-------------------------------------------------------------------
+Mon Sep  3 12:00:15 UTC 2012 - vu...@suse.com
+
+- Add horizon-keep-image-properties.patch: do not lose properties
+  when editing an image. Fix bnc#777855.
+
+-------------------------------------------------------------------
+Tue Aug 28 15:04:05 UTC 2012 - jenk...@suse.de
+
+- Update to latest git (f862d9e):
+  + Corrects the CSV download link for overview pages.
+
+-------------------------------------------------------------------
+Fri Aug 24 10:08:57 UTC 2012 - j...@suse.com
+
+- refresh patch in order to apply with no fuzz
+
+-------------------------------------------------------------------
+Thu Aug 23 14:12:53 UTC 2012 - vu...@opensuse.org
+
+- Update horizon-login-no-phishing.patch with patch from upstream.
+
+-------------------------------------------------------------------
+Thu Aug 23 09:14:45 UTC 2012 - vu...@suse.com
+
+- Add horizon-crash-no-name.patch: fix crash when deleting image or
+  volume with no name. Fix bnc#776890.
+
+-------------------------------------------------------------------
+Wed Aug 22 06:55:06 UTC 2012 - cth...@suse.com
+
+- add vnc-iframe-size.patch to improve vnc iframe size and avoid scrollbars
+
+-------------------------------------------------------------------
+Mon Aug 20 13:56:22 UTC 2012 - vu...@suse.com
+
+- Add horizon-login-no-phishing.patch: fix an open redirect /
+  phishing attack. Fix bnc#776559.
+
+-------------------------------------------------------------------
+Mon Aug 20 12:00:21 UTC 2012 - bwiedem...@suse.com
+
+- add minimum password length check in sample config
+
+-------------------------------------------------------------------
+Tue Aug 14 22:49:12 UTC 2012 - jenk...@suse.de
+
+- Update to latest git (691dd22):
+  + Fixed validation check for ICMP rules
+  + Bump version to 2012.1.3
+
+-------------------------------------------------------------------
+Tue Aug 14 22:47:33 UTC 2012 - cth...@suse.com
+
+- remove 7b565fc9-fixed-validation-ICMP.patch, which has been merged upstream 
+  https://review.openstack.org/#/c/10078/
+
+-------------------------------------------------------------------
+Mon Aug 13 22:06:44 UTC 2012 - jenk...@suse.de
+
+- Update to latest git (52bbba1):
+  + Added --only-selenium option in run_tests.sh
+
+-------------------------------------------------------------------
+Fri Aug  3 17:20:30 UTC 2012 - vu...@suse.com
+
+- Update suse-patches.diff: remove part that was making us not
+  handle swiftclient.Error exceptions, which was causing
+  bnc#773186.
+
+-------------------------------------------------------------------
+Tue Jul 31 17:08:13 UTC 2012 - j...@suse.de
+
+- fix template syntax error in user filter (bnc#771667)
+
+-------------------------------------------------------------------
+Mon Jul 30 15:29:37 UTC 2012 - sasc...@suse.de
+
+- More SSl fixes, renamed patch to horizon-ssl.patch therefore
+
+-------------------------------------------------------------------
+Wed Jul 25 11:24:47 UTC 2012 - sasc...@suse.de
+
+- Secure file permissions for Apache SSL certificate files
+
+-------------------------------------------------------------------
+Tue Jul 24 12:58:20 UTC 2012 - sasc...@suse.de
+
+- Drop directory /var/log/openstack_dashboard, it was previously
+  used by Apache2 vhosts that are now using /var/log/apache2
+
+-------------------------------------------------------------------
+Mon Jul 23 15:05:28 UTC 2012 - sasc...@suse.de
+
+- Remote temporary hack agin, no need to uncoditionally disable
+  SSL certificate verification anymore
+
+-------------------------------------------------------------------
+Mon Jul 23 10:47:24 UTC 2012 - cth...@suse.com
+
+- fix test case for horizon-insecure-ssl.patch 
+
+-------------------------------------------------------------------
+Mon Jul 23 09:54:04 UTC 2012 - cth...@suse.com
+
+- fix test part of 7b565fc9-fixed-validation-ICMP.patch 
+
+-------------------------------------------------------------------
+Fri Jul 20 06:50:09 UTC 2012 - cth...@suse.com
+
+- add 7b565fc9-fixed-validation-ICMP.patch, backport of
+  https://review.openstack.org/#/c/8446 (fixes bnc#771658)
+
+-------------------------------------------------------------------
+Tue Jul 17 10:28:32 UTC 2012 - sasc...@suse.de
+
+- Add horizon-insecure-ssl.patch to allow disabling SSl certificate
+  validity checks (useful for debugging / self-signed certificates)
+- Avoid packaging language files twice
+
+-------------------------------------------------------------------
+Mon Jul  9 14:43:09 UTC 2012 - sasc...@suse.de
+
+- Provide Apache2 example configuration
+
+-------------------------------------------------------------------
+Fri Jul  6 12:45:10 UTC 2012 - sasc...@suse.de
+
+- Fixed yet another typo in horizon-secure_SECRET_KEY.patch
+
+-------------------------------------------------------------------
+Wed Jul  4 14:33:21 UTC 2012 - sasc...@suse.de
+
+- Fixed horizon-secure_SECRET_KEY.patch, it still contained
+  debug code
+
+-------------------------------------------------------------------
+Fri Jun 29 09:28:31 UTC 2012 - sasc...@suse.de
+
+- Remove requires on "openstack-quantum" as there seems to be no
+  support for it
+
+-------------------------------------------------------------------
+Wed Jun 27 10:49:34 UTC 2012 - sasc...@suse.de
+
+- Change versioning scheme to $release+git.$AUTHORDATE.$COMMITREV
++++ 76 more lines (skipped)
++++ between /dev/null
++++ and 
/work/SRC/openSUSE:Factory/.openstack-dashboard.new/openstack-dashboard.changes

New:
----
  _service
  backports.patch
  green.tar.gz
  horizon-2012.1+git.1346336140.35eada8.tar.gz
  horizon-keep-image-properties.patch
  horizon-launch-from-volume.patch
  horizon-minimumpwlen.patch
  horizon-secure_SECRET_KEY.patch
  horizon-ssl.patch
  horizon-suse-branding.patch
  openstack-dashboard.changes
  openstack-dashboard.conf.sample
  openstack-dashboard.spec
  rpmlintrc
  suse-patches.diff
  vnc-iframe-size.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ openstack-dashboard.spec ++++++
#
# spec file for package openstack-dashboard
#
# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


%define component horizon

Name:           openstack-dashboard
Version:        2012.1+git.1346336140.35eada8
Release:        0
License:        Apache-2.0
Summary:        OpenStack Dashboard (Horizon)
Url:            http://wiki.openstack.org/OpenStackDashboard
Group:          Development/Languages/Python
Source:         %{component}-%{version}.tar.gz
Source1:        green.tar.gz
# Apache2 example configuration:
Source2:        openstack-dashboard.conf.sample
Patch0:         suse-patches.diff
Patch2:         backports.patch
# PATCH-FIX-UPSTREAM: Backport of https://review.openstack.org/#/c/8799
Patch3:         horizon-secure_SECRET_KEY.patch
# PATCH-FIX-OPENSUSE: Backport of several SSL-related fixes
Patch4:         horizon-ssl.patch
# backport 
https://review.openstack.org/#/c/5204/7/horizon/tests/testsettings.py,unified
Patch5:         horizon-minimumpwlen.patch
Patch7:         vnc-iframe-size.patch
# PATCH-FIX-UPSTREAM horizon-keep-image-properties.patch bnc#777855 
vu...@suse.com -- Do not lose properties when editing an image, cherry-picked 
from Folsom
Patch9:         horizon-keep-image-properties.patch
# PATCH-FIX-OPENSUSE: SUSE Cloud branding
Patch10:        horizon-suse-branding.patch
# PATCH-FIX-UPSTREAM horizon-launch-from-volume-.patch bnc#780982 
sasc...@susee.de -- Launch from volume with valid volume size
Patch11:        horizon-launch-from-volume.patch
BuildRequires:  apache2
BuildRequires:  fdupes
BuildRequires:  python-devel
BuildRequires:  python-setuptools
Requires:       apache2
Requires:       apache2-mod_wsgi
# temporary requires - there will (most likely) be patterns with and without 
the config subpackage
Requires:       openstack-dashboard-config = %{version}
Requires:       python >= 2.6.8
Requires:       python-cloudfiles
Requires:       python-dateutil
Requires:       python-django >= 1.4
Requires:       python-glance
Requires:       python-horizon = %{version}
Requires:       python-keystoneclient
# For secure SECRET_KEY generation:
Requires:       python-lockfile
Requires:       python-novaclient
Recommends:     openstack-novncproxy
# Can't hurt to also provide openstack-horizon:
Provides:       openstack-%{component} = %{version}
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
# To generate a self-signed certificate to be used in demo setups:
Requires(post): apache2-utils
Requires(post): openssl
Requires(post): sysconfig
%if 0%{?suse_version} && 0%{?suse_version} <= 1110
%{!?python_sitelib: %global python_sitelib %(python -c "from 
distutils.sysconfig import get_python_lib; print get_python_lib()")}
%else
BuildArch:      noarch
%endif

%description
The OpenStack dashboard provides administrators and users a graphical
interface to access, provision and automate cloud-based resources. The
extensible design makes it easy to plug in and expose third party
products and services, such as billing, monitoring and additional
management tools.

The dashboard is just one way to interact with OpenStack resources.
Developers can automate access or build tools to manage their resources
using the native OpenStack API or the EC2 compatibility API.

%package -n python-horizon


Summary:        OpenStack Dashboard (Horizon) - Python module
Group:          Development/Languages/Python
#TODO/FIXME: This shouldn't be needed:
#Requires:       %%{name} = %%{version}

%description -n python-horizon
The Python module horizon is the core component of the OpenStack
dashboard.

%package config


Summary:        OpenStack Dashboard (Horizon) - Default configuration
Group:          Development/Languages/Python
Requires:       %{name} = %{version}

%description config
A default configuration for the OpenStack dashboard. It is provides
best-practices and recommendations.

%package test


Summary:        OpenStack Dashboard (Horizon) - Testsuite
Group:          Development/Languages/Python
Requires:       %{name} = %{version}
Requires:       python-coverage
Requires:       python-django-nose
Requires:       python-django-nose-selenium
# Disabled: the selenium tests are not run by default, and pushing selenium to
# Factory would require too much time for now. We might need to patch the
# source to kill the selenium-related import later, though.
#Requires:       python-selenium

%description test
The OpenStack dashboard testsuite. It is used to verify the
functionality of the OpenStack dashboard and its components.

%prep
%setup -q -n %{component}-%{version}
tar xf %{SOURCE1} ; cp -a green/* openstack_dashboard/static/dashboard/
%patch0 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch7
%patch9 -p1
%patch10 -p1
%patch11 -p1
# Fix non-executable script rpmlint warning:
sed -i "/\#\!\/bin\/bash/d" 
horizon/dashboards/settings/templates/settings/{ec2/ec2rc.sh,project/openrc.sh}.template

%build
python setup.py build

%install
install -d -m 755 %{buildroot}%{_localstatedir}/lib/openstack-dashboard
install -d -m 755 
%{buildroot}%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard
install -d -m 755 %{buildroot}%{_localstatedir}/lib/openstack-dashboard/horizon

# test subpackage
install -d -m 755 %{buildroot}%{_localstatedir}/lib/openstack-dashboard-test
cp -av .pylintrc * %{buildroot}%{_localstatedir}/lib/openstack-dashboard-test
find %{buildroot}%{_localstatedir}/lib/openstack-dashboard-test -name 
".gitignore" | xargs rm -f
rm -rf %{buildroot}%{_localstatedir}/lib/openstack-dashboard-test/horizon
rm -rf 
%{buildroot}%{_localstatedir}/lib/openstack-dashboard-test/openstack_dashboard
ln -s %{python_sitelib}/horizon 
%{buildroot}%{_localstatedir}/lib/openstack-dashboard-test/horizon
ln -s %{python_sitelib}/openstack_dashboard 
%{buildroot}%{_localstatedir}/lib/openstack-dashboard-test/openstack_dashboard

python setup.py install --prefix=%{_prefix} --root=%{buildroot} 
--record-rpm=INSTALLED_FILES_ALL
cp -av manage.py %{buildroot}%{_localstatedir}/lib/openstack-dashboard/
pushd openstack_dashboard
cp -av local static wsgi 
%{buildroot}%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard
cp -av templates %{buildroot}%{python_sitelib}/openstack_dashboard/
popd
pushd horizon
cp -av static locale 
%{buildroot}%{_localstatedir}/lib/openstack-dashboard/horizon
popd

mv 
%{buildroot}%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/local/local_settings.py.example
 
%{buildroot}%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/local/local_settings.py
cat <<EOF >> 
%{buildroot}%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/local/local_settings.py
SESSION_ENGINE = 'django.contrib.sessions.backends.cached_db'
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(LOCAL_PATH, 'dashboard_openstack.sqlite3'),
        'TEST_NAME': os.path.join(LOCAL_PATH, 'test.sqlite3'),
    },
}
# Use HttpOnly CSRF cookie:
CSRF_COOKIE_HTTPONLY = True
# SUSE Branding (currently only used in HTML <title> tags):
SITE_BRANDING = 'SUSE Cloud'
EOF

# Use secure SECRET_KEY generation for local_settings.py (bnc#755607):
sed -i -e "s|\# \(from horizon\.utils import secret_key\)|\1|" \
       -e "s|\# \(SECRET_KEY = .*\)|\1|" 
%{buildroot}%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/local/local_settings.py

(cd 
%{buildroot}%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/static/
 ; find -type f | xargs chmod a-x )

# remove local settings file from python module
# this belongs 1. in /var and 2. in the config sub package, see below
rm -rf %{buildroot}%{python_sitelib}/openstack_dashboard/local
# link local settings
ln -s %{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/local 
%{buildroot}%{python_sitelib}/openstack_dashboard/local

# remove duplicate files
%if 0%{?suse_version}
%fdupes %{buildroot}%{python_sitelib}
%fdupes %{buildroot}%{_localstatedir}/lib/openstack-dashboard
%fdupes %{buildroot}%{_localstatedir}/lib/openstack-dashboard-test
%endif

#remove po files
find %{buildroot}%{_localstatedir}/lib/openstack-dashboard/horizon/locale -name 
"*.po" | xargs rm -f

# Apache2 SSL certificate stubs (generated in %%post)
install -d %{buildroot}%{_sysconfdir}/apache2/ssl.{crt,csr,key}
install -d %{buildroot}/srv/www/htdocs
touch 
%{buildroot}%{_sysconfdir}/apache2/ssl.key/openstack-dashboard-{ca,server}.key
touch %{buildroot}%{_sysconfdir}/apache2/ssl.csr/openstack-dashboard-server.csr
touch 
%{buildroot}%{_sysconfdir}/apache2/ssl.crt/openstack-dashboard-{ca,server}.crt

# Apache2 sample configuration
install -d %{buildroot}%{_sysconfdir}/apache2/conf.d
install -m 644 %{SOURCE2} 
%{buildroot}%{_sysconfdir}/apache2/conf.d/openstack-dashboard.conf.sample

#TODO: Maybe move Apache2-related stuff + certs into sub-package?

%post
if [ ! -s %{_sysconfdir}/apache2/ssl.csr/openstack-dashboard-server.csr ] ; then
    # Generate a self-signed certificate to be used in non-production Dashboard 
setups:
    (umask 377 ; /usr/bin/gensslcert -C openstack-dashboard -n 
openstack-dashboard.example.com)
fi

%files
%defattr(-,root,root)
%dir %{_localstatedir}/lib/openstack-dashboard
%dir %{_localstatedir}/lib/openstack-dashboard/openstack_dashboard
%dir %{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/wsgi
%dir %attr(0750, wwwrun, www) 
%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/local
%dir %{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/static
%dir %{_localstatedir}/lib/openstack-dashboard/horizon
%dir %{_localstatedir}/lib/openstack-dashboard/horizon/static
%{_localstatedir}/lib/openstack-dashboard/manage.py
%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/static/*
%{_localstatedir}/lib/openstack-dashboard/horizon/static/*
%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/wsgi/django.wsgi
# lang files
%dir %{_localstatedir}/lib/openstack-dashboard/horizon/locale
%dir %{_localstatedir}/lib/openstack-dashboard/horizon/locale/*
%dir %{_localstatedir}/lib/openstack-dashboard/horizon/locale/*/LC_MESSAGES
%lang(es) 
%{_localstatedir}/lib/openstack-dashboard/horizon/locale/es/LC_MESSAGES/django.mo
%lang(fr) 
%{_localstatedir}/lib/openstack-dashboard/horizon/locale/fr/LC_MESSAGES/django.mo
%lang(ja) 
%{_localstatedir}/lib/openstack-dashboard/horizon/locale/ja/LC_MESSAGES/django.mo
%lang(pl) 
%{_localstatedir}/lib/openstack-dashboard/horizon/locale/pl/LC_MESSAGES/django.mo
%lang(pt) 
%{_localstatedir}/lib/openstack-dashboard/horizon/locale/pt/LC_MESSAGES/django.mo
#%%lang(zh-cn) 
%%{_localstatedir}/lib/openstack-dashboard/horizon/locale/zh_CN/LC_MESSAGES/django.mo
%lang(zh-tw) 
%{_localstatedir}/lib/openstack-dashboard/horizon/locale/zh_TW/LC_MESSAGES/django.mo
%ghost %{_sysconfdir}/apache2/ssl.key/openstack-dashboard-*.key
%ghost %{_sysconfdir}/apache2/ssl.csr/openstack-dashboard-server.csr
%ghost %{_sysconfdir}/apache2/ssl.crt/openstack-dashboard-*.crt
%{_sysconfdir}/apache2/conf.d/openstack-dashboard.conf.sample

%files config
%defattr(0750,root,root)
%dir %attr(0750, wwwrun, www) 
%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/local
%attr(0640, wwwrun, www) 
%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/local/__init__.py
%config(noreplace) %attr(0640, wwwrun, www) 
%{_localstatedir}/lib/openstack-dashboard/openstack_dashboard/local/local_settings.py

%files -n python-horizon
%defattr(-,root,root)
%{python_sitelib}/*

%files test
%defattr(-,root,root)
%{_localstatedir}/lib/openstack-dashboard-test/
%{_localstatedir}/lib/openstack-dashboard-test/.pylintrc

%changelog
++++++ _service ++++++
<services>
  <service name="tar_scm" mode="disabled">
    <param name="url">git://github.com/openstack/horizon.git</param>
    <param name="scm">git</param>
    <param name="exclude">.git</param>
    <param name="exclude">.gitreview</param>
    <param name="version">git-master</param>
    <param name="versionformat">2012.1+git.%ct.%h</param>

    <!-- Use this if you want a specific revision. -->
    <param name="revision">stable/essex</param>
  </service>

  <service name="recompress" mode="disabled">
    <param name="file">horizon-*git*.tar</param>
    <param name="compression">gz</param>
  </service>

  <service name="set_version" mode="disabled">
    <param name="basename">horizon</param>
  </service>
</services>
++++++ backports.patch ++++++
Index: horizon-git-2012.1.1336725470.master.8f1ea73/AUTHORS
===================================================================
--- horizon-git-2012.1.1336725470.master.8f1ea73.orig/AUTHORS
+++ horizon-git-2012.1.1336725470.master.8f1ea73/AUTHORS
@@ -3,6 +3,7 @@ Andrews Medina <andrewsmed...@gmail.com>
 Andy Chong <andy...@gmail.com>
 Anthony Young <sleepsonthefl...@gmail.com>
 Arvind Somya <aso...@cisco.com>
+Bernhard M. Wiedemann <bwiedem...@suse.de>
 Carlo Truijllo <truij...@crs4.it>
 Chuck Short <chuck.sh...@canonical.com>
 Cole Robinson <crobi...@redhat.com>
Index: 
horizon-git-2012.1.1336725470.master.8f1ea73/horizon/dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html
===================================================================
--- 
horizon-git-2012.1.1336725470.master.8f1ea73.orig/horizon/dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html
+++ 
horizon-git-2012.1.1336725470.master.8f1ea73/horizon/dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html
@@ -2,7 +2,7 @@
 
 <h3>{% trans "Instance VNC Console" %}</h3>
 {% if vnc_url %}
-<p class='alert alert-info'>{% blocktrans %}If VNC console is not responding 
to keyboard input: click the grey status bar below.{% endblocktrans %}</p>
+<p class='alert alert-info'>{% blocktrans %}If VNC console is not responding 
to keyboard input: click the grey status bar below.{% endblocktrans %} <a 
href="{{ vnc_url }}">{% trans "Click here to show only VNC" %}</a></p>
 <iframe src="{{ vnc_url }}" width="720" height="430"></iframe>
 {% else %}
 <p class='alert alert-error'>{% blocktrans %}VNC console is currently 
unavailabe. Please try again later.{% endblocktrans %}
++++++ horizon-keep-image-properties.patch ++++++
commit 5e20e7cc11a15820ebc8b829ee485780268eb8e1
Author: Jay Pipes <jaypi...@gmail.com>
Date:   Sun Jun 17 13:21:46 2012 -0400

    Ensure existing image properties are not deleted
    
    Fixes LP #1014226
    
    Passing the X-Glance-Registry-Purge-Props: false
    header to the image_update Glance client method
    prevents previously-set image properties from being
    marked deleted.
    
    Change-Id: I91e927f8c95205cae11bad0d93361f1c9951d62d

Index: 
horizon-2012.1+git.1344968911.f862d9e/horizon/dashboards/nova/images_and_snapshots/images/forms.py
===================================================================
--- 
horizon-2012.1+git.1344968911.f862d9e.orig/horizon/dashboards/nova/images_and_snapshots/images/forms.py
+++ 
horizon-2012.1+git.1344968911.f862d9e/horizon/dashboards/nova/images_and_snapshots/images/forms.py
@@ -83,6 +83,9 @@ class UpdateImageForm(forms.SelfHandling
             meta['properties']['architecture'] = data['architecture']
 
         try:
+            # Ensure we do not delete properties that have already been
+            # set on an image.
+            meta['features'] = {'X-Glance-Registry-Purge-Props': False}
             api.image_update(request, image_id, meta)
             messages.success(request, _('Image was successfully updated.'))
         except:
Index: 
horizon-2012.1+git.1344968911.f862d9e/horizon/dashboards/nova/images_and_snapshots/images/tests.py
===================================================================
--- 
horizon-2012.1+git.1344968911.f862d9e.orig/horizon/dashboards/nova/images_and_snapshots/images/tests.py
+++ 
horizon-2012.1+git.1344968911.f862d9e/horizon/dashboards/nova/images_and_snapshots/images/tests.py
@@ -54,7 +54,8 @@ class ImageViewTests(test.TestCase):
                          'container_format': u'new_format',
                          'is_public': False,
                          'disk_format': u'new_disk_format',
-                         'properties': {}}
+                         'properties': {},
+                         'features': {'X-Glance-Registry-Purge-Props': False}}
 
         self.mox.StubOutWithMock(api, 'image_get_meta')
         self.mox.StubOutWithMock(api, 'image_update')
++++++ horizon-launch-from-volume.patch ++++++
commit fd2291bd28a5a4331d9a7baf961c76effd17b85a
Author: Sascha Peilicke <sasc...@suse.de>
Date:   Thu Oct 18 09:29:46 2012 +0200

    Launch from volume with valid volume size, fixes bug 1047568
    
    Change-Id: I05546ef27f9ab1930ad8a6c8273d133af785db77

diff --git a/AUTHORS b/AUTHORS
index 4110431..677253f 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -41,6 +41,7 @@ Monty Taylor <mord...@inaugust.com>
 Neil Johnston <onewheeldrive....@gmail.com>
 Paul McMillan <paul.mcmil...@nebula.com>
 Sam Morrison <sorri...@gmail.com>
+Sascha Peilicke <sasc...@suse.de>
 Stephane Angot <s...@hydre.org>
 termie <git...@anarkystic.com>
 Thierry Carrez <thie...@openstack.org>
diff --git a/horizon/dashboards/nova/images_and_snapshots/images/forms.py 
b/horizon/dashboards/nova/images_and_snapshots/images/forms.py
index bc4851d..a6cdbad 100644
--- a/horizon/dashboards/nova/images_and_snapshots/images/forms.py
+++ b/horizon/dashboards/nova/images_and_snapshots/images/forms.py
@@ -164,7 +164,7 @@ class LaunchForm(forms.SelfHandlingForm):
                 else:
                     delete_on_terminate = 0
                 dev_mapping = {data['device_name']:
-                        ("%s::%s" % (data['volume'], delete_on_terminate))}
+                        ("%s:%s" % (data['volume'], delete_on_terminate))}
             else:
                 dev_mapping = None
 
diff --git a/horizon/dashboards/nova/images_and_snapshots/images/tests.py 
b/horizon/dashboards/nova/images_and_snapshots/images/tests.py
index aa02325..3615288 100644
--- a/horizon/dashboards/nova/images_and_snapshots/images/tests.py
+++ b/horizon/dashboards/nova/images_and_snapshots/images/tests.py
@@ -118,8 +118,8 @@ class ImageViewTests(test.TestCase):
         sec_group = self.security_groups.first()
         USER_DATA = 'user data'
         device_name = u'vda'
-        volume_choice = "%s:vol" % volume.id
-        block_device_mapping = {device_name: u"%s::0" % volume_choice}
+        volume_choice = "%s:vol:%s" % (volume.id, volume.size)
+        block_device_mapping = {device_name: u"%s:0" % volume_choice}
 
         self.mox.StubOutWithMock(api, 'image_get_meta')
         self.mox.StubOutWithMock(api, 'flavor_list')
@@ -269,7 +269,7 @@ class ImageViewTests(test.TestCase):
         sec_group = self.security_groups.first()
         USER_DATA = 'user data'
         device_name = u'vda'
-        volume_choice = "%s:vol" % volume.id
+        volume_choice = "%s:vol:%s" % (volume.id, volume.size)
 
         self.mox.StubOutWithMock(api, 'image_get_meta')
         self.mox.StubOutWithMock(api, 'flavor_list')
diff --git a/horizon/dashboards/nova/images_and_snapshots/images/views.py 
b/horizon/dashboards/nova/images_and_snapshots/images/views.py
index 1803f97..0b6ec5c 100644
--- a/horizon/dashboards/nova/images_and_snapshots/images/views.py
+++ b/horizon/dashboards/nova/images_and_snapshots/images/views.py
@@ -117,7 +117,7 @@ class LaunchView(forms.ModalFormView):
             else:
                 vol_type = "vol"
                 visible_label = _("Volume")
-            return (("%s:%s" % (volume.id, vol_type)),
+            return (("%s:%s:%s" % (volume.id, vol_type, volume.size)),
                     ("%s - %s GB (%s)" % (volume.display_name,
                                          volume.size,
                                          visible_label)))
++++++ horizon-minimumpwlen.patch ++++++
Index: 
horizon-2012.1+git.1344931337.691dd22/openstack_dashboard/local/local_settings.py.example
===================================================================
--- 
horizon-2012.1+git.1344931337.691dd22.orig/openstack_dashboard/local/local_settings.py.example
+++ 
horizon-2012.1+git.1344931337.691dd22/openstack_dashboard/local/local_settings.py.example
@@ -8,12 +8,12 @@ PROD = False
 USE_SSL = False
 
 # Specify a regular expression to validate user passwords.
-# HORIZON_CONFIG = {
-#     "password_validator": {
-#         "regex": '.*',
-#         "help_text": _("Your password does not meet the requirements.")
-#     }
-# }
+HORIZON_CONFIG = {
+    "password_validator": {
+        "regex": '.{8,}',
+        "help_text": _("Your password must be at least 8 characters long.")
+    }
+}
 
 LOCAL_PATH = os.path.dirname(os.path.abspath(__file__))
 
++++++ horizon-secure_SECRET_KEY.patch ++++++
diff -ruN a/.gitignore b/.gitignore
--- a/.gitignore        2012-06-05 15:43:17.000000000 +0200
+++ b/.gitignore        2012-06-25 15:36:16.029765418 +0200
@@ -10,6 +10,7 @@
 reports
 horizon.egg-info
 openstack_dashboard/local/local_settings.py
+openstack_dashboard/test/.secret_key_store
 docs/build/
 docs/source/sourcecode
 .venv
diff -ruN a/horizon/tests/utils_tests.py b/horizon/tests/utils_tests.py
--- a/horizon/tests/utils_tests.py      2012-06-05 15:43:17.000000000 +0200
+++ b/horizon/tests/utils_tests.py      2012-06-25 15:36:32.677765799 +0200
@@ -15,8 +15,11 @@
 #    under the License.
 
 
+import os
+
 from horizon import test
 from horizon.utils import validators
+from horizon.utils import secret_key
 
 
 class ValidatorsTests(test.TestCase):
@@ -40,3 +43,26 @@
             self.assertTrue(validators.ipv4_cidr_re.match(cidr))
         for cidr in BAD_CIDRS:
             self.assertFalse(validators.ipv4_cidr_re.match(cidr))
+
+
+class SecretKeyTests(test.TestCase):
+    def test_generate_secret_key(self):
+        key = secret_key.generate_key(32)
+        self.assertEqual(len(key), 32)
+        self.assertNotEqual(key, secret_key.generate_key(32))
+
+    def test_generate_or_read_key_from_file(self):
+        key_file = ".test_secret_key_store"
+        key = secret_key.generate_or_read_from_file(key_file)
+
+        # Consecutive reads should come from the already existing file:
+        self.assertEqual(key, secret_key.generate_or_read_from_file(key_file))
+
+        # Key file only be read/writable by user:
+        self.assertEqual(oct(os.stat(key_file).st_mode & 0777), "0600")
+        os.chmod(key_file, 0777)
+        self.assertRaises(secret_key.FilePermissionError,
+                          secret_key.generate_or_read_from_file, key_file)
+        os.chmod(key_file, 0600)
+
+        os.remove(key_file)  # Cleanup
diff -ruN a/horizon/utils/secret_key.py b/horizon/utils/secret_key.py
--- a/horizon/utils/secret_key.py       1970-01-01 01:00:00.000000000 +0100
+++ b/horizon/utils/secret_key.py       2012-06-25 15:37:13.443766746 +0200
@@ -0,0 +1,68 @@
+# vim: tabstop=4 shiftwidth=4 softtabstop=4
+
+# Copyright 2012 Nebula, Inc.
+#
+#    Licensed under the Apache License, Version 2.0 (the "License"); you may
+#    not use this file except in compliance with the License. You may obtain
+#    a copy of the License at
+#
+#         http://www.apache.org/licenses/LICENSE-2.0
+#
+#    Unless required by applicable law or agreed to in writing, software
+#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+#    License for the specific language governing permissions and limitations
+#    under the License.
+
+
+from __future__ import with_statement  # Python 2.5 compliance
+
+import lockfile
+import random
+import string
+import tempfile
+import os
+
+
+class FilePermissionError(Exception):
+    """The key file permissions are insecure."""
+    pass
+
+
+def generate_key(key_length=64):
+    """Secret key generator.
+
+    The quality of randomness depends on operating system support,
+    see http://docs.python.org/library/random.html#random.SystemRandom.
+    """
+    if hasattr(random, 'SystemRandom'):
+        choice = random.SystemRandom().choice
+    else:
+        choice = random.choice
+    return ''.join(map(lambda x: choice(string.digits + string.letters),
+                   range(key_length)))
+
+
+def generate_or_read_from_file(key_file='.secret_key', key_length=64):
+    """Multiprocess-safe secret key file generator.
+
+    Useful to replace the default (and thus unsafe) SECRET_KEY in settings.py
+    upon first start. Save to use, i.e. when multiple Python interpreters
+    serve the dashboard Django application (e.g. in a mod_wsgi + daemonized
+    environment).  Also checks if file permissions are set correctly and
+    throws an exception if not.
+    """
+    lock = lockfile.FileLock(key_file)
+    with lock:
+        if not os.path.exists(key_file):
+            key = generate_key(key_length)
+            old_umask = os.umask(0177)  # Use '0600' file permissions
+            with open(key_file, 'w') as f:
+                f.write(key)
+            os.umask(old_umask)
+        else:
+            if oct(os.stat(key_file).st_mode & 0777) != '0600':
+                raise FilePermissionError("Insecure key file permissions!")
+            with open(key_file, 'r') as f:
+                key = f.readline()
+        return key
diff -ruN a/openstack_dashboard/local/local_settings.py.example 
b/openstack_dashboard/local/local_settings.py.example
--- a/openstack_dashboard/local/local_settings.py.example       2012-06-05 
15:43:17.000000000 +0200
+++ b/openstack_dashboard/local/local_settings.py.example       2012-06-25 
15:38:21.185768316 +0200
@@ -7,9 +7,6 @@
 PROD = False
 USE_SSL = False
 
-# Note: You should change this value
-SECRET_KEY = 'elj1IWiLoWHgcyYxFVLj7cM5rGOOxWl0'
-
 # Specify a regular expression to validate user passwords.
 # HORIZON_CONFIG = {
 #     "password_validator": {
@@ -20,6 +17,18 @@
 
 LOCAL_PATH = os.path.dirname(os.path.abspath(__file__))
 
+# Set custom secret key:
+# You can either set it to a specific value or you can let horizion generate a
+# default secret key that is unique on this machine, e.i. regardless of the
+# amount of Python WSGI workers (if used behind Apache+mod_wsgi): However, 
there
+# may be situations where you would want to set this explicitly, e.g. when
+# multiple dashboard instances are distributed on different machines (usually
+# behind a load-balancer). Either you have to make sure that a session gets all
+# requests routed to the same dashboard instance or you set the same SECRET_KEY
+# for all of them.
+# from horizon.utils import secret_key
+# SECRET_KEY = secret_key.generate_or_read_from_file(os.path.join(LOCAL_PATH, 
'.secret_key_store'))
+
 # We recommend you use memcached for development; otherwise after every reload
 # of the django development server, you will have to login again. To use
 # memcached set CACHE_BACKED to something like 'memcached://127.0.0.1:11211/'
diff -ruN a/tools/pip-requires b/tools/pip-requires
--- a/tools/pip-requires        2012-06-05 15:43:17.000000000 +0200
+++ b/tools/pip-requires        2012-06-25 15:38:34.263768622 +0200
@@ -17,6 +17,9 @@
 xattr
 iso8601
 
+# Horizon Utility Requirements
+lockfile # for SECURE_KEY generation
+
 # Horizon Non-pip Requirements
 -e git+https://github.com/openstack/python-novaclient.git#egg=python-novaclient
 -e 
git+https://github.com/openstack/python-keystoneclient.git#egg=python-keystoneclient
++++++ horizon-ssl.patch ++++++
Index: horizon-2012.1+git.1344931337.691dd22/horizon/api/keystone.py
===================================================================
--- horizon-2012.1+git.1344931337.691dd22.orig/horizon/api/keystone.py
+++ horizon-2012.1+git.1344931337.691dd22/horizon/api/keystone.py
@@ -113,13 +113,15 @@ def keystoneclient(request, username=Non
     else:
         endpoint_lookup = _get_endpoint_url(request, endpoint_type)
         auth_url = endpoint or endpoint_lookup
+        insecure = getattr(settings, 'OPENSTACK_SSL_NO_VERIFY', False)
         LOG.debug("Creating a new keystoneclient connection to %s." % auth_url)
         conn = keystone_client.Client(username=username or user.username,
                                       password=password,
                                       tenant_id=tenant_id or user.tenant_id,
                                       token=token_id or user.token,
                                       auth_url=auth_url,
-                                      endpoint=endpoint)
+                                      endpoint=endpoint,
+                                      insecure=insecure)
         setattr(request, cache_attr, conn)
 
     # Fetch the correct endpoint if we've re-scoped the token.
Index: 
horizon-2012.1+git.1344931337.691dd22/openstack_dashboard/local/local_settings.py.example
===================================================================
--- 
horizon-2012.1+git.1344931337.691dd22.orig/openstack_dashboard/local/local_settings.py.example
+++ 
horizon-2012.1+git.1344931337.691dd22/openstack_dashboard/local/local_settings.py.example
@@ -54,6 +54,8 @@ EMAIL_BACKEND = 'django.core.mail.backen
 OPENSTACK_HOST = "127.0.0.1"
 OPENSTACK_KEYSTONE_URL = "http://%s:5000/v2.0"; % OPENSTACK_HOST
 OPENSTACK_KEYSTONE_DEFAULT_ROLE = "Member"
+# Disable SSL certificate checks (useful for self-signed certificates):
+# OPENSTACK_SSL_NO_VERIFY = True
 
 # The OPENSTACK_KEYSTONE_BACKEND settings can be used to identify the
 # capabilities of the auth backend for Keystone.
Index: 
horizon-2012.1+git.1344931337.691dd22/horizon/tests/api_tests/keystone_tests.py
===================================================================
--- 
horizon-2012.1+git.1344931337.691dd22.orig/horizon/tests/api_tests/keystone_tests.py
+++ 
horizon-2012.1+git.1344931337.691dd22/horizon/tests/api_tests/keystone_tests.py
@@ -50,6 +50,7 @@ class ClientConnectionTests(test.TestCas
     def test_connect(self):
         keystone_client.Client(auth_url=self.internal_url,
                                endpoint=None,
+                               insecure=False,
                                password=self.user.password,
                                tenant_id=None,
                                token=None,
@@ -64,6 +65,7 @@ class ClientConnectionTests(test.TestCas
         self.test_user.roles = [{'name': 'admin'}]
         keystone_client.Client(auth_url=self.admin_url,
                                endpoint=None,
+                               insecure=False,
                                password=self.user.password,
                                tenant_id=None,
                                token=None,
Index: horizon-2012.1+git.1344931337.691dd22/horizon/api/nova.py
===================================================================
--- horizon-2012.1+git.1344931337.691dd22.orig/horizon/api/nova.py
+++ horizon-2012.1+git.1344931337.691dd22/horizon/api/nova.py
@@ -24,6 +24,9 @@ from __future__ import absolute_import
 
 import logging
 
+from django.conf import settings
+from django.utils.translation import ugettext as _
+
 from novaclient.v1_1 import client as nova_client
 from novaclient.v1_1 import security_group_rules as nova_rules
 from novaclient.v1_1.security_groups import SecurityGroup as NovaSecurityGroup
@@ -31,8 +34,6 @@ from novaclient.v1_1.servers import REBO
 
 from horizon.api.base import APIResourceWrapper, APIDictWrapper, url_for
 
-from django.utils.translation import ugettext as _
-
 LOG = logging.getLogger(__name__)
 
 
@@ -191,10 +192,12 @@ class SecurityGroupRule(APIResourceWrapp
 def novaclient(request):
     LOG.debug('novaclient connection created using token "%s" and url "%s"' %
               (request.user.token, url_for(request, 'compute')))
+    insecure = getattr(settings, 'OPENSTACK_SSL_NO_VERIFY', False)
     c = nova_client.Client(request.user.username,
                            request.user.token,
                            project_id=request.user.tenant_id,
-                           auth_url=url_for(request, 'compute'))
+                           auth_url=url_for(request, 'compute'),
+                           insecure=insecure)
     c.client.auth_token = request.user.token
     c.client.management_url = url_for(request, 'compute')
     return c
@@ -203,10 +206,12 @@ def novaclient(request):
 def cinderclient(request):
     LOG.debug('cinderclient connection created using token "%s" and url "%s"' %
               (request.user.token, url_for(request, 'volume')))
+    insecure = getattr(settings, 'OPENSTACK_SSL_NO_VERIFY', False)
     c = nova_client.Client(request.user.username,
                            request.user.token,
                            project_id=request.user.tenant_id,
-                           auth_url=url_for(request, 'volume'))
+                           auth_url=url_for(request, 'volume'),
+                           insecure=insecure)
     c.client.auth_token = request.user.token
     c.client.management_url = url_for(request, 'volume')
     return c
Index: horizon-2012.1+git.1344931337.691dd22/horizon/api/glance.py
===================================================================
--- horizon-2012.1+git.1344931337.691dd22.orig/horizon/api/glance.py
+++ horizon-2012.1+git.1344931337.691dd22/horizon/api/glance.py
@@ -89,8 +89,11 @@ def glanceclient(request):
     o = urlparse.urlparse(url_for(request, 'image'))
     LOG.debug('glanceclient connection created for host "%s:%d"' %
                      (o.hostname, o.port))
+    insecure = getattr(settings, 'OPENSTACK_SSL_NO_VERIFY', False)
     return glance_client.Client(o.hostname,
                                 o.port,
+                                insecure=insecure,
+                                use_ssl=(o.scheme == 'https'),
                                 auth_tok=request.user.token)
 
 
++++++ horizon-suse-branding.patch ++++++
diff -ruN a/horizon/templates/horizon/common/_sidebar.html 
b/horizon/templates/horizon/common/_sidebar.html
--- a/horizon/templates/horizon/common/_sidebar.html    2012-06-05 
15:43:17.000000000 +0200
+++ b/horizon/templates/horizon/common/_sidebar.html    2012-10-01 
17:01:35.901448453 +0200
@@ -1,7 +1,7 @@
 {% load horizon i18n %}
 
 <div class='sidebar'>
-  <h1 class="brand clearfix"><a href="{% url horizon:user_home %}">{% trans 
"OpenStack Dashboard" %}</a></h1>
+  <h1 class="brand clearfix"><a href="{% url horizon:user_home %}">SUSE CLoud 
Dashboard</a></h1>
 
   {% horizon_main_nav %}
 
diff -ruN a/openstack_dashboard/templates/splash.html 
b/openstack_dashboard/templates/splash.html
--- a/openstack_dashboard/templates/splash.html 2012-06-05 15:43:17.000000000 
+0200
+++ b/openstack_dashboard/templates/splash.html 2012-10-02 09:26:35.423484195 
+0200
@@ -1,8 +1,10 @@
+{% load branding %}
+
 <!DOCTYPE html>
 <html lang="en" xml:lang="en">
   <head>
     <meta http-equiv="content-type" content="text/html; charset=utf-8" />
-    <title>Login – OpenStack Dashboard</title>
+    <title>Login – {% site_branding %} Dashboard</title>
     {% include "_stylesheets.html" %}
   </head>
   <body id="splash">
Binary files a/openstack_dashboard/templates/.splash.html.swp and 
b/openstack_dashboard/templates/.splash.html.swp differ
++++++ openstack-dashboard.conf.sample ++++++
#
# OpenStack Horizon (Dashboard) Apache2 example configuration.
#
# Required Apache2 modules:
#  - mod_rewrite (If you use the port 80 -> 443 rewrite rule below)
#  - mod_ssl (If you enable the HTTPS vhost)
#


<VirtualHost *:80>
    ServerName openstack-dashboard.example.com
    ServerAdmin webmas...@openstack-dashboard.example.com

    ErrorLog /var/log/apache2/openstack-dashboard-error_log
    TransferLog /var/log/apache2/openstack-dashboard-access_log

    DocumentRoot /var/lib/openstack-dashboard/

    Alias /static/horizon /var/lib/openstack-dashboard/horizon/static/horizon
    <Directory /var/lib/openstack-dashboard/horizon/static/>
        Order allow,deny
        Allow from all
    </Directory>

    Alias /static /var/lib/openstack-dashboard/openstack_dashboard/static
    <Directory /var/lib/openstack-dashboard/openstack_dashboard/static/>
        Order allow,deny
        Allow from all
    </Directory>

    WSGIScriptAlias / 
/var/lib/openstack-dashboard/openstack_dashboard/wsgi/django.wsgi
    <Directory /var/lib/openstack-dashboard/openstack_dashboard/wsgi/>
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>


<IfDefine SSL>
<IfDefine !NOSSL>

# Uncomment the following if you want to redirect all HTTP traffic to HTTPS.
# Make sure to comment out the above <VirtualHost *:80>
#RewriteEngine On
#RewriteCond %{SERVER_PORT} ^80$
#RewriteRule / https://%{HTTP_HOST}%{REQUEST_URI} [L,R]

<VirtualHost *:443>
    ServerName openstack-dashboard.example.com
    ServerAdmin webmas...@openstack-dashboard.example.com

    ErrorLog /var/log/apache2/openstack-dashboard-error_log
    TransferLog /var/log/apache2/openstack-dashboard-access_log

    SSLEngine On
    SSLCertificateFile /etc/apache2/ssl.crt/openstack-dashboard-server.crt
    SSLCertificateKeyFile /etc/apache2/ssl.key/openstack-dashboard-server.key

    DocumentRoot /var/lib/openstack-dashboard/

    Alias /static/horizon /var/lib/openstack-dashboard/horizon/static/horizon
    <Directory /var/lib/openstack-dashboard/horizon/static/>
        Order allow,deny
        Allow from all
    </Directory>

    Alias /static /var/lib/openstack-dashboard/openstack_dashboard/static
    <Directory /var/lib/openstack-dashboard/openstack_dashboard/static/>
        Order allow,deny
        Allow from all
    </Directory>

    WSGIScriptAlias / 
/var/lib/openstack-dashboard/openstack_dashboard/wsgi/django.wsgi
    <Directory /var/lib/openstack-dashboard/openstack_dashboard/wsgi/>
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

</IfDefine>
</IfDefine>
++++++ rpmlintrc ++++++
#TODO: Fix this later on (i.e. SLE-12), Python on SLE-11 is way beyond broken:
addFilter("no-binary")
# This symling is for the -test package and can be ignored:
addFilter("dangling-symlink 
/var/lib/openstack-dashboard-test/openstack_dashboard")
addFilter("dangling-symlink /var/lib/openstack-dashboard-test/horizon")
addFilter("dangling-symlink 
/usr/lib.*/python.*/site-packages/openstack_dashboard/local 
/var/lib/openstack-dashboard/openstack_dashboard/local")
# False positive, those files are actually found elsewhere:
addFilter("file-not-in-%lang /var/lib/openstack-dashboard-test")
# Pylint config may be useful for testing:
addFilter("hidden-file-or-dir /var/lib/openstack-dashboard-test/.pylintrc")
++++++ suse-patches.diff ++++++
diff --git 
a/horizon/dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html
 
b/horizon/dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html
index aacb429..34dbe8f 100644
--- 
a/horizon/dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html
+++ 
b/horizon/dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_overview.html
@@ -93,5 +93,4 @@
         <li><em>{% trans "No volumes attached." %}</em></li>
       </ul>
     {% endif %}
-  </dl>
 </div>
diff --git a/horizon/dashboards/syspanel/users/tables.py 
b/horizon/dashboards/syspanel/users/tables.py
index fe51a3a..6e1b244 100644
--- a/horizon/dashboards/syspanel/users/tables.py
+++ b/horizon/dashboards/syspanel/users/tables.py
@@ -109,7 +109,7 @@ class UserFilterAction(tables.FilterAction):
 
         def comp(user):
             if any([q in (user.name or "").lower(),
-                    q in (user.email or "").lower()]):
+                    q in ((hasattr(user, 'email') and user.email) or 
"").lower()]):
                 return True
             return False
 
diff --git a/openstack_dashboard/settings.py b/openstack_dashboard/settings.py
index 5153759..a2d95c6 100644
--- a/openstack_dashboard/settings.py
+++ b/openstack_dashboard/settings.py
@@ -94,7 +94,7 @@ INSTALLED_APPS = (
     'django.contrib.sessions',
     'django.contrib.messages',
     'django.contrib.staticfiles',
-    'django_nose',
+    #'django_nose',
     'horizon',
     'horizon.dashboards.nova',
     'horizon.dashboards.syspanel',
diff --git a/openstack_dashboard/wsgi/django.wsgi 
b/openstack_dashboard/wsgi/django.wsgi
index 1e92a4d..1166eaa 100644
--- a/openstack_dashboard/wsgi/django.wsgi
+++ b/openstack_dashboard/wsgi/django.wsgi
@@ -4,6 +4,9 @@ import sys
 import django.core.handlers.wsgi
 from django.conf import settings
 
+sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), 
"../../")))
+sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), 
"../")))
+
 # Add this file path to sys.path in order to import settings
 sys.path.insert(0, os.path.join(os.path.dirname(os.path.realpath(__file__)), 
'../..'))
 os.environ['DJANGO_SETTINGS_MODULE'] = 'openstack_dashboard.settings'
diff --git a/tools/pip-requires b/tools/pip-requires
index 498cc1b..b35573c 100644
--- a/tools/pip-requires
+++ b/tools/pip-requires
@@ -7,7 +7,7 @@ django-nose
 # Glance Requirements
 PasteDeploy
 eventlet
-kombu
+#kombu # required?
 paste
 pycrypto==2.3
 routes
++++++ vnc-iframe-size.patch ++++++
--- 
horizon/dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html
+++ 
horizon/dashboards/nova/templates/nova/instances_and_volumes/instances/_detail_vnc.html
@@ -3,7 +3,7 @@
 <h3>{% trans "Instance VNC Console" %}</h3>
 {% if vnc_url %}
 <p class='alert alert-info'>{% blocktrans %}If VNC console is not responding 
to keyboard input: click the grey status bar below.{% endblocktrans %} <a 
href="{{ vnc_url }}">{% trans "Click here to show only VNC" %}</a></p>
-<iframe src="{{ vnc_url }}" width="720" height="430"></iframe>
+<iframe src="{{ vnc_url }}" width="800" height="644"></iframe>
 {% else %}
 <p class='alert alert-error'>{% blocktrans %}VNC console is currently 
unavailabe. Please try again later.{% endblocktrans %}
 <a class='btn btn-mini' href="{% url 
horizon:nova:instances_and_volumes:instances:detail instance_id %}">{% trans 
"Reload" %}</a></p>
-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to