# Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: mail@martinarrieta.me-20140514151145-tcih3r3921ff6oaw # target_branch: bzr+ssh://bazaar.launchpad.net/+branch/mysql-fabric/ # testament_sha1: b52f023c25cead7cfb34115054895dc5bf55b2cf # timestamp: 2014-05-14 12:51:53 -0300 # base_revision_id: alfranio.correia@oracle.com-20140325064735-\ # a2p778b798s45b8z # # Begin patch === modified file 'lib/mysql/fabric/server.py' --- lib/mysql/fabric/server.py 2014-03-18 08:28:25 +0000 +++ lib/mysql/fabric/server.py 2014-05-14 15:11:45 +0000 @@ -720,6 +720,12 @@ "FROM servers WHERE server_uuid = %s" ) + #SQL Statement to retrieve the server from the state_store from the server address. + QUERY_SERVER_SERVER_ADDRESS = ( + "SELECT server_uuid, server_address, mode, status, weight, group_id " + "FROM servers WHERE server_address = %s" + ) + #SQL Statement to retrieve a set of servers in a group from the state_store. QUERY_SERVER_GROUP_ID = ( "SELECT server_uuid, server_address, mode, status, weight " @@ -1376,13 +1382,21 @@ """Return a server object corresponding to the uuid. :param uuid: The server id of the server object that needs to be - returned. + returned or the server_address. :param persister: Persister to persist the object to. :return: The server object that corresponds to the server id None if the server id does not exist. """ - cur = persister.exec_stmt(MySQLServer.QUERY_SERVER, - {"fetch" : False, "raw" : False, "params":(str(uuid),)} + + try: + parameter = _uuid.UUID(uuid) + statement = MySQLServer.QUERY_SERVER + except ValueError: + parameter = uuid + statement = MySQLServer.QUERY_SERVER_SERVER_ADDRESS + + cur = persister.exec_stmt(statement, + {"fetch" : False, "raw" : False, "params":(str(parameter),)} ) row = cur.fetchone() if row: === modified file 'lib/mysql/fabric/services/server.py' --- lib/mysql/fabric/services/server.py 2014-03-03 14:02:36 +0000 +++ lib/mysql/fabric/services/server.py 2014-05-14 15:11:45 +0000 @@ -776,7 +776,6 @@ def _retrieve_server(uuid, group_id=None): """Return a MySQLServer object from a UUID. """ - uuid = _retrieve_uuid_object(uuid) server = _server.MySQLServer.fetch(uuid) if not server: @@ -798,8 +797,6 @@ def _check_server_exists(uuid): """Check whether a MySQLServer instance exists or not. """ - uuid = _retrieve_uuid_object(uuid) - server = _server.MySQLServer.fetch(uuid) if server: raise _errors.ServerError("Server (%s) already exists." % (uuid, )) @@ -836,15 +833,6 @@ "shard definition (%s)." % (group_id, shard_mapping_id) ) -def _retrieve_uuid_object(uuid): - """Transform an input string into a UUID object. - """ - try: - assert(isinstance(uuid, basestring)) - return _uuid.UUID(uuid) - except ValueError: - raise _errors.ServerError("Malformed UUID (%s)." % (uuid, )) - def _check_requirements(server): """Check if the server fulfils some requirements. """ # Begin bundle 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 0zSXzLsR2wpU3kLuSKcKEgECBacA