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

Reply via email to