Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
projekte:clubstatus [2018-01-07 23:45]
clonejo
projekte:clubstatus [2022-05-16 01:51] (current)
clonejo maccollect ist auf Pile umgezogen
Line 3: Line 3:
 <WRAP right> <WRAP right>
 ^ clubstatus  || ^ clubstatus  ||
-^ Git | [[https://github.com/clonejo/clubstatusd|clubstatusd]] [[https://github.com/clonejo/clubstatus-web|Web-Frontend]] |+^ Git | [[https://github.com/clonejo/clubstatusd|clubstatusd]] [[https://github.com/clonejo/clubstatus-web|Web-Frontend]] [[https://git.aachen.ccc.de/clubstatus/maccollect|maccollect]] |
 ^ Host | [[https://wiki-intern.aachen.ccc.de/infrastruktur:server:tokamak:web-status|web-status.server.aachen.ccc.de]] | ^ Host | [[https://wiki-intern.aachen.ccc.de/infrastruktur:server:tokamak:web-status|web-status.server.aachen.ccc.de]] |
 ^ Kontakt | [[wiki:user:clonejo |clonejo ]] | ^ Kontakt | [[wiki:user:clonejo |clonejo ]] |
-^ Status | <fc green>aktiv</fc> (2018-01-07) |+^ Status | <fc green>aktiv</fc> (2022-05-16) |
 </WRAP> </WRAP>
  
Line 14: Line 14:
  
 ===== Presence ===== ===== Presence =====
 +
 === Die Clubinfrastruktur erkennt deine Hosts und meldet dich als anwesend === === Die Clubinfrastruktur erkennt deine Hosts und meldet dich als anwesend ===
-  auf Stellarator läuft in der maccollect-VM das Programm maccollect ([[https://git.aachen.ccc.de/~luks/maccollect|repo]], Branch "status-api"+<WRAP right> 
-  * Mac-Adressen der eigenen Geräte eintragen; dafür einen [[admins@aachen.ccc.de?body=Hallo,%0a%0akoenntet Ihr unter dem Namen%0a%0a%24name%0a%0adie Mac-Adressen%0a%0a%24mac1%0a%24mac2%0a%0aeintragen?%0a%0aVielen Dank!|Admin fragen]] +{{ :projekte:clubstatus-maccollect-screenshot.png?400|}} 
-    in Ansible in der Datei [[https://gitlab.aachen.ccc.de/admins/ansible/blob/master/roles/host-maccollect/files/config.yml|roles/host-maccollect/files/config.yml]] den Benutzernamen und zugehörige Mac-Adressen eintragen +</WRAP> 
-    * site.yml für maccollect.doel.aachen.ccc.de ausführen+ 
 +  Geräte im Club-Netz werden anhand der MAC-Adresse erkannt. 
 +  * **Jetzt NEU mit Selfservice™!** Navigiere mit dem zu erkennenden Gerät zu [[http://pile.space.aachen.ccc.de:1234/]], vergebe einen Nicknamen und wähle "Register device". Innerhalb von 1-2 Minuten sollte der Nickname im Clubstatus auftauchen
 +  Der Code für dieses Feature liegt separat im Gitlab: https://git.aachen.ccc.de/clubstatus/maccollect 
 +  * Die MAC-Adressen deiner Endgeräte werden ausschließlich gehasht abgelegt.
  
 === vom eigenen Rechner === === vom eigenen Rechner ===
   * Die Präsenzliste wird nicht sofort aktualisiert. Solange der Server bei einem Presence-Request mit 200 antwortet, hat es geklappt :)   * Die Präsenzliste wird nicht sofort aktualisiert. Solange der Server bei einem Presence-Request mit 200 antwortet, hat es geklappt :)
 +  * Nach 10+n Minuten gibt es einen Timeout, und der Benutzername wird wieder aus der Präsenzliste entfernt. Daher muss alle 10min ein neuer Request gesendet werden.
 <code python> <code python>
 #!/bin/python3 #!/bin/python3
  
-import subprocess 
-import requests 
 import json import json
 +import requests
 +import subprocess
 +import sys
 +import time
 +
  
 USER = "Hans Acker" USER = "Hans Acker"
-PASSWORD = "zensiert" +PASSWORD = "zensiert :)
-DEVICE = "wlp3s0"+
  
 def in_cccac_wlan(): def in_cccac_wlan():
-    output = subprocess.check_output(["nmcli", "device", "show", DEVICE]) +    output = subprocess.check_output(["nmcli", "device", "show"]) 
-    for in output.split(b"\n"): +    for line in output.split(b"\n"): 
-        columns = l.split(b": ") +        columns = line.split(b": ") 
-        if columns[0] == b"IP4.DOMAIN[1]":+        if columns[0] == b"IP4.SEARCHES[1]":
             if columns[1].strip() == b"space.aachen.ccc.de":             if columns[1].strip() == b"space.aachen.ccc.de":
 +                print("CCCAC network detected", file=sys.stderr)
                 return True                 return True
 +    print("CCCAC network not detected", file=sys.stderr)
     return False     return False
  
-if in_cccac_wlan(): + 
-    session = requests.Session() +while True: 
-    session.auth = ("", PASSWORD) +    if in_cccac_wlan(): 
-    j = {'type''presence''user': USER} +        print(f"Marking {USER} as currently present.", file=sys.stderr) 
-    r = session.put("https://status.aachen.ccc.de/api/v0", data=json.dumps(j))+        session = requests.Session() 
 +        session.auth = ("", PASSWORD) 
 +        j = {"type""presence""user": USER} 
 +        r = session.put("https://status.aachen.ccc.de/api/v0", data=json.dumps(j)) 
 +        r.raise_for_status() 
 +    time.sleep(600) 
 </code> </code>
  
Line 59: Line 76:
 </code> </code>
  
 +
 +===== SpaceAPI =====
 +Der clubstatusd implementiert auch https://spaceapi.io/, unter https://status.aachen.ccc.de/spaceapi.
 +
 +Die statischen Werte werden im Config-File vom clubstatusd eingestellt, unsere [[https://wiki-intern.aachen.ccc.de/doku.php?id=infrastruktur:admins|Admins]] können diese ändern.
Navigation



You are not allowed to add pages