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,645 +0,0 @@
1
- #
2
- # Author:: Adam Jacob (<adam@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 "../knife"
20
-
21
- class Chef
22
- class Knife
23
- class Ssh < Knife
24
-
25
- deps do
26
- require_relative "../mixin/shell_out"
27
- require "net/ssh" unless defined?(Net::SSH)
28
- require "net/ssh/multi"
29
- require "readline"
30
- require_relative "../exceptions"
31
- require_relative "../search/query"
32
- require_relative "../util/path_helper"
33
-
34
- include Chef::Mixin::ShellOut
35
- end
36
-
37
- attr_writer :password
38
-
39
- banner "knife ssh QUERY COMMAND (options)"
40
-
41
- option :concurrency,
42
- short: "-C NUM",
43
- long: "--concurrency NUM",
44
- description: "The number of concurrent connections.",
45
- default: nil,
46
- proc: lambda { |o| o.to_i }
47
-
48
- option :ssh_attribute,
49
- short: "-a ATTR",
50
- long: "--attribute ATTR",
51
- description: "The attribute to use for opening the connection - default depends on the context."
52
-
53
- option :manual,
54
- short: "-m",
55
- long: "--manual-list",
56
- boolean: true,
57
- description: "QUERY is a space separated list of servers.",
58
- default: false
59
-
60
- option :prefix_attribute,
61
- long: "--prefix-attribute ATTR",
62
- description: "The attribute to use for prefixing the output - default depends on the context."
63
-
64
- option :ssh_user,
65
- short: "-x USERNAME",
66
- long: "--ssh-user USERNAME",
67
- description: "The ssh username."
68
-
69
- option :ssh_password,
70
- short: "-P [PASSWORD]",
71
- long: "--ssh-password [PASSWORD]",
72
- description: "The ssh password - will prompt if flag is specified but no password is given.",
73
- # default to a value that can not be a password (boolean)
74
- # so we can effectively test if this parameter was specified
75
- # without a value
76
- default: false
77
-
78
- option :ssh_port,
79
- short: "-p PORT",
80
- long: "--ssh-port PORT",
81
- description: "The ssh port.",
82
- proc: Proc.new { |key| key.strip }
83
-
84
- option :ssh_timeout,
85
- short: "-t SECONDS",
86
- long: "--ssh-timeout SECONDS",
87
- description: "The ssh connection timeout.",
88
- proc: Proc.new { |key| key.strip.to_i },
89
- default: 120
90
-
91
- option :ssh_gateway,
92
- short: "-G GATEWAY",
93
- long: "--ssh-gateway GATEWAY",
94
- description: "The ssh gateway.",
95
- proc: Proc.new { |key| key.strip }
96
-
97
- option :ssh_gateway_identity,
98
- long: "--ssh-gateway-identity SSH_GATEWAY_IDENTITY",
99
- description: "The SSH identity file used for gateway authentication."
100
-
101
- option :forward_agent,
102
- short: "-A",
103
- long: "--forward-agent",
104
- description: "Enable SSH agent forwarding.",
105
- boolean: true
106
-
107
- option :ssh_identity_file,
108
- short: "-i IDENTITY_FILE",
109
- long: "--ssh-identity-file IDENTITY_FILE",
110
- description: "The SSH identity file used for authentication."
111
-
112
- option :host_key_verify,
113
- long: "--[no-]host-key-verify",
114
- description: "Verify host key, enabled by default.",
115
- boolean: true,
116
- default: true
117
-
118
- option :on_error,
119
- short: "-e",
120
- long: "--exit-on-error",
121
- description: "Immediately exit if an error is encountered.",
122
- boolean: true,
123
- default: false
124
-
125
- option :duplicated_fqdns,
126
- long: "--duplicated-fqdns",
127
- description: "Behavior if FQDNs are duplicated, ignored by default.",
128
- proc: Proc.new { |key| key.strip.to_sym },
129
- default: :ignore
130
-
131
- option :tmux_split,
132
- long: "--tmux-split",
133
- description: "Split tmux window.",
134
- boolean: true,
135
- default: false
136
-
137
- def session
138
- ssh_error_handler = Proc.new do |server|
139
- if config[:on_error]
140
- # Net::SSH::Multi magic to force exception to be re-raised.
141
- throw :go, :raise
142
- else
143
- ui.warn "Failed to connect to #{server.host} -- #{$!.class.name}: #{$!.message}"
144
- $!.backtrace.each { |l| Chef::Log.debug(l) }
145
- end
146
- end
147
-
148
- @session ||= Net::SSH::Multi.start(concurrent_connections: config[:concurrency], on_error: ssh_error_handler)
149
- end
150
-
151
- def configure_gateway
152
- if config[:ssh_gateway]
153
- gw_host, gw_user = config[:ssh_gateway].split("@").reverse
154
- gw_host, gw_port = gw_host.split(":")
155
- gw_opts = session_options(gw_host, gw_port, gw_user, gateway: true)
156
- user = gw_opts.delete(:user)
157
-
158
- begin
159
- # Try to connect with a key.
160
- session.via(gw_host, user, gw_opts)
161
- rescue Net::SSH::AuthenticationFailed
162
- prompt = "Enter the password for #{user}@#{gw_host}: "
163
- gw_opts[:password] = prompt_for_password(prompt)
164
- # Try again with a password.
165
- session.via(gw_host, user, gw_opts)
166
- end
167
- end
168
- end
169
-
170
- def configure_session
171
- list = config[:manual] ? @name_args[0].split(" ") : search_nodes
172
- if list.length == 0
173
- if @search_count == 0
174
- ui.fatal("No nodes returned from search")
175
- else
176
- ui.fatal("#{@search_count} #{@search_count > 1 ? "nodes" : "node"} found, " +
177
- "but does not have the required attribute to establish the connection. " +
178
- "Try setting another attribute to open the connection using --attribute.")
179
- end
180
- exit 10
181
- end
182
- if %i{warn fatal}.include?(config[:duplicated_fqdns])
183
- fqdns = list.map { |v| v[0] }
184
- if fqdns.count != fqdns.uniq.count
185
- duplicated_fqdns = fqdns.uniq
186
- ui.send(config[:duplicated_fqdns],
187
- "SSH #{duplicated_fqdns.count > 1 ? "nodes are" : "node is"} " +
188
- "duplicated: #{duplicated_fqdns.join(",")}")
189
- exit 10 if config[:duplicated_fqdns] == :fatal
190
- end
191
- end
192
- session_from_list(list)
193
- end
194
-
195
- def get_prefix_attribute(item)
196
- # Order of precedence for prefix
197
- # 1) config value (cli or knife config)
198
- # 2) nil
199
- msg = "Using node attribute '%s' as the prefix: %s"
200
- if item["prefix"]
201
- Chef::Log.debug(sprintf(msg, config[:prefix_attribute], item["prefix"]))
202
- item["prefix"]
203
- else
204
- nil
205
- end
206
- end
207
-
208
- def get_ssh_attribute(item)
209
- # Order of precedence for ssh target
210
- # 1) config value (cli or knife config)
211
- # 2) cloud attribute
212
- # 3) fqdn
213
- msg = "Using node attribute '%s' as the ssh target: %s"
214
- if item["target"]
215
- Chef::Log.debug(sprintf(msg, config[:ssh_attribute], item["target"]))
216
- item["target"]
217
- elsif !item.dig("cloud", "public_hostname").to_s.empty?
218
- Chef::Log.debug(sprintf(msg, "cloud.public_hostname", item["cloud"]["public_hostname"]))
219
- item["cloud"]["public_hostname"]
220
- else
221
- Chef::Log.debug(sprintf(msg, "fqdn", item["fqdn"]))
222
- item["fqdn"]
223
- end
224
- end
225
-
226
- def search_nodes
227
- list = []
228
- query = Chef::Search::Query.new
229
- required_attributes = { fqdn: ["fqdn"], cloud: ["cloud"] }
230
-
231
- separator = ui.presenter.attribute_field_separator
232
-
233
- if config[:prefix_attribute]
234
- required_attributes[:prefix] = config[:prefix_attribute].split(separator)
235
- end
236
-
237
- if config[:ssh_attribute]
238
- required_attributes[:target] = config[:ssh_attribute].split(separator)
239
- end
240
-
241
- @search_count = 0
242
- query.search(:node, @name_args[0], filter_result: required_attributes, fuzz: true) do |item|
243
- @search_count += 1
244
- # we should skip the loop to next iteration if the item
245
- # returned by the search is nil
246
- next if item.nil?
247
-
248
- # next if we couldn't find the specified attribute in the
249
- # returned node object
250
- host = get_ssh_attribute(item)
251
- next if host.nil?
252
-
253
- prefix = get_prefix_attribute(item)
254
- ssh_port = item.dig("cloud", "public_ssh_port")
255
- srv = [host, ssh_port, prefix]
256
- list.push(srv)
257
- end
258
-
259
- list
260
- end
261
-
262
- # Net::SSH session options hash for global options. These should be
263
- # options that will apply to the gateway connection in addition to the
264
- # main one.
265
- #
266
- # @since 12.5.0
267
- # @param host [String] Hostname for this session.
268
- # @param port [String] SSH port for this session.
269
- # @param user [String] Optional username for this session.
270
- # @param gateway [Boolean] Flag: host or gateway key
271
- # @return [Hash<Symbol, Object>]
272
- def session_options(host, port, user = nil, gateway: false)
273
- ssh_config = Net::SSH.configuration_for(host, true)
274
- {}.tap do |opts|
275
- opts[:user] = user || config[:ssh_user] || ssh_config[:user]
276
- if !gateway && config[:ssh_identity_file]
277
- opts[:keys] = File.expand_path(config[:ssh_identity_file])
278
- opts[:keys_only] = true
279
- elsif gateway && config[:ssh_gateway_identity]
280
- opts[:keys] = File.expand_path(config[:ssh_gateway_identity])
281
- opts[:keys_only] = true
282
- elsif config[:ssh_password]
283
- opts[:password] = config[:ssh_password]
284
- end
285
- # Don't set the keys to nil if we don't have them.
286
- forward_agent = config[:forward_agent] || ssh_config[:forward_agent]
287
- opts[:forward_agent] = forward_agent unless forward_agent.nil?
288
- port ||= ssh_config[:port]
289
- opts[:port] = port unless port.nil?
290
- opts[:logger] = Chef::Log.with_child(subsystem: "net/ssh") if Chef::Log.level == :trace
291
- unless config[:host_key_verify]
292
- opts[:verify_host_key] = :never
293
- opts[:user_known_hosts_file] = "/dev/null"
294
- end
295
- if ssh_config[:keepalive]
296
- opts[:keepalive] = true
297
- opts[:keepalive_interval] = ssh_config[:keepalive_interval]
298
- end
299
- # maintain support for legacy key types / ciphers / key exchange algorithms.
300
- # most importantly this adds back support for DSS host keys
301
- # See https://github.com/net-ssh/net-ssh/pull/709
302
- opts[:append_all_supported_algorithms] = true
303
- end
304
- end
305
-
306
- def session_from_list(list)
307
- list.each do |item|
308
- host, ssh_port, prefix = item
309
- prefix = host unless prefix
310
- Chef::Log.debug("Adding #{host}")
311
- session_opts = session_options(host, ssh_port, gateway: false)
312
- # Handle port overrides for the main connection.
313
- session_opts[:port] = config[:ssh_port] if config[:ssh_port]
314
- # Handle connection timeout
315
- session_opts[:timeout] = config[:ssh_timeout] if config[:ssh_timeout]
316
- # Handle session prefix
317
- session_opts[:properties] = { prefix: prefix }
318
- # Create the hostspec.
319
- hostspec = session_opts[:user] ? "#{session_opts.delete(:user)}@#{host}" : host
320
- # Connect a new session on the multi.
321
- session.use(hostspec, session_opts)
322
-
323
- @longest = prefix.length if prefix.length > @longest
324
- end
325
-
326
- session
327
- end
328
-
329
- def fixup_sudo(command)
330
- command.sub(/^sudo/, "sudo -p 'knife sudo password: '")
331
- end
332
-
333
- def print_data(host, data)
334
- @buffers ||= {}
335
- if leftover = @buffers[host]
336
- @buffers[host] = nil
337
- print_data(host, leftover + data)
338
- else
339
- if newline_index = data.index("\n")
340
- line = data.slice!(0...newline_index)
341
- data.slice!(0)
342
- print_line(host, line)
343
- print_data(host, data)
344
- else
345
- @buffers[host] = data
346
- end
347
- end
348
- end
349
-
350
- def print_line(host, data)
351
- padding = @longest - host.length
352
- str = ui.color(host, :cyan) + (" " * (padding + 1)) + data
353
- ui.msg(str)
354
- end
355
-
356
- def ssh_command(command, subsession = nil)
357
- exit_status = 0
358
- subsession ||= session
359
- command = fixup_sudo(command)
360
- command.force_encoding("binary") if command.respond_to?(:force_encoding)
361
- begin
362
- open_session(subsession, command)
363
- rescue => e
364
- open_session(subsession, command, true)
365
- end
366
- end
367
-
368
- def open_session(subsession, command, pty = false)
369
- stderr = ""
370
- exit_status = 0
371
- subsession.open_channel do |chan|
372
- if config[:on_error] && exit_status != 0
373
- chan.close
374
- else
375
- chan.request_pty if pty
376
- chan.exec command do |ch, success|
377
- raise ArgumentError, "Cannot execute #{command}" unless success
378
-
379
- ch.on_data do |ichannel, data|
380
- print_data(ichannel.connection[:prefix], data)
381
- if /^knife sudo password: /.match?(data)
382
- print_data(ichannel.connection[:prefix], "\n")
383
- ichannel.send_data("#{get_password}\n")
384
- end
385
- end
386
-
387
- ch.on_extended_data do |_, _type, data|
388
- raise ArgumentError if data.eql?("sudo: no tty present and no askpass program specified\n")
389
-
390
- stderr += data
391
- end
392
-
393
- ch.on_request "exit-status" do |ichannel, data|
394
- exit_status = [exit_status, data.read_long].max
395
- end
396
- end
397
- end
398
- end
399
- session.loop
400
- exit_status
401
- end
402
-
403
- def get_password
404
- @password ||= prompt_for_password
405
- end
406
-
407
- def prompt_for_password(prompt = "Enter your password: ")
408
- ui.ask(prompt, echo: false)
409
- end
410
-
411
- # Present the prompt and read a single line from the console. It also
412
- # detects ^D and returns "exit" in that case. Adds the input to the
413
- # history, unless the input is empty. Loops repeatedly until a non-empty
414
- # line is input.
415
- def read_line
416
- loop do
417
- command = reader.readline("#{ui.color("knife-ssh>", :bold)} ", true)
418
-
419
- if command.nil?
420
- command = "exit"
421
- puts(command)
422
- else
423
- command.strip!
424
- end
425
-
426
- unless command.empty?
427
- return command
428
- end
429
- end
430
- end
431
-
432
- def reader
433
- Readline
434
- end
435
-
436
- def interactive
437
- puts "Connected to #{ui.list(session.servers_for.collect { |s| ui.color(s.host, :cyan) }, :inline, " and ")}"
438
- puts
439
- puts "To run a command on a list of servers, do:"
440
- puts " on SERVER1 SERVER2 SERVER3; COMMAND"
441
- puts " Example: on latte foamy; echo foobar"
442
- puts
443
- puts "To exit interactive mode, use 'quit!'"
444
- puts
445
- loop do
446
- command = read_line
447
- case command
448
- when "quit!"
449
- puts "Bye!"
450
- break
451
- when /^on (.+?); (.+)$/
452
- raw_list = $1.split(" ")
453
- server_list = []
454
- session.servers.each do |session_server|
455
- server_list << session_server if raw_list.include?(session_server.host)
456
- end
457
- command = $2
458
- ssh_command(command, session.on(*server_list))
459
- else
460
- ssh_command(command)
461
- end
462
- end
463
- end
464
-
465
- def screen
466
- tf = Tempfile.new("knife-ssh-screen")
467
- Chef::Util::PathHelper.home(".screenrc") do |screenrc_path|
468
- if File.exist? screenrc_path
469
- tf.puts("source #{screenrc_path}")
470
- end
471
- end
472
- tf.puts("caption always '%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<'")
473
- tf.puts("hardstatus alwayslastline 'knife ssh #{@name_args[0]}'")
474
- window = 0
475
- session.servers_for.each do |server|
476
- tf.print("screen -t \"#{server.host}\" #{window} ssh ")
477
- tf.print("-i #{config[:ssh_identity_file]} ") if config[:ssh_identity_file]
478
- server.user ? tf.puts("#{server.user}@#{server.host}") : tf.puts(server.host)
479
- window += 1
480
- end
481
- tf.close
482
- exec("screen -c #{tf.path}")
483
- end
484
-
485
- def tmux
486
- ssh_dest = lambda do |server|
487
- identity = "-i #{config[:ssh_identity_file]} " if config[:ssh_identity_file]
488
- prefix = server.user ? "#{server.user}@" : ""
489
- "'ssh #{identity}#{prefix}#{server.host}'"
490
- end
491
-
492
- new_window_cmds = lambda do
493
- if session.servers_for.size > 1
494
- [""] + session.servers_for[1..].map do |server|
495
- if config[:tmux_split]
496
- "split-window #{ssh_dest.call(server)}; tmux select-layout tiled"
497
- else
498
- "new-window -a -n '#{server.host}' #{ssh_dest.call(server)}"
499
- end
500
- end
501
- else
502
- []
503
- end.join(" \\; ")
504
- end
505
-
506
- tmux_name = "'knife ssh #{@name_args[0].tr(":.", "=-")}'"
507
- begin
508
- server = session.servers_for.first
509
- cmd = ["tmux new-session -d -s #{tmux_name}",
510
- "-n '#{server.host}'", ssh_dest.call(server),
511
- new_window_cmds.call].join(" ")
512
- shell_out!(cmd)
513
- exec("tmux attach-session -t #{tmux_name}")
514
- rescue Chef::Exceptions::Exec
515
- end
516
- end
517
-
518
- def macterm
519
- begin
520
- require "appscript" unless defined?(Appscript)
521
- rescue LoadError
522
- STDERR.puts "You need the rb-appscript gem to use knife ssh macterm. `(sudo) gem install rb-appscript` to install"
523
- raise
524
- end
525
-
526
- Appscript.app("/Applications/Utilities/Terminal.app").windows.first.activate
527
- Appscript.app("System Events").application_processes["Terminal.app"].keystroke("n", using: :command_down)
528
- term = Appscript.app("Terminal")
529
- window = term.windows.first.get
530
-
531
- (session.servers_for.size - 1).times do |i|
532
- window.activate
533
- Appscript.app("System Events").application_processes["Terminal.app"].keystroke("t", using: :command_down)
534
- end
535
-
536
- session.servers_for.each_with_index do |server, tab_number|
537
- cmd = "unset PROMPT_COMMAND; echo -e \"\\033]0;#{server.host}\\007\"; ssh #{server.user ? "#{server.user}@#{server.host}" : server.host}"
538
- Appscript.app("Terminal").do_script(cmd, in: window.tabs[tab_number + 1].get)
539
- end
540
- end
541
-
542
- def cssh
543
- cssh_cmd = nil
544
- %w{csshX cssh}.each do |cmd|
545
-
546
- # Unix and Mac only
547
- cssh_cmd = shell_out!("which #{cmd}").stdout.strip
548
- break
549
- rescue Mixlib::ShellOut::ShellCommandFailed
550
-
551
- end
552
- raise Chef::Exceptions::Exec, "no command found for cssh" unless cssh_cmd
553
-
554
- # pass in the consolidated identity file option to cssh(X)
555
- if config[:ssh_identity_file]
556
- cssh_cmd << " --ssh_args '-i #{File.expand_path(config[:ssh_identity_file])}'"
557
- end
558
-
559
- session.servers_for.each do |server|
560
- cssh_cmd << " #{server.user ? "#{server.user}@#{server.host}" : server.host}"
561
- end
562
- Chef::Log.debug("Starting cssh session with command: #{cssh_cmd}")
563
- exec(cssh_cmd)
564
- end
565
-
566
- def get_stripped_unfrozen_value(value)
567
- return nil unless value
568
-
569
- value.strip
570
- end
571
-
572
- def configure_user
573
- config[:ssh_user] = get_stripped_unfrozen_value(config[:ssh_user] ||
574
- Chef::Config[:knife][:ssh_user])
575
- end
576
-
577
- def configure_password
578
- if config.key?(:ssh_password) && config[:ssh_password].nil?
579
- # if we have an actual nil that means someone called "--ssh-password" with no value, so we prompt for a password
580
- config[:ssh_password] = get_password
581
- else
582
- # the false default of ssh_password results in a nil here
583
- config[:ssh_password] = get_stripped_unfrozen_value(config[:ssh_password])
584
- end
585
- end
586
-
587
- def configure_ssh_identity_file
588
- config[:ssh_identity_file] = get_stripped_unfrozen_value(config[:ssh_identity_file])
589
- end
590
-
591
- def configure_ssh_gateway_identity
592
- config[:ssh_gateway_identity] = get_stripped_unfrozen_value(config[:ssh_gateway_identity])
593
- end
594
-
595
- def run
596
- @longest = 0
597
-
598
- if @name_args.length < 1
599
- show_usage
600
- ui.fatal("You must specify the SEARCH QUERY.")
601
- exit(1)
602
- end
603
-
604
- configure_user
605
- configure_password
606
- @password = config[:ssh_password] if config[:ssh_password]
607
-
608
- # If a password was not given, check for SSH identity file.
609
- unless @password
610
- configure_ssh_identity_file
611
- configure_ssh_gateway_identity
612
- end
613
-
614
- configure_gateway
615
- configure_session
616
-
617
- exit_status =
618
- case @name_args[1]
619
- when "interactive"
620
- interactive
621
- when "screen"
622
- screen
623
- when "tmux"
624
- tmux
625
- when "macterm"
626
- macterm
627
- when "cssh"
628
- cssh
629
- else
630
- ssh_command(@name_args[1..].join(" "))
631
- end
632
-
633
- session.close
634
- if exit_status && exit_status != 0
635
- exit exit_status
636
- else
637
- exit_status
638
- end
639
- end
640
-
641
- private :search_nodes
642
-
643
- end
644
- end
645
- end