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;
20 public class ShellCommand {
22 public String executeCommand(String command) {
24 StringBuffer output = new StringBuffer();
29 p = Runtime.getRuntime().exec(command);
31 BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
34 while ((line = reader.readLine())!= null) {
35 output.append(line + "\n");
41 return output.toString();
45 public List<EALTEdgeBackup> executeBackupCommand(String command) {
47 EALTEdgeBackup backup = new EALTEdgeBackup();
48 List<EALTEdgeBackup> backupsList = new ArrayList<EALTEdgeBackup>();
52 p = Runtime.getRuntime().exec(command);
54 BufferedReader reader =
55 new BufferedReader(new InputStreamReader(p.getInputStream()));
58 while ((line = reader.readLine())!= null) {
59 if(line.startsWith("NAME")) {
63 backup = parseBackupResult(line);
64 backupsList.add(backup);
68 } catch (Exception e) {
74 public static EALTEdgeBackup parseBackupResult(String newstr){
76 EALTEdgeBackup backup = new EALTEdgeBackup();
77 List<String> al = new ArrayList<String>();
79 StringTokenizer st = new StringTokenizer(newstr, " ");
80 StringBuffer sb = new StringBuffer();
82 while(st.hasMoreElements()) {
83 sb.append(st.nextElement()).append(" ");
86 String newstrwithProperSpacing = sb.toString();
87 String str[] = newstrwithProperSpacing.split(" ");
89 str[4] = str[4] + str[5] + str[6] + str[7];
91 al = Arrays.asList(str);
93 for(int i = 0; i < al.size(); i++) {
95 backup.setName(al.get(i));
98 backup.setStatus(al.get(i));
101 backup.setErrors(al.get(i));
104 backup.setWarnings(al.get(i));
107 backup.setCreated(al.get(i));
114 public List<EALTEdgeRestore> executeRestoreCommand(String command) {
116 EALTEdgeRestore restore = new EALTEdgeRestore();
117 List<EALTEdgeRestore> restoresList = new ArrayList<EALTEdgeRestore>();
121 p = Runtime.getRuntime().exec(command);
123 BufferedReader reader =
124 new BufferedReader(new InputStreamReader(p.getInputStream()));
127 while ((line = reader.readLine())!= null) {
128 if(line.startsWith("NAME")) {
132 restore = parseRestoreResult(line);
133 restoresList.add(restore);
136 } catch (Exception e) {
142 public static EALTEdgeRestore parseRestoreResult(String newstr){
144 EALTEdgeRestore restore = new EALTEdgeRestore();
146 StringTokenizer st = new StringTokenizer(newstr, " ");
147 StringBuffer sb = new StringBuffer();
149 while(st.hasMoreElements()) {
150 sb.append(st.nextElement()).append(" ");
153 String newstrwithProperSpacing = sb.toString();
154 String str[] = newstrwithProperSpacing.split(" ");
156 List<String> ll = new LinkedList<String>(Arrays.asList(str));
158 for(int i = 0; i < ll.size(); i++) {
160 restore.setName(ll.get(i));
163 restore.setBackup(ll.get(i));
166 restore.setStatus(ll.get(i));