Module: Weavr

Extended by:
Weavr
Included in:
Weavr
Defined in:
lib/weavr.rb,
lib/weavr/error.rb,
lib/weavr/version.rb,
lib/weavr/resource.rb,
lib/weavr/response.rb,
lib/weavr/connection.rb,
lib/weavr/resource/host.rb,
lib/weavr/resource/task.rb,
lib/weavr/resource/stack.rb,
lib/weavr/resource/cluster.rb,
lib/weavr/resource/request.rb,
lib/weavr/resource/service.rb,
lib/weavr/resource/component.rb,
lib/weavr/resource/host_role.rb,
lib/weavr/resource/collection.rb,
lib/weavr/resource/repository.rb,
lib/weavr/resource/configuration.rb,
lib/weavr/resource/stack_service.rb,
lib/weavr/resource/stack_version.rb,
lib/weavr/resource/operating_system.rb,
lib/weavr/resource/service_component.rb,
lib/weavr/resource/stack_configuration.rb

Defined Under Namespace

Classes: Cluster, Collection, Component, Configuration, Connection, Host, HostRole, OperatingSystem, Repository, Request, Resource, Response, Service, ServiceComponent, Stack, StackConfiguration, StackService, StackVersion, Task

Constant Summary collapse

Error =
Class.new Exception
ConnectionError =
Class.new Error
RequestError =
Class.new Error
VERSION =
'0.0.5'

Instance Method Summary collapse

Instance Method Details

#cluster(name) ⇒ Object

Should probably be Cluster.find



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

def cluster name
  Cluster.receive connection.resource(:get, "clusters/#{name}")
end

#clustersObject



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

def clusters
  Collection.of(Cluster).receive connection.resource(:get, 'clusters')
end

#configure(overrides = {}) ⇒ Object



36
37
38
39
40
# File 'lib/weavr.rb', line 36

def configure(overrides = {})
  options = default_configuration.merge(overrides)
  set_log options[:logger] || default_logger(options[:log_level], options[:log_format])
  set_connection Connection.new(options)
end

#configure_repository(params = {}) ⇒ Object



78
79
80
81
82
83
84
85
# File 'lib/weavr.rb', line 78

def configure_repository(params = {})
  stack = stacks.items.first.refresh!
  version = stack.versions[params[:version]].refresh!
  os      = version.operatingSystems[params[:os]].refresh!
  repo    = os.repositories[params[:repo]].refresh!
  repo.update_base_url params[:url]
  repo.refresh!
end

#connectionObject



46
47
48
49
# File 'lib/weavr.rb', line 46

def connection
  return @connection if @connection
  configure
end

#create_cluster(name, options = {}) ⇒ Object

Should probably be Cluster.create



69
70
71
72
# File 'lib/weavr.rb', line 69

def create_cluster(name, options = {})
  cluster = Cluster.receive(cluster_name: name, href: File.join('clusters', name))
  cluster.create options
end

#default_configurationObject



18
19
20
21
22
23
24
25
26
27
# File 'lib/weavr.rb', line 18

def default_configuration
  {
    username:   'admin',
    password:   'admin',
    host:       'localhost',
    port:       8080,
    log_level:  'info',
    log_format: ->(sev, t, prog, msg){ "[%-5s] %s\n" % [sev.downcase, msg] }
  }
end

#default_logger(level, formatter) ⇒ Object



29
30
31
32
33
34
# File 'lib/weavr.rb', line 29

def default_logger(level, formatter)
  logger = Logger.new(STDOUT)
  logger.level = Logger.const_get(level.to_s.upcase)
  logger.formatter = formatter
  logger
end

#logObject



55
56
57
# File 'lib/weavr.rb', line 55

def log
  @log
end

#set_connection(http) ⇒ Object



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

def set_connection http
  @connection ||= http
end

#set_log(device) ⇒ Object



51
52
53
# File 'lib/weavr.rb', line 51

def set_log device
  @log ||= device
end

#stacksObject



74
75
76
# File 'lib/weavr.rb', line 74

def stacks
  Collection.of(Stack).receive connection.resource(:get, 'stacks2')
end