Class: Cloudpassage::Accounts

Inherits:
Base
  • Object
show all
Includes:
Collection
Defined in:
lib/cloudpassage/servers.rb

Instance Method Summary collapse

Methods included from Collection

#[], #get, #to_s

Methods inherited from Base

#[], #data, #method_missing, #object_symbol, #post, #reload, #wait_for

Constructor Details

#initialize(server, token, base_resource, data = nil) ⇒ Accounts

Returns a new instance of Accounts.



37
38
39
40
# File 'lib/cloudpassage/servers.rb', line 37

def initialize(server, token, base_resource, data=nil)
  @server = server
  super(token, base_resource, data)
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Cloudpassage::Base

Instance Method Details

#allObject



46
47
48
# File 'lib/cloudpassage/servers.rb', line 46

def all
  data.map{|i| get(i[:username], i)}
end

#create(username, groups = '', opts = {}) ⇒ Object



50
51
52
53
54
55
56
57
58
# File 'lib/cloudpassage/servers.rb', line 50

def create(username, groups = '', opts = {})
  payload = {'account' => {
    :username => username,
    :comment  => '',
    :groups   => groups,
    :password => password_opts.merge(opts.fetch(:password, {})),
  }}
  @server.commands.get(post(payload)['command']['id'])
end

#headersObject



69
70
71
# File 'lib/cloudpassage/servers.rb', line 69

def headers
  super.merge({'Content-Type'=>'application/json'})
end

#remove(username) ⇒ Object



65
66
67
# File 'lib/cloudpassage/servers.rb', line 65

def remove(username)
  JSON.parse @base_resource[username].delete(headers)
end

#reset(username, opts = {}) ⇒ Object



60
61
62
63
# File 'lib/cloudpassage/servers.rb', line 60

def reset(username, opts = {})
  payload = {'password' => password_opts.merge(opts)}
  JSON.parse @base_resource[username]['password'].put(payload.to_json, headers)
end

#singleton_classObject



42
43
44
# File 'lib/cloudpassage/servers.rb', line 42

def singleton_class
  Account
end