class Algo::Runner::Apply::ServiceValidator
Public Class Methods
new(srv_spec)
click to toggle source
# File lib/algo/runner/apply.rb, line 6 def initialize srv_spec @srv_spec = srv_spec end
validate(srv_spec)
click to toggle source
# File lib/algo/runner/apply.rb, line 19 def self.validate srv_spec new(srv_spec).validate end
Public Instance Methods
validate()
click to toggle source
# File lib/algo/runner/apply.rb, line 10 def validate begin @srv = Algo::Docker::Service.find(@srv_spec['Name']) rescue Algo::Docker::Error::NotFoundError @srv = nil end check_networks end
Private Instance Methods
check_networks()
click to toggle source
# File lib/algo/runner/apply.rb, line 25 def check_networks return true if @srv.blank? or @srv.spec.networks.blank? srv_networks = @srv.spec.networks.map { |n| { 'Target' => n.name } } unless srv_networks != @srv_spec['Networks'] @srv_spec['Networks'] = @srv.spec.networks.map { |n| { 'Target' => n.id } } return true end raise ValidationError, 'changing network in service is not supported' end