- 
                Notifications
    You must be signed in to change notification settings 
- Fork 54
Open
Labels
Priority - LowenhancementNew feature or requestNew feature or requestv3v4For Zowe v4 related tasksFor Zowe v4 related taskszwe
Description
Currently, "zwe components install" has 2 subcommands, "extract" and "process-hook"
These are overloaded and weird, so if someone was trying to dry-run through them, they should be reorganized to facilitate that.
A lot of the portions of extension installation dont have granular dry-run, so reorganzing the parts will also require that good dry-run functionality is implemented.
Ideally, that means that we can create temp files/datasets, and show their contents, but not commit them over originals. or, if attributes of a file is to be changed (pc bit, tagging), then we print what would have been performed, but not do it.
I propose this new organization
- extract or symlink. this command currently has no 'dry-run' at all, so that needs to be added. (current command: zwe components install extract, suggested new name:zwe components install extract)
- ensures the zowe.extensionDirectory exists
- checks if the input is a directory or a file archive
- if directory, creates a temporary symlink in zowe.extensionDirectory
- if file archive, tries to extract it into a temporary folder in zowe.extensionDirectory
 
- verifies that the result has a valid manifest against schema, to avoid user error or corruption
- if the manifest of the component requests the component to be auto-tagged upon install, runs the tag-files.sh script to tag files according to their filename extensions
- checks for and verifies if the extension has any plugins, to avoid developer error or corruption
- renames the temporary directory to the name of the component as seen in the manifest, indicating successful extract
- run extension install script if exists (current command: zwe components install process-hook, new command:zwe components install extension-script)
- if the extension has an install script, runs it
- if dry-run mode, just print the location of this script and its contents for review
- do zowe appfw integration (current command: zwe components install process-hook, new command:zwe components install registration appfw)
- checks every appfw plugin in the extension for zss dataservices. if any exist, verifies/corrects to ensure they have the PC bit.
- do zowe zis integration (current command: zwe components install process-hook, new command:zwe components install registration zis loadlib)
- checks the extension for zis plugins. if any exist,
- copies them to apf auth dataset
- updates the zis parmlib
- unless, with new enhancement, the steplib of the STCs gets updated instead
 
- do zowe zis parmlib update (current command: zwe components install process-hook, new command:zwe components install registration zis parmlib)
- modifies zis parmlib with entries from zis plugin
zis process is interesting, thus broken up into 2 parts.
- enable the extension in the yaml. this is just about running zwe components enablefrom within thezwe components install. can leave unchanged.
components:
  <component-name>:
    enabled: true
Metadata
Metadata
Assignees
Labels
Priority - LowenhancementNew feature or requestNew feature or requestv3v4For Zowe v4 related tasksFor Zowe v4 related taskszwe
Type
Projects
Status
No status