@@ -16,11 +16,9 @@ import (
16
16
)
17
17
18
18
const (
19
- podCreationTimeout = 360 * time .Second
20
- serviceCreationTimeout = 10 * time .Second
21
- ingressServiceSuffix = "ingress"
22
- statefulSetSuffix = "server"
23
- configMapSuffix = "server-conf"
19
+ podCreationTimeout = 360 * time .Second
20
+ ingressServiceSuffix = "ingress"
21
+ statefulSetSuffix = "server"
24
22
)
25
23
26
24
var _ = Describe ("Operator" , func () {
@@ -35,7 +33,7 @@ var _ = Describe("Operator", func() {
35
33
Expect (err ).NotTo (HaveOccurred ())
36
34
})
37
35
38
- Context ("Initial RabbitmqCluster setup " , func () {
36
+ Context ("Publish and consume a message " , func () {
39
37
var (
40
38
cluster * rabbitmqv1beta1.RabbitmqCluster
41
39
hostname string
@@ -92,30 +90,46 @@ var _ = Describe("Operator", func() {
92
90
93
91
Expect (err ).NotTo (HaveOccurred ())
94
92
})
93
+ })
94
+ })
95
95
96
- By ("publishing a message" , func () {
97
- err := rabbitmqPublishToNewQueue (hostname , username , password )
98
- Expect (err ).NotTo (HaveOccurred ())
99
- })
96
+ Context ("Persistence" , func () {
97
+ var (
98
+ cluster * rabbitmqv1beta1.RabbitmqCluster
99
+ hostname string
100
+ username string
101
+ password string
102
+ )
100
103
101
- By ("updating the CR status correctly" , func () {
102
- Expect (clientSet .CoreV1 ().Pods (namespace ).Delete (statefulSetPodName (cluster , 0 ), & metav1.DeleteOptions {})).NotTo (HaveOccurred ())
104
+ BeforeEach (func () {
105
+ cluster = generateRabbitmqCluster (namespace , "persistence-rabbit" )
106
+ cluster .Spec .Service .Type = "LoadBalancer"
107
+ cluster .Spec .Image = "registry.pivotal.io/p-rabbitmq-for-kubernetes-staging/rabbitmq:latest"
108
+ cluster .Spec .ImagePullSecret = "p-rmq-registry-access"
109
+ cluster .Spec .Resources = & corev1.ResourceRequirements {
110
+ Requests : map [corev1.ResourceName ]k8sresource.Quantity {},
111
+ Limits : map [corev1.ResourceName ]k8sresource.Quantity {},
112
+ }
113
+ Expect (createRabbitmqCluster (rmqClusterClient , cluster )).NotTo (HaveOccurred ())
103
114
104
- Eventually (func () []byte {
105
- output , err := kubectl (
106
- "-n" ,
107
- cluster .Namespace ,
108
- "get" ,
109
- "rabbitmqclusters" ,
110
- cluster .Name ,
111
- "-o=jsonpath='{.status.clusterStatus}'" ,
112
- )
113
- Expect (err ).NotTo (HaveOccurred ())
114
- return output
115
+ waitForRabbitmqRunning (cluster )
115
116
116
- }, 20 , 1 ). Should ( ContainSubstring ( "created" ) )
117
+ hostname = rabbitmqHostname ( clientSet , cluster )
117
118
118
- waitForRabbitmqRunning (cluster )
119
+ var err error
120
+ username , password , err = getRabbitmqUsernameAndPassword (clientSet , cluster .Namespace , cluster .Name )
121
+ Expect (err ).NotTo (HaveOccurred ())
122
+ assertHttpReady (hostname )
123
+ })
124
+
125
+ AfterEach (func () {
126
+ Expect (rmqClusterClient .Delete (context .TODO (), cluster )).To (Succeed ())
127
+ })
128
+
129
+ It ("persists messages after pod deletion" , func () {
130
+ By ("publishing a message" , func () {
131
+ err := rabbitmqPublishToNewQueue (hostname , username , password )
132
+ Expect (err ).NotTo (HaveOccurred ())
119
133
})
120
134
121
135
By ("consuming a message after RabbitMQ was restarted" , func () {
0 commit comments