File tree 2 files changed +32
-1
lines changed
2 files changed +32
-1
lines changed Original file line number Diff line number Diff line change @@ -121,7 +121,7 @@ def interfaces
121
121
confine { Facter ::Core ::Execution . which ( 'docker' ) }
122
122
setcode do
123
123
docker_version = Facter . value ( :docker_client_version )
124
- if docker_version &.match? ( %r{1[0 -9][0-2]?[.] \w + } )
124
+ if docker_version &.match? ( %r{\A (1 \. 1[3 -9]|[2-9]| \d {2,}) \. } )
125
125
docker_json_str = Facter ::Core ::Execution . execute (
126
126
"#{ docker_command } info --format '{{json .}}'" , timeout : 90
127
127
)
Original file line number Diff line number Diff line change 90
90
end
91
91
end
92
92
93
+ describe 'docker_client_version fact containment' do
94
+ [
95
+ '0.0.1' ,
96
+ '0.5.12' ,
97
+ '1.12.0' ,
98
+ ] . each do |docker_client_version |
99
+ it "Does not generate a nested fact with legacy version #{ docker_client_version } " do
100
+ expect ( Facter . fact ( :docker_client_version ) ) . to receive ( :value ) . and_return ( docker_client_version )
101
+ expect ( Facter ::Core ::Execution ) . not_to receive ( :execute ) . with ( "#{ docker_command } info --format '{{json .}}'" , any_args )
102
+
103
+ expect ( Facter . fact ( :docker ) . value ) . to be_nil
104
+ end
105
+ end
106
+
107
+ [
108
+ '1.13.0' ,
109
+ '1.14.0' ,
110
+ '2.0.0' ,
111
+ '20.10.22' ,
112
+ '23.0.1' ,
113
+ '108.42.1' ,
114
+ ] . each do |docker_client_version |
115
+ it "Generates a nested fact with version #{ docker_client_version } " do
116
+ expect ( Facter . fact ( :docker_client_version ) ) . to receive ( :value ) . and_return ( docker_client_version )
117
+ expect ( Facter ::Core ::Execution ) . to receive ( :execute ) . with ( "#{ docker_command } info --format '{{json .}}'" , any_args ) . and_return ( '{}' )
118
+
119
+ expect ( Facter . fact ( :docker ) . value ) . not_to be_nil
120
+ end
121
+ end
122
+ end
123
+
93
124
describe 'docker server version' do
94
125
before ( :each ) do
95
126
docker_version = File . read ( fixtures ( 'facts' , 'docker_version' ) )
You can’t perform that action at this time.
0 commit comments