diff apolloUserManager.xml @ 0:ce4f91831680 draft default tip

planemo upload for repository https://github.com/Yating-L/suite_gonramp_apollo.git commit 5367a00befb467f162d1870edb91f9face72e894
author yating-l
date Fri, 16 Feb 2018 10:57:13 -0500
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/apolloUserManager.xml	Fri Feb 16 10:57:13 2018 -0500
@@ -0,0 +1,290 @@
+<tool id="apollo_user_manager" name="Apollo User Manager" version="1.0.0">
+    <description>
+        This Galaxy tool is used to manage Apollo users. 
+    </description>
+    <macros>
+        <import>macros.xml</import>
+    </macros>
+
+    <requirements>
+        <requirement type="package" version="3.0.3">apollo_api</requirement>
+    </requirements>
+
+    <stdio>
+    </stdio>
+
+    <command detect_errors="exit_code"><![CDATA[
+        mkdir -p $output.extra_files_path;
+        ## Dump the tool parameters into a JSON file 
+        python $json_file parameters.json;
+        python $__tool_directory__/apolloUserManager.py --data_json parameters.json -o $output
+    ]]></command>
+    <configfiles>
+        <configfile name="json_file">
+import json
+import sys
+
+file_path = sys.argv[1]
+#set global data_parameter_dict = {"operations": dict()}
+## Function to retrieve the data of the inputs
+#def prepare_json($operation_type, $data_dict, $batch)
+    #silent $data_dict.update({"batch": str($batch)})
+    #if $operation_type in $data_parameter_dict["operations"]
+        #silent $data_parameter_dict["operations"][$operation_type].append($data_dict)
+    #else
+        #set array_inputs = []
+        #silent $array_inputs.append($data_dict)
+        #silent $data_parameter_dict["operations"].update({$operation_type: $array_inputs})
+    #end if 
+#end def
+
+
+
+
+#for $i, $f in enumerate($operation)
+    #if $f.operation_type_selector.operation_type == "create"
+        #set batch = $f.operation_type_selector.batch_selector.batch
+        #if $batch == "false"
+            #set data_dict = {"useremail": str($f.operation_type_selector.batch_selector.user_email), 
+                            "firstname": str($f.operation_type_selector.batch_selector.firstname),
+                            "lastname": str($f.operation_type_selector.batch_selector.lastname),
+                            "password": str($f.operation_type_selector.batch_selector.password)}
+            
+        #else 
+            #set data_dict = {"format": str($f.operation_type_selector.batch_selector.format), 
+                                "false_path": str($f.operation_type_selector.batch_selector.user_info_file)}
+        #end if 
+        #silent $prepare_json("create", $data_dict, $batch)
+    
+    #elif $f.operation_type_selector.operation_type == "delete"
+        #set batch = $f.operation_type_selector.batch_selector.batch
+        #if $batch == "false"
+            #set data_dict = {"useremail": str($f.operation_type_selector.batch_selector.user_email)}
+        #else 
+            #set data_dict = {"format": str($f.operation_type_selector.batch_selector.format), 
+                                "false_path": str($f.operation_type_selector.batch_selector.user_info_file)}
+        #end if 
+        #silent $prepare_json("delete", $data_dict, $batch)
+    #elif $f.operation_type_selector.operation_type == "add"
+        #set batch = $f.operation_type_selector.batch_selector.batch
+        #if $batch == "false"
+            #set data_dict = {"useremail": str($f.operation_type_selector.batch_selector.user_email),
+                        "group": str($f.operation_type_selector.batch_selector.group_name)}
+        #else 
+            #set data_dict = {"format": str($f.operation_type_selector.batch_selector.format), 
+                                "false_path": str($f.operation_type_selector.batch_selector.user_info_file)}
+        #end if 
+        #silent $prepare_json("add", $data_dict, $batch)
+    #elif $f.operation_type_selector.operation_type == "remove"
+        #set batch = $f.operation_type_selector.batch_selector.batch
+        #if $batch == "false"
+            #set data_dict = {"useremail": str($f.operation_type_selector.batch_selector.user_email),
+                        "group": str($f.operation_type_selector.batch_selector.group_name)}
+        #else 
+            #set data_dict = {"format": str($f.operation_type_selector.batch_selector.format), 
+                                "false_path": str($f.operation_type_selector.batch_selector.user_info_file)}
+        #end if 
+        #silent $prepare_json("remove", $data_dict, $batch)
+    #end if
+#end for
+
+
+#set apollo_admin = {"user_email": str($admin_username), "password": str($admin_password)}
+#silent $data_parameter_dict.update({"apollo_admin": $apollo_admin})
+#silent $data_parameter_dict.update({"tool_directory": str($__tool_directory__)})
+#silent $data_parameter_dict.update({"extra_files_path": str($output.extra_files_path)})
+#silent $data_parameter_dict.update({"port": str($advanced_options.port)})
+#silent $data_parameter_dict.update({"debug_mode": str($advanced_options.debug_mode)})
+with open(file_path, 'w') as f:
+    json.dump($data_parameter_dict, f)
+        </configfile>
+    </configfiles>
+
+
+    <inputs>
+        <param name="admin_username" type="text" label="Admin username" help="Login in with Apollo admin account">
+            <sanitizer>
+                <valid initial="string.letters,string.digits">
+                    <add value="@-=_.()/+*^,:?!"/>
+                </valid>
+            </sanitizer>
+        </param>
+
+        <param
+            name="admin_password"
+            type="text"
+            label="Admin password"
+        />
+        
+        <repeat name="operation" title="New operation">
+            <conditional name="operation_type_selector" >
+                <param name="operation_type" type="select" label="Create a user, delete a user, add a user to a group or remove a user from a group">
+                    <option value="create">Create a user</option>
+                    <option value="delete">Delete a users</option>
+                    <option value="add">Add a user to a group</option>
+                    <option value="remove">Remove a user from a group</option>
+                </param>
+                <when value="create">
+                    <conditional name="batch_selector">
+                        <param name="batch" type="select" label="Manipulate a single user or multiple users">
+                            <option value="false" selected="true">Single user</option>
+                            <option value="true">Multiple users</option>
+                        </param>
+                        <when value="false">
+                            <param name="user_email" type="text" label="User email" help="Specify the user email">
+                                <sanitizer>
+                                    <valid initial="string.letters,string.digits">
+                                        <add value="@-=_.()/+*^,:?!"/>
+                                    </valid>
+                                </sanitizer>
+                            </param>
+                            <param name="firstname" type="text" label="First name" />
+                            <param name="lastname" type="text" label="Last name" />
+                            <param name="password" type="text" label="Password" />
+                        </when>
+                        <when value="true">
+                            <expand macro="upload_text_file" />
+                        </when>
+                    </conditional>
+                </when>
+                <when value="delete">
+                    <conditional name="batch_selector">
+                        <param name="batch" type="select" label="Manipulate a single user or multiple users">
+                            <option value="false" selected="true">Single user</option>
+                            <option value="true">Multiple users</option>
+                        </param>
+                        <when value="false">
+                            <param name="user_email" type="text" label="User email" help="Specify the user email">
+                                <sanitizer>
+                                    <valid initial="string.letters,string.digits">
+                                        <add value="@-=_.()/+*^,:?!"/>
+                                    </valid>
+                                </sanitizer>
+                            </param>
+                        </when>
+                        <when value="true">
+                            <expand macro="upload_text_file" />
+                        </when>
+                    </conditional>
+                </when>
+                <when value="add">
+                    <conditional name="batch_selector">
+                        <param name="batch" type="select" label="Manipulate a single user or multiple users">
+                            <option value="false" selected="true">Single user</option>
+                            <option value="true">Multiple users</option>
+                        </param>
+                        <when value="false">
+                            <param name="user_email" type="text" label="User email" help="Specify the user email">
+                                <sanitizer>
+                                    <valid initial="string.letters,string.digits">
+                                        <add value="@-=_.()/+*^,:?!"/>
+                                    </valid>
+                                </sanitizer>
+                            </param>
+                            <param type="text" name="group_name" size="30" value="unknown" label="Group name" />
+                        </when>
+                        <when value="true">
+                            <expand macro="upload_text_file" />                        
+                        </when>
+                    </conditional>
+                </when>
+                <when value="remove">
+                    <conditional name="batch_selector">
+                        <param name="batch" type="select" label="Manipulate a single user or multiple users">
+                            <option value="false" selected="true">Single user</option>
+                            <option value="true">Multiple users</option>
+                        </param>
+                        <when value="false">
+                            <param name="user_email" type="text" label="User email" help="Specify the user email">
+                                <sanitizer>
+                                    <valid initial="string.letters,string.digits">
+                                        <add value="@-=_.()/+*^,:?!"/>
+                                    </valid>
+                                </sanitizer>
+                            </param>
+                            <param type="text" name="group_name" size="30" value="unknown" label="Group name" />
+                        </when>
+                        <when value="true">
+                            <expand macro="upload_text_file" />                        
+                        </when>
+                    </conditional>
+                </when>
+            </conditional>
+        </repeat>
+
+        <conditional name="advanced_options">
+            <param name="advanced_options_selector" type="select" label="Advanced options">
+                <option value="off" selected="true">Hide advanced options</option>
+                <option value="on">Display advanced options</option>
+            </param>
+            <!-- TODO: Avoid redundancy here -->
+            <when value="on">
+                <param name="port" type="integer" min="8000" max="8888" value="8080" label="Port number of Apollo" />
+                <param name="debug_mode" type="select" label="Activate debug mode"> 
+                    <option value="false" selected="true">No</option>
+                    <option value="true">Yes</option>
+                    <help>
+                        Use this option if you are a G-OnRamp developer
+                    </help>
+                </param>
+            </when>
+            <when value="off">
+                <param name="port" type="hidden" value="8080" />
+                <param name="debug_mode" type="hidden"
+                       value="false">
+                </param>
+            </when>
+        </conditional>
+    </inputs>
+    <outputs>
+        <data format="txt" name="output" label="${tool.name} on ${on_string}" />
+    </outputs>
+
+    <help>
+        This Galaxy tool is used to manage Apollo users.The currently supported operation including:
+
+  - Create a new user 
+  - Delete a user
+  - Add a user to a group (If the group doesn't exist, create the group)
+  - Remove a user to a group
+
+The tool can do these operations on one student at a time. It can also do the operations on multiple students at a time by uploading a text file, which including students information.
+
+The text file can be either CSV (comma-delimited) or Tabular (tab-delimited). It should have a header line, including names for each column. Example text files: 
+
+Text file for creating multiple users:
+
+.. csv-table:: 
+   :header: "useremail", "firstname", "lastname", "password"
+   :widths: 20, 10, 10, 10
+
+   "test1@demo.com", "test1", "demo", "1234"
+   "test2@demo.com", "test2", "demo", "1234"
+   "test3@demo.com", "test3", "demo", "1234"
+
+
+Text file for deleting multiple users:
+
+.. csv-table:: 
+    :header: "useremail"
+    :widths: 20
+
+    "test1@demo.com"
+    "test2@demo.com"
+    "test3@demo.com"
+
+
+Text file for adding / removing multiple users from a group:
+
+.. csv-table:: 
+   :header: "useremail", "group"
+   :widths: 20, 20
+
+   "test1@demo.com", "annotation_group1"
+   "test2@demo.com", "annotation_group1"
+   "test3@demo.com", "annotation_group1"
+
+    </help>
+    <citations>
+    </citations>
+</tool>
\ No newline at end of file