Method: Wildcloud::Git::Core#initialize

Defined in:
lib/wildcloud/git/core.rb

#initializeCore

Returns a new instance of Core.



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/wildcloud/git/core.rb', line 25

def initialize
  Git.logger.info('Core', 'Starting')

  # Define basic variables
  @access = {}
  @keys = {}

  # Connect to AMQP
  Git.logger.info('Core', 'Connecting to broker')
  @amqp = AMQP.connect(Git.configuration['amqp'])
  Git.logger_add_amqp(@amqp)

  # Communication infrastructure
  @channel = AMQP::Channel.new(@amqp)
  @topic = @channel.topic('wildcloud.git')
  @queue = @channel.queue("wildcloud.git.#{Git.configuration['node']['name']}")
  @queue.bind(@topic, :routing_key => 'nodes')
  @queue.bind(@topic, :routing_key => "node.#{Git.configuration['node']['name']}")

  # Request synchronization
  Git.logger.info('Core', 'Requesting synchronization')
  publish({ :node => Git.configuration['node']['name'], :type => :sync })

  # Listen for task
  @queue.subscribe do |, message|
    handle(, message)
  end
end