// Path: src/core/iface/INetworkData.java
// public interface INetworkData extends IData {
// 
// 	public String[] getServerLabels();
// 
// 	public String[] getDeviceLabels();
// 
// 	public String[] getDeviceMacs();
// 
// 	public String[] getServerProfiles(String server);
// 
// 	public String getServerData(String server, String label);
// 
// 	public String getServerUser(String server);
// 
// 	public String getServerIP(String server);
// 
// 	public String getServerPort(String server);
// 	
// 	public String getServerUpdate(String server);
// }
// 
// Path: src/core/iface/IProfile.java
// public interface IProfile {
// 
// 	public String getLabel();
// 
// 	public boolean isSingleton();
// 
// 	public Vector<IProfile> getUnits(String server, INetworkData data);
// 
// }
// 
// Path: src/core/profile/AProfile.java
// public abstract class AProfile implements IProfile {
// 
// 	protected String name;
// 
// 	protected AProfile(String name) {
// 		this.name = name;
// 	}
// 
// 	public String getLabel() {
// 		return name;
// 	}
// 
// 	public boolean isSingleton() {
// 		return false;
// 	}
// 
// 	public static String getProperty(String prop, String prof, String server, INetworkData data) {
// 		try {
// 			String val = data.getServerData(server, prof);
// 			JSONParser parser = new JSONParser();
// 			JSONObject config = (JSONObject) parser.parse(val);
// 			return config.get(prop).toString();
// 		} catch (ParseException e) {
// 			e.printStackTrace();
// 		}
// 		return "";
// 	}
// 	
// 	public static String getProperties(String prop, String prof, String server, INetworkData data) {
// 		try {
// 			String val = data.getServerData(server, prof);
// 			JSONParser parser = new JSONParser();
// 			JSONObject config = (JSONObject) parser.parse(val);
// 			JSONArray props = (JSONArray) config.get(prop);
// 			String propstring = "";
// 			for (int i = 0; i < props.size(); i++) {
// 				propstring += props.get(i) + "\n";
// 			}
// 			return propstring;
// 		} catch (ParseException e) {
// 			e.printStackTrace();
// 		}
// 		return "";
// 	}
// 
// }
// 
// Path: src/unit/pkg/InstalledUnit.java
// public class InstalledUnit extends SimpleUnit {
// 
// 	public InstalledUnit(String name, String pkg) {
// 		super(name + "_installed", "proceed", "sudo apt-get update; sudo apt-get install --assume-yes " + pkg + ";",
// 				"dpkg-query --status " + pkg + " | grep \"Status:\";", "Status: install ok installed", "pass");
// 	}
// 
// }
// 
// Path: src/unit/pkg/RunningUnit.java
// public class RunningUnit extends SimpleUnit {
// 
// 	public RunningUnit(String name, String pkg, String grep) {
// 		super(name + "_running", name + "_installed", "sudo systemctl restart " + pkg + ";",
// 				"ps aux | grep -v grep | grep " + grep + ";", "", "fail");
// 	}
// 
// }


import java.util.Vector;
import core.iface.INetworkData;
import core.iface.IProfile;
import core.profile.AProfile;
import unit.pkg.InstalledUnit;
import unit.pkg.RunningUnit;
package profile.service;



public class Apache extends AProfile {

	public Apache() {
		super("apache");
	}

	public Vector<IProfile> getUnits(String server, INetworkData data) {
		Vector<IProfile> vec = new Vector<IProfile>();
		vec.addElement(new InstalledUnit("apache", "apache2"));
		vec.addElement(new RunningUnit("apache", "apache2", "apache2"));
// Path: src/core/iface/INetworkData.java
// public interface INetworkData extends IData {
// 
// 	public String[] getServerLabels();
// 
// 	public String[] getDeviceLabels();
// 
// 	public String[] getDeviceMacs();
// 
// 	public String[] getServerProfiles(String server);
// 
// 	public String getServerData(String server, String label);
// 
// 	public String getServerUser(String server);
// 
// 	public String getServerIP(String server);
// 
// 	public String getServerPort(String server);
// 	
// 	public String getServerUpdate(String server);
// }
// 
// Path: src/core/iface/IProfile.java
// public interface IProfile {
// 
// 	public String getLabel();
// 
// 	public boolean isSingleton();
// 
// 	public Vector<IProfile> getUnits(String server, INetworkData data);
// 
// }
// 
// Path: src/core/profile/AProfile.java
// public abstract class AProfile implements IProfile {
// 
// 	protected String name;
// 
// 	protected AProfile(String name) {
// 		this.name = name;
// 	}
// 
// 	public String getLabel() {
// 		return name;
// 	}
// 
// 	public boolean isSingleton() {
// 		return false;
// 	}
// 
// 	public static String getProperty(String prop, String prof, String server, INetworkData data) {
// 		try {
// 			String val = data.getServerData(server, prof);
// 			JSONParser parser = new JSONParser();
// 			JSONObject config = (JSONObject) parser.parse(val);
// 			return config.get(prop).toString();
// 		} catch (ParseException e) {
// 			e.printStackTrace();
// 		}
// 		return "";
// 	}
// 	
// 	public static String getProperties(String prop, String prof, String server, INetworkData data) {
// 		try {
// 			String val = data.getServerData(server, prof);
// 			JSONParser parser = new JSONParser();
// 			JSONObject config = (JSONObject) parser.parse(val);
// 			JSONArray props = (JSONArray) config.get(prop);
// 			String propstring = "";
// 			for (int i = 0; i < props.size(); i++) {
// 				propstring += props.get(i) + "\n";
// 			}
// 			return propstring;
// 		} catch (ParseException e) {
// 			e.printStackTrace();
// 		}
// 		return "";
// 	}
// 
// }
// 
// Path: src/unit/pkg/InstalledUnit.java
// public class InstalledUnit extends SimpleUnit {
// 
// 	public InstalledUnit(String name, String pkg) {
// 		super(name + "_installed", "proceed", "sudo apt-get update; sudo apt-get install --assume-yes " + pkg + ";",
// 				"dpkg-query --status " + pkg + " | grep \"Status:\";", "Status: install ok installed", "pass");
// 	}
// 
// }
// 
// Path: src/unit/pkg/RunningUnit.java
// public class RunningUnit extends SimpleUnit {
// 
// 	public RunningUnit(String name, String pkg, String grep) {
// 		super(name + "_running", name + "_installed", "sudo systemctl restart " + pkg + ";",
// 				"ps aux | grep -v grep | grep " + grep + ";", "", "fail");
// 	}
// 
// }


// Path: src/profile/service/Apache.java
import java.util.Vector;
import core.iface.INetworkData;
import core.iface.IProfile;
import core.profile.AProfile;
import unit.pkg.InstalledUnit;
import unit.pkg.RunningUnit;

package profile.service;



public class Apache extends AProfile {

	public Apache() {
		super("apache");
	}

	public Vector<IProfile> getUnits(String server, INetworkData data) {
		Vector<IProfile> vec = new Vector<IProfile>();
		vec.addElement(new InstalledUnit("apache", "apache2"));
		vec.addElement(new RunningUnit("apache", "apache2", "apache2"));
		return vec;