The base test class `LocalTestCase` will setup base objects for all tests to use but because this is called for each test the IDs of the objects will change between tests. One of the child test classes `TestAPI` has a some static data used to check the response of API calls, however these IDs were hard coded meaning that if the order of the tests changed for any reason the test would fail. To fix this the IDs of the static data have been replaced with the object ID meaning they will always be correct.
Adding a new field for linkable recovery instructions, i.e. a link to a
runbook on the company's wiki.
A few notes/things to point out in this change:
* I expanded form field widths on the service and instance pages...
I had to add a new field and it was really small by default, so I made
all the widths match because I think it looks better.
* The InstanceForm class had hackpad_id defined as a field, but not as a
widget, so it wasn't visiable. I think that was a mistake, so I
cleaned it up. For most users I don't think it make sense to have
documentation for particular instances, so removing it seems like the
right thing to do.
Closes#273
We experienced problems on certain StatusChecks that had a moderate number of StatusCheckResults that had problems looking up the latest check when updating. This lead to high load on the database and the app not being able to update checks correctly. Having an index on the exact lookup of `last_result` removes this problem.
Bump celery version from 3.1.7 to 3.1.23 to fix memory leak issue
(see https://github.com/celery/celery/issues/2927)
Also bump kombu (as celery depends on it), amqp and billiard
without which cabot/celery would not start.
this adds the ability to add a prefix to all generated URLs
so placing cabot under a subdirectory of a web server is possible,
such as with a reverse proxy.
resolves#321
the way that raw data was handled before meant that injection could be possible
for XSS or just general page breakage when assigning the raw data from the result
onto the window DATA variable.
this change makes it so we parse the value as an escapes JS string value, and on
failure assigns an empty object
this does mean that instead of the original behavior of failing with a JS error
on non-valid JSON data we instead create an empty object into window.DATA
fixes#231
I'm trying to use the cabot-alert-pagerduty plugin and found that it
expects all users to have profiles. I think that's a pretty reasonable
assumption, so here's a change that automatically creates profiles
when new users are created using the post_save signal.