summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/com/ibm/ServerWizard2/DialogHandler.java3
-rw-r--r--src/com/ibm/ServerWizard2/GithubFile.java53
-rw-r--r--src/com/ibm/ServerWizard2/Launcher.java35
-rw-r--r--src/com/ibm/ServerWizard2/LibraryManager.java73
-rw-r--r--src/com/ibm/ServerWizard2/MainDialog.java13
-rw-r--r--src/com/ibm/ServerWizard2/MessagePopup.java24
-rw-r--r--src/com/ibm/ServerWizard2/ServerWizard2.java2
-rw-r--r--src/com/ibm/ServerWizard2/SystemModel.java3
-rw-r--r--src/com/ibm/ServerWizard2/TargetWizardController.java23
9 files changed, 101 insertions, 128 deletions
diff --git a/src/com/ibm/ServerWizard2/DialogHandler.java b/src/com/ibm/ServerWizard2/DialogHandler.java
index 07596c4..0bfa0a4 100644
--- a/src/com/ibm/ServerWizard2/DialogHandler.java
+++ b/src/com/ibm/ServerWizard2/DialogHandler.java
@@ -6,7 +6,6 @@ import java.util.logging.LogRecord;
import javax.swing.JTextArea;
public class DialogHandler extends ConsoleHandler {
-
private JTextArea text;
public DialogHandler(JTextArea text) {
this.text=text;
@@ -15,7 +14,7 @@ public class DialogHandler extends ConsoleHandler {
@Override
public void publish(LogRecord record) {
text.append(record.getMessage()+"\n");
+ text.setCaretPosition(text.getText().length()-1);
super.publish(record);
}
-
}
diff --git a/src/com/ibm/ServerWizard2/GithubFile.java b/src/com/ibm/ServerWizard2/GithubFile.java
index a013359..df07157 100644
--- a/src/com/ibm/ServerWizard2/GithubFile.java
+++ b/src/com/ibm/ServerWizard2/GithubFile.java
@@ -1,5 +1,6 @@
package com.ibm.ServerWizard2;
+import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
@@ -8,6 +9,7 @@ import java.io.FileWriter;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
+import java.net.URLConnection;
import java.nio.file.Files;
import java.nio.file.StandardCopyOption;
import java.util.Calendar;
@@ -27,30 +29,28 @@ public class GithubFile {
private File localFile;
private String filename;
- private FileTypes type;
private String localDirectory;
- private boolean inRelease=false;
+ private boolean isRelease=false;
private String downloadUrl="";
private String downloadUrlTag="download_url";
private String apiUrl="";
private String version="";
private String repository="";
+ private String subDirectory="";
private long remoteFileSize=0;
private long localFileSize=0;
private Logger logger;
private boolean downloadNeeded=false;
private static long MILLISECONDS_PER_DAY = 86400*1000;
- public enum FileTypes {
- ATTRIBUTE_TYPE_XML, TARGET_TYPE_XML, TARGET_INSTANCES_XML, SCRIPT, JAR
- }
- public GithubFile(String repository, String version, String filename, FileTypes type,Logger logger) {
+ public GithubFile(String repository, String version, String filename, String subDirectory, boolean isRelease, Logger logger) {
this.repository=repository;
this.version=version;
this.filename=filename;
- this.type=type;
+ this.isRelease=isRelease;
+ this.subDirectory=subDirectory;
this.logger=logger;
this.init();
}
@@ -67,20 +67,9 @@ public class GithubFile {
return this.localFileSize > 0;
}
public void init() {
+ String subDir=this.subDirectory+System.getProperty("file.separator");
String workingDir=GithubFile.getWorkingDir();
- String subDir="";
- String urlSubDir = "";
- if (type==FileTypes.SCRIPT) {
- subDir="scripts"+System.getProperty("file.separator");
- urlSubDir="scripts/";
- } else if (type==FileTypes.JAR) {
- subDir="jars"+System.getProperty("file.separator");
- this.inRelease=true;
- } else {
- subDir = "xml"+System.getProperty("file.separator");
- urlSubDir="xml/";
- }
- if (this.inRelease) {
+ if (this.isRelease) {
if (version.equals("latest")) {
apiUrl=API_URL+repository+"releases/latest";
} else {
@@ -88,7 +77,7 @@ public class GithubFile {
}
downloadUrlTag="browser_download_url";
} else {
- apiUrl=API_URL+repository+"contents/"+urlSubDir+"?ref="+version;
+ apiUrl=API_URL+repository+"contents/"+this.subDirectory+"?ref="+version;
}
localDirectory=workingDir + subDir;
this.localFile = new File(workingDir+subDir+filename);
@@ -118,7 +107,7 @@ public class GithubFile {
BufferedReader bis = new BufferedReader(new InputStreamReader(is));
JSONParser parser=new JSONParser();
List fileList;
- if (this.inRelease) {
+ if (this.isRelease) {
Map fileMap = (Map)parser.parse(bis);
version = (String)fileMap.get("tag_name");
fileList = (List)fileMap.get("assets");
@@ -129,6 +118,7 @@ public class GithubFile {
for (Object mapObj : fileList) {
Map files = (Map) mapObj;
String fileName = (String)files.get("name");
+ //TODO: won't work if same filename in 2 subdirs
if (fileName.equals(this.filename)) {
downloadUrl = (String)files.get(this.downloadUrlTag);
remoteFileSize = (Long)files.get("size");
@@ -145,7 +135,6 @@ public class GithubFile {
logger.warning(e.toString());
if (this.localFileExists()) {
logger.warning("Unable to download");
- removeUpdateFile(false);
return false;
} else {
throw new Exception("Unable to connect to "+this.apiUrl+ " and "+this.filename+" does not exist locally.");
@@ -168,23 +157,23 @@ public class GithubFile {
public String getFilename() {
return localFile.getName();
}
- public FileTypes getType() {
- return type;
- }
+
public void download() throws Exception {
if (!downloadNeeded) { return; }
logger.info("Downloading: "+this.downloadUrl);
if (!DEBUG) {
this.mkdir();
URL url = new URL(this.downloadUrl);
- ProgressMonitorInputStream pim = new ProgressMonitorInputStream(null, "Downloading "+ downloadUrl,
- url.openStream());
-
+ URLConnection urlConn = url.openConnection();
+ urlConn.setConnectTimeout(10000);
+ urlConn.setReadTimeout(10000);
+ InputStream is = urlConn.getInputStream();
+ ProgressMonitorInputStream pim = new ProgressMonitorInputStream(null, "Downloading "+ downloadUrl,is);
+ logger.info("File Size: "+this.remoteFileSize);
pim.getProgressMonitor().setMaximum((int) this.remoteFileSize);
pim.getProgressMonitor().setMillisToDecideToPopup(500);
-
- Files.copy(pim, localFile.toPath(),
- StandardCopyOption.REPLACE_EXISTING);
+ logger.info("Starting Download...");
+ Files.copy(pim, localFile.toPath(),StandardCopyOption.REPLACE_EXISTING);
}
}
public static String isTimeForUpdateCheck(Logger logger) {
diff --git a/src/com/ibm/ServerWizard2/Launcher.java b/src/com/ibm/ServerWizard2/Launcher.java
index fbe9eb0..e00c10f 100644
--- a/src/com/ibm/ServerWizard2/Launcher.java
+++ b/src/com/ibm/ServerWizard2/Launcher.java
@@ -17,8 +17,9 @@ import java.util.zip.ZipFile;
import javax.swing.JOptionPane;
public class Launcher {
- public static String JAR_NAME = "serverwiz2";
- public static String ZIP_NAME = "serverwiz2_lib.zip";
+ public final static String JAR_NAME = "serverwiz2";
+ public final static String ZIP_NAME = "serverwiz2_lib.zip";
+ public final static String REPOSITORY= "open-power/serverwiz/";
public final static Logger LOGGER = Logger.getLogger(Launcher.class.getName());
public Launcher() {
@@ -37,7 +38,6 @@ public class Launcher {
System.exit(3);
}
version=args[i+1];
- System.out.println("FORCE UPDATE:"+version);
forceUpdate=true;
}
if (args[i].equals("-d")) {
@@ -68,8 +68,8 @@ public class Launcher {
String jarName = getArchFilename("serverwiz2");
LOGGER.info("JarName = "+jarName);
- GithubFile jar = new GithubFile("open-power/serverwiz/",version,jarName,GithubFile.FileTypes.JAR,LOGGER);
- GithubFile zip = new GithubFile("open-power/serverwiz/",version,ZIP_NAME,GithubFile.FileTypes.JAR,LOGGER);
+ GithubFile jar = new GithubFile(REPOSITORY,version,jarName,"jars",true,LOGGER);
+ GithubFile zip = new GithubFile(REPOSITORY,version,ZIP_NAME,"jars",true,LOGGER);
String versionCurrent="NONE";
@@ -99,7 +99,7 @@ public class Launcher {
boolean doUpdate=true;
if (!versionCurrent.equals("NONE")) {
int selection=JOptionPane.showConfirmDialog(null,
- "There is a newer verison of ServerWiz2 ("+version+"). Would like like to download?",
+ "There is a newer version of ServerWiz2 ("+version+"). Would like like to download?",
"Confirm Update", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
if (selection==JOptionPane.NO_OPTION) {
doUpdate=false;
@@ -120,6 +120,7 @@ public class Launcher {
}
}
} catch(Exception e) {
+ //unknown state so force update next time.
GithubFile.removeUpdateFile(false);
LOGGER.severe(e.getMessage());
JOptionPane.showMessageDialog(null, e.toString(), "Error", JOptionPane.ERROR_MESSAGE);
@@ -143,22 +144,24 @@ public class Launcher {
} catch (Exception e) {
}
+ Thread t=run(commandLine);
+ try {
+ t.join();
+ } catch (Exception e) {
+
+ }
dm.close();
- run(commandLine);
- LOGGER.info("Exiting...");
}
- public static void run(Vector<String> commandLine) {
+ public static Thread run(Vector<String> commandLine) {
String commandLineStr="";
for (String c : commandLine) {
commandLineStr=commandLineStr+c+" ";
}
LOGGER.info("Running: "+commandLineStr);
-
try {
final ProcessBuilder builder = new ProcessBuilder(commandLine).redirectErrorStream(true);
final Process process = builder.start();
-
- new Thread(new Runnable() {
+ Thread thread = new Thread(new Runnable() {
public void run() {
InputStreamReader in = new InputStreamReader(process.getInputStream());
BufferedReader inb = new BufferedReader(in);
@@ -168,15 +171,19 @@ public class Launcher {
LOGGER.info(thisLine);
}
} catch (IOException e) {
+ LOGGER.info(e.toString());
e.printStackTrace();
}
}
- }).start();
-
+ });
+ thread.start();
+ return thread;
//final int exitValue = process.waitFor();
} catch (Exception e) {
+ LOGGER.info(e.toString());
e.printStackTrace();
}
+ return null;
}
public static String getWorkingDir() {
// gets working directory whether running as jar or from eclipse
diff --git a/src/com/ibm/ServerWizard2/LibraryManager.java b/src/com/ibm/ServerWizard2/LibraryManager.java
index 3d9c3f5..fae64c9 100644
--- a/src/com/ibm/ServerWizard2/LibraryManager.java
+++ b/src/com/ibm/ServerWizard2/LibraryManager.java
@@ -1,71 +1,30 @@
package com.ibm.ServerWizard2;
+import com.ibm.ServerWizard2.LibraryFile.FileTypes;
+
public class LibraryManager {
- private String processScript = "";
- private String processDirectory = "";
- public static String REPO = "open-power/serverwiz/";
- GithubFile files[] = new GithubFile[7];
+ LibraryFile files[] = new LibraryFile[5];
public void loadModel(SystemModel model) throws Exception {
- for (GithubFile libFile : files) {
- if (libFile.getType() == GithubFile.FileTypes.ATTRIBUTE_TYPE_XML) {
- model.loadAttributes(new XmlHandler(), libFile.getLocalPath());
+ for (LibraryFile libFile : files) {
+ if (libFile.getType() == LibraryFile.FileTypes.ATTRIBUTE_TYPE_XML) {
+ model.loadAttributes(new XmlHandler(), libFile.getPath());
}
- if (libFile.getType() == GithubFile.FileTypes.TARGET_TYPE_XML) {
- model.loadTargetTypes(new XmlHandler(), libFile.getLocalPath());
+ if (libFile.getType() == LibraryFile.FileTypes.TARGET_TYPE_XML) {
+ model.loadTargetTypes(new XmlHandler(), libFile.getPath());
}
- if (libFile.getType() == GithubFile.FileTypes.TARGET_INSTANCES_XML) {
- model.loadTargetInstances(libFile.getLocalPath());
+ if (libFile.getType() == LibraryFile.FileTypes.TARGET_INSTANCES_XML) {
+ model.loadTargetInstances(libFile.getPath());
}
}
}
- public void init(String version) {
- files[0] = new GithubFile(REPO,version,
- "attribute_types.xml",GithubFile.FileTypes.ATTRIBUTE_TYPE_XML,ServerWizard2.LOGGER);
-
- files[1] = new GithubFile(REPO,version,
- "attribute_types_hb.xml",GithubFile.FileTypes.ATTRIBUTE_TYPE_XML,ServerWizard2.LOGGER);
-
- files[2] = new GithubFile(REPO,version,
- "attribute_types_mrw.xml",GithubFile.FileTypes.ATTRIBUTE_TYPE_XML,ServerWizard2.LOGGER);
-
- files[3] = new GithubFile(REPO,version,
- "target_types_mrw.xml",GithubFile.FileTypes.TARGET_TYPE_XML,ServerWizard2.LOGGER);
-
- files[4] = new GithubFile(REPO,version,
- "target_instances_v3.xml",GithubFile.FileTypes.TARGET_INSTANCES_XML,ServerWizard2.LOGGER);
-
- files[5] = new GithubFile(REPO,version,
- "processMrw.pl",GithubFile.FileTypes.SCRIPT,ServerWizard2.LOGGER);
-
- files[6] = new GithubFile(REPO,version,
- "Targets.pm",GithubFile.FileTypes.SCRIPT,ServerWizard2.LOGGER);
-
- processScript = files[5].getLocalPath();
- processDirectory = files[5].getLocalDirectory();
- }
- public String getProcessingScript() {
- return this.processScript;
- }
- public String getProcessingDirectory() {
- return this.processDirectory;
- }
-
-
- /*
- * check if files exist yes- files exist, check if github is newer if yes,
- * then ask user if wishes to update if no or can't download, then continue
- * no- files don't exist; download if can't download, then exit
- */
- public void update(String version) throws Exception {
- if (!version.isEmpty()) {
- ServerWizard2.LOGGER.info("Updating XML lib to version: "+version+"\n");
- for (GithubFile libFile : files) {
- libFile.update();
- libFile.download();
- }
- }
+ public void init() {
+ files[0] = new LibraryFile("xml/attribute_types.xml",FileTypes.ATTRIBUTE_TYPE_XML);
+ files[1] = new LibraryFile("xml/attribute_types_hb.xml",FileTypes.ATTRIBUTE_TYPE_XML);
+ files[2] = new LibraryFile("xml/attribute_types_mrw.xml",FileTypes.ATTRIBUTE_TYPE_XML);
+ files[3] = new LibraryFile("xml/target_types_mrw.xml",FileTypes.TARGET_TYPE_XML);
+ files[4] = new LibraryFile("xml/target_instances_v3.xml",FileTypes.TARGET_INSTANCES_XML);
}
}
diff --git a/src/com/ibm/ServerWizard2/MainDialog.java b/src/com/ibm/ServerWizard2/MainDialog.java
index e892216..bc78c6a 100644
--- a/src/com/ibm/ServerWizard2/MainDialog.java
+++ b/src/com/ibm/ServerWizard2/MainDialog.java
@@ -98,6 +98,7 @@ public class MainDialog extends Dialog {
private Label lblInstanceDirections;
private Composite compositeDir;
private Button btnHideBusses;
+ private Button btnShowHidden;
/**
* Create the dialog.
@@ -215,7 +216,9 @@ public class MainDialog extends Dialog {
btnDeleteTarget.setFont(SWTResourceManager.getFont("Arial", 9, SWT.NORMAL));
btnDeleteTarget.setText("Delete Instance");
new Label(compositeInstance, SWT.NONE);
- new Label(compositeInstance, SWT.NONE);
+
+ btnShowHidden = new Button(compositeInstance, SWT.CHECK);
+ btnShowHidden.setText(" Show Hidden");
btnCopyInstance = new Button(compositeInstance, SWT.NONE);
btnCopyInstance.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, true, false, 1, 1));
@@ -850,7 +853,7 @@ public class MainDialog extends Dialog {
}
}
}
- Vector<Target> children = controller.getVisibleChildren(target);
+ Vector<Target> children = controller.getVisibleChildren(target,this.btnShowHidden.getSelection());
TreeItem treeitem = item;
if (item == null) {
if (parentItem == null) {
@@ -978,6 +981,12 @@ public class MainDialog extends Dialog {
}
public void addEvents() {
+ btnShowHidden.addSelectionListener(new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent arg0) {
+ refreshInstanceTree();
+ }
+ });
tabFolder.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent arg0) {
diff --git a/src/com/ibm/ServerWizard2/MessagePopup.java b/src/com/ibm/ServerWizard2/MessagePopup.java
index 4d7057e..03b277c 100644
--- a/src/com/ibm/ServerWizard2/MessagePopup.java
+++ b/src/com/ibm/ServerWizard2/MessagePopup.java
@@ -1,33 +1,33 @@
package com.ibm.ServerWizard2;
-import java.awt.Dimension;
+import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
+
import javax.swing.JFrame;
-import javax.swing.JLabel;
+import javax.swing.JScrollPane;
import javax.swing.JTextArea;
-import javax.swing.SwingConstants;
-import java.awt.BorderLayout;
public class MessagePopup implements ActionListener {
public MessagePopup() {
- // TODO Auto-generated constructor stub
+
}
//private final int ONE_SECOND = 1000;
//private Timer timer;
private JFrame frame;
- private JLabel msgLabel;
+ //private JLabel msgLabel;
public JTextArea text;
+ private JScrollPane sp;
public MessagePopup(String str, int seconds) {
- frame = new JFrame("Test Message");
- msgLabel = new JLabel(str, SwingConstants.CENTER);
- text = new JTextArea(30,60);
-
- msgLabel.setPreferredSize(new Dimension(600, 400));
+ frame = new JFrame("ServerWiz2 Launcher Console");
+ //msgLabel = new JLabel(str, SwingConstants.CENTER);
+ text = new JTextArea(10,80);
+ sp = new JScrollPane(text);
+ //msgLabel.setPreferredSize(new Dimension(600, 400));
//timer = new Timer(this.ONE_SECOND * seconds, this);
// only need to fire up once to make the message box disappear
@@ -40,7 +40,7 @@ public class MessagePopup implements ActionListener {
public void open() {
// make the message box appear and start the timer
//frame.getContentPane().add(msgLabel, BorderLayout.CENTER);
- frame.getContentPane().add(text, BorderLayout.CENTER);
+ frame.getContentPane().add(sp, BorderLayout.CENTER);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
diff --git a/src/com/ibm/ServerWizard2/ServerWizard2.java b/src/com/ibm/ServerWizard2/ServerWizard2.java
index 66e1618..c987721 100644
--- a/src/com/ibm/ServerWizard2/ServerWizard2.java
+++ b/src/com/ibm/ServerWizard2/ServerWizard2.java
@@ -63,7 +63,7 @@ public class ServerWizard2 {
SystemModel systemModel = new SystemModel();
MainDialog view = new MainDialog(null);
tc.setView(view);
- tc.setModel(systemModel,version);
+ tc.setModel(systemModel);
systemModel.addPropertyChangeListener(tc);
view.setController(tc);
if (!inputFilename.isEmpty()) {
diff --git a/src/com/ibm/ServerWizard2/SystemModel.java b/src/com/ibm/ServerWizard2/SystemModel.java
index 0ad06d3..9719bdd 100644
--- a/src/com/ibm/ServerWizard2/SystemModel.java
+++ b/src/com/ibm/ServerWizard2/SystemModel.java
@@ -108,9 +108,10 @@ public class SystemModel {
}
}
} else {
- if (childTarget.getAttribute("MRW_TYPE").equals("IPMI_SENSOR")) {
+ if (entityInst!=-1) {
String msg = ">> WARNING: "+childTarget.getName()+"; Entity ID: "+entityId+"; Entity Inst: "+entityInst+" not found in SDR";
this.logData=this.logData+msg+"\n";
+ this.setGlobalSetting(instPath, "IPMI_SENSOR_ID", "");
}
}
}
diff --git a/src/com/ibm/ServerWizard2/TargetWizardController.java b/src/com/ibm/ServerWizard2/TargetWizardController.java
index 266aa82..fd19069 100644
--- a/src/com/ibm/ServerWizard2/TargetWizardController.java
+++ b/src/com/ibm/ServerWizard2/TargetWizardController.java
@@ -24,13 +24,13 @@ public class TargetWizardController implements PropertyChangeListener {
SystemModel model;
MainDialog view;
LibraryManager xmlLib = new LibraryManager();
- private String version="";
+ private final String PROCESSING_SCRIPT="scripts/processMrw.pl";
public TargetWizardController() {
}
public void init() {
- xmlLib.init(version);
+ xmlLib.init();
try {
//xmlLib.update(version);
xmlLib.loadModel(model);
@@ -115,9 +115,8 @@ public class TargetWizardController implements PropertyChangeListener {
this.view = view;
}
- public void setModel(SystemModel model,String version) {
+ public void setModel(SystemModel model) {
this.model = model;
- this.version=version;
}
public Vector<String> getEnums(String e) {
@@ -228,7 +227,7 @@ public class TargetWizardController implements PropertyChangeListener {
public void hideBusses(Target target) {
target.hideBusses(model.getTargetLookup());
}
- public Vector<Target> getVisibleChildren(Target target) {
+ public Vector<Target> getVisibleChildren(Target target,boolean showHidden) {
Vector<Target> children = new Vector<Target>();
for (String c : target.getChildren()) {
Target t = model.getTarget(c);
@@ -238,6 +237,16 @@ public class TargetWizardController implements PropertyChangeListener {
}
children.add(t);
}
+ if (showHidden) {
+ for (String c : target.getHiddenChildren()) {
+ Target t = model.getTarget(c);
+ if (t==null) {
+ String msg="Invalid Child target id: "+c;
+ ServerWizard2.LOGGER.severe(msg);
+ }
+ children.add(t);
+ }
+ }
return children;
}
@@ -251,8 +260,8 @@ public class TargetWizardController implements PropertyChangeListener {
String commandLine[] = {
"perl",
"-I",
- xmlLib.getProcessingDirectory(),
- xmlLib.getProcessingScript(),
+ LibraryFile.getWorkingDir(),
+ LibraryFile.getWorkingDir()+PROCESSING_SCRIPT,
"-x",
filename,
"-f"
OpenPOWER on IntegriCloud