criteo-cookbooks / nssm Goto Github PK
View Code? Open in Web Editor NEWChef cookbook to install the Non-Sucking Service Manager
Home Page: http://nssm.cc
License: MIT License
Chef cookbook to install the Non-Sucking Service Manager
Home Page: http://nssm.cc
License: MIT License
It appears that whatever was changed between version 3.0.0 and 3.0.1 has caused a break in the consul cookbook. I'm creating this issue so you can be aware. Here is the stacktrace:
Generated at 2017-07-13 10:03:17 -0700
Chef::Exceptions::MultipleFailures: Chef::Exceptions::MultipleFailures
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/mixin/why_run.rb:240:in `run'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/mixin/why_run.rb:321:in `block in run'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/mixin/why_run.rb:320:in `each'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/mixin/why_run.rb:320:in `run'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:155:in `process_resource_requirements'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:133:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource.rb:622:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:69:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:77:in `block in run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:75:in `each'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:75:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `block (2 levels) in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `each'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `block in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/resource_list.rb:94:in `block in execute_each_resource'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:114:in `call_iterator_block'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:85:in `step'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:103:in `iterate'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/resource_list.rb:92:in `execute_each_resource'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:96:in `converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:417:in `block in recipe_eval'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/mixin/why_run.rb:52:in `add_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:176:in `converge_by'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:412:in `recipe_eval'
C:/Users/vagrant/AppData/Local/Temp/kitchen/cache/cookbooks/nssm/providers/default.rb:19:in `install_nssm'
C:/Users/vagrant/AppData/Local/Temp/kitchen/cache/cookbooks/nssm/providers/default.rb:54:in `block in class_from_file'
(eval):2:in `block in action_install'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:361:in `instance_eval'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:361:in `compile_and_converge_action'
(eval):2:in `action_install'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:145:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource.rb:622:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:69:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `block (2 levels) in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `each'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `block in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/resource_list.rb:94:in `block in execute_each_resource'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:114:in `call_iterator_block'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:85:in `step'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:103:in `iterate'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/resource_list.rb:92:in `execute_each_resource'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:96:in `converge'
C:/Users/vagrant/AppData/Local/Temp/kitchen/cache/cookbooks/poise/files/halite_gem/poise/helpers/notifying_block.rb:69:in `notifying_block'
C:/Users/vagrant/AppData/Local/Temp/kitchen/cache/cookbooks/consul/libraries/consul_service_windows.rb:25:in `action_enable'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:145:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource.rb:622:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:69:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `block (2 levels) in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `each'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `block in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/resource_list.rb:94:in `block in execute_each_resource'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:114:in `call_iterator_block'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:85:in `step'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:103:in `iterate'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/resource_list.rb:92:in `execute_each_resource'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:96:in `converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/client.rb:715:in `block in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/client.rb:710:in `catch'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/client.rb:710:in `converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/client.rb:749:in `converge_and_save'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/client.rb:286:in `run'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/application.rb:277:in `run_with_graceful_exit_option'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/application.rb:253:in `block in run_chef_client'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/local_mode.rb:44:in `with_server_connectivity'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/application.rb:236:in `run_chef_client'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/application/client.rb:427:in `run_application'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/application.rb:59:in `run'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/bin/chef-client:26:in `<top (required)>'
C:/opscode/chef/bin/chef-client:68:in `load'
C:/opscode/chef/bin/chef-client:68:in `<main>'
>>>> Caused by Chef::Exceptions::EnclosingDirectoryDoesNotExist: consul_service[consul] (consul::default line 29) had an error: Chef::Exceptions::EnclosingDirectoryDoesNotExist: nssm[consul] (C:/Users/vagrant/AppData/Local/Temp/kitchen/cache/cookbooks/consul/libraries/consul_service_windows.rb line 36) had an error: Chef::Exceptions::EnclosingDirectoryDoesNotExist: remote_file[install nssm] (nssm::default line 18) had an error: Chef::Exceptions::EnclosingDirectoryDoesNotExist: Parent directory %WINDIR% does not exist.
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/mixin/why_run.rb:240:in `run'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/mixin/why_run.rb:321:in `block in run'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/mixin/why_run.rb:320:in `each'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/mixin/why_run.rb:320:in `run'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:155:in `process_resource_requirements'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:133:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource.rb:622:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:69:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:77:in `block in run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:75:in `each'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:75:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `block (2 levels) in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `each'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `block in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/resource_list.rb:94:in `block in execute_each_resource'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:114:in `call_iterator_block'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:85:in `step'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:103:in `iterate'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/resource_list.rb:92:in `execute_each_resource'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:96:in `converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:417:in `block in recipe_eval'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/mixin/why_run.rb:52:in `add_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:176:in `converge_by'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:412:in `recipe_eval'
C:/Users/vagrant/AppData/Local/Temp/kitchen/cache/cookbooks/nssm/providers/default.rb:19:in `install_nssm'
C:/Users/vagrant/AppData/Local/Temp/kitchen/cache/cookbooks/nssm/providers/default.rb:54:in `block in class_from_file'
(eval):2:in `block in action_install'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:361:in `instance_eval'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:361:in `compile_and_converge_action'
(eval):2:in `action_install'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:145:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource.rb:622:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:69:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `block (2 levels) in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `each'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `block in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/resource_list.rb:94:in `block in execute_each_resource'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:114:in `call_iterator_block'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:85:in `step'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:103:in `iterate'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/resource_list.rb:92:in `execute_each_resource'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:96:in `converge'
C:/Users/vagrant/AppData/Local/Temp/kitchen/cache/cookbooks/poise/files/halite_gem/poise/helpers/notifying_block.rb:69:in `notifying_block'
C:/Users/vagrant/AppData/Local/Temp/kitchen/cache/cookbooks/consul/libraries/consul_service_windows.rb:25:in `action_enable'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:145:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource.rb:622:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:69:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `block (2 levels) in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `each'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `block in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/resource_list.rb:94:in `block in execute_each_resource'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:114:in `call_iterator_block'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:85:in `step'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:103:in `iterate'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/resource_list.rb:92:in `execute_each_resource'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:96:in `converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/client.rb:715:in `block in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/client.rb:710:in `catch'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/client.rb:710:in `converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/client.rb:749:in `converge_and_save'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/client.rb:286:in `run'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/application.rb:277:in `run_with_graceful_exit_option'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/application.rb:253:in `block in run_chef_client'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/local_mode.rb:44:in `with_server_connectivity'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/application.rb:236:in `run_chef_client'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/application/client.rb:427:in `run_application'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/application.rb:59:in `run'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/bin/chef-client:26:in `<top (required)>'
C:/opscode/chef/bin/chef-client:68:in `load'
C:/opscode/chef/bin/chef-client:68:in `<main>'
>>>> Caused by Chef::Exceptions::EnclosingDirectoryDoesNotExist: Parent directory %WINDIR% does not exist.
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/mixin/why_run.rb:240:in `run'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/mixin/why_run.rb:321:in `block in run'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/mixin/why_run.rb:320:in `each'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/mixin/why_run.rb:320:in `run'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:155:in `process_resource_requirements'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:133:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource.rb:622:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:69:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:77:in `block in run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:75:in `each'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:75:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `block (2 levels) in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `each'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `block in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/resource_list.rb:94:in `block in execute_each_resource'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:114:in `call_iterator_block'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:85:in `step'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:103:in `iterate'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/resource_list.rb:92:in `execute_each_resource'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:96:in `converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:417:in `block in recipe_eval'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/mixin/why_run.rb:52:in `add_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:176:in `converge_by'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:412:in `recipe_eval'
C:/Users/vagrant/AppData/Local/Temp/kitchen/cache/cookbooks/nssm/providers/default.rb:19:in `install_nssm'
C:/Users/vagrant/AppData/Local/Temp/kitchen/cache/cookbooks/nssm/providers/default.rb:54:in `block in class_from_file'
(eval):2:in `block in action_install'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:361:in `instance_eval'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:361:in `compile_and_converge_action'
(eval):2:in `action_install'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:145:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource.rb:622:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:69:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `block (2 levels) in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `each'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `block in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/resource_list.rb:94:in `block in execute_each_resource'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:114:in `call_iterator_block'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:85:in `step'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:103:in `iterate'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/resource_list.rb:92:in `execute_each_resource'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:96:in `converge'
C:/Users/vagrant/AppData/Local/Temp/kitchen/cache/cookbooks/poise/files/halite_gem/poise/helpers/notifying_block.rb:69:in `notifying_block'
C:/Users/vagrant/AppData/Local/Temp/kitchen/cache/cookbooks/consul/libraries/consul_service_windows.rb:25:in `action_enable'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/provider.rb:145:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource.rb:622:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:69:in `run_action'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `block (2 levels) in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `each'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:97:in `block in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/resource_list.rb:94:in `block in execute_each_resource'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:114:in `call_iterator_block'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:85:in `step'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:103:in `iterate'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/stepable_iterator.rb:55:in `each_with_index'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/resource_collection/resource_list.rb:92:in `execute_each_resource'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/runner.rb:96:in `converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/client.rb:715:in `block in converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/client.rb:710:in `catch'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/client.rb:710:in `converge'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/client.rb:749:in `converge_and_save'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/client.rb:286:in `run'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/application.rb:277:in `run_with_graceful_exit_option'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/application.rb:253:in `block in run_chef_client'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/local_mode.rb:44:in `with_server_connectivity'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/application.rb:236:in `run_chef_client'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/application/client.rb:427:in `run_application'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/lib/chef/application.rb:59:in `run'
C:/opscode/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-12.21.1-universal-mingw32/bin/chef-client:26:in `<top (required)>'
C:/opscode/chef/bin/chef-client:68:in `load'
C:/opscode/chef/bin/chef-client:68:in `<main>'
NSSM Set doesn't allow to set blank parameters the correct procedure is to use the reset command to set it back to default value (blank or other).
NSSM dump will give the parameters currently set on the service so perhaps we can match the parameters in the dump that dont exist in the resource parameter hash and call the reset command on them so that only the parameters in the resource hash are set and no lingering parameters remain.
this will have the effect of managing the entire nssm services parameters as a hole and making sure they match what we set.
I will try and make the code changes necessary for this to work and submit them in either a new PR or the existing one.
* execute[Set parameter Application to C:\Program Files\Wireshark\dumpcap.exe] action run
- execute C:\Windows\nssm-2.24-94-g9c88bc1.exe set Sniff Application C:\Program Files\Wireshark\dumpcap.exe
* execute[Reset parameter AppExit to default with default subparameter] action run
- execute C:\Windows\nssm-2.24-94-g9c88bc1.exe reset Sniff AppExit default
It always sets Application
and AppExit
parameter.
nssm 'Sniff' do
program 'C:\Program Files\Wireshark\dumpcap.exe'
args "-i 1 -w C:\\gs\\gs.pcap -b filesize:20480 -b files:250 -f \"port http\" -q"
parameters(
Description: 'Service for capturing HTTP trafic from service.',
AppDirectory: 'C:\Program Files\Wireshark',
AppStdout: "#{ENV['ProgramData']}/gs.log",
AppStderr: "#{ENV['ProgramData']}/gs-error.log",
AppRotateFiles: 1
)
start false
action :install
end
Hello,
Every time the nssm_service tries to dump service info using the nssm dump
command, it creates an Error in the windows event log:
Failed to open registry key HKLM\SYSTEM\CurrentControlSet\Services_-MARKER-_: The data area passed to a system call is too small.
The dump command allow an undocumented extra argument to replace the original service name by the specified one. The load_current_value
method of the nssm_service
resource is leveraging this feature with a hardcoded _-MARKER-_ value to dump the parameters.
I think the implementation of this feature performs a lookup of the _-MARKER-_ service, which doesn't exist and trigger the event log creation.
I'll open a PR to fix that.
Cc. @aboten
The windows_zipfile resource doesn't look like its idempotent so it always runs with every chef run triggering the notifications associated with the nssm resource on every run even if the file hasn't changed.
I am not too familiar with windows_zipfile so am unsure if theres a way to make it idempotent. if not perhaps consider Poise Zip which iirc is idempotent although im not too keen on adding another dependency to nssm cookbook.
output from chef run
Recipe: nssm::default
* windows_zipfile[download nssm] action unzip[2017-07-26T09:54:18-04:00] INFO: Processing windows_zipfile[download n
ssm] action unzip (nssm::default line 9)
- unzip https://nssm.cc/ci/nssm-2.24-94-g9c88bc1.zip
* remote_file[c:/chef/cache/nssm-2.24-94-g9c88bc1.zip] action create[2017-07-26T09:54:18-04:00] INFO: Processing r
emote_file[c:/chef/cache/nssm-2.24-94-g9c88bc1.zip] action create (c:/chef/cache/cookbooks/windows/resources/zipfile.rb
line 40)
(up to date)
* ruby_block[Unzipping] action run[2017-07-26T09:54:18-04:00] INFO: Processing ruby_block[Unzipping] action run (c
:/chef/cache/cookbooks/windows/resources/zipfile.rb line 54)
[2017-07-26T09:54:18-04:00] INFO: ruby_block[Unzipping] called
- execute the ruby block Unzipping
[2017-07-26T09:54:18-04:00] INFO: windows_zipfile[download nssm] sending create action to remote_file[install nssm] (imm
ediate)
* remote_file[install nssm] action create[2017-07-26T09:54:18-04:00] INFO: Processing remote_file[install nssm] acti
on create (nssm::default line 18)
(up to date)
* remote_file[install nssm] action create[2017-07-26T09:54:18-04:00] INFO: Processing remote_file[install nssm] acti
on create (nssm::default line 18)
(up to date)
- evaluate block and run any associated actions
Since upgrading to the latest version of the cookbook, it keeps trying to install a newer version of NSSM and since NSSM is currently running it gets an access denied error trying to overwrite the file failing the chef run.
I see in the code its set as '# TODO: Move this into a dedicated resource' but the install action triggers this on every run which i believe confuses why_run and makes it think something executed even if #25 is fixed and doesn't unzip on every run anymore. this behavior triggers the notification on every run.
i will try and refactor the install into a resource that can be called independently and see if it makes the issue better. Will submit a PR if its working correctly.
def install_nssm
return if run_context.loaded_recipe? 'nssm::default'
recipe_eval do
run_context.include_recipe 'nssm::default'
end
end
Hello,
By default Windows 2008 R2 ships with Powershell version 2 (according to $PSVersionTable.PSVersion
). Unfortunately, this version of PS does not support 'System.IO.Compression.FileSystem'
. It doesn't support it until Powershell 4.5 according to a quick google search.
In order for this to work on 2008, I think one decent option is the expand.exe
binary which appears to be available by default.
I can get a PR going with this change, although my question is whether we should use expand.exe everywhere or just for 2008?
Thoughts beyond that? I realize 2008 is very old at this point so it might not be worth supporting.
For tracking purposes,
We need to create some tests to properly test the reset parameter functionality and another test for service with no AppParameters to ensure we catch the bugs the last pull request fixes.
If a service already exists, but the chef recipe is modified - the called program, or the arguments are changed for example, or one of the properties, the windows service is not updated, although it should.
Hello,
This issue is more a oneshot message than a fixable issue.
Version 3.0.1 changed the way parameters are escaped, this is a small change from #7 but it has several side effects that IMHO should have been catched and described in a "major" release.
Some cookbooks were handling escaping by themselves (sous-chefs/consul#455), which they have to revert now due to broken behavior.
Again, this is just a one shot discussion message. Feel free to close it whenever you want :)
Hello,
According to chef-boneyard/windows@893d27b, the opscode windows cookbook now requires chef client version 12.7 or greater. In versions below 12.7 (such as 12.6, which chef-nssm's kitchen.yml is using) test kitchen fails with the following error: https://gist.github.com/poblahblahblah/0529a0efb5bfec3052bb4f1c35aafe18
I am working on a branch for chef-nssm that requires chef client version 12.7+ and I also am proposing that a dependency on the windows cookbook version 3.1.x is put in metadata.rb. Are these suggestions acceptable? Would this require a major version bump?
Getting this warning message when using nssm. Looks like params
will no longer be a valid parameter name for a resource.
Deprecated features used!
Property `params` of resource `nssm` overwrites an existing method. Please use a different property name. This will raise an exception in Chef 13. at 1 location:
in trying to resolve #14 i added a notification to a resource that would stop services and kill NSSM so it could overwrite but it didn't work because NSSM resource doesn't support why run
Hi I am creating 100 nssm service services to run my application.
After running some time i am getting nssm stopped working.
Please help me how can i handle this.
Hello,
We're already installing NSSM via a chocolatey package (https://chocolatey.org/packages/nssm) which makes the installation from zip an undesired action. Normally we're able to control this by either setting an attribute override or simply not using the default recipe, but due to https://github.com/dhoer/chef-nssm/blob/master/resources/service.rb#L26 we can't just consume the provider since it will force the install by including the default recipe.
I think the easiest path forward that breaks the least would be to adjust the default recipe to look for an attribute that if set to false will just skip nssm installation all together assuming that installation is being handled elsewhere.
I suppose there's also the other option of allowing the consumer to install via chocolatey package, but I don't like that option as much since it would require a dependency on the chocolatey
cookbook and broadens the scope of dependencies.
I can get a PR going for this, although I wanted your input on it first.
the code
service new_resource.servicename do # ~FC021 action [:start] only_if { new_resource.start } end
in the provider always executes on every run. my assumption is that it would only start the service on create and not every run, basically following the idempotence of the service existing and not the service being started.
i have worked around it by setting start to false and using a notification to follow the bahavior outlined above.
if it was intended to ensure the service was always running then feel free to close this issue with a comment letting me know. i just thought to bring it to your attention
because the zip file hasn't been extracted yet while checking to run the before notification the resource freaks out and crashes the chef run.
Need to add a test to catch this and also apply the fix which is adding the following line to the remote_file resource:
only_if {::File.exist?("#{Chef::Config[:file_cache_path]}/#{basename}/#{system}/nssm.exe")}
will make the change as soon as i'm done some more local testing.
If args property is not set or blank NSSM throws an error trying to create a service with no value for AppParameters. I have tested this on the commandline and if AppParameters is set but no value follows it or it is blank NSSM will throw an error by outputting the help text.
i have looked in the code and can see that
params = new_resource.parameters.merge(Application: new_resource.program, AppParameters: new_resource.args)
maps args property to AppParameters but then that will just execute a blank value and throw an error. the execute command has the following guard
not_if { current_resource && current_resource.parameters[key] == ::NSSM.prepare_parameter(value) }
but even if i try and set the value of args to 'AppParameters' to try and have the guard not execute for that value it will just set the args to 'AppParameters' which is unwanted behavior.
The only way i can think of fixing it is to split the merge into two lines and add an unless args = nil
conditional to it so it doesn't get merged into the parameters unless its set.
i am hoping to see if anyone else has experienced the issue and if there's another resolution to it other than making this change. otherwise i will add it to my open PR or submit a new one.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.