Closed jasonbreimer closed 2 weeks ago
This has passed local elixir validation by author.
I made a small modification to the mean_time description at Paul's request.
Just realised I've been commenting on PRs using my personal GitHub account @davemcincork. It's me. Honest!
I have made all adjustments as recommended by @davemcincork. Thanks Dave!
Group suggestion is to use duration rather than mean_time.
Looking at the description: The event duration or aggregate time, the amount of time the event covers from start_time to end_time in milliseconds.
We don't always have start_time or end_time. This is also meant to an average calculated value.
It seems like a mean time value and a duration value are different?
Perhaps duration could be modified by I'm still in favor of keeping a new mean_time attribute as it seems a better fit.
Another quick concern from the group regarded using integer_t for mean_time and limit to seconds only? Perhaps this would not allow usages when time value is milliseconds?
I think this may have been the concern regarding limits in duration time with RFC-3339:
note: nothing below dur-second.
Durations:
dur-second = 1DIGIT "S" dur-minute = 1DIGIT "M" [dur-second] dur-hour = 1DIGIT "H" [dur-minute] dur-time = "T" (dur-hour / dur-minute / dur-second) dur-day = 1DIGIT "D" dur-week = 1DIGIT "W" dur-month = 1DIGIT "M" [dur-day] dur-year = 1*DIGIT "Y" [dur-month] dur-date = (dur-day / dur-month / dur-year) [dur-time]
duration = "P" (dur-date / dur-time / dur-week)
I believe I have resolved all issues and requests!
This change now contains new dictionary items for Average Duration. There are 8 new attributes for duration_avg_days, duration_avg_hours, duration_avg_msecs, duration_avg_mins, duration_avg_months, duration_avg_secs, duration_avg_weeks, and duration_avg_years. This replaces the "average_time" or "mean_time" attribute. This should capture a number of duration unit types and allow these to be used more generally.
This change also includes is_installed_id a normalized enum that includes installed, not installed, installed pending reboot, other, and unknown. This is also intended to allow the is_installed attribute to be more granular.
I have run this branch through local elixir validation without errors. No issues detected.
I've made changes discussed in 6/4 call for renaming is_installed and is_installed_id to installed_state and installed_state_id.
Changes include: Dictionary rename changes and kb_article object attribute rename language changes.
I have re-run local elixir validation without issue.
I'll make these changes but going to need to make them final so that I can make some progress. I actually started with install_state but was suggested to change to installed_state. I also started with boot_time and was suggested reboot_time.
Suggested changes regarding attribute naming have been completed.
Changes pass local elixir validation.
This PR is ready for review.
Yes, let's get this in now, and if we decide the duration_xx
set deserves an object with an enum discriminator, we can always update before 1.3.
I'll make these changes but going to need to make them final so that I can make some progress. I actually started with install_state but was suggested to change to installed_state. I also started with boot_time and was suggested reboot_time.
Oh sorry...I would have discussed with the person who requested those changes if I had known that. But thanks for making them.
Updated 6/7
Description of changes: A number of attributes to improve Patch State. Mean time is a commonly used metric to evaluate patch efficacy and is captured in new attributes for durationavg, is_installed is a new attribute that describes the installation state, and is_installed_id the normalized installation state of the kb_article, and reboot_time to capture the reboot or true install time for reboot dependent patches.
New dictionary attributes attributes: durationavg
Examples: duration_avg_days, duration_avg_hours, duration_avg_msecs, duration_avg_mins, duration_avg_months, duration_avg_secs, duration_avg_weeks, and duration_avg_years
description: This captures the average time. This will be used for "mean time to patch" or MTTP.
Object: kb_article
Note: this could be set per kb_article or per kb_article array for a total "MTTP"
attribute: install_state description: the installation state Object: kb_article Note: This could be for a single kb_article or array of many kb_articles.
attribute: install_state_id description: the normalized installation state Object: kb_article Note: Includes installed, not installed, installed pending reboot, other, and unknown. This could be for a single kb_article or array of many kb_articles.
attribute: boot_time description: This captures the boot time of the system. Object: device Note: This is a neat one and very related to patching.