This is an automated email from the ASF dual-hosted git repository.
duhengforever pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/rocketmq-operator.git
The following commit(s) were added to refs/heads/master by this push:
new b640c94 fix #80 by skipping generating data replication command when
remote command returns error
new abb2ebd Merge pull request #82 from caigy/issue-80
b640c94 is described below
commit b640c949c8a6c2ea714ecf81087d1b73c4529515
Author: caigy <[email protected]>
AuthorDate: Thu Aug 26 21:06:31 2021 +0800
fix #80 by skipping generating data replication command when remote command
returns error
---
pkg/controller/broker/broker_controller.go | 25 ++++++++++++++++++-------
1 file changed, 18 insertions(+), 7 deletions(-)
diff --git a/pkg/controller/broker/broker_controller.go
b/pkg/controller/broker/broker_controller.go
index 5b2de77..8bcc8db 100644
--- a/pkg/controller/broker/broker_controller.go
+++ b/pkg/controller/broker/broker_controller.go
@@ -273,7 +273,14 @@ func (r *ReconcileBroker) Reconcile(request
reconcile.Request) (reconcile.Result
log.Info("subscriptionGroupCommand: " +
subscriptionGroupCommand)
MakeConfigDirCommand := "mkdir -p " + cons.StoreConfigDir
ChmodDirCommand := "chmod a+rw " + cons.StoreConfigDir
- cmd = []string{"/bin/bash", "-c", MakeConfigDirCommand + " && "
+ ChmodDirCommand + " && " + topicsCommand + " && " + subscriptionGroupCommand}
+ cmdContent := MakeConfigDirCommand + " && " + ChmodDirCommand
+ if topicsCommand != "" {
+ cmdContent = cmdContent + " && " + topicsCommand
+ }
+ if subscriptionGroupCommand != "" {
+ cmdContent = cmdContent + " && " +
subscriptionGroupCommand
+ }
+ cmd = []string{"/bin/bash", "-c", cmdContent}
}
// Update status.Size if needed
@@ -324,7 +331,11 @@ func (r *ReconcileBroker) Reconcile(request
reconcile.Request) (reconcile.Result
func getCopyMetadataJsonCommand(dir string, sourcePodName string, namespace
string, k8s *tool.K8sClient) string {
cmdOpts := buildInputCommand(dir)
- topicsJsonStr := exec(cmdOpts, sourcePodName, k8s, namespace)
+ topicsJsonStr, err := exec(cmdOpts, sourcePodName, k8s, namespace)
+ if err != nil {
+ log.Error(err, "exec command failed, output is: "+output)
+ return ""
+ }
topicsCommand := buildOutputCommand(topicsJsonStr, dir)
return strings.Join(topicsCommand, " ")
}
@@ -349,7 +360,7 @@ func buildOutputCommand(content string, dest string)
[]string {
return cmdOpts
}
-func exec(cmdOpts []string, podName string, k8s *tool.K8sClient, namespace
string) string {
+func exec(cmdOpts []string, podName string, k8s *tool.K8sClient, namespace
string) (string, error) {
log.Info("On pod " + podName + ", command being run: " +
strings.Join(cmdOpts, " "))
container := cons.BrokerContainerName
outputBytes, stderrBytes, err := k8s.Exec(namespace, podName,
container, cmdOpts, nil)
@@ -359,14 +370,14 @@ func exec(cmdOpts []string, podName string, k8s
*tool.K8sClient, namespace strin
if stderrBytes != nil {
log.Info("STDERR: " + stderr)
}
+ log.Info("output: " + output)
if err != nil {
log.Error(err, "Error occurred while running command:
"+strings.Join(cmdOpts, " "))
- log.Info("stdout: " + output)
- } else {
- log.Info("output: " + output)
+ return output, err
}
- return output
+
+ return output, nil
}
func getBrokerName(broker *rocketmqv1alpha1.Broker, brokerGroupIndex int)
string {