Class: Serverspec::Type::DockerService

Inherits:
DockerBase
  • Object
show all
Defined in:
lib/serverspec_extra_types/types/docker_service.rb

Instance Method Summary collapse

Instance Method Details

#configsObject



72
73
74
# File 'lib/serverspec_extra_types/types/docker_service.rb', line 72

def configs
  inspection['Spec']['TaskTemplate']['ContainerSpec']['Configs']
end

#environment_variable(regex) ⇒ Object



141
142
143
# File 'lib/serverspec_extra_types/types/docker_service.rb', line 141

def environment_variable(regex)
  environment_variables.find { |str| str =~ /^#{regex}=/ }.split('=')[1..-1].join('=')
end

#environment_variablesObject



145
146
147
# File 'lib/serverspec_extra_types/types/docker_service.rb', line 145

def environment_variables
  inspection['Spec']['TaskTemplate']['ContainerSpec']['Env']
end

#exist?Boolean

Returns:

  • (Boolean)


10
11
12
# File 'lib/serverspec_extra_types/types/docker_service.rb', line 10

def exist?
  get_inspection.success?
end

#global?Boolean

Returns:

  • (Boolean)


104
105
106
# File 'lib/serverspec_extra_types/types/docker_service.rb', line 104

def global?
  inspection['Spec']['Mode']['Global']
end

#has_config?(name, target = nil) ⇒ Boolean

Returns:

  • (Boolean)


64
65
66
67
68
69
70
# File 'lib/serverspec_extra_types/types/docker_service.rb', line 64

def has_config?(name, target = nil)
  if target
    configs.find { |config| config['ConfigName'] == name && config['File']['Name'] == target }
  else
    configs.find { |config| config['ConfigName'] == name }
  end
end

#has_environment_variable?(regex, value = nil) ⇒ Boolean

Returns:

  • (Boolean)


133
134
135
136
137
138
139
# File 'lib/serverspec_extra_types/types/docker_service.rb', line 133

def has_environment_variable?(regex, value = nil)
  if value
    environment_variable(regex) == value
  else
    environment_variable(regex)
  end
end

#has_host?(host) ⇒ Boolean

Returns:

  • (Boolean)


84
85
86
# File 'lib/serverspec_extra_types/types/docker_service.rb', line 84

def has_host?(host)
  hosts.include? host
end

#has_image?(image) ⇒ Boolean

Returns:

  • (Boolean)


30
31
32
# File 'lib/serverspec_extra_types/types/docker_service.rb', line 30

def has_image?(image)
  self.image == image
end

#has_image_sha?(image) ⇒ Boolean

Returns:

  • (Boolean)


34
35
36
# File 'lib/serverspec_extra_types/types/docker_service.rb', line 34

def has_image_sha?(image)
  self.image == image
end

#has_label?(label, value = nil) ⇒ Boolean

Returns:

  • (Boolean)


149
150
151
152
153
154
155
# File 'lib/serverspec_extra_types/types/docker_service.rb', line 149

def has_label?(label, value = nil)
  if value
    label(label)[1] == value
  else
    label(label)
  end
end

#has_mount?(source, target, type) ⇒ Boolean

Returns:

  • (Boolean)


54
55
56
57
58
# File 'lib/serverspec_extra_types/types/docker_service.rb', line 54

def has_mount?(source, target, type)
  mounts.find do |mount|
    mount['Source'] == source && mount['Target'] == target && mount['Type'] == type
  end
end

#has_network?(name) ⇒ Boolean

Returns:

  • (Boolean)


116
117
118
119
# File 'lib/serverspec_extra_types/types/docker_service.rb', line 116

def has_network?(name)
  target_network = DockerNetwork.new(name)
  networks.find { |network| network['Target'].include? target_network.id }
end

#has_placement_constraint?(constraint) ⇒ Boolean

Returns:

  • (Boolean)


92
93
94
# File 'lib/serverspec_extra_types/types/docker_service.rb', line 92

def has_placement_constraint?(constraint)
  placement_constraints.include? constraint
end

#has_restart_limit?(limit) ⇒ Boolean

Returns:

  • (Boolean)


18
19
20
# File 'lib/serverspec_extra_types/types/docker_service.rb', line 18

def has_restart_limit?(limit)
  restart_limit == limit
end

#has_restart_policy?(policy) ⇒ Boolean

Returns:

  • (Boolean)


14
15
16
# File 'lib/serverspec_extra_types/types/docker_service.rb', line 14

def has_restart_policy?(policy)
  restart_policy == policy
end

#has_secret?(name) ⇒ Boolean

Returns:

  • (Boolean)


76
77
78
# File 'lib/serverspec_extra_types/types/docker_service.rb', line 76

def has_secret?(name)
  secrets.find { |secret| secret['SecretName'] == name }
end

#has_user?(user) ⇒ Boolean

Returns:

  • (Boolean)


46
47
48
# File 'lib/serverspec_extra_types/types/docker_service.rb', line 46

def has_user?(user)
  self.user == user
end

#hostsObject



88
89
90
# File 'lib/serverspec_extra_types/types/docker_service.rb', line 88

def hosts
  inspection['Spec']['TaskTemplate']['ContainerSpec']['Hosts']
end

#imageObject



38
39
40
# File 'lib/serverspec_extra_types/types/docker_service.rb', line 38

def image
  inspection['Spec']['TaskTemplate']['ContainerSpec']['Image'].split('@')[0]
end

#image_shaObject



42
43
44
# File 'lib/serverspec_extra_types/types/docker_service.rb', line 42

def image_sha
  inspection['Spec']['TaskTemplate']['ContainerSpec']['Image'].split('@')[1]
end

#label(label) ⇒ Object



157
158
159
# File 'lib/serverspec_extra_types/types/docker_service.rb', line 157

def label(label)
  labels.find { |key, _val| key == label }
end

#labelsObject



161
162
163
# File 'lib/serverspec_extra_types/types/docker_service.rb', line 161

def labels
  inspection['Spec']['Labels']
end

#map_port?(published, target, protocol = 'tcp', mode = 'ingress') ⇒ Boolean

Returns:

  • (Boolean)


125
126
127
128
129
130
131
# File 'lib/serverspec_extra_types/types/docker_service.rb', line 125

def map_port?(published, target, protocol = 'tcp', mode = 'ingress')
  port_map.find do |port|
    port['PublishedPort'] == published.to_i &&
      port['TargetPort'] == target.to_i && port['PublishMode'] == mode &&
      port['Protocol'] == protocol
  end
end

#mountsObject



60
61
62
# File 'lib/serverspec_extra_types/types/docker_service.rb', line 60

def mounts
  inspection['Spec']['TaskTemplate']['ContainerSpec']['Mounts']
end

#networksObject



112
113
114
# File 'lib/serverspec_extra_types/types/docker_service.rb', line 112

def networks
  inspection['Spec']['TaskTemplate']['Networks']
end

#placement_constraintsObject



96
97
98
# File 'lib/serverspec_extra_types/types/docker_service.rb', line 96

def placement_constraints
  inspection['Spec']['TaskTemplate']['Placement']['Constraints']
end

#port_mapObject



121
122
123
# File 'lib/serverspec_extra_types/types/docker_service.rb', line 121

def port_map
  inspection['Spec']['EndpointSpec']['Ports']
end

#replicasObject



108
109
110
# File 'lib/serverspec_extra_types/types/docker_service.rb', line 108

def replicas
  inspection['Spec']['Mode']['Replicated']['Replicas']
end

#replicated?Boolean

Returns:

  • (Boolean)


100
101
102
# File 'lib/serverspec_extra_types/types/docker_service.rb', line 100

def replicated?
  inspection['Spec']['Mode']['Replicated']
end

#restart_limitObject



26
27
28
# File 'lib/serverspec_extra_types/types/docker_service.rb', line 26

def restart_limit
  inspection['Spec']['TaskTemplate']['RestartPolicy']['MaxAttempts']
end

#restart_policyObject



22
23
24
# File 'lib/serverspec_extra_types/types/docker_service.rb', line 22

def restart_policy
  inspection['Spec']['TaskTemplate']['RestartPolicy']['Condition']
end

#secretsObject



80
81
82
# File 'lib/serverspec_extra_types/types/docker_service.rb', line 80

def secrets
  inspection['Spec']['TaskTemplate']['ContainerSpec']['Secrets']
end

#userObject



50
51
52
# File 'lib/serverspec_extra_types/types/docker_service.rb', line 50

def user
  inspection['Spec']['TaskTemplate']['ContainerSpec']['User']
end