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



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

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

#environment_variablesObject



149
150
151
# File 'lib/serverspec_extra_types/types/docker_service.rb', line 149

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)


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

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)


137
138
139
140
141
142
143
# File 'lib/serverspec_extra_types/types/docker_service.rb', line 137

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)


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

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)


153
154
155
156
157
158
159
# File 'lib/serverspec_extra_types/types/docker_service.rb', line 153

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)


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

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)


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

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, target = nil) ⇒ Boolean

Returns:

  • (Boolean)


76
77
78
79
80
81
82
# File 'lib/serverspec_extra_types/types/docker_service.rb', line 76

def has_secret?(name, target = nil)
  if target
    secrets.find { |secret| secret['SecretName'] == name && secret['File']['Name'] == target }
  else
    secrets.find { |secret| secret['SecretName'] == name }
  end
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



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

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



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

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

#labelsObject



165
166
167
# File 'lib/serverspec_extra_types/types/docker_service.rb', line 165

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

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

Returns:

  • (Boolean)


129
130
131
132
133
134
135
# File 'lib/serverspec_extra_types/types/docker_service.rb', line 129

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



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

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

#placement_constraintsObject



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

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

#port_mapObject



125
126
127
# File 'lib/serverspec_extra_types/types/docker_service.rb', line 125

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

#replicasObject



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

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

#replicated?Boolean

Returns:

  • (Boolean)


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

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



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

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