summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRunar Borge <runar@borge.nu>2018-06-07 23:54:20 +0200
committerRunar Borge <runar@borge.nu>2018-06-07 23:54:20 +0200
commit327e8d203635d435d75b57f30df6695b56ff63ee (patch)
tree30767e3bd0c99a7bb384e219f050fd05e7588d87
parent55110c80f480ba7081af16b43447b92ad295e488 (diff)
downloadvyos-1x-327e8d203635d435d75b57f30df6695b56ff63ee.tar.gz
vyos-1x-327e8d203635d435d75b57f30df6695b56ff63ee.zip
T689: Convert show raid to new syntax
-rw-r--r--op-mode-definitions/show-raid.xml18
-rwxr-xr-xsrc/completion/list_raidset.sh3
-rwxr-xr-xsrc/op_mode/show-raid.sh17
3 files changed, 38 insertions, 0 deletions
diff --git a/op-mode-definitions/show-raid.xml b/op-mode-definitions/show-raid.xml
new file mode 100644
index 000000000..b0930742a
--- /dev/null
+++ b/op-mode-definitions/show-raid.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+ <node name="show">
+ <children>
+ <tagNode name="raid">
+ <properties>
+ <help>Show statis of RAID set</help>
+ <completionHelp>
+ <script>${vyos_completion_dir}/list_raidset.sh</script>
+ </completionHelp>
+ </properties>
+ <command>${vyos_op_scripts_dir}/show_raid.sh $3</command>
+
+ </tagNode>
+
+ </children>
+ </node>
+</interfaceDefinition>
diff --git a/src/completion/list_raidset.sh b/src/completion/list_raidset.sh
new file mode 100755
index 000000000..9ff3523aa
--- /dev/null
+++ b/src/completion/list_raidset.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+echo -n `cat /proc/partitions | grep md | awk '{ print $4 }'`
diff --git a/src/op_mode/show-raid.sh b/src/op_mode/show-raid.sh
new file mode 100755
index 000000000..ba4174692
--- /dev/null
+++ b/src/op_mode/show-raid.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+raid_set_name=$1
+raid_sets=`cat /proc/partitions | grep md | awk '{ print $4 }'`
+valid_set=`echo $raid_sets | grep $raid_set_name`
+if [ -z $valid_set ]; then
+ echo "$raid_set_name is not a RAID set"
+else
+ if [ -r /dev/${raid_set_name} ]; then
+ # This should work without sudo because we have read
+ # access to the dev, but for some reason mdadm must be
+ # run as root in order to succeed.
+ sudo /sbin/mdadm --detail /dev/${raid_set_name}
+ else
+ echo "Must be administrator or root to display RAID status"
+ fi
+fi