Sha256: 73f22c5f72ebfd08996661b741b45131b1db500dddeb0ca2c9e37858b9316daa

Contents?: true

Size: 1.25 KB

Versions: 10

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_options_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

10 entries across 10 versions & 1 rubygems

Version Path
td-0.11.9 lib/td/command/acl.rb
td-0.11.8.2 lib/td/command/acl.rb
td-0.11.8.1 lib/td/command/acl.rb
td-0.11.8 lib/td/command/acl.rb
td-0.11.7 lib/td/command/acl.rb
td-0.11.6 lib/td/command/acl.rb
td-0.11.5 lib/td/command/acl.rb
td-0.11.4 lib/td/command/acl.rb
td-0.11.3 lib/td/command/acl.rb
td-0.11.2 lib/td/command/acl.rb