chef 16.18.30-universal-mingw32 → 17.0.242-universal-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (881) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +9 -22
  3. data/README.md +1 -1
  4. data/Rakefile +2 -2
  5. data/chef-universal-mingw32.gemspec +1 -2
  6. data/chef.gemspec +7 -10
  7. data/distro/ruby_bin_folder/AMD64/Chef.PowerShell.Wrapper.dll +0 -0
  8. data/distro/ruby_bin_folder/AMD64/Chef.PowerShell.dll +0 -0
  9. data/distro/ruby_bin_folder/AMD64/Ijwhost.dll +0 -0
  10. data/distro/ruby_bin_folder/AMD64/concrt140.dll +0 -0
  11. data/distro/ruby_bin_folder/AMD64/host/fxr/5.0.0/hostfxr.dll +0 -0
  12. data/distro/ruby_bin_folder/AMD64/msvcp140.dll +0 -0
  13. data/distro/ruby_bin_folder/AMD64/msvcp140_1.dll +0 -0
  14. data/distro/ruby_bin_folder/AMD64/msvcp140_2.dll +0 -0
  15. data/distro/ruby_bin_folder/AMD64/msvcp140_atomic_wait.dll +0 -0
  16. data/distro/ruby_bin_folder/AMD64/msvcp140_codecvt_ids.dll +0 -0
  17. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Chef.PowerShell.Wrapper.Core.dll +0 -0
  18. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Chef.Powershell.Core.dll +0 -0
  19. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Chef.Powershell.Core.pdb +0 -0
  20. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Ijwhost.dll +0 -0
  21. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Microsoft.CSharp.dll +0 -0
  22. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Microsoft.NETCore.App.deps.json +180 -180
  23. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Microsoft.VisualBasic.Core.dll +0 -0
  24. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Microsoft.VisualBasic.dll +0 -0
  25. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Microsoft.Win32.Primitives.dll +0 -0
  26. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/Microsoft.Win32.Registry.dll +0 -0
  27. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.AppContext.dll +0 -0
  28. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Buffers.dll +0 -0
  29. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Collections.Concurrent.dll +0 -0
  30. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Collections.Immutable.dll +0 -0
  31. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Collections.NonGeneric.dll +0 -0
  32. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Collections.Specialized.dll +0 -0
  33. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Collections.dll +0 -0
  34. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.ComponentModel.Annotations.dll +0 -0
  35. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.ComponentModel.DataAnnotations.dll +0 -0
  36. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.ComponentModel.EventBasedAsync.dll +0 -0
  37. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.ComponentModel.Primitives.dll +0 -0
  38. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.ComponentModel.TypeConverter.dll +0 -0
  39. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.ComponentModel.dll +0 -0
  40. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Configuration.dll +0 -0
  41. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Console.dll +0 -0
  42. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Core.dll +0 -0
  43. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Data.Common.dll +0 -0
  44. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Data.DataSetExtensions.dll +0 -0
  45. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Data.dll +0 -0
  46. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Diagnostics.Contracts.dll +0 -0
  47. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Diagnostics.Debug.dll +0 -0
  48. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Diagnostics.DiagnosticSource.dll +0 -0
  49. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Diagnostics.FileVersionInfo.dll +0 -0
  50. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Diagnostics.Process.dll +0 -0
  51. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Diagnostics.StackTrace.dll +0 -0
  52. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Diagnostics.TextWriterTraceListener.dll +0 -0
  53. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Diagnostics.Tools.dll +0 -0
  54. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Diagnostics.TraceSource.dll +0 -0
  55. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Diagnostics.Tracing.dll +0 -0
  56. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Drawing.Primitives.dll +0 -0
  57. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Drawing.dll +0 -0
  58. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Dynamic.Runtime.dll +0 -0
  59. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Formats.Asn1.dll +0 -0
  60. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Globalization.Calendars.dll +0 -0
  61. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Globalization.Extensions.dll +0 -0
  62. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Globalization.dll +0 -0
  63. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.IO.Compression.Brotli.dll +0 -0
  64. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.IO.Compression.FileSystem.dll +0 -0
  65. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.IO.Compression.ZipFile.dll +0 -0
  66. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.IO.Compression.dll +0 -0
  67. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.IO.FileSystem.AccessControl.dll +0 -0
  68. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.IO.FileSystem.DriveInfo.dll +0 -0
  69. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.IO.FileSystem.Primitives.dll +0 -0
  70. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.IO.FileSystem.Watcher.dll +0 -0
  71. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.IO.FileSystem.dll +0 -0
  72. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.IO.IsolatedStorage.dll +0 -0
  73. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.IO.MemoryMappedFiles.dll +0 -0
  74. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.IO.Pipes.AccessControl.dll +0 -0
  75. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.IO.Pipes.dll +0 -0
  76. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.IO.UnmanagedMemoryStream.dll +0 -0
  77. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.IO.dll +0 -0
  78. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Linq.Expressions.dll +0 -0
  79. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Linq.Parallel.dll +0 -0
  80. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Linq.Queryable.dll +0 -0
  81. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Linq.dll +0 -0
  82. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Memory.dll +0 -0
  83. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Net.Http.Json.dll +0 -0
  84. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Net.Http.dll +0 -0
  85. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Net.HttpListener.dll +0 -0
  86. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Net.Mail.dll +0 -0
  87. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Net.NameResolution.dll +0 -0
  88. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Net.NetworkInformation.dll +0 -0
  89. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Net.Ping.dll +0 -0
  90. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Net.Primitives.dll +0 -0
  91. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Net.Requests.dll +0 -0
  92. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Net.Security.dll +0 -0
  93. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Net.ServicePoint.dll +0 -0
  94. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Net.Sockets.dll +0 -0
  95. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Net.WebClient.dll +0 -0
  96. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Net.WebHeaderCollection.dll +0 -0
  97. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Net.WebProxy.dll +0 -0
  98. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Net.WebSockets.Client.dll +0 -0
  99. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Net.WebSockets.dll +0 -0
  100. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Net.dll +0 -0
  101. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Numerics.Vectors.dll +0 -0
  102. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Numerics.dll +0 -0
  103. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.ObjectModel.dll +0 -0
  104. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Private.CoreLib.dll +0 -0
  105. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Private.DataContractSerialization.dll +0 -0
  106. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Private.Uri.dll +0 -0
  107. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Private.Xml.Linq.dll +0 -0
  108. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Private.Xml.dll +0 -0
  109. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Reflection.DispatchProxy.dll +0 -0
  110. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Reflection.Emit.ILGeneration.dll +0 -0
  111. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Reflection.Emit.Lightweight.dll +0 -0
  112. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Reflection.Emit.dll +0 -0
  113. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Reflection.Extensions.dll +0 -0
  114. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Reflection.Metadata.dll +0 -0
  115. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Reflection.Primitives.dll +0 -0
  116. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Reflection.TypeExtensions.dll +0 -0
  117. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Reflection.dll +0 -0
  118. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Resources.Reader.dll +0 -0
  119. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Resources.ResourceManager.dll +0 -0
  120. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Resources.Writer.dll +0 -0
  121. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Runtime.CompilerServices.Unsafe.dll +0 -0
  122. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Runtime.CompilerServices.VisualC.dll +0 -0
  123. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Runtime.Extensions.dll +0 -0
  124. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Runtime.Handles.dll +0 -0
  125. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Runtime.InteropServices.RuntimeInformation.dll +0 -0
  126. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Runtime.InteropServices.dll +0 -0
  127. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Runtime.Intrinsics.dll +0 -0
  128. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Runtime.Loader.dll +0 -0
  129. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Runtime.Numerics.dll +0 -0
  130. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Runtime.Serialization.Formatters.dll +0 -0
  131. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Runtime.Serialization.Json.dll +0 -0
  132. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Runtime.Serialization.Primitives.dll +0 -0
  133. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Runtime.Serialization.Xml.dll +0 -0
  134. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Runtime.Serialization.dll +0 -0
  135. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Runtime.dll +0 -0
  136. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Security.AccessControl.dll +0 -0
  137. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Security.Claims.dll +0 -0
  138. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Security.Cryptography.Algorithms.dll +0 -0
  139. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Security.Cryptography.Cng.dll +0 -0
  140. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Security.Cryptography.Csp.dll +0 -0
  141. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Security.Cryptography.Encoding.dll +0 -0
  142. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Security.Cryptography.OpenSsl.dll +0 -0
  143. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Security.Cryptography.Primitives.dll +0 -0
  144. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Security.Cryptography.X509Certificates.dll +0 -0
  145. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Security.Principal.Windows.dll +0 -0
  146. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Security.Principal.dll +0 -0
  147. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Security.SecureString.dll +0 -0
  148. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Security.dll +0 -0
  149. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.ServiceModel.Web.dll +0 -0
  150. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.ServiceProcess.dll +0 -0
  151. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Text.Encoding.CodePages.dll +0 -0
  152. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Text.Encoding.Extensions.dll +0 -0
  153. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Text.Encoding.dll +0 -0
  154. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Text.Encodings.Web.dll +0 -0
  155. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Text.Json.dll +0 -0
  156. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Text.RegularExpressions.dll +0 -0
  157. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Threading.Channels.dll +0 -0
  158. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Threading.Overlapped.dll +0 -0
  159. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Threading.Tasks.Dataflow.dll +0 -0
  160. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Threading.Tasks.Extensions.dll +0 -0
  161. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Threading.Tasks.Parallel.dll +0 -0
  162. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Threading.Tasks.dll +0 -0
  163. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Threading.Thread.dll +0 -0
  164. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Threading.ThreadPool.dll +0 -0
  165. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Threading.Timer.dll +0 -0
  166. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Threading.dll +0 -0
  167. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Transactions.Local.dll +0 -0
  168. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Transactions.dll +0 -0
  169. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.ValueTuple.dll +0 -0
  170. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Web.HttpUtility.dll +0 -0
  171. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Web.dll +0 -0
  172. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Windows.dll +0 -0
  173. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Xml.Linq.dll +0 -0
  174. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Xml.ReaderWriter.dll +0 -0
  175. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Xml.Serialization.dll +0 -0
  176. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Xml.XDocument.dll +0 -0
  177. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Xml.XPath.XDocument.dll +0 -0
  178. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Xml.XPath.dll +0 -0
  179. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Xml.XmlDocument.dll +0 -0
  180. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Xml.XmlSerializer.dll +0 -0
  181. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.Xml.dll +0 -0
  182. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/System.dll +0 -0
  183. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/WindowsBase.dll +0 -0
  184. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/clrcompression.dll +0 -0
  185. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/clretwrc.dll +0 -0
  186. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/clrjit.dll +0 -0
  187. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/coreclr.dll +0 -0
  188. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/createdump.exe +0 -0
  189. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/dbgshim.dll +0 -0
  190. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/hostfxr.dll +0 -0
  191. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/hostpolicy.dll +0 -0
  192. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/mscordaccore.dll +0 -0
  193. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/mscordbi.dll +0 -0
  194. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/mscorlib.dll +0 -0
  195. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/mscorrc.dll +0 -0
  196. data/distro/ruby_bin_folder/AMD64/shared/Microsoft.NETCore.App/5.0.0/netstandard.dll +0 -0
  197. data/distro/ruby_bin_folder/AMD64/vccorlib140.dll +0 -0
  198. data/distro/ruby_bin_folder/AMD64/vcruntime140.dll +0 -0
  199. data/distro/ruby_bin_folder/AMD64/vcruntime140_1.dll +0 -0
  200. data/distro/ruby_bin_folder/x86/Chef.PowerShell.dll +0 -0
  201. data/distro/ruby_bin_folder/x86/Chef.Powershell.Wrapper.dll +0 -0
  202. data/distro/ruby_bin_folder/x86/concrt140.dll +0 -0
  203. data/distro/ruby_bin_folder/x86/msvcp140.dll +0 -0
  204. data/distro/ruby_bin_folder/x86/msvcp140_1.dll +0 -0
  205. data/distro/ruby_bin_folder/x86/msvcp140_2.dll +0 -0
  206. data/distro/ruby_bin_folder/x86/msvcp140_atomic_wait.dll +0 -0
  207. data/distro/ruby_bin_folder/x86/msvcp140_codecvt_ids.dll +0 -0
  208. data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Chef.PowerShell.Wrapper.Core.dll +0 -0
  209. data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Chef.Powershell.Core.dll +0 -0
  210. data/distro/ruby_bin_folder/x86/shared/Microsoft.NETCore.App/5.0.0/Chef.Powershell.Core.pdb +0 -0
  211. data/distro/ruby_bin_folder/x86/vccorlib140.dll +0 -0
  212. data/distro/ruby_bin_folder/x86/vcruntime140.dll +0 -0
  213. data/lib/chef/action_collection.rb +1 -1
  214. data/lib/chef/application/base.rb +1 -1
  215. data/lib/chef/application.rb +1 -1
  216. data/lib/chef/applications.rb +0 -1
  217. data/lib/chef/chef_fs/command_line.rb +5 -2
  218. data/lib/chef/chef_fs/file_system.rb +9 -10
  219. data/lib/chef/client.rb +5 -5
  220. data/lib/chef/compliance/default_attributes.rb +4 -3
  221. data/lib/chef/compliance/fetcher/automate.rb +0 -7
  222. data/lib/chef/compliance/reporter/automate.rb +17 -7
  223. data/lib/chef/compliance/reporter/chef_server_automate.rb +11 -6
  224. data/lib/chef/compliance/reporter/cli.rb +77 -0
  225. data/lib/chef/compliance/reporter/compliance_enforcer.rb +4 -0
  226. data/lib/chef/compliance/reporter/json_file.rb +8 -1
  227. data/lib/chef/compliance/runner.rb +65 -27
  228. data/lib/chef/cookbook/gem_installer.rb +1 -5
  229. data/lib/chef/cookbook/synchronizer.rb +3 -5
  230. data/lib/chef/cookbook_loader.rb +2 -4
  231. data/lib/chef/cookbook_uploader.rb +0 -1
  232. data/lib/chef/cookbook_version.rb +4 -26
  233. data/lib/chef/data_bag_item.rb +11 -2
  234. data/lib/chef/data_collector/run_end_message.rb +2 -2
  235. data/lib/chef/delayed_evaluator.rb +4 -0
  236. data/lib/chef/deprecated.rb +6 -12
  237. data/lib/chef/dsl/chef_vault.rb +6 -6
  238. data/lib/chef/dsl/reboot_pending.rb +1 -2
  239. data/lib/chef/exceptions.rb +0 -3
  240. data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +20 -22
  241. data/lib/chef/formatters/error_mapper.rb +2 -2
  242. data/lib/chef/group.rb +75 -0
  243. data/lib/chef/http.rb +5 -5
  244. data/lib/chef/mixin/checksum.rb +0 -6
  245. data/lib/chef/mixin/get_source_from_package.rb +1 -1
  246. data/lib/chef/mixin/powershell_exec.rb +26 -7
  247. data/lib/chef/node/attribute.rb +9 -24
  248. data/lib/chef/node/immutable_collections.rb +13 -0
  249. data/lib/chef/node/mixin/deep_merge_cache.rb +14 -10
  250. data/lib/chef/node.rb +19 -20
  251. data/lib/chef/org.rb +3 -2
  252. data/lib/chef/platform/query_helpers.rb +2 -2
  253. data/lib/chef/policy_builder/policyfile.rb +0 -5
  254. data/lib/chef/property.rb +18 -0
  255. data/lib/chef/provider/cron.rb +2 -6
  256. data/lib/chef/provider/execute.rb +2 -1
  257. data/lib/chef/provider/file.rb +3 -3
  258. data/lib/chef/provider/git.rb +5 -7
  259. data/lib/chef/provider/group/dscl.rb +1 -1
  260. data/lib/chef/provider/group/groupadd.rb +3 -3
  261. data/lib/chef/provider/group/groupmod.rb +3 -3
  262. data/lib/chef/provider/group/pw.rb +3 -3
  263. data/lib/chef/provider/ifconfig.rb +2 -2
  264. data/lib/chef/provider/link.rb +2 -2
  265. data/lib/chef/provider/mount/aix.rb +3 -3
  266. data/lib/chef/provider/mount/mount.rb +5 -5
  267. data/lib/chef/provider/mount/windows.rb +1 -1
  268. data/lib/chef/provider/mount.rb +5 -5
  269. data/lib/chef/provider/package/apt.rb +27 -1
  270. data/lib/chef/provider/package/deb.rb +3 -3
  271. data/lib/chef/provider/package/dnf/dnf_helper.py +1 -1
  272. data/lib/chef/provider/package/portage.rb +2 -2
  273. data/lib/chef/provider/package/powershell.rb +0 -5
  274. data/lib/chef/provider/package/rubygems.rb +9 -15
  275. data/lib/chef/provider/package/windows.rb +3 -5
  276. data/lib/chef/provider/package/yum/yum_helper.py +11 -1
  277. data/lib/chef/provider/package.rb +17 -21
  278. data/lib/chef/provider/route.rb +2 -2
  279. data/lib/chef/provider/service/aixinit.rb +1 -1
  280. data/lib/chef/provider/service/debian.rb +1 -1
  281. data/lib/chef/provider/service/freebsd.rb +15 -21
  282. data/lib/chef/provider/service/macosx.rb +4 -4
  283. data/lib/chef/provider/service/systemd.rb +43 -14
  284. data/lib/chef/provider/service/upstart.rb +2 -13
  285. data/lib/chef/provider/service/windows.rb +12 -12
  286. data/lib/chef/provider/service.rb +6 -6
  287. data/lib/chef/provider/subversion.rb +10 -12
  288. data/lib/chef/provider/systemd_unit.rb +36 -10
  289. data/lib/chef/provider/template/content.rb +3 -7
  290. data/lib/chef/provider/user/dscl.rb +1 -1
  291. data/lib/chef/provider/user/mac.rb +17 -20
  292. data/lib/chef/provider/user/pw.rb +1 -1
  293. data/lib/chef/provider/user/windows.rb +1 -1
  294. data/lib/chef/provider/user.rb +2 -2
  295. data/lib/chef/provider/zypper_repository.rb +2 -2
  296. data/lib/chef/provider.rb +1 -1
  297. data/lib/chef/providers.rb +0 -1
  298. data/lib/chef/resource/alternatives.rb +6 -6
  299. data/lib/chef/resource/apt_package.rb +1 -1
  300. data/lib/chef/resource/apt_preference.rb +2 -2
  301. data/lib/chef/resource/apt_repository.rb +6 -6
  302. data/lib/chef/resource/apt_update.rb +3 -2
  303. data/lib/chef/resource/archive_file.rb +8 -9
  304. data/lib/chef/resource/breakpoint.rb +1 -1
  305. data/lib/chef/resource/build_essential.rb +2 -6
  306. data/lib/chef/resource/chef_client_config.rb +2 -2
  307. data/lib/chef/resource/chef_client_cron.rb +4 -4
  308. data/lib/chef/resource/chef_client_launchd.rb +3 -3
  309. data/lib/chef/resource/chef_client_scheduled_task.rb +1 -1
  310. data/lib/chef/resource/chef_client_systemd_timer.rb +2 -2
  311. data/lib/chef/resource/chef_client_trusted_certificate.rb +0 -1
  312. data/lib/chef/resource/chef_handler.rb +3 -7
  313. data/lib/chef/resource/chef_sleep.rb +1 -1
  314. data/lib/chef/resource/chef_vault_secret.rb +3 -8
  315. data/lib/chef/resource/chocolatey_config.rb +2 -6
  316. data/lib/chef/resource/chocolatey_feature.rb +2 -6
  317. data/lib/chef/resource/chocolatey_source.rb +4 -10
  318. data/lib/chef/resource/cron/_cron_shared.rb +2 -2
  319. data/lib/chef/resource/cron_access.rb +2 -4
  320. data/lib/chef/resource/dmg_package.rb +6 -10
  321. data/lib/chef/resource/dpkg_package.rb +1 -1
  322. data/lib/chef/resource/execute.rb +6 -1
  323. data/lib/chef/resource/file.rb +1 -1
  324. data/lib/chef/resource/group.rb +2 -2
  325. data/lib/chef/resource/homebrew_cask.rb +5 -15
  326. data/lib/chef/resource/homebrew_tap.rb +2 -6
  327. data/lib/chef/resource/hostname.rb +21 -17
  328. data/lib/chef/resource/http_request.rb +1 -1
  329. data/lib/chef/resource/kernel_module.rb +6 -17
  330. data/lib/chef/resource/locale.rb +3 -4
  331. data/lib/chef/resource/lwrp_base.rb +4 -0
  332. data/lib/chef/resource/macos_userdefaults.rb +10 -14
  333. data/lib/chef/resource/mdadm.rb +53 -7
  334. data/lib/chef/resource/mount.rb +3 -2
  335. data/lib/chef/resource/openssl_ec_private_key.rb +2 -2
  336. data/lib/chef/resource/openssl_rsa_private_key.rb +1 -1
  337. data/lib/chef/resource/openssl_x509_certificate.rb +2 -2
  338. data/lib/chef/resource/plist.rb +7 -7
  339. data/lib/chef/resource/powershell_script.rb +1 -1
  340. data/lib/chef/resource/remote_file.rb +1 -1
  341. data/lib/chef/resource/rhsm_errata.rb +16 -1
  342. data/lib/chef/resource/rhsm_errata_level.rb +10 -1
  343. data/lib/chef/resource/rhsm_register.rb +12 -23
  344. data/lib/chef/resource/rhsm_repo.rb +2 -6
  345. data/lib/chef/resource/rhsm_subscription.rb +7 -11
  346. data/lib/chef/resource/scm/git.rb +1 -1
  347. data/lib/chef/resource/sudo.rb +6 -6
  348. data/lib/chef/resource/support/client.erb +2 -6
  349. data/lib/chef/resource/sysctl.rb +2 -6
  350. data/lib/chef/resource/systemd_unit.rb +3 -3
  351. data/lib/chef/resource/template.rb +1 -1
  352. data/lib/chef/resource/timezone.rb +1 -3
  353. data/lib/chef/resource/user/mac_user.rb +1 -1
  354. data/lib/chef/resource/user_ulimit.rb +2 -3
  355. data/lib/chef/resource/windows_ad_join.rb +2 -6
  356. data/lib/chef/resource/windows_audit_policy.rb +1 -1
  357. data/lib/chef/resource/windows_auto_run.rb +2 -5
  358. data/lib/chef/resource/windows_certificate.rb +207 -73
  359. data/lib/chef/resource/windows_dfs_folder.rb +2 -6
  360. data/lib/chef/resource/windows_dfs_namespace.rb +2 -6
  361. data/lib/chef/resource/windows_dfs_server.rb +1 -3
  362. data/lib/chef/resource/windows_dns_record.rb +2 -6
  363. data/lib/chef/resource/windows_dns_zone.rb +2 -6
  364. data/lib/chef/resource/windows_env.rb +5 -4
  365. data/lib/chef/resource/windows_feature.rb +3 -9
  366. data/lib/chef/resource/windows_feature_dism.rb +2 -6
  367. data/lib/chef/resource/windows_feature_powershell.rb +3 -3
  368. data/lib/chef/resource/windows_firewall_profile.rb +4 -4
  369. data/lib/chef/resource/windows_firewall_rule.rb +2 -5
  370. data/lib/chef/resource/windows_font.rb +2 -4
  371. data/lib/chef/resource/windows_pagefile.rb +2 -6
  372. data/lib/chef/resource/windows_path.rb +2 -2
  373. data/lib/chef/resource/windows_printer.rb +4 -4
  374. data/lib/chef/resource/windows_printer_port.rb +6 -6
  375. data/lib/chef/resource/windows_security_policy.rb +9 -12
  376. data/lib/chef/resource/windows_share.rb +14 -21
  377. data/lib/chef/resource/windows_shortcut.rb +4 -6
  378. data/lib/chef/resource/windows_task.rb +17 -5
  379. data/lib/chef/resource/windows_uac.rb +2 -4
  380. data/lib/chef/resource/windows_user_privilege.rb +26 -36
  381. data/lib/chef/resource/windows_workgroup.rb +1 -2
  382. data/lib/chef/resource.rb +1 -1
  383. data/lib/chef/resource_reporter.rb +1 -1
  384. data/lib/chef/resources.rb +0 -1
  385. data/lib/chef/shell/ext.rb +3 -3
  386. data/lib/chef/user.rb +0 -1
  387. data/lib/chef/user_v1.rb +3 -4
  388. data/lib/chef/util/dsc/configuration_generator.rb +1 -0
  389. data/lib/chef/util/dsc/local_configuration_manager.rb +1 -1
  390. data/lib/chef/version.rb +1 -1
  391. data/lib/chef/win32/api.rb +2 -9
  392. data/lib/chef/win32/registry.rb +4 -2
  393. data/lib/chef/win32/version.rb +2 -4
  394. data/spec/data/cookbooks/openldap/libraries/openldap.rb +1 -1
  395. data/spec/data/lwrp/resources/bar.rb +2 -0
  396. data/spec/data/lwrp/resources/buck_passer.rb +1 -0
  397. data/spec/data/lwrp/resources/buck_passer_2.rb +1 -0
  398. data/spec/data/lwrp/resources/embedded_resource_accesses_providers_scope.rb +1 -0
  399. data/spec/data/lwrp/resources/foo.rb +2 -0
  400. data/spec/data/lwrp/resources/inline_compiler.rb +1 -0
  401. data/spec/data/lwrp/resources/monkey_name_printer.rb +1 -0
  402. data/spec/data/lwrp/resources/paint_drying_watcher.rb +1 -0
  403. data/spec/data/lwrp/resources/thumb_twiddler.rb +1 -0
  404. data/spec/data/lwrp/resources_with_default_attributes/nodeattr.rb +2 -0
  405. data/spec/data/lwrp_const_scoping/resources/conflict.rb +1 -0
  406. data/spec/data/lwrp_override/resources/foo.rb +1 -0
  407. data/spec/data/rubygems.org/nonexistent_gem-info +1 -0
  408. data/spec/data/rubygems.org/sexp_processor-info +49 -0
  409. data/spec/data/run_context/cookbooks/circular-dep1/resources/resource.rb +1 -0
  410. data/spec/data/run_context/cookbooks/circular-dep2/resources/resource.rb +1 -0
  411. data/spec/data/run_context/cookbooks/dependency1/resources/resource.rb +1 -0
  412. data/spec/data/run_context/cookbooks/dependency2/resources/resource.rb +1 -0
  413. data/spec/data/run_context/cookbooks/no-default-attr/resources/resource.rb +1 -0
  414. data/spec/data/run_context/cookbooks/test/resources/resource.rb +2 -0
  415. data/spec/data/run_context/cookbooks/test-with-circular-deps/resources/resource.rb +2 -0
  416. data/spec/data/run_context/cookbooks/test-with-deps/resources/resource.rb +1 -0
  417. data/spec/functional/assets/yumrepo/repodata/4632d67cb92636e7575d911c24f0e04d3505a944e97c483abe0c3e73a7c62d33-filelists.sqlite.bz2 +0 -0
  418. data/spec/functional/assets/yumrepo/repodata/74599b793e54d877323837d2d81a1c3c594c44e4335f9528234bb490f7b9b439-other.xml.gz +0 -0
  419. data/spec/functional/assets/yumrepo/repodata/a845d418f919d2115ab95a56b2c76f6825ad0d0bede49181a55c04f58995d057-primary.sqlite.bz2 +0 -0
  420. data/spec/functional/assets/yumrepo/repodata/af9b7cf9ef23bd7b43068d74a460f3b5d06753d638e58e4a0c9edc35bfb9cdc4-other.sqlite.bz2 +0 -0
  421. data/spec/functional/assets/yumrepo/repodata/bdb4f5f1492a3b9532f22c43110a81500dd744f23da0aec5c33b2a41317c737d-filelists.xml.gz +0 -0
  422. data/spec/functional/assets/yumrepo/repodata/c10d1d34ce99e02f12ec96ef68360543ab1bb7c3cb81a4a2bf78df7d8597e9df-primary.xml.gz +0 -0
  423. data/spec/functional/dsl/registry_helper_spec.rb +1 -1
  424. data/spec/functional/resource/aixinit_service_spec.rb +7 -7
  425. data/spec/functional/resource/apt_package_spec.rb +1 -1
  426. data/spec/functional/resource/chocolatey_package_spec.rb +9 -0
  427. data/spec/functional/resource/dnf_package_spec.rb +4 -1
  428. data/spec/functional/resource/dsc_script_spec.rb +1 -1
  429. data/spec/functional/resource/group_spec.rb +1 -5
  430. data/spec/functional/resource/link_spec.rb +0 -8
  431. data/spec/functional/resource/registry_spec.rb +8 -8
  432. data/spec/functional/resource/user/mac_user_spec.rb +2 -2
  433. data/spec/functional/resource/windows_certificate_spec.rb +92 -35
  434. data/spec/functional/resource/windows_font_spec.rb +1 -2
  435. data/spec/functional/resource/yum_package_spec.rb +0 -12
  436. data/spec/functional/shell_spec.rb +0 -5
  437. data/spec/functional/version_spec.rb +1 -1
  438. data/spec/functional/win32/registry_spec.rb +1 -1
  439. data/spec/integration/client/client_spec.rb +5 -2
  440. data/spec/integration/client/exit_code_spec.rb +1 -1
  441. data/spec/integration/client/ipv6_spec.rb +1 -1
  442. data/spec/integration/compliance/compliance_spec.rb +1 -1
  443. data/spec/integration/ohai/ohai_spec.rb +7 -6
  444. data/spec/integration/recipes/accumulator_spec.rb +13 -1
  445. data/spec/integration/recipes/lwrp_inline_resources_spec.rb +5 -1
  446. data/spec/integration/recipes/lwrp_spec.rb +3 -1
  447. data/spec/integration/recipes/notifies_spec.rb +15 -1
  448. data/spec/integration/recipes/notifying_block_spec.rb +2 -1
  449. data/spec/integration/recipes/recipe_dsl_spec.rb +9 -9
  450. data/spec/integration/recipes/unified_mode_spec.rb +1 -1
  451. data/spec/integration/recipes/use_partial_spec.rb +4 -1
  452. data/spec/spec_helper.rb +10 -17
  453. data/spec/support/chef_helpers.rb +0 -16
  454. data/spec/support/lib/chef/resource/with_state.rb +0 -1
  455. data/spec/support/lib/chef/resource/zen_follower.rb +0 -1
  456. data/spec/support/lib/chef/resource/zen_master.rb +0 -1
  457. data/spec/support/matchers/leak.rb +7 -9
  458. data/spec/support/platform_helpers.rb +1 -12
  459. data/spec/support/shared/integration/integration_helper.rb +0 -1
  460. data/spec/support/shared/unit/script_resource.rb +2 -2
  461. data/spec/unit/application/solo_spec.rb +2 -2
  462. data/spec/unit/chef_fs/diff_spec.rb +1 -1
  463. data/spec/unit/chef_fs/file_system_spec.rb +1 -1
  464. data/spec/unit/client_spec.rb +4 -4
  465. data/spec/unit/compliance/fetcher/automate_spec.rb +0 -16
  466. data/spec/unit/compliance/reporter/automate_spec.rb +26 -2
  467. data/spec/unit/compliance/reporter/chef_server_automate_spec.rb +20 -0
  468. data/spec/unit/compliance/reporter/compliance_enforcer_spec.rb +1 -0
  469. data/spec/unit/compliance/runner_spec.rb +30 -4
  470. data/spec/unit/cookbook_version_spec.rb +0 -52
  471. data/spec/unit/daemon_spec.rb +5 -1
  472. data/spec/unit/data_bag_item_spec.rb +1 -6
  473. data/spec/unit/data_collector_spec.rb +2 -71
  474. data/spec/unit/dsl/reboot_pending_spec.rb +2 -2
  475. data/spec/unit/dsl/registry_helper_spec.rb +1 -1
  476. data/spec/unit/lwrp_spec.rb +1 -1
  477. data/spec/unit/mixin/checksum_spec.rb +0 -28
  478. data/spec/unit/mixin/params_validate_spec.rb +4 -3
  479. data/spec/unit/mixin/powershell_exec_spec.rb +9 -9
  480. data/spec/unit/mixin/powershell_out_spec.rb +2 -2
  481. data/spec/unit/node/attribute_spec.rb +1 -1
  482. data/spec/unit/node_spec.rb +78 -0
  483. data/spec/unit/org_group_spec.rb +45 -0
  484. data/spec/unit/platform/query_helpers_spec.rb +5 -5
  485. data/spec/unit/policy_builder/policyfile_spec.rb +1 -11
  486. data/spec/unit/property_spec.rb +23 -22
  487. data/spec/unit/provider/cron_spec.rb +1 -35
  488. data/spec/unit/provider/group/gpasswd_spec.rb +2 -2
  489. data/spec/unit/provider/group/groupmod_spec.rb +2 -2
  490. data/spec/unit/provider/group/pw_spec.rb +2 -2
  491. data/spec/unit/provider/group_spec.rb +1 -1
  492. data/spec/unit/provider/package/apt_spec.rb +84 -18
  493. data/spec/unit/provider/package/deb_spec.rb +3 -3
  494. data/spec/unit/provider/package/powershell_spec.rb +12 -74
  495. data/spec/unit/provider/package/rubygems_spec.rb +18 -30
  496. data/spec/unit/provider/service/arch_service_spec.rb +1 -0
  497. data/spec/unit/provider/service/debian_service_spec.rb +1 -0
  498. data/spec/unit/provider/service/macosx_spec.rb +2 -2
  499. data/spec/unit/provider/service/systemd_service_spec.rb +138 -23
  500. data/spec/unit/provider/service/upstart_service_spec.rb +0 -29
  501. data/spec/unit/provider/service/windows_spec.rb +2 -2
  502. data/spec/unit/provider/subversion_spec.rb +2 -2
  503. data/spec/unit/provider/systemd_unit_spec.rb +79 -60
  504. data/spec/unit/provider/zypper_repository_spec.rb +2 -2
  505. data/spec/unit/provider_spec.rb +0 -8
  506. data/spec/unit/resource/archive_file_spec.rb +1 -13
  507. data/spec/unit/resource/chef_client_trusted_certificate_spec.rb +0 -14
  508. data/spec/unit/resource/homebrew_cask_spec.rb +11 -29
  509. data/spec/unit/resource/mount_spec.rb +0 -10
  510. data/spec/unit/resource/powershell_script_spec.rb +2 -2
  511. data/spec/unit/resource/rhsm_subscription_spec.rb +3 -50
  512. data/spec/unit/resource/systemd_unit_spec.rb +1 -1
  513. data/spec/unit/resource/user_ulimit_spec.rb +1 -14
  514. data/spec/unit/resource/windows_task_spec.rb +1 -1
  515. data/spec/unit/resource_spec.rb +2 -7
  516. data/spec/unit/user_spec.rb +1 -1
  517. data/spec/unit/user_v1_spec.rb +6 -4
  518. data/spec/unit/util/dsc/local_configuration_manager_spec.rb +2 -2
  519. data/tasks/rspec.rb +15 -7
  520. metadata +45 -404
  521. data/bin/knife +0 -24
  522. data/lib/chef/application/knife.rb +0 -234
  523. data/lib/chef/application/windows_service.rb +0 -338
  524. data/lib/chef/application/windows_service_manager.rb +0 -205
  525. data/lib/chef/chef_fs/knife.rb +0 -160
  526. data/lib/chef/chef_fs/parallelizer/flatten_enumerable.rb +0 -35
  527. data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +0 -278
  528. data/lib/chef/chef_fs/parallelizer.rb +0 -102
  529. data/lib/chef/cookbook_site_streaming_uploader.rb +0 -244
  530. data/lib/chef/knife/acl_add.rb +0 -57
  531. data/lib/chef/knife/acl_base.rb +0 -183
  532. data/lib/chef/knife/acl_bulk_add.rb +0 -78
  533. data/lib/chef/knife/acl_bulk_remove.rb +0 -83
  534. data/lib/chef/knife/acl_remove.rb +0 -62
  535. data/lib/chef/knife/acl_show.rb +0 -56
  536. data/lib/chef/knife/bootstrap/chef_vault_handler.rb +0 -162
  537. data/lib/chef/knife/bootstrap/client_builder.rb +0 -212
  538. data/lib/chef/knife/bootstrap/templates/README.md +0 -11
  539. data/lib/chef/knife/bootstrap/templates/chef-full.erb +0 -242
  540. data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +0 -278
  541. data/lib/chef/knife/bootstrap/train_connector.rb +0 -336
  542. data/lib/chef/knife/bootstrap.rb +0 -1192
  543. data/lib/chef/knife/client_bulk_delete.rb +0 -104
  544. data/lib/chef/knife/client_create.rb +0 -101
  545. data/lib/chef/knife/client_delete.rb +0 -62
  546. data/lib/chef/knife/client_edit.rb +0 -52
  547. data/lib/chef/knife/client_key_create.rb +0 -73
  548. data/lib/chef/knife/client_key_delete.rb +0 -80
  549. data/lib/chef/knife/client_key_edit.rb +0 -83
  550. data/lib/chef/knife/client_key_list.rb +0 -73
  551. data/lib/chef/knife/client_key_show.rb +0 -80
  552. data/lib/chef/knife/client_list.rb +0 -41
  553. data/lib/chef/knife/client_reregister.rb +0 -58
  554. data/lib/chef/knife/client_show.rb +0 -48
  555. data/lib/chef/knife/config_get.rb +0 -39
  556. data/lib/chef/knife/config_get_profile.rb +0 -37
  557. data/lib/chef/knife/config_list.rb +0 -139
  558. data/lib/chef/knife/config_list_profiles.rb +0 -37
  559. data/lib/chef/knife/config_show.rb +0 -127
  560. data/lib/chef/knife/config_use.rb +0 -61
  561. data/lib/chef/knife/config_use_profile.rb +0 -47
  562. data/lib/chef/knife/configure.rb +0 -150
  563. data/lib/chef/knife/configure_client.rb +0 -48
  564. data/lib/chef/knife/cookbook_bulk_delete.rb +0 -71
  565. data/lib/chef/knife/cookbook_delete.rb +0 -151
  566. data/lib/chef/knife/cookbook_download.rb +0 -142
  567. data/lib/chef/knife/cookbook_list.rb +0 -47
  568. data/lib/chef/knife/cookbook_metadata.rb +0 -106
  569. data/lib/chef/knife/cookbook_metadata_from_file.rb +0 -49
  570. data/lib/chef/knife/cookbook_show.rb +0 -98
  571. data/lib/chef/knife/cookbook_upload.rb +0 -292
  572. data/lib/chef/knife/core/bootstrap_context.rb +0 -264
  573. data/lib/chef/knife/core/cookbook_scm_repo.rb +0 -159
  574. data/lib/chef/knife/core/formatting_options.rb +0 -49
  575. data/lib/chef/knife/core/gem_glob_loader.rb +0 -138
  576. data/lib/chef/knife/core/generic_presenter.rb +0 -232
  577. data/lib/chef/knife/core/hashed_command_loader.rb +0 -100
  578. data/lib/chef/knife/core/node_editor.rb +0 -130
  579. data/lib/chef/knife/core/node_presenter.rb +0 -133
  580. data/lib/chef/knife/core/object_loader.rb +0 -115
  581. data/lib/chef/knife/core/status_presenter.rb +0 -147
  582. data/lib/chef/knife/core/subcommand_loader.rb +0 -203
  583. data/lib/chef/knife/core/text_formatter.rb +0 -85
  584. data/lib/chef/knife/core/ui.rb +0 -338
  585. data/lib/chef/knife/core/windows_bootstrap_context.rb +0 -405
  586. data/lib/chef/knife/data_bag_create.rb +0 -81
  587. data/lib/chef/knife/data_bag_delete.rb +0 -49
  588. data/lib/chef/knife/data_bag_edit.rb +0 -74
  589. data/lib/chef/knife/data_bag_from_file.rb +0 -113
  590. data/lib/chef/knife/data_bag_list.rb +0 -42
  591. data/lib/chef/knife/data_bag_secret_options.rb +0 -122
  592. data/lib/chef/knife/data_bag_show.rb +0 -69
  593. data/lib/chef/knife/delete.rb +0 -125
  594. data/lib/chef/knife/deps.rb +0 -156
  595. data/lib/chef/knife/diff.rb +0 -83
  596. data/lib/chef/knife/download.rb +0 -84
  597. data/lib/chef/knife/edit.rb +0 -88
  598. data/lib/chef/knife/environment_compare.rb +0 -128
  599. data/lib/chef/knife/environment_create.rb +0 -52
  600. data/lib/chef/knife/environment_delete.rb +0 -44
  601. data/lib/chef/knife/environment_edit.rb +0 -44
  602. data/lib/chef/knife/environment_from_file.rb +0 -84
  603. data/lib/chef/knife/environment_list.rb +0 -41
  604. data/lib/chef/knife/environment_show.rb +0 -47
  605. data/lib/chef/knife/exec.rb +0 -99
  606. data/lib/chef/knife/group_add.rb +0 -55
  607. data/lib/chef/knife/group_create.rb +0 -49
  608. data/lib/chef/knife/group_destroy.rb +0 -53
  609. data/lib/chef/knife/group_list.rb +0 -43
  610. data/lib/chef/knife/group_remove.rb +0 -56
  611. data/lib/chef/knife/group_show.rb +0 -49
  612. data/lib/chef/knife/key_create.rb +0 -112
  613. data/lib/chef/knife/key_create_base.rb +0 -50
  614. data/lib/chef/knife/key_delete.rb +0 -55
  615. data/lib/chef/knife/key_edit.rb +0 -118
  616. data/lib/chef/knife/key_edit_base.rb +0 -55
  617. data/lib/chef/knife/key_list.rb +0 -90
  618. data/lib/chef/knife/key_list_base.rb +0 -45
  619. data/lib/chef/knife/key_show.rb +0 -53
  620. data/lib/chef/knife/list.rb +0 -177
  621. data/lib/chef/knife/node_bulk_delete.rb +0 -75
  622. data/lib/chef/knife/node_create.rb +0 -47
  623. data/lib/chef/knife/node_delete.rb +0 -46
  624. data/lib/chef/knife/node_edit.rb +0 -70
  625. data/lib/chef/knife/node_environment_set.rb +0 -53
  626. data/lib/chef/knife/node_from_file.rb +0 -51
  627. data/lib/chef/knife/node_list.rb +0 -44
  628. data/lib/chef/knife/node_policy_set.rb +0 -79
  629. data/lib/chef/knife/node_run_list_add.rb +0 -104
  630. data/lib/chef/knife/node_run_list_remove.rb +0 -67
  631. data/lib/chef/knife/node_run_list_set.rb +0 -66
  632. data/lib/chef/knife/node_show.rb +0 -63
  633. data/lib/chef/knife/null.rb +0 -12
  634. data/lib/chef/knife/raw.rb +0 -123
  635. data/lib/chef/knife/recipe_list.rb +0 -32
  636. data/lib/chef/knife/rehash.rb +0 -50
  637. data/lib/chef/knife/role_bulk_delete.rb +0 -66
  638. data/lib/chef/knife/role_create.rb +0 -53
  639. data/lib/chef/knife/role_delete.rb +0 -46
  640. data/lib/chef/knife/role_edit.rb +0 -45
  641. data/lib/chef/knife/role_env_run_list_add.rb +0 -87
  642. data/lib/chef/knife/role_env_run_list_clear.rb +0 -55
  643. data/lib/chef/knife/role_env_run_list_remove.rb +0 -57
  644. data/lib/chef/knife/role_env_run_list_replace.rb +0 -60
  645. data/lib/chef/knife/role_env_run_list_set.rb +0 -70
  646. data/lib/chef/knife/role_from_file.rb +0 -51
  647. data/lib/chef/knife/role_list.rb +0 -42
  648. data/lib/chef/knife/role_run_list_add.rb +0 -87
  649. data/lib/chef/knife/role_run_list_clear.rb +0 -55
  650. data/lib/chef/knife/role_run_list_remove.rb +0 -56
  651. data/lib/chef/knife/role_run_list_replace.rb +0 -60
  652. data/lib/chef/knife/role_run_list_set.rb +0 -69
  653. data/lib/chef/knife/role_show.rb +0 -48
  654. data/lib/chef/knife/search.rb +0 -194
  655. data/lib/chef/knife/serve.rb +0 -65
  656. data/lib/chef/knife/show.rb +0 -72
  657. data/lib/chef/knife/ssh.rb +0 -645
  658. data/lib/chef/knife/ssl_check.rb +0 -284
  659. data/lib/chef/knife/ssl_fetch.rb +0 -161
  660. data/lib/chef/knife/status.rb +0 -95
  661. data/lib/chef/knife/supermarket_download.rb +0 -121
  662. data/lib/chef/knife/supermarket_install.rb +0 -192
  663. data/lib/chef/knife/supermarket_list.rb +0 -76
  664. data/lib/chef/knife/supermarket_search.rb +0 -53
  665. data/lib/chef/knife/supermarket_share.rb +0 -166
  666. data/lib/chef/knife/supermarket_show.rb +0 -66
  667. data/lib/chef/knife/supermarket_unshare.rb +0 -61
  668. data/lib/chef/knife/tag_create.rb +0 -52
  669. data/lib/chef/knife/tag_delete.rb +0 -60
  670. data/lib/chef/knife/tag_list.rb +0 -47
  671. data/lib/chef/knife/upload.rb +0 -86
  672. data/lib/chef/knife/user_create.rb +0 -107
  673. data/lib/chef/knife/user_delete.rb +0 -44
  674. data/lib/chef/knife/user_dissociate.rb +0 -42
  675. data/lib/chef/knife/user_edit.rb +0 -52
  676. data/lib/chef/knife/user_invite_add.rb +0 -43
  677. data/lib/chef/knife/user_invite_list.rb +0 -34
  678. data/lib/chef/knife/user_invite_rescind.rb +0 -63
  679. data/lib/chef/knife/user_key_create.rb +0 -73
  680. data/lib/chef/knife/user_key_delete.rb +0 -80
  681. data/lib/chef/knife/user_key_edit.rb +0 -83
  682. data/lib/chef/knife/user_key_list.rb +0 -73
  683. data/lib/chef/knife/user_key_show.rb +0 -80
  684. data/lib/chef/knife/user_list.rb +0 -42
  685. data/lib/chef/knife/user_reregister.rb +0 -59
  686. data/lib/chef/knife/user_show.rb +0 -48
  687. data/lib/chef/knife/xargs.rb +0 -282
  688. data/lib/chef/knife/yaml_convert.rb +0 -91
  689. data/lib/chef/knife.rb +0 -665
  690. data/lib/chef/resource/user/dscl_user.rb +0 -35
  691. data/spec/data/knife-home/.chef/plugins/knife/example_home_subcommand.rb +0 -0
  692. data/spec/data/knife-site-subcommands/plugins/knife/example_subcommand.rb +0 -0
  693. data/spec/data/knife_subcommand/test_explicit_category.rb +0 -7
  694. data/spec/data/knife_subcommand/test_name_mapping.rb +0 -4
  695. data/spec/data/knife_subcommand/test_yourself.rb +0 -21
  696. data/spec/functional/assets/yumrepo-empty/repodata/01a3b-filelists.sqlite.bz2 +0 -0
  697. data/spec/functional/assets/yumrepo-empty/repodata/401dc-filelists.xml.gz +0 -0
  698. data/spec/functional/assets/yumrepo-empty/repodata/5dc1e-primary.sqlite.bz2 +0 -0
  699. data/spec/functional/assets/yumrepo-empty/repodata/6bf96-other.xml.gz +0 -0
  700. data/spec/functional/assets/yumrepo-empty/repodata/7c365-other.sqlite.bz2 +0 -0
  701. data/spec/functional/assets/yumrepo-empty/repodata/dabe2-primary.xml.gz +0 -0
  702. data/spec/functional/assets/yumrepo-empty/repodata/repomd.xml +0 -55
  703. data/spec/functional/knife/configure_spec.rb +0 -33
  704. data/spec/functional/knife/cookbook_delete_spec.rb +0 -156
  705. data/spec/functional/knife/exec_spec.rb +0 -55
  706. data/spec/functional/knife/rehash_spec.rb +0 -39
  707. data/spec/functional/knife/smoke_test.rb +0 -42
  708. data/spec/functional/knife/ssh_spec.rb +0 -352
  709. data/spec/functional/resource/user/dscl_spec.rb +0 -188
  710. data/spec/functional/resource/windows_service_spec.rb +0 -105
  711. data/spec/functional/win32/service_manager_spec.rb +0 -220
  712. data/spec/integration/client/fips_spec.rb +0 -21
  713. data/spec/integration/knife/chef_fs_data_store_spec.rb +0 -557
  714. data/spec/integration/knife/chef_repo_path_spec.rb +0 -962
  715. data/spec/integration/knife/chef_repository_file_system_spec.rb +0 -200
  716. data/spec/integration/knife/chefignore_spec.rb +0 -301
  717. data/spec/integration/knife/client_bulk_delete_spec.rb +0 -131
  718. data/spec/integration/knife/client_create_spec.rb +0 -70
  719. data/spec/integration/knife/client_delete_spec.rb +0 -64
  720. data/spec/integration/knife/client_key_create_spec.rb +0 -66
  721. data/spec/integration/knife/client_key_delete_spec.rb +0 -43
  722. data/spec/integration/knife/client_key_list_spec.rb +0 -61
  723. data/spec/integration/knife/client_key_show_spec.rb +0 -45
  724. data/spec/integration/knife/client_list_spec.rb +0 -49
  725. data/spec/integration/knife/client_show_spec.rb +0 -37
  726. data/spec/integration/knife/common_options_spec.rb +0 -174
  727. data/spec/integration/knife/config_list_spec.rb +0 -220
  728. data/spec/integration/knife/config_show_spec.rb +0 -192
  729. data/spec/integration/knife/config_use_spec.rb +0 -198
  730. data/spec/integration/knife/cookbook_api_ipv6_spec.rb +0 -113
  731. data/spec/integration/knife/cookbook_bulk_delete_spec.rb +0 -65
  732. data/spec/integration/knife/cookbook_download_spec.rb +0 -72
  733. data/spec/integration/knife/cookbook_list_spec.rb +0 -55
  734. data/spec/integration/knife/cookbook_show_spec.rb +0 -149
  735. data/spec/integration/knife/cookbook_upload_spec.rb +0 -128
  736. data/spec/integration/knife/data_bag_create_spec.rb +0 -125
  737. data/spec/integration/knife/data_bag_delete_spec.rb +0 -59
  738. data/spec/integration/knife/data_bag_edit_spec.rb +0 -105
  739. data/spec/integration/knife/data_bag_from_file_spec.rb +0 -116
  740. data/spec/integration/knife/data_bag_list_spec.rb +0 -44
  741. data/spec/integration/knife/data_bag_show_spec.rb +0 -95
  742. data/spec/integration/knife/delete_spec.rb +0 -1018
  743. data/spec/integration/knife/deps_spec.rb +0 -703
  744. data/spec/integration/knife/diff_spec.rb +0 -605
  745. data/spec/integration/knife/download_spec.rb +0 -1336
  746. data/spec/integration/knife/environment_compare_spec.rb +0 -75
  747. data/spec/integration/knife/environment_create_spec.rb +0 -41
  748. data/spec/integration/knife/environment_delete_spec.rb +0 -37
  749. data/spec/integration/knife/environment_from_file_spec.rb +0 -116
  750. data/spec/integration/knife/environment_list_spec.rb +0 -42
  751. data/spec/integration/knife/environment_show_spec.rb +0 -77
  752. data/spec/integration/knife/list_spec.rb +0 -1060
  753. data/spec/integration/knife/node_bulk_delete_spec.rb +0 -52
  754. data/spec/integration/knife/node_create_spec.rb +0 -47
  755. data/spec/integration/knife/node_delete_spec.rb +0 -48
  756. data/spec/integration/knife/node_environment_set_spec.rb +0 -46
  757. data/spec/integration/knife/node_from_file_spec.rb +0 -59
  758. data/spec/integration/knife/node_list_spec.rb +0 -45
  759. data/spec/integration/knife/node_run_list_add_spec.rb +0 -54
  760. data/spec/integration/knife/node_run_list_remove_spec.rb +0 -36
  761. data/spec/integration/knife/node_run_list_set_spec.rb +0 -41
  762. data/spec/integration/knife/node_show_spec.rb +0 -36
  763. data/spec/integration/knife/raw_spec.rb +0 -297
  764. data/spec/integration/knife/redirection_spec.rb +0 -64
  765. data/spec/integration/knife/role_bulk_delete_spec.rb +0 -52
  766. data/spec/integration/knife/role_create_spec.rb +0 -41
  767. data/spec/integration/knife/role_delete_spec.rb +0 -48
  768. data/spec/integration/knife/role_from_file_spec.rb +0 -96
  769. data/spec/integration/knife/role_list_spec.rb +0 -45
  770. data/spec/integration/knife/role_show_spec.rb +0 -51
  771. data/spec/integration/knife/search_node_spec.rb +0 -40
  772. data/spec/integration/knife/serve_spec.rb +0 -92
  773. data/spec/integration/knife/show_spec.rb +0 -197
  774. data/spec/integration/knife/upload_spec.rb +0 -1616
  775. data/spec/support/shared/functional/knife.rb +0 -37
  776. data/spec/support/shared/functional/win32_service.rb +0 -57
  777. data/spec/support/shared/integration/knife_support.rb +0 -192
  778. data/spec/support/shared/unit/knife_shared.rb +0 -39
  779. data/spec/unit/application/knife_spec.rb +0 -241
  780. data/spec/unit/chef_fs/parallelizer_spec.rb +0 -479
  781. data/spec/unit/cookbook_site_streaming_uploader_spec.rb +0 -198
  782. data/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb +0 -152
  783. data/spec/unit/knife/bootstrap/client_builder_spec.rb +0 -207
  784. data/spec/unit/knife/bootstrap/train_connector_spec.rb +0 -244
  785. data/spec/unit/knife/bootstrap_spec.rb +0 -2220
  786. data/spec/unit/knife/client_bulk_delete_spec.rb +0 -166
  787. data/spec/unit/knife/client_create_spec.rb +0 -169
  788. data/spec/unit/knife/client_delete_spec.rb +0 -99
  789. data/spec/unit/knife/client_edit_spec.rb +0 -53
  790. data/spec/unit/knife/client_list_spec.rb +0 -34
  791. data/spec/unit/knife/client_reregister_spec.rb +0 -62
  792. data/spec/unit/knife/client_show_spec.rb +0 -52
  793. data/spec/unit/knife/configure_client_spec.rb +0 -81
  794. data/spec/unit/knife/configure_spec.rb +0 -190
  795. data/spec/unit/knife/cookbook_bulk_delete_spec.rb +0 -87
  796. data/spec/unit/knife/cookbook_delete_spec.rb +0 -239
  797. data/spec/unit/knife/cookbook_download_spec.rb +0 -255
  798. data/spec/unit/knife/cookbook_list_spec.rb +0 -88
  799. data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +0 -72
  800. data/spec/unit/knife/cookbook_metadata_spec.rb +0 -182
  801. data/spec/unit/knife/cookbook_show_spec.rb +0 -253
  802. data/spec/unit/knife/cookbook_upload_spec.rb +0 -364
  803. data/spec/unit/knife/core/bootstrap_context_spec.rb +0 -287
  804. data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +0 -187
  805. data/spec/unit/knife/core/gem_glob_loader_spec.rb +0 -209
  806. data/spec/unit/knife/core/hashed_command_loader_spec.rb +0 -112
  807. data/spec/unit/knife/core/node_editor_spec.rb +0 -211
  808. data/spec/unit/knife/core/object_loader_spec.rb +0 -81
  809. data/spec/unit/knife/core/status_presenter_spec.rb +0 -54
  810. data/spec/unit/knife/core/subcommand_loader_spec.rb +0 -64
  811. data/spec/unit/knife/core/ui_spec.rb +0 -656
  812. data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +0 -238
  813. data/spec/unit/knife/data_bag_create_spec.rb +0 -175
  814. data/spec/unit/knife/data_bag_edit_spec.rb +0 -126
  815. data/spec/unit/knife/data_bag_from_file_spec.rb +0 -174
  816. data/spec/unit/knife/data_bag_secret_options_spec.rb +0 -173
  817. data/spec/unit/knife/data_bag_show_spec.rb +0 -139
  818. data/spec/unit/knife/environment_compare_spec.rb +0 -112
  819. data/spec/unit/knife/environment_create_spec.rb +0 -91
  820. data/spec/unit/knife/environment_delete_spec.rb +0 -71
  821. data/spec/unit/knife/environment_edit_spec.rb +0 -79
  822. data/spec/unit/knife/environment_from_file_spec.rb +0 -90
  823. data/spec/unit/knife/environment_list_spec.rb +0 -54
  824. data/spec/unit/knife/environment_show_spec.rb +0 -52
  825. data/spec/unit/knife/key_create_spec.rb +0 -223
  826. data/spec/unit/knife/key_delete_spec.rb +0 -133
  827. data/spec/unit/knife/key_edit_spec.rb +0 -264
  828. data/spec/unit/knife/key_helper.rb +0 -74
  829. data/spec/unit/knife/key_list_spec.rb +0 -216
  830. data/spec/unit/knife/key_show_spec.rb +0 -126
  831. data/spec/unit/knife/node_bulk_delete_spec.rb +0 -94
  832. data/spec/unit/knife/node_delete_spec.rb +0 -77
  833. data/spec/unit/knife/node_edit_spec.rb +0 -116
  834. data/spec/unit/knife/node_environment_set_spec.rb +0 -61
  835. data/spec/unit/knife/node_from_file_spec.rb +0 -59
  836. data/spec/unit/knife/node_list_spec.rb +0 -62
  837. data/spec/unit/knife/node_policy_set_spec.rb +0 -122
  838. data/spec/unit/knife/node_run_list_add_spec.rb +0 -145
  839. data/spec/unit/knife/node_run_list_remove_spec.rb +0 -106
  840. data/spec/unit/knife/node_run_list_set_spec.rb +0 -115
  841. data/spec/unit/knife/node_show_spec.rb +0 -65
  842. data/spec/unit/knife/raw_spec.rb +0 -43
  843. data/spec/unit/knife/role_bulk_delete_spec.rb +0 -80
  844. data/spec/unit/knife/role_create_spec.rb +0 -80
  845. data/spec/unit/knife/role_delete_spec.rb +0 -67
  846. data/spec/unit/knife/role_edit_spec.rb +0 -77
  847. data/spec/unit/knife/role_env_run_list_add_spec.rb +0 -217
  848. data/spec/unit/knife/role_env_run_list_clear_spec.rb +0 -94
  849. data/spec/unit/knife/role_env_run_list_remove_spec.rb +0 -102
  850. data/spec/unit/knife/role_env_run_list_replace_spec.rb +0 -105
  851. data/spec/unit/knife/role_env_run_list_set_spec.rb +0 -99
  852. data/spec/unit/knife/role_from_file_spec.rb +0 -69
  853. data/spec/unit/knife/role_list_spec.rb +0 -54
  854. data/spec/unit/knife/role_run_list_add_spec.rb +0 -179
  855. data/spec/unit/knife/role_run_list_clear_spec.rb +0 -84
  856. data/spec/unit/knife/role_run_list_remove_spec.rb +0 -92
  857. data/spec/unit/knife/role_run_list_replace_spec.rb +0 -98
  858. data/spec/unit/knife/role_run_list_set_spec.rb +0 -89
  859. data/spec/unit/knife/role_show_spec.rb +0 -59
  860. data/spec/unit/knife/ssh_spec.rb +0 -403
  861. data/spec/unit/knife/ssl_check_spec.rb +0 -256
  862. data/spec/unit/knife/ssl_fetch_spec.rb +0 -222
  863. data/spec/unit/knife/status_spec.rb +0 -112
  864. data/spec/unit/knife/supermarket_download_spec.rb +0 -152
  865. data/spec/unit/knife/supermarket_install_spec.rb +0 -202
  866. data/spec/unit/knife/supermarket_list_spec.rb +0 -70
  867. data/spec/unit/knife/supermarket_search_spec.rb +0 -85
  868. data/spec/unit/knife/supermarket_share_spec.rb +0 -208
  869. data/spec/unit/knife/supermarket_unshare_spec.rb +0 -78
  870. data/spec/unit/knife/tag_create_spec.rb +0 -23
  871. data/spec/unit/knife/tag_delete_spec.rb +0 -25
  872. data/spec/unit/knife/tag_list_spec.rb +0 -23
  873. data/spec/unit/knife/user_create_spec.rb +0 -184
  874. data/spec/unit/knife/user_delete_spec.rb +0 -46
  875. data/spec/unit/knife/user_edit_spec.rb +0 -48
  876. data/spec/unit/knife/user_list_spec.rb +0 -36
  877. data/spec/unit/knife/user_reregister_spec.rb +0 -56
  878. data/spec/unit/knife/user_show_spec.rb +0 -46
  879. data/spec/unit/knife_spec.rb +0 -634
  880. data/spec/unit/provider/user/dscl_spec.rb +0 -699
  881. data/spec/unit/windows_service_spec.rb +0 -118
@@ -1,264 +0,0 @@
1
- #
2
- # Author:: Daniel DeLeo (<dan@chef.io>)
3
- # Copyright:: Copyright (c) Chef Software Inc.
4
- # License:: Apache License, Version 2.0
5
- #
6
- # Licensed under the Apache License, Version 2.0 (the "License");
7
- # you may not use this file except in compliance with the License.
8
- # You may obtain a copy of the License at
9
- #
10
- # http://www.apache.org/licenses/LICENSE-2.0
11
- #
12
- # Unless required by applicable law or agreed to in writing, software
13
- # distributed under the License is distributed on an "AS IS" BASIS,
14
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- # See the License for the specific language governing permissions and
16
- # limitations under the License.
17
- #
18
-
19
- require_relative "../../run_list"
20
- require_relative "../../util/path_helper"
21
- require "pathname" unless defined?(Pathname)
22
- require "chef-utils/dist" unless defined?(ChefUtils::Dist)
23
-
24
- class Chef
25
- class Knife
26
- module Core
27
- # Instances of BootstrapContext are the context objects (i.e., +self+) for
28
- # bootstrap templates. For backwards compatibility, they +must+ set the
29
- # following instance variables:
30
- # * @config - a hash of knife's config values
31
- # * @run_list - the run list for the node to bootstrap
32
- #
33
- class BootstrapContext
34
-
35
- attr_accessor :client_pem
36
- attr_accessor :config
37
- attr_accessor :chef_config
38
-
39
- def initialize(config, run_list, chef_config, secret = nil)
40
- @config = config
41
- @run_list = run_list
42
- @chef_config = chef_config
43
- @secret = secret
44
- end
45
-
46
- def bootstrap_environment
47
- config[:environment]
48
- end
49
-
50
- def validation_key
51
- if chef_config[:validation_key] &&
52
- File.exist?(File.expand_path(chef_config[:validation_key]))
53
- IO.read(File.expand_path(chef_config[:validation_key]))
54
- else
55
- false
56
- end
57
- end
58
-
59
- def client_d
60
- @client_d ||= client_d_content
61
- end
62
-
63
- def encrypted_data_bag_secret
64
- @secret
65
- end
66
-
67
- # Contains commands and content, see trusted_certs_content
68
- # @todo Rename to trusted_certs_script
69
- def trusted_certs
70
- @trusted_certs ||= trusted_certs_content
71
- end
72
-
73
- def get_log_location
74
- if !(chef_config[:config_log_location].class == IO ) && (chef_config[:config_log_location].nil? || chef_config[:config_log_location].to_s.empty?)
75
- "STDOUT"
76
- elsif chef_config[:config_log_location].equal?(:win_evt)
77
- raise "The value :win_evt is not supported for config_log_location on Linux Platforms \n"
78
- elsif chef_config[:config_log_location].equal?(:syslog)
79
- ":syslog"
80
- elsif chef_config[:config_log_location].equal?(STDOUT)
81
- "STDOUT"
82
- elsif chef_config[:config_log_location].equal?(STDERR)
83
- "STDERR"
84
- elsif chef_config[:config_log_location]
85
- %Q{"#{chef_config[:config_log_location]}"}
86
- else
87
- "STDOUT"
88
- end
89
- end
90
-
91
- def config_content
92
- client_rb = <<~CONFIG
93
- chef_server_url "#{chef_config[:chef_server_url]}"
94
- validation_client_name "#{chef_config[:validation_client_name]}"
95
- CONFIG
96
-
97
- unless chef_config[:chef_license].nil?
98
- client_rb << "chef_license \"#{chef_config[:chef_license]}\"\n"
99
- end
100
-
101
- unless chef_config[:config_log_level].nil? || chef_config[:config_log_level].empty?
102
- client_rb << %Q{log_level :#{chef_config[:config_log_level]}\n}
103
- end
104
-
105
- client_rb << "log_location #{get_log_location}\n"
106
-
107
- if config[:chef_node_name]
108
- client_rb << %Q{node_name "#{config[:chef_node_name]}"\n}
109
- else
110
- client_rb << "# Using default node name (fqdn)\n"
111
- end
112
-
113
- # We configure :verify_api_cert only when it's overridden on the CLI
114
- # or when specified in the knife config.
115
- if !config[:node_verify_api_cert].nil? || config.key?(:verify_api_cert)
116
- value = config[:node_verify_api_cert].nil? ? config[:verify_api_cert] : config[:node_verify_api_cert]
117
- client_rb << %Q{verify_api_cert #{value}\n}
118
- end
119
-
120
- # We configure :ssl_verify_mode only when it's overridden on the CLI
121
- # or when specified in the knife config.
122
- if config[:node_ssl_verify_mode] || config.key?(:ssl_verify_mode)
123
- value = case config[:node_ssl_verify_mode]
124
- when "peer"
125
- :verify_peer
126
- when "none"
127
- :verify_none
128
- when nil
129
- config[:ssl_verify_mode]
130
- else
131
- nil
132
- end
133
-
134
- if value
135
- client_rb << %Q{ssl_verify_mode :#{value}\n}
136
- end
137
- end
138
-
139
- if config[:ssl_verify_mode]
140
- client_rb << %Q{ssl_verify_mode :#{config[:ssl_verify_mode]}\n}
141
- end
142
-
143
- if config[:bootstrap_proxy]
144
- client_rb << %Q{http_proxy "#{config[:bootstrap_proxy]}"\n}
145
- client_rb << %Q{https_proxy "#{config[:bootstrap_proxy]}"\n}
146
- end
147
-
148
- if config[:bootstrap_proxy_user]
149
- client_rb << %Q{http_proxy_user "#{config[:bootstrap_proxy_user]}"\n}
150
- client_rb << %Q{https_proxy_user "#{config[:bootstrap_proxy_user]}"\n}
151
- end
152
-
153
- if config[:bootstrap_proxy_pass]
154
- client_rb << %Q{http_proxy_pass "#{config[:bootstrap_proxy_pass]}"\n}
155
- client_rb << %Q{https_proxy_pass "#{config[:bootstrap_proxy_pass]}"\n}
156
- end
157
-
158
- if config[:bootstrap_no_proxy]
159
- client_rb << %Q{no_proxy "#{config[:bootstrap_no_proxy]}"\n}
160
- end
161
-
162
- if encrypted_data_bag_secret
163
- client_rb << %Q{encrypted_data_bag_secret "/etc/chef/encrypted_data_bag_secret"\n}
164
- end
165
-
166
- unless trusted_certs.empty?
167
- client_rb << %Q{trusted_certs_dir "/etc/chef/trusted_certs"\n}
168
- end
169
-
170
- if chef_config[:fips]
171
- client_rb << "fips true\n"
172
- end
173
-
174
- unless chef_config[:file_cache_path].nil?
175
- client_rb << "file_cache_path \"#{chef_config[:file_cache_path]}\"\n"
176
- end
177
-
178
- unless chef_config[:file_backup_path].nil?
179
- client_rb << "file_backup_path \"#{chef_config[:file_backup_path]}\"\n"
180
- end
181
-
182
- client_rb
183
- end
184
-
185
- def start_chef
186
- # If the user doesn't have a client path configure, let bash use the PATH for what it was designed for
187
- client_path = chef_config[:chef_client_path] || ChefUtils::Dist::Infra::CLIENT
188
- s = "#{client_path} -j /etc/chef/first-boot.json"
189
- if config[:verbosity] && config[:verbosity] >= 3
190
- s << " -l trace"
191
- elsif config[:verbosity] && config[:verbosity] >= 2
192
- s << " -l debug"
193
- end
194
- s << " -E #{bootstrap_environment}" unless bootstrap_environment.nil?
195
- s << " --no-color" unless config[:color]
196
- s
197
- end
198
-
199
- #
200
- # Returns the version of Chef to install (as recognized by the Omnitruck API)
201
- #
202
- # @return [String] download version string
203
- def version_to_install
204
- return config[:bootstrap_version] if config[:bootstrap_version]
205
-
206
- if config[:channel] == "stable"
207
- Chef::VERSION.split(".").first
208
- else
209
- "latest"
210
- end
211
- end
212
-
213
- def first_boot
214
- (config[:first_boot_attributes] = Mash.new(config[:first_boot_attributes]) || Mash.new).tap do |attributes|
215
- if config[:policy_name] && config[:policy_group]
216
- attributes[:policy_name] = config[:policy_name]
217
- attributes[:policy_group] = config[:policy_group]
218
- else
219
- attributes[:run_list] = @run_list
220
- end
221
- attributes.delete(:run_list) if attributes[:policy_name] && !attributes[:policy_name].empty?
222
- attributes.merge!(tags: config[:tags]) if config[:tags] && !config[:tags].empty?
223
- end
224
- end
225
-
226
- private
227
-
228
- # Returns a string for copying the trusted certificates on the workstation to the system being bootstrapped
229
- # This string should contain both the commands necessary to both create the files, as well as their content
230
- def trusted_certs_content
231
- content = ""
232
- if chef_config[:trusted_certs_dir]
233
- Dir.glob(File.join(Chef::Util::PathHelper.escape_glob_dir(chef_config[:trusted_certs_dir]), "*.{crt,pem}")).each do |cert|
234
- content << "cat > /etc/chef/trusted_certs/#{File.basename(cert)} <<'EOP'\n" +
235
- IO.read(File.expand_path(cert)) + "\nEOP\n"
236
- end
237
- end
238
- content
239
- end
240
-
241
- def client_d_content
242
- content = ""
243
- if chef_config[:client_d_dir] && File.exist?(chef_config[:client_d_dir])
244
- root = Pathname(chef_config[:client_d_dir])
245
- root.find do |f|
246
- relative = f.relative_path_from(root)
247
- if f != root
248
- file_on_node = "/etc/chef/client.d/#{relative}"
249
- if f.directory?
250
- content << "mkdir #{file_on_node}\n"
251
- else
252
- content << "cat > #{file_on_node} <<'EOP'\n" +
253
- f.read.gsub("'", "'\\\\''") + "\nEOP\n"
254
- end
255
- end
256
- end
257
- end
258
- content
259
- end
260
-
261
- end
262
- end
263
- end
264
- end
@@ -1,159 +0,0 @@
1
- #
2
- # Author:: Daniel DeLeo (<dan@chef.io>)
3
- # Copyright:: Copyright (c) Chef Software Inc.
4
- # License:: Apache License, Version 2.0
5
- #
6
- # Licensed under the Apache License, Version 2.0 (the "License");
7
- # you may not use this file except in compliance with the License.
8
- # You may obtain a copy of the License at
9
- #
10
- # http://www.apache.org/licenses/LICENSE-2.0
11
- #
12
- # Unless required by applicable law or agreed to in writing, software
13
- # distributed under the License is distributed on an "AS IS" BASIS,
14
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- # See the License for the specific language governing permissions and
16
- # limitations under the License.
17
- #
18
-
19
- require_relative "../../mixin/shell_out"
20
-
21
- class Chef
22
- class Knife
23
- class CookbookSCMRepo
24
-
25
- DIRTY_REPO = /^\s+M/.freeze
26
-
27
- include Chef::Mixin::ShellOut
28
-
29
- attr_reader :repo_path
30
- attr_reader :default_branch
31
- attr_reader :use_current_branch
32
- attr_reader :ui
33
-
34
- def initialize(repo_path, ui, opts = {})
35
- @repo_path = repo_path
36
- @ui = ui
37
- @default_branch = "master"
38
- @use_current_branch = false
39
- apply_opts(opts)
40
- end
41
-
42
- def sanity_check
43
- unless ::File.directory?(repo_path)
44
- ui.error("The cookbook repo path #{repo_path} does not exist or is not a directory")
45
- exit 1
46
- end
47
- unless git_repo?(repo_path)
48
- ui.error "The cookbook repo #{repo_path} is not a git repository."
49
- ui.info("Use `git init` to initialize a git repo")
50
- exit 1
51
- end
52
- if use_current_branch
53
- @default_branch = get_current_branch
54
- end
55
- unless branch_exists?(default_branch)
56
- ui.error "The default branch '#{default_branch}' does not exist"
57
- ui.info "If this is a new git repo, make sure you have at least one commit before installing cookbooks"
58
- exit 1
59
- end
60
- cmd = git("status --porcelain")
61
- if DIRTY_REPO.match?(cmd.stdout)
62
- ui.error "You have uncommitted changes to your cookbook repo (#{repo_path}):"
63
- ui.msg cmd.stdout
64
- ui.info "Commit or stash your changes before importing cookbooks"
65
- exit 1
66
- end
67
- # TODO: any untracked files in the cookbook directory will get nuked later
68
- # make this an error condition also.
69
- true
70
- end
71
-
72
- def reset_to_default_state
73
- ui.info("Checking out the #{default_branch} branch.")
74
- git("checkout #{default_branch}")
75
- end
76
-
77
- def prepare_to_import(cookbook_name)
78
- branch = "chef-vendor-#{cookbook_name}"
79
- if branch_exists?(branch)
80
- ui.info("Pristine copy branch (#{branch}) exists, switching to it.")
81
- git("checkout #{branch}")
82
- else
83
- ui.info("Creating pristine copy branch #{branch}")
84
- git("checkout -b #{branch}")
85
- end
86
- end
87
-
88
- def finalize_updates_to(cookbook_name, version)
89
- if update_count = updated?(cookbook_name)
90
- ui.info "#{update_count} files updated, committing changes"
91
- git("add #{cookbook_name}")
92
- git("commit -m \"Import #{cookbook_name} version #{version}\" -- #{cookbook_name}")
93
- ui.info("Creating tag cookbook-site-imported-#{cookbook_name}-#{version}")
94
- git("tag -f cookbook-site-imported-#{cookbook_name}-#{version}")
95
- true
96
- else
97
- ui.info("No changes made to #{cookbook_name}")
98
- false
99
- end
100
- end
101
-
102
- def merge_updates_from(cookbook_name, version)
103
- branch = "chef-vendor-#{cookbook_name}"
104
- Dir.chdir(repo_path) do
105
- if system("git merge #{branch}")
106
- ui.info("Cookbook #{cookbook_name} version #{version} successfully installed")
107
- else
108
- ui.error("You have merge conflicts - please resolve manually")
109
- ui.info("Merge status (cd #{repo_path}; git status):")
110
- system("git status")
111
- exit 3
112
- end
113
- end
114
- end
115
-
116
- def updated?(cookbook_name)
117
- update_count = git("status --porcelain -- #{cookbook_name}").stdout.strip.lines.count
118
- update_count == 0 ? nil : update_count
119
- end
120
-
121
- def branch_exists?(branch_name)
122
- git("branch --no-color").stdout.lines.any? { |l| l =~ /\s#{Regexp.escape(branch_name)}(?:\s|$)/ }
123
- end
124
-
125
- def get_current_branch
126
- ref = git("symbolic-ref HEAD").stdout
127
- ref.chomp.split("/")[2]
128
- end
129
-
130
- private
131
-
132
- def git_repo?(directory)
133
- if File.directory?(File.join(directory, ".git"))
134
- true
135
- elsif File.dirname(directory) == directory
136
- false
137
- else
138
- git_repo?(File.dirname(directory))
139
- end
140
- end
141
-
142
- def apply_opts(opts)
143
- opts.each do |option, value|
144
- case option.to_s
145
- when "default_branch"
146
- @default_branch = value
147
- when "use_current_branch"
148
- @use_current_branch = value
149
- end
150
- end
151
- end
152
-
153
- def git(command)
154
- shell_out!("git #{command}", cwd: repo_path)
155
- end
156
-
157
- end
158
- end
159
- end
@@ -1,49 +0,0 @@
1
- #
2
- # Author:: Nicolas DUPEUX (<nicolas.dupeux@arkea.com>)
3
- # Copyright:: Copyright (c) Chef Software Inc.
4
- # License:: Apache License, Version 2.0
5
- #
6
- # Licensed under the Apache License, Version 2.0 (the "License");
7
- # you may not use this file except in compliance with the License.
8
- # You may obtain a copy of the License at
9
- #
10
- # http://www.apache.org/licenses/LICENSE-2.0
11
- #
12
- # Unless required by applicable law or agreed to in writing, software
13
- # distributed under the License is distributed on an "AS IS" BASIS,
14
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- # See the License for the specific language governing permissions and
16
- # limitations under the License.
17
- #
18
-
19
- class Chef
20
- class Knife
21
- module Core
22
-
23
- # This module may be included into a knife subcommand class to automatically
24
- # add configuration options used by the StatusPresenter and NodePresenter.
25
- module FormattingOptions
26
- # @private
27
- # Would prefer to do this in a rational way, but can't be done b/c of
28
- # Mixlib::CLI's design :(
29
- def self.included(includer)
30
- includer.class_eval do
31
- option :medium_output,
32
- short: "-m",
33
- long: "--medium",
34
- boolean: true,
35
- default: false,
36
- description: "Include normal attributes in the output"
37
-
38
- option :long_output,
39
- short: "-l",
40
- long: "--long",
41
- boolean: true,
42
- default: false,
43
- description: "Include all attributes in the output"
44
- end
45
- end
46
- end
47
- end
48
- end
49
- end
@@ -1,138 +0,0 @@
1
- # Author:: Christopher Brown (<cb@chef.io>)
2
- # Author:: Daniel DeLeo (<dan@chef.io>)
3
- # Copyright:: Copyright (c) Chef Software Inc.
4
- # License:: Apache License, Version 2.0
5
- #
6
- # Licensed under the Apache License, Version 2.0 (the "License");
7
- # you may not use this file except in compliance with the License.
8
- # You may obtain a copy of the License at
9
- #
10
- # http://www.apache.org/licenses/LICENSE-2.0
11
- #
12
- # Unless required by applicable law or agreed to in writing, software
13
- # distributed under the License is distributed on an "AS IS" BASIS,
14
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- # See the License for the specific language governing permissions and
16
- # limitations under the License.
17
- #
18
-
19
- require_relative "../../version"
20
- require_relative "../../util/path_helper"
21
- class Chef
22
- class Knife
23
- class SubcommandLoader
24
- class GemGlobLoader < Chef::Knife::SubcommandLoader
25
- MATCHES_CHEF_GEM ||= %r{/chef-\d+\.\d+\.\d+}.freeze
26
- MATCHES_THIS_CHEF_GEM ||= %r{/chef-#{Chef::VERSION}(-\w+)?(-\w+)?/}.freeze
27
-
28
- def subcommand_files
29
- @subcommand_files ||= (gem_and_builtin_subcommands.values + site_subcommands).flatten.uniq
30
- end
31
-
32
- # Returns a Hash of paths to knife commands built-in to chef, or installed via gem.
33
- # If rubygems is not installed, falls back to globbing the knife directory.
34
- # The Hash is of the form {"relative/path" => "/absolute/path"}
35
- #--
36
- # Note: the "right" way to load the plugins is to require the relative path, i.e.,
37
- # require 'chef/knife/command'
38
- # but we're getting frustrated by bugs at every turn, and it's slow besides. So
39
- # subcommand loader has been modified to load the plugins by using Kernel.load
40
- # with the absolute path.
41
- def gem_and_builtin_subcommands
42
- require "rubygems" unless defined?(Gem)
43
- find_subcommands_via_rubygems
44
- rescue LoadError
45
- find_subcommands_via_dirglob
46
- end
47
-
48
- def find_subcommands_via_dirglob
49
- # The "require paths" of the core knife subcommands bundled with chef
50
- files = Dir[File.join(Chef::Util::PathHelper.escape_glob_dir(File.expand_path("../../knife", __dir__)), "*.rb")]
51
- subcommand_files = {}
52
- files.each do |knife_file|
53
- rel_path = knife_file[/#{CHEF_ROOT}#{Regexp.escape(File::SEPARATOR)}(.*)\.rb/, 1]
54
- subcommand_files[rel_path] = knife_file
55
- end
56
- subcommand_files
57
- end
58
-
59
- def find_subcommands_via_rubygems
60
- files = find_files_latest_gems "chef/knife/*.rb"
61
- subcommand_files = {}
62
- files.each do |file|
63
- rel_path = file[/(#{Regexp.escape File.join('chef', 'knife', '')}.*)\.rb/, 1]
64
-
65
- # When not installed as a gem (ChefDK/appbundler in particular), AND
66
- # a different version of Chef is installed via gems, `files` will
67
- # include some files from the 'other' Chef install. If this contains
68
- # a knife command that doesn't exist in this version of Chef, we will
69
- # get a LoadError later when we try to require it.
70
- next if from_different_chef_version?(file)
71
-
72
- subcommand_files[rel_path] = file
73
- end
74
-
75
- subcommand_files.merge(find_subcommands_via_dirglob)
76
- end
77
-
78
- private
79
-
80
- def find_files_latest_gems(glob, check_load_path = true)
81
- files = []
82
-
83
- if check_load_path
84
- files = $LOAD_PATH.map do |load_path|
85
- Dir["#{File.expand_path glob, Chef::Util::PathHelper.escape_glob_dir(load_path)}#{Gem.suffix_pattern}"]
86
- end.flatten.select { |file| File.file? file.untaint }
87
- end
88
-
89
- gem_files = latest_gem_specs.map do |spec|
90
- # Gem::Specification#matches_for_glob wasn't added until RubyGems 1.8
91
- if spec.respond_to? :matches_for_glob
92
- spec.matches_for_glob("#{glob}#{Gem.suffix_pattern}")
93
- else
94
- check_spec_for_glob(spec, glob)
95
- end
96
- end.flatten
97
-
98
- files.concat gem_files
99
- files.uniq! if check_load_path
100
-
101
- files
102
- end
103
-
104
- def latest_gem_specs
105
- @latest_gem_specs ||= if Gem::Specification.respond_to? :latest_specs
106
- Gem::Specification.latest_specs(true) # find prerelease gems
107
- else
108
- Gem.source_index.latest_specs(true)
109
- end
110
- end
111
-
112
- def check_spec_for_glob(spec, glob)
113
- dirs = if spec.require_paths.size > 1
114
- "{#{spec.require_paths.join(",")}}"
115
- else
116
- spec.require_paths.first
117
- end
118
-
119
- glob = File.join(Chef::Util::PathHelper.escape_glob_dir(spec.full_gem_path, dirs), glob)
120
-
121
- Dir[glob].map(&:untaint)
122
- end
123
-
124
- def from_different_chef_version?(path)
125
- matches_any_chef_gem?(path) && !matches_this_chef_gem?(path)
126
- end
127
-
128
- def matches_any_chef_gem?(path)
129
- path =~ MATCHES_CHEF_GEM
130
- end
131
-
132
- def matches_this_chef_gem?(path)
133
- path =~ MATCHES_THIS_CHEF_GEM
134
- end
135
- end
136
- end
137
- end
138
- end