CONSOL '19
Arquitectura de datos del proyecto Fedora
¿Quien es este tipo?
Alberto es tu amigable vecino que colabora en el Proyecto Fedora.
Y ¿En qué colabora?
- Marketing (Miembro)
- Fedora Join (Sponsor)
- GSoC/Outreanchy (Mentor)
- Mindshare committee (Miembro)
- CommOps (Líder)
- NeuroFedora (Spin Master)
- Advocate program (Sponsor)
¿Como se crea una distribución moderna de Linux?
Usuario
Contributor
Las tripas
Y la infraestructura?
CommOps
- Trabajar en estrecha colaboración con el Fedora Community Action and Impact Coordinator para priorizar áreas clave.
- Asistir a Fedora Program Manager con los preparativos de lanzamiento.
- Apoyar la preparación y ejecución de las elecciones de Fedora.
- Trabajar con subproyectos y equipos para mejorar los métodos y prácticas de incorporación
- Usar métricas y datos para mejorar la comprensión de la comunidad de Fedora
- Apoyar el desarrollo de herramientas de métricas
- Y más.
FedMsg
fedmsg (Federated Message Bus) antes Fedora Messaging, es una biblioteca que usa ZeroMQ (PyZMQ) para conectar servicios de publicacion de mensajes
ZeroMQ
Es una biblioteca de conectividad (networking) que permite enviar/recibir mensajes atómicos sobre multiples transportes (inprocess, inter-process, tcp, multicast)
FedMsg Protocol
- Modelo de Subscriptor Publicación
- Salidas en JSON
- UTF-8 encoded message
¿Como explotarlo?
- Linea de comandos
- Web
- Programación
Linea de comandos
sudo dnf install httpie
http get https://apps.fedoraproject.org/datagrepper/raw delta==172800
http get https://apps.fedoraproject.org/datagrepper/raw delta==172800 rows_per_page==1
http get https://apps.fedoraproject.org/datagrepper/raw \
delta==172800 \
rows_per_page==1 \
page==2
http get https://apps.fedoraproject.org/datagrepper/raw \
delta==172800 \
category==bodhi \
category==wiki
http get https://apps.fedoraproject.org/datagrepper/raw \
delta==172800 \
user==bt0dotninja
Web
Programando
#!/usr/bin/env python3
# A simple class to get geographical data from fas and FedoraAsk
# Alberto Rodriguez Sanchez bt0dotninja@fedoraproject.org
# Renato Silva resilva87@fedoraproject.org
from fedora.client.fas2 import AccountSystem
from fedora.client import AuthError
from collections import Counter
from datetime import datetime
import sys
import numpy as np
import pandas as pd
import json
import requests
import configparser
class geofp(object):
'''
An object for querying the Fedora Account System and get Geographical data from groups and the whole project
'''
def __init__(self,ConfigFile):
'''A Simple constructor for geofp object'''
Config = configparser.ConfigParser()
Config.read(ConfigFile)
options = Config.options('FAS')
userdata={}
for opt in options:
userdata[opt] = Config.get('FAS', opt)
user=userdata['user']
password=userdata['pass']
self.members=None
self.fas = AccountSystem(username=user, password=password)
def by_group(self, group, active_date=None):
'''get information by group'''
groupMembers=self.fas.group_members(group)
GeoData={}
for member in groupMembers:
gd=self.fas.people_by_key(key=u'username', search=member['username'])
GeoData.update(gd)
#To pandas DataFrame
self.members=pd.DataFrame.from_dict(GeoData, orient='index')
self.members['last_seen']=pd.to_datetime(self.members.last_seen)
#subsetting by date
if active_date!=None:
self.members=self.members[(self.members.last_seen >= active_date) & (self.members.status == 'active')]
return self.members
Ejemplo
Fedora Messaging
Reemplaza la antigua plataforma.
RESTless también.
Necesitamos ayuda
- Migrar scripts
- Nuevos deploys
- Hacer un dashboard
Contacto
- email: bt0dotninja@fedoraproject.org
- Twitter: @arsandtech
- Telegram: bt0dotninja
- FreeNode IRC: bt0
- Fedora Account: bt0dotninja
- badges: https://badges.fedoraproject.org/user/bt0dotninja
Fedora México
- Meetup: https://www.meetup.com/es-ES/Fedora-Mexico/
- Repositorio de Charlas: https://fedoramx.fedorapeople.org/
- Grupo de Telegram: @fedoramexico
Gracias
CONSOL
By Alberto Rodríguez Sánchez
CONSOL
- 1,388