summaryrefslogtreecommitdiffstats
path: root/veslibrary/ves_clibrary/evel/evel-test-collector
diff options
context:
space:
mode:
Diffstat (limited to 'veslibrary/ves_clibrary/evel/evel-test-collector')
-rw-r--r--veslibrary/ves_clibrary/evel/evel-test-collector/LICENSE.md2
-rw-r--r--veslibrary/ves_clibrary/evel/evel-test-collector/code/collector/LICENSE.TXT2
-rw-r--r--veslibrary/ves_clibrary/evel/evel-test-collector/code/collector/collector.py71
-rw-r--r--veslibrary/ves_clibrary/evel/evel-test-collector/code/collector/rest_dispatcher.py28
-rw-r--r--veslibrary/ves_clibrary/evel/evel-test-collector/config/collector.conf10
-rw-r--r--veslibrary/ves_clibrary/evel/evel-test-collector/docs/att_interface_definition/event_format_updated.json7
-rw-r--r--veslibrary/ves_clibrary/evel/evel-test-collector/docs/ssl_certsample15
7 files changed, 100 insertions, 35 deletions
diff --git a/veslibrary/ves_clibrary/evel/evel-test-collector/LICENSE.md b/veslibrary/ves_clibrary/evel/evel-test-collector/LICENSE.md
index 8ed230a..a6642dc 100644
--- a/veslibrary/ves_clibrary/evel/evel-test-collector/LICENSE.md
+++ b/veslibrary/ves_clibrary/evel/evel-test-collector/LICENSE.md
@@ -13,8 +13,8 @@
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
*
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
****************************************************************************/
diff --git a/veslibrary/ves_clibrary/evel/evel-test-collector/code/collector/LICENSE.TXT b/veslibrary/ves_clibrary/evel/evel-test-collector/code/collector/LICENSE.TXT
index b9c68c6..16285cd 100644
--- a/veslibrary/ves_clibrary/evel/evel-test-collector/code/collector/LICENSE.TXT
+++ b/veslibrary/ves_clibrary/evel/evel-test-collector/code/collector/LICENSE.TXT
@@ -17,6 +17,6 @@
* limitations under the License.
* ============LICENSE_END============================================
*
- * ECOMP is trademark and service mark of AT&T Intellectual Property.
+ * ECOMP is trademark and service mark of AT&T Intellectual Property.
*
*/
diff --git a/veslibrary/ves_clibrary/evel/evel-test-collector/code/collector/collector.py b/veslibrary/ves_clibrary/evel/evel-test-collector/code/collector/collector.py
index 8e702aa..58bebc7 100644
--- a/veslibrary/ves_clibrary/evel/evel-test-collector/code/collector/collector.py
+++ b/veslibrary/ves_clibrary/evel/evel-test-collector/code/collector/collector.py
@@ -7,20 +7,20 @@ Only intended for test purposes.
License
-------
- * ===================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
- * ===================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ ===================================================================
+ Copyright (c) 2017 AT&T Intellectual Property. All rights reserved.
+ ===================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
'''
from rest_dispatcher import PathDispatcher, set_404_content
@@ -38,6 +38,7 @@ import string
import json
import jsonschema
from functools import partial
+import ssl
_hello_resp = '''\
<html>
@@ -407,7 +408,8 @@ USAGE
defaults = {'log_file': 'collector.log',
'vel_port': '12233',
'vel_path': '',
- 'vel_topic_name': ''
+ 'vel_topic_name': '',
+ 'transport_prot': 'http'
}
overrides = {}
config = ConfigParser.SafeConfigParser(defaults)
@@ -419,9 +421,16 @@ USAGE
log_file = config.get(config_section, 'log_file', vars=overrides)
vel_port = config.get(config_section, 'vel_port', vars=overrides)
vel_path = config.get(config_section, 'vel_path', vars=overrides)
+ transport_prot = config.get(config_section, 'protocol', vars=overrides)
vel_topic_name = config.get(config_section,
'vel_topic_name',
vars=overrides)
+
+ if (transport_prot.lower() != 'http' and transport_prot.lower() != 'https' ):
+ logger.error('Invalid Transport must be http or https ({0}) '
+ 'specified'.format(transport_prot))
+ raise RuntimeError('Invalid Transport protcol specified ({0}) '
+ 'specified'.format(transport_prot))
global vel_username
global vel_password
vel_username = config.get(config_section,
@@ -457,6 +466,28 @@ USAGE
handler = logging.handlers.RotatingFileHandler(log_file,
maxBytes=1000000,
backupCount=10)
+
+ if (transport_prot.lower() == 'https' ):
+ transport_prot = transport_prot.lower()
+ ca_file = config.get(config_section, 'ca_file', vars=overrides)
+ cert_file = config.get(config_section, 'cert_file', vars=overrides)
+ key_file = config.get(config_section, 'key_file', vars=overrides)
+ if not os.path.exists(ca_file):
+ logger.error('Event Listener SSL CA File ({0}) not found. '
+ 'No validation will be undertaken.'.format(ca_file))
+ raise RuntimeError('Invalid CA file ({0}) '
+ 'specified'.format(ca_file))
+ if not os.path.exists(cert_file):
+ logger.error('Event Listener SSL Certificate File ({0}) not found. '
+ 'No validation will be undertaken.'.format(cert_file))
+ raise RuntimeError('Invalid Certificate file ({0}) '
+ 'specified'.format(cert_file))
+ if not os.path.exists(key_file):
+ logger.error('Event Listener SSL Key File ({0}) not found. '
+ 'No validation will be undertaken.'.format(key_file))
+ raise RuntimeError('Invalid Key file ({0}) '
+ 'specified'.format(key_file))
+
if (platform.system() == 'Windows'):
date_format = '%Y-%m-%d %H:%M:%S'
else:
@@ -472,6 +503,7 @@ USAGE
# Log the details of the configuration.
#----------------------------------------------------------------------
logger.debug('Log file = {0}'.format(log_file))
+ logger.debug('Event Listener Transport = {0}'.format(transport_prot))
logger.debug('Event Listener Port = {0}'.format(vel_port))
logger.debug('Event Listener Path = {0}'.format(vel_path))
logger.debug('Event Listener Topic = {0}'.format(vel_topic_name))
@@ -562,11 +594,16 @@ USAGE
else '')
throttle_url = '/{0}eventListener/v{1}/clientThrottlingState'.\
format(vel_path, api_version)
+ batch_url = '/{0}eventListener/v{1}/eventBatch'.\
+ format(vel_path, api_version)
set_404_content(root_url)
dispatcher = PathDispatcher()
vendor_event_listener = partial(listener, schema = vel_schema)
dispatcher.register('GET', root_url, vendor_event_listener)
dispatcher.register('POST', root_url, vendor_event_listener)
+ batch_event_listener = partial(listener, schema = vel_schema)
+ dispatcher.register('GET', batch_url, batch_event_listener)
+ dispatcher.register('POST', batch_url, batch_event_listener)
vendor_throttle_listener = partial(listener, schema = throttle_schema)
dispatcher.register('GET', throttle_url, vendor_throttle_listener)
dispatcher.register('POST', throttle_url, vendor_throttle_listener)
@@ -582,6 +619,10 @@ USAGE
dispatcher.register('GET', test_control_url, test_control_listener)
httpd = make_server('', int(vel_port), dispatcher)
+ if (transport_prot == 'https' ):
+ #httpd.socket = ssl.wrap_socket(httpd.socket, server_side=True, ca_certs = "../../../sslcerts/test.ca.pem", certfile="../../../sslcerts/www.testsite.com.crt", keyfile="../../../sslcerts/www.testsite.com.key", cert_reqs=ssl.CERT_REQUIRED, ssl_version=ssl.PROTOCOL_TLSv1_2)
+ logger.debug('Invoking HTTP Secure mode : ca file {0} cert file {1} key file {2} '.format(ca_file,cert_file,key_file))
+ httpd.socket = ssl.wrap_socket(httpd.socket, server_side=True, ca_certs=ca_file, certfile=cert_file, keyfile=key_file, cert_reqs=ssl.CERT_REQUIRED, ssl_version=ssl.PROTOCOL_TLSv1_2)
print('Serving on port {0}...'.format(vel_port))
httpd.serve_forever()
diff --git a/veslibrary/ves_clibrary/evel/evel-test-collector/code/collector/rest_dispatcher.py b/veslibrary/ves_clibrary/evel/evel-test-collector/code/collector/rest_dispatcher.py
index e3b51aa..e00465a 100644
--- a/veslibrary/ves_clibrary/evel/evel-test-collector/code/collector/rest_dispatcher.py
+++ b/veslibrary/ves_clibrary/evel/evel-test-collector/code/collector/rest_dispatcher.py
@@ -7,20 +7,20 @@ Only intended for test purposes.
License
-------
- * ===================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
- * ===================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ ===================================================================
+ Copyright (c) 2017 AT&T Intellectual Property. All rights reserved.
+ ===================================================================
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
'''
diff --git a/veslibrary/ves_clibrary/evel/evel-test-collector/config/collector.conf b/veslibrary/ves_clibrary/evel/evel-test-collector/config/collector.conf
index 3e23c59..6654428 100644
--- a/veslibrary/ves_clibrary/evel/evel-test-collector/config/collector.conf
+++ b/veslibrary/ves_clibrary/evel/evel-test-collector/config/collector.conf
@@ -60,6 +60,11 @@ vel_path = vendor_event_listener/
vel_username =
vel_password =
vel_topic_name = example_vnf
+protocol = HTTP
+#protocol = HTTPS
+#ca_file = ../../../sslcerts/test.ca.pem
+#cert_file = ../../../sslcerts/www.testsite.com.crt
+#key_file = ../../../sslcerts/www.testsite.com.key
#------------------------------------------------------------------------------
# Settings to be used when running in a windows test environment rather than
@@ -96,4 +101,9 @@ vel_path =
vel_username = will
vel_password = pill
vel_topic_name =
+protocol = HTTP
+#protocol = HTTPS
+#ca_file = ../../../sslcerts/test.ca.pem
+#cert_file = ../../../sslcerts/www.testsite.com.crt
+#key_file = ../../../sslcerts/www.testsite.com.key
diff --git a/veslibrary/ves_clibrary/evel/evel-test-collector/docs/att_interface_definition/event_format_updated.json b/veslibrary/ves_clibrary/evel/evel-test-collector/docs/att_interface_definition/event_format_updated.json
index 82339b0..ccfcd25 100644
--- a/veslibrary/ves_clibrary/evel/evel-test-collector/docs/att_interface_definition/event_format_updated.json
+++ b/veslibrary/ves_clibrary/evel/evel-test-collector/docs/att_interface_definition/event_format_updated.json
@@ -10,7 +10,6 @@
"description": "You may not use this file except in compliance with the License.You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0",
"type": "string"
},
- "licenseLink": "http://www.apache.org/licenses/LICENSE-2.0",
"condition1": {
"description": "Unless required by applicable law or agreed to in writing, software 13 * distributed under the License is distributed on an AS IS BASIS,",
"type": "string"
@@ -1341,7 +1340,7 @@
}
}
},
- "required": [ "name", "measurements" ]
+ "required": [ "name", "arrayOfFields" ]
},
"otherFields": {
"description": "fields for events belonging to the 'other' domain of the commonEventHeader domain enumeration",
@@ -1693,11 +1692,11 @@
"type": "string"
},
"vfModuleName": {
- "description": "ASDC vfModuleName for the vfModule generating the event",
+ "description": "SDC vfModuleName for the vfModule generating the event",
"type": "string"
},
"vnfName": {
- "description": "ASDC modelName for the VNF generating the event",
+ "description": "SDC modelName for the VNF generating the event",
"type": "string"
}
},
diff --git a/veslibrary/ves_clibrary/evel/evel-test-collector/docs/ssl_certsample b/veslibrary/ves_clibrary/evel/evel-test-collector/docs/ssl_certsample
new file mode 100644
index 0000000..f828177
--- /dev/null
+++ b/veslibrary/ves_clibrary/evel/evel-test-collector/docs/ssl_certsample
@@ -0,0 +1,15 @@
+# Generate CA key and certificate
+openssl genrsa -des3 -out test.ca.key 8192
+openssl req -new -key test.ca.key -x509 -days 30 -out test.ca.crt
+
+# Generate server key and certificate
+openssl genrsa -out www.testsite.com.key 1024
+openssl req -new -key www.testsite.com.key -out www.testsite.com.csr
+openssl x509 -req -days 30 -in www.testsite.com.csr -CA test.ca.crt -CAkey test.ca.key -CAcreateserial -out www.testsite.com.crt
+
+# Generate client key and certificate
+openssl genrsa -out testclient.key 1024
+openssl req -new -key testclient.key -out testclient.csr
+openssl x509 -req -days 30 -in testclient.csr -CA test.ca.crt -CAkey test.ca.key -CAcreateserial -out testclient.crt
+
+openssl pkcs12 -export -clcerts -in testclient.crt -inkey testclient.key -out testclient.p12