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