639a7c6ef4e4c5abdcc22827256c2b89711c9ffb
[demo.git] / vnfs / vCPE / vpp-ves-agent-for-vgmux / src / patches / vCPE-vG-MUX-libevel-fixup.patch
1 diff --git a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_event.c b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_event.c
2 index ced29b2..892e4b6 100644
3 --- a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_event.c
4 +++ b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_event.c
5 @@ -166,7 +166,8 @@ void evel_init_header(EVENT_HEADER * const header,const char *const eventname)
6    header->last_epoch_microsec = tv.tv_usec + 1000000 * tv.tv_sec;
7    header->priority = EVEL_PRIORITY_NORMAL;
8    header->reporting_entity_name = strdup(openstack_vm_name());
9 -  header->source_name = strdup(openstack_vm_name());
10 +  /* header->source_name = strdup(openstack_vm_name()); */
11 +  header->source_name = strdup(openstack_vnf_id()); /* vCPE quick hack */
12    header->sequence = event_sequence;
13    header->start_epoch_microsec = header->last_epoch_microsec;
14    header->major_version = EVEL_HEADER_MAJOR_VERSION;
15 @@ -180,7 +181,8 @@ void evel_init_header(EVENT_HEADER * const header,const char *const eventname)
16    evel_init_option_string(&header->nfcnaming_code);
17    evel_init_option_string(&header->nfnaming_code);
18    evel_force_option_string(&header->reporting_entity_id, openstack_vm_uuid());
19 -  evel_force_option_string(&header->source_id, openstack_vm_uuid());
20 +  /* evel_force_option_string(&header->source_id, openstack_vm_uuid()); */
21 +  evel_force_option_string(&header->source_id, openstack_vnf_id()); /* vCPE quick hack */
22    evel_init_option_intheader(&header->internal_field);
23  
24    EVEL_EXIT();
25 @@ -215,7 +217,8 @@ void evel_init_header_nameid(EVENT_HEADER * const header,const char *const event
26    header->last_epoch_microsec = tv.tv_usec + 1000000 * tv.tv_sec;
27    header->priority = EVEL_PRIORITY_NORMAL;
28    header->reporting_entity_name = strdup(openstack_vm_name());
29 -  header->source_name = strdup(openstack_vm_name());
30 +  /* header->source_name = strdup(openstack_vm_name()); */
31 +  header->source_name = strdup(openstack_vnf_id()); /* vCPE quick hack */
32    header->sequence = event_sequence;
33    header->start_epoch_microsec = header->last_epoch_microsec;
34    header->major_version = EVEL_HEADER_MAJOR_VERSION;
35 @@ -229,7 +232,8 @@ void evel_init_header_nameid(EVENT_HEADER * const header,const char *const event
36    evel_init_option_string(&header->nfcnaming_code);
37    evel_init_option_string(&header->nfnaming_code);
38    evel_force_option_string(&header->reporting_entity_id, openstack_vm_uuid());
39 -  evel_force_option_string(&header->source_id, openstack_vm_uuid());
40 +  /* evel_force_option_string(&header->source_id, openstack_vm_uuid()); */
41 +  evel_force_option_string(&header->source_id, openstack_vnf_id()); /* vCPE quick hack */
42    evel_init_option_intheader(&header->internal_field);
43  
44    EVEL_EXIT();
45 diff --git a/vnfs/VES5.0/evel/evel-library/code/evel_library/metadata.c b/vnfs/VES5.0/evel/evel-library/code/evel_library/metadata.c
46 index 11fef1b..d82f282 100644
47 --- a/vnfs/VES5.0/evel/evel-library/code/evel_library/metadata.c
48 +++ b/vnfs/VES5.0/evel/evel-library/code/evel_library/metadata.c
49 @@ -59,6 +59,11 @@ static char vm_uuid[MAX_METADATA_STRING+1] = {0};
50  static char vm_name[MAX_METADATA_STRING+1] = {0};
51  
52  /**************************************************************************//**
53 + * ID of the VNF extracted from the OpenStack metadata service.
54 + *****************************************************************************/
55 +static char vnf_id[MAX_METADATA_STRING+1] = {0};
56 +
57 +/**************************************************************************//**
58   * How many metadata elements we allow for in the retrieved JSON.
59   *****************************************************************************/
60  static const int MAX_METADATA_TOKENS = 128;
61 @@ -289,6 +294,19 @@ EVEL_ERR_CODES openstack_metadata(int verbosity)
62      {
63        EVEL_DEBUG("VM Name: %s", vm_name);
64      }
65 +    if (json_get_string(rx_chunk.memory,
66 +                                  tokens,
67 +                                  json_token_count,
68 +                                  "vnf_id",
69 +                                  vnf_id) != EVEL_SUCCESS)
70 +    {
71 +      rc = EVEL_BAD_METADATA;
72 +      EVEL_ERROR("Failed to extract VNF ID from OpenStack metadata");
73 +    }
74 +    else
75 +    {
76 +      EVEL_DEBUG("VNF Id: %s", vnf_id);
77 +    }
78    }
79  
80  exit_label:
81 @@ -318,6 +336,9 @@ void openstack_metadata_initialize()
82    strncpy(vm_name,
83            "Dummy VM name - No Metadata available",
84            MAX_METADATA_STRING);
85 +  strncpy(vnf_id,
86 +          "Dummy VNF ID - No Metadata available",
87 +          MAX_METADATA_STRING);
88  }
89  
90  /**************************************************************************//**
91 @@ -590,3 +611,13 @@ const char *openstack_vm_uuid()
92  {
93    return vm_uuid;
94  }
95 +
96 +/**************************************************************************//**
97 + * Get the VM UUID provided by the metadata service.
98 + *
99 + * @returns VM UUID
100 + *****************************************************************************/
101 +const char *openstack_vnf_id()
102 +{
103 +  return vnf_id;
104 +}
105 diff --git a/vnfs/VES5.0/evel/evel-library/code/evel_library/metadata.h b/vnfs/VES5.0/evel/evel-library/code/evel_library/metadata.h
106 index 1ee4409..b9ed21c 100644
107 --- a/vnfs/VES5.0/evel/evel-library/code/evel_library/metadata.h
108 +++ b/vnfs/VES5.0/evel/evel-library/code/evel_library/metadata.h
109 @@ -55,4 +55,11 @@ const char *openstack_vm_name();
110   *****************************************************************************/
111  const char *openstack_vm_uuid();
112  
113 +/**************************************************************************//**
114 + * Get the VNF ID provided by the metadata service.
115 + *
116 + * @returns VNF ID
117 + *****************************************************************************/
118 +const char *openstack_vnf_id();
119 +
120  #endif