Finds *usable* server definitions by name.

        A server definition is *usable* if it doesn't have a current instance.

        NOTE: This might result in extra server definitions if some servers are
        in various non-operational states (e.g. terminating).

def find_server_defs(self, basename):
        """
        Finds *usable* server definitions by name.

        A server definition is *usable* if it doesn't have a current instance.

        NOTE: This might result in extra server definitions if some servers are
        in various non-operational states (e.g. terminating).
        """
        filters = ['name==%s' % basename]
        fuzzy = self.deployment.servers.index(params={'filter[]': filters})
        matches = []
        for f in fuzzy:
            if basename != f.soul['name']:
                continue
            if 'current_instance' not in f.links:
                matches.append(f.href)
        if matches:
            self.basename = basename
        return matches