File: ec2.rb

package info (click to toggle)
ruby-aws-sdk-core 3.104.3-3%2Bdeb11u2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 1,444 kB
  • sloc: ruby: 11,201; makefile: 4
file content (38 lines) | stat: -rw-r--r-- 910 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# frozen_string_literal: true

require_relative '../../query'

module Aws
  module Plugins
    module Protocols
      class EC2 < Seahorse::Client::Plugin

        class Handler < Aws::Query::Handler

          def apply_params(param_list, params, rules)
            Aws::Query::EC2ParamBuilder.new(param_list).apply(rules, params)
          end

          def parse_xml(context)
            if rules = context.operation.output
              parser = Xml::Parser.new(rules)
              data = parser.parse(xml(context)) do |path, value|
                if path.size == 2 && path.last == 'requestId'
                  context.metadata[:request_id] = value
                end
              end
              data
            else
              EmptyStructure.new
            end
          end

        end

        handler(Handler)
        handler(Xml::ErrorHandler, step: :sign)

      end
    end
  end
end