diff --git a/cloud/nova_compute b/cloud/nova_compute index d0bc79b1a2a..df612c80bb8 100644 --- a/cloud/nova_compute +++ b/cloud/nova_compute @@ -193,7 +193,12 @@ def _get_server_state(module, nova): try: servers = nova.servers.list(True, {'name': module.params['name']}) if servers: - server = [x for x in servers if x.name == module.params['name']][0] + # the {'name': module.params['name']} will also return servers + # with names that partially match the server name, so we have to + # strictly filter here + servers = [x for x in servers if x.name == module.params['name']] + if servers: + server = servers[0] except Exception, e: module.fail_json(msg = "Error in getting the server list: %s" % e.message) if server and module.params['state'] == 'present':