Login
Log in using an SSO provider:
Fedora Account System
Red Hat Associate
Red Hat Customer
Login using a Red Hat Bugzilla account
Forgot Password
Create an Account
Red Hat Bugzilla – Attachment 695133 Details for
Bug 887811
a comprehensive glance-*.conf files should be included
Home
New
Search
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh92 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
[?]
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
Proposed final version of patch
0001-Move-glance-distribution-config-to-usr-share.patch (text/plain), 19.36 KB, created by
Eoghan Glynn
on 2013-02-08 15:35:53 UTC
(
hide
)
Description:
Proposed final version of patch
Filename:
MIME Type:
Creator:
Eoghan Glynn
Created:
2013-02-08 15:35:53 UTC
Size:
19.36 KB
patch
obsolete
>From 54311275463487c5a2de4fed05ecb7890789a310 Mon Sep 17 00:00:00 2001 >From: Eoghan Glynn <eglynn@redhat.com> >Date: Fri, 1 Feb 2013 12:12:04 -0500 >Subject: [PATCH] Move glance distribution config to /usr/share. > >Instead of placing the distribution glance-{api|registry}.conf >and correspoding paste.ini files under /etc/glance, we now >create "-dist" versions of these files in /usr/share, containing >non-default initial config values. > >The old default config location under /etc/glance is now reserved >for user-overridable config, initially all comment'd out. > >The %config(noreplace) macro is set on the user-editable files >(so that user edits are not lost when the package is removed), >but not on the distribution config (which is not expected to be >modified post-install). > >A new upstart/init config is provided for the glance scrubber >service, so that the distribution config can be picked up by >default, as with the api and registry services. > >Finally the glance-cache-* utilities are modified to retrieve >the distribution config first. >--- > glance-api-dist.conf | 5 ++ > glance-cache-dist.conf | 3 + > glance-registry-dist.conf | 3 + > glance-scrubber-dist.conf | 3 + > openstack-glance-api.init | 8 ++- > openstack-glance-api.upstart | 2 +- > openstack-glance-registry.init | 9 ++- > openstack-glance-registry.upstart | 2 +- > openstack-glance-scrubber.init | 103 +++++++++++++++++++++++++++++++++++++ > openstack-glance-scrubber.upstart | 8 +++ > openstack-glance.spec | 95 ++++++++++++++++++++++++++-------- > 11 files changed, 211 insertions(+), 30 deletions(-) > create mode 100644 glance-api-dist.conf > create mode 100644 glance-cache-dist.conf > create mode 100644 glance-registry-dist.conf > create mode 100644 glance-scrubber-dist.conf > create mode 100644 openstack-glance-scrubber.init > create mode 100644 openstack-glance-scrubber.upstart > >diff --git a/glance-api-dist.conf b/glance-api-dist.conf >new file mode 100644 >index 0000000..c079ff0 >--- /dev/null >+++ b/glance-api-dist.conf >@@ -0,0 +1,5 @@ >+[DEFAULT] >+ >+verbose = True >+qpid_heartbeat = 5 >+scrub_time = 43200 >diff --git a/glance-cache-dist.conf b/glance-cache-dist.conf >new file mode 100644 >index 0000000..53e5737 >--- /dev/null >+++ b/glance-cache-dist.conf >@@ -0,0 +1,3 @@ >+[DEFAULT] >+ >+verbose = True >diff --git a/glance-registry-dist.conf b/glance-registry-dist.conf >new file mode 100644 >index 0000000..53e5737 >--- /dev/null >+++ b/glance-registry-dist.conf >@@ -0,0 +1,3 @@ >+[DEFAULT] >+ >+verbose = True >diff --git a/glance-scrubber-dist.conf b/glance-scrubber-dist.conf >new file mode 100644 >index 0000000..53e5737 >--- /dev/null >+++ b/glance-scrubber-dist.conf >@@ -0,0 +1,3 @@ >+[DEFAULT] >+ >+verbose = True >diff --git a/openstack-glance-api.init b/openstack-glance-api.init >index 549b63d..d95ab2d 100644 >--- a/openstack-glance-api.init >+++ b/openstack-glance-api.init >@@ -19,7 +19,8 @@ > suffix=api > prog=openstack-glance-$suffix > exec="/usr/bin/glance-$suffix" >-config="/etc/glance/glance-$suffix.conf" >+dist_config="/usr/share/glance/glance-$suffix-dist.conf" >+user_config="/etc/glance/glance-$suffix.conf" > pidfile="/var/run/glance/glance-$suffix.pid" > > [ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog >@@ -28,9 +29,10 @@ lockfile=/var/lock/subsys/$prog > > start() { > [ -x $exec ] || exit 5 >- [ -f $config ] || exit 6 >+ [ -f $dist_config ] || exit 6 >+ [ -f $user_config ] || exit 7 > echo -n $"Starting $prog: " >- daemon --user glance --pidfile $pidfile "$exec --config-file $config --debug --verbose &>/dev/null & echo \$! > $pidfile" >+ daemon --user glance --pidfile $pidfile "$exec --config-file $dist_config --config-file $user_config --debug --verbose &>/dev/null & echo \$! > $pidfile" > retval=$? > echo > [ $retval -eq 0 ] && touch $lockfile >diff --git a/openstack-glance-api.upstart b/openstack-glance-api.upstart >index 1539397..d6fdd4f 100644 >--- a/openstack-glance-api.upstart >+++ b/openstack-glance-api.upstart >@@ -5,4 +5,4 @@ stop on runlevel [S016] > > respawn > >-exec su -s /bin/sh -c "exec /usr/bin/glance-api --config-file /etc/glance/glance-api.conf" glance >+exec su -s /bin/sh -c "exec /usr/bin/glance-api --config-file /usr/share/lib/glance/glance-api-dist.conf --config-file /etc/glance/glance-api.conf" glance >diff --git a/openstack-glance-registry.init b/openstack-glance-registry.init >index 48bab47..6f6c200 100644 >--- a/openstack-glance-registry.init >+++ b/openstack-glance-registry.init >@@ -19,7 +19,9 @@ > suffix=registry > prog=openstack-glance-$suffix > exec="/usr/bin/glance-$suffix" >-config="/etc/glance/glance-$suffix.conf" >+dist_config="/usr/share/glance/glance-$suffix-dist.conf" >+user_config="/etc/glance/glance-$suffix.conf" >+ > pidfile="/var/run/glance/glance-$suffix.pid" > > [ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog >@@ -28,9 +30,10 @@ lockfile=/var/lock/subsys/$prog > > start() { > [ -x $exec ] || exit 5 >- [ -f $config ] || exit 6 >+ [ -f $dist_config ] || exit 6 >+ [ -f $user_config ] || exit 7 > echo -n $"Starting $prog: " >- daemon --user glance --pidfile $pidfile "$exec --config-file $config --debug --verbose &>/dev/null & echo \$! > $pidfile" >+ daemon --user glance --pidfile $pidfile "$exec --config-file $dist_config --config-file $user_config --debug --verbose &>/dev/null & echo \$! > $pidfile" > retval=$? > echo > [ $retval -eq 0 ] && touch $lockfile >diff --git a/openstack-glance-registry.upstart b/openstack-glance-registry.upstart >index eccae41..b0bdecb 100644 >--- a/openstack-glance-registry.upstart >+++ b/openstack-glance-registry.upstart >@@ -5,4 +5,4 @@ stop on runlevel [S016] > > respawn > >-exec su -s /bin/sh -c "exec /usr/bin/glance-registry --config-file /etc/glance/glance-registry.conf" glance >+exec su -s /bin/sh -c "exec /usr/bin/glance-registry --config-file /usr/share/glance/glance-registry-dist.conf --config-file /etc/glance/glance-registry.conf" glance >diff --git a/openstack-glance-scrubber.init b/openstack-glance-scrubber.init >new file mode 100644 >index 0000000..b2b260a >--- /dev/null >+++ b/openstack-glance-scrubber.init >@@ -0,0 +1,103 @@ >+#!/bin/sh >+# >+# openstack-glance-scrubber OpenStack Image Service scrubber daemon >+# >+# chkconfig: - 98 02 >+# description: OpenStack Image Service (code-named Glance) scrubber daemon >+ >+### BEGIN INIT INFO >+# Provides: >+# Required-Start: $remote_fs $network $syslog >+# Required-Stop: $remote_fs $syslog >+# Default-Stop: 0 1 6 >+# Short-Description: Glance scrubber daemon >+# Description: OpenStack Image Service (code-named Glance) scrubber daemon >+### END INIT INFO >+ >+. /etc/rc.d/init.d/functions >+ >+suffix=scrubber >+prog=openstack-glance-$suffix >+exec="/usr/bin/glance-$suffix" >+dist_config="/usr/share/glance/glance-$suffix-dist.conf" >+user_config="/etc/glance/glance-$suffix.conf" >+pidfile="/var/run/glance/glance-$suffix.pid" >+ >+[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog >+ >+lockfile=/var/lock/subsys/$prog >+ >+start() { >+ [ -x $exec ] || exit 5 >+ [ -f $dist_config ] || exit 6 >+ [ -f $user_config ] || exit 7 >+ echo -n $"Starting $prog: " >+ daemon --user glance --pidfile $pidfile "$exec --daemon --config-file $dist_config --config-file $user_config --debug --verbose &>/dev/null & echo \$! > $pidfile" >+ retval=$? >+ echo >+ [ $retval -eq 0 ] && touch $lockfile >+ return $retval >+} >+ >+stop() { >+ echo -n $"Stopping $prog: " >+ killproc -p $pidfile $prog >+ retval=$? >+ echo >+ [ $retval -eq 0 ] && rm -f $lockfile >+ return $retval >+} >+ >+restart() { >+ stop >+ start >+} >+ >+reload() { >+ restart >+} >+ >+force_reload() { >+ restart >+} >+ >+rh_status() { >+ status -p $pidfile $prog >+} >+ >+rh_status_q() { >+ rh_status >/dev/null 2>&1 >+} >+ >+ >+case "$1" in >+ start) >+ rh_status_q && exit 0 >+ $1 >+ ;; >+ stop) >+ rh_status_q || exit 0 >+ $1 >+ ;; >+ restart) >+ $1 >+ ;; >+ reload) >+ rh_status_q || exit 7 >+ $1 >+ ;; >+ force-reload) >+ force_reload >+ ;; >+ status) >+ rh_status >+ ;; >+ condrestart|try-restart) >+ rh_status_q || exit 0 >+ restart >+ ;; >+ *) >+ echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" >+ exit 2 >+esac >+exit $? >diff --git a/openstack-glance-scrubber.upstart b/openstack-glance-scrubber.upstart >new file mode 100644 >index 0000000..a06cd6c >--- /dev/null >+++ b/openstack-glance-scrubber.upstart >@@ -0,0 +1,8 @@ >+description "OpenStack Image Service (code-named Glance) API server" >+ >+start on stopped rc RUNLEVEL=[2345] >+stop on runlevel [S016] >+ >+respawn >+ >+exec su -s /bin/sh -c "exec /usr/bin/glance-scrubber --daemon --config-file /usr/share/lib/glance/glance-scrubber-dist.conf --config-file /etc/glance/glance-scrubber.conf" glance >diff --git a/openstack-glance.spec b/openstack-glance.spec >index 40ba0f1..eb03d4e 100644 >--- a/openstack-glance.spec >+++ b/openstack-glance.spec >@@ -3,7 +3,7 @@ > # > Name: openstack-glance > Version: 2012.2.1 >-Release: 5%{?dist} >+Release: 6%{?dist} > Summary: OpenStack Image Service > > Group: Applications/System >@@ -15,6 +15,12 @@ Source100: openstack-glance-api.upstart > Source2: openstack-glance-registry.init > Source200: openstack-glance-registry.upstart > Source3: openstack-glance.logrotate >+Source4: glance-api-dist.conf >+Source5: glance-registry-dist.conf >+Source6: glance-cache-dist.conf >+Source7: glance-scrubber-dist.conf >+Source8: openstack-glance-scrubber.init >+Source800: openstack-glance-scrubber.upstart > > # > # patches_base=2012.2.1_rhos >@@ -134,35 +140,29 @@ echo %{version} > glance/versioninfo > %build > > # Change the default config >-openstack-config --set etc/glance-registry.conf DEFAULT sql_connection mysql://glance:glance@localhost/glance >-openstack-config --set etc/glance-api.conf DEFAULT sql_connection mysql://glance:glance@localhost/glance >-# Move authtoken configuration out of paste.ini >+ > openstack-config --del etc/glance-api-paste.ini filter:authtoken admin_tenant_name > openstack-config --del etc/glance-api-paste.ini filter:authtoken admin_user > openstack-config --del etc/glance-api-paste.ini filter:authtoken admin_password > openstack-config --del etc/glance-api-paste.ini filter:authtoken auth_host > openstack-config --del etc/glance-api-paste.ini filter:authtoken auth_port > openstack-config --del etc/glance-api-paste.ini filter:authtoken auth_protocol >-#openstack-config --set etc/glance-api.conf paste_deploy flavor keystone >-openstack-config --set etc/glance-api.conf keystone_authtoken admin_tenant_name %%SERVICE_TENANT_NAME%% >-openstack-config --set etc/glance-api.conf keystone_authtoken admin_user %SERVICE_USER% >-openstack-config --set etc/glance-api.conf keystone_authtoken admin_password %SERVICE_PASSWORD% >-openstack-config --set etc/glance-api.conf keystone_authtoken auth_host 127.0.0.1 >-openstack-config --set etc/glance-api.conf keystone_authtoken auth_port 35357 >-openstack-config --set etc/glance-api.conf keystone_authtoken auth_protocol http >+ >+# Remove unsupported RBD config >+sed -i '/RBD Store Options/,/Delayed Delete Options/ { /Delayed Delete Options/b; d }' etc/glance-api.conf >+ > openstack-config --del etc/glance-registry-paste.ini filter:authtoken admin_tenant_name > openstack-config --del etc/glance-registry-paste.ini filter:authtoken admin_user > openstack-config --del etc/glance-registry-paste.ini filter:authtoken admin_password > openstack-config --del etc/glance-registry-paste.ini filter:authtoken auth_host > openstack-config --del etc/glance-registry-paste.ini filter:authtoken auth_port > openstack-config --del etc/glance-registry-paste.ini filter:authtoken auth_protocol >-#openstack-config --set etc/glance-registry.conf paste_deploy flavor keystone >-openstack-config --set etc/glance-registry.conf keystone_authtoken admin_tenant_name %%SERVICE_TENANT_NAME%% >-openstack-config --set etc/glance-registry.conf keystone_authtoken admin_user %SERVICE_USER% >-openstack-config --set etc/glance-registry.conf keystone_authtoken admin_password %SERVICE_PASSWORD% >-openstack-config --set etc/glance-registry.conf keystone_authtoken auth_host 127.0.0.1 >-openstack-config --set etc/glance-registry.conf keystone_authtoken auth_port 35357 >-openstack-config --set etc/glance-registry.conf keystone_authtoken auth_protocol http >+ >+# Comment out defaulted config >+for svc in api registry cache scrubber >+do >+ sed -i '/^[^#\[]/s/^/#/' etc/glance-$svc.conf >+done > > %{__python} setup.py build > >@@ -200,21 +200,63 @@ install -d -m 755 %{buildroot}%{_sharedstatedir}/glance/images > > # Config file > install -p -D -m 640 etc/glance-api.conf %{buildroot}%{_sysconfdir}/glance/glance-api.conf >-install -p -D -m 640 etc/glance-api-paste.ini %{buildroot}%{_sysconfdir}/glance/glance-api-paste.ini >+install -p -D -m 640 %{SOURCE4} %{buildroot}%{_datadir}/glance/glance-api-dist.conf >+install -p -D -m 640 etc/glance-api-paste.ini %{buildroot}%{_datadir}/glance/glance-api-dist-paste.ini > install -p -D -m 640 etc/glance-registry.conf %{buildroot}%{_sysconfdir}/glance/glance-registry.conf >-install -p -D -m 640 etc/glance-registry-paste.ini %{buildroot}%{_sysconfdir}/glance/glance-registry-paste.ini >+install -p -D -m 640 %{SOURCE5} %{buildroot}%{_datadir}/glance/glance-registry-dist.conf >+install -p -D -m 640 etc/glance-registry-paste.ini %{buildroot}%{_datadir}/glance/glance-registry-dist-paste.ini > install -p -D -m 640 etc/glance-cache.conf %{buildroot}%{_sysconfdir}/glance/glance-cache.conf >+install -p -D -m 640 %{SOURCE6} %{buildroot}%{_datadir}/glance/glance-cache-dist.conf > install -p -D -m 640 etc/glance-scrubber.conf %{buildroot}%{_sysconfdir}/glance/glance-scrubber.conf >+install -p -D -m 640 %{SOURCE7} %{buildroot}%{_datadir}/glance/glance-scrubber-dist.conf >+ > install -p -D -m 640 etc/policy.json %{buildroot}%{_sysconfdir}/glance/policy.json > install -p -D -m 640 etc/schema-image.json %{buildroot}%{_sysconfdir}/glance/schema-image.json > >+openstack-config --set %{buildroot}%{_datadir}/glance/glance-api-dist.conf DEFAULT filesystem_store_datadir %{_localstatedir}/lib/glance/images/ >+openstack-config --set %{buildroot}%{_datadir}/glance/glance-api-dist.conf DEFAULT scrubber_datadir %{_localstatedir}/lib/glance/scrubber >+openstack-config --set %{buildroot}%{_datadir}/glance/glance-api-dist.conf DEFAULT image_cache_dir %{_localstatedir}/lib/glance/image-cache/ >+ >+for svc in api registry >+do >+ openstack-config --set %{buildroot}%{_datadir}/glance/glance-$svc-dist.conf DEFAULT sql_connection mysql://glance:glance@localhost/glance >+ openstack-config --set %{buildroot}%{_datadir}/glance/glance-$svc-dist.conf DEFAULT log_file %{_localstatedir}/log/glance/$svc.log >+ openstack-config --set %{buildroot}%{_datadir}/glance/glance-$svc-dist.conf keystone_authtoken admin_tenant_name %%SERVICE_TENANT_NAME%% >+ openstack-config --set %{buildroot}%{_datadir}/glance/glance-$svc-dist.conf keystone_authtoken admin_user %SERVICE_USER% >+ openstack-config --set %{buildroot}%{_datadir}/glance/glance-$svc-dist.conf keystone_authtoken admin_password %SERVICE_PASSWORD% >+ openstack-config --set %{buildroot}%{_datadir}/glance/glance-$svc-dist.conf keystone_authtoken auth_host 127.0.0.1 >+ openstack-config --set %{buildroot}%{_datadir}/glance/glance-$svc-dist.conf keystone_authtoken auth_port 35357 >+ openstack-config --set %{buildroot}%{_datadir}/glance/glance-$svc-dist.conf keystone_authtoken auth_protocol http >+ openstack-config --set %{buildroot}%{_datadir}/glance/glance-$svc-dist.conf paste_deploy config_file %{_datadir}/glance/glance-$svc-dist-paste.ini >+done >+ >+openstack-config --set %{buildroot}%{_datadir}/glance/glance-cache-dist.conf DEFAULT image_cache_dir %{_localstatedir}/lib/glance/image-cache/ >+openstack-config --set %{buildroot}%{_datadir}/glance/glance-cache-dist.conf DEFAULT log_file %{_localstatedir}/log/glance/image-cache.log >+openstack-config --set %{buildroot}%{_datadir}/glance/glance-scrubber-dist.conf DEFAULT scrubber_datadir %{_localstatedir}/lib/glance/scrubber >+openstack-config --set %{buildroot}%{_datadir}/glance/glance-scrubber-dist.conf DEFAULT log_file %{_localstatedir}/log/glance/scrubber.log >+ >+# Modify cache utilities to pick up distribution config by default >+for role in cleaner prefetcher pruner >+do >+ sed -i '/^CONF = cfg.CONF$/ a\ >+if (not("--config-file" in sys.argv or "--config-dir" in sys.argv)):\ >+ sys.argv.append("--config-file")\ >+ sys.argv.append("/usr/share/glance/glance-cache-dist.conf")\ >+ sys.argv.append("--config-file")\ >+ sys.argv.append("/etc/glance/glance-cache.conf")' bin/glance-cache-$role >+ >+ install -p -D -m 755 bin/glance-cache-$role %{buildroot}%{_bindir}/glance-cache-$role >+done >+ > # Initscripts > install -p -D -m 755 %{SOURCE1} %{buildroot}%{_initrddir}/openstack-glance-api > install -p -D -m 755 %{SOURCE2} %{buildroot}%{_initrddir}/openstack-glance-registry >+install -p -D -m 755 %{SOURCE8} %{buildroot}%{_initrddir}/openstack-glance-scrubber > > # Install upstart jobs examples > install -p -m 644 %{SOURCE100} %{buildroot}%{_datadir}/glance/ > install -p -m 644 %{SOURCE200} %{buildroot}%{_datadir}/glance/ >+install -p -m 644 %{SOURCE800} %{buildroot}%{_datadir}/glance/ > > # Logrotate config > install -p -D -m 644 %{SOURCE3} %{buildroot}%{_sysconfdir}/logrotate.d/openstack-glance >@@ -235,6 +277,7 @@ exit 0 > %post > /sbin/chkconfig --add openstack-glance-api > /sbin/chkconfig --add openstack-glance-registry >+/sbin/chkconfig --add openstack-glance-scrubber > > %preun > if [ $1 = 0 ] ; then >@@ -242,6 +285,8 @@ if [ $1 = 0 ] ; then > /sbin/chkconfig --del openstack-glance-api > /sbin/service openstack-glance-registry stop >/dev/null 2>&1 > /sbin/chkconfig --del openstack-glance-registry >+ /sbin/service openstack-glance-scrubber stop >/dev/null 2>&1 >+ /sbin/chkconfig --del openstack-glance-scrubber > fi > > %files >@@ -258,20 +303,26 @@ fi > %{_bindir}/glance-replicator > %{_initrddir}/openstack-glance-api > %{_initrddir}/openstack-glance-registry >+%{_initrddir}/openstack-glance-scrubber > %dir %{_datadir}/glance > %{_datadir}/glance/openstack-glance-api.upstart > %{_datadir}/glance/openstack-glance-registry.upstart >+%{_datadir}/glance/openstack-glance-scrubber.upstart > %{_mandir}/man1/glance*.1.gz > %dir %{_sysconfdir}/glance > %config(noreplace) %attr(-, root, glance) %{_sysconfdir}/glance/glance-api.conf >-%config(noreplace) %attr(-, root, glance) %{_sysconfdir}/glance/glance-api-paste.ini > %config(noreplace) %attr(-, root, glance) %{_sysconfdir}/glance/glance-registry.conf >-%config(noreplace) %attr(-, root, glance) %{_sysconfdir}/glance/glance-registry-paste.ini > %config(noreplace) %attr(-, root, glance) %{_sysconfdir}/glance/glance-cache.conf > %config(noreplace) %attr(-, root, glance) %{_sysconfdir}/glance/glance-scrubber.conf > %config(noreplace) %attr(-, root, glance) %{_sysconfdir}/glance/policy.json > %config(noreplace) %attr(-, root, glance) %{_sysconfdir}/glance/schema-image.json > %config(noreplace) %attr(-, root, glance) %{_sysconfdir}/logrotate.d/openstack-glance >+%attr(-, root, glance) %{_datadir}/glance/glance-api-dist.conf >+%attr(-, root, glance) %{_datadir}/glance/glance-api-dist-paste.ini >+%attr(-, root, glance) %{_datadir}/glance/glance-registry-dist.conf >+%attr(-, root, glance) %{_datadir}/glance/glance-registry-dist-paste.ini >+%attr(-, root, glance) %{_datadir}/glance/glance-cache-dist.conf >+%attr(-, root, glance) %{_datadir}/glance/glance-scrubber-dist.conf > %dir %attr(0755, glance, glance) %{_sharedstatedir}/glance > %dir %attr(0755, glance, glance) %{_localstatedir}/log/glance > %dir %attr(0755, glance, glance) %{_localstatedir}/run/glance >-- >1.7.1 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 887811
:
691642
|
692949
|
693472
|
695133
|
695136