Description:
An exception is thrown by dump sharding_information commands when no shards are inside a definition / setup.
How to repeat:
1.- Check dump sharding information commands.
bash-4.1$ mysqlfabric dump sharding_information
Command :
{ success     = True
  return      = [0, 0, 1, [['oltp', 'oltp', 'emp_no', '30001', '2', 'RANGE', 'my_group2', 'my_group4']]]
  activities  =
}
2.- Ensure no shards remain in setup, if they are remove them
-bash-4.1$ mysqlfabric sharding disable_shard 2
Procedure :
{ uuid        = ed0ddb21-2c96-47a6-ba53-39c6308057d1,
  finished    = True,
  success     = True,
  return      = True,
  activities  =
}
-bash-4.1$ mysqlfabric sharding remove_shard 2
Procedure :
{ uuid        = 4c0d04fb-a8ba-4d26-99fb-d432c7103518,
  finished    = True,
  success     = True,
  return      = True,
  activities  =
}
3.- Try dump sharding_information and you will get an exception
-bash-4.1$ mysqlfabric dump sharding_information
Traceback (most recent call last):
  File "/usr/bin/mysqlfabric", line 427, in <module>
    main()
  File "/usr/bin/mysqlfabric", line 410, in main
    fire_command(cmd, *cargs)
  File "/usr/bin/mysqlfabric", line 343, in fire_command
    result = command.dispatch(*(command.append_options_to_args(args)))
  File "/usr/lib/python2.6/site-packages/mysql/fabric/command.py", line 356, in dispatch
    status = self.client.dispatch(self, *args)
  File "/usr/lib/python2.6/site-packages/mysql/fabric/protocols/xmlrpc.py", line 717, in dispatch
    return getattr(self, reference)(*args)
  File "/usr/lib64/python2.6/xmlrpclib.py", line 1199, in __call__
    return self.__send(self.__name, args)
  File "/usr/lib64/python2.6/xmlrpclib.py", line 1489, in __request
    verbose=self.__verbose
  File "/usr/lib/python2.6/site-packages/mysql/fabric/protocols/xmlrpc.py", line 663, in request
    return self.parse_response(result)
  File "/usr/lib64/python2.6/xmlrpclib.py", line 1361, in parse_response
    return self._parse_response(file, None)
  File "/usr/lib64/python2.6/xmlrpclib.py", line 1392, in _parse_response
    return u.close()
  File "/usr/lib64/python2.6/xmlrpclib.py", line 838, in close
    raise Fault(**self._stack[0])
xmlrpclib.Fault: <Fault 1: "<type 'exceptions.TypeError'>:cannot marshal None unless allow_none is enabled">
-bash-4.1$ 
Suggested fix:
Message indicating no shard exist should be prompted.
  
 
Description: An exception is thrown by dump sharding_information commands when no shards are inside a definition / setup. How to repeat: 1.- Check dump sharding information commands. bash-4.1$ mysqlfabric dump sharding_information Command : { success = True return = [0, 0, 1, [['oltp', 'oltp', 'emp_no', '30001', '2', 'RANGE', 'my_group2', 'my_group4']]] activities = } 2.- Ensure no shards remain in setup, if they are remove them -bash-4.1$ mysqlfabric sharding disable_shard 2 Procedure : { uuid = ed0ddb21-2c96-47a6-ba53-39c6308057d1, finished = True, success = True, return = True, activities = } -bash-4.1$ mysqlfabric sharding remove_shard 2 Procedure : { uuid = 4c0d04fb-a8ba-4d26-99fb-d432c7103518, finished = True, success = True, return = True, activities = } 3.- Try dump sharding_information and you will get an exception -bash-4.1$ mysqlfabric dump sharding_information Traceback (most recent call last): File "/usr/bin/mysqlfabric", line 427, in <module> main() File "/usr/bin/mysqlfabric", line 410, in main fire_command(cmd, *cargs) File "/usr/bin/mysqlfabric", line 343, in fire_command result = command.dispatch(*(command.append_options_to_args(args))) File "/usr/lib/python2.6/site-packages/mysql/fabric/command.py", line 356, in dispatch status = self.client.dispatch(self, *args) File "/usr/lib/python2.6/site-packages/mysql/fabric/protocols/xmlrpc.py", line 717, in dispatch return getattr(self, reference)(*args) File "/usr/lib64/python2.6/xmlrpclib.py", line 1199, in __call__ return self.__send(self.__name, args) File "/usr/lib64/python2.6/xmlrpclib.py", line 1489, in __request verbose=self.__verbose File "/usr/lib/python2.6/site-packages/mysql/fabric/protocols/xmlrpc.py", line 663, in request return self.parse_response(result) File "/usr/lib64/python2.6/xmlrpclib.py", line 1361, in parse_response return self._parse_response(file, None) File "/usr/lib64/python2.6/xmlrpclib.py", line 1392, in _parse_response return u.close() File "/usr/lib64/python2.6/xmlrpclib.py", line 838, in close raise Fault(**self._stack[0]) xmlrpclib.Fault: <Fault 1: "<type 'exceptions.TypeError'>:cannot marshal None unless allow_none is enabled"> -bash-4.1$ Suggested fix: Message indicating no shard exist should be prompted.