Class: HP::Cloud::AclCmd

Inherits:
Object
  • Object
show all
Defined in:
lib/hpcloud/acl_cmd.rb

Constant Summary collapse

VALID_ACLS =
["r", "rw", "w"]

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(permissions, users) ⇒ AclCmd

Returns a new instance of AclCmd.



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/hpcloud/acl_cmd.rb', line 30

def initialize(permissions, users)
  @cstatus = CliStatus.new
  @permissions = permissions.downcase
  @permissions = "r" if @permissions == "public-read"
  @users = users

  if @permissions == "private"
    @cstatus = CliStatus.new("Use the acl:revoke command to revoke public read permissions", :incorrect_usage)
    return
  end
  unless VALID_ACLS.include?(@permissions)
    @cstatus = CliStatus.new("Your permissions '#{@permissions}' are not valid.\nValid settings are: #{VALID_ACLS.join(', ')}", :incorrect_usage)
    return
  end
  @permissions = "pr" if is_public? && @permissions == "r"
  if is_public? && @permissions != "pr"
    @cstatus = CliStatus.new("You may not make an object writable by everyone", :not_supported)
    return
  end
end

Instance Attribute Details

#cstatusObject (readonly)

Returns the value of attribute cstatus.



28
29
30
# File 'lib/hpcloud/acl_cmd.rb', line 28

def cstatus
  @cstatus
end

#permissionsObject (readonly)

Returns the value of attribute permissions.



27
28
29
# File 'lib/hpcloud/acl_cmd.rb', line 27

def permissions
  @permissions
end

#usersObject (readonly)

Returns the value of attribute users.



27
28
29
# File 'lib/hpcloud/acl_cmd.rb', line 27

def users
  @users
end

Instance Method Details

#is_public?Boolean

Returns:

  • (Boolean)


51
52
53
54
55
# File 'lib/hpcloud/acl_cmd.rb', line 51

def is_public?
  return false if @users.nil?
  return true if @users.empty?
  return false
end

#is_valid?Boolean

Returns:

  • (Boolean)


57
58
59
# File 'lib/hpcloud/acl_cmd.rb', line 57

def is_valid?
  return @cstatus.is_success?
end

#readersObject



61
62
63
64
65
66
# File 'lib/hpcloud/acl_cmd.rb', line 61

def readers
  return [] if @permissions == "pr"
  return @users if @permissions == "r"
  return @users if @permissions == "rw"
  return nil
end

#to_sObject



74
75
76
77
78
# File 'lib/hpcloud/acl_cmd.rb', line 74

def to_s
  return "public-read" if @permissions == "pr"
  return (@permissions + " for " + @users.join(",")) unless @users.nil?
  return @permissions
end

#writersObject



68
69
70
71
72
# File 'lib/hpcloud/acl_cmd.rb', line 68

def writers
  return @users if @permissions == "w"
  return @users if @permissions == "rw"
  return nil
end