Skip to content

Commit a76e458

Browse files
committed
chore: refactor
1 parent c562f4f commit a76e458

File tree

1 file changed

+54
-5
lines changed

1 file changed

+54
-5
lines changed

anitnya.go

Lines changed: 54 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,15 @@ package main
33
import (
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+
1215
type FedoraAuth struct {
1316
}
1417

@@ -17,12 +20,53 @@ func (auth *FedoraAuth) Mechanism() string {
1720
}
1821

1922
func (auth *FedoraAuth) Response() string {
20-
return "guest\nguest"
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

Comments
 (0)