[
https://issues.apache.org/jira/browse/AURORA-520?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Chris Lambert updated AURORA-520:
---------------------------------
Sprint: Q2 Sprint 3, Q3 Sprint 1 (was: Q2 Sprint 3)
> Update "aurora job diff"
> ------------------------
>
> Key: AURORA-520
> URL: https://issues.apache.org/jira/browse/AURORA-520
> Project: Aurora
> Issue Type: Task
> Components: Client
> Reporter: Mark Chu-Carroll
> Assignee: Mark Chu-Carroll
>
> Users complain because the "aurora job diff" command doesn't work the way
> they'd like it to. In its current form, it's got two major problems.
> (1) It reports spurious differences between running jobs and local
> configurations, due to automatically filled fields that shouldn't be part of
> the comparison. For example, a job config specifies who created using an
> Identity record, which has two fields: the rolename running the job, and the
> username of the person who ran the command. For comparing live jobs against
> local configs, that's irrelevant.
> (2) The diffs are very hard to read. Diffs are generated by downloading the
> running task configs for a job, and writing them to the disk in json; then
> uploading the local config, getting *it* converted to thrift, and writing
> that to the disk in json, and then running the Unix diff command on the two
> json files.
> Unix diff isn't the most pleasant thing to read under the best of
> circumstances. But making matters worse, the entire json format of the files
> being diffed is unfamiliar to users! So they're looking at a hard-to-read
> diff syntax ranging over an unfamiliar data syntax.
> To fix this, I'd like to replace the use of Unix diff. The json records for
> the configs are semantically just trees. Writing a comparison function that
> compares corresponding trees is pretty easy, and can generate *much* better
> diffs.
> An example of the diff to be generated by this code would be something like
> the following - assuming that the local config increases the number of
> instances from 2 to 3, and the CPU request from 2 to 4:
> {noformat}
> Local config has a different number of tasks: 3 local vs 2 running
> Task diffs found in instance 1:
> Field 'numCpus' is '4' local, but '2' remote
> 2 total diff(s) found
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.2#6252)