@@ -3,12 +3,15 @@ package main
33import (
44 "crypto/tls"
55 "crypto/x509"
6+ "io"
67 "log"
78 "os"
89
910 "github.com/streadway/amqp"
1011)
1112
13+ var l = log .New (os .Stdout , "[anitnya] " , 0 )
14+
1215type FedoraAuth struct {
1316}
1417
@@ -17,12 +20,53 @@ func (auth *FedoraAuth) Mechanism() string {
1720}
1821
1922func (auth * FedoraAuth ) Response () string {
20- return "guest \n guest "
23+ return ""
2124}
2225
23- func anitnya_conn () {
24- l := log .New (os .Stdout , "[anitnya] " , 0 )
26+ func exists (path string ) (bool , error ) {
27+ _ , err := os .Stat (path )
28+ if err == nil { return true , nil }
29+ if os .IsNotExist (err ) { return false , nil }
30+ return false , err
31+ }
32+
33+ func readf (path string ) chan []byte {
34+ ch := make (chan []byte )
35+ go func () {
36+ f , err := os .Open (path )
37+ if err != nil {
38+ l .Fatal (err )
39+ }
40+ defer f .Close ()
41+ s , err := io .ReadAll (f )
42+ if err != nil {
43+ l .Fatal (err )
44+ }
45+ ch <- s
46+ }()
47+ return ch
48+ }
2549
50+ func init_tls () (tls.Certificate , * x509.CertPool ) {
51+ x , err := exists ("/etc/fedora-messaging/" )
52+ if err != nil {
53+ l .Println ("Fail to check /etc/fedora-messaging/: " + err .Error ())
54+ }
55+ if x {
56+ l .Println ("using keys and certs in /etc/fedora-messaging/" )
57+ f1 := readf ("/etc/fedora-messaging/fedora-cert.pem" )
58+ f2 := readf ("/etc/fedora-messaging/fedora-key.pem" )
59+ f3 := readf ("/etc/fedora-messaging/cacert.pem" )
60+ cert , err := tls .X509KeyPair (<- f1 , <- f2 )
61+ if err != nil {
62+ l .Fatal (err )
63+ }
64+
65+ l .Println ("cfg cacert" )
66+ certpool := x509 .NewCertPool ()
67+ certpool .AppendCertsFromPEM (<- f3 )
68+ return cert , certpool
69+ }
2670 l .Println ("dl cert, prikey, cacert" )
2771 dl1 := dl ("https://raw.githubusercontent.com/fedora-infra/fedora-messaging/stable/configs/fedora-cert.pem" )
2872 dl2 := dl ("https://raw.githubusercontent.com/fedora-infra/fedora-messaging/stable/configs/fedora-key.pem" )
@@ -35,6 +79,11 @@ func anitnya_conn() {
3579 l .Println ("cfg cacert" )
3680 certpool := x509 .NewCertPool ()
3781 certpool .AppendCertsFromPEM ([]byte (<- dl3 ))
82+ return cert , certpool
83+ }
84+
85+ func anitnya_conn () {
86+ cert , certpool := init_tls ()
3887
3988 l .Println ("conn" )
4089 conn , err := amqp .DialConfig ("amqps://rabbitmq.fedoraproject.org/%2Fpublic_pubsub" , amqp.Config {
@@ -55,8 +104,8 @@ func anitnya_conn() {
55104 l .Fatal (err )
56105 }
57106 defer conn .Close ()
58- // "org.release-monitoring.prod.anitya.project.version.update.v2",
59- for _ , topic := range []string {"org.fedoraproject.prod.copr " } {
107+ // "org.release-monitoring.prod.anitya.project.version.update.v2", "org.fedoraproject.prod.copr"
108+ for _ , topic := range []string {"org.fedoraproject.prod.ci.productmd-compose.test.complete " } {
60109 l .Println ("xdcl " + topic )
61110 err = ch .ExchangeDeclare (topic , "topic" , true , false , false , false , nil )
62111 if err != nil {
0 commit comments