You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@aurora.apache.org by "Mark Chu-Carroll (JIRA)" <ji...@apache.org> on 2014/06/11 19:31:04 UTC

[jira] [Updated] (AURORA-520) Update "aurora job diff"

     [ https://issues.apache.org/jira/browse/AURORA-520?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mark Chu-Carroll updated AURORA-520:
------------------------------------

    Sprint: 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)