| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
(#5781)
Signed-off-by: Tom Duffield <tom@chef.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`Chef::ReservedNames::Win32::Security::SID.current_user` throws an error when `chef-solo` is being
run as a `SYSTEM` user:
```
================================================================================
Chef encountered an error attempting to load the node data for "WIN-00P0BGAA4IV"
================================================================================
Unknown Server Error:
---------------------
The server had a fatal error attempting to load the node data.
Server Response:
----------------
Exception raised! #<Chef::Exceptions::Win32APIError: No mapping between account names and security IDs was done.
---- Begin Win32 API output ----
System Error Code: 1332
System Error Message: No mapping between account names and security IDs was done.
---- End Win32 API output ----
>
c:/opscode/chefdk/embedded/lib/ruby/gems/2.3.0/gems/chef-12.17.44-universal-mingw32/lib/chef/win32/error.rb:81:in `raise!'
c:/opscode/chefdk/embedded/lib/ruby/gems/2.3.0/gems/chef-12.17.44-universal-mingw32/lib/chef/win32/security.rb:383:in `lookup_account_name'
c:/opscode/chefdk/embedded/lib/ruby/gems/2.3.0/gems/chef-12.17.44-universal-mingw32/lib/chef/win32/security/sid.rb:44:in `from_account'
c:/opscode/chefdk/embedded/lib/ruby/gems/2.3.0/gems/chef-12.17.44-universal-mingw32/lib/chef/win32/security/sid.rb:241:in `current_user'
c:/opscode/chefdk/embedded/lib/ruby/gems/2.3.0/gems/chef-12.17.44-universal-mingw32/lib/chef/chef_fs/file_system/repository/nodes_dir.rb:41:in `create_child'
```
This commit modfies these calls to use `SID.default_security_object_owner` instead which will return
`SID.Administrators` for users such as `SYSTEM` and then returns `SID.current_user` for everyone else.
Signed-off-by: Scott Christopherson <scott@chef.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, this code determined if an object existed by doing the
following:
parent.children.any? { |child| child.api_child_name == api_child_name }
For organizations and object types with a small number of total objects,
this wasn't problematic; however, it has very bad worst-case behavior.
For example, if a user was attempting to restore an organization with
30k client records to an empty organization, each client upload would do
the following:
1. Run GET /clients
2. Iterate the list returned in (1) normalizing the clients names along
the way.
3. Upload the client via POST when exist? returned false.
When the clients don't exist, this means step (2) will always iterate
over every member returned in step (1). By the time you get into the
1000s of clients, this iteration dominates the running time of the
process. For instance, consider the following ruby profile data:
Measure Mode: wall_time
Thread ID: 16939380
Fiber ID: 22163920
Total: 109.860468
Sort by: self_time
%self total self wait child calls name
26.83 29.475 29.475 0.000 0.000 500 <Class::IO>#select
8.60 38.876 9.446 0.000 29.430 464125 <Class::Chef::ChefFS::PathUtils>#join
7.02 12.226 7.717 0.000 4.509 928750 Chef::ChefFS::FileSystem::ChefServer::RestListEntry#api_child_name
6.79 7.459 7.459 0.000 0.000 930250 String#gsub
5.31 5.834 5.834 0.000 0.000 2320625 <Class::Chef::ChefFS::PathUtils>#regexp_path_separator
3.33 3.654 3.654 0.000 0.000 500 OpenSSL::X509::Store#set_default_paths
3.28 42.482 3.606 0.000 38.876 464125 Chef::ChefFS::FileSystem::BaseFSObject#initialize
2.95 3.244 3.244 0.000 0.000 930250 <Class::File>#extname
2.29 48.421 2.513 0.000 45.908 483375 *Class#new
38 wall clock seconds spent in PathUtils.join (part of the name
normalization during the list walk)
Note, an alternative might be to skip the exist? check completely,
opting to blindly POST and then rescuing the 409 and retry with a PUT.
Experimentation shows that PathUtils.join can also be improved
substantially; however, I'll leave those for a follow-up PR.
Signed-off-by: Steven Danna <steve@chef.io>
|
|\
| |
| | |
Chefstyle updates
|
| |
| |
| |
| | |
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
|
| |
| |
| |
| | |
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
|
|/
|
|
|
|
|
| |
This commit ensures that the `nodes` dir and the node files within
it are created with the correct permissions by chef-solo.
Signed-off-by: Scott Christopherson <scott@chef.io>
|
|
|
|
|
|
| |
files each time the command was fired.
Signed-off-by: aliasgar16 <aliasgar.batterywala@msystechnologies.com>
|
|
|
|
| |
Signed-off-by: Tim Smith <tsmith@chef.io>
|
|
|
|
| |
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
|
| |
|
| |
|
| |
|
|\
| |
| | |
Invalidate the file system cache on deletion
|
| |
| |
| |
| | |
Signed-off-by: Thom May <thom@chef.io>
|
| |
| |
| |
| | |
Signed-off-by: Thom May <thom@may.lt>
|
|/
|
|
|
|
| |
Ensure that we correctly write to them and manage them.
Signed-off-by: Thom May <thom@chef.io>
|
|
|
|
| |
Signed-off-by: Thom May <thom@chef.io>
|
|
|
|
|
|
|
| |
A previous change introduced what appears to be a copy/paste bug. A guard condition from the children
method was used in the make_child_entry incorrectly.
This removes the reference to the non-existent variable `seen`
|
|
|
|
|
|
|
|
| |
This allows us to use the path we produce for other display purposes and
consume it internally to have a canonical path for comparisons and
printing
Signed-off-by: Thom May <thom@may.lt>
|
|
|
|
| |
Signed-off-by: Thom May <thom@may.lt>
|
|
|
|
| |
Signed-off-by: Thom May <thom@may.lt>
|
|
|
|
|
| |
This gives us much more control over what an individual entry will
display when formatted
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Update the directory classes to create files that match
|
|
|
|
|
| |
This merges together ChefRepositoryFileSystemEntry and FileSystemEntry,
since they weren't really being used separately.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Policies, ACLs, and Client Keys directories are renamed to match the
other directories, and backwards compatible requires are added.
|
|
|
|
|
| |
This doesn't yet change the cookbook classes, but everything that is a
directory is treated as such.
|
| |
|
|
|
|
| |
This leaves back compat requires to ensure nothing breaks.
|
|\
| |
| | |
Support libraries with sub directories
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
this is part of our informal style guide, lets make it formal since
clearly its not getting followed very well.
|
|\ \
| |/
|/| |
Autofixing new Perf cops in 0.37.2
|
| |
| |
| |
| | |
added some FIXMEs because trying to sort out types for random undocumented code was making me completely aggro
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
6 Performance/Casecmp
18 Performance/Detect
1 Performance/RangeInclude
27 Performance/RedundantBlockCall
6 Performance/RedundantMatch
5 Performance/RedundantMerge
18 Performance/StringReplacement
|
|/
|
|
| |
Supports work to being chef-zero closer to parity with chef-server.
|
|
|
|
| |
no enforced trailing comma on arguments...
|