summaryrefslogblamecommitdiffstats
path: root/src/main/java/org/openslx/taskmanager/tasks/MountVmStore.java
blob: ded2a1f75902801a7fe53bb47e6f98ea6e2bff1d (plain) (tree)































                                                                          
                                         








                                                

                                                                           









































                                                                                 
package org.openslx.taskmanager.tasks;

import org.openslx.satserver.util.Constants;
import org.openslx.taskmanager.api.SystemCommandTask;

import com.google.gson.annotations.Expose;

public class MountVmStore extends SystemCommandTask
{
	@Expose
	private String address = null;
	@Expose
	private String type = null;
	@Expose
	private String username = null;
	@Expose
	private String password = null;

	private Output status = new Output();

	@Override
	protected boolean initTask()
	{
		this.setStatusObject( this.status );
		if ( this.address == null || this.type == null ) {
			status.addMessage( "Address or type not given." );
			return false;
		}
		if ( this.username == null )
			this.username = "";
		if ( this.password == null )
			this.password = "";
		this.timeoutSeconds = 10;
		return true;
	}

	@Override
	protected String[] initCommandLine()
	{
		return new String[] {
				"/usr/bin/sudo",
				"-n",
				"-u", "root",
				Constants.BASEDIR + "/scripts/mount-store",
				"images",
				this.address,
				this.username,
				this.password
		};
	}

	@Override
	protected boolean processEnded( int exitCode )
	{
		if ( exitCode != 0 )
			status.addMessage( "Failed with exit code " + exitCode );
		return exitCode == 0;
	}

	@Override
	protected void processStdOut( String line )
	{
		status.addMessage( line );
	}

	@Override
	protected void processStdErr( String line )
	{
		status.addMessage( line );
	}

	class Output
	{
		private String messages = null;

		private void addMessage( String str )
		{
			if ( messages == null ) {
				messages = str;
			} else {
				messages += "\n" + str;
			}
		}
	}

}