> On Sept. 30, 2014, 7:08 p.m., Nate Cole wrote:
> > ambari-agent/src/main/python/ambari_agent/AlertSchedulerHandler.py, lines
> > 340-341
> > <https://reviews.apache.org/r/26193/diff/1/?file=709770#file709770line340>
> >
> > Nate's Nit: log the str(exception) so we may have an idea of what went
> > wrong. Also, if there is a try/except for each individual definition in
> > the loop we could also identify which specific one failed. It looks like
> > the only "bad" call could be the alert.collect() or the
> > self.__json_to_callable() method. (stupid markdown won't let me do two
> > underscores)
>
> Jonathan Hurley wrote:
> The loop is stupid, but it's convention based on how the ActionQueue is
> setup for commands sent to the agents. 99.99% of the time, there will only
> ever be 1 command. But, I can change the logging to be more precise; I think
> that much of this method could cause problems, though. If the JSON is messed
> up, it could cause the agent to crash and restart (saw this during testing).
>
> logger.exception logs the message supplied and the caught exception;
> str(exception) doesn't always provide a full trace if I recall correctly. I
> will look into this as well before I push.
logger.exception(...)
Traceback (most recent call last):
File
"/usr/lib/python2.6/site-packages/ambari_agent/AlertSchedulerHandler.py", line
327, in execute_alert
alert = self.__json_to_callable(clusterName, hostName,
alert_definition.spack)
AttributeError: 'dict' object has no attribute 'spack'
logger.error(str(exception))
ERROR 2014-10-01 02:56:12,410 AlertSchedulerHandler.py:339 - 'dict' object
has no attribute 'spack'
It looks like the exception(...) function provides more information.
- Jonathan
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/26193/#review55026
-----------------------------------------------------------
On Sept. 30, 2014, 6:38 p.m., Jonathan Hurley wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/26193/
> -----------------------------------------------------------
>
> (Updated Sept. 30, 2014, 6:38 p.m.)
>
>
> Review request for Ambari, Nate Cole and Tom Beerbower.
>
>
> Bugs: AMBARI-7568
> https://issues.apache.org/jira/browse/AMBARI-7568
>
>
> Repository: ambari
>
>
> Description
> -------
>
> An alert should be able to be scheduled for immediate execution. This is
> independent of its interval scheduling. The on-demand execution should not
> affect any existing job schedules on the agent for the definition.
>
> Alerts run outside of the realm of the normal request/task workflow.
> Therefore, in order to trigger an on-demand alert to run, the following
> command is used:
>
> POST
> http://server/api/v1/clusters/{clusterName}/alert_definitions/{alertDefinitionId}?AlertDefinition/run_now=true
>
> The most sensible way to accomplish this was to create the new
> AlertExecutionCommand. I know that we are conservative with our extension of
> AgentCommand, however alerts falls into a new category since the agent is in
> charge of all of the scheduling logic. It didn't make sense to make this a
> custom command since there's no associated Python file to "run"; it's all
> transmitted in the heartbeat and runs inside of the alerts framework.
>
>
> Diffs
> -----
>
> ambari-agent/src/main/python/ambari_agent/AlertSchedulerHandler.py
> c645cba0bb28c909894c9162f904c19f438c3304
> ambari-agent/src/main/python/ambari_agent/Controller.py
> 18df06ed8c1960f670a9d4a5e9d1a7021330b9ea
> ambari-agent/src/main/python/ambari_agent/alerts/collector.py
> 9943211eab71d54598fbf58289b1e4171241aa9a
> ambari-agent/src/test/python/ambari_agent/TestAlerts.py
> f9c2ab4a93a2d56ae9d7f7d5051d3bc4a71bd1ae
>
> ambari-server/src/main/java/org/apache/ambari/server/agent/AgentCommand.java
> 6e8aab1bf4236ffb129e12da4ff3c475338da299
>
> ambari-server/src/main/java/org/apache/ambari/server/agent/AlertExecutionCommand.java
> PRE-CREATION
>
> ambari-server/src/main/java/org/apache/ambari/server/agent/HeartBeatHandler.java
> c8261539262ede385387919c7c28d9b827acccef
>
> ambari-server/src/main/java/org/apache/ambari/server/agent/HeartBeatResponse.java
> 1e9dc125556cde334e5bb5ccd2c8c435335d3c89
>
> ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AlertDefinitionResourceProvider.java
> e2d283728482ea301aff964a0e3e6ea3191b801c
>
> ambari-server/src/main/java/org/apache/ambari/server/state/alert/AlertDefinitionHash.java
> 35d77426a9b0cf9373e95d29a48ccb8f1622e96b
> ambari-server/src/main/resources/properties.json
> 3893f39c0ce6a862bcbff53791748b6179238bc2
>
> ambari-server/src/test/java/org/apache/ambari/server/state/alerts/AlertDefinitionHashTest.java
> 1cb6eac7e57398e6eb0e18e45ed1ba5b4541efdf
>
> Diff: https://reviews.apache.org/r/26193/diff/
>
>
> Testing
> -------
>
> New tests added; ran the following project targets:
>
> ambari-agent$ mvn clean test
> [INFO]
> ------------------------------------------------------------------------
> [INFO] BUILD SUCCESS
> [INFO]
> ------------------------------------------------------------------------
> [INFO] Total time: 6.988 s
> [INFO] Finished at: 2014-09-30T17:14:20-04:00
> [INFO] Final Memory: 8M/81M
> [INFO]
> ------------------------------------------------------------------------
>
> ambari-server$ mvn clean test
> [INFO]
> ------------------------------------------------------------------------
> [INFO] BUILD SUCCESS
> [INFO]
> ------------------------------------------------------------------------
> [INFO] Total time: 18:51 min
> [INFO] Finished at: 2014-09-30T18:02:03-04:00
> [INFO] Final Memory: 29M/180M
> [INFO]
> ------------------------------------------------------------------------
>
>
> Thanks,
>
> Jonathan Hurley
>
>