Codebase list facter / 2cfe518
(FACT-2648) Escaped path strings for test runs on localhost Andrei Filipovici 3 years ago
12 changed file(s) with 28 addition(s) and 8 deletion(s). Raw diff Collapse all Expand all
126126 '/bin/bash'
127127 end
128128 end
129
130 def escape_paths(host, str)
131 if host['platform'] =~ /windows/ && !host.is_cygwin?
132 str.gsub('\\') { '\\\\' }
133 else
134 str
135 end
136 end
129137 end
130138 end
131139 end
6666 step "should create a cached-custom-facts cache file that containt fact information" do
6767 result = agent.file_exist?("#{cache_folder}/cached-custom-facts")
6868 assert_equal(true, result)
69 cat_output = agent.cat( "#{cache_folder}/cached-custom-facts")
69 cat_output = agent.cat("#{cache_folder}/cached-custom-facts")
7070 assert_match(cached_file_content.chomp, cat_output.strip, 'Expected cached custom fact file to contain fact information')
7171 end
7272
1515 fact1_value = 'fact1_value'
1616 fact2_value = 'fact2_value'
1717 external_filename = 'text.yaml'
18 external_dir1 = agent.tmpdir('external_dir')
18 external_dir1 = agent.tmpdir('external_dir1')
1919 external_fact_file1 = File.join(external_dir1, external_filename)
20 external_dir2 = agent.tmpdir('external_dir')
20 external_dir2 = agent.tmpdir('external_dir2')
2121 external_fact_file2 = File.join(external_dir2, external_filename)
2222 create_remote_file(agent, external_fact_file1, "#{fact1}: #{fact1_value}")
2323 create_remote_file(agent, external_fact_file2, "#{fact2}: #{fact2_value}")
3737 custom-dir : "#{custom_config_dir}",
3838 }
3939 EOM
40
41 config_content = escape_paths(agent, config_content)
4042 create_remote_file(agent, config_file, config_content)
4143
4244 teardown do
2525 custom-dir : "#{custom_dir}",
2626 }
2727 EOM
28 config_content = escape_paths(agent, config_content)
2829 create_remote_file(agent, config_file, config_content)
2930
3031 teardown do
3737 custom-dir : [ "#{custom_dir_1}", "#{custom_dir_2}" ],
3838 }
3939 EOM
40 config_content = escape_paths(agent, config_content)
4041 create_remote_file(agent, config_file, config_content)
4142
4243 teardown do
2121 external-dir : "#{external_config_dir}",
2222 }
2323 EOM
24 config_content = escape_paths(agent, config_content)
2425 create_remote_file(agent, config_file, config_content)
2526
2627 teardown do
2020 external-dir : "#{external_dir}",
2121 }
2222 EOM
23 config_content = escape_paths(agent, config_content)
2324 create_remote_file(agent, config_file, config_content)
2425
2526 teardown do
2626 external-dir : [ "#{external_dir_1}", "#{external_dir_2}" ],
2727 }
2828 EOM
29 config_content = escape_paths(agent, config_content)
2930 create_remote_file(agent, config_file, config_content)
3031
3132 teardown do
4040 end
4141
4242 step "Agent #{agent}: create facter.conf, external fact, and custom fact files" do
43
44 create_remote_file(agent, facter_conf_default_path, <<-FILE)
43 config_content = <<-FILE
4544 global : {
4645 external-dir : ["#{ext_fact_dir1}", "#{ext_fact_dir2}"],
4746 custom-dir : ["#{cust_fact_dir}"]
4847 }
4948 FILE
49
50 config_content = escape_paths(agent, config_content)
51 create_remote_file(agent, facter_conf_default_path, config_content)
5052
5153 create_remote_file(agent, ext_path1, <<-FILE)
5254 externalfact1: 'This is external fact 1 in #{ext_fact_dir1} directory'
6769
6870 step "running `puppet facts` should load the config file automatically and search all external-dir and custom-dir paths" do
6971 on(agent, puppet('facts')) do |puppet_facts_output|
70 assert_match(/This is external fact 1 in #{ext_fact_dir1} directory/, puppet_facts_output.stdout, "Expected external fact")
71 assert_match(/This is external fact 2 in #{ext_fact_dir2} directory/, puppet_facts_output.stdout, "Expected external fact")
72 assert_match(/This is a custom fact in #{cust_fact_dir} directory/, puppet_facts_output.stdout, "Expected custom fact")
72
73 assert_match(/This is external fact 1 in #{escape_paths(agent, ext_fact_dir1)} directory/, puppet_facts_output.stdout.gsub('\\\\', '\\'), "Expected external fact")
74 assert_match(/This is external fact 2 in #{escape_paths(agent, ext_fact_dir2)} directory/, puppet_facts_output.stdout.gsub('\\\\', '\\'), "Expected external fact")
75 assert_match(/This is a custom fact in #{escape_paths(agent, cust_fact_dir)} directory/, puppet_facts_output.stdout.gsub('\\\\', '\\'), "Expected custom fact")
7376 end
7477 end
7578 end
2626 no-custom-facts : true,
2727 }
2828 EOM
29 config_content = escape_paths(agent, config_content)
2930 create_remote_file(agent, config_file, config_content)
3031
3132 teardown do
1717 no-external-facts : true,
1818 }
1919 EOM
20 config_content = escape_paths(agent, config_content)
2021 create_remote_file(agent, config_file, config_content)
2122
2223 teardown do