def team_pre_save(sender, **kwargs): from notification.tasks import TaskRegister team = kwargs.get('instance') if not team.id: return before_update_team = Team.objects.get(pk=team.pk) if team.organization != before_update_team.organization: for database in team.databases.all(): TaskRegister.update_organization_name_monitoring( database=database, organization_name=team.organization.name) if before_update_team.organization and \ before_update_team.organization.external: for database in before_update_team.databases.all(): TaskRegister.update_database_monitoring( database=database, hostgroup=before_update_team.organization. grafana_hostgroup, action='remove') if team.organization and team.organization.external: for database in team.databases.all(): TaskRegister.update_database_monitoring( database=database, hostgroup=team.organization.grafana_hostgroup, action='add')
def team_pre_save(sender, **kwargs): from notification.tasks import TaskRegister team = kwargs.get('instance') if not team.id: return before_update_team = Team.objects.get(pk=team.pk) if team.organization != before_update_team.organization: for database in team.databases.all(): TaskRegister.update_organization_name_monitoring( database=database, organization_name=team.organization.name) if before_update_team.organization and \ before_update_team.organization.external: for database in before_update_team.databases.all(): TaskRegister.update_database_monitoring( database=database, hostgroup=before_update_team.organization.grafana_hostgroup, action='remove') if team.organization and team.organization.external: for database in team.databases.all(): TaskRegister.update_database_monitoring( database=database, hostgroup=team.organization.grafana_hostgroup, action='add')
def database_pre_save(sender, **kwargs): from notification.tasks import TaskRegister database = kwargs.get('instance') if database.is_in_quarantine: if database.quarantine_dt is None: database.quarantine_dt = datetime.datetime.now().date() if not database.quarantine_user: from dbaas.middleware import UserMiddleware database.quarantine_user = UserMiddleware.current_user() else: database.quarantine_dt = None database.quarantine_user = None if database.id: saved_object = Database.objects.get(id=database.id) if database.name != saved_object.name: raise AttributeError(_("Attribute name cannot be edited")) if database.team and saved_object.team: if database.team.organization != saved_object.team.organization: TaskRegister.update_organization_name_monitoring( database=database, organization_name=database.team.organization.name) if saved_object.team.external: TaskRegister.update_database_monitoring( database=database, hostgroup=(saved_object.team.organization .grafana_hostgroup), action='remove') if database.team.external: TaskRegister.update_database_monitoring( database=database, hostgroup=database.team.organization.grafana_hostgroup, action='add') else: # new database if database_name_evironment_constraint( database.name, database.environment.name): raise AttributeError( _('%s already exists in production!') % database.name ) LOG.debug("slugfying database's name for %s" % database.name) database.name = slugify(database.name)
def database_pre_save(sender, **kwargs): from notification.tasks import TaskRegister database = kwargs.get('instance') if database.is_in_quarantine: if database.quarantine_dt is None: database.quarantine_dt = datetime.datetime.now().date() if not database.quarantine_user: from dbaas.middleware import UserMiddleware database.quarantine_user = UserMiddleware.current_user() else: database.quarantine_dt = None database.quarantine_user = None if database.id: saved_object = Database.objects.get(id=database.id) if database.name != saved_object.name: raise AttributeError(_("Attribute name cannot be edited")) if database.team and saved_object.team: if database.team.organization != saved_object.team.organization: TaskRegister.update_organization_name_monitoring( database=database, organization_name=database.team.organization.name) if saved_object.team.external: TaskRegister.update_database_monitoring( database=database, hostgroup=saved_object.team.organization.grafana_hostgroup, action='remove') if database.team.external: TaskRegister.update_database_monitoring( database=database, hostgroup=database.team.organization.grafana_hostgroup, action='add') else: # new database if database_name_evironment_constraint( database.name, database.environment.name): raise AttributeError( _('%s already exists in production!') % database.name ) LOG.debug("slugfying database's name for %s" % database.name) database.name = slugify(database.name)
def organization_pre_save(sender, **kwargs): from notification.tasks import TaskRegister def add_monit(organization): for database in organization.databases: TaskRegister.update_database_monitoring( database=database, hostgroup=organization.grafana_hostgroup, action='add') def remove_monit(organization): for database in organization.databases: TaskRegister.update_database_monitoring( database=database, hostgroup=organization.grafana_hostgroup, action='remove') organization = kwargs.get('instance') if not organization.id: return before_update_org = Organization.objects.get(pk=organization.pk) if before_update_org.external != organization.external: if before_update_org.external: remove_monit(before_update_org) if organization.external: add_monit(organization) if before_update_org.grafana_hostgroup != organization.grafana_hostgroup: if before_update_org.external: remove_monit(before_update_org) if organization.external: add_monit(organization) if before_update_org.name != organization.name: for database in organization.databases: TaskRegister.update_organization_name_monitoring( database=database, organization_name=organization.name)