[PATCH] Change license statement by replacing address to URL.
by Gris Ge
In case FSF change their addresses, this patch change the address used in
license statement to website URL:
= Old =
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
= New =
You should have received a copy of the GNU Lesser General Public
License along with this library; If not, see <http://www.gnu.org/licenses/>.
Signed-off-by: Gris Ge <fge(a)redhat.com>
---
c_binding/include/libstoragemgmt/libstoragemgmt.h | 4 +---
c_binding/include/libstoragemgmt/libstoragemgmt_accessgroups.h | 4 +---
c_binding/include/libstoragemgmt/libstoragemgmt_blockrange.h | 4 +---
c_binding/include/libstoragemgmt/libstoragemgmt_capabilities.h | 3 +--
c_binding/include/libstoragemgmt/libstoragemgmt_common.h | 3 +--
c_binding/include/libstoragemgmt/libstoragemgmt_disk.h | 4 +---
c_binding/include/libstoragemgmt/libstoragemgmt_error.h | 4 +---
c_binding/include/libstoragemgmt/libstoragemgmt_fs.h | 3 +--
c_binding/include/libstoragemgmt/libstoragemgmt_hash.h | 3 +--
c_binding/include/libstoragemgmt/libstoragemgmt_nfsexport.h | 3 +--
c_binding/include/libstoragemgmt/libstoragemgmt_plug_interface.h | 3 +--
c_binding/include/libstoragemgmt/libstoragemgmt_pool.h | 3 +--
c_binding/include/libstoragemgmt/libstoragemgmt_snapshot.h | 4 +---
c_binding/include/libstoragemgmt/libstoragemgmt_systems.h | 3 +--
c_binding/include/libstoragemgmt/libstoragemgmt_targetport.h | 3 +--
c_binding/include/libstoragemgmt/libstoragemgmt_types.h | 3 +--
c_binding/include/libstoragemgmt/libstoragemgmt_version.h.in | 3 +--
c_binding/include/libstoragemgmt/libstoragemgmt_volumes.h | 3 +--
c_binding/lsm_convert.cpp | 4 +---
c_binding/lsm_convert.hpp | 3 +--
c_binding/lsm_datatypes.cpp | 3 +--
c_binding/lsm_datatypes.hpp | 3 +--
c_binding/lsm_ipc.cpp | 4 +---
c_binding/lsm_ipc.hpp | 4 +---
c_binding/lsm_mgmt.cpp | 3 +--
c_binding/lsm_plugin_ipc.cpp | 3 +--
c_binding/lsm_plugin_ipc.hpp | 3 +--
c_binding/util/misc.cpp | 3 +--
c_binding/util/misc.h | 3 +--
c_binding/util/qparams.c | 3 +--
c_binding/util/qparams.h | 3 +--
daemon/lsm_daemon.c | 3 +--
daemon/lsm_rest.c | 4 +---
daemon/lsm_rest.h | 4 +---
plugin/hpsa/hpsa.py | 3 +--
plugin/hpsa/hpsa_lsmplugin | 3 +--
plugin/hpsa/utils.py | 3 +--
plugin/megaraid/megaraid.py | 3 +--
plugin/megaraid/megaraid_lsmplugin | 3 +--
plugin/megaraid/utils.py | 3 +--
plugin/nstor/nstor.py | 3 +--
plugin/nstor/nstor_lsmplugin | 3 +--
plugin/ontap/na.py | 3 +--
plugin/ontap/ontap.py | 4 +---
plugin/ontap/ontap_lsmplugin | 3 +--
plugin/sim/sim_lsmplugin | 3 +--
plugin/sim/simarray.py | 3 +--
plugin/sim/simulator.py | 3 +--
plugin/simc/simc_lsmplugin.c | 4 +---
plugin/smispy/dmtf.py | 4 +---
plugin/smispy/smis.py | 4 +---
plugin/smispy/smis_ag.py | 3 +--
plugin/smispy/smis_cap.py | 4 +---
plugin/smispy/smis_common.py | 3 +--
plugin/smispy/smis_disk.py | 3 +--
plugin/smispy/smis_pool.py | 3 +--
plugin/smispy/smis_sys.py | 3 +--
plugin/smispy/smis_vol.py | 3 +--
plugin/smispy/smispy_lsmplugin | 3 +--
plugin/smispy/utils.py | 3 +--
plugin/targetd/targetd.py | 3 +--
plugin/targetd/targetd_lsmplugin | 3 +--
python_binding/lsm/_client.py | 3 +--
python_binding/lsm/_common.py | 3 +--
python_binding/lsm/_data.py | 3 +--
python_binding/lsm/_iplugin.py | 3 +--
python_binding/lsm/_pluginrunner.py | 3 +--
python_binding/lsm/_transport.py | 3 +--
python_binding/lsm/version.py.in | 3 +--
test/cmdtest.py | 3 +--
test/plugin_test.py | 3 +--
test/runtests.sh | 3 +--
test/tester.c | 3 +--
test/webtest/test_automated.py | 4 +---
test/webtest/test_hardware.py | 3 +--
test/webtest/test_results.py | 4 +---
tools/lsmcli/cmdline.py | 3 +--
tools/lsmcli/data_display.py | 4 +---
tools/lsmcli/lsmcli | 3 +--
tools/lsmenv | 3 +--
tools/netapp/netapp.py | 3 +--
tools/smiscli/BlockMgmt.cpp | 3 +--
tools/smiscli/BlockMgmt.h | 3 +--
tools/smiscli/smiscli.cpp | 3 +--
tools/utility/check_const.pl | 4 +---
tools/utility/public_symbols.py | 3 +--
tools/utility/web_cap.py | 3 +--
87 files changed, 87 insertions(+), 194 deletions(-)
diff --git a/c_binding/include/libstoragemgmt/libstoragemgmt.h b/c_binding/include/libstoragemgmt/libstoragemgmt.h
index 7a84376..4639a09 100644
--- a/c_binding/include/libstoragemgmt/libstoragemgmt.h
+++ b/c_binding/include/libstoragemgmt/libstoragemgmt.h
@@ -11,9 +11,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
- * USA
+ * License along with this library; If not, see <http://www.gnu.org/licenses/>.
*
* Author: tasleson
*/
diff --git a/c_binding/include/libstoragemgmt/libstoragemgmt_accessgroups.h b/c_binding/include/libstoragemgmt/libstoragemgmt_accessgroups.h
index becef5d..09792b2 100644
--- a/c_binding/include/libstoragemgmt/libstoragemgmt_accessgroups.h
+++ b/c_binding/include/libstoragemgmt/libstoragemgmt_accessgroups.h
@@ -11,9 +11,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
- * USA
+ * License along with this library; If not, see <http://www.gnu.org/licenses/>.
*
* Author: tasleson
*/
diff --git a/c_binding/include/libstoragemgmt/libstoragemgmt_blockrange.h b/c_binding/include/libstoragemgmt/libstoragemgmt_blockrange.h
index c8bddcc..4946994 100644
--- a/c_binding/include/libstoragemgmt/libstoragemgmt_blockrange.h
+++ b/c_binding/include/libstoragemgmt/libstoragemgmt_blockrange.h
@@ -11,9 +11,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
- * USA
+ * License along with this library; If not, see <http://www.gnu.org/licenses/>.
*
* Author: tasleson
*/
diff --git a/c_binding/include/libstoragemgmt/libstoragemgmt_capabilities.h b/c_binding/include/libstoragemgmt/libstoragemgmt_capabilities.h
index e8c1079..4d0c351 100644
--- a/c_binding/include/libstoragemgmt/libstoragemgmt_capabilities.h
+++ b/c_binding/include/libstoragemgmt/libstoragemgmt_capabilities.h
@@ -11,8 +11,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * License along with this library; If not, see <http://www.gnu.org/licenses/>.
*
* Author: tasleson
*/
diff --git a/c_binding/include/libstoragemgmt/libstoragemgmt_common.h b/c_binding/include/libstoragemgmt/libstoragemgmt_common.h
index e1284de..dd164e6 100644
--- a/c_binding/include/libstoragemgmt/libstoragemgmt_common.h
+++ b/c_binding/include/libstoragemgmt/libstoragemgmt_common.h
@@ -11,8 +11,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * License along with this library; If not, see <http://www.gnu.org/licenses/>.
*
* Author: tasleson
*/
diff --git a/c_binding/include/libstoragemgmt/libstoragemgmt_disk.h b/c_binding/include/libstoragemgmt/libstoragemgmt_disk.h
index 10ed30f..4299258 100644
--- a/c_binding/include/libstoragemgmt/libstoragemgmt_disk.h
+++ b/c_binding/include/libstoragemgmt/libstoragemgmt_disk.h
@@ -11,9 +11,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
- * USA
+ * License along with this library; If not, see <http://www.gnu.org/licenses/>.
*
* Author: tasleson
*
diff --git a/c_binding/include/libstoragemgmt/libstoragemgmt_error.h b/c_binding/include/libstoragemgmt/libstoragemgmt_error.h
index 9344354..46e0283 100644
--- a/c_binding/include/libstoragemgmt/libstoragemgmt_error.h
+++ b/c_binding/include/libstoragemgmt/libstoragemgmt_error.h
@@ -11,9 +11,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
- * USA
+ * License along with this library; If not, see <http://www.gnu.org/licenses/>.
*
* Author: tasleson
*/
diff --git a/c_binding/include/libstoragemgmt/libstoragemgmt_fs.h b/c_binding/include/libstoragemgmt/libstoragemgmt_fs.h
index 1f10010..4f12d3b 100644
--- a/c_binding/include/libstoragemgmt/libstoragemgmt_fs.h
+++ b/c_binding/include/libstoragemgmt/libstoragemgmt_fs.h
@@ -11,8 +11,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * License along with this library; If not, see <http://www.gnu.org/licenses/>.
*
* Author: tasleson
*/
diff --git a/c_binding/include/libstoragemgmt/libstoragemgmt_hash.h b/c_binding/include/libstoragemgmt/libstoragemgmt_hash.h
index 5f435ff..a669a59 100644
--- a/c_binding/include/libstoragemgmt/libstoragemgmt_hash.h
+++ b/c_binding/include/libstoragemgmt/libstoragemgmt_hash.h
@@ -11,8 +11,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * License along with this library; If not, see <http://www.gnu.org/licenses/>.
*
* Author: tasleson
*
diff --git a/c_binding/include/libstoragemgmt/libstoragemgmt_nfsexport.h b/c_binding/include/libstoragemgmt/libstoragemgmt_nfsexport.h
index 927d739..085ea12 100644
--- a/c_binding/include/libstoragemgmt/libstoragemgmt_nfsexport.h
+++ b/c_binding/include/libstoragemgmt/libstoragemgmt_nfsexport.h
@@ -11,8 +11,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * License along with this library; If not, see <http://www.gnu.org/licenses/>.
*
* Author: tasleson
*/
diff --git a/c_binding/include/libstoragemgmt/libstoragemgmt_plug_interface.h b/c_binding/include/libstoragemgmt/libstoragemgmt_plug_interface.h
index d122d92..763c278 100644
--- a/c_binding/include/libstoragemgmt/libstoragemgmt_plug_interface.h
+++ b/c_binding/include/libstoragemgmt/libstoragemgmt_plug_interface.h
@@ -11,8 +11,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * License along with this library; If not, see <http://www.gnu.org/licenses/>.
*
* Author: tasleson
*/
diff --git a/c_binding/include/libstoragemgmt/libstoragemgmt_pool.h b/c_binding/include/libstoragemgmt/libstoragemgmt_pool.h
index 7a82078..76cee10 100644
--- a/c_binding/include/libstoragemgmt/libstoragemgmt_pool.h
+++ b/c_binding/include/libstoragemgmt/libstoragemgmt_pool.h
@@ -11,8 +11,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * License along with this library; If not, see <http://www.gnu.org/licenses/>.
*
* Author: tasleson
*/
diff --git a/c_binding/include/libstoragemgmt/libstoragemgmt_snapshot.h b/c_binding/include/libstoragemgmt/libstoragemgmt_snapshot.h
index 5e3b3ba..1e2ea5e 100644
--- a/c_binding/include/libstoragemgmt/libstoragemgmt_snapshot.h
+++ b/c_binding/include/libstoragemgmt/libstoragemgmt_snapshot.h
@@ -11,9 +11,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
- * USA
+ * License along with this library; If not, see <http://www.gnu.org/licenses/>.
*
* Author: tasleson
*/
diff --git a/c_binding/include/libstoragemgmt/libstoragemgmt_systems.h b/c_binding/include/libstoragemgmt/libstoragemgmt_systems.h
index 3785a45..5664a92 100644
--- a/c_binding/include/libstoragemgmt/libstoragemgmt_systems.h
+++ b/c_binding/include/libstoragemgmt/libstoragemgmt_systems.h
@@ -11,8 +11,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * License along with this library; If not, see <http://www.gnu.org/licenses/>.
*
* Author: tasleson
*/
diff --git a/c_binding/include/libstoragemgmt/libstoragemgmt_targetport.h b/c_binding/include/libstoragemgmt/libstoragemgmt_targetport.h
index c14d0d0..9808417 100644
--- a/c_binding/include/libstoragemgmt/libstoragemgmt_targetport.h
+++ b/c_binding/include/libstoragemgmt/libstoragemgmt_targetport.h
@@ -11,8 +11,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * License along with this library; If not, see <http://www.gnu.org/licenses/>.
*
* Author: tasleson
*/
diff --git a/c_binding/include/libstoragemgmt/libstoragemgmt_types.h b/c_binding/include/libstoragemgmt/libstoragemgmt_types.h
index 17d8879..c12aa21 100644
--- a/c_binding/include/libstoragemgmt/libstoragemgmt_types.h
+++ b/c_binding/include/libstoragemgmt/libstoragemgmt_types.h
@@ -11,8 +11,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * License along with this library; If not, see <http://www.gnu.org/licenses/>.
*
* Author: tasleson
*/
diff --git a/c_binding/include/libstoragemgmt/libstoragemgmt_version.h.in b/c_binding/include/libstoragemgmt/libstoragemgmt_version.h.in
index 1321ead..426865d 100644
--- a/c_binding/include/libstoragemgmt/libstoragemgmt_version.h.in
+++ b/c_binding/include/libstoragemgmt/libstoragemgmt_version.h.in
@@ -11,8 +11,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * License along with this library; If not, see <http://www.gnu.org/licenses/>.
*
* Author: tasleson
*/
diff --git a/c_binding/include/libstoragemgmt/libstoragemgmt_volumes.h b/c_binding/include/libstoragemgmt/libstoragemgmt_volumes.h
index c7072cb..5a6c057 100644
--- a/c_binding/include/libstoragemgmt/libstoragemgmt_volumes.h
+++ b/c_binding/include/libstoragemgmt/libstoragemgmt_volumes.h
@@ -11,8 +11,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * License along with this library; If not, see <http://www.gnu.org/licenses/>.
*
* Author: tasleson
*/
diff --git a/c_binding/lsm_convert.cpp b/c_binding/lsm_convert.cpp
index 4d9356c..68981c0 100644
--- a/c_binding/lsm_convert.cpp
+++ b/c_binding/lsm_convert.cpp
@@ -11,9 +11,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
- * USA
+ * License along with this library; If not, see <http://www.gnu.org/licenses/>.
*
* Author: tasleson
*/
diff --git a/c_binding/lsm_convert.hpp b/c_binding/lsm_convert.hpp
index 8947d85..2a4e4e0 100644
--- a/c_binding/lsm_convert.hpp
+++ b/c_binding/lsm_convert.hpp
@@ -11,8 +11,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * License along with this library; If not, see <http://www.gnu.org/licenses/>.
*
* Author: tasleson
*/
diff --git a/c_binding/lsm_datatypes.cpp b/c_binding/lsm_datatypes.cpp
index a8f7070..8218db3 100644
--- a/c_binding/lsm_datatypes.cpp
+++ b/c_binding/lsm_datatypes.cpp
@@ -11,8 +11,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * License along with this library; If not, see <http://www.gnu.org/licenses/>.
*
* Author: tasleson
*/
diff --git a/c_binding/lsm_datatypes.hpp b/c_binding/lsm_datatypes.hpp
index dc211c2..558dce0 100644
--- a/c_binding/lsm_datatypes.hpp
+++ b/c_binding/lsm_datatypes.hpp
@@ -11,8 +11,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * License along with this library; If not, see <http://www.gnu.org/licenses/>.
*
* Author: tasleson
*/
diff --git a/c_binding/lsm_ipc.cpp b/c_binding/lsm_ipc.cpp
index 35a4e54..a15c008 100644
--- a/c_binding/lsm_ipc.cpp
+++ b/c_binding/lsm_ipc.cpp
@@ -11,9 +11,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
- * USA
+ * License along with this library; If not, see <http://www.gnu.org/licenses/>.
*
* Author: tasleson
*/
diff --git a/c_binding/lsm_ipc.hpp b/c_binding/lsm_ipc.hpp
index 744a940..e41703f 100644
--- a/c_binding/lsm_ipc.hpp
+++ b/c_binding/lsm_ipc.hpp
@@ -11,9 +11,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
- * USA
+ * License along with this library; If not, see <http://www.gnu.org/licenses/>.
*
* Author: tasleson
*/
diff --git a/c_binding/lsm_mgmt.cpp b/c_binding/lsm_mgmt.cpp
index c238826..4139225 100644
--- a/c_binding/lsm_mgmt.cpp
+++ b/c_binding/lsm_mgmt.cpp
@@ -11,8 +11,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * License along with this library; If not, see <http://www.gnu.org/licenses/>.
*
* Author: tasleson
*/
diff --git a/c_binding/lsm_plugin_ipc.cpp b/c_binding/lsm_plugin_ipc.cpp
index 575f02d..1bc10ee 100644
--- a/c_binding/lsm_plugin_ipc.cpp
+++ b/c_binding/lsm_plugin_ipc.cpp
@@ -11,8 +11,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * License along with this library; If not, see <http://www.gnu.org/licenses/>.
*
* Author: tasleson
*/
diff --git a/c_binding/lsm_plugin_ipc.hpp b/c_binding/lsm_plugin_ipc.hpp
index c5b6458..575ba1c 100644
--- a/c_binding/lsm_plugin_ipc.hpp
+++ b/c_binding/lsm_plugin_ipc.hpp
@@ -11,8 +11,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * License along with this library; If not, see <http://www.gnu.org/licenses/>.
*
* Author: tasleson
*/
diff --git a/c_binding/util/misc.cpp b/c_binding/util/misc.cpp
index e5e13c5..a00bcaa 100644
--- a/c_binding/util/misc.cpp
+++ b/c_binding/util/misc.cpp
@@ -11,8 +11,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * License along with this library; If not, see <http://www.gnu.org/licenses/>.
*
* Author: tasleson
*/
diff --git a/c_binding/util/misc.h b/c_binding/util/misc.h
index 43f37f3..0711b74 100644
--- a/c_binding/util/misc.h
+++ b/c_binding/util/misc.h
@@ -11,8 +11,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * License along with this library; If not, see <http://www.gnu.org/licenses/>.
*
* Author: tasleson
*/
diff --git a/c_binding/util/qparams.c b/c_binding/util/qparams.c
index dc42dae..308e437 100644
--- a/c_binding/util/qparams.c
+++ b/c_binding/util/qparams.c
@@ -11,8 +11,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ * License along with this library; If not, see <http://www.gnu.org/licenses/>.
*
* Authors:
* Richard W.M. Jones <rjones(a)redhat.com>
diff --git a/c_binding/util/qparams.h b/c_binding/util/qparams.h
index ca5ddb4..a4777cb 100644
--- a/c_binding/util/qparams.h
+++ b/c_binding/util/qparams.h
@@ -12,8 +12,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ * License along with this library; If not, see <http://www.gnu.org/licenses/>.
*
* Authors:
* Richard W.M. Jones <rjones(a)redhat.com>
diff --git a/daemon/lsm_daemon.c b/daemon/lsm_daemon.c
index eb0f43e..4f4ccfa 100644
--- a/daemon/lsm_daemon.c
+++ b/daemon/lsm_daemon.c
@@ -11,8 +11,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * License along with this library; If not, see <http://www.gnu.org/licenses/>.
*
* Author: tasleson
*/
diff --git a/daemon/lsm_rest.c b/daemon/lsm_rest.c
index 6ac8e3f..0b20ad5 100644
--- a/daemon/lsm_rest.c
+++ b/daemon/lsm_rest.c
@@ -11,9 +11,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301 USA
+ * License along with this library; If not, see <http://www.gnu.org/licenses/>.
*
* Author: Gris Ge <fge(a)redhat.com>
*/
diff --git a/daemon/lsm_rest.h b/daemon/lsm_rest.h
index 2291273..36c0ea0 100644
--- a/daemon/lsm_rest.h
+++ b/daemon/lsm_rest.h
@@ -11,9 +11,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301 USA
+ * License along with this library; If not, see <http://www.gnu.org/licenses/>.
*
* Author: Gris Ge <fge(a)redhat.com>
*/
diff --git a/plugin/hpsa/hpsa.py b/plugin/hpsa/hpsa.py
index e31bb65..b2f8644 100644
--- a/plugin/hpsa/hpsa.py
+++ b/plugin/hpsa/hpsa.py
@@ -10,8 +10,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# Author: Gris Ge <fge(a)redhat.com>
diff --git a/plugin/hpsa/hpsa_lsmplugin b/plugin/hpsa/hpsa_lsmplugin
index 07230f5..74d6c21 100755
--- a/plugin/hpsa/hpsa_lsmplugin
+++ b/plugin/hpsa/hpsa_lsmplugin
@@ -11,8 +11,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# Author: tasleson
# Gris Ge <fge(a)redhat.com>
diff --git a/plugin/hpsa/utils.py b/plugin/hpsa/utils.py
index 92e27eb..a4f2ca8 100644
--- a/plugin/hpsa/utils.py
+++ b/plugin/hpsa/utils.py
@@ -10,8 +10,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# Author: Gris Ge <fge(a)redhat.com>
diff --git a/plugin/megaraid/megaraid.py b/plugin/megaraid/megaraid.py
index 7fd2760..bffe6a8 100644
--- a/plugin/megaraid/megaraid.py
+++ b/plugin/megaraid/megaraid.py
@@ -10,8 +10,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# Author: Gris Ge <fge(a)redhat.com>
diff --git a/plugin/megaraid/megaraid_lsmplugin b/plugin/megaraid/megaraid_lsmplugin
index 5aaa0e8..0ea6ae4 100755
--- a/plugin/megaraid/megaraid_lsmplugin
+++ b/plugin/megaraid/megaraid_lsmplugin
@@ -12,8 +12,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# Author: tasleson
diff --git a/plugin/megaraid/utils.py b/plugin/megaraid/utils.py
index 67734b0..b701f3d 100644
--- a/plugin/megaraid/utils.py
+++ b/plugin/megaraid/utils.py
@@ -10,8 +10,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# Author: Gris Ge <fge(a)redhat.com>
diff --git a/plugin/nstor/nstor.py b/plugin/nstor/nstor.py
index 5fc2bba..e2bb1ba 100644
--- a/plugin/nstor/nstor.py
+++ b/plugin/nstor/nstor.py
@@ -13,8 +13,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# Author: legkodymov
# Gris Ge <fge(a)redhat.com>
diff --git a/plugin/nstor/nstor_lsmplugin b/plugin/nstor/nstor_lsmplugin
index 82c3171..4fbf90f 100755
--- a/plugin/nstor/nstor_lsmplugin
+++ b/plugin/nstor/nstor_lsmplugin
@@ -15,8 +15,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# Author: legkodymov
import sys
diff --git a/plugin/ontap/na.py b/plugin/ontap/na.py
index b68577c..95d8a74 100644
--- a/plugin/ontap/na.py
+++ b/plugin/ontap/na.py
@@ -10,8 +10,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# Author: tasleson
diff --git a/plugin/ontap/ontap.py b/plugin/ontap/ontap.py
index f6f309d..107f295 100644
--- a/plugin/ontap/ontap.py
+++ b/plugin/ontap/ontap.py
@@ -10,9 +10,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
-# USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# Author: tasleson
# Gris Ge <fge(a)redhat.com>
diff --git a/plugin/ontap/ontap_lsmplugin b/plugin/ontap/ontap_lsmplugin
index 396106c..5151c58 100755
--- a/plugin/ontap/ontap_lsmplugin
+++ b/plugin/ontap/ontap_lsmplugin
@@ -12,8 +12,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# Author: tasleson
diff --git a/plugin/sim/sim_lsmplugin b/plugin/sim/sim_lsmplugin
index 9a7aa1d..8aa8649 100755
--- a/plugin/sim/sim_lsmplugin
+++ b/plugin/sim/sim_lsmplugin
@@ -12,8 +12,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# Author: tasleson
diff --git a/plugin/sim/simarray.py b/plugin/sim/simarray.py
index 8153ab6..b6ff80c 100644
--- a/plugin/sim/simarray.py
+++ b/plugin/sim/simarray.py
@@ -10,8 +10,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# Author: tasleson
# Gris Ge <fge(a)redhat.com>
diff --git a/plugin/sim/simulator.py b/plugin/sim/simulator.py
index 610ab81..052c48d 100644
--- a/plugin/sim/simulator.py
+++ b/plugin/sim/simulator.py
@@ -10,8 +10,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# Author: tasleson
# Gris Ge <fge(a)redhat.com>
diff --git a/plugin/simc/simc_lsmplugin.c b/plugin/simc/simc_lsmplugin.c
index 639b578..4c8c505 100644
--- a/plugin/simc/simc_lsmplugin.c
+++ b/plugin/simc/simc_lsmplugin.c
@@ -11,9 +11,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
- * USA
+ * License along with this library; If not, see <http://www.gnu.org/licenses/>.
*
* Author: tasleson
*
diff --git a/plugin/smispy/dmtf.py b/plugin/smispy/dmtf.py
index f3fe91a..10663dc 100644
--- a/plugin/smispy/dmtf.py
+++ b/plugin/smispy/dmtf.py
@@ -10,9 +10,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
-# USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# Author: Gris Ge <fge(a)redhat.com>
diff --git a/plugin/smispy/smis.py b/plugin/smispy/smis.py
index 1a9120a..f1b7a1f 100644
--- a/plugin/smispy/smis.py
+++ b/plugin/smispy/smis.py
@@ -10,9 +10,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
-# USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# Author: tasleson
# Gris Ge <fge(a)redhat.com>
diff --git a/plugin/smispy/smis_ag.py b/plugin/smispy/smis_ag.py
index f222630..863feac 100644
--- a/plugin/smispy/smis_ag.py
+++ b/plugin/smispy/smis_ag.py
@@ -10,8 +10,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# Author: Gris Ge <fge(a)redhat.com>
diff --git a/plugin/smispy/smis_cap.py b/plugin/smispy/smis_cap.py
index f42ce94..aff7507 100644
--- a/plugin/smispy/smis_cap.py
+++ b/plugin/smispy/smis_cap.py
@@ -10,9 +10,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
-# USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
from lsm import Capabilities, LsmError, ErrorNumber
import dmtf
diff --git a/plugin/smispy/smis_common.py b/plugin/smispy/smis_common.py
index 6044192..bf46bb7 100644
--- a/plugin/smispy/smis_common.py
+++ b/plugin/smispy/smis_common.py
@@ -10,8 +10,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# Author: Gris Ge <fge(a)redhat.com>
diff --git a/plugin/smispy/smis_disk.py b/plugin/smispy/smis_disk.py
index 9fd94e0..1552b5a 100644
--- a/plugin/smispy/smis_disk.py
+++ b/plugin/smispy/smis_disk.py
@@ -10,8 +10,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# Author: Gris Ge <fge(a)redhat.com>
diff --git a/plugin/smispy/smis_pool.py b/plugin/smispy/smis_pool.py
index d7b599d..966b228 100644
--- a/plugin/smispy/smis_pool.py
+++ b/plugin/smispy/smis_pool.py
@@ -10,8 +10,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# Author: Gris Ge <fge(a)redhat.com>
diff --git a/plugin/smispy/smis_sys.py b/plugin/smispy/smis_sys.py
index b3ebe60..7b0c395 100644
--- a/plugin/smispy/smis_sys.py
+++ b/plugin/smispy/smis_sys.py
@@ -10,8 +10,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# Author: Gris Ge <fge(a)redhat.com>
diff --git a/plugin/smispy/smis_vol.py b/plugin/smispy/smis_vol.py
index a2f15c9..2250a7b 100644
--- a/plugin/smispy/smis_vol.py
+++ b/plugin/smispy/smis_vol.py
@@ -10,8 +10,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# Author: Gris Ge <fge(a)redhat.com>
diff --git a/plugin/smispy/smispy_lsmplugin b/plugin/smispy/smispy_lsmplugin
index b0ea003..b2f974a 100755
--- a/plugin/smispy/smispy_lsmplugin
+++ b/plugin/smispy/smispy_lsmplugin
@@ -12,8 +12,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# Author: tasleson
diff --git a/plugin/smispy/utils.py b/plugin/smispy/utils.py
index 668241f..b02f334 100644
--- a/plugin/smispy/utils.py
+++ b/plugin/smispy/utils.py
@@ -10,8 +10,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# Author: Gris Ge <fge(a)redhat.com>
diff --git a/plugin/targetd/targetd.py b/plugin/targetd/targetd.py
index a5e0274..6375c02 100644
--- a/plugin/targetd/targetd.py
+++ b/plugin/targetd/targetd.py
@@ -10,8 +10,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# Author: Andy Grover <agrover at redhat com>
# Gris Ge <fge(a)redhat.com>
diff --git a/plugin/targetd/targetd_lsmplugin b/plugin/targetd/targetd_lsmplugin
index 3a75334..9c13bb8 100755
--- a/plugin/targetd/targetd_lsmplugin
+++ b/plugin/targetd/targetd_lsmplugin
@@ -12,8 +12,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# Author: Andy Grover <agrover at redhat com>
diff --git a/python_binding/lsm/_client.py b/python_binding/lsm/_client.py
index 16929a5..65138bd 100644
--- a/python_binding/lsm/_client.py
+++ b/python_binding/lsm/_client.py
@@ -10,8 +10,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# Author: tasleson
diff --git a/python_binding/lsm/_common.py b/python_binding/lsm/_common.py
index 19b5efa..989aeb6 100644
--- a/python_binding/lsm/_common.py
+++ b/python_binding/lsm/_common.py
@@ -10,8 +10,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# Author: tasleson
import hashlib
diff --git a/python_binding/lsm/_data.py b/python_binding/lsm/_data.py
index 6448303..21767b2 100644
--- a/python_binding/lsm/_data.py
+++ b/python_binding/lsm/_data.py
@@ -10,8 +10,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# Author: tasleson
# Gris Ge <fge(a)redhat.com>
diff --git a/python_binding/lsm/_iplugin.py b/python_binding/lsm/_iplugin.py
index a612ba4..2622e92 100644
--- a/python_binding/lsm/_iplugin.py
+++ b/python_binding/lsm/_iplugin.py
@@ -10,8 +10,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# Author: tasleson
diff --git a/python_binding/lsm/_pluginrunner.py b/python_binding/lsm/_pluginrunner.py
index a6d095c..5c715e5 100644
--- a/python_binding/lsm/_pluginrunner.py
+++ b/python_binding/lsm/_pluginrunner.py
@@ -10,8 +10,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# Author: tasleson
diff --git a/python_binding/lsm/_transport.py b/python_binding/lsm/_transport.py
index 5d6a6ec..0f8516c 100644
--- a/python_binding/lsm/_transport.py
+++ b/python_binding/lsm/_transport.py
@@ -10,8 +10,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# Author: tasleson
diff --git a/python_binding/lsm/version.py.in b/python_binding/lsm/version.py.in
index dc2333e..ee4e953 100644
--- a/python_binding/lsm/version.py.in
+++ b/python_binding/lsm/version.py.in
@@ -10,8 +10,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# Author: tasleson
diff --git a/test/cmdtest.py b/test/cmdtest.py
index 4b8de83..f687aee 100755
--- a/test/cmdtest.py
+++ b/test/cmdtest.py
@@ -13,8 +13,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+# along with this program; If not, see <http://www.gnu.org/licenses/>.
# USA.
#
# Author: tasleson
diff --git a/test/plugin_test.py b/test/plugin_test.py
index 3e43fff..d91b151 100755
--- a/test/plugin_test.py
+++ b/test/plugin_test.py
@@ -12,8 +12,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
import lsm
import functools
diff --git a/test/runtests.sh b/test/runtests.sh
index 541e194..f8d28f2 100755
--- a/test/runtests.sh
+++ b/test/runtests.sh
@@ -12,8 +12,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# Author: tasleson
#
diff --git a/test/tester.c b/test/tester.c
index 4c84aab..8510584 100644
--- a/test/tester.c
+++ b/test/tester.c
@@ -11,8 +11,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * License along with this library; If not, see <http://www.gnu.org/licenses/>.
*
* Author: tasleson
*/
diff --git a/test/webtest/test_automated.py b/test/webtest/test_automated.py
index 7a38e57..88cb5b9 100755
--- a/test/webtest/test_automated.py
+++ b/test/webtest/test_automated.py
@@ -12,9 +12,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
-# USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# Author: tasleson
diff --git a/test/webtest/test_hardware.py b/test/webtest/test_hardware.py
index d960f19..ef74f3b 100755
--- a/test/webtest/test_hardware.py
+++ b/test/webtest/test_hardware.py
@@ -12,8 +12,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# Author: tasleson
import xlrd
diff --git a/test/webtest/test_results.py b/test/webtest/test_results.py
index 30ad876..3bc3c8c 100755
--- a/test/webtest/test_results.py
+++ b/test/webtest/test_results.py
@@ -12,9 +12,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
-# USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# Author: tasleson
diff --git a/tools/lsmcli/cmdline.py b/tools/lsmcli/cmdline.py
index 81a9482..809b3bf 100644
--- a/tools/lsmcli/cmdline.py
+++ b/tools/lsmcli/cmdline.py
@@ -10,8 +10,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# Author: tasleson
# Gris Ge <fge(a)redhat.com>
diff --git a/tools/lsmcli/data_display.py b/tools/lsmcli/data_display.py
index b628c9f..e4ba6c3 100644
--- a/tools/lsmcli/data_display.py
+++ b/tools/lsmcli/data_display.py
@@ -10,9 +10,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
-# USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# Author: Gris Ge <fge(a)redhat.com>
import sys
diff --git a/tools/lsmcli/lsmcli b/tools/lsmcli/lsmcli
index 6baa2df..a5fb78c 100755
--- a/tools/lsmcli/lsmcli
+++ b/tools/lsmcli/lsmcli
@@ -12,8 +12,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# Author: tasleson
from lsm.lsmcli import cmd_line_wrapper
diff --git a/tools/lsmenv b/tools/lsmenv
index 54bf0da..94055b6 100755
--- a/tools/lsmenv
+++ b/tools/lsmenv
@@ -11,8 +11,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# Author: Gris Ge <fge(a)redhat.com>
diff --git a/tools/netapp/netapp.py b/tools/netapp/netapp.py
index 76e4133..f256865 100755
--- a/tools/netapp/netapp.py
+++ b/tools/netapp/netapp.py
@@ -10,8 +10,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# Author: tasleson
diff --git a/tools/smiscli/BlockMgmt.cpp b/tools/smiscli/BlockMgmt.cpp
index e889585..1a5c292 100644
--- a/tools/smiscli/BlockMgmt.cpp
+++ b/tools/smiscli/BlockMgmt.cpp
@@ -12,8 +12,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * License along with this library; If not, see <http://www.gnu.org/licenses/>.
*
* Author: tasleson
*/
diff --git a/tools/smiscli/BlockMgmt.h b/tools/smiscli/BlockMgmt.h
index 482aad1..b3f0921 100644
--- a/tools/smiscli/BlockMgmt.h
+++ b/tools/smiscli/BlockMgmt.h
@@ -12,8 +12,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * License along with this library; If not, see <http://www.gnu.org/licenses/>.
*
* Author: tasleson
*/
diff --git a/tools/smiscli/smiscli.cpp b/tools/smiscli/smiscli.cpp
index 73784b0..ca6c36b 100644
--- a/tools/smiscli/smiscli.cpp
+++ b/tools/smiscli/smiscli.cpp
@@ -12,8 +12,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * License along with this library; If not, see <http://www.gnu.org/licenses/>.
*
* Author: tasleson
*/
diff --git a/tools/utility/check_const.pl b/tools/utility/check_const.pl
index e41c1e9..64abf34 100644
--- a/tools/utility/check_const.pl
+++ b/tools/utility/check_const.pl
@@ -11,9 +11,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
-# USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# Author: Gris Ge <fge(a)redhat.com>
#
diff --git a/tools/utility/public_symbols.py b/tools/utility/public_symbols.py
index 450be3a..b4518ca 100755
--- a/tools/utility/public_symbols.py
+++ b/tools/utility/public_symbols.py
@@ -12,8 +12,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# This is a file that simply dumps the publicly available symbols for the
diff --git a/tools/utility/web_cap.py b/tools/utility/web_cap.py
index e4740e3..ed06e91 100755
--- a/tools/utility/web_cap.py
+++ b/tools/utility/web_cap.py
@@ -12,8 +12,7 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+# License along with this library; If not, see <http://www.gnu.org/licenses/>.
#
# This is a file that simply outputs html to std out which can then
--
1.8.3.1
8 years, 10 months
[PATCH 1/2] C Library: Fix potential memory leak in handle_volume_raid_create().
by Gris Ge
* Free disks memory when value_array_to_disks() failed.
Signed-off-by: Gris Ge <fge(a)redhat.com>
---
c_binding/lsm_plugin_ipc.cpp | 1 +
1 file changed, 1 insertion(+)
diff --git a/c_binding/lsm_plugin_ipc.cpp b/c_binding/lsm_plugin_ipc.cpp
index 890e1cb..575f02d 100644
--- a/c_binding/lsm_plugin_ipc.cpp
+++ b/c_binding/lsm_plugin_ipc.cpp
@@ -2314,6 +2314,7 @@ static int handle_volume_raid_create(lsm_plugin_ptr p, Value & params,
uint32_t disk_count = 0;
rc = value_array_to_disks(v_disks, &disks, &disk_count);
if (LSM_ERR_OK != rc) {
+ lsm_disk_record_array_free(disks, disk_count);
return rc;
}
--
1.8.3.1
8 years, 10 months
[PATCH 1/4] lsm_daemon.c: Use K&R code style
by Tony Asleson
As outlined by Gris, I did a `indent -kr --no-tabs --tab-size4 -l80`
and did a few corrections by hand.
Signed-off-by: Tony Asleson <tasleson(a)redhat.com>
---
daemon/lsm_daemon.c | 373 +++++++++++++++++++++++++--------------------------
1 files changed, 184 insertions(+), 189 deletions(-)
diff --git a/daemon/lsm_daemon.c b/daemon/lsm_daemon.c
index 2dd3363..69985ba 100644
--- a/daemon/lsm_daemon.c
+++ b/daemon/lsm_daemon.c
@@ -109,14 +109,14 @@ void logger(int severity, const char *fmt, ...)
{
char buf[2048];
- if( verbose_flag || LOG_WARNING == severity || LOG_ERR == severity) {
+ if (verbose_flag || LOG_WARNING == severity || LOG_ERR == severity) {
va_list arg;
va_start(arg, fmt);
vsnprintf(buf, sizeof(buf), fmt, arg);
va_end(arg);
- if( !systemd ) {
- if( verbose_flag ) {
+ if (!systemd) {
+ if (verbose_flag) {
syslog(LOG_ERR, "%s", buf);
} else {
syslog(severity, "%s", buf);
@@ -126,11 +126,12 @@ void logger(int severity, const char *fmt, ...)
fflush(stdout);
}
- if( LOG_ERR == severity) {
+ if (LOG_ERR == severity) {
exit(1);
}
}
}
+
#define log_and_exit(fmt, ...) logger(LOG_ERR, fmt, ##__VA_ARGS__)
#define warn(fmt, ...) logger(LOG_WARNING, fmt, ##__VA_ARGS__)
#define info(fmt, ...) logger(LOG_INFO, fmt, ##__VA_ARGS__)
@@ -141,9 +142,9 @@ void logger(int severity, const char *fmt, ...)
*/
void signal_handler(int s)
{
- if( SIGTERM == s) {
+ if (SIGTERM == s) {
serve_state = EXIT;
- } else if( SIGHUP == s ) {
+ } else if (SIGHUP == s) {
serve_state = RESTART;
}
}
@@ -153,11 +154,11 @@ void signal_handler(int s)
*/
void install_sh(void)
{
- if(signal(SIGTERM, signal_handler) == SIG_ERR) {
+ if (signal(SIGTERM, signal_handler) == SIG_ERR) {
log_and_exit("Can't catch signal SIGTERM\n");
}
- if(signal(SIGHUP, signal_handler) == SIG_ERR) {
+ if (signal(SIGHUP, signal_handler) == SIG_ERR) {
log_and_exit("Can't catch signal SIGHUP\n");
}
}
@@ -172,32 +173,28 @@ void drop_privileges(void)
struct passwd *pw = NULL;
pw = getpwnam(LSM_USER);
- if( pw ) {
- if ( !geteuid() ) {
+ if (pw) {
+ if (!geteuid()) {
- if( -1 == setgid(pw->pw_gid) ) {
+ if (-1 == setgid(pw->pw_gid)) {
err = errno;
- log_and_exit(
- "Unexpected error on setgid(errno %d)\n", err);
+ log_and_exit("Unexpected error on setgid(errno %d)\n", err);
}
- if( -1 == setgroups(1, &pw->pw_gid) ) {
+ if (-1 == setgroups(1, &pw->pw_gid)) {
err = errno;
- log_and_exit(
- "Unexpected error on setgroups(errno %d)\n", err);
+ log_and_exit("Unexpected error on setgroups(errno %d)\n", err);
}
- if( -1 == setuid(pw->pw_uid) ) {
+ if (-1 == setuid(pw->pw_uid)) {
err = errno;
- log_and_exit(
- "Unexpected error on setuid(errno %d)\n", err);
+ log_and_exit("Unexpected error on setuid(errno %d)\n", err);
}
- } else if ( pw->pw_uid != getuid() ) {
+ } else if (pw->pw_uid != getuid()) {
warn("Daemon not running as correct user\n");
}
} else {
- info("Warn: Missing %s user, running as existing user!\n",
- LSM_USER);
+ info("Warn: Missing %s user, running as existing user!\n", LSM_USER);
}
}
@@ -207,13 +204,13 @@ void drop_privileges(void)
void flight_check(void)
{
int err = 0;
- if( -1 == access(socket_dir, R_OK|W_OK )) {
+ if (-1 == access(socket_dir, R_OK | W_OK)) {
err = errno;
log_and_exit("Unable to access socket directory %s, errno= %d\n",
socket_dir, err);
}
- if( -1 == access(plugin_dir, R_OK|X_OK)) {
+ if (-1 == access(plugin_dir, R_OK | X_OK)) {
err = errno;
log_and_exit("Unable to access plug-in directory %s, errno= %d\n",
plugin_dir, err);
@@ -242,11 +239,11 @@ void usage(void)
* @param name File name
* @return Concatenated string, caller must call free when done
*/
-char *path_form(const char* path, const char *name)
+char *path_form(const char *path, const char *name)
{
size_t s = strlen(path) + strlen(name) + 2;
char *full = calloc(1, s);
- if( full ) {
+ if (full) {
snprintf(full, s, "%s/%s", path, name);
} else {
log_and_exit("malloc failure while trying to allocate %d bytes\n", s);
@@ -255,7 +252,7 @@ char *path_form(const char* path, const char *name)
}
/* Call back signature */
-typedef int (*file_op)(void *p, char *full_file_path);
+typedef int (*file_op) (void *p, char *full_file_path);
/**
* For a given directory iterate through each directory item and exec the
@@ -265,33 +262,33 @@ typedef int (*file_op)(void *p, char *full_file_path);
* @param call_back Function to call against file
* @return
*/
-void process_directory( char *dir, void *p, file_op call_back)
+void process_directory(char *dir, void *p, file_op call_back)
{
int err = 0;
- if( call_back && dir && strlen(dir) ) {
+ if (call_back && dir && strlen(dir)) {
DIR *dp = NULL;
struct dirent *entry = NULL;
char *full_name = NULL;
dp = opendir(dir);
- if( dp ) {
- while(( entry = readdir(dp)) != NULL) {
+ if (dp) {
+ while ((entry = readdir(dp)) != NULL) {
struct stat entry_st;
free(full_name);
full_name = path_form(dir, entry->d_name);
- if( lstat(full_name, &entry_st ) != 0 ) {
+ if (lstat(full_name, &entry_st) != 0) {
continue;
}
- if( S_ISDIR(entry_st.st_mode) ) {
- if (strncmp(entry->d_name, ".", 1) == 0){
+ if (S_ISDIR(entry_st.st_mode)) {
+ if (strncmp(entry->d_name, ".", 1) == 0) {
continue;
}
process_directory(full_name, p, call_back);
} else {
- if( call_back(p, full_name) ) {
+ if (call_back(p, full_name)) {
break;
}
}
@@ -299,7 +296,7 @@ void process_directory( char *dir, void *p, file_op call_back)
free(full_name);
- if( closedir(dp) ) {
+ if (closedir(dp)) {
err = errno;
log_and_exit("Error on closing dir %s: %s\n", dir,
strerror(err));
@@ -323,14 +320,14 @@ int delete_socket(void *p, char *full_name)
struct stat statbuf;
int err;
- assert(p==NULL);
+ assert(p == NULL);
- if( !lstat(full_name, &statbuf) ) {
- if( S_ISSOCK(statbuf.st_mode)) {
- if( unlink(full_name) ) {
+ if (!lstat(full_name, &statbuf)) {
+ if (S_ISSOCK(statbuf.st_mode)) {
+ if (unlink(full_name)) {
err = errno;
log_and_exit("Error on unlinking file %s: %s\n",
- full_name, strerror(err));
+ full_name, strerror(err));
}
}
}
@@ -361,39 +358,45 @@ int setup_socket(char *full_name)
memset(name, 0, sizeof(name));
char *base_nm = basename(full_name);
- strncpy(name, base_nm, min(abs(strlen(base_nm) - strlen(plugin_extension)), (sizeof(name)-1)));
+ strncpy(name, base_nm,
+ min(abs(strlen(base_nm) - strlen(plugin_extension)),
+ (sizeof(name) - 1)));
char *socket_file = path_form(socket_dir, name);
delete_socket(NULL, socket_file);
int fd = socket(AF_UNIX, SOCK_STREAM, 0);
- if( -1 != fd ) {
+ if (-1 != fd) {
struct sockaddr_un addr;
memset(&addr, 0, sizeof(addr));
addr.sun_family = AF_UNIX;
strncpy(addr.sun_path, socket_file, sizeof(addr.sun_path) - 1);
- if( -1 == bind(fd, (struct sockaddr *)&addr, sizeof(struct sockaddr_un))) {
+ if (-1 ==
+ bind(fd, (struct sockaddr *) &addr, sizeof(struct sockaddr_un))) {
err = errno;
- log_and_exit("Error on binding socket %s: %s\n", socket_file, strerror(err));
+ log_and_exit("Error on binding socket %s: %s\n", socket_file,
+ strerror(err));
}
- if( -1 == chmod(socket_file, S_IREAD|S_IWRITE|S_IRGRP|S_IWGRP
- |S_IROTH|S_IWOTH)) {
+ if (-1 == chmod(socket_file, S_IREAD | S_IWRITE | S_IRGRP | S_IWGRP
+ | S_IROTH | S_IWOTH)) {
err = errno;
- log_and_exit("Error on chmod socket file %s: %s\n", socket_file, strerror(err));
+ log_and_exit("Error on chmod socket file %s: %s\n", socket_file,
+ strerror(err));
}
- if( -1 == listen(fd, 5)) {
+ if (-1 == listen(fd, 5)) {
err = errno;
- log_and_exit("Error on listening %s: %s\n", socket_file, strerror(err));
+ log_and_exit("Error on listening %s: %s\n", socket_file,
+ strerror(err));
}
} else {
err = errno;
log_and_exit("Error on socket create %s: %s\n",
- socket_file, strerror(err));
+ socket_file, strerror(err));
}
free(socket_file);
@@ -409,15 +412,14 @@ void empty_plugin_list(struct plugin_list *list)
int err;
struct plugin *item = NULL;
- while(!LIST_EMPTY(list))
- {
+ while (!LIST_EMPTY(list)) {
item = LIST_FIRST(list);
LIST_REMOVE(item, pointers);
- if( -1 == close(item->fd) ) {
+ if (-1 == close(item->fd)) {
err = errno;
info("Error on closing fd %d for file %s: %s\n", item->fd,
- item->file_path, strerror(err));
+ item->file_path, strerror(err));
}
free(item->file_path);
@@ -438,25 +440,25 @@ void empty_plugin_list(struct plugin_list *list)
* @param value int, output, value of this config key
*/
-void parse_conf_bool(char * conf_path, char *key_name, int *value)
+void parse_conf_bool(char *conf_path, char *key_name, int *value)
{
- if( access(conf_path, F_OK) == -1 ) {
+ if (access(conf_path, F_OK) == -1) {
/* file not exist. */
return;
}
- config_t *cfg = (config_t *)malloc(sizeof(config_t));
- if (cfg){
+ config_t *cfg = (config_t *) malloc(sizeof(config_t));
+ if (cfg) {
config_init(cfg);
- if (CONFIG_TRUE == config_read_file(cfg, conf_path)){
+ if (CONFIG_TRUE == config_read_file(cfg, conf_path)) {
config_lookup_bool(cfg, key_name, value);
- }else{
- log_and_exit(
- "configure %s parsing failed: %s at line %d\n",
- conf_path, config_error_text(cfg), config_error_line(cfg));
+ } else {
+ log_and_exit("configure %s parsing failed: %s at line %d\n",
+ conf_path, config_error_text(cfg),
+ config_error_line(cfg));
}
- } else{
- log_and_exit(
- "malloc failure while trying to allocate memory for config_t\n");
+ } else {
+ log_and_exit
+ ("malloc failure while trying to allocate memory for config_t\n");
}
config_destroy(cfg);
@@ -474,41 +476,32 @@ int chk_pconf_root_pri(char *plugin_path)
{
int require_root = 0;
char *base_name = basename(plugin_path);
- ssize_t plugin_name_len =
- strlen(base_name) - strlen(plugin_extension);
- if ( plugin_name_len <= 0 ){
- log_and_exit(
- "Got invalid plugin full path %s\n", plugin_path);
+ ssize_t plugin_name_len = strlen(base_name) - strlen(plugin_extension);
+ if (plugin_name_len <= 0) {
+ log_and_exit("Got invalid plugin full path %s\n", plugin_path);
}
ssize_t conf_file_name_len = plugin_name_len +
strlen(plugin_conf_extension) + 1;
- char *plugin_conf_filename =
- (char *)malloc(conf_file_name_len);
- if (plugin_conf_filename){
- strncpy(
- plugin_conf_filename, base_name, plugin_name_len);
- strncpy(
- plugin_conf_filename+plugin_name_len,
- plugin_conf_extension, strlen(plugin_conf_extension));
- plugin_conf_filename[conf_file_name_len-1] = '\0';
- }else{
- log_and_exit(
- "malloc failure while trying to allocate %d "
- "bytes\n", conf_file_name_len);
+ char *plugin_conf_filename = (char *) malloc(conf_file_name_len);
+ if (plugin_conf_filename) {
+ strncpy(plugin_conf_filename, base_name, plugin_name_len);
+ strncpy(plugin_conf_filename + plugin_name_len,
+ plugin_conf_extension, strlen(plugin_conf_extension));
+ plugin_conf_filename[conf_file_name_len - 1] = '\0';
+ } else {
+ log_and_exit("malloc failure while trying to allocate %d "
+ "bytes\n", conf_file_name_len);
}
- char *plugin_conf_dir_path =
- path_form(conf_dir, LSM_PLUGIN_CONF_DIR_NAME);
-
- char *plugin_conf_path = path_form(
- plugin_conf_dir_path, plugin_conf_filename);
- parse_conf_bool(
- plugin_conf_path, LSM_CONF_REQUIRE_ROOT_OPT_NAME,
- &require_root);
-
- if (require_root == 1 && allow_root_plugin == 0){
- warn(
- "Plugin %s require root privilege while %s disable globally\n",
- base_name, LSMD_CONF_FILE);
+ char *plugin_conf_dir_path = path_form(conf_dir, LSM_PLUGIN_CONF_DIR_NAME);
+
+ char *plugin_conf_path =
+ path_form(plugin_conf_dir_path, plugin_conf_filename);
+ parse_conf_bool(plugin_conf_path, LSM_CONF_REQUIRE_ROOT_OPT_NAME,
+ &require_root);
+
+ if (require_root == 1 && allow_root_plugin == 0) {
+ warn("Plugin %s require root privilege while %s disable globally\n",
+ base_name, LSMD_CONF_FILE);
}
free(plugin_conf_dir_path);
free(plugin_conf_filename);
@@ -524,21 +517,24 @@ int chk_pconf_root_pri(char *plugin_path)
*/
int process_plugin(void *p, char *full_name)
{
- if( full_name ) {
+ if (full_name) {
size_t ext_len = strlen(plugin_extension);
size_t full_len = strlen(full_name);
- if( full_len > ext_len) {
- if( strncmp(full_name + full_len - ext_len, plugin_extension, ext_len) == 0) {
+ if (full_len > ext_len) {
+ if (strncmp
+ (full_name + full_len - ext_len, plugin_extension,
+ ext_len) == 0) {
struct plugin *item = calloc(1, sizeof(struct plugin));
- if( item ) {
+ if (item) {
item->file_path = strdup(full_name);
item->fd = setup_socket(full_name);
item->require_root = chk_pconf_root_pri(full_name);
has_root_plugin |= item->require_root;
- if( item->file_path && item->fd >= 0 ) {
- LIST_INSERT_HEAD((struct plugin_list*)p, item, pointers);
+ if (item->file_path && item->fd >= 0) {
+ LIST_INSERT_HEAD((struct plugin_list *) p, item,
+ pointers);
info("Plugin %s added\n", full_name);
} else {
/* The only real way to get here is failed strdup as
@@ -568,31 +564,31 @@ void child_cleanup(void)
siginfo_t si;
memset(&si, 0, sizeof(siginfo_t));
- rc = waitid(P_ALL, 0, &si, WNOHANG|WEXITED);
+ rc = waitid(P_ALL, 0, &si, WNOHANG | WEXITED);
- if( -1 == rc ) {
+ if (-1 == rc) {
err = errno;
- if (err != ECHILD){
+ if (err != ECHILD) {
info("waitid %d - %s\n", err, strerror(err));
}
break;
} else {
- if( 0 == rc && si.si_pid == 0 ) {
+ if (0 == rc && si.si_pid == 0) {
break;
} else {
- if( si.si_code == CLD_EXITED && si.si_status != 0 ) {
+ if (si.si_code == CLD_EXITED && si.si_status != 0) {
info("Plug-in process %d exited with %d\n", si.si_pid,
- si.si_status);
+ si.si_status);
}
}
}
- } while(1);
+ } while (1);
}
/**
* Closes and frees memory and removes Unix domain sockets.
*/
-void clean_up(void )
+void clean_up(void)
{
empty_plugin_list(&head);
clean_sockets();
@@ -607,7 +603,7 @@ int process_plugins(void)
clean_up();
info("Scanning plug-in directory %s\n", plugin_dir);
process_directory(plugin_dir, &head, process_plugin);
- if ( allow_root_plugin == 1 && has_root_plugin == 0 ){
+ if (allow_root_plugin == 1 && has_root_plugin == 0) {
info("No plugin requires root privilege, dropping root privilege\n");
flight_check();
drop_privileges();
@@ -624,7 +620,7 @@ struct plugin *plugin_lookup(int fd)
{
struct plugin *plug = NULL;
LIST_FOREACH(plug, &head, pointers) {
- if( plug->fd == fd ) {
+ if (plug->fd == fd) {
return plug;
}
}
@@ -638,20 +634,20 @@ struct plugin *plugin_lookup(int fd)
* @param require_root int, indicate whether this plugin require root
* privilege or not
*/
-void exec_plugin( char *plugin, int client_fd, int require_root)
+void exec_plugin(char *plugin, int client_fd, int require_root)
{
int err = 0;
info("Exec'ing plug-in = %s\n", plugin);
pid_t process = fork();
- if( process ) {
+ if (process) {
/* Parent */
int rc = close(client_fd);
- if( -1 == rc ) {
+ if (-1 == rc) {
err = errno;
info("Error on closing accepted socket in parent: %s\n",
- strerror(err));
+ strerror(err));
}
} else {
@@ -667,31 +663,31 @@ void exec_plugin( char *plugin, int client_fd, int require_root)
* The plugin will still run no matter with root privilege or not.
* so that client could get detailed error message.
*/
- if ( require_root == 0 ){
+ if (require_root == 0) {
drop_privileges();
- }else{
- if (getuid()){
+ } else {
+ if (getuid()) {
warn("Plugin %s require root privilege, but lsmd daemon "
"is not run as root user\n", plugin);
- }else if(allow_root_plugin == 0){
+ } else if (allow_root_plugin == 0) {
warn("Plugin %s require root privilege, but %s disabled "
"it globally\n", LSMD_CONF_FILE);
drop_privileges();
- }else{
+ } else {
/* Check socket client uid */
- int rc_get_cli_uid = getsockopt(
- client_fd, SOL_SOCKET, SO_PEERCRED,
- &cli_user_cred, &cli_user_cred_len);
- if( 0 == rc_get_cli_uid){
- if (cli_user_cred.uid != 0){
+ int rc_get_cli_uid =
+ getsockopt(client_fd, SOL_SOCKET, SO_PEERCRED,
+ &cli_user_cred, &cli_user_cred_len);
+ if (0 == rc_get_cli_uid) {
+ if (cli_user_cred.uid != 0) {
warn("Plugin %s require root privilege, but "
"client is not run as root user\n", plugin);
drop_privileges();
- }else{
+ } else {
info("Plugin %s is running as root privilege\n",
plugin);
}
- }else{
+ } else {
warn("Failed to get client socket uid, getsockopt() "
"error: %d\n", errno);
drop_privileges();
@@ -707,10 +703,10 @@ void exec_plugin( char *plugin, int client_fd, int require_root)
empty_plugin_list(&head);
sprintf(fd_str, "%d", client_fd);
- if( plugin_mem_debug ) {
+ if (plugin_mem_debug) {
char debug_out[64];
snprintf(debug_out, (sizeof(debug_out) - 1),
- "--log-file=/tmp/leaking_%d-%d", getppid(), getpid());
+ "--log-file=/tmp/leaking_%d-%d", getppid(), getpid());
plugin_argv[0] = "valgrind";
plugin_argv[1] = "--leak-check=full";
@@ -728,10 +724,10 @@ void exec_plugin( char *plugin, int client_fd, int require_root)
exec_rc = execve(p_copy, plugin_argv, environ);
}
- if( -1 == exec_rc ) {
+ if (-1 == exec_rc) {
int err = errno;
log_and_exit("Error on exec'ing Plugin %s: %s\n",
- p_copy, strerror(err));
+ p_copy, strerror(err));
}
}
}
@@ -749,7 +745,7 @@ void _serving(void)
process_plugins();
- while( serve_state == RUNNING ) {
+ while (serve_state == RUNNING) {
FD_ZERO(&readfds);
nfds = 0;
@@ -761,26 +757,26 @@ void _serving(void)
FD_SET(plug->fd, &readfds);
}
- if( !nfds ) {
+ if (!nfds) {
log_and_exit("No plugins found in directory %s\n", plugin_dir);
}
nfds += 1;
int ready = select(nfds, &readfds, NULL, NULL, &tmo);
- if( -1 == ready ) {
- if( serve_state != RUNNING ) {
+ if (-1 == ready) {
+ if (serve_state != RUNNING) {
return;
} else {
err = errno;
log_and_exit("Error on selecting Plugin: %s", strerror(err));
}
- } else if( ready > 0 ) {
+ } else if (ready > 0) {
int fd = 0;
- for( fd = 0; fd < nfds; fd++ ) {
- if( FD_ISSET(fd, &readfds) ) {
+ for (fd = 0; fd < nfds; fd++) {
+ if (FD_ISSET(fd, &readfds)) {
int cfd = accept(fd, NULL, NULL);
- if( -1 != cfd ) {
+ if (-1 != cfd) {
struct plugin *p = plugin_lookup(fd);
exec_plugin(p->file_path, cfd, p->require_root);
} else {
@@ -800,8 +796,8 @@ void _serving(void)
*/
void serve(void)
{
- while( serve_state != EXIT ) {
- if( serve_state == RESTART ) {
+ while (serve_state != EXIT) {
+ if (serve_state == RESTART) {
info("Reloading plug-ins\n");
serve_state = RUNNING;
}
@@ -817,93 +813,92 @@ int main(int argc, char *argv[])
LIST_INIT(&head);
/* Process command line arguments */
- while(1) {
- static struct option l_options[] =
- {
- {"help", no_argument, 0, 'h'}, //Index 0
- {"plugindir", required_argument, 0, 0}, //Index 1
- {"socketdir", required_argument, 0, 0}, //Index 2
- {"confdir", required_argument, 0, 0}, //Index 3
+ while (1) {
+ static struct option l_options[] = {
+ {"help", no_argument, 0, 'h'}, //Index 0
+ {"plugindir", required_argument, 0, 0}, //Index 1
+ {"socketdir", required_argument, 0, 0}, //Index 2
+ {"confdir", required_argument, 0, 0}, //Index 3
{0, 0, 0, 0}
};
int option_index = 0;
c = getopt_long(argc, argv, "hvd", l_options, &option_index);
- if ( c == -1 ) {
+ if (c == -1) {
break;
}
switch (c) {
- case 0:
- switch (option_index) {
- case 1:
- plugin_dir = optarg;
- break;
- case 2:
- socket_dir = optarg;
- break;
- case 3:
- conf_dir = optarg;
- break;
- }
- break;
-
- case 'h':
- usage();
+ case 0:
+ switch (option_index) {
+ case 1:
+ plugin_dir = optarg;
break;
-
- case 'v':
- verbose_flag = 1;
+ case 2:
+ socket_dir = optarg;
break;
-
- case 'd':
- systemd = 1;
+ case 3:
+ conf_dir = optarg;
break;
+ }
+ break;
- case '?':
- break;
+ case 'h':
+ usage();
+ break;
+
+ case 'v':
+ verbose_flag = 1;
+ break;
- default:
- abort ();
- }
- }
+ case 'd':
+ systemd = 1;
+ break;
+
+ case '?':
+ break;
+
+ default:
+ abort();
+ }
+ }
/* Print any remaining command line arguments (not options). */
if (optind < argc) {
- printf ("non-option ARGV-elements: ");
+ printf("non-option ARGV-elements: ");
while (optind < argc) {
- printf ("%s \n", argv[optind++]);
+ printf("%s \n", argv[optind++]);
}
printf("\n");
exit(1);
}
/* Setup syslog if needed */
- if( !systemd ) {
+ if (!systemd) {
openlog("lsmd", LOG_ODELAY, LOG_USER);
}
/* Check lsmd.conf */
char *lsmd_conf_path = path_form(conf_dir, LSMD_CONF_FILE);
- parse_conf_bool(
- lsmd_conf_path, LSM_CONF_ALLOW_ROOT_OPT_NAME, &allow_root_plugin);
+ parse_conf_bool(lsmd_conf_path, LSM_CONF_ALLOW_ROOT_OPT_NAME,
+ &allow_root_plugin);
free(lsmd_conf_path);
/* Check to see if we want to check plugin for memory errors */
- if( getenv("LSM_VALGRIND") ) {
+ if (getenv("LSM_VALGRIND")) {
plugin_mem_debug = 1;
}
install_sh();
- if (allow_root_plugin == 0){
+ if (allow_root_plugin == 0) {
drop_privileges();
}
flight_check();
/* Become a daemon if told we are not using systemd */
- if( !systemd ) {
- if ( -1 == daemon(0, 0) ) {
+ if (!systemd) {
+ if (-1 == daemon(0, 0)) {
int err = errno;
log_and_exit("Error on calling daemon: %s\n", strerror(err));
}
--
1.7.1
8 years, 10 months
Plugin implementation status of Pool.status
by Gris Ge
Hi Tony,
About the Pool.STATUS_OK we discussed:
* Nstor is always Pool.STATUS_UNKNOWN
* Targetd is always Pool.STATUS_UNKNOWN
* HP is Pool.STATUS_OTHER or STATUS_OK
* SMI-S:
No standard or vendor documentation mentioned possible
combination of OperationalStatus values.
In SNIA Lab, Got HP 3par and Fujitsu DX80S2 only set
DEGRADED value(I cannot tell the reason why they degraded).
The plugin code only handle OK, Degraded, Error in vendor
provided combinations.
I got no hardware to test about grow, reconstruction and etc
right now.
* User cases and plugin implantation:
* RAID degraded, no rebuild.
* ONTAP -- Pool.STATUS_DEGRADE
* MegaRAID -- Pool.STATUS_DEGRADE
* RAID degraded by one disk failure and rebuilding.
* ONTAP -- Pool.STATUS_RECONSTRUCTING
* MegaRAID -- Pool.STATUS_RECONSTRUCTING
* RAID failed (like: two disk failure in RAID 5)
* ONTAP -- Pool.STATUS_ERROR
* MegaRAID -- Pool.STATUS_ERROR
* Verifying RAID integrity.
* ONTAP -- Pool.STATUS_OK
Currently plugin has no idea about it. Need to use
'aggr-mediascrub-list-info' command
* MegaRAID -- Pool.STATUS_OK
Currently plugin has no idea about it. Need to use
'/c0/v1 show cc' command
* Expected -- Pool.STATUS_VERIFYING
* Growing RAID by adding more disks.
* ONTAP -- Pool.STATUS_GROW
* MegaRAID -- Pool.STATUS_OK
Currently plugin has no idea about it. Need to use
'/c0/v1 show migrate' command.
* Creating pool.
* ONTAP -- Pool.STATUS_INITIALIZING
* MegaRAID -- Need test. No idea.
* Pool disabled.
* ONTAP -- Pool.STATUS_STOPPED
* MegaRAID -- Not allowed.
============
Summery:
1. Only SMI-S might(never seen) have multiple status.
2. For degraded rebuilding:
It could express as
Pool.STATUS_RECONSTRUCTING|Pool.STATUS_DEGRADE
But reconstructing always mean degraded, so no need to
have multiple status.
3. For RAID grow:
It could be:
Pool.STATUS_OK | Pool.STATUS_GROW
Online grow
Pool.STATUS_STOPPED | Pool.STATUS_GROW
Offline grow
But we could introduced Pool.STATUS_OFFLINE_GROW also
to keep status as single status.
No existing plugins support offline grow.
So base on above information, I would suggest:
* Keep Pool.status as bit map, but documented that only single status
value will be used right now. Change SMI-S plugin to reflect this.
(Patch is coming soon).
* Pool.STATUS_OK -- everything is OK.
* Pool.STATUS_DEGRADE -- data accessible but lose redundancy.
* Pool.STATUS_ERROR -- data lose or data unavailable.
* Pool.STATUS_RECONSTRUCTING -- data accessible but lose redundancy
and rebuilding data.
* Pool.STATUS_STOPPED -- admin or some task disabled data access.
* Pool.STATUS_INITIALIZING -- pool creating, data not accessible.
* Pool.STATUS_GROW -- pool is expanding, data is accessible.
Performance might be impacted(status_info could indicate whether
performance impacted or not).
* Pool.STATUS_OTHER -- vendor expansion, check status_info.
* Pool.STATUS_VERIFYING -- Running data integrity check. Performance
is impacted. Data is still accessible.
Any comments?
--
Gris Ge
8 years, 10 months
[PATCH] MegaRAID plugin: Add perccli support
by Charles Rose
storcli will not work on with Dell PERC (PowerEdge RAID Controller).
perccli is compatible with storcli and has been validated for use with
Dell PERC.
Signed-off-by: Charles Rose <charles.e.rose(a)gmail.com>
---
plugin/megaraid/megaraid.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/plugin/megaraid/megaraid.py b/plugin/megaraid/megaraid.py
index 62ad028..17e8f77 100644
--- a/plugin/megaraid/megaraid.py
+++ b/plugin/megaraid/megaraid.py
@@ -210,7 +210,8 @@ def _lsm_raid_type_to_mega(lsm_raid_type):
class MegaRAID(IPlugin):
_DEFAULT_BIN_PATHS = [
- "/opt/MegaRAID/storcli/storcli64", "/opt/MegaRAID/storcli/storcli"]
+ "/opt/MegaRAID/storcli/storcli64", "/opt/MegaRAID/storcli/storcli",
+ "/opt/MegaRAID/perccli/perccli64", "/opt/MegaRAID/perccli/perccli"]
_CMD_JSON_OUTPUT_SWITCH = 'J'
def __init__(self):
--
2.4.2
8 years, 10 months
[PATCH 1/2] C Library: Fix potential memory leak in handle_volume_raid_create().
by Gris Ge
* Free disks memory when value_array_to_disks() failed.
Signed-off-by: Gris Ge <fge(a)redhat.com>
---
c_binding/lsm_plugin_ipc.cpp | 1 +
1 file changed, 1 insertion(+)
diff --git a/c_binding/lsm_plugin_ipc.cpp b/c_binding/lsm_plugin_ipc.cpp
index 890e1cb..575f02d 100644
--- a/c_binding/lsm_plugin_ipc.cpp
+++ b/c_binding/lsm_plugin_ipc.cpp
@@ -2314,6 +2314,7 @@ static int handle_volume_raid_create(lsm_plugin_ptr p, Value & params,
uint32_t disk_count = 0;
rc = value_array_to_disks(v_disks, &disks, &disk_count);
if (LSM_ERR_OK != rc) {
+ lsm_disk_record_array_free(disks, disk_count);
return rc;
}
--
1.8.3.1
8 years, 10 months
[PATCH V4] Document: Add manpage for all plugins binaries.
by Gris Ge
* Added manpage for these plugin binaries:
nstor_lsmpluging
ontap_lsmpluging
sim_lsmpluging
simc_lsmpluging
smispy_lsmpluging
targetd_lsmpluging
* Auto-tool files updated.
* RPM SPEC file updated by adding these manpage to their own rpm sub-package.
Changes in V2:
* Add the all plugin manpages.
* Remove known issue and detail support status section from smispy_lsmpluging
manpage.
Changes in V3:
* Merged Tony's patch into this.(Detailed changes listed below)
* Changed capital binary name in manpage title to lower case.
* Updated date from November to December.
* Fixed some typo and grammar issues.
* Added port URI argument to nstor_lsmplugin manpage.
* New section 'FIREWALL RULES' to indicate which default network access
requirement for each plugin.
* Added Tony and his email into 'AUTHOR' section.
* Removed white space.
Changes in V4:
* Rebased to current master.
* Update date string to 'June 2015'.
* Updated sim_lsmplugin.1.in for statefile description as we move to sqlite.
* Move URI parameters under(indented) 'URI parameters' section.
Check sim_lsmplugin.1.in and smispy_lsmplugin.1.in for example.
Signed-off-by: Gris Ge <fge(a)redhat.com>
Signed-off-by: Tony Asleson <tasleson(a)redhat.com>
---
configure.ac | 6 +++
doc/man/Makefile.am | 9 +++-
doc/man/nstor_lsmplugin.1.in | 68 ++++++++++++++++++++++++++++++
doc/man/ontap_lsmplugin.1.in | 67 +++++++++++++++++++++++++++++
doc/man/sim_lsmplugin.1.in | 55 ++++++++++++++++++++++++
doc/man/simc_lsmplugin.1.in | 42 +++++++++++++++++++
doc/man/smispy_lsmplugin.1.in | 91 ++++++++++++++++++++++++++++++++++++++++
doc/man/targetd_lsmplugin.1.in | 67 +++++++++++++++++++++++++++++
packaging/libstoragemgmt.spec.in | 6 +++
9 files changed, 409 insertions(+), 2 deletions(-)
create mode 100644 doc/man/nstor_lsmplugin.1.in
create mode 100644 doc/man/ontap_lsmplugin.1.in
create mode 100644 doc/man/sim_lsmplugin.1.in
create mode 100644 doc/man/simc_lsmplugin.1.in
create mode 100644 doc/man/smispy_lsmplugin.1.in
create mode 100644 doc/man/targetd_lsmplugin.1.in
diff --git a/configure.ac b/configure.ac
index a6cda95..e057e3f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -276,6 +276,12 @@ AC_OUTPUT(libstoragemgmt.pc \
doc/Makefile \
doc/man/lsmcli.1 \
doc/man/lsmd.1 \
+ doc/man/sim_lsmplugin.1 \
+ doc/man/simc_lsmplugin.1 \
+ doc/man/smispy_lsmplugin.1 \
+ doc/man/ontap_lsmplugin.1 \
+ doc/man/targetd_lsmplugin.1 \
+ doc/man/nstor_lsmplugin.1 \
doc/doxygen.conf \
doc/man/lsmd.conf.5 \
doc/man/megaraid_lsmplugin.1 \
diff --git a/doc/man/Makefile.am b/doc/man/Makefile.am
index 19b536c..dc7e8ac 100644
--- a/doc/man/Makefile.am
+++ b/doc/man/Makefile.am
@@ -1,5 +1,10 @@
-notrans_dist_man1_MANS = lsmcli.1 lsmd.1
-
+notrans_dist_man1_MANS = lsmcli.1 lsmd.1 \
+ sim_lsmplugin.1 \
+ simc_lsmplugin.1 \
+ smispy_lsmplugin.1 \
+ ontap_lsmplugin.1 \
+ targetd_lsmplugin.1 \
+ nstor_lsmplugin.1
if WITH_MEGARAID
notrans_dist_man1_MANS += megaraid_lsmplugin.1
endif
diff --git a/doc/man/nstor_lsmplugin.1.in b/doc/man/nstor_lsmplugin.1.in
new file mode 100644
index 0000000..b39cd2e
--- /dev/null
+++ b/doc/man/nstor_lsmplugin.1.in
@@ -0,0 +1,68 @@
+.TH nstor_lsmplugin "1" "June 2015" "nstor_lsmplugin @VERSION@" "libStorageMgmt"
+.SH NAME
+nstor_lsmplugin -- LibstorageMgmt nstor plugin
+
+.SH DESCRIPTION
+LibstorageMgmt nstor plugin allows user to manage NexentaStor 3.x
+storage software [1]. The 'nstor_lsmplugin' executable file is for libStorageMgmt
+daemon to execute when client user specifies nstor plugin in the URI.
+
+.SH URI
+To use this plugin, users should set their URI to this format:
+.nf
+
+ # HTTP connection
+ \fBnstor://<username>@<nstor_server>:<port>\fR
+
+ # HTTPS connection
+ \fBnstor+ssl://<username>@<nstor_server>:<port>\fR
+
+.fi
+
+.TP
+\fBusername\fR
+
+The \fBusername\fR is the user account with 'Can_use_restapi' permission.
+
+.TP
+\fBnstor_server\fR
+
+The \fBnstor_server\fR is IP address or DNS name of
+NexentaStor server.
+
+.TP
+\fBport number\fR
+
+The \fBport number\fR is the listening port of the nexenta server REST API.
+The default port of 2000 is used if none is supplied on the URI.
+
+For non-default ports, SELinux will likely prevent the SMI-S plugin from making
+a network connection.
+
+.TP
+\fBURI parameters\fR
+No additional URI parameters are supported by this plugin.
+
+
+.SH SUPPORTED SOFTWARE
+NexentaStor 3.x is supported.
+Detailed support status can be queried via:
+
+ * \fBlsm.Client.capabilities()\fR (Python API)
+ * \fBlsm_capabilities()\fR (C API)
+ * \fBlsmcli capabilities\fR (lsmcli command line).
+
+.SH FIREWALL RULES
+By default, this plugin requires the access to the nstor array's TCP 2000 port.
+
+.SH SEE ALSO
+\fBlsmcli\fR(1), \fBlsmd\fR(1), [1] http://nexentastor.org
+
+.SH BUGS
+Please report bugs to
+\fI<libstoragemgmt-devel(a)lists.sourceforge.net>\fR
+
+.SH AUTHOR
+Gris Ge \fI<fge(a)redhat.com>\fR
+.br
+Tony Asleson \fI<tasleson(a)redhat.com>\fR
diff --git a/doc/man/ontap_lsmplugin.1.in b/doc/man/ontap_lsmplugin.1.in
new file mode 100644
index 0000000..ef0cd12
--- /dev/null
+++ b/doc/man/ontap_lsmplugin.1.in
@@ -0,0 +1,67 @@
+.TH ontap_lsmplugin "1" "June 2015" "ontap_lsmplugin @VERSION@" "libStorageMgmt"
+.SH NAME
+ontap_lsmplugin -- LibstorageMgmt ONTAP Plugin
+
+.SH DESCRIPTION
+LibstorageMgmt ontap plugin allows user to manage NetApp ONTAP storage arrays.
+The 'ontap_lsmplugin' executable file is for libStorageMgmt daemon to execute
+when client specifies ontap plugin in the URI
+
+This plugin requires NetApp ONTAP storage array to enable these options:
+
+ \fBoptions httpd.enable on\fR
+ \fBoptions httpd.admin.enable on\fR
+
+This options is required for HTTPS connection:
+
+ \fBoptions httpd.admin.ssl.enable on\fR
+
+.SH URI
+To use this plugin, users should set their URI to this format:
+.nf
+
+ # HTTP connection
+ \fBontap://<username>@<ontap_filer>\fR
+
+ # HTTPS connection
+ \fBontap+ssl://<username>@<ontap_filer>\fR
+
+.fi
+.TP
+\fBusername\fR
+
+The \fBusername\fR is the user account with administration privilege.
+
+.TP
+\fBontap_filer_ip\fR
+
+The \fBontap_filer_ip\fR is the NetApp ONTAP filer IP address or DNS name.
+
+.TP
+\fBURI parameters\fR
+
+No additional URI parameters are supported by this plugin.
+
+.SH Supported Hardware
+NetApp ONTAP 8.x is supported.
+Detailed support status can be queried via:
+
+ * \fBlsm.Client.capabilities()\fR (Python API)
+ * \fBlsm_capabilities()\fR (C API)
+ * \fBlsmcli capabilities\fR (lsmcli command line).
+
+.SH FIREWALL RULES
+This plugin requires the access to the NetApp ONTAP Filer's TCP 80 port for
+HTTP connection and TCP 443 port for HTTPS connection.
+
+.SH SEE ALSO
+\fBlsmcli\fR(1), \fBlsmd\fR(1)
+
+.SH BUGS
+Please report bugs to
+\fI<libstoragemgmt-devel(a)lists.sourceforge.net>\fR
+
+.SH AUTHOR
+Gris Ge \fI<fge(a)redhat.com>\fR
+.br
+Tony Asleson \fI<tasleson(a)redhat.com>\fR
diff --git a/doc/man/sim_lsmplugin.1.in b/doc/man/sim_lsmplugin.1.in
new file mode 100644
index 0000000..901761d
--- /dev/null
+++ b/doc/man/sim_lsmplugin.1.in
@@ -0,0 +1,55 @@
+.TH sim_lsmplugin "1" "June 2015" "sim_lsmplugin @VERSION@" "libStorageMgmt"
+.SH NAME
+sim_lsmplugin -- LibStorageMgmt simulator python plugin
+
+.SH DESCRIPTION
+LibstorageMgmt simulator plugin is for development or test use only. The plugin
+simulates an array which supports most features of the library. State is stored
+in a file, default is '/tmp/lsm_sim_data'. The 'sim_lsmplugin' executable file is
+for libStorageMgmt daemon to execute when client user specifies sim plugin in
+the URI.
+
+This plugin is written in pure Python and is intended to be an example of a
+python plugin for the library.
+
+.SH URI
+To use this plugin, users should set their URI to this format:
+.nf
+
+ # All that is required
+ sim://
+
+ # Optional statefile
+ sim://?statefile=<file path and name>
+
+.fi
+No password is required for this plugin.
+
+.TP
+\fBURI parameters\fR
+
+.RS 7
+.TP
+\fBstatefile\fR
+
+Use specified file to store simulator state data. Example URI:
+.nf
+ \fBsim://?statefile=/tmp/other_lsm_sim_data\fR
+.fi
+
+The statefile is a sqlite3 data base file.
+
+.SH FIREWALL RULES
+This plugin requires not network access.
+
+.SH SEE ALSO
+\fBlsmcli\fR(1), \fBlsmd\fR(1)
+
+.SH BUGS
+Please report bugs to
+\fI<libstoragemgmt-devel(a)lists.sourceforge.net>\fR
+
+.SH AUTHOR
+Gris Ge \fI<fge(a)redhat.com>\fR
+.br
+Tony Asleson \fI<tasleson(a)redhat.com>\fR
diff --git a/doc/man/simc_lsmplugin.1.in b/doc/man/simc_lsmplugin.1.in
new file mode 100644
index 0000000..32484ad
--- /dev/null
+++ b/doc/man/simc_lsmplugin.1.in
@@ -0,0 +1,42 @@
+.TH simc_lsmplugin "1" "June 2015" "simc_lsmplugin @VERSION@" "libStorageMgmt"
+.SH NAME
+simc_lsmplugin -- LibstorageMgmt Simulator C Plugin
+
+.SH DESCRIPTION
+LibStorageMgmt simulator C plugin is for development use. The plugin simulates
+an array which supports most features of the library. The simulator is memory
+based, state will be discarded once the plugin exits. The 'simc_lsmplugin'
+executable file is for the libStorageMgmt daemon to execute when client user
+specifies simc plugin in the URI.
+
+Since every command of lsmcli is a standalone libStorageMgmt session, this
+plugin is essentially useless for this purpose. In this use case, the
+libStorageMgmt simulator plugin \fBsim_lsmplugin(1)\fR is suggested.
+
+This plugin is written in pure C and is intended to be an example of a
+C plugin for the library.
+
+.SH URI
+To use this plugin, users should set their URI to this format:
+.nf
+
+ simc://
+
+.fi
+No password is required for this plugin.
+No URI parameters are supported by this plugin.
+
+.SH FIREWALL RULES
+This plugin requires not network access.
+
+.SH SEE ALSO
+\fBlsmcli\fR(1), \fBlsmd\fR(1), \fBsim_lsmplugin\fR(1)
+
+.SH BUGS
+Please report bugs to
+\fI<libstoragemgmt-devel(a)lists.sourceforge.net>\fR
+
+.SH AUTHOR
+Gris Ge \fI<fge(a)redhat.com>\fR
+.br
+Tony Asleson \fI<tasleson(a)redhat.com>\fR
diff --git a/doc/man/smispy_lsmplugin.1.in b/doc/man/smispy_lsmplugin.1.in
new file mode 100644
index 0000000..b07d428
--- /dev/null
+++ b/doc/man/smispy_lsmplugin.1.in
@@ -0,0 +1,91 @@
+.TH smispy_lsmplugin "1" "June 2015" "smispy_lsmplugin @VERSION@" "libStorageMgmt"
+.SH NAME
+smispy_lsmplugin -- LibstorageMgmt SMI-S Plugin
+
+.SH DESCRIPTION
+LibstorageMgmt SMI-S Plugin allows LibstorageMgmt user to manage storage
+arrays like: EMC VNX/VMAX, HDS AMS and LSI MegaRAID etc. via
+SNIA SMI-S standard. The 'smispy_lsmplugin' executable file is for
+LibstorageMgmt daemon to execute when client user requests SMI-S plugin.
+
+.SH URI
+To use this plugin, users should set their URI to this format:
+.nf
+
+ # HTTP connection
+ \fBsmispy://<username>@<smis_provder_host>:<port>?<uri_parameters>\fR
+
+ # HTTPS connection
+ \fBsmispy+ssl://<username>@<smis_provder_host>:<port>?<uri_parameters>\fR
+
+.fi
+
+.TP
+\fBusername\fR
+
+The \fBusername\fR is the SMI-S provider user account.
+
+.TP
+\fBsmis_provder_host\fR
+
+The \fBsmis_provder_host\fR is the SMI-S provider's IP address or DNS name.
+
+.TP
+\fBport\fR
+
+By default, SMI-S plugin will use port \fB5988\fR for HTTP connection and
+port \fB5989\fR for HTTPS connection. You can skip this in URI if your
+SMI-S provider is using default ports.
+
+For non-default ports, SELinux will likely prevent the SMI-S plugin from making
+a network connection.
+
+.TP
+\fBURI parameters\fR
+These URI parameters are supported by this plugin:
+
+.RS 7
+.TP
+\fBnamespace=<name_space>\fR
+This URI parameter is for LSI MegaRAID and NetApp E-Series only.
+
+.TP
+\fBsystem=<system_id>\fR
+For those SMI-S providers which support multi-systems(Example EMC ECIM),
+this URI parameter can be used to limit network communication for
+specified system only. The \fBsystem_id\fR is the ID of the system:
+ * \fBlsm.System.id\fR (Python API)
+ * \fBlsm_system_id_get()\fR (C API)
+ * \fBlsmcli list --systems\fR (lsmcli command line)
+
+.TP
+\fBno_ssl_verify=yes\fR
+This URI parameter is for HTTPS connections only. With this URI parameter,
+the SMI-S plugin will not validate SMI-S provider's server SSL certificate.
+It's often used for self-signed CA environment, but it's strongly suggested to
+remove this URI parameter and install self-signed CA properly.
+
+.SH Supported Hardware
+The LibstorageMgmt SMI-S plugin is based on 'Block Services Package' profile
+, SNIA SMI-S 1.4 or later. Any storage system which implements that profile
+may be supported. Detailed support status can be queried via:
+
+ * \fBlsm.Client.capabilities()\fR (Python API)
+ * \fBlsm_capabilities()\fR (C API)
+ * \fBlsmcli capabilities\fR (lsmcli command line).
+
+.SH FIREWALL RULES
+By default, this plugin requires access to the SMI-S provider's TCP 5988 port
+for HTTP conenction and TCP 5989 port for HTTPS connection.
+
+.SH SEE ALSO
+\fBlsmcli\fR(1), \fBlsmd\fR(1)
+
+.SH BUGS
+Please report bugs to
+\fI<libstoragemgmt-devel(a)lists.sourceforge.net>\fR
+
+.SH AUTHOR
+Gris Ge \fI<fge(a)redhat.com>\fR
+.br
+Tony Asleson \fI<tasleson(a)redhat.com>\fR
diff --git a/doc/man/targetd_lsmplugin.1.in b/doc/man/targetd_lsmplugin.1.in
new file mode 100644
index 0000000..290efc9
--- /dev/null
+++ b/doc/man/targetd_lsmplugin.1.in
@@ -0,0 +1,67 @@
+.TH targetd_lsmplugin "1" "June 2015" "targetd_lsmplugin @VERSION@" "libStorageMgmt"
+.SH NAME
+targetd_lsmplugin -- libStorageMgmt targetd plugin
+
+.SH DESCRIPTION
+LibStorageMgmt targetd plugin allows user to manage storage using
+the targetd storage API [1]. The 'targetd_lsmplugin' executable file is for
+libStorageMgmt daemon to execute when client user specifies targetd plugin in
+the URI.
+
+.SH URI
+To use this plugin, users should set their URI to this format:
+.nf
+
+ # HTTP connection
+ \fBtargetd://<username>@<targetd_server>:<port number>\fR
+
+ # HTTPS connection
+ \fBtargetd+ssl://<username>@<targetd_server>:<port number>\fR
+
+.fi
+
+.TP
+\fBusername\fR
+
+The \fBusername\fR is the user account configured in targetd configuration
+file.
+
+.TP
+\fBtargetd_server\fR
+
+The \fBtargetd_server\fR is the IP address or DNS name of server running
+targetd daemon.
+
+.TP
+\fBport number\fR
+
+The \fBport number\fR is the listening port of the targetd daemon. The default
+port of 18700 is used if none is supplied on the URI.
+
+.TP
+\fBURI parameters\fR
+No additional URI parameters are supported by this plugin.
+
+.SH SUPPORTED SOFTWARE
+Linux targetd 0.7.1 or later version.
+Detailed support status can be queried via:
+
+ * \fBlsm.Client.capabilities()\fR (Python API)
+ * \fBlsm_capabilities()\fR (C API)
+ * \fBlsmcli capabilities\fR (lsmcli command line).
+
+.SH FIREWALL RULES
+By default, this plugin requires access to the targetd server's TCP 18700
+port.
+
+.SH SEE ALSO
+\fBlsmcli\fR(1), \fBlsmd\fR(1), [1] https://github.com/agrover/targetd
+
+.SH BUGS
+Please report bugs to
+\fI<libstoragemgmt-devel(a)lists.sourceforge.net>\fR
+
+.SH AUTHOR
+Gris Ge \fI<fge(a)redhat.com>\fR
+.br
+Tony Asleson \fI<tasleson(a)redhat.com>\fR
diff --git a/packaging/libstoragemgmt.spec.in b/packaging/libstoragemgmt.spec.in
index b1392b6..92920e8 100644
--- a/packaging/libstoragemgmt.spec.in
+++ b/packaging/libstoragemgmt.spec.in
@@ -506,6 +506,7 @@ fi
%{_sysconfdir}/lsm/lsmd.conf
%dir %{_sysconfdir}/lsm
%dir %{_sysconfdir}/lsm/pluginconf.d
+%{_mandir}/man1/simc_lsmplugin.1*
%if 0%{?rhel} == 6
%{_sysconfdir}/bash_completion.d/lsmcli
@@ -556,6 +557,7 @@ fi
%{python_sitelib}/lsm/lsmcli/cmdline.*
%{_bindir}/sim_lsmplugin
%{_sysconfdir}/lsm/pluginconf.d/sim.conf
+%{_mandir}/man1/sim_lsmplugin.1*
%files -n %{libstoragemgmt}-smis-plugin
%defattr(-,root,root,-)
@@ -572,6 +574,7 @@ fi
%{python_sitelib}/lsm/plugin/smispy/smis_vol.*
%{python_sitelib}/lsm/plugin/smispy/smis_ag.*
%{_bindir}/smispy_lsmplugin
+%{_mandir}/man1/smispy_lsmplugin.1*
%files -n %{libstoragemgmt}-netapp-plugin
%defattr(-,root,root,-)
@@ -580,6 +583,7 @@ fi
%{python_sitelib}/lsm/plugin/ontap/na.*
%{python_sitelib}/lsm/plugin/ontap/ontap.*
%{_bindir}/ontap_lsmplugin
+%{_mandir}/man1/ontap_lsmplugin.1*
%files -n %{libstoragemgmt}-targetd-plugin
%defattr(-,root,root,-)
@@ -587,6 +591,7 @@ fi
%{python_sitelib}/lsm/plugin/targetd/__init__.*
%{python_sitelib}/lsm/plugin/targetd/targetd.*
%{_bindir}/targetd_lsmplugin
+%{_mandir}/man1/targetd_lsmplugin.1*
%files -n %{libstoragemgmt}-nstor-plugin
%defattr(-,root,root,-)
@@ -594,6 +599,7 @@ fi
%{python_sitelib}/lsm/plugin/nstor/__init__.*
%{python_sitelib}/lsm/plugin/nstor/nstor.*
%{_bindir}/nstor_lsmplugin
+%{_mandir}/man1/nstor_lsmplugin.1*
%if 0%{?with_megaraid}
%files -n %{libstoragemgmt}-megaraid-plugin
--
1.8.3.1
8 years, 11 months
[PATCH] C Library: Fix warning: comparison between signed and unsigned
by Gris Ge
* Just change the loop counter 'i' into size_t type.
Signed-off-by: Gris Ge <fge(a)redhat.com>
---
c_binding/lsm_mgmt.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/c_binding/lsm_mgmt.cpp b/c_binding/lsm_mgmt.cpp
index bbf481c..c238826 100644
--- a/c_binding/lsm_mgmt.cpp
+++ b/c_binding/lsm_mgmt.cpp
@@ -124,7 +124,7 @@ int lsm_initiator_id_verify(const char *init_id,
int lsm_volume_vpd83_verify(const char *vpd83)
{
int rc = LSM_ERR_INVALID_ARGUMENT;
- int i;
+ size_t i;
size_t vpd83_len;
if (vpd83) {
--
1.8.3.1
8 years, 11 months
[PATCH] ONTAP Plugin: Remove unused parameter 'na_disks'.
by Gris Ge
* Remove unused parameter 'na_disks' of _pool_from_na_aggr().
Signed-off-by: Gris Ge <fge(a)redhat.com>
---
plugin/ontap/ontap.py | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/plugin/ontap/ontap.py b/plugin/ontap/ontap.py
index 5a01494..d13490d 100644
--- a/plugin/ontap/ontap.py
+++ b/plugin/ontap/ontap.py
@@ -398,7 +398,7 @@ def _status_of_na_aggr(na_aggr):
return status, status_info
- def _pool_from_na_aggr(self, na_aggr, na_disks, flags):
+ def _pool_from_na_aggr(self, na_aggr, flags):
pool_id = na_aggr['name']
pool_name = na_aggr['name']
total_space = int(na_aggr['size-total'])
@@ -562,11 +562,8 @@ def disks(self, search_key=None, search_value=None, flags=0):
def pools(self, search_key=None, search_value=None, flags=0):
pools = []
na_aggrs = self.f.aggregates()
- na_disks = []
- # We do extra flags check in order to save self.f.disks() calls
- # in case we have multiple aggregates.
for na_aggr in na_aggrs:
- pools.extend([self._pool_from_na_aggr(na_aggr, na_disks, flags)])
+ pools.extend([self._pool_from_na_aggr(na_aggr, flags)])
na_vols = self.f.volumes()
for na_vol in na_vols:
pools.extend([self._pool_from_na_vol(na_vol, na_aggrs, flags)])
--
1.8.3.1
8 years, 11 months
[PATCH 0/3] Code tidy up.
by Gris Ge
* Update Python codes to enforce PEP8.
* Update C/C++ codes to enforce K&R code style.
Gris Ge (3):
PEP8 Clean up.
C Library: Replace tab with spaces.
C Library: Use K&R code style.
c_binding/include/libstoragemgmt/libstoragemgmt.h | 1599 ++++++++++----------
.../libstoragemgmt/libstoragemgmt_accessgroups.h | 22 +-
.../libstoragemgmt/libstoragemgmt_blockrange.h | 25 +-
.../libstoragemgmt/libstoragemgmt_capabilities.h | 225 ++-
.../include/libstoragemgmt/libstoragemgmt_common.h | 47 +-
.../include/libstoragemgmt/libstoragemgmt_disk.h | 15 +-
.../include/libstoragemgmt/libstoragemgmt_error.h | 163 +-
.../include/libstoragemgmt/libstoragemgmt_fs.h | 7 +-
.../include/libstoragemgmt/libstoragemgmt_hash.h | 17 +-
.../libstoragemgmt/libstoragemgmt_nfsexport.h | 99 +-
.../libstoragemgmt/libstoragemgmt_plug_interface.h | 846 ++++++-----
.../include/libstoragemgmt/libstoragemgmt_pool.h | 25 +-
.../libstoragemgmt/libstoragemgmt_snapshot.h | 6 +-
.../libstoragemgmt/libstoragemgmt_systems.h | 5 +-
.../libstoragemgmt/libstoragemgmt_targetport.h | 25 +-
.../include/libstoragemgmt/libstoragemgmt_types.h | 98 +-
.../libstoragemgmt/libstoragemgmt_volumes.h | 10 +-
c_binding/lsm_convert.cpp | 420 ++---
c_binding/lsm_convert.hpp | 68 +-
c_binding/lsm_datatypes.cpp | 913 +++++------
c_binding/lsm_datatypes.hpp | 121 +-
c_binding/lsm_ipc.cpp | 464 +++---
c_binding/lsm_ipc.hpp | 100 +-
c_binding/lsm_mgmt.cpp | 1578 +++++++++----------
c_binding/lsm_plugin_ipc.cpp | 1430 ++++++++---------
c_binding/lsm_plugin_ipc.hpp | 21 +-
c_binding/test.cpp | 20 +-
plugin/hpsa/hpsa.py | 2 +-
plugin/megaraid/megaraid.py | 2 +-
plugin/megaraid/utils.py | 1 +
plugin/nstor/nstor.py | 2 +-
plugin/sim/simarray.py | 47 +-
plugin/smispy/smis.py | 2 +-
plugin/smispy/smis_ag.py | 2 +-
plugin/smispy/smis_common.py | 7 +-
python_binding/lsm/_data.py | 4 +-
test/cmdtest.py | 5 +-
test/plugin_test.py | 6 +-
test/webtest/test_automated.py | 8 +-
test/webtest/test_hardware.py | 3 +-
test/webtest/test_results.py | 21 +-
tools/lsmcli/cmdline.py | 7 +-
tools/lsmcli/data_display.py | 2 +
tools/netapp/netapp.py | 6 +-
tools/utility/public_symbols.py | 6 +-
45 files changed, 4458 insertions(+), 4044 deletions(-)
--
1.8.3.1
8 years, 11 months