32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
# File 'lib/imperium/service.rb', line 32
class Service < APIObject
self.attribute_map = {
'ID' => :id,
'Name' => :name,
'Tags' => :tags,
'Address' => :address,
'Port' => :port,
'Check' => :check,
'Checks' => :checks,
'EnableTagOverride' => :enable_tag_override,
'CreateIndex' => :create_index,
'ModifyIndex' => :modify_index
}
def initialize(*args)
@tags ||= []
@checks ||= []
super
end
def add_check(val)
@checks << maybe_convert_service_check(val) unless val.nil?
end
alias check= add_check
def checks=(val)
@checks = (val || []).map { |obj| maybe_convert_service_check(obj) }
end
def tags=(val)
@tags = (val.nil? ? [] : val)
end
def registration_data
to_h.tap do |h|
h.delete('CreateIndex')
h.delete('ModifyIndex')
h.delete('Checks') if checks.empty?
end
end
private
def maybe_convert_service_check(attrs_or_check)
attrs_or_check.is_a?(Hash) ? ServiceCheck.new(attrs_or_check) : attrs_or_check
end
end
|