def remover_grupo_hosts(nome_processo): form = RemoverGrupoHostsForm() if form.validate_on_submit(): zapi = conectar_zabbix() processo = Processo.objects(nome=nome_processo).first() hosts = find_hosts_by_hostnames( zapi, converter_texto_lista_hosts(form.hosts.data)) group = find_group_by_name(zapi, form.grupo_removido.data) nome_etapa = form.nome.data descricao = form.descricao.data executor = form.email.data grupo_removido = group etapa_remover_grupo(zapi=zapi, processo=processo, hosts=hosts, nome_etapa=nome_etapa, descricao_etapa=descricao, executor_etapa=executor, grupo_removido=grupo_removido) flash(u'Etapa {} executada com sucesso'.format(nome_etapa)) return redirect( url_for('remover_grupo_hosts', nome_processo=nome_processo)) return render_template('etapa_remover_grupo_hosts.html', form=form)
def nova_fase(nome_processo, nome_etapa): form = NovaFaseForm() if form.validate_on_submit(): zapi = conectar_zabbix() processo = Processo.objects(nome=nome_processo).first() nome_etapa = nome_etapa lista_hosts = converter_texto_lista_hosts(form.hosts.data) hosts = find_hosts_by_hostnames(zapi, lista_hosts) hostanames = [h['name'] for h in hosts] ignorados = set(lista_hosts).symmetric_difference(set(hostanames)) executor = form.email.data etapa_faseada = None for etapa in processo.etapas: if etapa.nome == nome_etapa: etapa_faseada = etapa break if etapa.atributo_modificado._cls == 'AtributoIncluido': nova_fase_adicionar_grupo(zapi=zapi, processo=processo, executor=executor, hosts=hosts, etapa_faseada=etapa_faseada) elif etapa.atributo_modificado._cls == 'AtributoExcluido': nova_fase_remover_grupo(zapi=zapi, processo=processo, executor=executor, hosts=hosts, etapa_faseada=etapa_faseada) flash(u'Fase executada com sucesso, {} ignorados'.format( repr(ignorados))) return redirect( url_for('nova_fase', nome_processo=nome_processo, nome_etapa=nome_etapa)) return render_template('nova_fase.html', form=form)
def adicionar_grupo_hosts(nome_processo): form = AdicionarGrupoHostsForm() if form.validate_on_submit(): zapi = conectar_zabbix() processo = Processo.objects(nome=nome_processo).first() lista_hosts = converter_texto_lista_hosts(form.hosts.data) hosts = find_hosts_by_hostnames(zapi, lista_hosts) hostanames = [h['name'] for h in hosts] ignorados = set(lista_hosts).symmetric_difference(set(hostanames)) group = find_group_by_name(zapi, form.novo_grupo.data) nome_etapa = form.nome.data descricao = form.descricao.data executor_etapa = form.email.data novo_grupo = group etapa_adicionar_grupo(zapi=zapi, processo=processo, hosts=hosts, nome_etapa=nome_etapa, descricao_etapa=descricao, executor_etapa=executor_etapa, novo_grupo=novo_grupo) flash(u'Etapa {} executada com sucesso. Ignorados: {}'.format( nome_etapa, repr(ignorados))) return redirect( url_for('adicionar_grupo_hosts', nome_processo=nome_processo)) return render_template('etapa_adicionar_grupo_hosts.html', form=form)
def grupo_autocomplete(): grupos = [g['name'] for g in conectar_zabbix().hostgroup.get()] return Response(json.dumps(grupos), mimetype='application/json')