22require 'base64'
33require 'json'
44require 'fileutils'
5- require_relative '../tasks/run_cd4pe_job.rb'
5+ require_relative '../../ tasks/run_cd4pe_job.rb'
66
77describe 'run_cd4pe_job' do
88 before ( :all ) do
9- @logger = Logger . new
9+ @logger = RunCD4PEJob :: Logger . new
1010 end
1111
1212 before ( :each ) do
13- @working_dir = File . join ( Dir . getwd , " test_working_dir" )
13+ @working_dir = File . join ( Dir . getwd , ' test_working_dir' )
1414 Dir . mkdir ( @working_dir )
1515
1616 # Ensure tests don't write to /etc/containers/certs.d
17- @certs_dir = File . join ( @working_dir , " certs.d" )
18- CD4PEJobRunner . send ( :remove_const , :DOCKER_CERTS )
19- CD4PEJobRunner . const_set ( :DOCKER_CERTS , @certs_dir )
17+ @certs_dir = File . join ( @working_dir , ' certs.d' )
18+ RunCD4PEJob :: CD4PEJobRunner . send ( :remove_const , :DOCKER_CERTS )
19+ RunCD4PEJob :: CD4PEJobRunner . const_set ( :DOCKER_CERTS , @certs_dir )
2020
2121 @web_ui_endpoint = 'https://testtest.com'
2222 @job_token = 'alksjdbhfnadhsbf'
2323 @job_owner = 'carls cool carl'
2424 @job_instance_id = '17'
2525 @secrets = {
26- secret1 : " hello" ,
27- secret2 : " friend" ,
26+ secret1 : ' hello' ,
27+ secret2 : ' friend' ,
2828 }
2929 @windows_job = ENV [ 'RUN_WINDOWS_UNIT_TESTS' ]
30+ @cd4pe_client = nil
3031 end
3132
3233 after ( :each ) do
3738 describe 'cd4pe_job_helper::get_runtime' do
3839 it 'Detects docker as the available runtime.' do
3940 test_container_image = 'puppetlabs/test:10.0.1'
40- job_helper = CD4PEJobRunner . new ( windows_job : @windows_job , working_dir : @working_dir , container_image : test_container_image , job_token : @job_token , web_ui_endpoint : @web_ui_endpoint , job_owner : @job_owner , job_instance_id : @job_instance_id , logger : @logger , secrets : @secrets )
41- expect ( job_helper . get_runtime ) . to eq ( 'docker' )
41+ job_helper = RunCD4PEJob ::CD4PEJobRunner . new ( windows_job : @windows_job , working_dir : @working_dir , container_image : test_container_image , job_owner : @job_owner , job_instance_id : @job_instance_id ,
42+ logger : @logger , secrets : @secrets , cd4pe_client : @cd4pe_client )
43+ expect ( job_helper . send ( :get_runtime ) ) . to eq ( 'docker' )
4244 end
4345 end
4446
4547 describe 'cd4pe_job_helper::update_container_image' do
4648 let ( :test_container_image ) { 'puppetlabs/test:10.0.1' }
49+
4750 it 'Generates a docker pull command.' do
48- job_helper = CD4PEJobRunner . new ( windows_job : @windows_job , working_dir : @working_dir , container_image : test_container_image , job_token : @job_token , web_ui_endpoint : @web_ui_endpoint , job_owner : @job_owner , job_instance_id : @job_instance_id , logger : @logger , secrets : @secrets )
49- docker_pull_command = job_helper . get_image_pull_cmd
51+ job_helper = RunCD4PEJob ::CD4PEJobRunner . new ( windows_job : @windows_job , working_dir : @working_dir , container_image : test_container_image , job_owner : @job_owner , job_instance_id : @job_instance_id ,
52+ logger : @logger , secrets : @secrets , cd4pe_client : @cd4pe_client )
53+ docker_pull_command = job_helper . send ( :get_image_pull_cmd )
5054 expect ( docker_pull_command ) . to eq ( "docker pull #{ test_container_image } " )
5155 end
5256
5357 context 'with config' do
5458 let ( :hostname ) { 'host1' }
55- let ( :creds_json ) { { auths : { hostname => { } } } . to_json }
59+ let ( :creds_json ) { { auths : { hostname => { } } } . to_json }
5660 let ( :creds_b64 ) { Base64 . encode64 ( creds_json ) }
5761 let ( :cert_txt ) { 'junk' }
5862 let ( :cert_b64 ) { Base64 . encode64 ( cert_txt ) }
5963
6064 it 'Uses config when present for docker.' do
61- job_helper = CD4PEJobRunner . new ( windows_job : @windows_job , working_dir : @working_dir , container_image : test_container_image , image_pull_creds : creds_b64 , job_token : @job_token , web_ui_endpoint : @web_ui_endpoint , job_owner : @job_owner , job_instance_id : @job_instance_id , logger : @logger , secrets : @secrets )
65+ job_helper = RunCD4PEJob ::CD4PEJobRunner . new ( windows_job : @windows_job , working_dir : @working_dir , container_image : test_container_image , image_pull_creds : creds_b64 , job_owner : @job_owner ,
66+ job_instance_id : @job_instance_id , logger : @logger , secrets : @secrets , cd4pe_client : @cd4pe_client )
6267 config_json = File . join ( @working_dir , '.docker' , 'config.json' )
6368 expect ( File . exist? ( config_json ) ) . to be ( true )
6469 expect ( File . read ( config_json ) ) . to eq ( creds_json )
6570
66- docker_pull_command = job_helper . get_image_pull_cmd
71+ docker_pull_command = job_helper . send ( : get_image_pull_cmd)
6772 expect ( docker_pull_command ) . to eq ( "docker --config #{ File . join ( @working_dir , '.docker' ) } pull #{ test_container_image } " )
6873 end
69-
70- it 'Registers the CA cert when provided.' do
71- job_helper = CD4PEJobRunner . new ( windows_job : @windows_job , working_dir : @working_dir , container_image : test_container_image , image_pull_creds : creds_b64 , base_64_ca_cert : cert_b64 , job_token : @job_token , web_ui_endpoint : @web_ui_endpoint , job_owner : @job_owner , job_instance_id : @job_instance_id , logger : @logger , secrets : @secrets )
72-
73- cert_file = File . join ( @certs_dir , hostname , 'ca.crt' )
74- expect ( File . exist? ( cert_file ) ) . to be ( true )
75- expect ( File . read ( cert_file ) ) . to eq ( cert_txt )
76- end
7774 end
7875 end
7976
8077 describe 'cd4pe_job_helper::get_container_run_cmd' do
8178 it 'Generates the correct docker run command.' do
82- test_manifest_type = " AFTER_JOB_SUCCESS"
79+ test_manifest_type = ' AFTER_JOB_SUCCESS'
8380 test_container_image = 'puppetlabs/test:10.0.1'
8481 arg1 = '--testarg=woot'
8582 arg2 = '--otherarg=hello'
8683 arg3 = '--whatever=doesntmatter'
8784 user_specified_container_run_args = [ arg1 , arg2 , arg3 ]
8885 job_type = 'unix'
8986
90- job_helper = CD4PEJobRunner . new ( windows_job : @windows_job , working_dir : @working_dir , container_image : test_container_image , container_run_args : user_specified_container_run_args , job_token : @job_token , web_ui_endpoint : @web_ui_endpoint , job_owner : @job_owner , job_instance_id : @job_instance_id , logger : @logger , secrets : @secrets )
87+ job_helper = RunCD4PEJob ::CD4PEJobRunner . new ( windows_job : @windows_job , working_dir : @working_dir , container_image : test_container_image , container_run_args : user_specified_container_run_args ,
88+ job_owner : @job_owner , job_instance_id : @job_instance_id , logger : @logger , secrets : @secrets , cd4pe_client : @cd4pe_client )
9189
92- docker_run_command = job_helper . get_container_run_cmd ( test_manifest_type )
90+ docker_run_command = job_helper . send ( :get_container_run_cmd , test_manifest_type )
9391 cmd_parts = docker_run_command . split ( ' ' )
9492
9593 expect ( cmd_parts [ 0 ] ) . to eq ( 'docker' )
110108 expect ( cmd_parts [ 15 ] ) . to eq ( '"/cd4pe_job/AFTER_JOB_SUCCESS"' )
111109 end
112110 end
113- end
111+ end
0 commit comments