Sha256: 089fcfd093b4c3702661de1ead3f22be3367cde9770b7ce93522a4c6d161baba

Contents?: true

Size: 1.21 KB

Versions: 9

Compression:

Stored size: 1.21 KB

Contents

require 'kontena/client'

module Kontena
  class StacksClient < Client

    ACCEPT_JSON = { 'Accept' => 'application/json' }
    ACCEPT_YAML = { 'Accept' => 'application/yaml' }
    CT_YAML     = { 'Content-Type' => 'application/yaml' }

    def full_uri(stack_name, version = nil)
      URI.join(api_url, path_to(stack_name, version)).to_s
    end

    def path_to(stack_name, version = nil)
      version ? "/stack/#{stack_name}/version/#{version}" : "/stack/#{stack_name}"
    end

    def push(stack_name, version, data)
      post('/stack/', data, {}, CT_YAML)
    end

    def show(stack_name, stack_version = nil)
      get("#{path_to(stack_name, stack_version)}", {}, ACCEPT_JSON)
    end

    def versions(stack_name)
      get("#{path_to(stack_name, nil)}/versions", {}, ACCEPT_JSON)['versions']
    end

    def pull(stack_name, version = nil)
      get(path_to(stack_name, version), {}, ACCEPT_YAML)
    rescue StandardError => ex
      ex.message << " : #{path_to(stack_name, version)}"
      raise ex, ex.message
    end

    def search(query)
      get('/search', { q: query }, {}, ACCEPT_JSON)['stacks']
    end

    def destroy(stack_name, version = nil)
      delete(path_to(stack_name, version), {})
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
kontena-cli-1.3.0.pre1 lib/kontena/stacks_client.rb
kontena-cli-1.2.2 lib/kontena/stacks_client.rb
kontena-cli-1.2.2.rc2 lib/kontena/stacks_client.rb
kontena-cli-1.2.2.rc1 lib/kontena/stacks_client.rb
kontena-cli-1.2.1 lib/kontena/stacks_client.rb
kontena-cli-1.2.1.rc1 lib/kontena/stacks_client.rb
kontena-cli-1.2.0 lib/kontena/stacks_client.rb
kontena-cli-1.2.0.rc3 lib/kontena/stacks_client.rb
kontena-cli-1.2.0.rc2 lib/kontena/stacks_client.rb