Skip to content

Commit e35c44a

Browse files
author
Nicolas Brignone
committed
new qe python proton client, "multireceivers"
1 parent c3e466d commit e35c44a

File tree

2 files changed

+32
-20
lines changed

2 files changed

+32
-20
lines changed

pkg/api/client/amqp/qeclients/factory.go

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ type AmqpQEClientImpl int
55

66
const (
77
Python AmqpQEClientImpl = iota
8+
MultipleReceiversPython
89
Java
910
NodeJS
1011
Timeout int = 60
@@ -20,10 +21,16 @@ type AmqpQEClientImplInfo struct {
2021
var (
2122
QEClientImageMap = map[AmqpQEClientImpl]AmqpQEClientImplInfo{
2223
Python: {
23-
Name: "cli-proton-python",
24-
Image: "docker.io/rhmessagingqe/cli-proton-python:latest",
25-
CommandSender: "cli-proton-python-sender",
24+
Name: "cli-proton-python",
25+
Image: "docker.io/rhmessagingqe/cli-proton-python:latest",
26+
CommandSender: "cli-proton-python-sender",
2627
CommandReceiver: "cli-proton-python-receiver",
2728
},
29+
MultipleReceiversPython: {
30+
Name: "multiple-receivers",
31+
Image: "docker.io/nicob1987/multireceive:latest",
32+
CommandSender: "NotImplemented",
33+
CommandReceiver: "./multireceive.py",
34+
},
2835
}
2936
)

pkg/api/client/amqp/qeclients/factoryreceiver.go

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ import (
88
)
99

1010
type AmqpQEReceiverBuilder struct {
11-
receiver *AmqpQEClientCommon
12-
MessageCount int
11+
receiver *AmqpQEClientCommon
12+
MessageCount int
1313
}
1414

1515
func NewReceiverBuilder(name string, impl AmqpQEClientImpl, data framework.ContextData, url string) *AmqpQEReceiverBuilder {
@@ -38,6 +38,25 @@ func (a *AmqpQEReceiverBuilder) Messages(count int) *AmqpQEReceiverBuilder {
3838
return a
3939
}
4040

41+
func (a *AmqpQEReceiverBuilder) addSpecificImplementationOptions(cBuilder *framework.ContainerBuilder) {
42+
switch a.receiver.Implementation {
43+
// URL
44+
case MultipleReceiversPython:
45+
{
46+
cBuilder.AddArgs("--address", a.receiver.Url)
47+
cBuilder.AddArgs("--connections", "100") //total connections
48+
cBuilder.AddArgs("--links", "500") //total links per connection
49+
}
50+
default:
51+
{
52+
cBuilder.AddArgs("--broker-url", a.receiver.Url)
53+
cBuilder.AddArgs("--count", strconv.Itoa(a.MessageCount))
54+
cBuilder.AddArgs("--timeout", strconv.Itoa(a.receiver.Timeout))
55+
cBuilder.AddArgs("--log-msgs", "json")
56+
}
57+
}
58+
}
59+
4160
func (a *AmqpQEReceiverBuilder) Build() (*AmqpQEClientCommon, error) {
4261
// Preparing Pod, Container (commands and args) and etc
4362
podBuilder := framework.NewPodBuilder(a.receiver.Name, a.receiver.Context.Namespace)
@@ -50,21 +69,7 @@ func (a *AmqpQEReceiverBuilder) Build() (*AmqpQEClientCommon, error) {
5069
cBuilder := framework.NewContainerBuilder(a.receiver.Name, QEClientImageMap[a.receiver.Implementation].Image)
5170
cBuilder.WithCommands(QEClientImageMap[a.receiver.Implementation].CommandReceiver)
5271

53-
//
54-
// Adds args (may vary from one implementation to another)
55-
//
56-
57-
// URL
58-
cBuilder.AddArgs("--broker-url", a.receiver.Url)
59-
60-
// Message count
61-
cBuilder.AddArgs("--count", strconv.Itoa(a.MessageCount))
62-
63-
// Timeout
64-
cBuilder.AddArgs("--timeout", strconv.Itoa(a.receiver.Timeout))
65-
66-
// Static options
67-
cBuilder.AddArgs("--log-msgs", "json")
72+
a.addSpecificImplementationOptions(cBuilder)
6873

6974
// Retrieving container and adding to pod
7075
c := cBuilder.Build()

0 commit comments

Comments
 (0)