# File lib/fog/image/openstack/v1/requests/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 = ''
            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