Hello community, here is the log from the commit of package open-iscsi for openSUSE:Factory checked in at 2019-04-01 12:33:22 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/open-iscsi (Old) and /work/SRC/openSUSE:Factory/.open-iscsi.new.25356 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "open-iscsi" Mon Apr 1 12:33:22 2019 rev:80 rq:688862 version:unknown Changes: -------- --- /work/SRC/openSUSE:Factory/open-iscsi/open-iscsi.changes 2019-02-04 21:23:49.599618975 +0100 +++ /work/SRC/openSUSE:Factory/.open-iscsi.new.25356/open-iscsi.changes 2019-04-01 12:33:30.385800266 +0200 @@ -1,0 +2,11 @@ +Tue Mar 26 17:43:23 UTC 2019 - Lee Duncan <[email protected]> + +- Added latest upstream changes, including: + * Fix output of node printing for multiple paths. + * Fix printing of node database again. + * Add Restart=on-failure option to iscsid.service + * Fix node print return value when no nodes. + Updating: + * open-iscsi-SUSE-latest.diff.bz2 + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ open-iscsi-SUSE-latest.diff.bz2 ++++++ --- /var/tmp/diff_new_pack.uu35bd/_old 2019-04-01 12:33:31.925800660 +0200 +++ /var/tmp/diff_new_pack.uu35bd/_new 2019-04-01 12:33:31.941800663 +0200 @@ -707,6 +707,36 @@ .SH AUTHORS Open-iSCSI project <http://www.open-iscsi.com/> .br +diff --git a/etc/systemd/iscsi.service b/etc/systemd/iscsi.service +index 0edcf510b9cb..e4758881cb9c 100644 +--- a/etc/systemd/iscsi.service ++++ b/etc/systemd/iscsi.service +@@ -3,11 +3,12 @@ Description=Login and scanning of iSCSI devices + Documentation=man:iscsiadm(8) man:iscsid(8) + Before=remote-fs.target + After=network.target network-online.target iscsid.service ++Requires=iscsid.service + ConditionPathExists=/etc/iscsi/initiatorname.iscsi + + [Service] + Type=oneshot +-ExecStart=-/sbin/iscsiadm -m node --loginall=automatic ++ExecStart=/sbin/iscsiadm -m node --loginall=automatic + ExecStop=/sbin/iscsiadm -m node --logoutall=automatic + ExecStop=/sbin/iscsiadm -m node --logoutall=manual + SuccessExitStatus=21 +diff --git a/etc/systemd/iscsid.service b/etc/systemd/iscsid.service +index f5e8979fa1d1..4fef168163ca 100644 +--- a/etc/systemd/iscsid.service ++++ b/etc/systemd/iscsid.service +@@ -10,6 +10,7 @@ Type=notify + NotifyAccess=main + ExecStart=/sbin/iscsid -f + KillMode=mixed ++Restart=on-failure + + [Install] + WantedBy=multi-user.target diff --git a/iscsiuio/README b/iscsiuio/README index 9cbf7ce6717a..19150055a3fb 100644 --- a/iscsiuio/README @@ -885,7 +915,7 @@ check: $(LIBS) $(TESTS) sudo env LD_LIBRARY_PATH=$(LIBISCSI_USR_DIR) TESTS="$(TESTS)" \ diff --git a/libopeniscsiusr/idbm.c b/libopeniscsiusr/idbm.c -index 7724de2668bc..055dd9a16050 100644 +index 7724de2668bc..677139e86ced 100644 --- a/libopeniscsiusr/idbm.c +++ b/libopeniscsiusr/idbm.c @@ -676,7 +676,7 @@ updated: @@ -897,6 +927,16 @@ value = passwd_len; \ goto setup_passwd_len; \ } +@@ -833,6 +833,9 @@ int _idbm_iface_get(struct iscsi_context *ctx, const char *iface_name, struct + if (iface_name == NULL) + goto out; + ++ if (strcmp(iface_name, "iface.example") == 0) ++ goto out; ++ + _good(_asprintf(&conf_path, "%s/%s", IFACE_CONFIG_DIR, iface_name), + rc, out); + diff --git a/usr/Makefile b/usr/Makefile index f541d7cb0362..1326a444cdbd 100644 --- a/usr/Makefile @@ -994,10 +1034,15 @@ goto setup_passwd_len; \ } diff --git a/usr/iscsiadm.c b/usr/iscsiadm.c -index 25c6cdc0ff12..7cb4b97ff326 100644 +index 25c6cdc0ff12..a8f6f4a9a6e4 100644 --- a/usr/iscsiadm.c +++ b/usr/iscsiadm.c -@@ -694,9 +694,8 @@ static void print_node_flat(struct iscsi_node *node) +@@ -689,14 +689,12 @@ static void print_node_flat(struct iscsi_node *node) + iscsi_node_target_name_get(node)); + } + +-// The 'iface_mode' argument is only used for command +-// `iscsiadm -m iface -P 1` static void print_nodes_tree(struct iscsi_node **nodes, uint32_t node_count, enum _print_node_tree_mode print_mode) { @@ -1005,10 +1050,11 @@ + unsigned int i; struct iscsi_node *cur_node = NULL; - struct iscsi_node *pre_node = NULL; ++ struct iscsi_node *prev_node = NULL; const char *prefix = NULL; if (print_mode == _PRINT_MODE_IFACE) -@@ -708,27 +707,14 @@ static void print_nodes_tree(struct iscsi_node **nodes, uint32_t node_count, +@@ -708,27 +706,24 @@ static void print_nodes_tree(struct iscsi_node **nodes, uint32_t node_count, // is no need to create hash table for this. for (i = 0; i < node_count; ++i) { cur_node = nodes[i]; @@ -1017,8 +1063,17 @@ - if ((pre_node == NULL) || - (strcmp(iscsi_node_target_name_get(cur_node), - iscsi_node_target_name_get(pre_node)) != 0)) -- printf("%sTarget: %s\n", prefix, -- iscsi_node_target_name_get(cur_node)); ++ /* ++ * Print the target line if this is our first pass, or ++ * if if it does not match the prevous target. Always print ++ * the Portal line. The original code seemed to want to ++ * suppres duplicates here, as well, but it evidently ++ * didn't work that way, so let's not regress output format ++ */ ++ if (!prev_node || strcmp(iscsi_node_target_name_get(prev_node), ++ iscsi_node_target_name_get(cur_node))) + printf("%sTarget: %s\n", prefix, + iscsi_node_target_name_get(cur_node)); - if ((pre_node == NULL) || - (strcmp(iscsi_node_conn_address_get(cur_node), - iscsi_node_conn_address_get(pre_node)) != 0) || @@ -1033,14 +1088,26 @@ - if (print_mode == _PRINT_MODE_NODE) - printf("\t\tIface Name: %s\n", - iscsi_node_iface_name_get(cur_node)); -+ printf("%sTarget: %s\n", prefix, -+ iscsi_node_target_name_get(cur_node)); + printf("%s\tPortal: %s,%d\n", prefix, + iscsi_node_portal_get(cur_node), + iscsi_node_tpgt_get(cur_node)); + if (print_mode == _PRINT_MODE_NODE) + printf("\t\tIface Name: %s\n", + iscsi_node_iface_name_get(cur_node)); ++ prev_node = cur_node; } } +@@ -749,6 +744,12 @@ static int print_nodes(struct iscsi_context *ctx, int info_level) + if (rc != LIBISCSI_OK) + goto out; + ++ if (!node_count) { ++ log_error("No records found"); ++ rc = ISCSI_ERR_NO_OBJS_FOUND; ++ goto out; ++ } ++ + if (info_level == 1) + print_nodes_tree(nodes, node_count, _PRINT_MODE_NODE); + else
