# File lib/fog/openstack/requests/image/create_image.rb, line 6
        def create_image(attributes)
          data = {
            'Content-Type'=>'application/octet-stream',
            'x-image-meta-name' => attributes[:name],
            'x-image-meta-disk-format' => attributes[:disk_format],
            'x-image-meta-container-format' => attributes[:container_format],
            'x-image-meta-size' => attributes[:size],
            'x-image-meta-is-public' => attributes[:is_public],
            'x-image-meta-min-ram'  => attributes[:min_ram],
            'x-image-meta-min-disk' => attributes[:min_disk],
            'x-image-meta-checksum' => attributes[:checksum],
            'x-image-meta-owner' => attributes[:owner],
            'x-glance-api-copy-from' => attributes[:copy_from]
          }.reject { |k,v| v.nil? }

          body = String.new
          if attributes[:location]
            body = File.open(attributes[:location], "rb")
            # Make sure the image file size is always present
            data['x-image-meta-size'] = File.size(body)
          end

          unless attributes[:properties].nil?
            attributes[:properties].each do |key,value|
              data['x-image-meta-property-#{key}'] = value
            end
          end

          request(
            :headers  => data,
            :body     => body,
            :expects  => 201,
            :method   => 'POST',
            :path     => "images"
          )
        ensure
          body.close if body.respond_to?(:close)
        end