1
0
Fork 0

Scan for Webcam during generation

Also clean up files
master
Ambrose Chua 2020-03-14 19:56:18 +08:00
parent 655024bfb1
commit 591a33f96e
Signed by: ambrose
GPG Key ID: BC367D33F140B5C2
6 changed files with 30 additions and 24 deletions

View File

@ -2,6 +2,5 @@
set -e set -e
echo "Fetching event inventory" echo "Fetching event inventory from Ambrose's infrastructure"
ssh saguaro /usr/local/bin/wireguard-negotiator dump -i wg1 | go run event-generate.go opentech > event ssh saguaro /usr/local/bin/wireguard-negotiator dump -i wg1 | go run event-generate.go opentech > event

View File

@ -7,6 +7,7 @@ import (
"os" "os"
"os/exec" "os/exec"
"strings" "strings"
"net"
) )
func main() { func main() {
@ -21,24 +22,34 @@ func main() {
for s.Scan() { for s.Scan() {
host := s.Text() host := s.Text()
if strings.HasPrefix(host, "#") { ip := net.ParseIP(host).To16()
// Is a comment if ip == nil {
// Not a valid IPv6, skip
continue continue
} }
if strings.HasSuffix(host, ":0") { if !bytes.Equal(ip[8:14], []byte{0, 0, 0, 0, 0, 0}) {
// Is a "system" host // First subnet is the recorders subnet
// Other subnets are "system" hosts
continue continue
} }
hostname, roomId, roomType, err := discover(host, user) hostname, roomType, roomId, webcamName, err := discover(host, user)
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "host %s discovery failed: %v\n", host, err) fmt.Fprintf(os.Stderr, "host %s discovery failed: %v\n", host, err)
} }
fmt.Printf("%s ansible_host=%s ansible_user=%s room_id=%s room_type=%s\n", hostname, host, user, roomId, roomType) fmt.Printf("%s ansible_host=%s ansible_user=%s room_type=%s room_id=%s webcam_name=%s\n", hostname, host, user, roomType, roomId, webcamName)
} }
} }
func discover(host, user string) (hostname, roomId, roomType string, err error) { const script = `
cmd := exec.Command("/usr/bin/ssh", "-l", user, host, "sh", "-c", "hostname; cat room_type; cat room_id; exit 0") hostname;
(cat room_type || echo) | head -n 1;
(cat room_id || echo) | head -n 1;
(ls /dev/v4l/by-id/ | grep C920 | grep index0 || echo) | cut -d - -f 1,2 | head -n 1;
(cat /sys/class/net/en*/address || echo) | head -n 1;
`
func discover(host, user string) (hostname, roomType, roomId, webcamName string, err error) {
cmd := exec.Command("/usr/bin/ssh", "-l", user, host, "sh", "-c", script)
fmt.Fprintf(os.Stderr, "command: %s\n", cmd) fmt.Fprintf(os.Stderr, "command: %s\n", cmd)
var out bytes.Buffer var out bytes.Buffer
cmd.Stdout = &out cmd.Stdout = &out
@ -55,5 +66,7 @@ func discover(host, user string) (hostname, roomId, roomType string, err error)
roomType = strings.TrimSpace(roomType) roomType = strings.TrimSpace(roomType)
roomId, _ = out.ReadString('\n') roomId, _ = out.ReadString('\n')
roomId = strings.TrimSpace(roomId) roomId = strings.TrimSpace(roomId)
webcamName, _ = out.ReadString('\n')
webcamName = strings.TrimSpace(webcamName)
return return
} }

View File

@ -1,5 +1,6 @@
--- ---
room_type: unknown
room_id: unknown room_id: unknown
# Overwrite in inventory if cannot cope # Overwrite in inventory if cannot cope
@ -7,9 +8,6 @@ record_profile: 720p
# Overwrite in inventory if want to use more storage to use less CPU # Overwrite in inventory if want to use more storage to use less CPU
record_fast: false record_fast: false
record_user: mixer
record_home: /home/mixer
# Set to 2 to enable monitoring, 0 to disable # Set to 2 to enable monitoring, 0 to disable
monitoring_type: 2 monitoring_type: 2

View File

@ -31,7 +31,7 @@ logo='/opt/login-logo.png'
# disable-restart-buttons=true # disable-restart-buttons=true
# - Show a login welcome message # - Show a login welcome message
banner-message-enable=true banner-message-enable=true
banner-message-text='Hostname: {{ ansible_hostname }}\nUsername: opentech Password: opentech\nUsername: mixer Password: mixer\n{% if autostart %}Mixer Autostart Enabled{% endif %}' banner-message-text='Hostname: {{ ansible_hostname }}\n{% if room_type %}Room: {{ room_type }} {{ room_id }}{% endif %}\nUsername: opentech Password: opentech\nUsername: mixer Password: mixer\n{% if autostart %}Mixer Autostart Enabled{% endif %}'
# Automatic suspend # Automatic suspend
# ================= # =================

View File

@ -1,4 +0,0 @@
127.0.0.1 localhost room-{{ room_id }}
::1 localhost ip6-localhost ip6-loopbac room-{{ room_id }}
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

View File

@ -102,11 +102,11 @@
{% if room_type == "setup1" %} {% if room_type == "setup1" %}
"device_id": "alsa_input.pci-0000_00_1b.0.analog-stereo" "device_id": "alsa_input.pci-0000_00_1b.0.analog-stereo"
{% elif room_type == "setup2" %} {% elif room_type == "setup2" %}
"device_id": "alsa_input.usb-046d_HD_Pro_Webcam_C920_CEB3336F-02.analog-stereo" "device_id": "alsa_input.{{ webcam_name }}-02.analog-stereo"
{% elif room_type == "setup3" %} {% elif room_type == "setup3" %}
"device_id": "alsa_input.usb-046d_HD_Pro_Webcam_C920_CEB3336F-02.analog-stereo" "device_id": "alsa_input.{{ webcam_name }}-02.analog-stereo"
{% else %} {% else %}
"device_id": "alsa_input.usb-046d_HD_Pro_Webcam_C920_CEB3336F-02.analog-stereo" "device_id": "alsa_input.{{ webcam_name }}-02.analog-stereo"
{% endif %} {% endif %}
}, },
"sync": 0, "sync": 0,
@ -1011,11 +1011,11 @@
{% if room_type == "setup1" %} {% if room_type == "setup1" %}
"device_id": "/dev/v4l/by-path/pci-0000:00:14.0-usb-0:2:1.0-video-index0",{# X230 LEFT FRONT PORT #} "device_id": "/dev/v4l/by-path/pci-0000:00:14.0-usb-0:2:1.0-video-index0",{# X230 LEFT FRONT PORT #}
{% elif room_type == "setup2" %} {% elif room_type == "setup2" %}
"device_id": "/dev/v4l/by-id/usb-046d_HD_Pro_Webcam_C920_CEB3336F-video-index0", "device_id": "/dev/v4l/by-id/usb-{{ webcam_name }}-video-index0",
{% elif room_type == "setup3" %} {% elif room_type == "setup3" %}
"device_id": "/dev/v4l/by-id/usb-046d_HD_Pro_Webcam_C920_CEB3336F-video-index0", "device_id": "/dev/v4l/by-id/usb-{{ webcam_name }}-video-index0",
{% else %} {% else %}
"device_id": "/dev/v4l/by-id/usb-046d_HD_Pro_Webcam_C920_CEB3336F-video-index0", "device_id": "/dev/v4l/by-id/usb-{{ webcam_name }}-video-index0",
{% endif %} {% endif %}
"framerate": 65566, "framerate": 65566,
"input": 0, "input": 0,