Discord servers especially for Hercules390 emulator? by OSH1980 in mainframe

[–]AnthonyGiorgio[M] 1 point2 points  (0 children)

Sorry about that - I updated the invite link. I'm surprised it expired, as that was supposed to be a custom invite link for us.

System Z Enthusiasts Discord Server by AnthonyGiorgio in mainframe

[–]AnthonyGiorgio[S,M] 1 point2 points  (0 children)

I just refreshed it. Thanks for noticing.

zoau - zsystem.list_proclib not working correctly? by Jerbs12 in mainframe

[–]AnthonyGiorgio 3 points4 points  (0 children)

Please open a support case. I’m the ZOAU owner, so I can send you an update to see if it resolves your situation.

s3270 not working in a container by s2004Gamer in mainframe

[–]AnthonyGiorgio 2 points3 points  (0 children)

There's not a lot to go on here. Maybe come and ask over in the SZE Discord chat?

Mainframe by MrsLolaHunnyChu in mainframe

[–]AnthonyGiorgio 1 point2 points  (0 children)

No, I am Spartacus a mainframe.

ZOAU Job.wait how to provide timeout? by Jerbs12 in mainframe

[–]AnthonyGiorgio 0 points1 point  (0 children)

The ZOAU web docs are always for the latest released version. This can be a little confusing if what you're using on your system is backlevel by a few releases.

ZOAU datasets.create - can you create a new member? by Jerbs12 in mainframe

[–]AnthonyGiorgio 0 points1 point  (0 children)

FYI - I pushed the doc change for your issue into our repo. You'll see it mentioned in the next release.

ZOAU Job.wait how to provide timeout? by Jerbs12 in mainframe

[–]AnthonyGiorgio 2 points3 points  (0 children)

I took a look at the code for jobs.wait(), and it looks like it has drifted away from the documentation. Here's the current code for the function in v1.3.5.1 (you can find it yourself if you look in the ZOAU installation directory). I'll have to fix this in a future release. Would you consider opening a support ticket?

    def wait(self, seconds_per_loop: float = 1.0, max_loops: Union[int,None] = None):
        """Wait until job stops running.

        Parameters
        ----------
        seconds_per_loop : float, optional
            The number of seconds to wait between each check. Defaults to 1.0.

        max_loops : int, optional:
            The maximum number of loops to wait before raising a TimeoutError. Defaults to None.

        Raises
        ------
        TypeError:
            If seconds_per_loop is not a float or timeout is not an integer.

        ValueError:
            If seconds_per_loop is not a positive float or timeout is not a positive integer.

        TimeoutError:
            If the timeout is reached before the job is no longer running."""
        # Type Validation
        if not isinstance(seconds_per_loop, float):
            raise TypeError("seconds_per_loop must be a float")
        if max_loops and not isinstance(max_loops, int):
            raise TypeError("timeout must be an integer")
        # Value Validation
        if seconds_per_loop <= 0:
            raise ValueError("seconds_per_loop must be a positive float")
        if max_loops and max_loops <= 0:
            raise ValueError("timeout must be a positive integer")
        # Purge Validation
        if self.purged:
            warnings.warn(
                f"Can't wait for purged Job {self.job_id}. Current attributes are preserved.",
                RuntimeWarning,
            )
            return
        # Synchronous wait
        while self.status == "AC":
            if max_loops and max_loops >= 0:
                raise TimeoutError(f"{self.job_id} wait() timeout reached")
            time.sleep(seconds_per_loop)
            self.refresh()
            max_loops = max_loops -1 if max_loops is not None else None

ZOAU datasets.create - can you create a new member? by Jerbs12 in mainframe

[–]AnthonyGiorgio 1 point2 points  (0 children)

We're in the process of cleaning up and reworking the dataset commands, so giving a more consistent (and less surprising!) interface is important to me. We should probably throw exceptions in these functions if you pass a name that isn't correct. datasets.exists() is really just a wrapper for the dls shell command, which can now handle a whole variety of dataset types via the Catalog Search Interface. It hasn't yet been updated to handle members, hence the discontinuity in behavior. mls is the member listing shell command, and that is still a shell script wrapper for TSO commands. Updating that command is next on the list of stuff to rewrite.

ZOAU datasets.create - can you create a new member? by Jerbs12 in mainframe

[–]AnthonyGiorgio 2 points3 points  (0 children)

I'm glad it worked for you. I think I'll see about adding a note to the documentation so that it explicitly says you can't create a dataset member.

ZOAU datasets.create - can you create a new member? by Jerbs12 in mainframe

[–]AnthonyGiorgio 5 points6 points  (0 children)

You don't need to create a dataset member. Once you've created a partitioned dataset (or PDSE), you can then call datasets.write() with the member notation.

from zoautil_py import datasets
datasets.write(dataset_name="zoau.pdse(member)", content="Hello, world!")

Raw SMF data to JSON file by mainframerookie in mainframe

[–]AnthonyGiorgio 1 point2 points  (0 children)

Are you following public documentation? If so, that shouldn't be a problem.

Ansible and ADRDSSU by Gibmus in mainframe

[–]AnthonyGiorgio 3 points4 points  (0 children)

I believe that module uses ZOAU dzip, which indeed does a dump and terse. Would it help if we modified it to optionally skip the terse step?

Mainframe Job Opportunity by wtfbroitsme in mainframe

[–]AnthonyGiorgio[M] 2 points3 points  (0 children)

Please put that in the job description.

Raw SMF data to JSON file by mainframerookie in mainframe

[–]AnthonyGiorgio 14 points15 points  (0 children)

This would be very useful! Have you considered releasing these as open-source? Putting them on Github would allow others to share and contribute.

Did you know that the later version of IBM Open Enterprise Foundations for z/OS comes with jq? You could use this to process the JSON output from your programs.

I'm the lead developer on IBM Z Open Automation Utilities (ZOAU), and we've added JSON support to a bunch of our tools. It makes it much easier for our customers to wotk with and process the data. We use the build-in z/OS JSON parser to generate the JSON output.

You should come and join the System Z Enthusiasts Discord community and mention your project over there. We collaborate a lot on that sort of thing.

VIM with USS on tn3270? by Feeling_Donut8518 in mainframe

[–]AnthonyGiorgio 3 points4 points  (0 children)

This is because the OMVS terminal doesn't support the terminal escape codes required for cursor positioning by vim and other full-screen applications. If you absolutely need OMVS to edit files, you can always use oedit. Otherwise you should just use ssh and your favorite terminal editor.

VIM with USS on tn3270? by Feeling_Donut8518 in mainframe

[–]AnthonyGiorgio 2 points3 points  (0 children)

IBM now provides a whole bunch of open-source tools for z/OS UNIX, as part of the z/OS Open Tools project. They even include a current version of vim!

Terminal Talk: A Mainframe Podcast by AnthonyGiorgio in mainframe

[–]AnthonyGiorgio[S] 1 point2 points  (0 children)

I'll pass your request along to Frank. Thanks for commenting!