Example #1
0
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)
Example #2
0
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)
Example #3
0
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)
Example #4
0
def grupo_autocomplete():
    grupos = [g['name'] for g in conectar_zabbix().hostgroup.get()]
    return Response(json.dumps(grupos), mimetype='application/json')