Module: KongSchema::Schema
Instance Method Summary collapse
-
#commit(config, directives) ⇒ Object
Commit changes to Kong’s database through its REST API.
-
#scan(config) ⇒ Array<Change>
Scan for changes between Kong’s database and the configuration.
Instance Method Details
#commit(config, directives) ⇒ Object
Commit changes to Kong’s database through its REST API.
43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/kong_schema/schema.rb', line 43 def commit(config, directives) Client.connect(config) do |client| directives.each do |d| begin d.apply(client, config) rescue StandardError e = $ERROR_INFO raise e, "#{e}\nSource:\n#{YAML.dump(d)}", e.backtrace end end end end |
#scan(config) ⇒ Array<Change>
Scan for changes between Kong’s database and the configuration. To commit the changes (if any) use #commit with the results.
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/kong_schema/schema.rb', line 21 def scan(config) Client.connect(config) do [ scan_in(model: Resource::Api, directives: Array(config['apis'])), scan_in(model: Resource::Plugin, directives: Array(config['plugins'])), # order matters in some of the resources; Upstream directives must be # handled before Target ones scan_in(model: Resource::Upstream, directives: Array(config['upstreams'])), scan_in(model: Resource::Target, directives: Array(config['targets'])) ].flatten end end |