This is an automated email from the ASF dual-hosted git repository.

zhongjiajie pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git


The following commit(s) were added to refs/heads/dev by this push:
     new aaf2042ec4 [python] Add missing doc about config and connect remote 
server (#9443)
aaf2042ec4 is described below

commit aaf2042ec46ced05e4d0d8f98ee8b0192b78a0f5
Author: Jiajie Zhong <[email protected]>
AuthorDate: Tue Apr 12 09:42:28 2022 +0800

    [python] Add missing doc about config and connect remote server (#9443)
    
    which includes `configuration`, `run example`
    `how to connect remote server`
    
    close: #9286, #9284, #8917
---
 .../pydolphinscheduler/docs/source/config.rst      | 96 ++++++++++++++++++++++
 .../docs/source/{ => howto}/index.rst              | 27 ++----
 .../docs/source/howto/remote-submit.rst            | 51 ++++++++++++
 .../pydolphinscheduler/docs/source/index.rst       |  2 +
 .../pydolphinscheduler/docs/source/start.rst       | 32 ++++++++
 5 files changed, 186 insertions(+), 22 deletions(-)

diff --git a/dolphinscheduler-python/pydolphinscheduler/docs/source/config.rst 
b/dolphinscheduler-python/pydolphinscheduler/docs/source/config.rst
new file mode 100644
index 0000000000..bfba2ecfde
--- /dev/null
+++ b/dolphinscheduler-python/pydolphinscheduler/docs/source/config.rst
@@ -0,0 +1,96 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+   distributed with this work for additional information
+   regarding copyright ownership.  The ASF licenses this file
+   to you under the Apache License, Version 2.0 (the
+   "License"); you may not use this file except in compliance
+   with the License.  You may obtain a copy of the License at
+
+..   http://www.apache.org/licenses/LICENSE-2.0
+
+.. Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied.  See the License for the
+   specific language governing permissions and limitations
+   under the License.
+
+Configuration
+=============
+
+Export Configuration File
+-------------------------
+
+pydolphinscheduler allows you to change the built-in configurations via CLI or 
editor you like. pydolphinscheduler
+integrated built-in configurations in its package, but you could also export 
it locally by CLI
+
+.. code-block:: bash
+
+    $ pydolphinscheduler config --init
+
+And it will create a new YAML file in the path 
`~/pydolphinscheduler/config.yaml` by default. If you want to export
+it to another path, you should set `PYDOLPHINSCHEDULER_HOME` before you run 
command :code:`pydolphinscheduler config --init`.
+
+.. code-block:: bash
+
+    $ export PYDOLPHINSCHEDULER_HOME=<CUSTOM_PATH>
+    $ pydolphinscheduler config --init
+
+After that, your configuration file will export into 
`<CUSTOM_PATH>/config.yaml` instead of the default path.
+
+Change Configuration
+--------------------
+
+In section `export configuration file`_ you export the configuration file 
locally, and as a local file, you could
+edit it with any editor you like. After you save your change in your editor, 
the latest configuration will work
+when you run your workflow code.
+
+You could also query or change the configuration via CLI :code:`config --get 
<config>` or :code:`config --get <config> <val>`.
+Both `--get` and `--set` could be call one or more times in single command, 
and you could only set the leaf
+node of the configuration but could get the parent configuration, there are 
simple examples below:
+
+.. code-block:: bash
+
+    # Get single configuration in the leaf node
+    $ pydolphinscheduler config --get java_gateway.address
+    The configuration query as below:
+
+    java_gateway.address = 127.0.0.1
+
+    # Get multiple configuration in the leaf node
+    $ pydolphinscheduler config --get java_gateway.address --get 
java_gateway.port
+    The configuration query as below:
+
+    java_gateway.address = 127.0.0.1
+    java_gateway.port = 25333
+
+    # Get parent configuration which contain multiple leaf nodes
+    $ pydolphinscheduler config --get java_gateway
+    The configuration query as below:
+
+    java_gateway = ordereddict([('address', '127.0.0.1'), ('port', 25333), 
('auto_convert', True)])
+
+    # Set single configuration
+    $ pydolphinscheduler config --set java_gateway.address 192.168.1.1
+    Set configuration done.
+
+    # Set multiple configuration
+    $ pydolphinscheduler config --set java_gateway.address 192.168.1.1 --set 
java_gateway.port 25334
+    Set configuration done.
+
+    # Set configuration not in leaf node will fail
+    $ pydolphinscheduler config --set java_gateway 192.168.1.1,25334,True
+    Raise error.
+
+For more information about our CLI, you could see document :doc:`cli`.
+
+All Configurations
+------------------
+
+Here are all our configurations for pydolphinscheduler.
+
+.. literalinclude:: ../../src/pydolphinscheduler/core/default_config.yaml
+   :language: yaml
+   :lines: 18-
+
+
diff --git a/dolphinscheduler-python/pydolphinscheduler/docs/source/index.rst 
b/dolphinscheduler-python/pydolphinscheduler/docs/source/howto/index.rst
similarity index 60%
copy from dolphinscheduler-python/pydolphinscheduler/docs/source/index.rst
copy to dolphinscheduler-python/pydolphinscheduler/docs/source/howto/index.rst
index ad4c93d1f9..e83b1631cf 100644
--- a/dolphinscheduler-python/pydolphinscheduler/docs/source/index.rst
+++ b/dolphinscheduler-python/pydolphinscheduler/docs/source/howto/index.rst
@@ -15,29 +15,12 @@
    specific language governing permissions and limitations
    under the License.
 
-PyDolphinScheduler
-==================
-
-**PyDolphinScheduler** is Python API for `Apache DolphinScheduler 
<https://dolphinscheduler.apache.org>`_,
-which allow you definition your workflow by Python code, aka workflow-as-codes.
-
-I could go and find how to :ref:`install <start:getting started>` the project. 
Or if you want to see simply example
-then go and see :doc:`tutorial` for more detail.
+How To
+======
 
+In this section 
 
 .. toctree::
    :maxdepth: 2
-
-   start
-   tutorial
-   concept
-   tasks/index
-   cli
-   api
-
-Indices and tables
-==================
-
-* :ref:`genindex`
-* :ref:`modindex`
-* :ref:`search`
+   
+   remote-submit
diff --git 
a/dolphinscheduler-python/pydolphinscheduler/docs/source/howto/remote-submit.rst
 
b/dolphinscheduler-python/pydolphinscheduler/docs/source/howto/remote-submit.rst
new file mode 100644
index 0000000000..43d03cce38
--- /dev/null
+++ 
b/dolphinscheduler-python/pydolphinscheduler/docs/source/howto/remote-submit.rst
@@ -0,0 +1,51 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+   distributed with this work for additional information
+   regarding copyright ownership.  The ASF licenses this file
+   to you under the Apache License, Version 2.0 (the
+   "License"); you may not use this file except in compliance
+   with the License.  You may obtain a copy of the License at
+
+..   http://www.apache.org/licenses/LICENSE-2.0
+
+.. Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied.  See the License for the
+   specific language governing permissions and limitations
+   under the License.
+
+Submit Your Code from Different machine
+=======================================
+
+Generally, we use pydolphinscheduler as a client to DolphinScheduler, and 
consider we may change our workflow
+code frequently, the best practice is running :ref:`python gateway service 
<start:start python gateway service>`
+in your server machine and submit the workflow code from your development 
machine, like a laptop or PC. This behavior
+is supported by pydolphinscheduler out of box with one or two single command 
lines. 
+
+Export Configuration File
+-------------------------
+
+.. code-block:: bash
+
+    $ pydolphinscheduler config --init
+
+your could find more detail in :ref:`configuration exporting <config:export 
configuration file>`
+
+Run API Server in Other Host
+----------------------------
+
+.. code-block:: bash
+
+    $ pydolphinscheduler config --set java_gateway.address 
<your-api-server-ip-or-hostname>
+
+your could find more detail in :ref:`configuration setting <config:change 
configuration>`
+
+Run API Server in Other Port
+----------------------------
+
+.. code-block:: bash
+
+    $ pydolphinscheduler config --set java_gateway.port 
<your-python-gateway-service-port>
+
+your could find more detail in :ref:`configuration setting <config:change 
configuration>`
diff --git a/dolphinscheduler-python/pydolphinscheduler/docs/source/index.rst 
b/dolphinscheduler-python/pydolphinscheduler/docs/source/index.rst
index ad4c93d1f9..24ad107ad6 100644
--- a/dolphinscheduler-python/pydolphinscheduler/docs/source/index.rst
+++ b/dolphinscheduler-python/pydolphinscheduler/docs/source/index.rst
@@ -32,7 +32,9 @@ then go and see :doc:`tutorial` for more detail.
    tutorial
    concept
    tasks/index
+   howto/index
    cli
+   config
    api
 
 Indices and tables
diff --git a/dolphinscheduler-python/pydolphinscheduler/docs/source/start.rst 
b/dolphinscheduler-python/pydolphinscheduler/docs/source/start.rst
index 489f4e8eb3..e411d7bf72 100644
--- a/dolphinscheduler-python/pydolphinscheduler/docs/source/start.rst
+++ b/dolphinscheduler-python/pydolphinscheduler/docs/source/start.rst
@@ -107,6 +107,37 @@ the server is health if keyword `ApiApplicationServer` in 
the console.
    yaml config path `python-gateway.enabled : true` in api-server's 
configuration path in `api-server/conf/application.yaml`.
    The default value is true and Python gateway service start when api server 
is been started.
 
+Run an Example
+--------------
+
+Before run an example for pydolphinscheduler, you should get the example code 
from it source code. You could run
+single bash command to get it
+
+.. code-block:: bash
+
+   $ wget 
https://raw.githubusercontent.com/apache/dolphinscheduler/dev/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/examples/tutorial.py
+
+or you could copy-paste the content from `tutorial source code`_. And then you 
could run the example in your
+terminal
+
+.. code-block:: bash
+
+   $ python tutorial.py
+
+If you want to submit your workflow to a remote API server, which means that 
your workflow script is different
+from the API server, you should first change pydolphinscheduler configuration 
and then submit the workflow script
+
+.. code-block:: bash
+
+   $ pydolphinscheduler config --init
+   $ pydolphinscheduler config --set java_gateway.address 
<your-api-server-ip-or-hostname>
+   $ python tutorial.py
+
+.. note::
+
+   You could see more information in :doc:`config` about all the 
configurations pydolphinscheduler supported.
+
+
 What's More
 -----------
 
@@ -117,3 +148,4 @@ maybe you could go and play with all :doc:`tasks/index` 
*PyDolphinScheduler* sup
 .. _`instructions for all platforms here`: 
https://wiki.python.org/moin/BeginnersGuide/Download
 .. _`Apache DolphinScheduler`: https://dolphinscheduler.apache.org
 .. _`install Apache DolphinScheduler`: 
https://dolphinscheduler.apache.org/en-us/docs/latest/user_doc/guide/installation/standalone.html
+.. _`tutorial source code`: 
https://raw.githubusercontent.com/apache/dolphinscheduler/dev/dolphinscheduler-python/pydolphinscheduler/src/pydolphinscheduler/examples/tutorial.py

Reply via email to