move BlockDevice bit in server creation above manual map manipulation
diff --git a/rackspace/compute/v2/servers/requests.go b/rackspace/compute/v2/servers/requests.go
index 144e837..884b9cb 100644
--- a/rackspace/compute/v2/servers/requests.go
+++ b/rackspace/compute/v2/servers/requests.go
@@ -84,11 +84,6 @@
 		return nil, err
 	}
 
-	// key_name doesn't actually come from the extension (or at least isn't documented there) so
-	// we need to add it manually.
-	serverMap := res["server"].(map[string]interface{})
-	serverMap["key_name"] = opts.KeyPair
-
 	if len(opts.BlockDevice) != 0 {
 		bfv := bootfromvolume.CreateOptsExt{
 			CreateOptsBuilder: drive,
@@ -101,6 +96,11 @@
 		}
 	}
 
+	// key_name doesn't actually come from the extension (or at least isn't documented there) so
+	// we need to add it manually.
+	serverMap := res["server"].(map[string]interface{})
+	serverMap["key_name"] = opts.KeyPair
+
 	return res, nil
 }