Class: Fluffy::Session

Inherits:
Object
  • Object
show all
Includes:
API
Defined in:
lib/fluffy/session.rb,
lib/fluffy/session/rules.rb,
lib/fluffy/session/chains.rb,
lib/fluffy/session/checks.rb,
lib/fluffy/session/services.rb,
lib/fluffy/session/interfaces.rb,
lib/fluffy/session/addressbook.rb

Defined Under Namespace

Classes: Addressbook, Chains, Checks, Interfaces, Rules, Services

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from API

api

Constructor Details

#initialize(name:, owner:, ttl:) ⇒ Session

Create a new session

Parameters:

  • name (String)

    Session name

  • owner (String)

    Session owner

  • ttl (Integer)

    Session time-to-live



33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/fluffy/session.rb', line 33

def initialize(name:, owner:, ttl:)
  @endpoint = ["sessions", name]

  # create session
  @@api.post(endpoint: @endpoint, params: {'owner' => owner, 'ttl' => ttl})

  @addressbook = Addressbook.new(endpoint: @endpoint)
  @services = Services.new(endpoint: @endpoint)
  @rules = Rules.new(endpoint: @endpoint)
  @interfaces = Interfaces.new(endpoint: @endpoint)
  @chains = Chains.new(endpoint: @endpoint)
  @checks = Checks.new(endpoint: @endpoint)
end

Instance Attribute Details

#addressbookFluffy::Session::Addressbook (readonly)

Returns The session addressbook.

Returns:



13
14
15
# File 'lib/fluffy/session.rb', line 13

def addressbook
  @addressbook
end

#chainsFluffy::Session::Chains (readonly)

Returns The session chains.

Returns:



21
22
23
# File 'lib/fluffy/session.rb', line 21

def chains
  @chains
end

#checksFluffy::Session::Checks (readonly)

Returns The session rollback checks.

Returns:



23
24
25
# File 'lib/fluffy/session.rb', line 23

def checks
  @checks
end

#endpointString (readonly)

Returns The session endpoint.

Returns:

  • (String)

    The session endpoint



25
26
27
# File 'lib/fluffy/session.rb', line 25

def endpoint
  @endpoint
end

#interfacesFluffy::Session::Interfaces (readonly)

Returns The session interfaces.

Returns:



19
20
21
# File 'lib/fluffy/session.rb', line 19

def interfaces
  @interfaces
end

#rulesFluffy::Session::Rules (readonly)

Returns The session rules.

Returns:



17
18
19
# File 'lib/fluffy/session.rb', line 17

def rules
  @rules
end

#servicesFluffy::Session::Services (readonly)

Returns The session services.

Returns:



15
16
17
# File 'lib/fluffy/session.rb', line 15

def services
  @services
end

Instance Method Details

#commit!(rollback: true, rollback_interval: 60) ⇒ Object

Commit the session configuration

Parameters:

  • rollback (Boolean) (defaults to: true)

    Enable rollback ‘defaults to false`

  • rollback_interval (Integer) (defaults to: 60)

    Rollback configuration at the given interval (seconds) ‘defaults to 60`



58
59
60
# File 'lib/fluffy/session.rb', line 58

def commit!(rollback: true, rollback_interval: 60)
  @@api.post(endpoint: self.endpoint + ['commit'], params: {'rollback' => rollback, 'rollback_interval' => rollback_interval})
end

#confirm!Object

Confirm the session configuration



64
65
66
# File 'lib/fluffy/session.rb', line 64

def confirm!
  @@api.post(endpoint: self.endpoint + ['confirm'])
end

#destroy!Object

Destroy the session



70
71
72
# File 'lib/fluffy/session.rb', line 70

def destroy!
  @@api.delete(endpoint: self.endpoint)
end

#test!Object

Test the session configuration



49
50
51
# File 'lib/fluffy/session.rb', line 49

def test!
  @@api.post(endpoint: self.endpoint + ['test'])
end