intersystems / intersystems/ipm

Missing pParams in resource processor phase method

Open
#619 3 comments 0 reactions 0 assignees View on GitHub
bug customer documentation
Dominant language
ObjectScript
Stars
41
Forks
29
Avg merge
23h 54m
Merged PRs (30d)
4

Description

This is v0.7.3

I'm exploring an idea to use IPM to load module's installation env/site specific configuration.

I run into issue with parameters in resource processor. I have a simple processor `Company.IPM.Config` that only dumps information:
```
Method OnAfterPhase(pPhase As %String, ByRef pParams) As %Status
{
write !
write $classname(), ": OnAfterPhase(): phase: ", pPhase
write !
write $classname(), ": OnAfterPhase(): pParams: ", ..mdToString(.pParams)
write !
write $classname(), ": OnAfterPhase(): properties: ", ..propertiesToString()
write !
return $$$OK
}
```

In manifest:
```

```

I have `RootDirectory` parameter available when I'm loading the module:
```
zpm:IPM-TRIAL>load /home/irisowner/work/ipm-trial/company-module

[IPM-TRIAL|company-module] Reload START (/home/irisowner/work/ipm-trial/company-module/)
Company.IPM.Config: OnAfterPhase(): phase: Reload
Company.IPM.Config: OnAfterPhase(): pParams: (md("DeveloperMode") 1)(md("RootDirectory") /home/irisowner/work/ipm-trial/company-module/)(md("cmd") load)
Company.IPM.Config: OnAfterPhase(): properties: (Name "config")

[IPM-TRIAL|company-module] Reload SUCCESS
[company-module] Module object refreshed.
[IPM-TRIAL|company-module] Validate START
Company.IPM.Config: OnAfterPhase(): phase: Validate
Company.IPM.Config: OnAfterPhase(): pParams: (md("DeveloperMode") 1)(md("RootDirectory") /home/irisowner/work/ipm-trial/company-module/)(md("cmd") load)
Company.IPM.Config: OnAfterPhase(): properties: (Name "config")

[IPM-TRIAL|company-module] Validate SUCCESS
[IPM-TRIAL|company-module] Compile START
Company.IPM.Config: OnAfterPhase(): phase: Compile
Company.IPM.Config: OnAfterPhase(): pParams: (md("DeveloperMode") 1)(md("RootDirectory") /home/irisowner/work/ipm-trial/company-module/)(md("cmd") load)
Company.IPM.Config: OnAfterPhase(): properties: (Name "config")

[IPM-TRIAL|company-module] Compile SUCCESS
[IPM-TRIAL|company-module] Activate START
[IPM-TRIAL|company-module] Configure START
Company.IPM.Config: OnAfterPhase(): phase: Configure
Company.IPM.Config: OnAfterPhase(): pParams: (md("DeveloperMode") 1)(md("RootDirectory") /home/irisowner/work/ipm-trial/company-module/)(md("cmd") load)
Company.IPM.Config: OnAfterPhase(): properties: (Name "config")

[IPM-TRIAL|company-module] Configure SUCCESS
Company.IPM.Config: OnAfterPhase(): phase: Activate
Company.IPM.Config: OnAfterPhase(): pParams: (md("DeveloperMode") 1)(md("RootDirectory") /home/irisowner/work/ipm-trial/company-module/)(md("cmd") load)
Company.IPM.Config: OnAfterPhase(): properties: (Name "config")

[IPM-TRIAL|company-module] Activate SUCCESS
```

But when I'm running only activate lifecycle to configure the module `pParams` is empty and now I don't know anymore where on the fileystem I can find `config` (directory) resource:
```
zpm:IPM-TRIAL>module-action company-module activate -only

[IPM-TRIAL|company-module] Activate START
[IPM-TRIAL|company-module] Configure START
Company.IPM.Config: OnAfterPhase(): phase: Configure
Company.IPM.Config: OnAfterPhase(): pParams:
Company.IPM.Config: OnAfterPhase(): properties: (Name "config")

[IPM-TRIAL|company-module] Configure SUCCESS
Company.IPM.Config: OnAfterPhase(): phase: Activate
Company.IPM.Config: OnAfterPhase(): pParams:
Company.IPM.Config: OnAfterPhase(): properties: (Name "config")

[IPM-TRIAL|company-module] Activate SUCCESS
zpm:IPM-TRIAL>
```

The plan is to have the resource processor to depend on `-Denv` value and act accordingly.

Second issue is why `Denv=foo` is expanded also to `Dzpm.env=foo`:
```
pParams: (md("env") foo)(md("zpm","env") foo)
```

```
zpm:IPM-TRIAL>module-action company-module activate -only -Denv=foo

[IPM-TRIAL|company-module] Activate START
[IPM-TRIAL|company-module] Configure START
Company.IPM.Config: OnAfterPhase(): phase: Configure
Company.IPM.Config: OnAfterPhase(): pParams: (md("env") foo)(md("zpm","env") foo)
Company.IPM.Config: OnAfterPhase(): properties: (Name "config")

[IPM-TRIAL|company-module] Configure SUCCESS
Company.IPM.Config: OnAfterPhase(): phase: Activate
Company.IPM.Config: OnAfterPhase(): pParams: (md("env") foo)(md("zpm","env") foo)
Company.IPM.Config: OnAfterPhase(): properties: (Name "config")

[IPM-TRIAL|company-module] Activate SUCCESS
zpm:IPM-TRIAL>
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.