class Serverspec::Type::DockerService

Public Instance Methods

configs() click to toggle source
# File lib/serverspec_extra_types/types/docker_service.rb, line 72
def configs
  inspection['Spec']['TaskTemplate']['ContainerSpec']['Configs']
end
environment_variable(regex) click to toggle source
# 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_variables() click to toggle source
# File lib/serverspec_extra_types/types/docker_service.rb, line 149
def environment_variables
  inspection['Spec']['TaskTemplate']['ContainerSpec']['Env']
end
exist?() click to toggle source
# File lib/serverspec_extra_types/types/docker_service.rb, line 10
def exist?
  get_inspection.success?
end
global?() click to toggle source
# File lib/serverspec_extra_types/types/docker_service.rb, line 108
def global?
  inspection['Spec']['Mode']['Global']
end
has_config?(name, target = nil) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# File lib/serverspec_extra_types/types/docker_service.rb, line 88
def has_host?(host)
  hosts.include? host
end
has_image?(image) click to toggle source
# File lib/serverspec_extra_types/types/docker_service.rb, line 30
def has_image?(image)
  self.image == image
end
has_image_sha?(image) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# File lib/serverspec_extra_types/types/docker_service.rb, line 18
def has_restart_limit?(limit)
  restart_limit == limit
end
has_restart_policy?(policy) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# File lib/serverspec_extra_types/types/docker_service.rb, line 46
def has_user?(user)
  self.user == user
end
hosts() click to toggle source
# File lib/serverspec_extra_types/types/docker_service.rb, line 92
def hosts
  inspection['Spec']['TaskTemplate']['ContainerSpec']['Hosts']
end
image() click to toggle source
# File lib/serverspec_extra_types/types/docker_service.rb, line 38
def image
  inspection['Spec']['TaskTemplate']['ContainerSpec']['Image'].split('@')[0]
end
image_sha() click to toggle source
# File lib/serverspec_extra_types/types/docker_service.rb, line 42
def image_sha
  inspection['Spec']['TaskTemplate']['ContainerSpec']['Image'].split('@')[1]
end
label(label) click to toggle source
# File lib/serverspec_extra_types/types/docker_service.rb, line 161
def label(label)
  labels.find { |key, _val| key == label }
end
labels() click to toggle source
# 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') click to toggle source
# 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
mounts() click to toggle source
# File lib/serverspec_extra_types/types/docker_service.rb, line 60
def mounts
  inspection['Spec']['TaskTemplate']['ContainerSpec']['Mounts']
end
networks() click to toggle source
# File lib/serverspec_extra_types/types/docker_service.rb, line 116
def networks
  inspection['Spec']['TaskTemplate']['Networks']
end
placement_constraints() click to toggle source
# File lib/serverspec_extra_types/types/docker_service.rb, line 100
def placement_constraints
  inspection['Spec']['TaskTemplate']['Placement']['Constraints']
end
port_map() click to toggle source
# File lib/serverspec_extra_types/types/docker_service.rb, line 125
def port_map
  inspection['Spec']['EndpointSpec']['Ports']
end
replicas() click to toggle source
# File lib/serverspec_extra_types/types/docker_service.rb, line 112
def replicas
  inspection['Spec']['Mode']['Replicated']['Replicas']
end
replicated?() click to toggle source
# File lib/serverspec_extra_types/types/docker_service.rb, line 104
def replicated?
  inspection['Spec']['Mode']['Replicated']
end
restart_limit() click to toggle source
# File lib/serverspec_extra_types/types/docker_service.rb, line 26
def restart_limit
  inspection['Spec']['TaskTemplate']['RestartPolicy']['MaxAttempts']
end
restart_policy() click to toggle source
# File lib/serverspec_extra_types/types/docker_service.rb, line 22
def restart_policy
  inspection['Spec']['TaskTemplate']['RestartPolicy']['Condition']
end
secrets() click to toggle source
# File lib/serverspec_extra_types/types/docker_service.rb, line 84
def secrets
  inspection['Spec']['TaskTemplate']['ContainerSpec']['Secrets']
end
user() click to toggle source
# File lib/serverspec_extra_types/types/docker_service.rb, line 50
def user
  inspection['Spec']['TaskTemplate']['ContainerSpec']['User']
end

Private Instance Methods

get_inspection() click to toggle source

rubocop:disable Naming/AccessorMethodName

# File lib/serverspec_extra_types/types/docker_service.rb, line 172
def get_inspection
  @get_inspection ||= @runner.run_command("docker service inspect #{@name}")
end