Hi Mahesh, To make long DN work (e.g: long DN at @Ng token), we have to do some settings first. IMM is one of them. You can refer to ` setUpTestEnv()` @ tet_log_longDN.c for details on this.
One question, have you tried to run the added test suite #13 for verifying long DN? With this test suite, before starting test, each TC does change precondition settings to make long DN work . If you want to see the verification data, enable the environment ` LOGTEST_ENABLE_STDOUT`. E.g: # LOGTEST_ENABLE_STDOUT=1 logtest 13 Regards, Vu > -----Original Message----- > From: A V Mahesh [mailto:mahesh.va...@oracle.com] > Sent: Friday, July 8, 2016 4:00 PM > To: Vu Minh Nguyen <vu.m.ngu...@dektech.com.au>; > lennart.l...@ericsson.com > Cc: opensaf-devel@lists.sourceforge.net > Subject: Re: [PATCH 1 of 4] log: add one new option -f to saflogger tool > [#1315] > > Hi Vu, > > While validating the patch , i received following errors , do we need to > apply any other IMM patchs > > to validate this patch ? > > ============================================================== > ================ > > # Jul 8 13:03:03 SC-1 osafimmnd[23888]: NO ERR_INVALID_PARAM: RDN > attribute value > safLgStr=LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL > LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL > LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL > LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL > LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL > LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL > LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL > LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL > LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL > LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL > LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL > LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL > LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL > LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL > LLLLLLLLLLLLLLLLL > is too large: 997. Max length is 64 for SaStringT > Jul 8 13:03:03 SC-1 osaflogd[23903]: WA saImmOiRtObjectCreate_2 > returned 7 for > safLgStr=LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL > LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL > LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL > LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL > LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL > LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL > LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL > LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL > LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL > LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL > LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL > LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL > LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL > LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL > LLLLLLLLLLLLLLLLL, > parent (null) > > ============================================================== > ================ > > -AVM > > > On 7/8/2016 10:19 AM, A V Mahesh wrote: > > Hi Vu, > > > > On 7/8/2016 10:11 AM, Vu Minh Nguyen wrote: > >> I zipped all the patches in attached file, you can try to apply it in > >> the > >> meantime. Thanks. > > > > Thanks The attached patches are getting applied. > > > > -AVM > > > > On 7/8/2016 10:11 AM, Vu Minh Nguyen wrote: > >> Hi Mahesh, > >> > >> I have tried to apply these patches (copy from emails [PATCH x of 4]) to > >> latest staging and it works. > >> And I see you get failed at the first patch (saflogger tool), then I > >> guess > >> the patches you applied were broken somehow. > >> > >> Can you send me the saflogger patch (1st patch) that you used? I will > >> check > >> it to see why you get failed. > >> > >> I zipped all the patches in attached file, you can try to apply it in > >> the > >> meantime. Thanks. > >> > >> Regards, Vu > >> > >>> -----Original Message----- > >>> From: A V Mahesh [mailto:mahesh.va...@oracle.com] > >>> Sent: Friday, July 8, 2016 11:07 AM > >>> To: Vu Minh Nguyen <vu.m.ngu...@dektech.com.au>; > >>> lennart.l...@ericsson.com > >>> Cc: opensaf-devel@lists.sourceforge.net > >>> Subject: Re: [PATCH 1 of 4] log: add one new option -f to saflogger > >>> tool > >>> [#1315] > >>> > >>> Hi Vu, > >>> > >>> This patch is not being applied on latest staging , can you tell on > >>> which changesset this will cleanly appy ? > >>> > >>> > ============================================================== > >>> ==================== > >>> > >>> patching file osaf/tools/saflog/saflogger/Makefile.am > >>> Hunk #1 FAILED at 22. > >>> 1 out of 1 hunk FAILED -- saving rejects to file > >>> osaf/tools/saflog/saflogger/Makefile.am.rej > >>> patching file osaf/tools/saflog/saflogger/saf_logger.c > >>> Hunk #2 FAILED at 84. > >>> Hunk #3 FAILED at 96. > >>> Hunk #4 FAILED at 236. > >>> Hunk #5 FAILED at 259. > >>> Hunk #6 FAILED at 268. > >>> Hunk #7 FAILED at 299. > >>> Hunk #8 FAILED at 367. > >>> Hunk #9 FAILED at 411. > >>> 8 out of 9 hunks FAILED -- saving rejects to file > >>> osaf/tools/saflog/saflogger/saf_logger.c.rej > >>> > >>> > ============================================================== > >>> ==================== > >>> > >>> -AVM > >>> > >>> On 7/1/2016 4:12 PM, Vu Minh Nguyen wrote: > >>>> osaf/tools/saflog/saflogger/Makefile.am | 1 + > >>>> osaf/tools/saflog/saflogger/saf_logger.c | 90 > >>> ++++++++++++++++++++++++++----- > >>>> 2 files changed, 75 insertions(+), 16 deletions(-) > >>>> > >>>> > >>>> With app stream, saflogger used app stream DN as logFileName. > >>>> With Long DN, the app stream DN could be longer than 255 characters > in > >>> length. > >>>> This patch provides one new option -f <filename>. > >>>> This option is only applicable for app stream. > >>>> > >>>> diff --git a/osaf/tools/saflog/saflogger/Makefile.am > >>> b/osaf/tools/saflog/saflogger/Makefile.am > >>>> --- a/osaf/tools/saflog/saflogger/Makefile.am > >>>> +++ b/osaf/tools/saflog/saflogger/Makefile.am > >>>> @@ -22,6 +22,7 @@ MAINTAINERCLEANFILES = Makefile.in > >>>> bin_PROGRAMS = saflogger > >>>> > >>>> saflogger_CPPFLAGS = \ > >>>> + -DSA_EXTENDED_NAME_SOURCE \ > >>>> $(AM_CPPFLAGS) \ > >>>> -I$(top_srcdir)/osaf/tools/saflog/include > >>>> > >>>> diff --git a/osaf/tools/saflog/saflogger/saf_logger.c > >>> b/osaf/tools/saflog/saflogger/saf_logger.c > >>>> --- a/osaf/tools/saflog/saflogger/saf_logger.c > >>>> +++ b/osaf/tools/saflog/saflogger/saf_logger.c > >>>> @@ -37,8 +37,9 @@ > >>>> #include <poll.h> > >>>> #include <unistd.h> > >>>> #include <limits.h> > >>>> +#include <stdbool.h> > >>>> +#include "osaf_extended_name.h" > >>>> > >>>> -#include <saAis.h> > >>>> #include <saLog.h> > >>>> > >>>> #include "saf_error.h" > >>>> @@ -83,7 +84,7 @@ static void usage(void) > >>>> printf("\t%s - write log record to log stream\n", progname); > >>>> > >>>> printf("\nSYNOPSIS\n"); > >>>> - printf("\t%s [options] [message ...]\n", progname); > >>>> + printf("\t%s [options] [-f <FILENAME>] [message ...]\n", > >>>> progname); > >>>> > >>>> printf("\nDESCRIPTION\n"); > >>>> printf("\t%s is a SAF LOG client used to write a log record > >>>> into a > >>> specified log stream.\n", progname); > >>>> @@ -95,11 +96,16 @@ static void usage(void) > >>>> printf("\t-n or --notification write to notification > >> stream\n"); > >>>> printf("\t-y or --system write to system stream > >> (default)\n"); > >>>> printf("\t-a NAME or --application=NAME write to application > >>> stream NAME (create it if not exist)\n"); > >>>> + printf("\t-f FILENAME write log record to > >> FILENAME\n"); > >>>> printf("\t-s SEV or --severity=SEV use severity SEV, > >>>> default > >>> INFO\n"); > >>>> printf("\t\tvalid severity names: emerg, alert, crit, error, > >>>> warn, > >>> notice, info\n"); > >>>> + printf("\nNOTES\n"); > >>>> + printf("\t1) -f is only applicable for app stream.\n"); > >>>> + printf("\t1) <FILENAME> length must not be longer than 255 > >>> characters.\n"); > >>>> printf("\nEXAMPLES\n"); > >>>> printf("\tsaflogger -a safLgStrCfg=Test \"Hello world\"\n"); > >>>> + printf("\tsaflogger -a safLgStrCfg=Test -f testLogFile \"Hello > >>> world\"\n"); > >>>> printf("\tsaflogger -s crit \"I am going down\"\n\n"); > >>>> } > >>>> > >>>> @@ -230,7 +236,7 @@ static SaLogSeverityT get_severity(char > >>>> int main(int argc, char *argv[]) > >>>> { > >>>> int c; > >>>> - SaNameT logStreamName = {.length = 0 }; > >>>> + SaNameT logStreamName; > >>>> SaLogFileCreateAttributesT_2 *logFileCreateAttributes = NULL; > >>>> SaLogFileCreateAttributesT_2 appLogFileCreateAttributes; > > >>>> SaLogStreamOpenFlagsT logStreamOpenFlags = 0; > >>>> @@ -253,6 +259,7 @@ int main(int argc, char *argv[]) > >>>> SaLogStreamHandleT logStreamHandle; > >>>> SaSelectionObjectT selectionObject; > >>>> unsigned int wait_time; > >>>> + bool is_appstream = false, f_opt = false; > >>>> > >>>> srandom(getpid()); > >>>> > >>>> @@ -261,11 +268,23 @@ int main(int argc, char *argv[]) > >>>> exit(EXIT_FAILURE); > >>>> } > >>>> > >>>> - sprintf((char *)logSvcUsrName.value, "%s.%u@%s", "saflogger", > >>> getpid(), hostname); > >>>> - logSvcUsrName.length = strlen((char *)logSvcUsrName.value); > >>>> + if (setenv("SA_ENABLE_EXTENDED_NAMES", "1", 1) != 0) { > >>>> + fprintf(stderr, "Failed to enable Extended SaNameT"); > >>>> + exit(EXIT_FAILURE); > >>>> + } > >>>> + > >>>> + /** > >>>> + * osaf_extended_name_init() is added in case osaf_extended_* > >>>> APIs > >>>> + * are used before saLogInitialize(). > >>>> + */ > >>>> + osaf_extended_name_init(); > >>>> + > >>>> + char svcUserName[kOsafMaxDnLength]; > >>>> + snprintf(svcUserName, sizeof(svcUserName), "%s.%u@%s", > >>> "saflogger", getpid(), hostname); > >>>> + saAisNameLend(svcUserName, &logSvcUsrName); > >>>> > >>>> /* Setup default values */ > >>>> - strcpy((char *)logStreamName.value, SA_LOG_STREAM_SYSTEM); > >>> /* system stream is default */ > >>>> + saAisNameLend(SA_LOG_STREAM_SYSTEM, &logStreamName); > >>>> logRecord.logTimeStamp = SA_TIME_UNKNOWN; /* LOG > >>> service should supply timestamp */ > >>>> logRecord.logHdrType = SA_LOG_GENERIC_HEADER; > >>>> logRecord.logHeader.genericHdr.notificationClassId = NULL; > >>>> @@ -280,32 +299,58 @@ int main(int argc, char *argv[]) > >>>> appLogFileCreateAttributes.maxFilesRotated = > >>> DEFAULT_MAX_FILES_ROTATED; > >>>> /* Use built-in log file format in log server for app stream */ > >>>> appLogFileCreateAttributes.logFileFmt = NULL; > >>>> + appLogFileCreateAttributes.logFileName = NULL; > >>>> > >>>> while (1) { > >>>> - c = getopt_long(argc, argv, "?hlnya:s:", long_options, > >> NULL); > >>>> + c = getopt_long(argc, argv, "?hlnya:s:f:", long_options, > >>> NULL); > >>>> if (c == -1) { > >>>> break; > >>>> } > >>>> switch (c) { > >>>> case 'l': > >>>> - strcpy((char *)logStreamName.value, > >>> SA_LOG_STREAM_ALARM); > >>>> + saAisNameLend(SA_LOG_STREAM_ALARM, > >>> &logStreamName); > >>>> logRecord.logHdrType = SA_LOG_NTF_HEADER; > >>>> break; > >>>> case 'n': > >>>> - strcpy((char *)logStreamName.value, > >>> SA_LOG_STREAM_NOTIFICATION); > >>>> + saAisNameLend(SA_LOG_STREAM_NOTIFICATION, > >>> &logStreamName); > >>>> logRecord.logHdrType = SA_LOG_NTF_HEADER; > >>>> break; > >>>> case 'y': > >>>> - strcpy((char *)logStreamName.value, > >>> SA_LOG_STREAM_SYSTEM); > >>>> + saAisNameLend(SA_LOG_STREAM_SYSTEM, > >>> &logStreamName); > >>>> break; > >>>> case 'a': > >>>> + logFileCreateAttributes = > >>> &appLogFileCreateAttributes; > >>>> + logStreamOpenFlags = SA_LOG_STREAM_CREATE; > >>>> + > >>>> + char tmpDn[kOsafMaxDnLength + 8 + 1] = {0}; > >>>> if (strstr(optarg, "safLgStr")) > >>>> - strcpy((char *)logStreamName.value, > >>> optarg); > >>>> + strncpy(tmpDn, optarg, sizeof(tmpDn) - 1); > >>>> else > >>>> - sprintf((char *)logStreamName.value, > >>> "safLgStr=%s", optarg); > >>>> - logFileCreateAttributes = > >>> &appLogFileCreateAttributes; > >>>> + snprintf(tmpDn, sizeof(tmpDn), > >>> "safLgStr=%s", optarg); > >>>> + > >>>> + if (strlen(tmpDn) > kOsafMaxDnLength) { > >>>> + fprintf(stderr, "Application stream DN is so > >>> long (%lu). Max: %d \n", > >>>> + strlen(optarg), kOsafMaxDnLength); > >>>> + fprintf(stderr, "Shut down app. \n"); > >>>> + exit(EXIT_FAILURE); > >>>> + } > >>>> + saAisNameLend(tmpDn, &logStreamName); > >>>> + is_appstream = true; > >>>> + if (f_opt == false) > >>>> + appLogFileCreateAttributes.logFileName = > >>> strdup(optarg); > >>>> + break; > >>>> + case 'f': > >>>> + if (f_opt == true) { > >>>> + fprintf(stderr, "More than one option -f are > >>> given.\n"); > >>>> + fprintf(stderr, "Try saflogger -h for more > >>> information.\n"); > >>>> + exit(EXIT_FAILURE); > >>>> + > >>>> + } > >>>> + if (appLogFileCreateAttributes.logFileName != NULL) > >>>> + > >>> free(appLogFileCreateAttributes.logFileName); > >>>> + > >>>> appLogFileCreateAttributes.logFileName = > >>> strdup(optarg); > >>>> - logStreamOpenFlags = SA_LOG_STREAM_CREATE; > >>>> + f_opt = true; > >>>> break; > >>>> case 's': > >>>> logRecord.logHeader.genericHdr.logSeverity = > >>> get_severity(optarg); > >>>> @@ -322,6 +367,21 @@ int main(int argc, char *argv[]) > >>>> } > >>>> } > >>>> > >>>> + if (f_opt == true && is_appstream == false) { > >>>> + fprintf(stderr, "Note: -f is only applicaple for app > >> stream.\n"); > >>>> + fprintf(stderr, "Try saflogger -h for more information.\n"); > >>>> + exit(EXIT_FAILURE); > >>>> + } > >>>> + > >>>> + if (appLogFileCreateAttributes.logFileName != NULL && > >>> is_appstream == true) { > >>>> + size_t len = 0; > >>>> + if ((len = strlen(appLogFileCreateAttributes.logFileName)) > > >>> 255) { > >>>> + fprintf(stderr, "FILENAME is too long (%zu) (max: > >> 255 > >>> characters).\n", len); > >>>> + fprintf(stderr, "Try saflogger -h for more > >>> information.\n"); > >>>> + exit(EXIT_FAILURE); > >>>> + } > >>>> + } > >>>> + > >>>> if (optind >= argc) { > >>>> /* No body of log record */ > >>>> } > >>>> @@ -351,8 +411,6 @@ int main(int argc, char *argv[]) > >>>> exit(EXIT_FAILURE); > >>>> } > >>>> > >>>> - logStreamName.length = strlen((char *)logStreamName.value); > >>>> - > >>>> if (logRecord.logHdrType == SA_LOG_NTF_HEADER) { > >>>> /* Setup some valid values */ > >>>> logRecord.logHeader.ntfHdr.notificationId = > >>> SA_NTF_IDENTIFIER_UNUSED; > > > ------------------------------------------------------------------------------ Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San Francisco, CA to explore cutting-edge tech and listen to tech luminaries present their vision of the future. This family event has something for everyone, including kids. Get more information and register today. http://sdm.link/attshape _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel