Class: Katello::Validators::EnvironmentDockerRepositoriesValidator
- Inherits:
-
ActiveModel::Validator
- Object
- ActiveModel::Validator
- Katello::Validators::EnvironmentDockerRepositoriesValidator
- Defined in:
- app/lib/katello/validators/environment_docker_repositories_validator.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.validate_repositories(registry_name_pattern, repositories) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'app/lib/katello/validators/environment_docker_repositories_validator.rb', line 21 def self.validate_repositories(registry_name_pattern, repositories) = [] name_to_repos = {} repositories.each do |repository| name = Katello::Repository.safe_render_container_name(repository, registry_name_pattern) unless ContainerImageNameValidator.validate_name(name) << N_("Registry name pattern results in invalid container image name of member repository '%{name}'") % {name: repository.name} return end name_to_repos[name] ||= [] name_to_repos[name] << repository end duplicate_repos = name_to_repos.select { |_name, repos| repos.count > 1 }.values.flatten if duplicate_repos.any? repo_names = duplicate_repos.map(&:name).sort.join(', ') << N_("Registry name pattern results in duplicate container image names for these repositories: %s.") % repo_names return end [] end |
Instance Method Details
#test_repository ⇒ Object
44 45 46 47 48 49 50 51 52 |
# File 'app/lib/katello/validators/environment_docker_repositories_validator.rb', line 44 def test_repository Katello::Repository.new( root: ::Katello::RootRepository.new(name: "bad name!", label: "good_label", docker_upstream_name: "image/name", url: "https://registry.example.com"), product: ::Katello::Product.new(name: "bad name!", label: "good_label"), environment: ::Katello::KTEnvironment.new(name: "bad name!", label: "good_label", organization: Organization.new(name: "bad name!", label: "good_label")), content_view_version: ::Katello::ContentViewVersion.new(major: 1, minor: 20, content_view: Katello::ContentView.new(name: "bad name!", label: "good_label")) ) end |
#validate(environment) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'app/lib/katello/validators/environment_docker_repositories_validator.rb', line 4 def validate(environment) return true if environment.registry_name_pattern.empty? unless ContainerImageNameValidator.validate_name(Katello::Repository.safe_render_container_name(test_repository, environment.registry_name_pattern)) environment.errors.add(:registry_name_pattern, N_("Registry name pattern will result in invalid container image name of member repositories")) return false end = EnvironmentDockerRepositoriesValidator.validate_repositories(environment.registry_name_pattern, environment.repositories.docker_type) return true if .empty? .each do || environment.errors.add(:registry_name_pattern, ) end false end |