Description:
When you search for the servers of a group (and in many other cases), the exit code is always 0 even if "success" is false.
Regards,
Martin Arrieta.
How to repeat:
[root@fabric-store fabric]# mysqlfabric group lookup_servers test1
Command :
{ success = True
return = [{'status': 'FAULTY', 'server_uuid': '0efa44fb-d08e-11e3-92cf-08002760fc47', 'mode': 'READ_WRITE', 'weight': 1.0, 'address': '192.168.70.104'}, {'status': 'FAULTY', 'server_uuid': '1189e6be-d08e-11e3-92cf-08002760fc47', 'mode': 'READ_ONLY', 'weight': 1.0, 'address': '192.168.70.103'}, {'status': 'FAULTY', 'server_uuid': '12f4a168-d08e-11e3-92cf-08002760fc47', 'mode': 'READ_ONLY', 'weight': 1.0, 'address': '192.168.70.102'}]
activities =
}
[root@fabric-store fabric]# echo $?
0
[root@fabric-store fabric]# mysqlfabric group lookup_servers test12
Command :
{ success = False
return = GroupError: Group (test12) does not exist.
activities =
}
[root@fabric-store fabric]# echo $?
0
Suggested fix:
Add a secondary return value and send the "success" value separately in the method "command.dispatch" in order to use it for the exit code.
$ diff -r mysql-utilities-1.4.2/ mysql-utilities-1.4.2-original/
diff -r mysql-utilities-1.4.2/mysql/fabric/command.py mysql-utilities-1.4.2-original/mysql/fabric/command.py
385c385
< return ("\n".join([
---
> return "\n".join([
391c391
< ]), success)
---
> ])
diff -r mysql-utilities-1.4.2/scripts/mysqlfabric.py mysql-utilities-1.4.2-original/scripts/mysqlfabric.py
26,27d25
< import sys
<
345,348c343
< result, status = command.dispatch(*(command.append_options_to_args(args)))
<
< return_code = 0 if status else 1
<
---
> result = command.dispatch(*(command.append_options_to_args(args)))
351,353d345
<
< sys.exit(return_code)
<
Description: When you search for the servers of a group (and in many other cases), the exit code is always 0 even if "success" is false. Regards, Martin Arrieta. How to repeat: [root@fabric-store fabric]# mysqlfabric group lookup_servers test1 Command : { success = True return = [{'status': 'FAULTY', 'server_uuid': '0efa44fb-d08e-11e3-92cf-08002760fc47', 'mode': 'READ_WRITE', 'weight': 1.0, 'address': '192.168.70.104'}, {'status': 'FAULTY', 'server_uuid': '1189e6be-d08e-11e3-92cf-08002760fc47', 'mode': 'READ_ONLY', 'weight': 1.0, 'address': '192.168.70.103'}, {'status': 'FAULTY', 'server_uuid': '12f4a168-d08e-11e3-92cf-08002760fc47', 'mode': 'READ_ONLY', 'weight': 1.0, 'address': '192.168.70.102'}] activities = } [root@fabric-store fabric]# echo $? 0 [root@fabric-store fabric]# mysqlfabric group lookup_servers test12 Command : { success = False return = GroupError: Group (test12) does not exist. activities = } [root@fabric-store fabric]# echo $? 0 Suggested fix: Add a secondary return value and send the "success" value separately in the method "command.dispatch" in order to use it for the exit code. $ diff -r mysql-utilities-1.4.2/ mysql-utilities-1.4.2-original/ diff -r mysql-utilities-1.4.2/mysql/fabric/command.py mysql-utilities-1.4.2-original/mysql/fabric/command.py 385c385 < return ("\n".join([ --- > return "\n".join([ 391c391 < ]), success) --- > ]) diff -r mysql-utilities-1.4.2/scripts/mysqlfabric.py mysql-utilities-1.4.2-original/scripts/mysqlfabric.py 26,27d25 < import sys < 345,348c343 < result, status = command.dispatch(*(command.append_options_to_args(args))) < < return_code = 0 if status else 1 < --- > result = command.dispatch(*(command.append_options_to_args(args))) 351,353d345 < < sys.exit(return_code) <