-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/53114/#review154902
-----------------------------------------------------------




src/main/python/apache/aurora/client/cli/jobs.py (lines 287 - 333)
<https://reviews.apache.org/r/53114/#comment224689>

    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
    ```


- Stephan Erb


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
> 
>

Reply via email to