Example #1
0
    def test_update_plugins(self):
        # Test that disabling a plugin is detected by update_alert_plugins
        plugins = update_alert_plugins()
        plugin_count = len(plugins)
        new_apps = [s for s in settings.INSTALLED_APPS if s not in ['cabot_alert_hipchat']]

        with self.settings(INSTALLED_APPS=new_apps):
            plugins = update_alert_plugins()
            self.assertEqual(len(plugins), plugin_count - 1)
Example #2
0
    def test_update_plugins(self):
        # Test that disabling a plugin is detected by update_alert_plugins
        plugins = update_alert_plugins()
        plugin_count = len(plugins)
        new_apps = [s for s in settings.INSTALLED_APPS if s not in ['cabot_alert_hipchat']]

        with self.settings(INSTALLED_APPS=new_apps):
            plugins = update_alert_plugins()
            self.assertEqual(len(plugins), plugin_count - 1)
Example #3
0
class ServiceCreateView(LoginRequiredMixin, CreateView):
    model = Service
    form_class = ServiceForm

    alert.update_alert_plugins()
    def get_success_url(self):
        return reverse('service', kwargs={'pk': self.object.id})
    def setUp(self):
        super(TestMattermostAlerts, self).setUp()

        self.mattermost_user_data = models.MattermostAlertUserData.objects.create(
            mattermost_alias ="test_user_mattermost_alias",
            user = self.user.profile,
            title=models.MattermostAlertUserData.name,
            )
        self.mattermost_user_data.save()

        self.service.users_to_notify.add(self.user)

        update_alert_plugins()
        self.mattermost_plugin = models.MattermostAlert.objects.get(title=models.MattermostAlert.name)
        self.service.alerts.add(self.mattermost_plugin)
        self.service.save()
        self.service.update_status()
Example #5
0
    def setUp(self):
        super(TestXoxzoAlerts, self).setUp()

        self.xoxzo_user_data = models.XoxzoAlertUserData.objects.create(
            alert_number="+919804310469",
            user=self.user.profile,
            title=models.XoxzoAlertUserData.name,
        )
        self.xoxzo_user_data.save()

        self.service.users_to_notify.add(self.user)

        update_alert_plugins()
        self.xoxzo_plugin = models.XoxzoAlert.objects.get(
            title=models.XoxzoAlert.name)
        self.service.alerts.add(self.xoxzo_plugin)
        self.service.save()
        self.service.update_status()
    def setUp(self):
        super(TestEmailAlerts, self).setUp()

        self.user_profile = UserProfile(user=self.user)
        self.user_profile.save()
        self.user_profile.user.email = "*****@*****.**"
        self.user_profile.user.save()
        self.service.users_to_notify.add(self.user)
        self.service.save()

        update_alert_plugins()
        self.email_alert = models.EmailAlert.objects.get(
            title=models.EmailAlert.name)
        self.email_alert.save()

        self.service.alerts.add(self.email_alert)
        self.service.save()
        self.service.update_status()
    def setUp(self):
        super(TestSlackAlerts, self).setUp()

        self.user_profile = UserProfile(user=self.user)
        self.user_profile.save()
        self.slack_user_data = models.SlackAlertUserData.objects.create(
            slack_alias = "test_user_slack_alias",
            user = self.user_profile,
            title=models.SlackAlertUserData.name,
            )
        self.slack_user_data.save()

        self.service.users_to_notify.add(self.user)

        update_alert_plugins()
        self.slack_plugin = models.SlackAlert.objects.get(title=models.SlackAlert.name)
        self.service.alerts.add(self.slack_plugin)
        self.service.save()
        self.service.update_status()
Example #8
0
    def setUp(self):
        super(TestHipchatAlerts, self).setUp()

        self.user_profile = UserProfile(user=self.user)
        self.user_profile.save()
        self.hipchat_user_data = models.HipchatAlertUserData.objects.create(
            hipchat_alias = "test_user_hipchat_alias",
            user = self.user_profile,
            title=models.HipchatAlertUserData.name,
            )
        self.hipchat_user_data.save()

        self.service.users_to_notify.add(self.user)

        update_alert_plugins()
        self.hipchat_plugin = models.HipchatAlert.objects.get(title=models.HipchatAlert.name)
        self.service.alerts.add(self.hipchat_plugin)
        self.service.save()
        self.service.update_status()
Example #9
0
    def setUp(self):
        update_alert_plugins()

        self.user = User.objects.create(username='******', password='******', email='*****@*****.**')
        self.user.user_permissions.add(
            Permission.objects.get(codename='add_service'),
            Permission.objects.get(codename='add_httpstatuscheck'),
            Permission.objects.get(codename='add_jenkinsstatuscheck'),
            Permission.objects.get(codename='add_tcpstatuscheck'),
        )
        self.user.save()

        self.jenkins_check = JenkinsStatusCheck.objects.create(
            id=10101,
            name='Jenkins Check',
            created_by=self.user,
            importance=Service.ERROR_STATUS,
            max_queued_build_time=10,
            max_build_failures=5
        )

        self.http_check = HttpStatusCheck.objects.create(
            id=10102,
            name='Http Check',
            created_by=self.user,
            importance=Service.CRITICAL_STATUS,
            endpoint='https://google.com',
            timeout=10,
            status_code='200',
            text_match=None,
        )
        self.tcp_check = TCPStatusCheck.objects.create(
            id=10103,
            name='TCP Check',
            created_by=self.user,
            importance=Service.ERROR_STATUS,
            address='github.com',
            port=80,
            timeout=6,
        )

        self.es_source = ElasticsearchSource.objects.create(
            name='es',
            urls='localhost',
            index='test-index-pls-ignore'
        )

        self.es_check = ElasticsearchStatusCheck.objects.create(
            id=10104,
            name='ES Metric Check',
            created_by=self.user,
            source=self.es_source,
            check_type='>=',
            warning_value=3.5,
            importance=Service.ERROR_STATUS,
            high_alert_importance=Service.CRITICAL_STATUS,
            high_alert_value=3.0,
            queries='[{"query": {"bool": {"must": [{"query_string": {"analyze_wildcard": true, '
                    '"query": "test.query"}}, {"range": {"@timestamp": {"gte": "now-300m"}}}]}}, '
                    '"aggs": {"agg": {"terms": {"field": "outstanding"}, '
                    '"aggs": {"agg": {"date_histogram": {"field": "@timestamp", "interval": "1m", '
                    '"extended_bounds": {"max": "now", "min": "now-3h"}}, '
                    '"aggs": {"sum": {"sum": {"field": "count"}}}}}}}}]',
            time_range=10000
        )
        ElasticsearchStatusCheck.get_status_image = Mock()

        self.service = Service.objects.create(id=2194, name='Service')

        self.service.status_checks.add(
            self.jenkins_check,
            self.http_check,
            self.tcp_check,
            self.es_check,
        )

        self.service.users_to_notify.add(self.user)

        self.duty_officer = User.objects.create(
            username='******',
            password='******',
            email='*****@*****.**',
            is_active=True
        )
        self.fallback_officer = User.objects.create(
            username='******',
            password='******',
            email='*****@*****.**',
            is_active=True
        )

        self.schedule = Schedule.objects.create(name='Test Schedule', fallback_officer=self.fallback_officer)
        Shift.objects.create(user=self.duty_officer,
                             start=timezone.now() - timezone.timedelta(minutes=1),
                             end=timezone.now() + timezone.timedelta(hours=1),
                             schedule=self.schedule)
        self.service.schedules.add(self.schedule)

        self.service.update_status()  # set initial status

        # make sure all users have profiles
        for user in self.user, self.duty_officer, self.fallback_officer:
            UserProfile.objects.create(user=user)

        super(PluginTestCase, self).setUp()
Example #10
0
def post_migrate_callback(**kwargs):
    from cabot.cabotapp.alert import update_alert_plugins
    from cabot.cabotapp.models import create_default_jenkins_config
    update_alert_plugins()
    create_default_jenkins_config()
Example #11
0
def post_migrate_callback(**kwargs):
    from cabot.cabotapp.alert import update_alert_plugins
    update_alert_plugins()
Example #12
0
 def __init__(self, *args, **kwargs):
     alert.update_alert_plugins()
     super(ServiceCreateView, self).__init__(*args, **kwargs)
Example #13
0
 def __init__(self, *args, **kwargs):
     alert.update_alert_plugins()
     super(ServiceCreateView, self).__init__(*args, **kwargs)