From 6a7ca2f7733d15f57d278275f55d65c5de0c561e Mon Sep 17 00:00:00 2001 From: Selvasundaram Date: Thu, 24 Nov 2011 15:27:33 +0530 Subject: Mount point parameter enclosed in quotes --- .../management/client/GlusterServersClient.java | 9 +- .../management/console/dialogs/InitDiskDialog.java | 212 +++++++++++++++++++ .../dialogs/InitializeDiskTypeSelection.java | 228 --------------------- .../console/views/pages/AbstractDisksPage.java | 26 +-- .../management/core/constants/RESTConstants.java | 2 +- .../core/response/FsTypeListResponse.java | 47 +++++ .../resources/v1_0/GlusterServersResource.java | 13 +- .../gateway/services/GlusterServerService.java | 6 +- .../gateway/tasks/InitializeDiskTask.java | 8 +- .../management/gateway/utils/ServerUtil.java | 5 +- 10 files changed, 295 insertions(+), 261 deletions(-) create mode 100644 src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/dialogs/InitDiskDialog.java delete mode 100644 src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/dialogs/InitializeDiskTypeSelection.java create mode 100644 src/com.gluster.storage.management.core/src/com/gluster/storage/management/core/response/FsTypeListResponse.java diff --git a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterServersClient.java b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterServersClient.java index cb3519b1..5fefedc0 100644 --- a/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterServersClient.java +++ b/src/com.gluster.storage.management.client/src/com/gluster/storage/management/client/GlusterServersClient.java @@ -30,6 +30,7 @@ import javax.ws.rs.core.MultivaluedMap; import com.gluster.storage.management.core.constants.RESTConstants; import com.gluster.storage.management.core.model.GlusterServer; import com.gluster.storage.management.core.model.ServerStats; +import com.gluster.storage.management.core.response.FsTypeListResponse; import com.gluster.storage.management.core.response.GlusterServerListResponse; import com.gluster.storage.management.core.response.StringListResponse; import com.gluster.storage.management.core.utils.GlusterCoreUtil; @@ -77,10 +78,10 @@ public class GlusterServersClient extends AbstractClient { return postRequest(form); } - public List getFSType(String serverName) { - List fsType = ((StringListResponse) fetchSubResource(serverName + "/" + RESTConstants.RESOURCE_FSTYPE, - StringListResponse.class)).getData(); - return fsType; + public List getFSTypes(String serverName) { + FsTypeListResponse fsTypeListResponse = ((FsTypeListResponse) fetchSubResource(serverName + "/" + RESTConstants.RESOURCE_FSTYPES, + FsTypeListResponse.class)); + return fsTypeListResponse.getFsTypes(); } public URI initializeDisk(String serverName, String diskName, String fsType, String mountPoint) { diff --git a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/dialogs/InitDiskDialog.java b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/dialogs/InitDiskDialog.java new file mode 100644 index 00000000..870de286 --- /dev/null +++ b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/dialogs/InitDiskDialog.java @@ -0,0 +1,212 @@ +/******************************************************************************* + * + * InitializeDiskTypeSelection.java + * + * Copyright (c) 2011 Gluster, Inc. + * This file is part of Gluster Management Console. + * + * Gluster Management Console is free software; you can redistribute it and/or + * modify it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Gluster Management Console is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License + * for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see + * . + *******************************************************************************/ +package com.gluster.storage.management.console.dialogs; + +import java.util.List; + +import org.eclipse.jface.dialogs.Dialog; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.ModifyEvent; +import org.eclipse.swt.events.ModifyListener; +import org.eclipse.swt.events.TraverseEvent; +import org.eclipse.swt.events.TraverseListener; +import org.eclipse.swt.graphics.Color; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Combo; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.swt.widgets.Text; +import org.eclipse.ui.forms.events.HyperlinkAdapter; +import org.eclipse.ui.forms.events.HyperlinkEvent; +import org.eclipse.ui.forms.widgets.Hyperlink; + +import com.gluster.storage.management.console.utils.GUIHelper; + +public class InitDiskDialog extends Dialog { + + private Combo formatTypeCombo = null; + private final GUIHelper guiHelper = GUIHelper.getInstance(); + private Composite initializeDiskTypeComposite; + private Composite composite; + private String fsType; + private String mountPoint; + private Text mountPointText; + private String deviceName; + private List fsTypes; + private static final String DEFAULT_MOUNT_POINT = "/export/"; + + public InitDiskDialog(Shell parentShell, String deviceName, List fsTypes) { + super(parentShell); + this.fsTypes = fsTypes; + this.deviceName = deviceName; + } + + @Override + protected void configureShell(Shell newShell) { + super.configureShell(newShell); + + newShell.setText("Gluster Management Console - Select File System Type"); + addEscapeListener(newShell); + } + + private void addEscapeListener(Shell shell) { + shell.addTraverseListener(new TraverseListener() { + + @Override + public void keyTraversed(TraverseEvent e) { + if (e.keyCode == SWT.ESC) { + cancelPressed(); + } + } + }); + } + + @Override + protected Control createDialogArea(Composite parent) { + // Makes sure that child composites inherit the same background + parent.setBackgroundMode(SWT.INHERIT_FORCE); + + composite = (Composite) super.createDialogArea(parent); + configureDialogLayout(composite); + createComposite(composite); + return composite; + } + + private void configureDialogLayout(Composite composite) { + GridLayout layout = (GridLayout) composite.getLayout(); + layout.numColumns = 3; + layout.marginLeft = 20; + layout.marginRight = 20; + layout.marginTop = 20; + layout.horizontalSpacing = 20; + layout.verticalSpacing = 20; + } + + private void createComposite(Composite composite) { + initializeDiskTypeComposite = new Composite(composite, SWT.NONE); + GridLayout layout = new GridLayout(3, false); + initializeDiskTypeComposite.setLayout(layout); + + createLabel(initializeDiskTypeComposite, "File system "); + createFormatTypeCombo(initializeDiskTypeComposite); + createLabel(initializeDiskTypeComposite, "Mount point "); + createMountPointText(initializeDiskTypeComposite); + createChangeLink(initializeDiskTypeComposite); + } + + private void createLabel(Composite composite, String labelText) { + Label formatTypeLabel = new Label(composite, SWT.NONE); + formatTypeLabel.setText(labelText); + formatTypeLabel.setLayoutData(new GridData(GridData.BEGINNING, GridData.CENTER, false, false)); + } + + private void createFormatTypeCombo(Composite composite) { + formatTypeCombo = new Combo(composite, SWT.READ_ONLY); + formatTypeCombo.setItems(fsTypes.toArray(new String[0])); + formatTypeCombo.select(0); + new Label(composite, SWT.NONE); + } + + private void createMountPointText(Composite container) { + mountPointText = new Text(container, SWT.BORDER); + GridData txtNameData = new GridData(SWT.LEFT, SWT.CENTER, true, false, 1, 1); + txtNameData.widthHint = 400; + mountPointText.setTextLimit(100); + mountPointText.setLayoutData(txtNameData); + mountPointText.setText(DEFAULT_MOUNT_POINT + deviceName); + mountPointText.setEnabled(false); + mountPointText.addModifyListener(new ModifyListener() { + @Override + public void modifyText(ModifyEvent e) { + validateMountPoint(); + } + }); + } + + private void createChangeLink(Composite container) { + final Hyperlink changeLink = new Hyperlink(container, SWT.UNDERLINE_SINGLE); + changeLink.setText("change"); + changeLink.setUnderlined(true); + changeLink.setForeground(new Color(Display.getDefault(), 0, 0, 255)); + + changeLink.addHyperlinkListener(new HyperlinkAdapter() { + @Override + public void linkActivated(HyperlinkEvent e) { + if (!mountPointText.isEnabled()) { + changeLink.setVisible(false); + mountPointText.setEnabled(true); + } + } + }); + } + + @Override + protected void okPressed() { + fsType = formatTypeCombo.getText().trim(); + mountPoint = mountPointText.getText().trim(); + if (validateForm()) { + super.okPressed(); + } else { + MessageDialog.openError(getShell(), "Initialize Disk - Error", "Please enter a valid mount point"); + } + } + + @Override + public void cancelPressed() { + super.cancelPressed(); + } + + private boolean validateMountPoint() { + String mountPoint = mountPointText.getText().trim(); + if (mountPoint.isEmpty()) { + return false; + } + return mountPoint.matches("^/.+"); + } + + private boolean validateForm() { + return (!formatTypeCombo.getText().trim().isEmpty() && validateMountPoint()); + } + + /** + * Overriding to make sure that the dialog is centered in screen + */ + @Override + protected void initializeBounds() { + super.initializeBounds(); + + guiHelper.centerShellInScreen(getShell()); + } + + public String getFSType() { + return fsType; + } + + public String getMountPoint() { + return mountPoint; + } +} diff --git a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/dialogs/InitializeDiskTypeSelection.java b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/dialogs/InitializeDiskTypeSelection.java deleted file mode 100644 index b484d6d2..00000000 --- a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/dialogs/InitializeDiskTypeSelection.java +++ /dev/null @@ -1,228 +0,0 @@ -/******************************************************************************* - * - * InitializeDiskTypeSelection.java - * - * Copyright (c) 2011 Gluster, Inc. - * This file is part of Gluster Management Console. - * - * Gluster Management Console is free software; you can redistribute it and/or - * modify it under the terms of the GNU Affero General Public License as published - * by the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * Gluster Management Console is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License - * for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see - * . - *******************************************************************************/ -package com.gluster.storage.management.console.dialogs; - -import java.util.List; - -import org.eclipse.jface.dialogs.Dialog; -import org.eclipse.jface.dialogs.MessageDialog; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.ModifyEvent; -import org.eclipse.swt.events.ModifyListener; -import org.eclipse.swt.events.TraverseEvent; -import org.eclipse.swt.events.TraverseListener; -import org.eclipse.swt.graphics.Color; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Combo; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.swt.widgets.Text; -import org.eclipse.ui.forms.events.HyperlinkAdapter; -import org.eclipse.ui.forms.events.HyperlinkEvent; -import org.eclipse.ui.forms.widgets.Hyperlink; - -import com.gluster.storage.management.console.utils.GUIHelper; - -public class InitializeDiskTypeSelection extends Dialog { - - private Combo formatTypeCombo = null; - private final GUIHelper guiHelper = GUIHelper.getInstance(); - private Composite initializeDiskTypeComposite; - private Composite composite; - private String fsType; - private String mountPointText; - private Text mountPoint; - private String deviceName; - private List possibleFsType; - private String defaultMountPoint = "/export/"; - - public InitializeDiskTypeSelection(Shell parentShell, String formatingDeviceName, List possibleFsType) { - super(parentShell); - this.possibleFsType = possibleFsType; - this.deviceName = formatingDeviceName; - // TODO Auto-generated constructor stub - } - - @Override - protected void configureShell(Shell newShell) { - super.configureShell(newShell); - - newShell.setText("Gluster Management Console - Select File System Type"); - addEscapeListener(newShell); - } - - private void addEscapeListener(Shell shell) { - shell.addTraverseListener(new TraverseListener() { - - @Override - public void keyTraversed(TraverseEvent e) { - if (e.keyCode == SWT.ESC) { - cancelPressed(); - } - } - }); - } - - @Override - protected Control createDialogArea(Composite parent) { - // Makes sure that child composites inherit the same background - parent.setBackgroundMode(SWT.INHERIT_FORCE); - - composite = (Composite) super.createDialogArea(parent); - configureDialogLayout(composite); - createComposite(composite); - return composite; - } - - private void configureDialogLayout(Composite composite) { - GridLayout layout = (GridLayout) composite.getLayout(); - layout.numColumns = 3; - layout.marginLeft = 20; - layout.marginRight = 20; - layout.marginTop = 20; - layout.horizontalSpacing = 20; - layout.verticalSpacing = 20; - } - - private void createComposite(Composite composite) { - initializeDiskTypeComposite = new Composite(composite, SWT.NONE); - GridLayout layout = new GridLayout(3, false); - initializeDiskTypeComposite.setLayout(layout); - - createLabel(initializeDiskTypeComposite, "File system "); - createFormatTypeCombo(initializeDiskTypeComposite); - createLabel(initializeDiskTypeComposite, "Mount point "); - createMountPointText(initializeDiskTypeComposite); - createChangeLink(initializeDiskTypeComposite); - } - - private void createLabel(Composite composite, String labelText) { - Label formatTypeLabel = new Label(composite, SWT.NONE); - formatTypeLabel.setText(labelText); - formatTypeLabel.setLayoutData(new GridData(GridData.BEGINNING, GridData.CENTER, false, false)); - } - - private void createFormatTypeCombo(Composite composite) { - formatTypeCombo = new Combo(composite, SWT.READ_ONLY); - formatTypeCombo.setItems(possibleFsType.toArray(new String[0])); - formatTypeCombo.select(0); - new Label(composite, SWT.NONE); - } - - private void createMountPointText(Composite container) { - mountPoint = new Text(container, SWT.BORDER); - GridData txtNameData = new GridData(SWT.LEFT, SWT.CENTER, true, false, 1, 1); - txtNameData.horizontalSpan = 1; - txtNameData.widthHint = 400; - mountPoint.setTextLimit(100); - mountPoint.setLayoutData(txtNameData); - mountPoint.setText(defaultMountPoint + deviceName); - mountPoint.setEnabled(false); - mountPoint.addModifyListener(new ModifyListener() { - @Override - public void modifyText(ModifyEvent e) { - validateMountPoint(mountPoint.getText().trim()); - } - }); - } - - private void createChangeLink(Composite container) { - final Hyperlink changeLink = new Hyperlink(container, SWT.UNDERLINE_SINGLE); - changeLink.setText("change"); - changeLink.setUnderlined(true); - changeLink.setForeground(new Color(Display.getDefault(), 0, 0, 255)); - - changeLink.addHyperlinkListener(new HyperlinkAdapter() { - - // private void finishEdit() { - // changeLink.setText("change"); - // mountPoint.setEnabled(false); - // } - - private void startEdit() { - // changeLink.setText("update"); - changeLink.setVisible(false); - mountPoint.setEnabled(true); - } - - @Override - public void linkActivated(HyperlinkEvent e) { - if (mountPoint.isEnabled()) { - // we were already in edit mode. - // finishEdit(); - } else { - // Get in to edit mode - startEdit(); - } - } - }); - } - - @Override - protected void okPressed() { - fsType = formatTypeCombo.getText().trim(); - mountPointText = mountPoint.getText().trim(); - if (validateForm()) { - super.okPressed(); - } else { - MessageDialog.openError(getShell(), "Error: Validation error!", "Empty or Invalid mountpoint."); - } - } - - @Override - public void cancelPressed() { - super.cancelPressed(); - } - - private boolean validateMountPoint(String deviceMountPoint) { - if (deviceMountPoint.isEmpty()) { - return false; - } - return deviceMountPoint.matches("^/.+"); - } - - private boolean validateForm() { - return (!formatTypeCombo.getText().trim().isEmpty() && validateMountPoint( mountPoint.getText().trim())); - } - - /** - * Overriding to make sure that the dialog is centered in screen - */ - @Override - protected void initializeBounds() { - super.initializeBounds(); - - guiHelper.centerShellInScreen(getShell()); - } - - public String getFSType() { - return fsType; - } - - public String getMountPoint() { - return mountPointText; - } -} diff --git a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/views/pages/AbstractDisksPage.java b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/views/pages/AbstractDisksPage.java index b131ccc2..43a7e61a 100644 --- a/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/views/pages/AbstractDisksPage.java +++ b/src/com.gluster.storage.management.console/src/com/gluster/storage/management/console/views/pages/AbstractDisksPage.java @@ -45,7 +45,8 @@ import com.gluster.storage.management.client.TasksClient; import com.gluster.storage.management.console.Application; import com.gluster.storage.management.console.GlusterDataModelManager; import com.gluster.storage.management.console.IEntityListener; -import com.gluster.storage.management.console.dialogs.InitializeDiskTypeSelection; +import com.gluster.storage.management.console.dialogs.InitDiskDialog; +import com.gluster.storage.management.console.utils.GlusterLogger; import com.gluster.storage.management.core.exceptions.GlusterRuntimeException; import com.gluster.storage.management.core.model.ClusterListener; import com.gluster.storage.management.core.model.DefaultClusterListener; @@ -61,6 +62,7 @@ import com.gluster.storage.management.core.model.TaskInfo; public abstract class AbstractDisksPage extends AbstractTableTreeViewerPage implements IEntityListener { protected List disks; + protected static final GlusterLogger logger = GlusterLogger.getInstance(); /** * @return Index of the "status" column in the table. Return -1 if status column is not displayed @@ -71,7 +73,7 @@ public abstract class AbstractDisksPage extends AbstractTableTreeViewerPage possibleFsType = new ArrayList(); + List fsTypes = new ArrayList(); try { - possibleFsType = serversClient.getFSType(device.getServerName()); - } catch (GlusterRuntimeException eFsType) { - MessageDialog.openError(getShell(), "Error: File System Type", eFsType.getMessage()); + fsTypes = serversClient.getFSTypes(device.getServerName()); + } catch (GlusterRuntimeException e1) { + MessageDialog.openError(getShell(), "Initialize disk - Error", e1.getMessage()); return; } - InitializeDiskTypeSelection formatDialog = new InitializeDiskTypeSelection(getShell(), device.getName(), possibleFsType); + InitDiskDialog formatDialog = new InitDiskDialog(getShell(), device.getName(), fsTypes); int userAction = formatDialog.open(); if (userAction == Window.CANCEL) { - formatDialog.cancelPressed(); + // formatDialog.cancelPressed(); return; } @@ -296,12 +298,12 @@ public abstract class AbstractDisksPage extends AbstractTableTreeViewerPage + * This file is part of Gluster Management Console. + * + * Gluster Management Console is free software; you can redistribute it and/or + * modify it under the terms of the GNU Affero General Public License as published + * by the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Gluster Management Console is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License + * for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see + * . + */ +package com.gluster.storage.management.core.response; + +import java.util.List; + +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; + +@XmlRootElement(name = "fsTypes") +public class FsTypeListResponse { + private List fsTypes; + + public FsTypeListResponse() { + } + + public FsTypeListResponse(List fsTypes) { + setFsTypes(fsTypes); + } + + @XmlElement(name = "fsType", type=String.class) + public List getFsTypes() { + return fsTypes; + } + + public void setFsTypes(List fsTypes) { + this.fsTypes = fsTypes; + } +} diff --git a/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/resources/v1_0/GlusterServersResource.java b/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/resources/v1_0/GlusterServersResource.java index ccb11726..3c6910fd 100644 --- a/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/resources/v1_0/GlusterServersResource.java +++ b/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/resources/v1_0/GlusterServersResource.java @@ -19,8 +19,8 @@ package com.gluster.storage.management.gateway.resources.v1_0; import static com.gluster.storage.management.core.constants.RESTConstants.FORM_PARAM_FSTYPE; -import static com.gluster.storage.management.core.constants.RESTConstants.FORM_PARAM_SERVER_NAME; import static com.gluster.storage.management.core.constants.RESTConstants.FORM_PARAM_MOUNTPOINT; +import static com.gluster.storage.management.core.constants.RESTConstants.FORM_PARAM_SERVER_NAME; import static com.gluster.storage.management.core.constants.RESTConstants.PATH_PARAM_CLUSTER_NAME; import static com.gluster.storage.management.core.constants.RESTConstants.PATH_PARAM_DISK_NAME; import static com.gluster.storage.management.core.constants.RESTConstants.PATH_PARAM_SERVER_NAME; @@ -31,7 +31,7 @@ import static com.gluster.storage.management.core.constants.RESTConstants.QUERY_ import static com.gluster.storage.management.core.constants.RESTConstants.QUERY_PARAM_PERIOD; import static com.gluster.storage.management.core.constants.RESTConstants.QUERY_PARAM_TYPE; import static com.gluster.storage.management.core.constants.RESTConstants.RESOURCE_DISKS; -import static com.gluster.storage.management.core.constants.RESTConstants.RESOURCE_FSTYPE; +import static com.gluster.storage.management.core.constants.RESTConstants.RESOURCE_FSTYPES; import static com.gluster.storage.management.core.constants.RESTConstants.RESOURCE_PATH_CLUSTERS; import static com.gluster.storage.management.core.constants.RESTConstants.RESOURCE_SERVERS; import static com.gluster.storage.management.core.constants.RESTConstants.RESOURCE_STATISTICS; @@ -63,9 +63,9 @@ import com.gluster.storage.management.core.exceptions.GlusterValidationException import com.gluster.storage.management.core.model.GlusterServer; import com.gluster.storage.management.core.model.ServerStats; import com.gluster.storage.management.core.model.TaskStatus; +import com.gluster.storage.management.core.response.FsTypeListResponse; import com.gluster.storage.management.core.response.GlusterServerListResponse; import com.gluster.storage.management.core.response.ServerNameListResponse; -import com.gluster.storage.management.core.response.StringListResponse; import com.gluster.storage.management.gateway.data.ClusterInfo; import com.gluster.storage.management.gateway.services.ClusterService; import com.gluster.storage.management.gateway.services.GlusterServerService; @@ -202,9 +202,10 @@ public class GlusterServersResource extends AbstractResource { @GET @Produces(MediaType.APPLICATION_XML) - @Path("{" + PATH_PARAM_SERVER_NAME + "}/" + RESOURCE_FSTYPE) - public StringListResponse getFsType(@PathParam(PATH_PARAM_CLUSTER_NAME) String clusterName, @PathParam(PATH_PARAM_SERVER_NAME) String serverName) { - return glusterServerService.getFsType(clusterName, serverName); + @Path("{" + PATH_PARAM_SERVER_NAME + "}/" + RESOURCE_FSTYPES) + public FsTypeListResponse getFsTypes(@PathParam(PATH_PARAM_CLUSTER_NAME) String clusterName, @PathParam(PATH_PARAM_SERVER_NAME) String serverName) { + List fsTypes = glusterServerService.getFsTypes(clusterName, serverName); + return new FsTypeListResponse(fsTypes); } @PUT diff --git a/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/services/GlusterServerService.java b/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/services/GlusterServerService.java index fcaec52e..b20fb2fe 100644 --- a/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/services/GlusterServerService.java +++ b/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/services/GlusterServerService.java @@ -520,11 +520,11 @@ public class GlusterServerService { } } - public StringListResponse getFsType(String clusterName, String serverName) { + public List getFsTypes(String clusterName, String serverName) { if (isValidServer(clusterName, serverName)) { - return serverUtil.getFsType(serverName); + return serverUtil.getFsTypes(serverName); } else { - throw new GlusterRuntimeException(serverName + " is not belongs to the cluster [" + clusterName + "]"); + throw new GlusterRuntimeException(serverName + " does not belong to the cluster [" + clusterName + "]"); } } } diff --git a/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/tasks/InitializeDiskTask.java b/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/tasks/InitializeDiskTask.java index ffb9619d..73b1e78f 100644 --- a/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/tasks/InitializeDiskTask.java +++ b/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/tasks/InitializeDiskTask.java @@ -47,7 +47,7 @@ public class InitializeDiskTask extends Task { private ServerUtil serverUtil; public InitializeDiskTask(ClusterService clusterService, String clusterName, String serverName, String diskName, - String fsType, String deviceMountPoint) { + String fsType, String mountPoint) { // Reference contains "Server:disk" super(clusterService, clusterName, TASK_TYPE.DISK_FORMAT, serverName + ":" + diskName, "Initialize disk " + serverName + ":" + diskName, false, false, false); @@ -55,7 +55,7 @@ public class InitializeDiskTask extends Task { setServerName(serverName); setDiskName(diskName); setFsType(fsType); - setMountpoint(deviceMountPoint); + setMountpoint(mountPoint); taskInfo.setName(getId()); init(); } @@ -119,8 +119,8 @@ public class InitializeDiskTask extends Task { } private void startInitializeDisk(String serverName) { - String output = serverUtil.executeScriptOnServer(serverName, INITIALIZE_DISK_SCRIPT + getFsType() + " " - + mountPoint + " " + getDiskName() ); + String output = serverUtil.executeScriptOnServer(serverName, INITIALIZE_DISK_SCRIPT + " " + getFsType() + " \"" + + getMountpoint() + "\" " + getDiskName() ); TaskStatus taskStatus = new TaskStatus(new Status(Status.STATUS_CODE_RUNNING, output)); taskStatus.setPercentageSupported((getFsType().equals(GlusterConstants.FSTYPE_XFS)) ? false : true); getTaskInfo().setStatus(taskStatus); diff --git a/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/utils/ServerUtil.java b/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/utils/ServerUtil.java index b53d0042..63f2bbf4 100644 --- a/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/utils/ServerUtil.java +++ b/src/com.gluster.storage.management.gateway/src/com/gluster/storage/management/gateway/utils/ServerUtil.java @@ -363,9 +363,8 @@ public class ServerUtil { return ctx.getBean(clazz); } - public StringListResponse getFsType(String serverName) { + public List getFsTypes(String serverName) { String output = executeScriptOnServer(serverName, REMOTE_SCRIPT_GET_FILE_SYSTEM_TYPE); - StringListResponse response = new StringListResponse(Arrays.asList(output.trim().split(CoreConstants.NEWLINE))); - return response; + return Arrays.asList(output.trim().split(CoreConstants.NEWLINE)); } } -- cgit