> On Nov. 4, 2016, 3:22 p.m., Stephan Erb wrote: > > src/main/python/apache/aurora/client/cli/jobs.py, lines 291-337 > > <https://reviews.apache.org/r/53114/diff/2/?file=1544805#file1544805line291> > > > > Having a manual json assembly here is brittle. Whenever we change > > something in the pystachio schema we have to make sure we update this place > > as well. This is asking for trouble down the road. > > > > I would propose to replace this with a single call of the existing > > pystachio json serialization method instead: > > > > ``` > > config.raw().json_dumps() > > ``` > > > > A file written using this is then also suitable for ingestion via our > > `--read-json` methods. For example: > > > > ``` > > aurora job inspect --read-json devcluster/www-data/prod/hello > > hello_world.json > > ``` > > Jing Chen wrote: > should we do anything on non-json rendering side? Per your concerns, > changes in the pystachio schema might also force us to update the non-json > rendering.
The non-json side cannot be automatically parsed again into a working pystachio structure. This means that changes here would not affect correctnes but only completness. I would therefore be OK with leaving the non-json rending the way it is right now. - Stephan ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/53114/#review154902 ----------------------------------------------------------- On Oct. 25, 2016, 4:14 a.m., Jing Chen wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/53114/ > ----------------------------------------------------------- > > (Updated Oct. 25, 2016, 4:14 a.m.) > > > Review request for Aurora, Joshua Cohen, Brian Wickman, and Zameer Manji. > > > Bugs: AURORA-1504 > https://issues.apache.org/jira/browse/AURORA-1504 > > > Repository: aurora > > > Description > ------- > > aurora job inspect should have a --write-json option > > > Diffs > ----- > > src/main/python/apache/aurora/client/cli/jobs.py > 87fbf13f8e5955b30436f8d871b548275f009893 > src/test/python/apache/aurora/client/cli/test_inspect.py > fedc16b3d4e9fb7d6f5f0dc34ad7a1837e34baea > > Diff: https://reviews.apache.org/r/53114/diff/ > > > Testing > ------- > > * For configuration for a job as: > ``` > pkg_path = '/vagrant/hello.py' > > install = Process( > name='fetch package', > cmdline='cp {} . && chmod u+x hello.py'.format(pkg_path)) > > runner = Process( > name='hello jing', > ephemeral = True, > cmdline='python -u hello.py') > > hello_task = SequentialTask( > name='hello task', > processes=[install, runner], > resources=Resources(cpu=1, ram=1*MB, disk=8*MB)) > > jobs = [ > Service(cluster='devcluster', > role='www-data', > environment='devel', > name='hello_jing', > task=hello_task, > constraints = { > 'host':'limit:2', > 'rack':'limit:1' > }) > ] > ``` > command 'aurora job inspect devcluster/www-data/devel/hello_jing > /vagrant/hello.aurora --write-json' returns: > ``` > { > "job": { > "name": "hello_jing", > "role": "www-data", > "cluster": "devcluster", > "instances": "1", > "constraints": [ > { > "host": "limit:2" > }, > { > "rack": "limit:1" > } > ], > "service": true, > "production": false > }, > "task": { > "name": "hello task", > "constraints": [ > "fetch package < hello jing" > ], > "processes": [ > { > "name": "fetch package", > "daemon": false, > "ephemeral": false, > "final": false, > "cmdline": [ > "cp /vagrant/hello.py . && chmod u+x hello.py" > ] > }, > { > "name": "hello jing", > "daemon": false, > "ephemeral": true, > "final": false, > "cmdline": [ > "python -u hello.py" > ] > } > ] > } > } > > ``` > > * For configuration for a cron job as: > ``` > jobs = [ > Job( > cluster = 'devcluster', > role = 'www-data', > environment = 'devel', > name = 'cron_hello_jing', > cron_schedule = '*/10 * * * *', > cron_collision_policy='CANCEL_NEW', > task = Task( > name="cron_hello_jing", > processes=[Process(name="hello_jing", > cmdline="echo 'cron hello jing'")], > resources=Resources(cpu=1, ram=1*MB, disk=8*MB) > ) > ) > ] > ``` > command aurora job inspect devcluster/www-data/devel/cron_hello_jing > /vagrant/cron_hello_world.aurora --write-json returns: > ``` > { > "job": { > "name": "cron_hello_jing", > "role": "www-data", > "cluster": "devcluster", > "instances": "1", > "cron": { > "schedule": "*/10 * * * *", > "policy": "CANCEL_NEW" > }, > "service": false, > "production": false > }, > "task": { > "name": "cron_hello_jing", > "processes": [ > { > "name": "hello_jing", > "daemon": false, > "ephemeral": false, > "final": false, > "cmdline": [ > "echo 'cron hello jing'" > ] > } > ] > } > } > ``` > > > Thanks, > > Jing Chen > >
