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/services.rb,
lib/fluffy/session/interfaces.rb,
lib/fluffy/session/addressbook.rb,
lib/fluffy/session/rollback_checks.rb

Defined Under Namespace

Classes: Addressbook, Chains, Interfaces, Rollback_checks, 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



30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/fluffy/session.rb', line 30

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)
end

Instance Attribute Details

#addressbookFluffy::Session::Addressbook (readonly)

Returns The session addressbook.

Returns:



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

def addressbook
  @addressbook
end

#chainsFluffy::Session::Chains (readonly)

Returns The session chains.

Returns:



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

def chains
  @chains
end

#endpointString (readonly)

Returns The session endpoint.

Returns:

  • (String)

    The session endpoint



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

def endpoint
  @endpoint
end

#interfacesFluffy::Session::Interfaces (readonly)

Returns The session interfaces.

Returns:



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

def interfaces
  @interfaces
end

#rulesFluffy::Session::Rules (readonly)

Returns The session rules.

Returns:



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

def rules
  @rules
end

#servicesFluffy::Session::Services (readonly)

Returns The session services.

Returns:



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

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`



54
55
56
# File 'lib/fluffy/session.rb', line 54

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



60
61
62
# File 'lib/fluffy/session.rb', line 60

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

#destroy!Object

Destroy the session



66
67
68
# File 'lib/fluffy/session.rb', line 66

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

#test!Object

Test the session configuration



45
46
47
# File 'lib/fluffy/session.rb', line 45

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