graphite-dev team mailing list archive
-
graphite-dev team
-
Mailing list archive
-
Message #03665
[Question #218547]: Dashboard becomes unusable when UI configured for Tree (left navbar) after it was previously configured for Completer (top navbar)
New question #218547 on Graphite:
https://answers.launchpad.net/graphite/+question/218547
I have spent about 12 hours over the past two workdays building a graphite system based on CentOS 5.7. It took a long time because most of the default system packages had to be replaced for compatibility reasons, but that is understandable given the array of functionality involved.
I finally was very happy with how I had it set up and I started poking around in the UI to take a look at the options. One of them was a Dashboard dropdown with a "Configure UI" option. When I toggled the "Navigation Bar" setting behind that option, my whole graphite install became unusable. When I log into the dashboard the page displays only the text
"Drop To Merge"
and nothing else. I can't undo the change because the page that stopped working was the page where I could make the change.
I also had just told the intended users of the system that it was finally ready to go, so this is pretty frustrating.
Also, I found someone else's random graphite dashboard online. I haven't tried changing the setting on that to see if this is really a reproducible bug, but if it is then this might qualify as a security issue since it would allow arbitrary internet users to break anyone's graphite system. Please feel free to downgrade this to "Not a security vulnerability" if I am wrong.
Here is the list of sources I used to perform my install:
apr-1.4.6
apr-util-1.5.1
cairo-1.10.2
carbon-0.9.10
db-5.3.21
Django-1.4.3
django-tagging-0.3.1
graphite-web-0.9.10
httpd-2.2.23
libevent-2.0.21-stable
memcached-1.4.15
mod_wsgi-3.4
mysql-5.5.29
MySQL-python-1.2.4b4
openldap-2.4.33
pip-1.2.1
pixman-0.22.2
py2cairo-1.10.0
Python-2.7
python-ldap-2.4.10
python-memcached-1.48
python-txamqp-0.3
setuptools-0.6c11
Twisted-12.3.0
unixODBC-2.3.1
whisper-0.9.10
zope.interface-3.6.7
The page source of the "Drop To Merge" dashboard is:
<html>
<head>
<title>Graphite Dashboard</title>
<link rel="stylesheet" type="text/css" href="/content/js/ext/resources/css/ext-all.css"/>
<link rel="stylesheet" type="text/css" href="/content/css/dashboard.css"/>
<script type="text/javascript">
var schemes = [{"pattern": "<category>", "name": "Everything", "fields": [{"name": "category", "label": "Category"}]}];
var UI_CONFIG = {"default_graph_height": 250, "automatic_variants": true, "theme": "default", "default_graph_width": 400, "merge_hover_delay": 750, "keyboard_shortcuts": {"toggle_toolbar": "ctrl-z", "completer_add_metrics": "alt-enter", "erase_all_graphs": "alt-x", "toggle_metrics_panel": "ctrl-space", "completer_del_metrics": "alt-backspace", "save_dashboard": "alt-s", "give_completer_focus": "shift-space"}, "autocomplete_delay": 375, "refresh_interval": 60};
var CONTEXT_FIELD_WIDTH = 220;
var AUTOCOMPLETE_DELAY = UI_CONFIG.autocomplete_delay;
var FINDER_QUERY_DELAY = 100;
var NEW_DASHBOARD_REMOVE_GRAPHS = false;
var RESIZE_ICON = '/content/js/ext/examples/shared/icons/fam/cog_edit.png';
var REMOVE_ICON = '/content/js/ext/examples/shared/icons/fam/cross.gif';
var REFRESH_ICON = '/content/js/ext/examples/shared/icons/fam/table_refresh.png';
var SHARE_ICON = '/content/js/ext/examples/shared/icons/fam/application_go.png';
var CALENDAR_ICON = '/content/js/ext/resources/images/default/shared/calendar.gif';
var CLOCK_ICON = '/content/img/clock_16.png';
var HELP_ICON = '/content/js/ext/examples/shared/icons/fam/information.png';
var initialState = null;
var initialError = null;
var queryString = {};
</script>
<!-- Theme overrides -->
<link rel="stylesheet" type="text/css" href="/content/css/dashboard-default.css"/>
<script type="text/javascript" src="/content/js/ext/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="/content/js/ext/ext-all.js"></script>
<script type="text/javascript" src="/content/js/ext/ux/DataViewTransition.js"></script>
<script type="text/javascript" src="/content/js/composer_widgets.js"></script>
<script type="text/javascript" src="/content/js/dashboard.js"></script>
<script type="text/javascript">
Ext.BLANK_IMAGE_URL = '/content/js/ext/resources/images/default/s.gif';
Ext.QuickTips.init();
Ext.onReady(initDashboard);
</script>
</head>
<body>
<div id='merge'>Drop To Merge</div>
</body>
</html>
--
You received this question notification because you are a member of
graphite-dev, which is an answer contact for Graphite.