def create(server_name, flavor_name, image_name, files = {})
      request = {
        "server" => {
          "name" => server_name,
          "imageRef" => image_name_to_id(image_name),
          "flavorRef" => flavor_name_to_id(flavor_name),
        }
      }
      files.each do |path, blob|
        request['server']['personality'] ||= []
        request['server']['personality'] << {
          'path' => path,
          'contents' => Base64.encode64(blob)
        }
      end

      response = servers_client.post(servers_path, JSON.dump(request), json_headers)
      data = JSON.parse(response.body)['server']
      Raca::Server.new(@account, @region, data['id'])
    end
def create(server_name, flavor_name, image_name, files = {})
      request = {
        "server" => {
          "name" => server_name,
          "imageRef" => image_name_to_id(image_name),
          "flavorRef" => flavor_name_to_id(flavor_name),
        }
      }
      files.each do |path, blob|
        request['server']['personality'] ||= []
        request['server']['personality'] << {
          'path' => path,
          'contents' => Base64.encode64(blob)
        }
      end

      response = servers_client.post(servers_path, JSON.dump(request), json_headers)
      data = JSON.parse(response.body)['server']
      Raca::Server.new(@account, @region, data['id'])
    end
create a new server on Rackspace.

 server_name is a free text name you want to assign the server.

 flavor_name is a string that describes the amount of RAM. If you enter
 an invalid option a list of valid options will be raised.

 image_name is a string that describes the OS image to use. If you enter
 an invalid option a list of valid options will be raised. I suggest
 starting with 'Ubuntu 10.04 LTS'

 files is an optional Hash of path to blobs. Use it to place a file on the
 disk of the new server.

 Use it like this:

     server.create("my-server", 512, "Ubuntu 10.04 LTS", "/root/.ssh/authorised_keys" => File.read("/foo"))