Re: can not set up wrapper for module: nimclient
Xander Cage <[email protected]> Mon, 8 Jul 2024 08:49:30 -0700 (PDT)
| Newsgroups | gmane.comp.sysutils.cfengine.general |
|---|---|
| Message-ID | <[email protected]> |
i looked deeper at the shell at /bin/sh in aix....seems this is "Korn Shell 88"...about 40 years old...was a good laugh ;-) On Monday, July 8, 2024 at 4:40:15 PM UTC+2 [email protected] wrote: > Thanks for testing and commenting on the PR. I have merged that PR and > will work on the cherry pick to 3.21.x. > > Cheers, > Craig > > On Monday, July 8, 2024 at 8:26:26 AM UTC-5 [email protected] wrote: > >> Please see https://github.com/cfengine/masterfiles/pull/2921 and try the >> fix. >> >> I just removed the -n test since it is not needed. A simple test to see >> if the variable is equal to "true" should suffice just fine and allow the >> script to proceed. >> >> if [ "$CFENGINE_TEST_NIMCLIENT_MOCK" = "true" ]; then >> >> I suppose on AIX or your system that your "sh" is more lenient possibly >> and allows more args to "[" so that is why the code path is getting into >> the mock branch instead of the non-mock branch and failing to cat out that >> file you don't have laying around. >> >> -Craig >> >> On Monday, July 8, 2024 at 8:20:34 AM UTC-5 [email protected] >> wrote: >> >>> The pertinent code, I think, is here in cf-agent/package_module.c, line >>> 125: >>> >>> wrapper->supported_api_version = >>> NegotiateSupportedAPIVersion(wrapper); >>> if (wrapper->supported_api_version != 1) >>> { >>> Log(LOG_LEVEL_ERR, >>> "Unsupported package module wrapper API version: %d", >>> wrapper->supported_api_version); >>> DeletePackageModuleWrapper(wrapper); >>> return NULL; >>> } >>> >>> Which indeed, if your package module script is erroring out like you >>> indicated will result in returning a -1 from NegotiateSupportedAPIVersion(). >>> >>> Looking at the module script I think something went wrong in this line: >>> >>> if [ -n "$CFENGINE_TEST_NIMCLIENT_MOCK" = "true" ]; then >>> >>> There is a -n test but also an = test so I would expect that expression >>> to give shell errors and exit with an error there. >>> >>> Looks like a bug on our side in MPF for this nimclient module. >>> >>> I have logged a ticket and will see if I can make a fix that you can try: >>> >>> https://northerntech.atlassian.net/browse/CFE-4415 >>> >>> -Craig >>> On Monday, July 8, 2024 at 8:05:19 AM UTC-5 [email protected] >>> wrote: >>> >>>> Hello, >>>> >>>> The C code you found is correct as far as I can tell. The "!= 0" >>>> condition that comes first is checking that the communication worked, not >>>> checking the actual response code which is set in the response variable >>>> which is an Rlist and we get the api_version from the first entry in that >>>> list. >>>> >>>> I will look more at this now and get back with more ideas/suggestions. >>>> >>>> -Craig >>>> >>>> On Thursday, July 4, 2024 at 9:09:51 AM UTC-5 Xander Cage wrote: >>>> >>>>> i took a look at cf-agent/package_module.c... >>>>> >>>>> static int NegotiateSupportedAPIVersion(PackageModuleWrapper *wrapper) >>>>> { >>>>> assert(wrapper); >>>>> >>>>> Log(LOG_LEVEL_DEBUG, "Getting supported API version."); >>>>> >>>>> int api_version = -1; >>>>> >>>>> Rlist *response = NULL; >>>>> if (PackageWrapperCommunicate(wrapper, "supports-api-version", "", >>>>> &response) != 0) >>>>> { >>>>> Log(LOG_LEVEL_INFO, >>>>> "Error occurred while getting supported API version."); >>>>> return -1; >>>>> } >>>>> >>>>> if (response) >>>>> { >>>>> if (RlistLen(response) == 1) >>>>> { >>>>> api_version = atoi(RlistScalarValue(response)); >>>>> Log(LOG_LEVEL_DEBUG, "package wrapper API version: %d", >>>>> api_version); >>>>> } >>>>> RlistDestroy(response); >>>>> } >>>>> return api_version; >>>>> } >>>>> >>>>> >>>>> this looks somewhat "weird" to me... >>>>> >>>>> if (PackageWrapperCommunicate(wrapper, "supports-api-version", "", >>>>> &response) != 0) >>>>> >>>>> isnt the returned "1" from the module also not "0", so its always an >>>>> error except the module returns "0"? >>>>> >>>>> On Thursday, July 4, 2024 at 2:57:49 PM UTC+2 Xander Cage wrote: >>>>> >>>>>> changing the mock part to this fixes the related error...successfully >>>>>> stolen from the pksrc module... >>>>>> >>>>>> if [ -n "$CFENGINE_TEST_NIMCLIENT_MOCK" ]; then >>>>>> >>>>>> still no idea concerning the api check... >>>>>> >>>>>> On Thursday, July 4, 2024 at 2:39:17 PM UTC+2 Xander Cage wrote: >>>>>> >>>>>>> seems this part in the nimclient script is not working, hence the " >>>>>>> cat: cannot open ../../tests/unit/mock_lslpp_Lc " error... >>>>>>> >>>>>>> # Set up mock environment if necessary >>>>>>> # This is not well developed as I don't have continuous access to >>>>>>> aix and nim >>>>>>> # nor am I an expert >>>>>>> CFENGINE_TEST_NIMCLIENT_MOCK=false >>>>>>> if [ -n "$CFENGINE_TEST_NIMCLIENT_MOCK" = "true" ]; then >>>>>>> list_installed_packages() { >>>>>>> cat ../../tests/unit/mock_lslpp_Lc >>>>>>> } >>>>>>> nimclient_showres() { >>>>>>> # This lists the AVAILABLE packages in the nim repo >>>>>>> cat ../../tests/unit/mock_nimclient_showres >>>>>>> } >>>>>>> nimclient_install_package() { >>>>>>> # Ugh, not sure what this should do to mock. I think that >>>>>>> nimclient >>>>>>> # return codes kind of suck, might need to parse the output? >>>>>>> echo nimclient -o cust -a lpp_source=${lpp_source} -a >>>>>>> filesets=\"${Name}\" >&2 >>>>>>> } >>>>>>> remove_package() { >>>>>>> echo installp -u "${Name}" >&2 >>>>>>> } >>>>>>> else >>>>>>> list_installed_packages() { >>>>>>> lslpp -Lc >>>>>>> } >>>>>>> nimclient_showres() { >>>>>>> /usr/sbin/nimclient -o showres -a resource=${lpp_source} -a >>>>>>> installp_flags=L >>>>>>> } >>>>>>> nimclient_install_package() { >>>>>>> /usr/sbin/nimclient -o cust -a lpp_source=${lpp_source} -a >>>>>>> filesets=\"${Name}\" 1>&2 >>>>>>> } >>>>>>> remove_package() { >>>>>>> installp -u "${Name}" 1>&2 >>>>>>> } >>>>>>> fi >>>>>>> >>>>>>> no idea why CFENGINE_TEST_NIMCLIENT_MOCK=false is not evaluated >>>>>>> correctly... >>>>>>> >>>>>>> same for this part... >>>>>>> >>>>>>> supports_api_version () { >>>>>>> echo 1 >>>>>>> } >>>>>>> >>>>>>> should work, but fails...strange >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> On Thursday, July 4, 2024 at 12:20:43 PM UTC+2 Xander Cage wrote: >>>>>>> >>>>>>>> fun fact...i noticed on some clients the error changed to this >>>>>>>> after upgrading binaries... >>>>>>>> >>>>>>>> cat: cannot open ../../tests/unit/mock_lslpp_Lc >>>>>>>> >>>>>>>> On Thursday, July 4, 2024 at 12:13:56 PM UTC+2 Xander Cage wrote: >>>>>>>> >>>>>>>>> upgrade binaries to 3.21.5...error persists >>>>>>>>> >>>>>>>>> On Thursday, July 4, 2024 at 11:08:06 AM UTC+2 Xander Cage wrote: >>>>>>>>> >>>>>>>>>> Hi, >>>>>>>>>> >>>>>>>>>> after upgrading masterfiles to 3.21.5 cf-agent spills this >>>>>>>>>> error... >>>>>>>>>> >>>>>>>>>> Q: ".../cf-agent" --de": error: Unsupported package module >>>>>>>>>> wrapper API version: -1 >>>>>>>>>> Q: ".../cf-agent" --de": error: Can not set up wrapper for >>>>>>>>>> module: nimclient >>>>>>>>>> >>>>>>>>>> agent is still on 3.21.4...maybe this is the root cause of this... >>>>>>>>>> >>>>>>>>>> chris >>>>>>>>>> >>>>>>>>> -- You received this message because you are subscribed to the Google Groups "help-cfengine" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/help-cfengine/22184818-41b1-4f57-a002-d1ca9e13f661n%40googlegroups.com.