Revision history for Lim 0.20 2015-08-26 - Release 0.20 BIG CHANGES: - Change REST HTTP method convention, a HTTP POST is now mapped to Create and HTTP PUT is mapped to Update. This affects all non-Lim clients API calls. - Gone with the old Module, in with the 'new' Name... for Lim::Component (affects all modules). - Added transport for RabbitMQ. - Added support for transports for clients. - Add single option to RPC collection definition. - Use UTF8 in JSON since we return the tag that its in UTF8. - Merge arrays in configuration instead of overwriting allowing for plugin/module specific URI configurations etc. - No default URI configured in agent.yaml. - Object debug, RPC debug and debug logging is now default off. Other changes: - Reworked handling groups for lim-agentd, trying to get all secondary groups in also. Use setsid when daemonizing the process and added user/group options to lim-agentd. - Fixed plugins() call in Lim::Agent::CLI. - Use hosts manually if AnyEvent < 6.01. - Implement resolve helper functions that can be configured to skip DNS. Use them in Lim::RPC::Transport::HTTP and Lim::RPC::Client. - Try to force detection of event backend for old AnyEvents (< 6.01). - Lim::RPC::V() now gives the key where data is missing. - Dump data on validation error in Lim::RPC::Call. - Bugfix URIMaps, was not including call in map key so that same map could be used with different calls resulting in wrong call. - Add more debug to Lim::Util::run_cmd. - Only exit on INT in lim-agentd if we are foregrounded (not daemon). - Allow alpha numeric in REST calls. - Fix predata in URIMaps. - Add config rpc.json.pretty to configure REST and JSONRPC transports to print pretty JSON. - Add HTTP::Request object to Lim::RPC::Callback that all calls get and add X-Lim-Base-URL header to the request so it can be used in REST HATEOAS. - Autoflush if foreground. - Added serve() in Lim::RPC::Transport and called when serving a module. - Handle Connection header and keep-alive more correct. - Use correct Content-Type for REST requests - Debug output for loaded modules - Extract user/pass information from URI and give more information to the Transport for calls. - Use localhost 80/443 as default values in HTTP Client Transport. - Do not croak if the configuration directory isnt readable by the current user. - New plugin.load_all setting to load all plugins, otherwise only load plugins in plugin.load. - Add configuration option to specify what plugin should be served on which URI. - Specify URI specific transport configuration. - Server can now close Transports nicely. - A bit better handling of Component calls CLI, Client and Server. - Better error on RPC::Server->serve when a plugin only have client part installed. - If there is no def and no data it should be ok. - Make sure HTTP::Status code is integer. - Use URI::Escape::XS if exists. - Fix maximum request length check for HTTP. - Fix Lim::Error::toString() return and Lim::Error handling of message. - Do not start unless we got URIs. - RabbitMQ transport will now re-resolve/connect on failure. - Correct URI::Escape::XS/URI::Escape use to prevent redefined warnings. - Use auto_delete for RabbitMQ exchanges and channels instead of trying to cleanup that ourselves. This prevents one lim-agentd to prematurely end exchanges and channels that others might use. - Reopen RabbitMQ channels if they are cancels outside our control. - Weaken logger object in all classes to hopefully prevent weird situations where logger still exists in global destruction (Log4perl: Seems like no initialization happened.). - Use class as category for all logger to enable better filtering. 0.20_07 2015-08-10 - Release 0.20 candidate 07 Changes: - Weaken logger object in all classes to hopefully prevent weird situations where logger still exists in global destruction (Log4perl: Seems like no initialization happened.). - Use class as category for all logger to enable better filtering. 0.20_06 2015-08-07 - Release 0.20 candidate 06 Changes: - Reopen RabbitMQ channels if they are cancels outside our control. 0.20_05 2015-08-06 - Release 0.20 candidate 05 Changes: - Use auto_delete for RabbitMQ exchanges and channels instead of trying to cleanup that ourselves. This prevents one lim-agentd to prematurely end exchanges and channels that others might use. 0.20_04 2015-07-30 - Release 0.20 candidate 04 Changes: - Correct URI::Escape::XS/URI::Escape use to prevent redefined warnings. 0.20_03 2015-07-30 - Release 0.20 candidate 03 Changes: - Do not start unless we got URIs. - RabbitMQ transport will now re-resolve/connect on failure. 0.20_02 2015-07-30 - Release 0.20 candidate 02 BIG CHANGES: - Merge arrays in configuration instead of overwriting allowing for plugin/module specific URI configurations etc. - No default URI configured in agent.yaml. - Object debug, RPC debug and debug logging is now default off. 0.20_01 2015-07-28 - Release 0.20 candidate 01 BIG CHANGES: - Change REST HTTP method convention, a HTTP POST is now mapped to Create and HTTP PUT is mapped to Update. This affects all non-Lim clients API calls. - Gone with the old Module, in with the 'new' Name... for Lim::Component (affects all modules). - Added transport for RabbitMQ. - Added support for transports for clients. - Add single option to RPC collection definition. - Use UTF8 in JSON since we return the tag that its in UTF8. Other changes: - Reworked handling groups for lim-agentd, trying to get all secondary groups in also. Use setsid when daemonizing the process and added user/group options to lim-agentd. - Fixed plugins() call in Lim::Agent::CLI. - Use hosts manually if AnyEvent < 6.01. - Implement resolve helper functions that can be configured to skip DNS. Use them in Lim::RPC::Transport::HTTP and Lim::RPC::Client. - Try to force detection of event backend for old AnyEvents (< 6.01). - Lim::RPC::V() now gives the key where data is missing. - Dump data on validation error in Lim::RPC::Call. - Bugfix URIMaps, was not including call in map key so that same map could be used with different calls resulting in wrong call. - Add more debug to Lim::Util::run_cmd. - Only exit on INT in lim-agentd if we are foregrounded (not daemon). - Allow alpha numeric in REST calls. - Fix predata in URIMaps. - Add config rpc.json.pretty to configure REST and JSONRPC transports to print pretty JSON. - Add HTTP::Request object to Lim::RPC::Callback that all calls get and add X-Lim-Base-URL header to the request so it can be used in REST HATEOAS. - Autoflush if foreground. - Added serve() in Lim::RPC::Transport and called when serving a module. - Handle Connection header and keep-alive more correct. - Use correct Content-Type for REST requests - Debug output for loaded modules - Extract user/pass information from URI and give more information to the Transport for calls. - Use localhost 80/443 as default values in HTTP Client Transport. - Do not croak if the configuration directory isnt readable by the current user. - New plugin.load_all setting to load all plugins, otherwise only load plugins in plugin.load. - Add configuration option to specify what plugin should be served on which URI. - Specify URI specific transport configuration. - Server can now close Transports nicely. - A bit better handling of Component calls CLI, Client and Server. - Better error on RPC::Server->serve when a plugin only have client part installed. - If there is no def and no data it should be ok. - Make sure HTTP::Status code is integer. - Use URI::Escape::XS if exists. - Fix maximum request length check for HTTP. - Fix Lim::Error::toString() return and Lim::Error handling of message. 0.19 2013-09-02 - Release 0.19 - New module Lim::Util::DBI - Create a DBH that is executed in a forked process. 0.18 2013-08-23 - Release 0.18 - Make a bootstrap sub in the Client class of Lim::Component's to detect if they are already bootstrapped so we don't do it for each new Client object. - Add runtime options to lim-agentd to start as another user/group - Add API to Lim::RPC::Server so you can get the transports and to the Lim::RPC::Transport so you can get the host/port listened to. - Change test to use dynamic ports 0.17 2013-08-12 - Release 0.17 0.16 2013-08-07 - Release 0.16 0.15 2013-08-04 - Release 0.15 0.14 2013-08-02 - Release 0.14 0.13 2013-04-15 - Release 0.13 0.12 2012-08-03 - Release 0.12