[gnome-disk-utility] Remove MD-RAID support



commit 820e2d3d325aef3574e207a5df73e7480ed41dda
Author: David Zeuthen <zeuthen gmail com>
Date:   Sat Jan 18 15:47:52 2014 -0800

    Remove MD-RAID support
    
    Signed-off-by: David Zeuthen <zeuthen gmail com>

 data/ui/Makefile.am                  |    2 -
 data/ui/create-raid-array-dialog.ui  |  266 --------
 data/ui/disks.ui                     |  226 +------
 data/ui/md-raid-disks-dialog.ui      |  323 ----------
 po/POTFILES.in                       |    4 -
 src/disks/Makefile.am                |    2 -
 src/disks/gducreateraidarraydialog.c |  602 -----------------
 src/disks/gducreateraidarraydialog.h |   23 -
 src/disks/gdudevicetreemodel.c       |  344 +----------
 src/disks/gdumdraiddisksdialog.c     | 1178 ----------------------------------
 src/disks/gdumdraiddisksdialog.h     |   23 -
 src/disks/gduvolumegrid.c            |   33 -
 src/disks/gduwindow.c                |  854 +------------------------
 src/libgdu/gduutils.c                |   72 --
 src/libgdu/gduutils.h                |    4 -
 src/notify/gdusdmonitor.c            |   60 --
 16 files changed, 31 insertions(+), 3985 deletions(-)
---
diff --git a/data/ui/Makefile.am b/data/ui/Makefile.am
index d1c68c6..c9d4aea 100644
--- a/data/ui/Makefile.am
+++ b/data/ui/Makefile.am
@@ -24,8 +24,6 @@ ui_DATA =                             \
        app-menu.ui                     \
        benchmark-dialog.ui             \
        disk-settings-dialog.ui         \
-       md-raid-disks-dialog.ui         \
-       create-raid-array-dialog.ui     \
        erase-multiple-disks-dialog.ui  \
        $(NULL)
 
diff --git a/data/ui/disks.ui b/data/ui/disks.ui
index f359741..cc0b601 100644
--- a/data/ui/disks.ui
+++ b/data/ui/disks.ui
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.16.0 on Sat Jan 18 15:06:33 2014 -->
+<!-- Generated with glade 3.16.0 on Sat Jan 18 15:34:43 2014 -->
 <interface>
   <!-- interface-requires gtk+ 3.10 -->
   <object class="GtkWindow" id="disks-window">
@@ -105,7 +105,7 @@
                   <object class="GtkTable" id="devtab-drive-table">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
-                    <property name="n_rows">15</property>
+                    <property name="n_rows">12</property>
                     <property name="n_columns">2</property>
                     <property name="column_spacing">10</property>
                     <child>
@@ -152,8 +152,8 @@
                         </style>
                       </object>
                       <packing>
-                        <property name="top_attach">10</property>
-                        <property name="bottom_attach">11</property>
+                        <property name="top_attach">7</property>
+                        <property name="bottom_attach">8</property>
                         <property name="x_options">GTK_FILL</property>
                         <property name="y_options"/>
                         <property name="y_padding">4</property>
@@ -171,8 +171,8 @@
                       <packing>
                         <property name="left_attach">1</property>
                         <property name="right_attach">2</property>
-                        <property name="top_attach">10</property>
-                        <property name="bottom_attach">11</property>
+                        <property name="top_attach">7</property>
+                        <property name="bottom_attach">8</property>
                         <property name="x_options">GTK_FILL</property>
                         <property name="y_options"/>
                         <property name="y_padding">4</property>
@@ -189,8 +189,8 @@
                         </style>
                       </object>
                       <packing>
-                        <property name="top_attach">11</property>
-                        <property name="bottom_attach">12</property>
+                        <property name="top_attach">8</property>
+                        <property name="bottom_attach">9</property>
                         <property name="x_options">GTK_FILL</property>
                         <property name="y_options"/>
                         <property name="y_padding">4</property>
@@ -208,8 +208,8 @@
                       <packing>
                         <property name="left_attach">1</property>
                         <property name="right_attach">2</property>
-                        <property name="top_attach">11</property>
-                        <property name="bottom_attach">12</property>
+                        <property name="top_attach">8</property>
+                        <property name="bottom_attach">9</property>
                         <property name="x_options">GTK_FILL</property>
                         <property name="y_options"/>
                         <property name="y_padding">4</property>
@@ -226,8 +226,8 @@
                         </style>
                       </object>
                       <packing>
-                        <property name="top_attach">12</property>
-                        <property name="bottom_attach">13</property>
+                        <property name="top_attach">9</property>
+                        <property name="bottom_attach">10</property>
                         <property name="x_options">GTK_FILL</property>
                         <property name="y_options"/>
                         <property name="y_padding">4</property>
@@ -245,8 +245,8 @@
                       <packing>
                         <property name="left_attach">1</property>
                         <property name="right_attach">2</property>
-                        <property name="top_attach">12</property>
-                        <property name="bottom_attach">13</property>
+                        <property name="top_attach">9</property>
+                        <property name="bottom_attach">10</property>
                         <property name="x_options">GTK_FILL</property>
                         <property name="y_options"/>
                         <property name="y_padding">4</property>
@@ -300,8 +300,8 @@
                         </style>
                       </object>
                       <packing>
-                        <property name="top_attach">13</property>
-                        <property name="bottom_attach">14</property>
+                        <property name="top_attach">10</property>
+                        <property name="bottom_attach">11</property>
                         <property name="x_options">GTK_FILL</property>
                         <property name="y_options"/>
                         <property name="y_padding">4</property>
@@ -319,8 +319,8 @@
                       <packing>
                         <property name="left_attach">1</property>
                         <property name="right_attach">2</property>
-                        <property name="top_attach">13</property>
-                        <property name="bottom_attach">14</property>
+                        <property name="top_attach">10</property>
+                        <property name="bottom_attach">11</property>
                         <property name="x_options">GTK_FILL</property>
                         <property name="y_options"/>
                         <property name="y_padding">4</property>
@@ -338,8 +338,8 @@
                         </style>
                       </object>
                       <packing>
-                        <property name="top_attach">14</property>
-                        <property name="bottom_attach">15</property>
+                        <property name="top_attach">11</property>
+                        <property name="bottom_attach">12</property>
                         <property name="x_options">GTK_FILL</property>
                         <property name="y_options">GTK_FILL</property>
                         <property name="y_padding">4</property>
@@ -420,8 +420,8 @@
                       <packing>
                         <property name="left_attach">1</property>
                         <property name="right_attach">2</property>
-                        <property name="top_attach">14</property>
-                        <property name="bottom_attach">15</property>
+                        <property name="top_attach">11</property>
+                        <property name="bottom_attach">12</property>
                         <property name="y_options"/>
                       </packing>
                     </child>
@@ -463,43 +463,6 @@
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkLabel" id="devtab-drive-raidlevel-value-label">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="hexpand">True</property>
-                        <property name="xalign">0</property>
-                        <property name="selectable">True</property>
-                        <property name="ellipsize">end</property>
-                      </object>
-                      <packing>
-                        <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
-                        <property name="top_attach">7</property>
-                        <property name="bottom_attach">8</property>
-                        <property name="x_options">GTK_FILL</property>
-                        <property name="y_options"/>
-                        <property name="y_padding">4</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkLabel" id="devtab-drive-raidlevel-label">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="xalign">1</property>
-                        <property name="label" translatable="yes">RAID Level</property>
-                        <style>
-                          <class name="dim-label"/>
-                        </style>
-                      </object>
-                      <packing>
-                        <property name="top_attach">7</property>
-                        <property name="bottom_attach">8</property>
-                        <property name="x_options">GTK_FILL</property>
-                        <property name="y_options"/>
-                        <property name="y_padding">4</property>
-                      </packing>
-                    </child>
-                    <child>
                       <object class="GtkLabel" id="devtab-drive-size-label">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
@@ -537,79 +500,6 @@
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkLabel" id="devtab-drive-raid-state-label">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="xalign">1</property>
-                        <property name="yalign">0</property>
-                        <property name="label" translatable="yes">State</property>
-                        <style>
-                          <class name="dim-label"/>
-                        </style>
-                      </object>
-                      <packing>
-                        <property name="top_attach">9</property>
-                        <property name="bottom_attach">10</property>
-                        <property name="x_options">GTK_FILL</property>
-                        <property name="y_options">GTK_FILL</property>
-                        <property name="y_padding">4</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkGrid" id="devtab-drive-raid-state-grid">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="row_spacing">6</property>
-                        <property name="column_spacing">6</property>
-                        <child>
-                          <object class="GtkProgressBar" id="devtab-drive-raid-state-progressbar">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="hexpand">True</property>
-                          </object>
-                          <packing>
-                            <property name="left_attach">0</property>
-                            <property name="top_attach">1</property>
-                            <property name="width">1</property>
-                            <property name="height">1</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkLabel" id="devtab-drive-raid-state-value-label">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="xalign">0</property>
-                          </object>
-                          <packing>
-                            <property name="left_attach">0</property>
-                            <property name="top_attach">0</property>
-                            <property name="width">1</property>
-                            <property name="height">1</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkLabel" id="devtab-drive-raid-progress-label">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="xalign">0</property>
-                          </object>
-                          <packing>
-                            <property name="left_attach">0</property>
-                            <property name="top_attach">2</property>
-                            <property name="width">1</property>
-                            <property name="height">1</property>
-                          </packing>
-                        </child>
-                      </object>
-                      <packing>
-                        <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
-                        <property name="top_attach">9</property>
-                        <property name="bottom_attach">10</property>
-                        <property name="y_options"/>
-                      </packing>
-                    </child>
-                    <child>
                       <object class="GtkLabel" id="devtab-loop-autoclear-label">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
@@ -726,49 +616,6 @@
                         <property name="y_padding">4</property>
                       </packing>
                     </child>
-                    <child>
-                      <object class="GtkLabel" id="devtab-drive-raid-bitmap-label">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="xalign">1</property>
-                        <property name="label" translatable="yes">Bitmap</property>
-                        <style>
-                          <class name="dim-label"/>
-                        </style>
-                      </object>
-                      <packing>
-                        <property name="top_attach">8</property>
-                        <property name="bottom_attach">9</property>
-                        <property name="x_options">GTK_FILL</property>
-                        <property name="y_options"/>
-                        <property name="y_padding">4</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkBox" id="devtab-drive-raid-bitmap-switch-box">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <child>
-                          <object class="GtkSwitch" id="devtab-drive-raid-bitmap-switch">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                          </object>
-                          <packing>
-                            <property name="expand">False</property>
-                            <property name="fill">True</property>
-                            <property name="position">0</property>
-                          </packing>
-                        </child>
-                      </object>
-                      <packing>
-                        <property name="left_attach">1</property>
-                        <property name="right_attach">2</property>
-                        <property name="top_attach">8</property>
-                        <property name="bottom_attach">9</property>
-                        <property name="x_options">GTK_FILL</property>
-                        <property name="y_options"/>
-                      </packing>
-                    </child>
                   </object>
                   <packing>
                     <property name="expand">False</property>
@@ -1339,35 +1186,6 @@
         <property name="use_underline">True</property>
       </object>
     </child>
-    <child>
-      <object class="GtkSeparatorMenuItem" id="generic-drive-menu-item-mdraid-sep-1">
-        <property name="visible">True</property>
-        <property name="can_focus">False</property>
-      </object>
-    </child>
-    <child>
-      <object class="GtkMenuItem" id="generic-drive-menu-item-mdraid-disks">
-        <property name="visible">True</property>
-        <property name="can_focus">False</property>
-        <property name="label" translatable="yes">RAID Disks…</property>
-      </object>
-    </child>
-    <child>
-      <object class="GtkMenuItem" id="generic-drive-menu-item-mdraid-start-data-scrubbing">
-        <property name="visible">True</property>
-        <property name="can_focus">False</property>
-        <property name="label" translatable="yes">Start Data Scrubbing…</property>
-        <property name="use_underline">True</property>
-      </object>
-    </child>
-    <child>
-      <object class="GtkMenuItem" id="generic-drive-menu-item-mdraid-stop-data-scrubbing">
-        <property name="visible">True</property>
-        <property name="can_focus">False</property>
-        <property name="label" translatable="yes">Stop Data Scrubbing</property>
-        <property name="use_underline">True</property>
-      </object>
-    </child>
   </object>
   <object class="GtkMenu" id="generic-menu">
     <property name="visible">True</property>
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 0332b4b..8358bb0 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -12,7 +12,6 @@ data/org.gnome.settings-daemon.plugins.gdu-sd.gschema.xml.in.in
 [type: gettext/glade]data/ui/change-passphrase-dialog.ui
 [type: gettext/glade]data/ui/create-disk-image-dialog.ui
 [type: gettext/glade]data/ui/create-partition-dialog.ui
-[type: gettext/glade]data/ui/create-raid-array-dialog.ui
 [type: gettext/glade]data/ui/disk-settings-dialog.ui
 [type: gettext/glade]data/ui/disks.ui
 [type: gettext/glade]data/ui/edit-crypttab-dialog.ui
@@ -25,7 +24,6 @@ data/org.gnome.settings-daemon.plugins.gdu-sd.gschema.xml.in.in
 [type: gettext/glade]data/ui/filesystem-create.ui
 [type: gettext/glade]data/ui/format-disk-dialog.ui
 [type: gettext/glade]data/ui/format-volume-dialog.ui
-[type: gettext/glade]data/ui/md-raid-disks-dialog.ui
 [type: gettext/glade]data/ui/restore-disk-image-dialog.ui
 [type: gettext/glade]data/ui/smart-dialog.ui
 [type: gettext/glade]data/ui/unlock-device-dialog.ui
@@ -37,7 +35,6 @@ src/disks/gduchangepassphrasedialog.c
 src/disks/gducreatediskimagedialog.c
 src/disks/gducreatefilesystemwidget.c
 src/disks/gducreatepartitiondialog.c
-src/disks/gducreateraidarraydialog.c
 src/disks/gducrypttabdialog.c
 src/disks/gdudevicetreemodel.c
 src/disks/gdudisksettingsdialog.c
@@ -47,7 +44,6 @@ src/disks/gdufilesystemdialog.c
 src/disks/gduformatdiskdialog.c
 src/disks/gduformatvolumedialog.c
 src/disks/gdufstabdialog.c
-src/disks/gdumdraiddisksdialog.c
 src/disks/gdupartitiondialog.c
 src/disks/gdupasswordstrengthwidget.c
 src/disks/gdurestorediskimagedialog.c
diff --git a/src/disks/Makefile.am b/src/disks/Makefile.am
index 9c91946..352ff77 100644
--- a/src/disks/Makefile.am
+++ b/src/disks/Makefile.am
@@ -47,8 +47,6 @@ gnome_disks_SOURCES =                                                         \
        gduestimator.h                  gduestimator.c                  \
        gduchangepassphrasedialog.h     gduchangepassphrasedialog.c     \
        gdudisksettingsdialog.h         gdudisksettingsdialog.c         \
-       gdumdraiddisksdialog.h          gdumdraiddisksdialog.c          \
-       gducreateraidarraydialog.h      gducreateraidarraydialog.c      \
        gduerasemultipledisksdialog.h   gduerasemultipledisksdialog.c   \
        gdudvdsupport.h                 gdudvdsupport.c                 \
        gdulocaljob.h                   gdulocaljob.c                   \
diff --git a/src/disks/gdudevicetreemodel.c b/src/disks/gdudevicetreemodel.c
index dd86d44..77ca20f 100644
--- a/src/disks/gdudevicetreemodel.c
+++ b/src/disks/gdudevicetreemodel.c
@@ -34,10 +34,6 @@ struct _GduDeviceTreeModel
   GtkTreeIter block_iter;
   gboolean block_iter_valid;
 
-  GList *current_mdraids;
-  GtkTreeIter mdraid_iter;
-  gboolean mdraid_iter_valid;
-
   guint spinner_timeout;
 
   /* "Polling Every Few Seconds" ... e.g. power state */
@@ -65,10 +61,6 @@ static void coldplug (GduDeviceTreeModel *model);
 static void on_client_changed (UDisksClient  *client,
                                gpointer       user_data);
 
-static gboolean update_mdraid (GduDeviceTreeModel *model,
-                               UDisksObject       *object,
-                               gboolean            from_timer);
-
 static gboolean update_drive (GduDeviceTreeModel *model,
                               UDisksObject       *object,
                               gboolean            from_timer);
@@ -96,9 +88,6 @@ gdu_device_tree_model_finalize (GObject *object)
   g_list_foreach (model->current_drives, (GFunc) g_object_unref, NULL);
   g_list_free (model->current_drives);
 
-  g_list_foreach (model->current_mdraids, (GFunc) g_object_unref, NULL);
-  g_list_free (model->current_mdraids);
-
   g_object_unref (model->application);
 
   G_OBJECT_CLASS (gdu_device_tree_model_parent_class)->finalize (object);
@@ -683,82 +672,6 @@ remove_drive (GduDeviceTreeModel *model,
 
 /* ---------------------------------------------------------------------------------------------------- */
 
-static GtkTreeIter *
-get_mdraid_header_iter (GduDeviceTreeModel *model)
-{
-  gchar *s;
-
-  if (model->flags & GDU_DEVICE_TREE_MODEL_FLAGS_FLAT)
-    return NULL;
-
-  if (model->mdraid_iter_valid)
-    goto out;
-
-  s = g_strdup_printf ("<small>%s</small>",
-                       _("RAID Arrays"));
-  gtk_tree_store_insert_with_values (GTK_TREE_STORE (model),
-                                     &model->mdraid_iter,
-                                     NULL, /* GtkTreeIter *parent */
-                                     0,
-                                     GDU_DEVICE_TREE_MODEL_COLUMN_IS_HEADING, TRUE,
-                                     GDU_DEVICE_TREE_MODEL_COLUMN_HEADING_TEXT, s,
-                                     GDU_DEVICE_TREE_MODEL_COLUMN_SORT_KEY, "01_mdraid_0",
-                                     -1);
-  g_free (s);
-
-  model->mdraid_iter_valid = TRUE;
-
- out:
-  return &model->mdraid_iter;
-}
-
-static void
-nuke_mdraid_header (GduDeviceTreeModel *model)
-{
-  if (model->mdraid_iter_valid)
-    {
-      gtk_tree_store_remove (GTK_TREE_STORE (model), &model->mdraid_iter);
-      model->mdraid_iter_valid = FALSE;
-    }
-}
-
-static void
-add_mdraid (GduDeviceTreeModel *model,
-            UDisksObject       *object,
-            GtkTreeIter        *parent)
-{
-  GtkTreeIter iter;
-  gtk_tree_store_insert_with_values (GTK_TREE_STORE (model),
-                                     &iter,
-                                     parent,
-                                     0,
-                                     GDU_DEVICE_TREE_MODEL_COLUMN_OBJECT, object,
-                                     -1);
-}
-
-static void
-remove_mdraid (GduDeviceTreeModel *model,
-               UDisksObject       *object)
-{
-  GtkTreeIter iter;
-
-  if (!find_iter_for_object (model,
-                             object,
-                             &iter))
-    {
-      g_warning ("Error finding iter for object at %s",
-                 g_dbus_object_get_object_path (G_DBUS_OBJECT (object)));
-      goto out;
-    }
-
-  gtk_tree_store_remove (GTK_TREE_STORE (model), &iter);
-
- out:
-  ;
-}
-
-/* ---------------------------------------------------------------------------------------------------- */
-
 static gboolean
 object_has_jobs (GduDeviceTreeModel *model,
                  UDisksObject       *object)
@@ -884,46 +797,12 @@ drive_has_jobs (GduDeviceTreeModel *model,
 /* ---------------------------------------------------------------------------------------------------- */
 
 static gboolean
-mdraid_has_jobs (GduDeviceTreeModel *model,
-                 UDisksMDRaid       *mdraid)
-{
-  gboolean ret = FALSE;
-  UDisksBlock *block = NULL;
-
-  if (iface_has_jobs (model, G_DBUS_INTERFACE (mdraid)))
-    {
-      ret = TRUE;
-      goto out;
-    }
-
-  block = udisks_client_get_block_for_mdraid (model->client, mdraid);
-  if (block != NULL && block_has_jobs (model, block))
-    {
-      ret = TRUE;
-      goto out;
-    }
-
-  out:
-  g_clear_object (&block);
-  return ret;
-}
-
-/* ---------------------------------------------------------------------------------------------------- */
-
-static gboolean
 on_spinner_timeout (gpointer user_data)
 {
   GduDeviceTreeModel *model = GDU_DEVICE_TREE_MODEL (user_data);
   GList *l;
   gboolean keep_animating = FALSE;
 
-  for (l = model->current_mdraids; l != NULL; l = l->next)
-    {
-      UDisksObject *object = UDISKS_OBJECT (l->data);
-      if (update_mdraid (model, object, TRUE))
-        keep_animating = TRUE;
-    }
-
   for (l = model->current_drives; l != NULL; l = l->next)
     {
       UDisksObject *object = UDISKS_OBJECT (l->data);
@@ -1126,216 +1005,6 @@ update_drives (GduDeviceTreeModel *model)
 
 /* ---------------------------------------------------------------------------------------------------- */
 
-static gboolean
-update_mdraid (GduDeviceTreeModel *model,
-               UDisksObject       *object,
-               gboolean            from_timer)
-{
-  UDisksObjectInfo *info = NULL;
-  UDisksMDRaid *mdraid = NULL;
-  UDisksBlock *block = NULL;
-  const gchar *name;
-  gchar *desc = NULL;
-  gchar *desc2 = NULL;
-  gchar *s = NULL;
-  gboolean warning = FALSE;
-  gboolean jobs_running = FALSE;
-  GtkTreeIter iter;
-  guint pulse;
-  guint64 size = 0;
-
-  if (!find_iter_for_object (model,
-                             object,
-                             &iter))
-    {
-      g_warning ("Error finding iter for object at %s",
-                 g_dbus_object_get_object_path (G_DBUS_OBJECT (object)));
-      goto out;
-    }
-
-  mdraid = udisks_object_peek_mdraid (object);
-  block = udisks_client_get_block_for_mdraid (model->client, mdraid);
-  info = udisks_client_get_object_info (model->client, object);
-
-  name = udisks_mdraid_get_name (mdraid);
-  /* skip homehost, if any */
-  s = strstr (name, ":");
-  if (s != NULL)
-    {
-      name = s + 1;
-      s = NULL;
-    }
-
-  size = udisks_mdraid_get_size (mdraid);
-  if (size > 0)
-    {
-      s = udisks_client_get_size_for_display (model->client, size, FALSE, FALSE);
-      /* Translators: Used in the device tree for a RAID Array, the first %s is the size */
-      desc = g_strdup_printf (C_("md-raid-tree-primary", "%s RAID Array"), s);
-      g_free (s);
-    }
-  else
-    {
-      /* Translators: Used in the device tree for a RAID Array where the size is not known  */
-      desc = g_strdup (C_("md-raid-tree-primary", "RAID Array"));
-    }
-
-
-  if (name != NULL && strlen (name) > 0)
-    {
-      s = gdu_utils_format_mdraid_level (udisks_mdraid_get_level (mdraid), FALSE, FALSE);
-      /* Translators: Used as a secondary line in device tree for RAID Array.
-       *              The first %s is the name of the array (e.g. "My RAID Array").
-       *              The second %s is the RAID level (e.g. "RAID-5").
-       */
-      desc2 = g_strdup_printf (C_("md-raid-tree-secondary", "%s (%s)"), name, s);
-      g_free (s);
-    }
-  else
-    {
-      desc2 = gdu_utils_format_mdraid_level (udisks_mdraid_get_level (mdraid), FALSE, FALSE);
-    }
-
-  if (udisks_mdraid_get_degraded (mdraid) > 0)
-    warning = TRUE;
-
-  if (warning)
-    {
-      /* TODO: once https://bugzilla.gnome.org/show_bug.cgi?id=657194 is resolved, use that instead
-       * of hard-coding the color
-       */
-      s = g_strdup_printf ("<span foreground=\"#ff0000\">%s</span>"
-                           "%s"
-                           "<small><span foreground=\"#ff0000\">%s</span></small>",
-                           desc,
-                           model->flags & GDU_DEVICE_TREE_MODEL_FLAGS_ONE_LINE_NAME ? " — " : "\n",
-                           desc2);
-    }
-  else
-    {
-      s = g_strdup_printf ("%s"
-                           "%s"
-                           "<small>%s</small>",
-                           desc,
-                           model->flags & GDU_DEVICE_TREE_MODEL_FLAGS_ONE_LINE_NAME ? " — " : "\n",
-                           desc2);
-    }
-
-  if (block != NULL)
-    size = udisks_block_get_size (block);
-
-  jobs_running = mdraid_has_jobs (model, mdraid);
-
-  /* also show the spinner if a sync op is in progress */
-  if (udisks_mdraid_get_sync_completed (mdraid) > 0.0)
-    jobs_running = TRUE;
-
-  gtk_tree_model_get (GTK_TREE_MODEL (model),
-                      &iter,
-                      GDU_DEVICE_TREE_MODEL_COLUMN_PULSE, &pulse,
-                      -1);
-  if (from_timer)
-    pulse += 1;
-
-  gtk_tree_store_set (GTK_TREE_STORE (model),
-                      &iter,
-                      GDU_DEVICE_TREE_MODEL_COLUMN_ICON, udisks_object_info_get_icon (info),
-                      GDU_DEVICE_TREE_MODEL_COLUMN_NAME, s,
-                      GDU_DEVICE_TREE_MODEL_COLUMN_SORT_KEY, udisks_object_info_get_sort_key (info),
-                      GDU_DEVICE_TREE_MODEL_COLUMN_WARNING, warning,
-                      GDU_DEVICE_TREE_MODEL_COLUMN_JOBS_RUNNING, jobs_running,
-                      GDU_DEVICE_TREE_MODEL_COLUMN_PULSE, pulse,
-                      GDU_DEVICE_TREE_MODEL_COLUMN_SIZE, size,
-                      GDU_DEVICE_TREE_MODEL_COLUMN_BLOCK, block,
-                      -1);
-
-  /* update spinner, if jobs are running */
-  if (jobs_running && (model->flags & GDU_DEVICE_TREE_MODEL_FLAGS_UPDATE_PULSE))
-    {
-      if (model->spinner_timeout == 0)
-        {
-          model->spinner_timeout = g_timeout_add (SPINNER_TIMEOUT_MSEC, on_spinner_timeout, model);
-        }
-    }
-
- out:
-  g_clear_object (&info);
-  g_free (s);
-  g_free (desc);
-  g_free (desc2);
-  g_clear_object (&block);
-  return jobs_running;
-}
-
-static void
-update_mdraids (GduDeviceTreeModel *model)
-{
-  GDBusObjectManager *object_manager;
-  GList *objects;
-  GList *mdraids;
-  GList *added_mdraids;
-  GList *removed_mdraids;
-  GList *l;
-
-  object_manager = udisks_client_get_object_manager (model->client);
-  objects = g_dbus_object_manager_get_objects (object_manager);
-
-  mdraids = NULL;
-  for (l = objects; l != NULL; l = l->next)
-    {
-      UDisksObject *object = UDISKS_OBJECT (l->data);
-      UDisksMDRaid *mdraid;
-
-      mdraid = udisks_object_peek_mdraid (object);
-      if (mdraid == NULL)
-        continue;
-
-      mdraids = g_list_prepend (mdraids, g_object_ref (object));
-    }
-
-  mdraids = g_list_sort (mdraids, (GCompareFunc) _g_dbus_object_compare);
-  model->current_mdraids = g_list_sort (model->current_mdraids, (GCompareFunc) _g_dbus_object_compare);
-  diff_sorted_lists (model->current_mdraids,
-                     mdraids,
-                     (GCompareFunc) _g_dbus_object_compare,
-                     &added_mdraids,
-                     &removed_mdraids);
-
-  for (l = removed_mdraids; l != NULL; l = l->next)
-    {
-      UDisksObject *object = UDISKS_OBJECT (l->data);
-      g_assert (g_list_find (model->current_mdraids, object) != NULL);
-      model->current_mdraids = g_list_remove (model->current_mdraids, object);
-      remove_mdraid (model, object);
-      g_object_unref (object);
-    }
-  for (l = added_mdraids; l != NULL; l = l->next)
-    {
-      UDisksObject *object = UDISKS_OBJECT (l->data);
-      model->current_mdraids = g_list_prepend (model->current_mdraids, g_object_ref (object));
-      add_mdraid (model, object, get_mdraid_header_iter (model));
-    }
-
-  for (l = model->current_mdraids; l != NULL; l = l->next)
-    {
-      UDisksObject *object = UDISKS_OBJECT (l->data);
-      update_mdraid (model, object, FALSE);
-    }
-
-  if (g_list_length (model->current_mdraids) == 0)
-    nuke_mdraid_header (model);
-
-  g_list_free (added_mdraids);
-  g_list_free (removed_mdraids);
-  g_list_foreach (mdraids, (GFunc) g_object_unref, NULL);
-  g_list_free (mdraids);
-
-  g_list_foreach (objects, (GFunc) g_object_unref, NULL);
-  g_list_free (objects);
-}
-
-/* ---------------------------------------------------------------------------------------------------- */
-
 static GtkTreeIter *
 get_block_header_iter (GduDeviceTreeModel *model)
 {
@@ -1527,19 +1196,13 @@ should_include_block (UDisksObject *object)
   if (g_str_has_prefix (device, "/dev/ram"))
     goto out;
 
-  /* MD-RAID devices (e.g. /dev/md0) with an associated org.fd.UDisks.MDRaid object are
-   * shown in their own section so don't show them here
-   */
-  if (g_strcmp0 (udisks_block_get_mdraid (block), "/") != 0)
-    goto out;
-
   /* Don't show loop devices of size zero - they're unused.
    *
    * Do show any other block device of size 0.
    *
-   * Note that we _do_ want to show any other device of size 0 (for
-   * exampleinactive MD-RAID devices) since that's a good hint that
-   * the system is misconfigured and attention is needed.
+   * Note that we _do_ want to show any other device of size 0 since
+   * that's a good hint that the system may be misconfigured and
+   * attention is needed.
    */
   size = udisks_block_get_size (block);
   if (size == 0 && loop != NULL)
@@ -1641,7 +1304,6 @@ static void
 update_all (GduDeviceTreeModel *model)
 {
   /* TODO: if this is CPU intensive we could coalesce all updates / schedule timeouts */
-  update_mdraids (model);
   update_drives (model);
   update_blocks (model);
 }
diff --git a/src/disks/gduvolumegrid.c b/src/disks/gduvolumegrid.c
index 0d71cb7..00204c4 100644
--- a/src/disks/gduvolumegrid.c
+++ b/src/disks/gduvolumegrid.c
@@ -1700,39 +1700,6 @@ grid_element_set_details (GduVolumeGrid  *grid,
                   element->show_mounted = TRUE;
               }
           }
-        else if (g_strcmp0 (usage, "raid") == 0 && strlen (label) > 0)
-          {
-            type_for_display = udisks_client_get_id_for_display (grid->client, usage, type, version, FALSE);
-            if (g_strcmp0 (type, "linux_raid_member") == 0)
-              {
-                const gchar *sep = strstr (label, ":");
-                if (sep != NULL && strlen (sep) > 1)
-                  {
-                    gchar *homehost = g_strndup (label, sep - label);
-                    g_ptr_array_add (lines,
-                                     /* Translators: Shown in volume grid for Linux RAID members. Please
-                                      *              keep this as short as possible.
-                                      *              The first %s is the array name (e.g. 'MirrorOnTheWall').
-                                      *              The second %s is the homehost (e.g. 'thinkpad').
-                                      */
-                                     g_strdup_printf (C_("volume-grid", "%s [local to %s]"),
-                                                      sep + 1,
-                                                      homehost));
-                    g_free (homehost);
-                  }
-                else
-                  {
-                    g_ptr_array_add (lines, g_strdup (label));
-                  }
-              }
-            else
-              {
-                g_ptr_array_add (lines, g_strdup (label));
-              }
-            maybe_add_partition (grid, lines, partition);
-            g_ptr_array_add (lines, g_strdup_printf ("%s %s", size_str, type_for_display));
-            g_free (type_for_display);
-          }
         else
           {
             maybe_add_partition (grid, lines, partition);
diff --git a/src/disks/gduwindow.c b/src/disks/gduwindow.c
index 04847d3..eec29c7 100644
--- a/src/disks/gduwindow.c
+++ b/src/disks/gduwindow.c
@@ -37,8 +37,6 @@
 #include "gdurestorediskimagedialog.h"
 #include "gduchangepassphrasedialog.h"
 #include "gdudisksettingsdialog.h"
-#include "gdumdraiddisksdialog.h"
-#include "gducreateraidarraydialog.h"
 #include "gduerasemultipledisksdialog.h"
 #include "gdulocaljob.h"
 
@@ -74,8 +72,6 @@ struct _GduWindow
   GtkWidget *device_tree_scrolledwindow;
   GtkWidget *device_tree_treeview;
 
-  GtkWidget *devtab_drive_raid_start_button;
-  GtkWidget *devtab_drive_raid_stop_button;
   GtkWidget *devtab_drive_loop_detach_button;
   GtkWidget *devtab_drive_eject_button;
   GtkWidget *devtab_drive_power_off_button;
@@ -99,11 +95,6 @@ struct _GduWindow
   GtkWidget *generic_drive_menu_item_standby_now;
   GtkWidget *generic_drive_menu_item_resume_now;
   GtkWidget *generic_drive_menu_item_power_off;
-  /* MDRaid-specific items */
-  GtkWidget *generic_drive_menu_item_mdraid_sep_1;
-  GtkWidget *generic_drive_menu_item_mdraid_disks;
-  GtkWidget *generic_drive_menu_item_mdraid_start_data_scrubbing;
-  GtkWidget *generic_drive_menu_item_mdraid_stop_data_scrubbing;
 
   GtkWidget *generic_menu;
   GtkWidget *generic_menu_item_configure_fstab;
@@ -117,13 +108,6 @@ struct _GduWindow
   GtkWidget *generic_menu_item_benchmark;
 
   GtkWidget *devtab_loop_autoclear_switch;
-  GtkWidget *devtab_drive_raid_bitmap_switch;
-
-  GtkWidget *devtab_drive_raid_state_label;
-  GtkWidget *devtab_drive_raid_state_grid;
-  GtkWidget *devtab_drive_raid_state_value_label;
-  GtkWidget *devtab_drive_raid_state_progressbar;
-  GtkWidget *devtab_drive_raid_progress_label;
 
   GtkWidget *devtab_drive_job_label;
   GtkWidget *devtab_drive_job_grid;
@@ -169,7 +153,6 @@ static const struct {
   {G_STRUCT_OFFSET (GduWindow, devtab_grid_toolbar), "devtab-grid-toolbar"},
 
   {G_STRUCT_OFFSET (GduWindow, devtab_loop_autoclear_switch), "devtab-loop-autoclear-switch"},
-  {G_STRUCT_OFFSET (GduWindow, devtab_drive_raid_bitmap_switch), "devtab-drive-raid-bitmap-switch"},
 
   {G_STRUCT_OFFSET (GduWindow, generic_drive_menu), "generic-drive-menu"},
   {G_STRUCT_OFFSET (GduWindow, generic_drive_menu_item_format_disk), "generic-drive-menu-item-format-disk"},
@@ -184,11 +167,6 @@ static const struct {
   {G_STRUCT_OFFSET (GduWindow, generic_drive_menu_item_standby_now), "generic-drive-menu-item-standby-now"},
   {G_STRUCT_OFFSET (GduWindow, generic_drive_menu_item_resume_now), "generic-drive-menu-item-resume-now"},
   {G_STRUCT_OFFSET (GduWindow, generic_drive_menu_item_power_off), "generic-drive-menu-item-power-off"},
-  /* MDRaid-specific items */
-  {G_STRUCT_OFFSET (GduWindow, generic_drive_menu_item_mdraid_sep_1), 
"generic-drive-menu-item-mdraid-sep-1"},
-  {G_STRUCT_OFFSET (GduWindow, generic_drive_menu_item_mdraid_disks), 
"generic-drive-menu-item-mdraid-disks"},
-  {G_STRUCT_OFFSET (GduWindow, generic_drive_menu_item_mdraid_start_data_scrubbing), 
"generic-drive-menu-item-mdraid-start-data-scrubbing"},
-  {G_STRUCT_OFFSET (GduWindow, generic_drive_menu_item_mdraid_stop_data_scrubbing), 
"generic-drive-menu-item-mdraid-stop-data-scrubbing"},
 
   {G_STRUCT_OFFSET (GduWindow, generic_menu), "generic-menu"},
   {G_STRUCT_OFFSET (GduWindow, generic_menu_item_configure_fstab), "generic-menu-item-configure-fstab"},
@@ -201,12 +179,6 @@ static const struct {
   {G_STRUCT_OFFSET (GduWindow, generic_menu_item_restore_volume_image), 
"generic-menu-item-restore-volume-image"},
   {G_STRUCT_OFFSET (GduWindow, generic_menu_item_benchmark), "generic-menu-item-benchmark"},
 
-  {G_STRUCT_OFFSET (GduWindow, devtab_drive_raid_state_label), "devtab-drive-raid-state-label"},
-  {G_STRUCT_OFFSET (GduWindow, devtab_drive_raid_state_grid), "devtab-drive-raid-state-grid"},
-  {G_STRUCT_OFFSET (GduWindow, devtab_drive_raid_state_value_label), "devtab-drive-raid-state-value-label"},
-  {G_STRUCT_OFFSET (GduWindow, devtab_drive_raid_state_progressbar), "devtab-drive-raid-state-progressbar"},
-  {G_STRUCT_OFFSET (GduWindow, devtab_drive_raid_progress_label), "devtab-drive-raid-progress-label"},
-
   {G_STRUCT_OFFSET (GduWindow, devtab_drive_job_label), "devtab-drive-job-label"},
   {G_STRUCT_OFFSET (GduWindow, devtab_drive_job_grid), "devtab-drive-job-grid"},
   {G_STRUCT_OFFSET (GduWindow, devtab_drive_job_progressbar), "devtab-drive-job-progressbar"},
@@ -242,11 +214,9 @@ enum
 /* ---------------------------------------------------------------------------------------------------- */
 
 typedef enum {
-  SHOW_FLAGS_DRIVE_BUTTONS_RAID_START       = (1<<0),
-  SHOW_FLAGS_DRIVE_BUTTONS_RAID_STOP        = (1<<1),
-  SHOW_FLAGS_DRIVE_BUTTONS_EJECT            = (1<<2),
-  SHOW_FLAGS_DRIVE_BUTTONS_POWER_OFF        = (1<<3),
-  SHOW_FLAGS_DRIVE_BUTTONS_LOOP_DETACH      = (1<<4),
+  SHOW_FLAGS_DRIVE_BUTTONS_EJECT            = (1<<0),
+  SHOW_FLAGS_DRIVE_BUTTONS_POWER_OFF        = (1<<1),
+  SHOW_FLAGS_DRIVE_BUTTONS_LOOP_DETACH      = (1<<2),
 } ShowFlagsDriveButtons;
 
 typedef enum
@@ -260,7 +230,6 @@ typedef enum
   SHOW_FLAGS_DRIVE_MENU_STANDBY_NOW           = (1<<6),
   SHOW_FLAGS_DRIVE_MENU_RESUME_NOW            = (1<<7),
   SHOW_FLAGS_DRIVE_MENU_POWER_OFF             = (1<<8),
-  SHOW_FLAGS_DRIVE_MENU_MDRAID_DISKS          = (1<<9),
 } ShowFlagsDriveMenu;
 
 typedef enum {
@@ -318,8 +287,6 @@ static void on_lock_tool_button_clicked (GtkToolButton *button, gpointer user_da
 static void on_activate_swap_tool_button_clicked (GtkToolButton *button, gpointer user_data);
 static void on_deactivate_swap_tool_button_clicked (GtkToolButton *button, gpointer user_data);
 
-static void on_devtab_drive_raid_start_button_clicked (GtkButton *button, gpointer user_data);
-static void on_devtab_drive_raid_stop_button_clicked (GtkButton *button, gpointer user_data);
 static void on_devtab_drive_loop_detach_button_clicked (GtkButton *button, gpointer user_data);
 static void on_devtab_drive_eject_button_clicked (GtkButton *button, gpointer user_data);
 static void on_devtab_drive_power_off_button_clicked (GtkButton *button, gpointer user_data);
@@ -342,12 +309,6 @@ static void on_generic_drive_menu_item_restore_disk_image (GtkMenuItem *menu_ite
                                                            gpointer   user_data);
 static void on_generic_drive_menu_item_benchmark (GtkMenuItem *menu_item,
                                                   gpointer   user_data);
-static void on_generic_drive_menu_item_mdraid_disks (GtkMenuItem *menu_item,
-                                                     gpointer   user_data);
-static void on_generic_drive_menu_item_mdraid_start_data_scrubbing (GtkMenuItem *menu_item,
-                                                                    gpointer   user_data);
-static void on_generic_drive_menu_item_mdraid_stop_data_scrubbing (GtkMenuItem *menu_item,
-                                                                   gpointer   user_data);
 
 static void on_generic_menu_item_configure_fstab (GtkMenuItem *menu_item,
                                                   gpointer   user_data);
@@ -372,10 +333,6 @@ static void on_devtab_loop_autoclear_switch_notify_active (GObject    *object,
                                                            GParamSpec *pspec,
                                                            gpointer    user_data);
 
-static void on_devtab_drive_raid_bitmap_switch_notify_active (GObject    *object,
-                                                              GParamSpec *pspec,
-                                                              gpointer    user_data);
-
 static void on_drive_job_cancel_button_clicked (GtkButton *button,
                                                 gpointer   user_data);
 
@@ -456,10 +413,6 @@ static void
 update_for_show_flags (GduWindow *window,
                        ShowFlags *show_flags)
 {
-  gtk_widget_set_visible (window->devtab_drive_raid_start_button,
-                          show_flags->drive_buttons & SHOW_FLAGS_DRIVE_BUTTONS_RAID_START);
-  gtk_widget_set_visible (window->devtab_drive_raid_stop_button,
-                          show_flags->drive_buttons & SHOW_FLAGS_DRIVE_BUTTONS_RAID_STOP);
   gtk_widget_set_visible (window->devtab_drive_loop_detach_button,
                           show_flags->drive_buttons & SHOW_FLAGS_DRIVE_BUTTONS_LOOP_DETACH);
   gtk_widget_set_visible (window->devtab_drive_eject_button,
@@ -496,10 +449,6 @@ update_for_show_flags (GduWindow *window,
                             show_flags->drive_menu & SHOW_FLAGS_DRIVE_MENU_RESTORE_DISK_IMAGE);
   gtk_widget_set_sensitive (GTK_WIDGET (window->generic_drive_menu_item_benchmark),
                             show_flags->drive_menu & SHOW_FLAGS_DRIVE_MENU_BENCHMARK);
-  gtk_widget_set_sensitive (GTK_WIDGET (window->generic_drive_menu_item_mdraid_disks),
-                            show_flags->drive_menu & SHOW_FLAGS_DRIVE_MENU_MDRAID_DISKS);
-  gtk_widget_set_sensitive (GTK_WIDGET (window->generic_drive_menu_item_power_off),
-                            show_flags->drive_menu & SHOW_FLAGS_DRIVE_MENU_POWER_OFF);
 
   gtk_widget_set_sensitive (GTK_WIDGET (window->generic_menu_item_configure_fstab),
                             show_flags->volume_menu & SHOW_FLAGS_VOLUME_MENU_CONFIGURE_FSTAB);
@@ -545,25 +494,8 @@ select_object (GduWindow    *window,
     }
   else if (object != NULL)
     {
-      UDisksBlock *block;
-
-      /* that didn't work, maybe it's a block device that is shown as another root object */
-      block = udisks_object_peek_block (object);
-      if (block != NULL)
-        {
-          UDisksObject *mdraid_object;
-          /* MD-RAID */
-          mdraid_object = udisks_client_peek_object (window->client, udisks_block_get_mdraid (block));
-          if (mdraid_object != NULL)
-            {
-              select_object (window, mdraid_object);
-              goto out;
-            }
-        }
-
-      if (object != NULL)
-        g_warning ("Cannot display object with object path %s",
-                   g_dbus_object_get_object_path (G_DBUS_OBJECT (object)));
+      g_warning ("Cannot display object with object path %s",
+                 g_dbus_object_get_object_path (G_DBUS_OBJECT (object)));
       goto out;
     }
 
@@ -939,16 +871,8 @@ gdu_window_select_object (GduWindow    *window,
   gboolean ret = FALSE;
   UDisksPartition *partition;
   UDisksPartitionTable *table = NULL;
-  UDisksMDRaid *mdraid = NULL;
   UDisksDrive *drive = NULL;
 
-  mdraid = udisks_object_peek_mdraid (object);
-  if (mdraid != NULL)
-    {
-      select_object (window, object);
-      goto out;
-    }
-
   drive = udisks_object_peek_drive (object);
   if (drive != NULL)
     {
@@ -1050,20 +974,6 @@ create_header (GduWindow *window)
   header = gtk_header_bar_new ();
   gtk_header_bar_set_show_close_button (GTK_HEADER_BAR (header), TRUE);
 
-  button = window->devtab_drive_raid_start_button = gtk_button_new ();
-  image = gtk_image_new_from_icon_name ("media-playback-start-symbolic", GTK_ICON_SIZE_MENU);
-  gtk_widget_set_margin_left (image, 4);
-  gtk_widget_set_margin_right (image, 4);
-  gtk_button_set_image (GTK_BUTTON (button), image);
-  gtk_header_bar_pack_end (GTK_HEADER_BAR (header), button);
-
-  button = window->devtab_drive_raid_stop_button = gtk_button_new ();
-  image = gtk_image_new_from_icon_name ("media-playback-stop-symbolic", GTK_ICON_SIZE_MENU);
-  gtk_widget_set_margin_left (image, 4);
-  gtk_widget_set_margin_right (image, 4);
-  gtk_button_set_image (GTK_BUTTON (button), image);
-  gtk_header_bar_pack_end (GTK_HEADER_BAR (header), button);
-
   button = window->devtab_drive_loop_detach_button = gtk_button_new ();
   image = gtk_image_new_from_icon_name ("list-remove-symbolic", GTK_ICON_SIZE_MENU);
   gtk_widget_set_margin_left (image, 4);
@@ -1311,14 +1221,6 @@ gdu_window_constructed (GObject *object)
                     window);
 
   /* drive buttons */
-  g_signal_connect (window->devtab_drive_raid_start_button,
-                    "clicked",
-                    G_CALLBACK (on_devtab_drive_raid_start_button_clicked),
-                    window);
-  g_signal_connect (window->devtab_drive_raid_stop_button,
-                    "clicked",
-                    G_CALLBACK (on_devtab_drive_raid_stop_button_clicked),
-                    window);
   g_signal_connect (window->devtab_drive_loop_detach_button,
                     "clicked",
                     G_CALLBACK (on_devtab_drive_loop_detach_button_clicked),
@@ -1369,18 +1271,6 @@ gdu_window_constructed (GObject *object)
                     "activate",
                     G_CALLBACK (on_generic_drive_menu_item_benchmark),
                     window);
-  g_signal_connect (window->generic_drive_menu_item_mdraid_disks,
-                    "activate",
-                    G_CALLBACK (on_generic_drive_menu_item_mdraid_disks),
-                    window);
-  g_signal_connect (window->generic_drive_menu_item_mdraid_start_data_scrubbing,
-                    "activate",
-                    G_CALLBACK (on_generic_drive_menu_item_mdraid_start_data_scrubbing),
-                    window);
-  g_signal_connect (window->generic_drive_menu_item_mdraid_stop_data_scrubbing,
-                    "activate",
-                    G_CALLBACK (on_generic_drive_menu_item_mdraid_stop_data_scrubbing),
-                    window);
 
   /* volume menu */
   g_signal_connect (window->generic_menu_item_configure_fstab,
@@ -1426,12 +1316,6 @@ gdu_window_constructed (GObject *object)
                     G_CALLBACK (on_devtab_loop_autoclear_switch_notify_active),
                     window);
 
-  /* MDRAID's bitmap switch */
-  g_signal_connect (window->devtab_drive_raid_bitmap_switch,
-                    "notify::active",
-                    G_CALLBACK (on_devtab_drive_raid_bitmap_switch_notify_active),
-                    window);
-
   /* cancel-button for drive job */
   g_signal_connect (window->devtab_drive_job_cancel_button,
                     "clicked",
@@ -1482,14 +1366,6 @@ gdu_window_constructed (GObject *object)
   gtk_accel_map_add_entry ("<Disks>/DriveMenu/ViewSmart", key, mod);
   gtk_widget_set_accel_path (window->generic_drive_menu_item_view_smart, "<Disks>/DriveMenu/ViewSmart", 
accelgroup);
 
-  /* Translators: This is the short-cut to view RAID Disks for a RAID array.
-   *              The Ctrl modifier must not be translated or parsing will fail.
-   *              You can however change to another English modifier (e.g. <Shift>).
-   */
-  gtk_accelerator_parse (C_("accelerator", "<Ctrl>R"), &key, &mod);
-  gtk_accel_map_add_entry ("<Disks>/DriveMenu/MDRaidDisks", key, mod);
-  gtk_widget_set_accel_path (window->generic_drive_menu_item_mdraid_disks, "<Disks>/DriveMenu/MDRaidDisks", 
accelgroup);
-
   /* Translators: This is the short-cut to view the "Drive Settings" dialog for a hard disk.
    *              The Ctrl modifier must not be translated or parsing will fail.
    *              You can however change to another English modifier (e.g. <Shift>).
@@ -1776,8 +1652,7 @@ update_all (GduWindow *window)
   if (window->current_object != NULL)
     {
       if (udisks_object_peek_drive (window->current_object) != NULL ||
-          udisks_object_peek_block (window->current_object) != NULL ||
-          udisks_object_peek_mdraid (window->current_object) != NULL)
+          udisks_object_peek_block (window->current_object) != NULL)
         {
           page = DETAILS_PAGE_DEVICE;
         }
@@ -2113,433 +1988,6 @@ update_generic_drive_bits (GduWindow      *window,
 /* ---------------------------------------------------------------------------------------------------- */
 
 static void
-update_grid_for_mdraid (GduWindow      *window,
-                        UDisksMDRaid   *mdraid)
-{
-  UDisksBlock *mdraid_block = NULL;
-  UDisksObject *mdraid_block_object = NULL;
-
-  mdraid_block = udisks_client_get_block_for_mdraid (window->client, mdraid);
-  if (mdraid_block != NULL)
-    mdraid_block_object = (UDisksObject *) g_dbus_interface_dup_object (G_DBUS_INTERFACE (mdraid_block));
-  gdu_volume_grid_set_block_object (GDU_VOLUME_GRID (window->volume_grid), mdraid_block_object);
-  g_clear_object (&mdraid_block_object);
-  g_clear_object (&mdraid_block);
-}
-
-static void
-update_device_page_for_mdraid (GduWindow      *window,
-                               UDisksObject   *object,
-                               UDisksMDRaid   *mdraid,
-                               ShowFlags      *show_flags)
-{
-  UDisksObjectInfo *info = NULL;
-  gchar *s = NULL, *s2, *s3;
-  gchar *desc = NULL;
-  gchar *device_desc = NULL;
-  GList *all_blocks = NULL;
-  UDisksBlock *block = NULL;
-  guint64 size = 0;
-  guint num_devices = 0;
-  gchar *name = NULL;
-  gchar *homehost = NULL;
-  gchar *level_desc = NULL;
-  char hostname[512];
-  GList *jobs = NULL;
-  GList *members = NULL;
-  guint degraded = 0;
-  guint64 chunk_size = 0;
-  const gchar *sync_action;
-  gdouble sync_completed;
-  const gchar *bitmap_location;
-  gchar *degraded_markup = NULL;
-  gchar *raid_state = NULL;
-  gchar *raid_state_extra = NULL;
-  guint64 sync_rate = 0;
-  guint64 sync_remaining_time = 0;
-  gboolean show_stop_data_scrubbing = FALSE;
-  gboolean show_start_data_scrubbing = FALSE;
-
-  gdu_volume_grid_set_no_media_string (GDU_VOLUME_GRID (window->volume_grid),
-                                       _("RAID array is not running"));
-
-  size = udisks_mdraid_get_size (mdraid);
-  num_devices = udisks_mdraid_get_num_devices (mdraid);
-  block = udisks_client_get_block_for_mdraid (window->client, mdraid);
-  all_blocks = udisks_client_get_all_blocks_for_mdraid (window->client, mdraid);
-  members = udisks_client_get_members_for_mdraid (window->client, mdraid);
-  degraded = udisks_mdraid_get_degraded (mdraid);
-  sync_action = udisks_mdraid_get_sync_action (mdraid);
-  sync_completed = udisks_mdraid_get_sync_completed (mdraid);
-  sync_rate = udisks_mdraid_get_sync_rate (mdraid);
-  sync_remaining_time = udisks_mdraid_get_sync_remaining_time (mdraid);
-  bitmap_location = udisks_mdraid_get_bitmap_location (mdraid);
-  chunk_size = udisks_mdraid_get_chunk_size (mdraid);
-
-  info = udisks_client_get_object_info (window->client, object);
-
-  if (size > 0)
-    {
-      s = udisks_client_get_size_for_display (window->client, size, FALSE, FALSE);
-      /* Translators: Used in the main window for a RAID array, the first %s is the size */
-      desc = g_strdup_printf (C_("md-raid-window", "%s RAID Array"), s);
-      g_free (s);
-    }
-  else
-    {
-      /* Translators: Used in the main window for a RAID array where the size is not known  */
-      desc = g_strdup (C_("md-raid-window", "RAID Array"));
-    }
-
-  update_grid_for_mdraid (window, mdraid);
-
-  if (all_blocks != NULL)
-    {
-      GString *str;
-      GList *l;
-      str = g_string_new (NULL);
-      for (l = all_blocks; l != NULL; l = l->next)
-        {
-          UDisksBlock *mdraid_block = UDISKS_BLOCK (l->data);
-          if (str->len > 0)
-            g_string_append_c (str, ' ');
-          s = get_device_file_for_display (mdraid_block);
-          g_string_append (str, s);
-          g_free (s);
-        }
-      device_desc = g_string_free (str, FALSE);
-      show_flags->drive_buttons |= SHOW_FLAGS_DRIVE_BUTTONS_RAID_STOP;
-      show_flags->drive_menu |= SHOW_FLAGS_DRIVE_MENU_MDRAID_DISKS;
-    }
-  else
-    {
-      /* Translators: shown as the device for a RAID array that is not currently running */
-      device_desc = g_strdup (C_("mdraid", "Not running"));
-      show_flags->drive_buttons |= SHOW_FLAGS_DRIVE_BUTTONS_RAID_START;
-    }
-
-  jobs = udisks_client_get_jobs_for_object (window->client, object);
-  jobs = g_list_concat (jobs, gdu_application_get_local_jobs_for_object (window->application, object));
-  update_generic_drive_bits (window, block, jobs, show_flags);
-
-  gtk_header_bar_set_title (GTK_HEADER_BAR (window->header), desc);
-  gtk_header_bar_set_subtitle (GTK_HEADER_BAR (window->header), device_desc);
-
-  gtk_widget_show (window->devtab_drive_generic_button);
-
-  /* -------------------------------------------------- */
-  /* 'Size' field */
-
-  set_size (window,
-            "devtab-drive-size-label",
-            "devtab-drive-size-value-label",
-            size, SET_MARKUP_FLAGS_HYPHEN_IF_EMPTY);
-
-  /* -------------------------------------------------- */
-  /* 'Name' field */
-
-  /* figure out hostname of this box */
-  hostname[sizeof hostname - 1] = '\0';
-  if (gethostname (hostname, sizeof hostname - 1) != 0)
-    {
-      g_warning ("Error getting hostname: %m");
-      hostname[0] = '\0';
-    }
-
-  /* figure out the hostname the array is local to */
-  homehost = udisks_mdraid_dup_name (mdraid);
-  s = strstr (homehost, ":");
-  if (s != NULL)
-    {
-      name = g_strdup (s + 1);
-      *s = '\0';
-    }
-  else
-    {
-      name = homehost;
-      homehost = NULL;
-    }
-
-  if (homehost != NULL && strlen (homehost) > 0 && g_strcmp0 (homehost, hostname) != 0)
-    {
-      /* Translators: Shown in the 'Array Name' field when the RAID array is deemed to belong to another 
machine.
-       *              Search for "homehost" in the mdadm(8) documentation for more information.
-       *              The first %s is the array name (e.g. "My Raid Disk").
-       *              The second %s is the hostname that the RAID array belongs to (e.g. "big-server-042").
-       */
-      s = g_strdup_printf (C_("mdraid", "%s (local to %s)"), name, homehost);
-      set_markup (window,
-                  "devtab-drive-arrayname-label",
-                  "devtab-drive-arrayname-value-label",
-                  s, SET_MARKUP_FLAGS_HYPHEN_IF_EMPTY);
-      g_free (s);
-    }
-  else
-    {
-      set_markup (window,
-                  "devtab-drive-arrayname-label",
-                  "devtab-drive-arrayname-value-label",
-                  name, SET_MARKUP_FLAGS_HYPHEN_IF_EMPTY);
-    }
-
-  /* -------------------------------------------------- */
-  /* 'Bitmap' field */
-
-  if (strlen (bitmap_location) > 0)
-    {
-      gboolean has_bitmap = FALSE;
-      if (bitmap_location != NULL && strlen (bitmap_location) > 0 && g_strcmp0 (bitmap_location, "none") != 
0)
-        has_bitmap = TRUE;
-
-      set_switch (window,
-                  "devtab-drive-raid-bitmap-label",
-                  "devtab-drive-raid-bitmap-switch-box",
-                  "devtab-drive-raid-bitmap-switch",
-                  has_bitmap);
-    }
-
-  /* -------------------------------------------------- */
-  /* 'Raid Level' field */
-
-  level_desc = gdu_utils_format_mdraid_level (udisks_mdraid_get_level (mdraid), FALSE, FALSE);
-
-  /* Translators: Used to convey the number of required disks for a RAID array
-   *              The %d is the number of required disks.
-   */
-  s2 = g_strdup_printf (dngettext (GETTEXT_PACKAGE,
-                                   "%d Disk",
-                                   "%d Disks",
-                                   (gint) num_devices),
-                        (gint) num_devices);
-  if (chunk_size > 0)
-    {
-      s3 = udisks_client_get_size_for_display (window->client, chunk_size, TRUE, FALSE);
-      s = s2;
-      /* Translators: Used to combine number of disks and the chunk size.
-       *              The first %s is the number of disks e.g. "3 disks".
-       *              The second %s is the chunk size e.g. "512 KiB".
-       */
-      s2 = g_strdup_printf (C_("mdraid-disks-and-chunk-size", "%s, %s Chunk"), s2, s3);
-      g_free (s);
-      g_free (s3);
-    }
-
-  /* Translators: Shown in the "RAID Level" field.
-   *              The first %s is the long description of the RAID level e.g. "RAID 6 (Dual Distributed 
Parity)".
-   *              The second %s is the number of RAID disks optionally with the chunk size e.g. "8 disks" or 
"8 disks, 512 KiB Chunk".
-   */
-  s = g_strdup_printf (C_("mdraid", "%s, %s"),
-                       level_desc,
-                       s2);
-  g_free (s2);
-  set_markup (window,
-              "devtab-drive-raidlevel-label",
-              "devtab-drive-raidlevel-value-label",
-              s, SET_MARKUP_FLAGS_NONE);
-  g_free (s);
-
-  /* -------------------------------------------------- */
-  /* 'State' field */
-
-  degraded_markup = NULL;
-  if (degraded > 0)
-    {
-      /* Translators: Shown in the 'Degraded' field for a degraded RAID array.
-       *              The %d is the number of missing disks (always > 0).
-       */
-      s2 = g_strdup_printf (dngettext (GETTEXT_PACKAGE,
-                                       "%d disk is missing",
-                                       "%d disks are missing",
-                                       (gint) degraded),
-                            (gint) degraded);
-      /* Translators: string shown when the RAID array is degraded. All-caps is used for emphasis */
-      s3 = g_strdup_printf ("<span foreground=\"#ff0000\"><b>%s</b></span>",
-                            C_("mdraid", "ARRAY IS DEGRADED"));
-      /* Translators: The first %s is the sentence 'ARRAY IS DEGRADED'.
-       *              The second %s conveys the number of devices missing e.g. "1 disk is missing".
-       */
-      degraded_markup = g_strdup_printf (C_("mdraid-degraded", "%s — %s"),
-                                         s3, s2);
-      g_free (s2);
-      g_free (s3);
-    }
-
-  if (sync_action == NULL || strlen (sync_action) == 0)
-    {
-      /* could be we're already running but don't have any redundancy built-in */
-      if (block != NULL)
-        {
-          raid_state = g_strdup (C_("mdraid-state", "Running"));
-        }
-      else
-        {
-          /* Translators: Shown in the 'State' field for MD-RAID when not running */
-          raid_state = g_strdup (C_("mdraid-state", "Not running"));
-        }
-    }
-  else
-    {
-      if (degraded_markup != NULL)
-        {
-          raid_state = g_strdup (degraded_markup);
-        }
-      else
-        {
-          raid_state = g_strdup (C_("mdraid-state", "Running"));
-        }
-
-      if (g_strcmp0 (sync_action, "idle") == 0)
-        {
-          show_start_data_scrubbing = TRUE;
-        }
-      else if (g_strcmp0 (sync_action, "check") == 0)
-        {
-          raid_state_extra = g_strdup (C_("mdraid-state", "Data Scrubbing"));
-          show_stop_data_scrubbing = TRUE;
-        }
-      else if (g_strcmp0 (sync_action, "repair") == 0)
-        {
-          raid_state_extra = g_strdup (C_("mdraid-state", "Data Scrubbing and Repair"));
-          show_stop_data_scrubbing = TRUE;
-        }
-      else if (g_strcmp0 (sync_action, "resync") == 0)
-        {
-          raid_state_extra = g_strdup (C_("mdraid-state", "Resyncing"));
-        }
-      else if (g_strcmp0 (sync_action, "recover") == 0)
-        {
-          raid_state_extra = g_strdup (C_("mdraid-state", "Recovering"));
-        }
-      else if (g_strcmp0 (sync_action, "frozen") == 0)
-        {
-          raid_state_extra = g_strdup (C_("mdraid-state", "Frozen"));
-        }
-      else
-        {
-          g_warning ("unhandled sync action %s", sync_action);
-          raid_state_extra = g_strdup (sync_action);
-        }
-    }
-
-  /* If we've detected a split-brain situation, this is more important
-   * to convey than the actual array state
-   */
-  if (g_list_length (all_blocks) > 1)
-    {
-      s = g_strdup_printf ("<span foreground=\"#ff0000\"><b>%s</b></span>",
-                           /* Translators: String for conveying the raid array is misconfigured */
-                           C_("raid-split-brain", "RAID ARRAY IS MISCONFIGURED"));
-      s2 = g_strdup_printf ("<a href='http://en.wikipedia.org/wiki/Split-brain_(computing)'>%s</a>",
-                           /* Translators: The specific type of misconfiguration, see
-                            * http://en.wikipedia.org/wiki/Split-brain_(computing)
-                            * for more details
-                            */
-                            C_("raid-split-brain", "Split-Brain"));
-      g_free (raid_state);
-      /* Translators: Combiner for the RAID split-brain strings.
-       *              The first %s is "SYSTEM IS MISCONFIGURED".
-       *              The second %s is "Split-Brain" as a hyperlink.
-       */
-      raid_state = g_strdup_printf (C_("raid-split-brain", "%s (%s)"), s, s2);
-      g_free (s2);
-      g_free (s);
-    }
-
-  if (sync_completed == 0.0 && sync_rate == 0 && sync_remaining_time == 0)
-    {
-      if (raid_state_extra != NULL)
-        {
-          s = g_strdup_printf ("%s\n%s", raid_state, raid_state_extra);
-          gtk_label_set_markup (GTK_LABEL (window->devtab_drive_raid_state_value_label), raid_state);
-          g_free (s);
-        }
-      else
-        {
-          gtk_label_set_markup (GTK_LABEL (window->devtab_drive_raid_state_value_label), raid_state);
-        }
-      gtk_widget_hide (window->devtab_drive_raid_state_progressbar);
-    }
-  else
-    {
-      gtk_label_set_markup (GTK_LABEL (window->devtab_drive_raid_state_value_label), raid_state);
-
-      s = g_strdup_printf ("%2.1f%%", 100.0 * sync_completed);
-      if (raid_state_extra != NULL)
-        {
-          /* Translators: Shown in RAID progress bar.
-           *              The first %s is about the operation, e.g. 'Data Scrubbing'.
-           *              The second is the percentage completed, e.g. '42.5%'
-           */
-          s2 = g_strdup_printf (C_("raid-state-progress", "%s: %s"), raid_state_extra, s);
-        }
-      else
-        {
-          s2 = s; s = NULL;
-        }
-      gtk_progress_bar_set_show_text (GTK_PROGRESS_BAR (window->devtab_drive_raid_state_progressbar), TRUE);
-      gtk_progress_bar_set_text (GTK_PROGRESS_BAR (window->devtab_drive_raid_state_progressbar), s2);
-      g_free (s2);
-      g_free (s);
-
-      gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (window->devtab_drive_raid_state_progressbar), 
sync_completed);
-
-      gtk_widget_show (window->devtab_drive_raid_state_progressbar);
-    }
-  gtk_widget_show (window->devtab_drive_raid_state_value_label);
-  gtk_widget_show (window->devtab_drive_raid_state_label);
-  gtk_widget_show (window->devtab_drive_raid_state_grid);
-
-  if (sync_remaining_time > 0)
-    {
-      s2 = gdu_utils_format_duration_usec (sync_remaining_time, GDU_FORMAT_DURATION_FLAGS_NO_SECONDS);
-      s3 = g_format_size (sync_rate);
-      /* Translators: Used for MD-RAID sync operation.
-       *              The first %s is the estimated amount of time remaining (ex. "1 minute" or "5 minutes").
-       *              The second %s is the average amount of bytes transfered per second (ex. "8.9 MB").
-       */
-      s = g_strdup_printf (C_("mdraid-sync-op", "%s remaining (%s/sec)"), s2, s3);
-      g_free (s3);
-      g_free (s2);
-      s2 = g_strdup_printf ("<small>%s</small>", s);
-      g_free (s);
-      gtk_label_set_markup (GTK_LABEL (window->devtab_drive_raid_progress_label), s2);
-      g_free (s2);
-      gtk_widget_show (window->devtab_drive_raid_progress_label);
-    }
-  else
-    {
-      gtk_widget_hide (window->devtab_drive_raid_progress_label);
-    }
-
-  /* -------------------------------------------------- */
-
-  /* Show MDRaid-specific items */
-  gtk_widget_show (GTK_WIDGET (window->generic_drive_menu_item_mdraid_sep_1));
-  gtk_widget_show (GTK_WIDGET (window->generic_drive_menu_item_mdraid_disks));
-  gtk_widget_set_visible (GTK_WIDGET (window->generic_drive_menu_item_mdraid_start_data_scrubbing), 
show_start_data_scrubbing);
-  gtk_widget_set_visible (GTK_WIDGET (window->generic_drive_menu_item_mdraid_stop_data_scrubbing), 
show_stop_data_scrubbing);
-
-  /* -------------------------------------------------- */
-
-  g_free (raid_state);
-  g_free (raid_state_extra);
-  g_free (degraded_markup);
-  g_list_free_full (members, g_object_unref);
-  g_list_free_full (jobs, g_object_unref);
-  g_free (level_desc);
-  g_free (homehost);
-  g_free (name);
-  g_free (device_desc);
-  g_free (desc);
-  g_clear_object (&info);
-
-  g_clear_object (&block);
-  g_list_free_full (all_blocks, g_object_unref);
-}
-
-/* ---------------------------------------------------------------------------------------------------- */
-
-static void
 update_device_page_for_drive (GduWindow      *window,
                               UDisksObject   *object,
                               UDisksDrive    *drive,
@@ -3151,19 +2599,6 @@ update_device_page_for_block (GduWindow          *window,
       else
         {
           s = udisks_client_get_id_for_display (window->client, usage, type, version, TRUE);
-          if (g_strcmp0 (udisks_block_get_mdraid_member (block), "/") != 0)
-            {
-              s2 = g_strdup_printf ("<a href=\"x-udisks://%s\">%s</a>",
-                                    udisks_block_get_mdraid_member (block),
-                                    /* Translators: Shown as a hyperlink in the 'Contents' field for a 
member of an RAID Array */
-                                    C_("volume-contents-raid", "Go To Array"));
-              /* Translators: Shown in the 'Contents' field for a member of an RAID array.
-               *              The first %s is the usual contents string (e.g. "Linux RAID Member").
-               *              The second %s is the hyperlink "Go To Array".
-               */
-              s3 = g_strdup_printf (C_("volume-contents-raid", "%s — %s"), s, s2);
-              g_free (s); s = s3;
-            }
         }
     }
   else
@@ -3298,11 +2733,9 @@ static void
 device_page_ensure_grid (GduWindow *window)
 {
   UDisksDrive *drive;
-  UDisksMDRaid *mdraid;
   UDisksBlock *block;
 
   drive = udisks_object_peek_drive (window->current_object);
-  mdraid = udisks_object_peek_mdraid (window->current_object);
   block = udisks_object_peek_block (window->current_object);
 
   if (drive != NULL)
@@ -3321,10 +2754,6 @@ device_page_ensure_grid (GduWindow *window)
       g_list_foreach (blocks, (GFunc) g_object_unref, NULL);
       g_list_free (blocks);
     }
-  else if (mdraid != NULL)
-    {
-      /* happens in update_device_page_for_mdraid as the /dev/md* device can come and go */
-    }
   else if (block != NULL)
     {
       gdu_volume_grid_set_block_object (GDU_VOLUME_GRID (window->volume_grid), window->current_object);
@@ -3365,7 +2794,6 @@ update_device_page (GduWindow      *window,
   GduVolumeGridElementType type;
   UDisksBlock *block;
   UDisksDrive *drive;
-  UDisksMDRaid *mdraid;
   UDisksLoop *loop = NULL;
   guint64 size;
 
@@ -3386,19 +2814,12 @@ update_device_page (GduWindow      *window,
   gtk_widget_hide (GTK_WIDGET (window->generic_drive_menu_item_resume_now));
   gtk_widget_hide (GTK_WIDGET (window->generic_drive_menu_item_power_off));
 
-  /* Hide all MDRaid-specific menu items - will be turned on again in update_device_page_for_mdraid() */
-  gtk_widget_hide (GTK_WIDGET (window->generic_drive_menu_item_mdraid_sep_1));
-  gtk_widget_hide (GTK_WIDGET (window->generic_drive_menu_item_mdraid_disks));
-  gtk_widget_hide (GTK_WIDGET (window->generic_drive_menu_item_mdraid_start_data_scrubbing));
-  gtk_widget_hide (GTK_WIDGET (window->generic_drive_menu_item_mdraid_stop_data_scrubbing));
-
   /* ensure grid is set to the right volumes */
   device_page_ensure_grid (window);
 
   object = window->current_object;
   block = udisks_object_peek_block (window->current_object);
   drive = udisks_object_peek_drive (window->current_object);
-  mdraid = udisks_object_peek_mdraid (window->current_object);
   if (block != NULL)
     loop = udisks_client_get_loop_for_block (window->client, block);
 
@@ -3407,8 +2828,6 @@ update_device_page (GduWindow      *window,
 
   if (drive != NULL)
     update_device_page_for_drive (window, object, drive, show_flags);
-  else if (mdraid != NULL)
-    update_device_page_for_mdraid (window, object, mdraid, show_flags);
   else if (loop != NULL)
     update_device_page_for_loop (window, object, block, loop, show_flags);
   else
@@ -3625,86 +3044,6 @@ on_generic_drive_menu_item_disk_settings (GtkMenuItem *menu_item,
   gdu_disk_settings_dialog_show (window, window->current_object);
 }
 
-static void
-on_generic_drive_menu_item_mdraid_disks (GtkMenuItem *menu_item,
-                                         gpointer     user_data)
-{
-  GduWindow *window = GDU_WINDOW (user_data);
-  gdu_mdraid_disks_dialog_show (window, window->current_object);
-}
-
-/* ---------------------------------------------------------------------------------------------------- */
-
-static void
-request_sync_action_cb (GObject      *source_object,
-                        GAsyncResult *res,
-                        gpointer      user_data)
-{
-  GduWindow *window = GDU_WINDOW (user_data);
-  GError *error = NULL;
-
-  if (!udisks_mdraid_call_request_sync_action_finish (UDISKS_MDRAID (source_object),
-                                                      res,
-                                                      &error))
-    {
-      gdu_utils_show_error (GTK_WINDOW (window),
-                            _("An error occurred when requesting data redundancy check"),
-                            error);
-      g_clear_error (&error);
-    }
-  g_object_unref (window);
-}
-
-static void
-on_generic_drive_menu_item_mdraid_start_data_scrubbing (GtkMenuItem *menu_item,
-                                                        gpointer     user_data)
-{
-  GduWindow *window = GDU_WINDOW (user_data);
-  UDisksMDRaid *mdraid = udisks_object_peek_mdraid (window->current_object);
-  const gchar *heading;
-  const gchar *message;
-  gboolean opt_repair = TRUE;
-
-  /* Translators: Heading for data scrubbing dialog */
-  heading = C_("mdraid-scrub-dialog", "Data Scrubbing");
-  /* Translators: Message for data scrubbing dialog */
-  message = C_("mdraid-scrub-dialog", "As storage devices can develop bad blocks at any time it is valuable 
to regularly read all blocks on all disks in a RAID array so as to catch such bad blocks early.\n\nThe RAID 
array will remain operational for the duration of the operation but performance will be impacted. For more 
information about data scrubbing, see the <a 
href='https://raid.wiki.kernel.org/index.php/RAID_Administration'>RAID Administration</a> article.");
-
-  if (!gdu_utils_show_confirmation (GTK_WINDOW (window),
-                                    heading,
-                                    message,
-                                    C_("mdraid-scrub-dialog", "_Start"),
-                                    C_("mdraid-scrub-dialog", "_Repair mismatched blocks, if possible"),
-                                    &opt_repair,
-                                    window->client, NULL))
-    goto out;
-
-  udisks_mdraid_call_request_sync_action (mdraid,
-                                          opt_repair ? "repair" : "check",
-                                          g_variant_new ("a{sv}", NULL), /* options */
-                                          NULL, /* cancellable */
-                                          (GAsyncReadyCallback) request_sync_action_cb,
-                                          g_object_ref (window));
-
- out:
-  ;
-}
-
-static void
-on_generic_drive_menu_item_mdraid_stop_data_scrubbing (GtkMenuItem *menu_item,
-                                                       gpointer     user_data)
-{
-  GduWindow *window = GDU_WINDOW (user_data);
-  UDisksMDRaid *mdraid = udisks_object_peek_mdraid (window->current_object);
-
-  udisks_mdraid_call_request_sync_action (mdraid,
-                                          "idle",
-                                          g_variant_new ("a{sv}", NULL), /* options */
-                                          NULL, /* cancellable */
-                                          (GAsyncReadyCallback) request_sync_action_cb,
-                                          g_object_ref (window));
-}
-
 /* ---------------------------------------------------------------------------------------------------- */
 
 static void
@@ -4239,124 +3578,6 @@ on_devtab_drive_eject_button_clicked (GtkButton *button,
 /* ---------------------------------------------------------------------------------------------------- */
 
 static void
-mdraid_start_cb (UDisksMDRaid  *mdraid,
-                 GAsyncResult  *res,
-                 gpointer       user_data)
-{
-  GduWindow *window = GDU_WINDOW (user_data);
-  GError *error;
-
-  error = NULL;
-  if (!udisks_mdraid_call_start_finish (mdraid,
-                                        res,
-                                        &error))
-    {
-      /* TODO: When udisks has a suitable error code - for example MDRAID_CAN_NOT_START_NORMALLY - and
-       * this is returned, put up a dialog with a --force and --run check-boxes.
-       */
-      gdu_utils_show_error (GTK_WINDOW (window),
-                            _("Error starting RAID array"),
-                            error);
-      g_error_free (error);
-    }
-  g_object_unref (window);
-}
-
-static void
-on_devtab_drive_raid_start_button_clicked (GtkButton *button,
-                                           gpointer   user_data)
-{
-  GduWindow *window = GDU_WINDOW (user_data);
-  GVariantBuilder options_builder;
-  UDisksMDRaid *mdraid;
-
-  mdraid = udisks_object_peek_mdraid (window->current_object);
-  g_variant_builder_init (&options_builder, G_VARIANT_TYPE_VARDICT);
-
-  /* g_variant_builder_add (&options_builder, "{sv}", "start-degraded", g_variant_new_boolean (TRUE)); */
-  udisks_mdraid_call_start (mdraid,
-                            g_variant_builder_end (&options_builder),
-                            NULL, /* cancellable */
-                            (GAsyncReadyCallback) mdraid_start_cb,
-                            g_object_ref (window));
-}
-
-/* ---------------------------------------------------------------------------------------------------- */
-
-static void
-mdraid_stop_cb (UDisksMDRaid  *mdraid,
-                GAsyncResult  *res,
-                gpointer       user_data)
-{
-  GduWindow *window = GDU_WINDOW (user_data);
-  GError *error;
-
-  error = NULL;
-  if (!udisks_mdraid_call_stop_finish (mdraid,
-                                        res,
-                                        &error))
-    {
-      gdu_utils_show_error (GTK_WINDOW (window),
-                            _("Error stopping RAID array"),
-                            error);
-      g_error_free (error);
-    }
-  g_object_unref (window);
-}
-
-static void
-raid_stop_ensure_unused_cb (GduWindow     *window,
-                            GAsyncResult  *res,
-                            gpointer       user_data)
-{
-  UDisksObject *object = UDISKS_OBJECT (user_data);
-  if (gdu_window_ensure_unused_finish (window, res, NULL))
-    {
-      udisks_mdraid_call_stop (udisks_object_peek_mdraid (object),
-                               g_variant_new ("a{sv}", NULL), /* options */
-                               NULL, /* cancellable */
-                               (GAsyncReadyCallback) mdraid_stop_cb,
-                               g_object_ref (window));
-    }
-  g_object_unref (object);
-}
-
-static void
-on_devtab_drive_raid_stop_button_clicked (GtkButton *button,
-                                          gpointer   user_data)
-{
-  GduWindow *window = GDU_WINDOW (user_data);
-  UDisksMDRaid *mdraid = NULL;
-  UDisksBlock *block_for_mdraid = NULL;
-
-  mdraid = udisks_object_get_mdraid (window->current_object);
-  if (mdraid == NULL)
-    {
-      g_warning ("No MDRaid interface");
-      goto out;
-    }
-
-  block_for_mdraid = udisks_client_get_block_for_mdraid (window->client, mdraid);
-  if (block_for_mdraid == NULL)
-    {
-      g_warning ("No block device for MDRaid object");
-      goto out;
-    }
-
-  gdu_window_ensure_unused (window,
-                            (UDisksObject *) g_dbus_interface_get_object (G_DBUS_INTERFACE 
(block_for_mdraid)),
-                            (GAsyncReadyCallback) raid_stop_ensure_unused_cb,
-                            NULL, /* GCancellable */
-                            g_object_ref (window->current_object));
-
- out:
-  g_clear_object (&block_for_mdraid);
-  g_clear_object (&mdraid);
-}
-
-/* ---------------------------------------------------------------------------------------------------- */
-
-static void
 on_unlock_tool_button_clicked (GtkToolButton *button, gpointer user_data)
 {
   GduWindow *window = GDU_WINDOW (user_data);
@@ -4510,69 +3731,6 @@ on_deactivate_swap_tool_button_clicked (GtkToolButton *button, gpointer user_dat
 /* ---------------------------------------------------------------------------------------------------- */
 
 static void
-mdraid_set_bitmap_location_cb (UDisksMDRaid  *mdraid,
-                               GAsyncResult  *res,
-                               gpointer       user_data)
-{
-  GduWindow *window = GDU_WINDOW (user_data);
-  GError *error;
-
-  error = NULL;
-  if (!udisks_mdraid_call_set_bitmap_location_finish (mdraid,
-                                                      res,
-                                                      &error))
-    {
-      gdu_utils_show_error (GTK_WINDOW (window),
-                            _("Error setting bitmap for the RAID array"),
-                            error);
-      g_error_free (error);
-      /* in case of error, make sure the GtkSwitch:active reverts */
-      update_all (window);
-    }
-  g_object_unref (window);
-}
-
-static void
-on_devtab_drive_raid_bitmap_switch_notify_active (GObject    *gobject,
-                                                  GParamSpec *pspec,
-                                                  gpointer    user_data)
-{
-  GduWindow *window = GDU_WINDOW (user_data);
-  UDisksMDRaid *mdraid;
-  gboolean sw_value = FALSE;
-  const gchar *bitmap_location;
-  gboolean has_bitmap = FALSE;
-
-  mdraid = udisks_object_peek_mdraid (window->current_object);
-
-  bitmap_location = udisks_mdraid_get_bitmap_location (mdraid);
-  if (bitmap_location != NULL && strlen (bitmap_location) > 0 && g_strcmp0 (bitmap_location, "none") != 0)
-    has_bitmap = TRUE;
-
-  sw_value = !! gtk_switch_get_active (GTK_SWITCH (gobject));
-  if (sw_value != (!!has_bitmap))
-    {
-      const gchar *bitmap_location_new_value;
-      GVariantBuilder options_builder;
-
-      if (sw_value)
-        bitmap_location_new_value = "internal";
-      else
-        bitmap_location_new_value = "none";
-
-      g_variant_builder_init (&options_builder, G_VARIANT_TYPE_VARDICT);
-      udisks_mdraid_call_set_bitmap_location (mdraid,
-                                              bitmap_location_new_value,
-                                              g_variant_builder_end (&options_builder),
-                                              NULL, /* cancellable */
-                                              (GAsyncReadyCallback) mdraid_set_bitmap_location_cb,
-                                              g_object_ref (window));
-    }
-}
-
-/* ---------------------------------------------------------------------------------------------------- */
-
-static void
 loop_set_autoclear_cb (UDisksLoop      *loop,
                        GAsyncResult    *res,
                        gpointer         user_data)
diff --git a/src/libgdu/gduutils.c b/src/libgdu/gduutils.c
index f18515a..2da93dd 100644
--- a/src/libgdu/gduutils.c
+++ b/src/libgdu/gduutils.c
@@ -780,78 +780,6 @@ gdu_utils_is_ntfs_available (void)
 
 /* ---------------------------------------------------------------------------------------------------- */
 
-gchar *
-gdu_utils_format_mdraid_level (const gchar *level,
-                               gboolean     long_desc,
-                               gboolean     use_markup)
-{
-  gchar *ret = NULL;
-  const gchar *markup_format;
-
-  if (long_desc)
-    {
-      if (use_markup)
-        markup_format = "%s <span size=\"small\">(%s)</span>";
-      else
-        markup_format = "%s (%s)";
-    }
-  else
-    {
-      markup_format = "%s";
-    }
-
-  /* we know better than the compiler here */
-#ifdef __GNUC_PREREQ
-# if __GNUC_PREREQ(4,6)
-#  pragma GCC diagnostic push
-#  pragma GCC diagnostic ignored "-Wformat-nonliteral"
-# endif
-#endif
-
-  if (g_strcmp0 (level, "raid0") == 0)
-    {
-      ret = g_strdup_printf (markup_format,
-                             _("RAID 0"),
-                             _("Stripe"));
-    }
-  else if (g_strcmp0 (level, "raid1") == 0)
-    {
-      ret = g_strdup_printf (markup_format,
-                             _("RAID 1"),
-                             _("Mirror"));
-    }
-  else if (g_strcmp0 (level, "raid4") == 0)
-    {
-      ret = g_strdup_printf (markup_format,
-                             _("RAID 4"),
-                             _("Dedicated Parity"));
-    }
-  else if (g_strcmp0 (level, "raid5") == 0)
-    {
-      ret = g_strdup_printf (markup_format,
-                             _("RAID 5"),
-                             _("Distributed Parity"));
-    }
-  else if (g_strcmp0 (level, "raid6") == 0)
-    {
-      ret = g_strdup_printf (markup_format,
-                             _("RAID 6"),
-                             _("Double Distributed Parity"));
-    }
-  else if (g_strcmp0 (level, "raid10") == 0)
-    {
-      ret = g_strdup_printf (markup_format,
-                             _("RAID 10"),
-                             _("Stripe of Mirrors"));
-    }
-
-  if (ret == NULL)
-    {
-      ret = g_strdup_printf (_("RAID (%s)"), level);
-    }
-  return ret;
-}
-
 #ifdef __GNUC_PREREQ
 # if __GNUC_PREREQ(4,6)
 #  pragma GCC diagnostic pop
diff --git a/src/libgdu/gduutils.h b/src/libgdu/gduutils.h
index 734b61e..060cd0c 100644
--- a/src/libgdu/gduutils.h
+++ b/src/libgdu/gduutils.h
@@ -62,10 +62,6 @@ gboolean        gdu_utils_show_confirmation (GtkWindow    *parent_window,
 
 gboolean gdu_utils_is_ntfs_available (void);
 
-gchar *gdu_utils_format_mdraid_level (const gchar *level,
-                                      gboolean     long_desc,
-                                      gboolean     use_markup);
-
 gboolean gdu_util_is_same_size (GList   *blocks,
                                 guint64 *out_min_size);
 
diff --git a/src/notify/gdusdmonitor.c b/src/notify/gdusdmonitor.c
index 1de31b3..d4822b5 100644
--- a/src/notify/gdusdmonitor.c
+++ b/src/notify/gdusdmonitor.c
@@ -33,10 +33,6 @@ struct GduSdMonitor {
   /* ATA SMART problems */
   GList *ata_smart_problems;
   NotifyNotification *ata_smart_notification;
-
-  /* MD-RAID problems */
-  GList *mdraid_problems;
-  NotifyNotification *mdraid_notification;
 };
 
 G_DEFINE_TYPE (GduSdMonitor, gdu_sd_monitor, G_TYPE_OBJECT);
@@ -94,9 +90,6 @@ gdu_sd_monitor_finalize (GObject *object)
   g_list_free_full (monitor->ata_smart_problems, g_object_unref);
   g_clear_object (&monitor->ata_smart_notification);
 
-  g_list_free_full (monitor->mdraid_problems, g_object_unref);
-  g_clear_object (&monitor->mdraid_notification);
-
   G_OBJECT_CLASS (gdu_sd_monitor_parent_class)->finalize (object);
 }
 
@@ -257,26 +250,6 @@ on_examine_action_clicked (NotifyNotification  *notification,
             }
         }
     }
-  else if (g_strcmp0 (action, "examine-mdraid") == 0)
-    {
-      if (monitor->mdraid_problems != NULL)
-        {
-          UDisksObject *object = UDISKS_OBJECT (monitor->mdraid_problems->data);
-          if (object != NULL)
-            {
-              UDisksMDRaid *mdraid = udisks_object_peek_mdraid (object);
-              if (mdraid != NULL)
-                {
-                  UDisksBlock *block = udisks_client_get_block_for_mdraid (monitor->client, mdraid);
-                  if (block != NULL)
-                    {
-                      device_file = udisks_block_get_device (block);
-                      g_object_ref (block);
-                    }
-                }
-            }
-        }
-    }
   else
     {
       g_assert_not_reached ();
@@ -372,26 +345,6 @@ check_for_ata_smart_problem (GduSdMonitor  *monitor,
   return ret;
 }
 
-static gboolean
-check_for_mdraid_problem (GduSdMonitor  *monitor,
-                          UDisksObject  *object)
-{
-  gboolean ret = FALSE;
-  UDisksMDRaid *mdraid = NULL;
-
-  mdraid = udisks_object_peek_mdraid (object);
-  if (mdraid == NULL)
-    goto out;
-
-  if (udisks_mdraid_get_degraded (mdraid) == 0)
-    goto out;
-
-  ret = TRUE;
-
- out:
-  return ret;
-}
-
 static void
 update (GduSdMonitor *monitor)
 {
@@ -407,19 +360,6 @@ update (GduSdMonitor *monitor)
                        "examine-smart",
                        /* Translators: Text for button in SMART failure notification */
                        C_("notify-smart", "Examine"));
-
-  update_problems (monitor, &monitor->mdraid_problems, check_for_mdraid_problem);
-  update_notification (monitor,
-                       monitor->mdraid_problems,
-                       &monitor->mdraid_notification,
-                       /* Translators: This is used as the title of the MD-RAID degraded notification */
-                       C_("notify-mdraid", "RAID Problems Detected"),
-                       /* Translators: This is used as the text of the MD-RAID degraded notification */
-                       C_("notify-mdraid", "A RAID array is degraded."),
-                       "gnome-disks",
-                       "examine-mdraid",
-                       /* Translators: Text for button in MD-RAID degraded notification */
-                       C_("notify-mdraid", "Examine"));
 }
 
 /* ---------------------------------------------------------------------------------------------------- */



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]