Sha256: a66777099b58592fc813e9d04db41ef196d3dbbf314716da937f1fc598cba760

Contents?: true

Size: 1.25 KB

Versions: 5

Compression:

Stored size: 1.25 KB

Contents

module TreasureData
module Command

  def acl_list(op)
    op.cmd_parse

    client = get_client

    acl = client.access_controls

    rows = []
    acl.each {|ac|
      rows << {:Subject => ac.subject, :Action => ac.action, :Scope => ac.scope, :"Grant option" => ac.grant_option}
    }

    puts cmd_render_table(rows, :fields => [:Subject, :Action, :Scope, :"Grant option"])

    if rows.empty?
      $stderr.puts "There are no access controls."
      $stderr.puts "Use '#{$prog} " + Config.cl_apikey_string + "acl:grant <subject> <action> <scope>' to grant permissions."
    end
  end

  def acl_grant(op)
    grant_option = true

    op.on('--no-grant-option', '-N', 'Grant without grant option', TrueClass) {|b|
      grant_option = !b
    }

    subject, action, scope = op.cmd_parse

    client = get_client

    client.grant_access_control(subject, action, scope, grant_option)

    $stderr.puts "Access control [#{subject} #{action} #{scope}] is created #{grant_option ? 'with' : 'without'} grant option."
  end

  def acl_revoke(op)
    subject, action, scope = op.cmd_parse

    client = get_client

    client.revoke_access_control(subject, action, scope)

    $stderr.puts "Access control [#{subject} #{action} #{scope}] is removed."
  end

  # TODO acl_test
end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
td-0.11.1 lib/td/command/acl.rb
td-0.10.99 lib/td/command/acl.rb
td-0.10.98 lib/td/command/acl.rb
td-0.10.97 lib/td/command/acl.rb
td-0.10.96 lib/td/command/acl.rb