You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sqoop.apache.org by Jarek Cecho <ja...@apache.org> on 2013/10/11 22:02:52 UTC

Re: Review Request 13181: SQOOP-773 Sqoop2: Batch execution support for client commands

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


Hi Abe,
thank you very much for working on the patch, appreciated! I've tested it in my environment and I do have couple of notes:

I think that we need to ensure that one failed command will end entire script execution. I'm thinking about use case that would do the following:

1) create connection
2) create job for -^
3) run the job -^

In such situation we need to ensure that we are not creating job for non-existing connection or running non-existing job.


shell/src/main/java/org/apache/sqoop/shell/CloneConnectionFunction.java
<https://reviews.apache.org/r/13181/#comment52475>

    Can we make this and similar code a bit more verbose?
    
    I've tried following script:
    
    create connection --cid 1 --name NameX
    
    And I got following output:
    
    [root@bousa-trunk sqoop]# ./bin/sqoop.sh client create.sqoop
    Sqoop home directory: /root/sqoop
    sqoop:000> create connection --cid 1 --name NameX
    Creating connection for connector with id 1
    [root@bousa-trunk sqoop]#
    
    Creating the connection has failed as I did not specified any arguments, but there is no error message which is really confusing.



shell/src/main/java/org/apache/sqoop/shell/SqoopFunction.java
<https://reviews.apache.org/r/13181/#comment52464>

    It seems that some of the functions are just returning true and not doing any validations. What about making such function default here and let the children override it only if some validations will be required?



shell/src/main/java/org/apache/sqoop/shell/utils/FormOptions.java
<https://reviews.apache.org/r/13181/#comment52462>

    Nit: Unused import.


Jarcec

- Jarek Cecho


On Sept. 27, 2013, 6:30 p.m., Abraham Elmahrek wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/13181/
> -----------------------------------------------------------
> 
> (Updated Sept. 27, 2013, 6:30 p.m.)
> 
> 
> Review request for Sqoop, Hari Shreedharan and Jarek Cecho.
> 
> 
> Bugs: SQOOP-773
>     https://issues.apache.org/jira/browse/SQOOP-773
> 
> 
> Repository: sqoop-sqoop2
> 
> 
> Description
> -------
> 
> commit 080ced16578c1d95015ce3e99b4335beb465861a
> Author: Abraham Elmahrek <ab...@elmahrek.com>
> Date:   Tue Aug 13 14:14:06 2013 -0700
> 
>     SQOOP-773 Sqoop2: Batch execution support for client commands
>     
>     Separated options into two groups: fixed and dynamic options.
>     Fixed options (IE: connector ID) come first and are used to select
>     what options should be used in dynamic options. Dynamic options
>     are automatically created based on forms selected from fixed options.
>     The keys for these options take on the form "<prefix>-<form name>-<input-name>".
> 
> :100644 100644 980a908... a7e7e7d... M  shell/src/main/java/org/apache/sqoop/shell/CloneCommand.java
> :100644 100644 856abaa... 2c2869c... M  shell/src/main/java/org/apache/sqoop/shell/CloneConnectionFunction.java
> :100644 100644 3e23025... dd2eb2b... M  shell/src/main/java/org/apache/sqoop/shell/CloneJobFunction.java
> :100644 100644 e62ce08... 9ad007b... M  shell/src/main/java/org/apache/sqoop/shell/CreateCommand.java
> :100644 100644 5fbf0a3... 973fd53... M  shell/src/main/java/org/apache/sqoop/shell/CreateConnectionFunction.java
> :100644 100644 6e4f04b... f0d4a6c... M  shell/src/main/java/org/apache/sqoop/shell/CreateJobFunction.java
> :100644 100644 c123732... d79516d... M  shell/src/main/java/org/apache/sqoop/shell/DeleteConnectionFunction.java
> :100644 100644 d4095b7... df9a2cc... M  shell/src/main/java/org/apache/sqoop/shell/DeleteJobFunction.java
> :100644 100644 f119660... b5a54b9... M  shell/src/main/java/org/apache/sqoop/shell/DisableConnectionFunction.java
> :100644 100644 a87e51f... 8cc4ea3... M  shell/src/main/java/org/apache/sqoop/shell/DisableJobFunction.java
> :100644 100644 f782b16... 0c9f184... M  shell/src/main/java/org/apache/sqoop/shell/EnableConnectionFunction.java
> :100644 100644 20c80dc... de5000b... M  shell/src/main/java/org/apache/sqoop/shell/EnableJobFunction.java
> :100644 100644 1c43dce... f0153b8... M  shell/src/main/java/org/apache/sqoop/shell/SetOptionFunction.java
> :100644 100644 abd9cea... 1aacd7c... M  shell/src/main/java/org/apache/sqoop/shell/SetServerFunction.java
> :100644 100644 b55d5d1... f0720a0... M  shell/src/main/java/org/apache/sqoop/shell/ShowConnectionFunction.java
> :100644 100644 97a4ab2... a9aba71... M  shell/src/main/java/org/apache/sqoop/shell/ShowConnectorFunction.java
> :100644 100644 28497db... c71696c... M  shell/src/main/java/org/apache/sqoop/shell/ShowFrameworkFunction.java
> :100644 100644 da4a4ff... 68bd3b3... M  shell/src/main/java/org/apache/sqoop/shell/ShowJobFunction.java
> :100644 100644 5e3c3ff... d0b05e2... M  shell/src/main/java/org/apache/sqoop/shell/ShowOptionFunction.java
> :100644 100644 ec97e63... 11bff86... M  shell/src/main/java/org/apache/sqoop/shell/ShowServerFunction.java
> :100644 100644 a592a98... a571269... M  shell/src/main/java/org/apache/sqoop/shell/ShowSubmissionFunction.java
> :100644 100644 764b754... 5d6f97f... M  shell/src/main/java/org/apache/sqoop/shell/ShowVersionFunction.java
> :100644 100644 675a796... 371c867... M  shell/src/main/java/org/apache/sqoop/shell/SqoopFunction.java
> :100644 100644 f03e08f... 914454f... M  shell/src/main/java/org/apache/sqoop/shell/StartCommand.java
> :100644 100644 02148de... b8771c4... M  shell/src/main/java/org/apache/sqoop/shell/StartJobFunction.java
> :100644 100644 184892a... ebd4548... M  shell/src/main/java/org/apache/sqoop/shell/StatusCommand.java
> :100644 100644 be0de8c... c61e9b9... M  shell/src/main/java/org/apache/sqoop/shell/StatusJobFunction.java
> :100644 100644 698bca7... 65a454b... M  shell/src/main/java/org/apache/sqoop/shell/StopCommand.java
> :100644 100644 6c0e3c2... ae559cc... M  shell/src/main/java/org/apache/sqoop/shell/StopJobFunction.java
> :100644 100644 9262ccd... 24f31ea... M  shell/src/main/java/org/apache/sqoop/shell/UpdateCommand.java
> :100644 100644 c062fe6... 31d9af9... M  shell/src/main/java/org/apache/sqoop/shell/UpdateConnectionFunction.java
> :100644 100644 da1e0c5... 6f83b91... M  shell/src/main/java/org/apache/sqoop/shell/UpdateJobFunction.java
> :000000 100644 0000000... 6b6e858... A  shell/src/main/java/org/apache/sqoop/shell/utils/ConnectionDynamicFormOptions.java
> :000000 100644 0000000... cc63610... A  shell/src/main/java/org/apache/sqoop/shell/utils/DynamicFormOptions.java
> :100644 100644 9bc0b93... bf0615e... M  shell/src/main/java/org/apache/sqoop/shell/utils/FormFiller.java
> :000000 100644 0000000... 516790a... A  shell/src/main/java/org/apache/sqoop/shell/utils/FormOptions.java
> :000000 100644 0000000... aa118e1... A  shell/src/main/java/org/apache/sqoop/shell/utils/JobDynamicFormOptions.java
> 
> 
> Diffs
> -----
> 
>   shell/src/main/java/org/apache/sqoop/shell/CloneCommand.java 980a9086f433fd3a2228122b6a253a9a1c562315 
>   shell/src/main/java/org/apache/sqoop/shell/CloneConnectionFunction.java 856abaae5a7745b38b1db42cd9283732d1bc0b64 
>   shell/src/main/java/org/apache/sqoop/shell/CloneJobFunction.java 3e2302514d9350affbc9ab199fb4e91355201290 
>   shell/src/main/java/org/apache/sqoop/shell/CreateCommand.java e62ce08ca1ee9168a77b619d21db93b04809b7ec 
>   shell/src/main/java/org/apache/sqoop/shell/CreateConnectionFunction.java 5fbf0a3d8ec13c8e3628525b7d6432d56ddbb0c3 
>   shell/src/main/java/org/apache/sqoop/shell/CreateJobFunction.java 6e4f04bf392f0c062e211fd6709f362ec6e584c3 
>   shell/src/main/java/org/apache/sqoop/shell/DeleteConnectionFunction.java c1237320b3ceec48569c34f4b2a3fa78b4d2c26e 
>   shell/src/main/java/org/apache/sqoop/shell/DeleteJobFunction.java d4095b736d3dcc97487c20cb71c7c460139c2afd 
>   shell/src/main/java/org/apache/sqoop/shell/DisableConnectionFunction.java f1196601857b90442b1c9394902b71d3bd140915 
>   shell/src/main/java/org/apache/sqoop/shell/DisableJobFunction.java a87e51f32226ad6e65b8970d159861e013c6fe9d 
>   shell/src/main/java/org/apache/sqoop/shell/EnableConnectionFunction.java f782b1654203c450b4d22b762dc0f406b560aa29 
>   shell/src/main/java/org/apache/sqoop/shell/EnableJobFunction.java 20c80dca160ddbfa9edb6c5ea5c19fdc3d0bb7c9 
>   shell/src/main/java/org/apache/sqoop/shell/SetOptionFunction.java 1c43dceea2581cea70d0324a63292a0909a402e1 
>   shell/src/main/java/org/apache/sqoop/shell/SetServerFunction.java abd9ceac5a8338dcb1273b0f4732b6bd79962d65 
>   shell/src/main/java/org/apache/sqoop/shell/ShowConnectionFunction.java b55d5d1126b1bd33f4517173257188504557b3f2 
>   shell/src/main/java/org/apache/sqoop/shell/ShowConnectorFunction.java 97a4ab2a2377a2aff564f8ffc18884aa11d8a5e3 
>   shell/src/main/java/org/apache/sqoop/shell/ShowFrameworkFunction.java 28497db27295c4ca89ef4b56986818803296cb10 
>   shell/src/main/java/org/apache/sqoop/shell/ShowJobFunction.java da4a4ff324c32deceadd45d336646eb5bc5a7882 
>   shell/src/main/java/org/apache/sqoop/shell/ShowOptionFunction.java 5e3c3ff9469ee75d6b9d7635de66b033e93c37cd 
>   shell/src/main/java/org/apache/sqoop/shell/ShowServerFunction.java ec97e637937129ff0e2151612f98eceb284ec126 
>   shell/src/main/java/org/apache/sqoop/shell/ShowSubmissionFunction.java a592a9861f01d333ef72f1f96bdf038ab334ea9e 
>   shell/src/main/java/org/apache/sqoop/shell/ShowVersionFunction.java 764b754180500a86501450c90b119813de6cf1f7 
>   shell/src/main/java/org/apache/sqoop/shell/SqoopFunction.java 675a796d7919a3afadea2e14a88f7823d5dced47 
>   shell/src/main/java/org/apache/sqoop/shell/StartCommand.java f03e08fe2178c2b044eef1bfbfa82c9235d8914d 
>   shell/src/main/java/org/apache/sqoop/shell/StartJobFunction.java 02148de497c15caa363c17a54202690a9026a68b 
>   shell/src/main/java/org/apache/sqoop/shell/StatusCommand.java 184892a33b1b26391c7a7eaa8c79cd27f0178c39 
>   shell/src/main/java/org/apache/sqoop/shell/StatusJobFunction.java be0de8c29289a904cfc00361da7fbf9a6c8e7d1c 
>   shell/src/main/java/org/apache/sqoop/shell/StopCommand.java 698bca778d3aa09fa24372a6367986391f9e61d9 
>   shell/src/main/java/org/apache/sqoop/shell/StopJobFunction.java 6c0e3c284b997561fc351a57e35ce2d6c77f6121 
>   shell/src/main/java/org/apache/sqoop/shell/UpdateCommand.java 9262ccd085730c7101179157db9828ac709c267d 
>   shell/src/main/java/org/apache/sqoop/shell/UpdateConnectionFunction.java c062fe6781aebac15c4d59b5690772695d8a10a9 
>   shell/src/main/java/org/apache/sqoop/shell/UpdateJobFunction.java da1e0c570fb43cea439549c0ab5268f67d55996d 
>   shell/src/main/java/org/apache/sqoop/shell/core/ShellError.java e5a99f1cdef7afc4df12e7eed36e1096e2ccd3ea 
>   shell/src/main/java/org/apache/sqoop/shell/utils/ConnectionDynamicFormOptions.java PRE-CREATION 
>   shell/src/main/java/org/apache/sqoop/shell/utils/DynamicFormOptions.java PRE-CREATION 
>   shell/src/main/java/org/apache/sqoop/shell/utils/FormFiller.java 9bc0b93649cb2ae6c84228b52c04b60a36c13b18 
>   shell/src/main/java/org/apache/sqoop/shell/utils/FormOptions.java PRE-CREATION 
>   shell/src/main/java/org/apache/sqoop/shell/utils/JobDynamicFormOptions.java PRE-CREATION 
> 
> Diff: https://reviews.apache.org/r/13181/diff/
> 
> 
> Testing
> -------
> 
> Executed the following commands in a file:
> 
> create connection --cid 1 --name mysql-test --connector-connection-jdbcDriver com.mysql.jdbc.Driver --connector-connection-connectionString jdbc:mysql://hue.ent.cloudera.com/test --connector-connection-username root --connector-connection-password root
> show connection
> create job --xid 1 --type import --name mysql-import-job1 --connector-table-tableName test --connector-table-partitionColumn a --framework-output-storageType 0 --framework-output-outputFormat 0 --framework-output-outputDirectory /tmp/output
> show job
> start job --jid 1
> 
> 
> Thanks,
> 
> Abraham Elmahrek
> 
>


Re: Review Request 13181: SQOOP-773 Sqoop2: Batch execution support for client commands

Posted by Abraham Elmahrek <ab...@cloudera.com>.

> On Oct. 11, 2013, 8:02 p.m., Jarek Cecho wrote:
> > Hi Abe,
> > thank you very much for working on the patch, appreciated! I've tested it in my environment and I do have couple of notes:
> > 
> > I think that we need to ensure that one failed command will end entire script execution. I'm thinking about use case that would do the following:
> > 
> > 1) create connection
> > 2) create job for -^
> > 3) run the job -^
> > 
> > In such situation we need to ensure that we are not creating job for non-existing connection or running non-existing job.
> 
> Abraham Elmahrek wrote:
>     Thanks for the review Jarcec. Would it be appropriate to have executeFunction and its parent callers return a boolean value rather than an Object value? I think an Object value would be useful, but perhaps a more abstracted Object value that we could handle in a follow up jira. i.e. A class that contains a Status and a return object?
> 
> Jarek Cecho wrote:
>     The reason why the executeFunction() methods are returning Object instead of boolean is that it's expected by Groovy shell. Having said that I would prefer to return what is expected from us, rather then limit it to a boolean value only.

Jarcec, I've created SQOOP-1217 to follow up. For now we can return an Object, but since the result will normally be null, the script will stop executing after one command. To improve this, in this review, I'll return a non-null object to indicate execution should progress and a null value to indicate execution should halt. Then, in SQOOP-1217, we can follow through with a different kind of object that would encapsulate information on whether the batch script should continue, or stop, and the result object itself.


- Abraham


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


On Sept. 27, 2013, 6:30 p.m., Abraham Elmahrek wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/13181/
> -----------------------------------------------------------
> 
> (Updated Sept. 27, 2013, 6:30 p.m.)
> 
> 
> Review request for Sqoop, Hari Shreedharan and Jarek Cecho.
> 
> 
> Bugs: SQOOP-773
>     https://issues.apache.org/jira/browse/SQOOP-773
> 
> 
> Repository: sqoop-sqoop2
> 
> 
> Description
> -------
> 
> commit 080ced16578c1d95015ce3e99b4335beb465861a
> Author: Abraham Elmahrek <ab...@elmahrek.com>
> Date:   Tue Aug 13 14:14:06 2013 -0700
> 
>     SQOOP-773 Sqoop2: Batch execution support for client commands
>     
>     Separated options into two groups: fixed and dynamic options.
>     Fixed options (IE: connector ID) come first and are used to select
>     what options should be used in dynamic options. Dynamic options
>     are automatically created based on forms selected from fixed options.
>     The keys for these options take on the form "<prefix>-<form name>-<input-name>".
> 
> :100644 100644 980a908... a7e7e7d... M  shell/src/main/java/org/apache/sqoop/shell/CloneCommand.java
> :100644 100644 856abaa... 2c2869c... M  shell/src/main/java/org/apache/sqoop/shell/CloneConnectionFunction.java
> :100644 100644 3e23025... dd2eb2b... M  shell/src/main/java/org/apache/sqoop/shell/CloneJobFunction.java
> :100644 100644 e62ce08... 9ad007b... M  shell/src/main/java/org/apache/sqoop/shell/CreateCommand.java
> :100644 100644 5fbf0a3... 973fd53... M  shell/src/main/java/org/apache/sqoop/shell/CreateConnectionFunction.java
> :100644 100644 6e4f04b... f0d4a6c... M  shell/src/main/java/org/apache/sqoop/shell/CreateJobFunction.java
> :100644 100644 c123732... d79516d... M  shell/src/main/java/org/apache/sqoop/shell/DeleteConnectionFunction.java
> :100644 100644 d4095b7... df9a2cc... M  shell/src/main/java/org/apache/sqoop/shell/DeleteJobFunction.java
> :100644 100644 f119660... b5a54b9... M  shell/src/main/java/org/apache/sqoop/shell/DisableConnectionFunction.java
> :100644 100644 a87e51f... 8cc4ea3... M  shell/src/main/java/org/apache/sqoop/shell/DisableJobFunction.java
> :100644 100644 f782b16... 0c9f184... M  shell/src/main/java/org/apache/sqoop/shell/EnableConnectionFunction.java
> :100644 100644 20c80dc... de5000b... M  shell/src/main/java/org/apache/sqoop/shell/EnableJobFunction.java
> :100644 100644 1c43dce... f0153b8... M  shell/src/main/java/org/apache/sqoop/shell/SetOptionFunction.java
> :100644 100644 abd9cea... 1aacd7c... M  shell/src/main/java/org/apache/sqoop/shell/SetServerFunction.java
> :100644 100644 b55d5d1... f0720a0... M  shell/src/main/java/org/apache/sqoop/shell/ShowConnectionFunction.java
> :100644 100644 97a4ab2... a9aba71... M  shell/src/main/java/org/apache/sqoop/shell/ShowConnectorFunction.java
> :100644 100644 28497db... c71696c... M  shell/src/main/java/org/apache/sqoop/shell/ShowFrameworkFunction.java
> :100644 100644 da4a4ff... 68bd3b3... M  shell/src/main/java/org/apache/sqoop/shell/ShowJobFunction.java
> :100644 100644 5e3c3ff... d0b05e2... M  shell/src/main/java/org/apache/sqoop/shell/ShowOptionFunction.java
> :100644 100644 ec97e63... 11bff86... M  shell/src/main/java/org/apache/sqoop/shell/ShowServerFunction.java
> :100644 100644 a592a98... a571269... M  shell/src/main/java/org/apache/sqoop/shell/ShowSubmissionFunction.java
> :100644 100644 764b754... 5d6f97f... M  shell/src/main/java/org/apache/sqoop/shell/ShowVersionFunction.java
> :100644 100644 675a796... 371c867... M  shell/src/main/java/org/apache/sqoop/shell/SqoopFunction.java
> :100644 100644 f03e08f... 914454f... M  shell/src/main/java/org/apache/sqoop/shell/StartCommand.java
> :100644 100644 02148de... b8771c4... M  shell/src/main/java/org/apache/sqoop/shell/StartJobFunction.java
> :100644 100644 184892a... ebd4548... M  shell/src/main/java/org/apache/sqoop/shell/StatusCommand.java
> :100644 100644 be0de8c... c61e9b9... M  shell/src/main/java/org/apache/sqoop/shell/StatusJobFunction.java
> :100644 100644 698bca7... 65a454b... M  shell/src/main/java/org/apache/sqoop/shell/StopCommand.java
> :100644 100644 6c0e3c2... ae559cc... M  shell/src/main/java/org/apache/sqoop/shell/StopJobFunction.java
> :100644 100644 9262ccd... 24f31ea... M  shell/src/main/java/org/apache/sqoop/shell/UpdateCommand.java
> :100644 100644 c062fe6... 31d9af9... M  shell/src/main/java/org/apache/sqoop/shell/UpdateConnectionFunction.java
> :100644 100644 da1e0c5... 6f83b91... M  shell/src/main/java/org/apache/sqoop/shell/UpdateJobFunction.java
> :000000 100644 0000000... 6b6e858... A  shell/src/main/java/org/apache/sqoop/shell/utils/ConnectionDynamicFormOptions.java
> :000000 100644 0000000... cc63610... A  shell/src/main/java/org/apache/sqoop/shell/utils/DynamicFormOptions.java
> :100644 100644 9bc0b93... bf0615e... M  shell/src/main/java/org/apache/sqoop/shell/utils/FormFiller.java
> :000000 100644 0000000... 516790a... A  shell/src/main/java/org/apache/sqoop/shell/utils/FormOptions.java
> :000000 100644 0000000... aa118e1... A  shell/src/main/java/org/apache/sqoop/shell/utils/JobDynamicFormOptions.java
> 
> 
> Diffs
> -----
> 
>   shell/src/main/java/org/apache/sqoop/shell/CloneCommand.java 980a9086f433fd3a2228122b6a253a9a1c562315 
>   shell/src/main/java/org/apache/sqoop/shell/CloneConnectionFunction.java 856abaae5a7745b38b1db42cd9283732d1bc0b64 
>   shell/src/main/java/org/apache/sqoop/shell/CloneJobFunction.java 3e2302514d9350affbc9ab199fb4e91355201290 
>   shell/src/main/java/org/apache/sqoop/shell/CreateCommand.java e62ce08ca1ee9168a77b619d21db93b04809b7ec 
>   shell/src/main/java/org/apache/sqoop/shell/CreateConnectionFunction.java 5fbf0a3d8ec13c8e3628525b7d6432d56ddbb0c3 
>   shell/src/main/java/org/apache/sqoop/shell/CreateJobFunction.java 6e4f04bf392f0c062e211fd6709f362ec6e584c3 
>   shell/src/main/java/org/apache/sqoop/shell/DeleteConnectionFunction.java c1237320b3ceec48569c34f4b2a3fa78b4d2c26e 
>   shell/src/main/java/org/apache/sqoop/shell/DeleteJobFunction.java d4095b736d3dcc97487c20cb71c7c460139c2afd 
>   shell/src/main/java/org/apache/sqoop/shell/DisableConnectionFunction.java f1196601857b90442b1c9394902b71d3bd140915 
>   shell/src/main/java/org/apache/sqoop/shell/DisableJobFunction.java a87e51f32226ad6e65b8970d159861e013c6fe9d 
>   shell/src/main/java/org/apache/sqoop/shell/EnableConnectionFunction.java f782b1654203c450b4d22b762dc0f406b560aa29 
>   shell/src/main/java/org/apache/sqoop/shell/EnableJobFunction.java 20c80dca160ddbfa9edb6c5ea5c19fdc3d0bb7c9 
>   shell/src/main/java/org/apache/sqoop/shell/SetOptionFunction.java 1c43dceea2581cea70d0324a63292a0909a402e1 
>   shell/src/main/java/org/apache/sqoop/shell/SetServerFunction.java abd9ceac5a8338dcb1273b0f4732b6bd79962d65 
>   shell/src/main/java/org/apache/sqoop/shell/ShowConnectionFunction.java b55d5d1126b1bd33f4517173257188504557b3f2 
>   shell/src/main/java/org/apache/sqoop/shell/ShowConnectorFunction.java 97a4ab2a2377a2aff564f8ffc18884aa11d8a5e3 
>   shell/src/main/java/org/apache/sqoop/shell/ShowFrameworkFunction.java 28497db27295c4ca89ef4b56986818803296cb10 
>   shell/src/main/java/org/apache/sqoop/shell/ShowJobFunction.java da4a4ff324c32deceadd45d336646eb5bc5a7882 
>   shell/src/main/java/org/apache/sqoop/shell/ShowOptionFunction.java 5e3c3ff9469ee75d6b9d7635de66b033e93c37cd 
>   shell/src/main/java/org/apache/sqoop/shell/ShowServerFunction.java ec97e637937129ff0e2151612f98eceb284ec126 
>   shell/src/main/java/org/apache/sqoop/shell/ShowSubmissionFunction.java a592a9861f01d333ef72f1f96bdf038ab334ea9e 
>   shell/src/main/java/org/apache/sqoop/shell/ShowVersionFunction.java 764b754180500a86501450c90b119813de6cf1f7 
>   shell/src/main/java/org/apache/sqoop/shell/SqoopFunction.java 675a796d7919a3afadea2e14a88f7823d5dced47 
>   shell/src/main/java/org/apache/sqoop/shell/StartCommand.java f03e08fe2178c2b044eef1bfbfa82c9235d8914d 
>   shell/src/main/java/org/apache/sqoop/shell/StartJobFunction.java 02148de497c15caa363c17a54202690a9026a68b 
>   shell/src/main/java/org/apache/sqoop/shell/StatusCommand.java 184892a33b1b26391c7a7eaa8c79cd27f0178c39 
>   shell/src/main/java/org/apache/sqoop/shell/StatusJobFunction.java be0de8c29289a904cfc00361da7fbf9a6c8e7d1c 
>   shell/src/main/java/org/apache/sqoop/shell/StopCommand.java 698bca778d3aa09fa24372a6367986391f9e61d9 
>   shell/src/main/java/org/apache/sqoop/shell/StopJobFunction.java 6c0e3c284b997561fc351a57e35ce2d6c77f6121 
>   shell/src/main/java/org/apache/sqoop/shell/UpdateCommand.java 9262ccd085730c7101179157db9828ac709c267d 
>   shell/src/main/java/org/apache/sqoop/shell/UpdateConnectionFunction.java c062fe6781aebac15c4d59b5690772695d8a10a9 
>   shell/src/main/java/org/apache/sqoop/shell/UpdateJobFunction.java da1e0c570fb43cea439549c0ab5268f67d55996d 
>   shell/src/main/java/org/apache/sqoop/shell/core/ShellError.java e5a99f1cdef7afc4df12e7eed36e1096e2ccd3ea 
>   shell/src/main/java/org/apache/sqoop/shell/utils/ConnectionDynamicFormOptions.java PRE-CREATION 
>   shell/src/main/java/org/apache/sqoop/shell/utils/DynamicFormOptions.java PRE-CREATION 
>   shell/src/main/java/org/apache/sqoop/shell/utils/FormFiller.java 9bc0b93649cb2ae6c84228b52c04b60a36c13b18 
>   shell/src/main/java/org/apache/sqoop/shell/utils/FormOptions.java PRE-CREATION 
>   shell/src/main/java/org/apache/sqoop/shell/utils/JobDynamicFormOptions.java PRE-CREATION 
> 
> Diff: https://reviews.apache.org/r/13181/diff/
> 
> 
> Testing
> -------
> 
> Executed the following commands in a file:
> 
> create connection --cid 1 --name mysql-test --connector-connection-jdbcDriver com.mysql.jdbc.Driver --connector-connection-connectionString jdbc:mysql://hue.ent.cloudera.com/test --connector-connection-username root --connector-connection-password root
> show connection
> create job --xid 1 --type import --name mysql-import-job1 --connector-table-tableName test --connector-table-partitionColumn a --framework-output-storageType 0 --framework-output-outputFormat 0 --framework-output-outputDirectory /tmp/output
> show job
> start job --jid 1
> 
> 
> Thanks,
> 
> Abraham Elmahrek
> 
>


Re: Review Request 13181: SQOOP-773 Sqoop2: Batch execution support for client commands

Posted by Abraham Elmahrek <ab...@cloudera.com>.

> On Oct. 11, 2013, 8:02 p.m., Jarek Cecho wrote:
> > Hi Abe,
> > thank you very much for working on the patch, appreciated! I've tested it in my environment and I do have couple of notes:
> > 
> > I think that we need to ensure that one failed command will end entire script execution. I'm thinking about use case that would do the following:
> > 
> > 1) create connection
> > 2) create job for -^
> > 3) run the job -^
> > 
> > In such situation we need to ensure that we are not creating job for non-existing connection or running non-existing job.

Thanks for the review Jarcec. Would it be appropriate to have executeFunction and its parent callers return a boolean value rather than an Object value? I think an Object value would be useful, but perhaps a more abstracted Object value that we could handle in a follow up jira. i.e. A class that contains a Status and a return object?


> On Oct. 11, 2013, 8:02 p.m., Jarek Cecho wrote:
> > shell/src/main/java/org/apache/sqoop/shell/CloneConnectionFunction.java, lines 107-115
> > <https://reviews.apache.org/r/13181/diff/6/?file=359340#file359340line107>
> >
> >     Can we make this and similar code a bit more verbose?
> >     
> >     I've tried following script:
> >     
> >     create connection --cid 1 --name NameX
> >     
> >     And I got following output:
> >     
> >     [root@bousa-trunk sqoop]# ./bin/sqoop.sh client create.sqoop
> >     Sqoop home directory: /root/sqoop
> >     sqoop:000> create connection --cid 1 --name NameX
> >     Creating connection for connector with id 1
> >     [root@bousa-trunk sqoop]#
> >     
> >     Creating the connection has failed as I did not specified any arguments, but there is no error message which is really confusing.

I see FormFiller#printValidationMessage exists to aid in printing error messages. Can I simply re-use this for the time being? I think a more appropriate response would be to describe what exactly is missing (cf. help), but it seems fine to focus on one thing in this jira? The error output would look like:
Error message: Driver can't be empty 
Error message: JDBC URL can't be empty 


- Abraham


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


On Sept. 27, 2013, 6:30 p.m., Abraham Elmahrek wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/13181/
> -----------------------------------------------------------
> 
> (Updated Sept. 27, 2013, 6:30 p.m.)
> 
> 
> Review request for Sqoop, Hari Shreedharan and Jarek Cecho.
> 
> 
> Bugs: SQOOP-773
>     https://issues.apache.org/jira/browse/SQOOP-773
> 
> 
> Repository: sqoop-sqoop2
> 
> 
> Description
> -------
> 
> commit 080ced16578c1d95015ce3e99b4335beb465861a
> Author: Abraham Elmahrek <ab...@elmahrek.com>
> Date:   Tue Aug 13 14:14:06 2013 -0700
> 
>     SQOOP-773 Sqoop2: Batch execution support for client commands
>     
>     Separated options into two groups: fixed and dynamic options.
>     Fixed options (IE: connector ID) come first and are used to select
>     what options should be used in dynamic options. Dynamic options
>     are automatically created based on forms selected from fixed options.
>     The keys for these options take on the form "<prefix>-<form name>-<input-name>".
> 
> :100644 100644 980a908... a7e7e7d... M  shell/src/main/java/org/apache/sqoop/shell/CloneCommand.java
> :100644 100644 856abaa... 2c2869c... M  shell/src/main/java/org/apache/sqoop/shell/CloneConnectionFunction.java
> :100644 100644 3e23025... dd2eb2b... M  shell/src/main/java/org/apache/sqoop/shell/CloneJobFunction.java
> :100644 100644 e62ce08... 9ad007b... M  shell/src/main/java/org/apache/sqoop/shell/CreateCommand.java
> :100644 100644 5fbf0a3... 973fd53... M  shell/src/main/java/org/apache/sqoop/shell/CreateConnectionFunction.java
> :100644 100644 6e4f04b... f0d4a6c... M  shell/src/main/java/org/apache/sqoop/shell/CreateJobFunction.java
> :100644 100644 c123732... d79516d... M  shell/src/main/java/org/apache/sqoop/shell/DeleteConnectionFunction.java
> :100644 100644 d4095b7... df9a2cc... M  shell/src/main/java/org/apache/sqoop/shell/DeleteJobFunction.java
> :100644 100644 f119660... b5a54b9... M  shell/src/main/java/org/apache/sqoop/shell/DisableConnectionFunction.java
> :100644 100644 a87e51f... 8cc4ea3... M  shell/src/main/java/org/apache/sqoop/shell/DisableJobFunction.java
> :100644 100644 f782b16... 0c9f184... M  shell/src/main/java/org/apache/sqoop/shell/EnableConnectionFunction.java
> :100644 100644 20c80dc... de5000b... M  shell/src/main/java/org/apache/sqoop/shell/EnableJobFunction.java
> :100644 100644 1c43dce... f0153b8... M  shell/src/main/java/org/apache/sqoop/shell/SetOptionFunction.java
> :100644 100644 abd9cea... 1aacd7c... M  shell/src/main/java/org/apache/sqoop/shell/SetServerFunction.java
> :100644 100644 b55d5d1... f0720a0... M  shell/src/main/java/org/apache/sqoop/shell/ShowConnectionFunction.java
> :100644 100644 97a4ab2... a9aba71... M  shell/src/main/java/org/apache/sqoop/shell/ShowConnectorFunction.java
> :100644 100644 28497db... c71696c... M  shell/src/main/java/org/apache/sqoop/shell/ShowFrameworkFunction.java
> :100644 100644 da4a4ff... 68bd3b3... M  shell/src/main/java/org/apache/sqoop/shell/ShowJobFunction.java
> :100644 100644 5e3c3ff... d0b05e2... M  shell/src/main/java/org/apache/sqoop/shell/ShowOptionFunction.java
> :100644 100644 ec97e63... 11bff86... M  shell/src/main/java/org/apache/sqoop/shell/ShowServerFunction.java
> :100644 100644 a592a98... a571269... M  shell/src/main/java/org/apache/sqoop/shell/ShowSubmissionFunction.java
> :100644 100644 764b754... 5d6f97f... M  shell/src/main/java/org/apache/sqoop/shell/ShowVersionFunction.java
> :100644 100644 675a796... 371c867... M  shell/src/main/java/org/apache/sqoop/shell/SqoopFunction.java
> :100644 100644 f03e08f... 914454f... M  shell/src/main/java/org/apache/sqoop/shell/StartCommand.java
> :100644 100644 02148de... b8771c4... M  shell/src/main/java/org/apache/sqoop/shell/StartJobFunction.java
> :100644 100644 184892a... ebd4548... M  shell/src/main/java/org/apache/sqoop/shell/StatusCommand.java
> :100644 100644 be0de8c... c61e9b9... M  shell/src/main/java/org/apache/sqoop/shell/StatusJobFunction.java
> :100644 100644 698bca7... 65a454b... M  shell/src/main/java/org/apache/sqoop/shell/StopCommand.java
> :100644 100644 6c0e3c2... ae559cc... M  shell/src/main/java/org/apache/sqoop/shell/StopJobFunction.java
> :100644 100644 9262ccd... 24f31ea... M  shell/src/main/java/org/apache/sqoop/shell/UpdateCommand.java
> :100644 100644 c062fe6... 31d9af9... M  shell/src/main/java/org/apache/sqoop/shell/UpdateConnectionFunction.java
> :100644 100644 da1e0c5... 6f83b91... M  shell/src/main/java/org/apache/sqoop/shell/UpdateJobFunction.java
> :000000 100644 0000000... 6b6e858... A  shell/src/main/java/org/apache/sqoop/shell/utils/ConnectionDynamicFormOptions.java
> :000000 100644 0000000... cc63610... A  shell/src/main/java/org/apache/sqoop/shell/utils/DynamicFormOptions.java
> :100644 100644 9bc0b93... bf0615e... M  shell/src/main/java/org/apache/sqoop/shell/utils/FormFiller.java
> :000000 100644 0000000... 516790a... A  shell/src/main/java/org/apache/sqoop/shell/utils/FormOptions.java
> :000000 100644 0000000... aa118e1... A  shell/src/main/java/org/apache/sqoop/shell/utils/JobDynamicFormOptions.java
> 
> 
> Diffs
> -----
> 
>   shell/src/main/java/org/apache/sqoop/shell/CloneCommand.java 980a9086f433fd3a2228122b6a253a9a1c562315 
>   shell/src/main/java/org/apache/sqoop/shell/CloneConnectionFunction.java 856abaae5a7745b38b1db42cd9283732d1bc0b64 
>   shell/src/main/java/org/apache/sqoop/shell/CloneJobFunction.java 3e2302514d9350affbc9ab199fb4e91355201290 
>   shell/src/main/java/org/apache/sqoop/shell/CreateCommand.java e62ce08ca1ee9168a77b619d21db93b04809b7ec 
>   shell/src/main/java/org/apache/sqoop/shell/CreateConnectionFunction.java 5fbf0a3d8ec13c8e3628525b7d6432d56ddbb0c3 
>   shell/src/main/java/org/apache/sqoop/shell/CreateJobFunction.java 6e4f04bf392f0c062e211fd6709f362ec6e584c3 
>   shell/src/main/java/org/apache/sqoop/shell/DeleteConnectionFunction.java c1237320b3ceec48569c34f4b2a3fa78b4d2c26e 
>   shell/src/main/java/org/apache/sqoop/shell/DeleteJobFunction.java d4095b736d3dcc97487c20cb71c7c460139c2afd 
>   shell/src/main/java/org/apache/sqoop/shell/DisableConnectionFunction.java f1196601857b90442b1c9394902b71d3bd140915 
>   shell/src/main/java/org/apache/sqoop/shell/DisableJobFunction.java a87e51f32226ad6e65b8970d159861e013c6fe9d 
>   shell/src/main/java/org/apache/sqoop/shell/EnableConnectionFunction.java f782b1654203c450b4d22b762dc0f406b560aa29 
>   shell/src/main/java/org/apache/sqoop/shell/EnableJobFunction.java 20c80dca160ddbfa9edb6c5ea5c19fdc3d0bb7c9 
>   shell/src/main/java/org/apache/sqoop/shell/SetOptionFunction.java 1c43dceea2581cea70d0324a63292a0909a402e1 
>   shell/src/main/java/org/apache/sqoop/shell/SetServerFunction.java abd9ceac5a8338dcb1273b0f4732b6bd79962d65 
>   shell/src/main/java/org/apache/sqoop/shell/ShowConnectionFunction.java b55d5d1126b1bd33f4517173257188504557b3f2 
>   shell/src/main/java/org/apache/sqoop/shell/ShowConnectorFunction.java 97a4ab2a2377a2aff564f8ffc18884aa11d8a5e3 
>   shell/src/main/java/org/apache/sqoop/shell/ShowFrameworkFunction.java 28497db27295c4ca89ef4b56986818803296cb10 
>   shell/src/main/java/org/apache/sqoop/shell/ShowJobFunction.java da4a4ff324c32deceadd45d336646eb5bc5a7882 
>   shell/src/main/java/org/apache/sqoop/shell/ShowOptionFunction.java 5e3c3ff9469ee75d6b9d7635de66b033e93c37cd 
>   shell/src/main/java/org/apache/sqoop/shell/ShowServerFunction.java ec97e637937129ff0e2151612f98eceb284ec126 
>   shell/src/main/java/org/apache/sqoop/shell/ShowSubmissionFunction.java a592a9861f01d333ef72f1f96bdf038ab334ea9e 
>   shell/src/main/java/org/apache/sqoop/shell/ShowVersionFunction.java 764b754180500a86501450c90b119813de6cf1f7 
>   shell/src/main/java/org/apache/sqoop/shell/SqoopFunction.java 675a796d7919a3afadea2e14a88f7823d5dced47 
>   shell/src/main/java/org/apache/sqoop/shell/StartCommand.java f03e08fe2178c2b044eef1bfbfa82c9235d8914d 
>   shell/src/main/java/org/apache/sqoop/shell/StartJobFunction.java 02148de497c15caa363c17a54202690a9026a68b 
>   shell/src/main/java/org/apache/sqoop/shell/StatusCommand.java 184892a33b1b26391c7a7eaa8c79cd27f0178c39 
>   shell/src/main/java/org/apache/sqoop/shell/StatusJobFunction.java be0de8c29289a904cfc00361da7fbf9a6c8e7d1c 
>   shell/src/main/java/org/apache/sqoop/shell/StopCommand.java 698bca778d3aa09fa24372a6367986391f9e61d9 
>   shell/src/main/java/org/apache/sqoop/shell/StopJobFunction.java 6c0e3c284b997561fc351a57e35ce2d6c77f6121 
>   shell/src/main/java/org/apache/sqoop/shell/UpdateCommand.java 9262ccd085730c7101179157db9828ac709c267d 
>   shell/src/main/java/org/apache/sqoop/shell/UpdateConnectionFunction.java c062fe6781aebac15c4d59b5690772695d8a10a9 
>   shell/src/main/java/org/apache/sqoop/shell/UpdateJobFunction.java da1e0c570fb43cea439549c0ab5268f67d55996d 
>   shell/src/main/java/org/apache/sqoop/shell/core/ShellError.java e5a99f1cdef7afc4df12e7eed36e1096e2ccd3ea 
>   shell/src/main/java/org/apache/sqoop/shell/utils/ConnectionDynamicFormOptions.java PRE-CREATION 
>   shell/src/main/java/org/apache/sqoop/shell/utils/DynamicFormOptions.java PRE-CREATION 
>   shell/src/main/java/org/apache/sqoop/shell/utils/FormFiller.java 9bc0b93649cb2ae6c84228b52c04b60a36c13b18 
>   shell/src/main/java/org/apache/sqoop/shell/utils/FormOptions.java PRE-CREATION 
>   shell/src/main/java/org/apache/sqoop/shell/utils/JobDynamicFormOptions.java PRE-CREATION 
> 
> Diff: https://reviews.apache.org/r/13181/diff/
> 
> 
> Testing
> -------
> 
> Executed the following commands in a file:
> 
> create connection --cid 1 --name mysql-test --connector-connection-jdbcDriver com.mysql.jdbc.Driver --connector-connection-connectionString jdbc:mysql://hue.ent.cloudera.com/test --connector-connection-username root --connector-connection-password root
> show connection
> create job --xid 1 --type import --name mysql-import-job1 --connector-table-tableName test --connector-table-partitionColumn a --framework-output-storageType 0 --framework-output-outputFormat 0 --framework-output-outputDirectory /tmp/output
> show job
> start job --jid 1
> 
> 
> Thanks,
> 
> Abraham Elmahrek
> 
>


Re: Review Request 13181: SQOOP-773 Sqoop2: Batch execution support for client commands

Posted by Jarek Cecho <ja...@apache.org>.

> On Oct. 11, 2013, 8:02 p.m., Jarek Cecho wrote:
> > Hi Abe,
> > thank you very much for working on the patch, appreciated! I've tested it in my environment and I do have couple of notes:
> > 
> > I think that we need to ensure that one failed command will end entire script execution. I'm thinking about use case that would do the following:
> > 
> > 1) create connection
> > 2) create job for -^
> > 3) run the job -^
> > 
> > In such situation we need to ensure that we are not creating job for non-existing connection or running non-existing job.
> 
> Abraham Elmahrek wrote:
>     Thanks for the review Jarcec. Would it be appropriate to have executeFunction and its parent callers return a boolean value rather than an Object value? I think an Object value would be useful, but perhaps a more abstracted Object value that we could handle in a follow up jira. i.e. A class that contains a Status and a return object?

The reason why the executeFunction() methods are returning Object instead of boolean is that it's expected by Groovy shell. Having said that I would prefer to return what is expected from us, rather then limit it to a boolean value only.


> On Oct. 11, 2013, 8:02 p.m., Jarek Cecho wrote:
> > shell/src/main/java/org/apache/sqoop/shell/CloneConnectionFunction.java, lines 107-115
> > <https://reviews.apache.org/r/13181/diff/6/?file=359340#file359340line107>
> >
> >     Can we make this and similar code a bit more verbose?
> >     
> >     I've tried following script:
> >     
> >     create connection --cid 1 --name NameX
> >     
> >     And I got following output:
> >     
> >     [root@bousa-trunk sqoop]# ./bin/sqoop.sh client create.sqoop
> >     Sqoop home directory: /root/sqoop
> >     sqoop:000> create connection --cid 1 --name NameX
> >     Creating connection for connector with id 1
> >     [root@bousa-trunk sqoop]#
> >     
> >     Creating the connection has failed as I did not specified any arguments, but there is no error message which is really confusing.
> 
> Abraham Elmahrek wrote:
>     I see FormFiller#printValidationMessage exists to aid in printing error messages. Can I simply re-use this for the time being? I think a more appropriate response would be to describe what exactly is missing (cf. help), but it seems fine to focus on one thing in this jira? The error output would look like:
>     Error message: Driver can't be empty 
>     Error message: JDBC URL can't be empty

Yeah, that seems good, let's try to reuse that!


- Jarek


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


On Sept. 27, 2013, 6:30 p.m., Abraham Elmahrek wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/13181/
> -----------------------------------------------------------
> 
> (Updated Sept. 27, 2013, 6:30 p.m.)
> 
> 
> Review request for Sqoop, Hari Shreedharan and Jarek Cecho.
> 
> 
> Bugs: SQOOP-773
>     https://issues.apache.org/jira/browse/SQOOP-773
> 
> 
> Repository: sqoop-sqoop2
> 
> 
> Description
> -------
> 
> commit 080ced16578c1d95015ce3e99b4335beb465861a
> Author: Abraham Elmahrek <ab...@elmahrek.com>
> Date:   Tue Aug 13 14:14:06 2013 -0700
> 
>     SQOOP-773 Sqoop2: Batch execution support for client commands
>     
>     Separated options into two groups: fixed and dynamic options.
>     Fixed options (IE: connector ID) come first and are used to select
>     what options should be used in dynamic options. Dynamic options
>     are automatically created based on forms selected from fixed options.
>     The keys for these options take on the form "<prefix>-<form name>-<input-name>".
> 
> :100644 100644 980a908... a7e7e7d... M  shell/src/main/java/org/apache/sqoop/shell/CloneCommand.java
> :100644 100644 856abaa... 2c2869c... M  shell/src/main/java/org/apache/sqoop/shell/CloneConnectionFunction.java
> :100644 100644 3e23025... dd2eb2b... M  shell/src/main/java/org/apache/sqoop/shell/CloneJobFunction.java
> :100644 100644 e62ce08... 9ad007b... M  shell/src/main/java/org/apache/sqoop/shell/CreateCommand.java
> :100644 100644 5fbf0a3... 973fd53... M  shell/src/main/java/org/apache/sqoop/shell/CreateConnectionFunction.java
> :100644 100644 6e4f04b... f0d4a6c... M  shell/src/main/java/org/apache/sqoop/shell/CreateJobFunction.java
> :100644 100644 c123732... d79516d... M  shell/src/main/java/org/apache/sqoop/shell/DeleteConnectionFunction.java
> :100644 100644 d4095b7... df9a2cc... M  shell/src/main/java/org/apache/sqoop/shell/DeleteJobFunction.java
> :100644 100644 f119660... b5a54b9... M  shell/src/main/java/org/apache/sqoop/shell/DisableConnectionFunction.java
> :100644 100644 a87e51f... 8cc4ea3... M  shell/src/main/java/org/apache/sqoop/shell/DisableJobFunction.java
> :100644 100644 f782b16... 0c9f184... M  shell/src/main/java/org/apache/sqoop/shell/EnableConnectionFunction.java
> :100644 100644 20c80dc... de5000b... M  shell/src/main/java/org/apache/sqoop/shell/EnableJobFunction.java
> :100644 100644 1c43dce... f0153b8... M  shell/src/main/java/org/apache/sqoop/shell/SetOptionFunction.java
> :100644 100644 abd9cea... 1aacd7c... M  shell/src/main/java/org/apache/sqoop/shell/SetServerFunction.java
> :100644 100644 b55d5d1... f0720a0... M  shell/src/main/java/org/apache/sqoop/shell/ShowConnectionFunction.java
> :100644 100644 97a4ab2... a9aba71... M  shell/src/main/java/org/apache/sqoop/shell/ShowConnectorFunction.java
> :100644 100644 28497db... c71696c... M  shell/src/main/java/org/apache/sqoop/shell/ShowFrameworkFunction.java
> :100644 100644 da4a4ff... 68bd3b3... M  shell/src/main/java/org/apache/sqoop/shell/ShowJobFunction.java
> :100644 100644 5e3c3ff... d0b05e2... M  shell/src/main/java/org/apache/sqoop/shell/ShowOptionFunction.java
> :100644 100644 ec97e63... 11bff86... M  shell/src/main/java/org/apache/sqoop/shell/ShowServerFunction.java
> :100644 100644 a592a98... a571269... M  shell/src/main/java/org/apache/sqoop/shell/ShowSubmissionFunction.java
> :100644 100644 764b754... 5d6f97f... M  shell/src/main/java/org/apache/sqoop/shell/ShowVersionFunction.java
> :100644 100644 675a796... 371c867... M  shell/src/main/java/org/apache/sqoop/shell/SqoopFunction.java
> :100644 100644 f03e08f... 914454f... M  shell/src/main/java/org/apache/sqoop/shell/StartCommand.java
> :100644 100644 02148de... b8771c4... M  shell/src/main/java/org/apache/sqoop/shell/StartJobFunction.java
> :100644 100644 184892a... ebd4548... M  shell/src/main/java/org/apache/sqoop/shell/StatusCommand.java
> :100644 100644 be0de8c... c61e9b9... M  shell/src/main/java/org/apache/sqoop/shell/StatusJobFunction.java
> :100644 100644 698bca7... 65a454b... M  shell/src/main/java/org/apache/sqoop/shell/StopCommand.java
> :100644 100644 6c0e3c2... ae559cc... M  shell/src/main/java/org/apache/sqoop/shell/StopJobFunction.java
> :100644 100644 9262ccd... 24f31ea... M  shell/src/main/java/org/apache/sqoop/shell/UpdateCommand.java
> :100644 100644 c062fe6... 31d9af9... M  shell/src/main/java/org/apache/sqoop/shell/UpdateConnectionFunction.java
> :100644 100644 da1e0c5... 6f83b91... M  shell/src/main/java/org/apache/sqoop/shell/UpdateJobFunction.java
> :000000 100644 0000000... 6b6e858... A  shell/src/main/java/org/apache/sqoop/shell/utils/ConnectionDynamicFormOptions.java
> :000000 100644 0000000... cc63610... A  shell/src/main/java/org/apache/sqoop/shell/utils/DynamicFormOptions.java
> :100644 100644 9bc0b93... bf0615e... M  shell/src/main/java/org/apache/sqoop/shell/utils/FormFiller.java
> :000000 100644 0000000... 516790a... A  shell/src/main/java/org/apache/sqoop/shell/utils/FormOptions.java
> :000000 100644 0000000... aa118e1... A  shell/src/main/java/org/apache/sqoop/shell/utils/JobDynamicFormOptions.java
> 
> 
> Diffs
> -----
> 
>   shell/src/main/java/org/apache/sqoop/shell/CloneCommand.java 980a9086f433fd3a2228122b6a253a9a1c562315 
>   shell/src/main/java/org/apache/sqoop/shell/CloneConnectionFunction.java 856abaae5a7745b38b1db42cd9283732d1bc0b64 
>   shell/src/main/java/org/apache/sqoop/shell/CloneJobFunction.java 3e2302514d9350affbc9ab199fb4e91355201290 
>   shell/src/main/java/org/apache/sqoop/shell/CreateCommand.java e62ce08ca1ee9168a77b619d21db93b04809b7ec 
>   shell/src/main/java/org/apache/sqoop/shell/CreateConnectionFunction.java 5fbf0a3d8ec13c8e3628525b7d6432d56ddbb0c3 
>   shell/src/main/java/org/apache/sqoop/shell/CreateJobFunction.java 6e4f04bf392f0c062e211fd6709f362ec6e584c3 
>   shell/src/main/java/org/apache/sqoop/shell/DeleteConnectionFunction.java c1237320b3ceec48569c34f4b2a3fa78b4d2c26e 
>   shell/src/main/java/org/apache/sqoop/shell/DeleteJobFunction.java d4095b736d3dcc97487c20cb71c7c460139c2afd 
>   shell/src/main/java/org/apache/sqoop/shell/DisableConnectionFunction.java f1196601857b90442b1c9394902b71d3bd140915 
>   shell/src/main/java/org/apache/sqoop/shell/DisableJobFunction.java a87e51f32226ad6e65b8970d159861e013c6fe9d 
>   shell/src/main/java/org/apache/sqoop/shell/EnableConnectionFunction.java f782b1654203c450b4d22b762dc0f406b560aa29 
>   shell/src/main/java/org/apache/sqoop/shell/EnableJobFunction.java 20c80dca160ddbfa9edb6c5ea5c19fdc3d0bb7c9 
>   shell/src/main/java/org/apache/sqoop/shell/SetOptionFunction.java 1c43dceea2581cea70d0324a63292a0909a402e1 
>   shell/src/main/java/org/apache/sqoop/shell/SetServerFunction.java abd9ceac5a8338dcb1273b0f4732b6bd79962d65 
>   shell/src/main/java/org/apache/sqoop/shell/ShowConnectionFunction.java b55d5d1126b1bd33f4517173257188504557b3f2 
>   shell/src/main/java/org/apache/sqoop/shell/ShowConnectorFunction.java 97a4ab2a2377a2aff564f8ffc18884aa11d8a5e3 
>   shell/src/main/java/org/apache/sqoop/shell/ShowFrameworkFunction.java 28497db27295c4ca89ef4b56986818803296cb10 
>   shell/src/main/java/org/apache/sqoop/shell/ShowJobFunction.java da4a4ff324c32deceadd45d336646eb5bc5a7882 
>   shell/src/main/java/org/apache/sqoop/shell/ShowOptionFunction.java 5e3c3ff9469ee75d6b9d7635de66b033e93c37cd 
>   shell/src/main/java/org/apache/sqoop/shell/ShowServerFunction.java ec97e637937129ff0e2151612f98eceb284ec126 
>   shell/src/main/java/org/apache/sqoop/shell/ShowSubmissionFunction.java a592a9861f01d333ef72f1f96bdf038ab334ea9e 
>   shell/src/main/java/org/apache/sqoop/shell/ShowVersionFunction.java 764b754180500a86501450c90b119813de6cf1f7 
>   shell/src/main/java/org/apache/sqoop/shell/SqoopFunction.java 675a796d7919a3afadea2e14a88f7823d5dced47 
>   shell/src/main/java/org/apache/sqoop/shell/StartCommand.java f03e08fe2178c2b044eef1bfbfa82c9235d8914d 
>   shell/src/main/java/org/apache/sqoop/shell/StartJobFunction.java 02148de497c15caa363c17a54202690a9026a68b 
>   shell/src/main/java/org/apache/sqoop/shell/StatusCommand.java 184892a33b1b26391c7a7eaa8c79cd27f0178c39 
>   shell/src/main/java/org/apache/sqoop/shell/StatusJobFunction.java be0de8c29289a904cfc00361da7fbf9a6c8e7d1c 
>   shell/src/main/java/org/apache/sqoop/shell/StopCommand.java 698bca778d3aa09fa24372a6367986391f9e61d9 
>   shell/src/main/java/org/apache/sqoop/shell/StopJobFunction.java 6c0e3c284b997561fc351a57e35ce2d6c77f6121 
>   shell/src/main/java/org/apache/sqoop/shell/UpdateCommand.java 9262ccd085730c7101179157db9828ac709c267d 
>   shell/src/main/java/org/apache/sqoop/shell/UpdateConnectionFunction.java c062fe6781aebac15c4d59b5690772695d8a10a9 
>   shell/src/main/java/org/apache/sqoop/shell/UpdateJobFunction.java da1e0c570fb43cea439549c0ab5268f67d55996d 
>   shell/src/main/java/org/apache/sqoop/shell/core/ShellError.java e5a99f1cdef7afc4df12e7eed36e1096e2ccd3ea 
>   shell/src/main/java/org/apache/sqoop/shell/utils/ConnectionDynamicFormOptions.java PRE-CREATION 
>   shell/src/main/java/org/apache/sqoop/shell/utils/DynamicFormOptions.java PRE-CREATION 
>   shell/src/main/java/org/apache/sqoop/shell/utils/FormFiller.java 9bc0b93649cb2ae6c84228b52c04b60a36c13b18 
>   shell/src/main/java/org/apache/sqoop/shell/utils/FormOptions.java PRE-CREATION 
>   shell/src/main/java/org/apache/sqoop/shell/utils/JobDynamicFormOptions.java PRE-CREATION 
> 
> Diff: https://reviews.apache.org/r/13181/diff/
> 
> 
> Testing
> -------
> 
> Executed the following commands in a file:
> 
> create connection --cid 1 --name mysql-test --connector-connection-jdbcDriver com.mysql.jdbc.Driver --connector-connection-connectionString jdbc:mysql://hue.ent.cloudera.com/test --connector-connection-username root --connector-connection-password root
> show connection
> create job --xid 1 --type import --name mysql-import-job1 --connector-table-tableName test --connector-table-partitionColumn a --framework-output-storageType 0 --framework-output-outputFormat 0 --framework-output-outputDirectory /tmp/output
> show job
> start job --jid 1
> 
> 
> Thanks,
> 
> Abraham Elmahrek
> 
>


Re: Review Request 13181: SQOOP-773 Sqoop2: Batch execution support for client commands

Posted by Jarek Cecho <ja...@apache.org>.

> On Oct. 11, 2013, 8:02 p.m., Jarek Cecho wrote:
> > Hi Abe,
> > thank you very much for working on the patch, appreciated! I've tested it in my environment and I do have couple of notes:
> > 
> > I think that we need to ensure that one failed command will end entire script execution. I'm thinking about use case that would do the following:
> > 
> > 1) create connection
> > 2) create job for -^
> > 3) run the job -^
> > 
> > In such situation we need to ensure that we are not creating job for non-existing connection or running non-existing job.
> 
> Abraham Elmahrek wrote:
>     Thanks for the review Jarcec. Would it be appropriate to have executeFunction and its parent callers return a boolean value rather than an Object value? I think an Object value would be useful, but perhaps a more abstracted Object value that we could handle in a follow up jira. i.e. A class that contains a Status and a return object?
> 
> Jarek Cecho wrote:
>     The reason why the executeFunction() methods are returning Object instead of boolean is that it's expected by Groovy shell. Having said that I would prefer to return what is expected from us, rather then limit it to a boolean value only.
> 
> Abraham Elmahrek wrote:
>     Jarcec, I've created SQOOP-1217 to follow up. For now we can return an Object, but since the result will normally be null, the script will stop executing after one command. To improve this, in this review, I'll return a non-null object to indicate execution should progress and a null value to indicate execution should halt. Then, in SQOOP-1217, we can follow through with a different kind of object that would encapsulate information on whether the batch script should continue, or stop, and the result object itself.

Sounds good to me, thank you for following on this!


- Jarek


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


On Oct. 14, 2013, 7:05 p.m., Abraham Elmahrek wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/13181/
> -----------------------------------------------------------
> 
> (Updated Oct. 14, 2013, 7:05 p.m.)
> 
> 
> Review request for Sqoop, Hari Shreedharan and Jarek Cecho.
> 
> 
> Bugs: SQOOP-773
>     https://issues.apache.org/jira/browse/SQOOP-773
> 
> 
> Repository: sqoop-sqoop2
> 
> 
> Description
> -------
> 
> commit 080ced16578c1d95015ce3e99b4335beb465861a
> Author: Abraham Elmahrek <ab...@elmahrek.com>
> Date:   Tue Aug 13 14:14:06 2013 -0700
> 
>     SQOOP-773 Sqoop2: Batch execution support for client commands
>     
>     Separated options into two groups: fixed and dynamic options.
>     Fixed options (IE: connector ID) come first and are used to select
>     what options should be used in dynamic options. Dynamic options
>     are automatically created based on forms selected from fixed options.
>     The keys for these options take on the form "<prefix>-<form name>-<input-name>".
> 
> :100644 100644 980a908... a7e7e7d... M  shell/src/main/java/org/apache/sqoop/shell/CloneCommand.java
> :100644 100644 856abaa... 2c2869c... M  shell/src/main/java/org/apache/sqoop/shell/CloneConnectionFunction.java
> :100644 100644 3e23025... dd2eb2b... M  shell/src/main/java/org/apache/sqoop/shell/CloneJobFunction.java
> :100644 100644 e62ce08... 9ad007b... M  shell/src/main/java/org/apache/sqoop/shell/CreateCommand.java
> :100644 100644 5fbf0a3... 973fd53... M  shell/src/main/java/org/apache/sqoop/shell/CreateConnectionFunction.java
> :100644 100644 6e4f04b... f0d4a6c... M  shell/src/main/java/org/apache/sqoop/shell/CreateJobFunction.java
> :100644 100644 c123732... d79516d... M  shell/src/main/java/org/apache/sqoop/shell/DeleteConnectionFunction.java
> :100644 100644 d4095b7... df9a2cc... M  shell/src/main/java/org/apache/sqoop/shell/DeleteJobFunction.java
> :100644 100644 f119660... b5a54b9... M  shell/src/main/java/org/apache/sqoop/shell/DisableConnectionFunction.java
> :100644 100644 a87e51f... 8cc4ea3... M  shell/src/main/java/org/apache/sqoop/shell/DisableJobFunction.java
> :100644 100644 f782b16... 0c9f184... M  shell/src/main/java/org/apache/sqoop/shell/EnableConnectionFunction.java
> :100644 100644 20c80dc... de5000b... M  shell/src/main/java/org/apache/sqoop/shell/EnableJobFunction.java
> :100644 100644 1c43dce... f0153b8... M  shell/src/main/java/org/apache/sqoop/shell/SetOptionFunction.java
> :100644 100644 abd9cea... 1aacd7c... M  shell/src/main/java/org/apache/sqoop/shell/SetServerFunction.java
> :100644 100644 b55d5d1... f0720a0... M  shell/src/main/java/org/apache/sqoop/shell/ShowConnectionFunction.java
> :100644 100644 97a4ab2... a9aba71... M  shell/src/main/java/org/apache/sqoop/shell/ShowConnectorFunction.java
> :100644 100644 28497db... c71696c... M  shell/src/main/java/org/apache/sqoop/shell/ShowFrameworkFunction.java
> :100644 100644 da4a4ff... 68bd3b3... M  shell/src/main/java/org/apache/sqoop/shell/ShowJobFunction.java
> :100644 100644 5e3c3ff... d0b05e2... M  shell/src/main/java/org/apache/sqoop/shell/ShowOptionFunction.java
> :100644 100644 ec97e63... 11bff86... M  shell/src/main/java/org/apache/sqoop/shell/ShowServerFunction.java
> :100644 100644 a592a98... a571269... M  shell/src/main/java/org/apache/sqoop/shell/ShowSubmissionFunction.java
> :100644 100644 764b754... 5d6f97f... M  shell/src/main/java/org/apache/sqoop/shell/ShowVersionFunction.java
> :100644 100644 675a796... 371c867... M  shell/src/main/java/org/apache/sqoop/shell/SqoopFunction.java
> :100644 100644 f03e08f... 914454f... M  shell/src/main/java/org/apache/sqoop/shell/StartCommand.java
> :100644 100644 02148de... b8771c4... M  shell/src/main/java/org/apache/sqoop/shell/StartJobFunction.java
> :100644 100644 184892a... ebd4548... M  shell/src/main/java/org/apache/sqoop/shell/StatusCommand.java
> :100644 100644 be0de8c... c61e9b9... M  shell/src/main/java/org/apache/sqoop/shell/StatusJobFunction.java
> :100644 100644 698bca7... 65a454b... M  shell/src/main/java/org/apache/sqoop/shell/StopCommand.java
> :100644 100644 6c0e3c2... ae559cc... M  shell/src/main/java/org/apache/sqoop/shell/StopJobFunction.java
> :100644 100644 9262ccd... 24f31ea... M  shell/src/main/java/org/apache/sqoop/shell/UpdateCommand.java
> :100644 100644 c062fe6... 31d9af9... M  shell/src/main/java/org/apache/sqoop/shell/UpdateConnectionFunction.java
> :100644 100644 da1e0c5... 6f83b91... M  shell/src/main/java/org/apache/sqoop/shell/UpdateJobFunction.java
> :000000 100644 0000000... 6b6e858... A  shell/src/main/java/org/apache/sqoop/shell/utils/ConnectionDynamicFormOptions.java
> :000000 100644 0000000... cc63610... A  shell/src/main/java/org/apache/sqoop/shell/utils/DynamicFormOptions.java
> :100644 100644 9bc0b93... bf0615e... M  shell/src/main/java/org/apache/sqoop/shell/utils/FormFiller.java
> :000000 100644 0000000... 516790a... A  shell/src/main/java/org/apache/sqoop/shell/utils/FormOptions.java
> :000000 100644 0000000... aa118e1... A  shell/src/main/java/org/apache/sqoop/shell/utils/JobDynamicFormOptions.java
> 
> 
> Diffs
> -----
> 
>   shell/src/main/java/org/apache/sqoop/shell/CloneCommand.java 980a9086f433fd3a2228122b6a253a9a1c562315 
>   shell/src/main/java/org/apache/sqoop/shell/CloneConnectionFunction.java 856abaae5a7745b38b1db42cd9283732d1bc0b64 
>   shell/src/main/java/org/apache/sqoop/shell/CloneJobFunction.java 3e2302514d9350affbc9ab199fb4e91355201290 
>   shell/src/main/java/org/apache/sqoop/shell/CreateCommand.java e62ce08ca1ee9168a77b619d21db93b04809b7ec 
>   shell/src/main/java/org/apache/sqoop/shell/CreateConnectionFunction.java 5fbf0a3d8ec13c8e3628525b7d6432d56ddbb0c3 
>   shell/src/main/java/org/apache/sqoop/shell/CreateJobFunction.java 6e4f04bf392f0c062e211fd6709f362ec6e584c3 
>   shell/src/main/java/org/apache/sqoop/shell/DeleteConnectionFunction.java c1237320b3ceec48569c34f4b2a3fa78b4d2c26e 
>   shell/src/main/java/org/apache/sqoop/shell/DeleteJobFunction.java d4095b736d3dcc97487c20cb71c7c460139c2afd 
>   shell/src/main/java/org/apache/sqoop/shell/DisableConnectionFunction.java f1196601857b90442b1c9394902b71d3bd140915 
>   shell/src/main/java/org/apache/sqoop/shell/DisableJobFunction.java a87e51f32226ad6e65b8970d159861e013c6fe9d 
>   shell/src/main/java/org/apache/sqoop/shell/EnableConnectionFunction.java f782b1654203c450b4d22b762dc0f406b560aa29 
>   shell/src/main/java/org/apache/sqoop/shell/EnableJobFunction.java 20c80dca160ddbfa9edb6c5ea5c19fdc3d0bb7c9 
>   shell/src/main/java/org/apache/sqoop/shell/SetOptionFunction.java 1c43dceea2581cea70d0324a63292a0909a402e1 
>   shell/src/main/java/org/apache/sqoop/shell/SetServerFunction.java abd9ceac5a8338dcb1273b0f4732b6bd79962d65 
>   shell/src/main/java/org/apache/sqoop/shell/ShowConnectionFunction.java b55d5d1126b1bd33f4517173257188504557b3f2 
>   shell/src/main/java/org/apache/sqoop/shell/ShowConnectorFunction.java 97a4ab2a2377a2aff564f8ffc18884aa11d8a5e3 
>   shell/src/main/java/org/apache/sqoop/shell/ShowFrameworkFunction.java 28497db27295c4ca89ef4b56986818803296cb10 
>   shell/src/main/java/org/apache/sqoop/shell/ShowJobFunction.java da4a4ff324c32deceadd45d336646eb5bc5a7882 
>   shell/src/main/java/org/apache/sqoop/shell/ShowOptionFunction.java 5e3c3ff9469ee75d6b9d7635de66b033e93c37cd 
>   shell/src/main/java/org/apache/sqoop/shell/ShowServerFunction.java ec97e637937129ff0e2151612f98eceb284ec126 
>   shell/src/main/java/org/apache/sqoop/shell/ShowSubmissionFunction.java a592a9861f01d333ef72f1f96bdf038ab334ea9e 
>   shell/src/main/java/org/apache/sqoop/shell/ShowVersionFunction.java 764b754180500a86501450c90b119813de6cf1f7 
>   shell/src/main/java/org/apache/sqoop/shell/SqoopFunction.java 675a796d7919a3afadea2e14a88f7823d5dced47 
>   shell/src/main/java/org/apache/sqoop/shell/SqoopShell.java 900c0e57b76509dccb835051a9336bd5f1f8daa9 
>   shell/src/main/java/org/apache/sqoop/shell/StartCommand.java f03e08fe2178c2b044eef1bfbfa82c9235d8914d 
>   shell/src/main/java/org/apache/sqoop/shell/StartJobFunction.java 02148de497c15caa363c17a54202690a9026a68b 
>   shell/src/main/java/org/apache/sqoop/shell/StatusCommand.java 184892a33b1b26391c7a7eaa8c79cd27f0178c39 
>   shell/src/main/java/org/apache/sqoop/shell/StatusJobFunction.java be0de8c29289a904cfc00361da7fbf9a6c8e7d1c 
>   shell/src/main/java/org/apache/sqoop/shell/StopCommand.java 698bca778d3aa09fa24372a6367986391f9e61d9 
>   shell/src/main/java/org/apache/sqoop/shell/StopJobFunction.java 6c0e3c284b997561fc351a57e35ce2d6c77f6121 
>   shell/src/main/java/org/apache/sqoop/shell/UpdateCommand.java 9262ccd085730c7101179157db9828ac709c267d 
>   shell/src/main/java/org/apache/sqoop/shell/UpdateConnectionFunction.java c062fe6781aebac15c4d59b5690772695d8a10a9 
>   shell/src/main/java/org/apache/sqoop/shell/UpdateJobFunction.java da1e0c570fb43cea439549c0ab5268f67d55996d 
>   shell/src/main/java/org/apache/sqoop/shell/core/ShellError.java e5a99f1cdef7afc4df12e7eed36e1096e2ccd3ea 
>   shell/src/main/java/org/apache/sqoop/shell/utils/ConnectionDynamicFormOptions.java PRE-CREATION 
>   shell/src/main/java/org/apache/sqoop/shell/utils/DynamicFormOptions.java PRE-CREATION 
>   shell/src/main/java/org/apache/sqoop/shell/utils/FormFiller.java 9bc0b93649cb2ae6c84228b52c04b60a36c13b18 
>   shell/src/main/java/org/apache/sqoop/shell/utils/FormOptions.java PRE-CREATION 
>   shell/src/main/java/org/apache/sqoop/shell/utils/JobDynamicFormOptions.java PRE-CREATION 
> 
> Diff: https://reviews.apache.org/r/13181/diff/
> 
> 
> Testing
> -------
> 
> Executed the following commands in a file:
> 
> create connection --cid 1 --name mysql-test --connector-connection-jdbcDriver com.mysql.jdbc.Driver --connector-connection-connectionString jdbc:mysql://hue.ent.cloudera.com/test --connector-connection-username root --connector-connection-password root
> show connection
> create job --xid 1 --type import --name mysql-import-job1 --connector-table-tableName test --connector-table-partitionColumn a --framework-output-storageType HDFS --framework-output-outputFormat TEXT_FILE --framework-output-outputDirectory /tmp/output
> show job
> start job --jid 1
> 
> Also executed the following commands in a file:
> create connection --cid 1
> create connection --cid 1
> 
> Verified erroneous commands stop the execution of the script. Verified statuses being returned will be visible on the screen when executing batch script.
> 
> 
> Thanks,
> 
> Abraham Elmahrek
> 
>