hercules-390 / hyperion

Hercules 390
Other
252 stars 70 forks source link

Hyperion 4.0 DASDLS needs enhanced to support new options added to Spinhawk 3.x DASDLS #160

Open erwinmars opened 8 years ago

erwinmars commented 8 years ago

The hyperion DASDLS ignores all options respectively it interprets each options as a volume. This has worked with 3.12.

This is a sample from 3.12:

U:\z>zherc32_312\dasdls -hdr -info diskuser\PAGE10.3390-3.CCKD
Hercules DASD list program Version 3.12
(c)Copyright 1999-2015 by Roger Bowler, Jan Jaeger, and others
diskuser\PAGE10.3390-3.CCKD: VOLSER=PAGE10
Dsname                                       CREDT ORG RECFM LRECL BLKSZ Key  Trks%Use#Ext 2ndry_alloc
SYS1.VTOCIX.PAGE10                           16212 PS  F      2048  2048   0    15 100   1 TRK       0
SYS1.VVDS.VPAGE10                            16212 VS  U            4096   0    15  -0   1 TRK      15
SYS1.PLPA.EWH.PAGE.DATA                      16212 VS  U            4096   0 15000  -0   1 CYL       0
SYS1.COMMON.EWH.PAGE.DATA                    16212 VS  U            4096   0  7500  -0   1 CYL       0
SYS1.LOCAL.EWH.PAGE.DATA                     16212 VS  U            4096   0 27510  -0   1 CYL       0

This is a sample from 4.00:

U:\z>U:\z\zherc64_400\dasdls -hdr -info diskuser\PAGE10.3390-3.CCKD
HHC01413I Hercules utility dasdls - DASD list program; version 4.0.0.8650-gb130229 (4.0.0.8650)
HHC01414I (C) Copyright 1999-2016 by Roger Bowler, Jan Jaeger, and others
HHC01415I Build date: Oct 14 2016 at 10:55:22
HHC00404E 0:0000 CKD file (null): error in function open(): No such file or directory
HHC00404E 0:0000 CKD file (null): error in function open(): No such file or directory
HHC00403I 0:0001 CKD file diskuser/PAGE10.3390-3.CCKD: opening as r/o
HHC00414I 0:0001 CKD file diskuser/PAGE10.3390-3.CCKD: cyls 3339 heads 15 tracks 50085 trklen 56832
diskuser\PAGE10.3390-3.CCKD: VOLSER=PAGE10
SYS1.VTOCIX.PAGE10
SYS1.VVDS.VPAGE10
SYS1.PLPA.EWH.PAGE.DATA
SYS1.COMMON.EWH.PAGE.DATA
SYS1.LOCAL.EWH.PAGE.DATA

You see, instead of writing a HDR and the DSCB1 Info, DASDLS writes to open error files

I've checked the dasdls.c file of the 4.00 release. It seems, that the complete code, processing the options is missing.

Fish-Git commented 8 years ago

The hyperion DASDLS ignores all options [...]

Um, no. The Hyperion version of DASDLS doesn't ignore any of its options (emphasis on "its"):

HHC01413I Hercules utility dasdls - DASD list program; version 4.0.0.8651-ge661d5c (4.0.0.8651)
HHC01414I (C) Copyright 1999-2016 by Roger Bowler, Jan Jaeger, and others
HHC01415I Build date: Oct 15 2016 at 17:45:43
HHC02463I Usage: dasdls ckdfile [sf=shadow-file-name]

The Hyperion version of DASDLS is thus behaving correctly, exactly as designed and originally written:

U:\z>U:\z\zherc64_400\dasdls -hdr -info diskuser\PAGE10.3390-3.CCKD
[...]
HHC00404E 0:0000 CKD file (null): error in function open(): No such file or directory
HHC00404E 0:0000 CKD file (null): error in function open(): No such file or directory
[...]

The above two open errors are the result of the Hyperion version of DASDLS not being able to find any ckdfile with the names -hdr or -info.

The actual "problem" is instead the fact that the 3.12 version of DASDLS was enhanced back in 2013 to add support for quite a few additional processing options. The option(s) you in fact mistakenly believed were being ignored by the Hyperion version:

Revision: b4cb771a9550d15e3f4c70d470e9be9f660236d3
Author: Chris Cheney <Chris.Cheney@cantab.net>
Date: 4/7/2013 1:14:51 PM
Message:
dasdls: show various info from F1 DSCB

----
Modified: dasdls.c

Here's what 3.12's DASDLS usage report shows:

Hercules DASD list program Version 3.12.0-git-5711-gee6382b
(c)Copyright 1999-2015 by Roger Bowler, Jan Jaeger, and others
Usage: dasdls [options] dasd_image [sf=shadow-file-name]...
Options:[-hdr] [-dsnl[=n]] [-info] [-caldt]
        [-refdt] [-expdt] [-yroffs[=n]]

Notice that it supports many options that the Hyperion version of DASDLS does not.

Why the above enhancement was not shared with the rest of the Hercules Development team by Roger Bowler (who's the one that committed Chris's changes) I do not know. This is not the first time (nor likely the last) that this has happened. There are likely many other changes that Roger made to his 3.x version(s) of Hercules that for reasons unknown he did not bother to share with the rest of the Hercules team. Such behavior of course makes it difficult to keep Hercules 3.x and 4.x in sync with one another leading to unfortunate incidents such as this. If you have a complaint you should voice it with Roger.

In the mean time I have changed this issue to an enhancement request instead of a bug report.

I've also marked it "(( STALLED ))" as well since I do not have the time to work on it right now. Hopefully one of the other Hercules developers (or users!) will be kind enough to take ownership of this issue and complete it for us.

Hope that helps, Erwin, and I apologize for the confusion.

(I do thank you however for taking the time to report this issue! Thank you for that!)

erwinmars commented 8 years ago

Ok, i understand. At this time, if i need it, i use the 3.12 version although the hercules rest runs with 4.00. On the other hand, i think about to implement it into the 4.00 version. But at this time, its not a promise. :-)

erwinmars commented 7 years ago

I've worked on it and converted the enhancments from 3.12 also in 4.00. My problem now is, that i'm not familiar with GIT and how can i merge my changed into hyperion.

I've uploaded the 2 changed files in this issue and hope, that somebody merges it into the hyperion repository or tells me, how i can do it.

dasdls_changes.zip

wfjm commented 6 years ago

Hi, I really like the spinhawk extensions to dasdls. It is very useful to have a program running on the host system which produces such an extended listing. When looking at the code it essentially boils down to extend the code of function list_contents and insert some code from spinkhawk dasdls at the right point in hyperion dasdls. Plus of course the handling of the options which must be injected into the startup code of dasdls.

Looks quite straightforward and @erwinmars prepared already a change proposal in Dec 2016. What prevents the integration of these changes into the hyperion code base ? Copyright issues ? Or functionality of the functions called by the new code ?

Fish-Git commented 6 years ago

I really like the spinhawk extensions to dasdls.

FWIW, SoftDevLabs's Fish-Git Hyperion already has this support.

wfjm commented 6 years ago

Great !! Is seems that all what is needed to add the spinhawk extensions to hercules-390/hyperion is a pull request from Fish-Git/hyperion :)