class InputValidator
Public Class Methods
new()
click to toggle source
# File lib/input_validator.rb, line 3 def initialize @simple_validator = SimpleValidator.new end
Public Instance Methods
test_mode()
click to toggle source
# File lib/input_validator.rb, line 7 def test_mode @test_mode = true end
validate_manifest(m) { |'Config map must be a non-nil class of type Hashit'| ... }
click to toggle source
# File lib/input_validator.rb, line 20 def validate_manifest m manifest = Hashit.new m puts 'Validating upgrade manifest...' if manifest.nil? || manifest.class.to_s != 'Hashit' yield 'Config map must be a non-nil class of type Hashit' end @node_name = 'manifest' yield @simple_validator.method_exists manifest, 'version_source' yield @simple_validator.method_value_not_nil manifest, 'version_source' yield @simple_validator.method_exists manifest.version_source, 'repo_url' yield @simple_validator.method_value_not_nil_or_empty manifest.version_source, 'repo_url' yield @simple_validator.method_exists manifest.version_source, 'branch' yield @simple_validator.method_value_not_nil_or_empty manifest.version_source, 'branch' yield @simple_validator.method_exists manifest, 'projects' yield @simple_validator.method_value_not_nil manifest, 'projects' end
validate_project_node(project) { |msg| ... }
click to toggle source
# File lib/input_validator.rb, line 40 def validate_project_node project @node_name = 'project' # ensure is_root value's boolean only if the key exists msg = @simple_validator.method_exists project, 'is_root' if msg.nil? msg = @simple_validator.method_value_not_nil_or_empty project, 'is_root' project.is_root = project.is_root.downcase == 'y' if msg.nil? else yield msg end # previous and next keys are required, their values are not yield @simple_validator.method_exists project, 'next' yield @simple_validator.method_exists project, 'previous' @node_name = 'project.metadata' yield @simple_validator.method_exists project.metadata, 'repo_url' yield @simple_validator.method_value_not_nil_or_empty project.metadata, 'repo_url' yield @simple_validator.method_exists project.metadata, 'branch' yield @simple_validator.method_value_not_nil_or_empty project.metadata, 'branch' yield @simple_validator.method_exists project.metadata, 'should_upgrade' msg = @simple_validator.method_value_not_nil_or_empty project.metadata, 'should_upgrade' project.metadata.should_upgrade = project.metadata.should_upgrade.downcase == 'y' if msg.nil? yield msg yield @simple_validator.method_exists project.metadata, 'should_publish_nuget' msg = @simple_validator.method_value_not_nil_or_empty project.metadata, 'should_publish_nuget' project.metadata.should_publish_nuget = project.metadata.should_publish_nuget.downcase == 'y' if msg.nil? yield msg yield @simple_validator.method_exists project.metadata, 'env_vars' yield @simple_validator.method_value_not_nil project.metadata, 'env_vars' yield @simple_validator.method_exists project.metadata, 'status' yield @simple_validator.method_value_not_nil_or_empty project.metadata, 'status' yield @simple_validator.method_exists project.metadata, 'build_configuration_id' yield @simple_validator.method_exists project.metadata, 'build_wait_time_in_secs' @node_name = 'project.metadata.env_vars' yield @simple_validator.method_exists project.metadata.env_vars, 'env' yield @simple_validator.method_value_not_nil_or_empty project.metadata.env_vars, 'env' yield @simple_validator.method_exists project.metadata.env_vars, 'service_name' yield @simple_validator.method_value_not_nil_or_empty project.metadata.env_vars, 'service_name' if !@test_mode yield @simple_validator.method_exists project.metadata.env_vars, 'AI_InstrumentationKey' yield @simple_validator.method_value_not_nil_or_empty project.metadata.env_vars, 'AI_InstrumentationKey' yield @simple_validator.method_exists project.metadata.env_vars, 'AppClientId' yield @simple_validator.method_value_not_nil_or_empty project.metadata.env_vars, 'AppClientId' yield @simple_validator.method_exists project.metadata.env_vars, 'RuntimePath' yield @simple_validator.method_value_not_nil_or_empty project.metadata.env_vars, 'RuntimePath' yield @simple_validator.method_exists project.metadata.env_vars, 'SettingsAccount' yield @simple_validator.method_value_not_nil_or_empty project.metadata.env_vars, 'SettingsAccount' yield @simple_validator.method_exists project.metadata.env_vars, 'SettingsAccountKey' yield @simple_validator.method_value_not_nil_or_empty project.metadata.env_vars, 'SettingsAccountKey' yield @simple_validator.method_exists project.metadata.env_vars, 'unitestconnectionString' yield @simple_validator.method_value_not_nil_or_empty project.metadata.env_vars, 'unitestconnectionString' yield @simple_validator.method_exists project.metadata.env_vars, 'should_update_settings_connstr' yield @simple_validator.method_value_not_nil_or_empty project.metadata.env_vars, 'should_update_settings_connstr' end @node_name = 'project.metadata.semver' yield @simple_validator.method_exists project.metadata, 'semver' yield @simple_validator.method_value_not_nil project.metadata, 'semver' yield @simple_validator.method_exists project.metadata.semver, 'file' yield @simple_validator.method_value_not_nil_or_empty project.metadata.semver, 'file' yield @simple_validator.method_exists project.metadata.semver, 'dimension' yield @simple_validator.method_value_not_nil_or_empty project.metadata.semver, 'dimension' # location key required not value yield @simple_validator.method_exists project.metadata.semver, 'location' end
validate_version_map(version_map) { |'Version map must be a non-empty ' + HASH| ... }
click to toggle source
We should do more specific test of which environment variables are we expecting or which metatdata are we expecting
if project publishes nuget we need to check if major /minor/patch incrmeented but not all 3
# File lib/input_validator.rb, line 14 def validate_version_map version_map if version_map.nil? || !version_map.is_a?(GlobalConstants::HASH) yield 'Version map must be a non-empty ' + GlobalConstants::HASH end end