1 package org.edgegallery.example_app.util;
3 import java.io.BufferedReader;
4 import java.io.IOException;
5 import java.io.InputStream;
6 import java.io.InputStreamReader;
7 import java.util.ArrayList;
8 import java.util.Arrays;
9 import java.util.LinkedList;
10 import java.util.List;
11 import java.util.StringTokenizer;
13 import org.apache.commons.lang.StringUtils;
14 import org.edgegallery.example_app.model.EALTEdgeBackup;
15 import org.edgegallery.example_app.model.EALTEdgeRestore;
16 import org.springframework.stereotype.Service;
17 import com.jcraft.jsch.*;
21 public class ShellCommand {
23 public String executeCommand(String command) {
25 StringBuffer output = new StringBuffer();
30 p = Runtime.getRuntime().exec(command);
32 BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
35 while ((line = reader.readLine())!= null) {
36 output.append(line + "\n");
42 return output.toString();
46 public List<EALTEdgeBackup> executeBackupCommand(String command) {
48 EALTEdgeBackup backup = new EALTEdgeBackup();
49 List<EALTEdgeBackup> backupsList = new ArrayList<EALTEdgeBackup>();
53 p = Runtime.getRuntime().exec(command);
55 BufferedReader reader =
56 new BufferedReader(new InputStreamReader(p.getInputStream()));
59 while ((line = reader.readLine())!= null) {
60 if(line.startsWith("NAME")) {
64 backup = parseBackupResult(line);
65 backupsList.add(backup);
69 } catch (Exception e) {
75 public static EALTEdgeBackup parseBackupResult(String newstr){
77 EALTEdgeBackup backup = new EALTEdgeBackup();
78 List<String> al = new ArrayList<String>();
80 StringTokenizer st = new StringTokenizer(newstr, " ");
81 StringBuffer sb = new StringBuffer();
83 while(st.hasMoreElements()) {
84 sb.append(st.nextElement()).append(" ");
87 String newstrwithProperSpacing = sb.toString();
88 String str[] = newstrwithProperSpacing.split(" ");
90 str[4] = str[4] + str[5] + str[6] + str[7];
92 al = Arrays.asList(str);
94 for(int i = 0; i < al.size(); i++) {
96 backup.setName(al.get(i));
99 backup.setStatus(al.get(i));
102 backup.setErrors(al.get(i));
105 backup.setWarnings(al.get(i));
108 backup.setCreated(al.get(i));
115 public List<EALTEdgeRestore> executeRestoreCommand(String command) {
117 EALTEdgeRestore restore = new EALTEdgeRestore();
118 List<EALTEdgeRestore> restoresList = new ArrayList<EALTEdgeRestore>();
122 p = Runtime.getRuntime().exec(command);
124 BufferedReader reader =
125 new BufferedReader(new InputStreamReader(p.getInputStream()));
128 while ((line = reader.readLine())!= null) {
129 if(line.startsWith("NAME")) {
133 restore = parseRestoreResult(line);
134 restoresList.add(restore);
137 } catch (Exception e) {
143 public static EALTEdgeRestore parseRestoreResult(String newstr){
145 EALTEdgeRestore restore = new EALTEdgeRestore();
147 StringTokenizer st = new StringTokenizer(newstr, " ");
148 StringBuffer sb = new StringBuffer();
150 while(st.hasMoreElements()) {
151 sb.append(st.nextElement()).append(" ");
154 String newstrwithProperSpacing = sb.toString();
155 String str[] = newstrwithProperSpacing.split(" ");
157 List<String> ll = new LinkedList<String>(Arrays.asList(str));
159 for(int i = 0; i < ll.size(); i++) {
161 restore.setName(ll.get(i));
164 restore.setBackup(ll.get(i));
167 restore.setStatus(ll.get(i));