Commit 3fbee378 authored by Stefano Alberto Russo's avatar Stefano Alberto Russo
Browse files

Added support for setting container runtimes on a per-task basis in the...

Added support for setting container runtimes on a per-task basis in the computing options. Minor improvements in the UX.
parent 742febba
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -111,7 +111,7 @@ class InternalStandaloneComputingManager(StandaloneComputingManager):
        #run_command += ' -v {}/user-{}:/data'.format(settings.LOCAL_USER_DATA_DIR, task.user.id)

        # Host name, image entry command
        run_command += ' -h task-{} -d -t {}/{}:{}'.format(task.uuid, task.container.registry, task.container.image_name, task.container.image_tag)
        run_command += ' -h task-{} -d -t {}/{}:{}'.format(task.short_uuid, task.container.registry, task.container.image_name, task.container.image_tag)

        # Debug
        logger.debug('Running new task with command="{}"'.format(run_command))
@@ -294,7 +294,7 @@ class SSHStandaloneComputingManager(StandaloneComputingManager, SSHComputingMana
            run_command += '/bin/bash -c \'"rm -rf /tmp/{}_data && mkdir /tmp/{}_data && chmod 700 /tmp/{}_data && '.format(task.uuid, task.uuid, task.uuid) 
            run_command += 'wget {}/api/v1/base/agent/?task_uuid={} -O /tmp/{}_data/agent.py &> /dev/null && export TASK_PORT=\$(python /tmp/{}_data/agent.py 2> /tmp/{}_data/task.log) && '.format(webapp_conn_string, task.uuid, task.uuid, task.uuid, task.uuid)
            run_command += '{} docker run -p \$TASK_PORT:{} {} {} '.format(prefix, task.container.interface_port, authstring, binds)        
            run_command += '-h task-{} -d -t {}/{}:{}'.format(task.uuid, task.container.registry, task.container.image_name, task.container.image_tag)
            run_command += '-h task-{} -d -t {}/{}:{}'.format(task.short_uuid, task.container.registry, task.container.image_name, task.container.image_tag)
            run_command += '"\''
            
        else:
+5 −1
Original line number Diff line number Diff line
@@ -331,6 +331,10 @@ class Task(models.Model):
    def __str__(self):
        return str('Task "{}" of user "{}" running on "{}" in status "{}" created at "{}"'.format(self.name, self.user.email, self.computing, self.status, self.created))

    @property
    def short_uuid(self):
        return str(self.uuid)[0:8]

    @property
    def color(self):
        string_int_hash = hash_string_to_int(self.name)
@@ -339,7 +343,7 @@ class Task(models.Model):
    
    @property
    def sharable_link(self):
        return 'https://{}/t/{}'.format(settings.ROSETTA_HOST, str(self.uuid)[0:8])
        return 'https://{}/t/{}'.format(settings.ROSETTA_HOST, self.short_uuid)
    
    @property
    def tcp_tunnel_host(self):
+2 −2
Original line number Diff line number Diff line
@@ -93,8 +93,8 @@
        <br/>  
        {% endif %}
        <div class="image-version-box">
        <b>Type:</b> {{ computing.type }}<br/>
        <b>Arch:</b> {{ computing.arch }}
        <b>Type:</b> {{ computing.type }} <font style="font-size:0.9em">({{ computing.arch }})</font>
        <!-- <br/><b>Arch:</b> {{ computing.arch }} -->
        <br/>
        <b>Storages:</b>
        {% if not computing.storages.all %}
+13 −1
Original line number Diff line number Diff line
@@ -107,9 +107,14 @@
            <td>{{ task.name }}</td>
           </tr> -->

           <tr>
           <!-- <tr>
            <td><b>ID</b></td>
            <td>{{ task.id }}</td>
           </tr> -->

           <tr>
            <td><b>Short ID</b></td>
            <td>{{ task.short_uuid }}</td>
           </tr>

           <tr>
@@ -144,6 +149,13 @@
           </tr>
           {% endif %}
           
           {% if task.computing_options %}
           <tr>
            <td><b>Computing options</b></td>
            <td>{{ task.computing_options }}</td>
           </tr>
           {% endif %}           


            <!-- <tr><td style="padding-right:0"><b>Direct link</b>
            <td>{% if task.status == "running" %}<a href="{{ task.sharable_link }}">{{ task.sharable_link }}</a>{% else %}N.A. (task not running) {% endif %}</td> -->
+14 −14
Original line number Diff line number Diff line
@@ -91,7 +91,12 @@
           </tr>
           
           <tr>
            <td valign="top"><b>Task&nbsp;password</b></td>
            <td valign="top">
            {% if request.user.profile.is_power_user %} 
            <b>Task&nbsp;password</b></td>
            {% else %}
            <b>Auth&nbsp;token</b></td>
            {% endif %}
            <td>

             <input type="hidden" name="task_auth_token" value="{{data.task_auth_token}}">
@@ -121,25 +126,20 @@
             </select>
            </td>
           </tr>
           {% else %}
           <tr>
            <td><b>Access method</b></td><td>
             <select name="access_method" >
             <option value="auto" selected>Auto</option>
             </select>
            </td>
           </tr>
           {% endif %}

           {% if data.task_computing.container_runtimes|length > 1 %}
           <tr>
            <td><b>Container runtime</b></td><td>
             <select name="run_using" >
             <option value="default" selected>Default</option>
             <!-- <option value="docker" selected>default</option> -->
             <!-- <option value="singularity">Singularity</option> -->
            <td><b>Container&nbsp;runtime</b></td><td>
             <select name="container_runtime" >
             <option value="" selected>Default</option>
             {% for container_runtime in data.task_computing.container_runtimes %}
             <option value="{{container_runtime}}">{{container_runtime}}</option>
             {% endfor %}
             </select>
            </td>
           </tr>
           {% endif %}
           
           {% if data.task_computing.wms == 'slurm' %}
           <tr>
Loading