This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Git clone, pull/fetch and push to ZMF package ?

We are currently using a git protocol helper to allow us (in ZMF R&D) to synchronize off platform development, managed by git in a local repo, with the overarching control provided by ChangeMan ZMF.

The target ZMF package is presented as remote repo to local git by using a ‘url’ of  ZMF://<target ZMF profile>/<target ZMF package>

 

For example, we use:   ZMF://PRODZMF/CZMF125     to address package CZMF000125 in our production ZMF subsystem.

 

We can then use clone, pull/fetch and push  to synchronize change between the local repo and the ZMF package.  The ZMF package is the ‘gold code’.

We have put in place local regression checking as part of this support and the git merge process can be used when refreshing the latest code from the ZMF package into the local repo.

The protocol helper relies on the use of our zowe zmf cli plugin to communicate with the target ZMF. The zowe zmf cli takes care of managing the ip addressing and user authentication mechanisms (i.e. the <target ZMF profile> is a zowe zmf profile containing these details).

 

This git/ZMF connector mechanism works equally well with git on windows and on Linux.

 

The level of support is sufficient for what we need to do here at Micro Focus.

We are looking to expand the scope of this support, but only if there is genuine interest from people who may want to use it.

To move forward with it we need input from potential users of this support.

 

Is there any interest out there?

Labels:

Changeman ZMF
Parents
  • 0

    Will this provide the ability to stage a component into a ChangeMan ZMF package from scripting?  I am looking at using a groovy script to stage a component from the USS file system or PDS into an existing ZMF package.  The package ID would come from a member.cmn file in the repository.  We are using Bitbucket (x86) -> GitLab (z) -> USS zFS (z) -> PDS (z) using the DBB Groovy library. 

    Basic ask is for the ability to Stage a component (program, JCL, bundle, aar, ara, etc.) into a package triggering any required compiles from an API or groovy scripting.  This would eliminate the developer needing to manually stage the components after the commit into Bitbucket.

  • 0   in reply to 

    Hello Christopher,

    I’m afraid that I am not familiar with the use of BitBucket and so I can’t be definite about whether the Git/ZMF protocol helper will be of use to you.

    In order to use the protocol helper you need to be able to issue standard git commands clone/push/fetch/pull to a remote repo with the repo url formatted as    ZMF://<zowe-zmf-profile-name>/<zmf-package-id>.  

    If you can do that from your script then it may be of use.

    However, the basic premise is that ZMF is the central repository and the local Git workspace is subservient to ZMF, which may not work with your configuration (though I’m not sure about that).

     

    Your basic ask should be possible without using git commands.

    If you just have a component in a workspace that can be addressed via the file system then you can make use of either the zowe zmf cli’s or the underlying ZMF REST API calls.

    The cli’s can be issued from anywhere you can issue a command, the REST API calls need to be coded but they will work in the same way that any REST API call works.

    To use The REST API calls you need to have installed the zmfrest web app which runs under Tomcat on z/OS.

    The zowe zmf cli’s require zowe to be installed on your workstation along with the zowe zmf cli plugin.

     

    I can produce some zowe zmf cli and/or ZMF REST API samples if you like but please comment on the above before I go any further.

     

    Thanks.

Reply
  • 0   in reply to 

    Hello Christopher,

    I’m afraid that I am not familiar with the use of BitBucket and so I can’t be definite about whether the Git/ZMF protocol helper will be of use to you.

    In order to use the protocol helper you need to be able to issue standard git commands clone/push/fetch/pull to a remote repo with the repo url formatted as    ZMF://<zowe-zmf-profile-name>/<zmf-package-id>.  

    If you can do that from your script then it may be of use.

    However, the basic premise is that ZMF is the central repository and the local Git workspace is subservient to ZMF, which may not work with your configuration (though I’m not sure about that).

     

    Your basic ask should be possible without using git commands.

    If you just have a component in a workspace that can be addressed via the file system then you can make use of either the zowe zmf cli’s or the underlying ZMF REST API calls.

    The cli’s can be issued from anywhere you can issue a command, the REST API calls need to be coded but they will work in the same way that any REST API call works.

    To use The REST API calls you need to have installed the zmfrest web app which runs under Tomcat on z/OS.

    The zowe zmf cli’s require zowe to be installed on your workstation along with the zowe zmf cli plugin.

     

    I can produce some zowe zmf cli and/or ZMF REST API samples if you like but please comment on the above before I go any further.

     

    Thanks.

Children
  • 0 in reply to   

    Thanks for the additional information.

    Lets ignore Bitbucket for now.  We are using Jenkins and EGIT to replicate the BB repo into USS on z.

    Given that I have the files on z in the zFS file system can I stage a component into an existing package?

    Can I stage all of the copybooks into a package and promote and then stage the COBOL modules triggering compiles?

    I think the directions of data travel are opposite between our solutions.  In mine I am trying to push components from Git into ZMF and you are pulling components from ZMF into Git.

    In my design I would have two components:

    1. program.cbl          contains cobol program

    2. program.cmn        contains an xml or yaml structure with ZMF information like package ID, component type, compile and link options

    The script (running on z) would identify the components from a git diff and using the *.cmn member identify the package for this component and stage the cobol member to that package.

    I have not located any examples where this is possible. Is there a ZMF CLI command for Stage from PDS?

    The developers currently manually stage the components from a PDS into ZMF after updating in git. 

    Thanks

    Chris