Blob Blame Raw
From 478527833bdb8ebc9f4523c54e544b244bfe76f1 Mon Sep 17 00:00:00 2001
From: Chris Leech <cleech@redhat.com>
Date: Mon, 19 Nov 2012 16:38:45 -0800
Subject: [PATCH 07/32] use var for config

---
 README         | 33 ++++++++++++++++-----------------
 doc/iscsiadm.8 |  8 ++++----
 usr/idbm.c     |  6 +++---
 usr/idbm.h     | 13 +++++++------
 usr/iface.h    |  3 ++-
 5 files changed, 32 insertions(+), 31 deletions(-)

diff --git a/README b/README
index c05814a2593b..326c3b01e608 100644
--- a/README
+++ b/README
@@ -172,8 +172,7 @@ Usage: iscsid [OPTION]
 
 Open-iSCSI persistent configuration is stored in a number of
 directories under a configuration root directory, using a flat-file
-format. This configuration root directory is /etc/iscsi by default,
-but may also commonly be in /var/lib/iscsi.
+format. This configuration root directory is /var/lib/iscsi by default.
 
 Configuration is contained in directories for:
 
@@ -561,7 +560,7 @@ a scsi_host per HBA port).
 To manage both types of initiator stacks, iscsiadm uses the interface (iface)
 structure. For each HBA port or for software iscsi for each network
 device (ethX) or NIC, that you wish to bind sessions to you must create
-a iface config /etc/iscsi/ifaces.
+a iface config /var/lib/iscsi/ifaces.
 
 Prep
 ----
@@ -594,7 +593,7 @@ Running
 The command
 	iscsiadm -m iface
 
-will report iface configurations that are setup in /etc/iscsi/ifaces:
+will report iface configurations that are setup in /var/lib/iscsi/ifaces:
 
 	iface0 qla4xxx,00:c0:dd:08:63:e8,20.15.0.7,default,iqn.2005-06.com.redhat:madmax
 	iface1 qla4xxx,00:c0:dd:08:63:ea,20.15.0.9,default,iqn.2005-06.com.redhat:madmax
@@ -604,10 +603,10 @@ The format is:
 
 For software iscsi, you can create the iface configs by hand, but it is
 recommended that you use iscsiadm's iface mode. There is an iface.example in
-/etc/iscsi/ifaces which can be used as a template for the daring.
+/var/lib/iscsi/ifaces which can be used as a template for the daring.
 
 For each network object you wish to bind a session to, you must create
-a separate iface config in /etc/iscsi/ifaces and each iface config file
+a separate iface config in /var/lib/iscsi/ifaces and each iface config file
 must have a unique name which is less than or equal to 64 characters.
 
 Example
@@ -615,12 +614,12 @@ Example
 
 If you have NIC1 with MAC address 00:0F:1F:92:6B:BF and NIC2 with
 MAC address 00:C0:DD:08:63:E7, and you wanted to do software iscsi over
-TCP/IP, then in /etc/iscsi/ifaces/iface0 you would enter:
+TCP/IP, then in /var/lib/iscsi/ifaces/iface0 you would enter:
 
 	iface.transport_name = tcp
 	iface.hwaddress = 00:0F:1F:92:6B:BF
 
-and in /etc/iscsi/ifaces/iface1 you would enter:
+and in /var/lib/iscsi/ifaces/iface1 you would enter:
 
 	iface.transport_name = tcp
 	iface.hwaddress = 00:C0:DD:08:63:E7
@@ -662,7 +661,7 @@ port. The iface name will be of the form:
 Running the following command:
 	iscsiadm -m iface
 
-will report iface configurations that are setup in /etc/iscsi/ifaces:
+will report iface configurations that are setup in /var/lib/iscsi/ifaces:
 
 	default tcp,<empty>,<empty>,<empty>,<empty>
 	iser iser,<empty>,<empty>,<empty>,<empty>
@@ -742,7 +741,7 @@ need a separate network connection to the target for discovery purposes.
 *This will be fixed in the next version of open-iscsi*
 
 For compatibility reasons, when you run iscsiadm to do discovery, it
-will check for interfaces in /etc/iscsi/iscsi/ifaces that are using
+will check for interfaces in /var/lib/iscsi/iscsi/ifaces that are using
 tcp for the iface.transport, and it will bind the portals that are discovered
 so that they will be logged in through those ifaces. This behavior can also
 be overridden by passing in the interfaces you want to use. For the case
@@ -757,7 +756,7 @@ If you had defined interfaces but wanted the old behavior, where we do not
 bind a session to an iface, then you can use the special iface "default":
 	iscsiadm -m discoverydb -t st -p ip:port -I default --discover -P 1
 
-And if you did not define any interfaces in /etc/iscsi/ifaces and do
+And if you did not define any interfaces in /var/lib/iscsi/ifaces and do
 not pass anything into iscsiadm, running iscsiadm will do the default
 behavior, allowing the network subsystem to decide which device to use.
 
@@ -793,7 +792,7 @@ Discovery mode
 		ID [192.168.1.1:3260]:
 	iscsiadm -m discoverydb -t st -p 192.168.1.1:3260 --discover
 
-	This will search /etc/iscsi/send_targets for a record with the
+	This will search /var/lib/iscsi/send_targets for a record with the
 	ID [portal = 192.168.1.1:3260 and type = sendtargets. If found it
 	will perform discovery using the settings stored in the record.
 	If a record does not exist, it will be created using the iscsid.conf
@@ -802,7 +801,7 @@ Discovery mode
 	The argument to -p may also be a hostname instead of an address:
 		iscsiadm -m discoverydb -t st -p somehost --discover
 
-	For the ifaces, iscsiadm will first search /etc/iscsi/ifaces for
+	For the ifaces, iscsiadm will first search /var/lib/iscsi/ifaces for
 	interfaces using software iscsi. If any are found then nodes found
 	during discovery will be setup so that they can logged in through
 	those interfaces. To specify a specific iface, pass the
@@ -853,7 +852,7 @@ Discovery mode
 
 - SendTargets iSCSI Discovery with a specific interface.
 		If you wish to only use a subset of the interfaces in
-		/etc/iscsi/ifaces, then you can pass them in during discovery:
+		/var/lib/iscsi/ifaces, then you can pass them in during discovery:
 	iscsiadm -m discoverydb -t sendtargets -p 192.168.1.1:3260 \
 		--interface=iface0 --interface=iface1 --discover
 
@@ -1223,8 +1222,8 @@ where targetname is the name of the target and ip_address:port is the address
 and port of the portal. tpgt is the Target Portal Group Tag of
 the portal, and is not used in iscsiadm commands except for static
 record creation. ifacename is the name of the iscsi interface
-defined in /etc/iscsi/ifaces. If no interface was defined in
-/etc/iscsi/ifaces or passed in, the default behavior is used.
+defined in /var/lib/iscsi/ifaces. If no interface was defined in
+/var/lib/iscsi/ifaces or passed in, the default behavior is used.
 Default here is iscsi_tcp/tcp to be used over whichever NIC the
 network layer decides is best.
 
@@ -1336,7 +1335,7 @@ If set, iscsid will perform discovery to the address every
 discovery.isns.discoveryd_poll_inval or
 discovery.sendtargets.discoveryd_poll_inval seconds,
 and it will log into any portals found from the discovery source using
-the ifaces in /etc/iscsi/ifaces.
+the ifaces in /var/lib/iscsi/ifaces.
 
 Note that for iSNS the poll_interval does not have to be set. If not set,
 iscsid will only perform rediscovery when it gets a SCN from the server.
diff --git a/doc/iscsiadm.8 b/doc/iscsiadm.8
index a82805e28fb9..758a47c2d1fe 100644
--- a/doc/iscsiadm.8
+++ b/doc/iscsiadm.8
@@ -241,7 +241,7 @@ This option is only valid for ping submode.
 .TP
 \fB\-I\fR, \fB\-\-interface=\fI[iface]\fR
 The interface argument specifies the iSCSI interface to use for the operation.
-iSCSI interfaces (iface) are defined in /etc/iscsi/ifaces. For hardware
+iSCSI interfaces (iface) are defined in /var/lib/iscsi/ifaces. For hardware
 iSCSI (qla4xxx) the iface config must have the hardware address
 (iface.hwaddress = port's MAC address)
 and the driver/transport_name (iface.transport_name). The iface's name is
@@ -318,7 +318,7 @@ If no other options are specified: for \fIdiscovery\fR, \fIdiscoverydb\fR and
 \fInode\fR, all of their respective records are displayed; for \fIsession\fR,
 all active sessions and connections are displayed; for \fIfw\fR, all boot
 firmware values are displayed; for \fIhost\fR, all iSCSI hosts are displayed;
-and for \fIiface\fR, all ifaces setup in /etc/iscsi/ifaces are displayed.
+and for \fIiface\fR, all ifaces setup in /var/lib/iscsi/ifaces are displayed.
 
 .TP
 \fB\-n\fR, \fB\-\-name=\fIname\fR
@@ -703,10 +703,10 @@ The configuration file read by \fBiscsid\fR and \fBiscsiadm\fR on startup.
 The file containing the iSCSI InitiatorName and InitiatorAlias read by
 \fBiscsid\fR and \fBiscsiadm\fR on startup.
 .TP
-/etc/iscsi/nodes/
+/var/lib/iscsi/nodes/
 This directory contains the nodes with their targets.
 .TP
-/etc/iscsi/send_targets
+/var/lib/iscsi/send_targets
 This directory contains the portals.
 
 .SH "SEE ALSO"
diff --git a/usr/idbm.c b/usr/idbm.c
index 0aa3870a76fd..ec33ce905dc1 100644
--- a/usr/idbm.c
+++ b/usr/idbm.c
@@ -2926,9 +2926,9 @@ free_info:
 int idbm_init(idbm_get_config_file_fn *fn)
 {
 	/* make sure root db dir is there */
-	if (access(ISCSI_CONFIG_ROOT, F_OK) != 0) {
-		if (mkdir(ISCSI_CONFIG_ROOT, 0660) != 0) {
-			log_error("Could not make %s %d", ISCSI_CONFIG_ROOT,
+	if (access(ISCSIVAR, F_OK) != 0) {
+		if (mkdir(ISCSIVAR, 0660) != 0) {
+			log_error("Could not make %s %d", ISCSIVAR,
 				   errno);
 			return errno;
 		}
diff --git a/usr/idbm.h b/usr/idbm.h
index b83c0bb1cca8..2b05d7871be9 100644
--- a/usr/idbm.h
+++ b/usr/idbm.h
@@ -29,12 +29,13 @@
 #include "list.h"
 #include "flashnode.h"
 
-#define NODE_CONFIG_DIR		ISCSI_CONFIG_ROOT"nodes"
-#define SLP_CONFIG_DIR		ISCSI_CONFIG_ROOT"slp"
-#define ISNS_CONFIG_DIR		ISCSI_CONFIG_ROOT"isns"
-#define STATIC_CONFIG_DIR	ISCSI_CONFIG_ROOT"static"
-#define FW_CONFIG_DIR		ISCSI_CONFIG_ROOT"fw"
-#define ST_CONFIG_DIR		ISCSI_CONFIG_ROOT"send_targets"
+#define ISCSIVAR		"/var/lib/iscsi/"
+#define NODE_CONFIG_DIR		ISCSIVAR"nodes"
+#define SLP_CONFIG_DIR		ISCSIVAR"slp"
+#define ISNS_CONFIG_DIR		ISCSIVAR"isns"
+#define STATIC_CONFIG_DIR	ISCSIVAR"static"
+#define FW_CONFIG_DIR		ISCSIVAR"fw"
+#define ST_CONFIG_DIR		ISCSIVAR"send_targets"
 #define ST_CONFIG_NAME		"st_config"
 #define ISNS_CONFIG_NAME	"isns_config"
 
diff --git a/usr/iface.h b/usr/iface.h
index 6c06f7f7d450..c8b9de9a7c3a 100644
--- a/usr/iface.h
+++ b/usr/iface.h
@@ -21,8 +21,9 @@
 #define ISCSI_IFACE_H
 
 #include <libopeniscsiusr/libopeniscsiusr.h>
+#include "idbm.h"
 
-#define IFACE_CONFIG_DIR	ISCSI_CONFIG_ROOT"ifaces"
+#define IFACE_CONFIG_DIR	ISCSIVAR"ifaces"
 
 struct iface_rec;
 struct list_head;
-- 
2.14.4