summaryrefslogtreecommitdiffstats
path: root/ms/py-executor
diff options
context:
space:
mode:
Diffstat (limited to 'ms/py-executor')
-rw-r--r--ms/py-executor/README36
-rw-r--r--ms/py-executor/blueprints_grpc/proto/BluePrintManagement_pb2.py528
-rw-r--r--ms/py-executor/blueprints_grpc/proto/BluePrintManagement_pb2_grpc.py111
-rw-r--r--ms/py-executor/certs/py-executor/py-executor-chain.pem60
-rw-r--r--ms/py-executor/certs/py-executor/py-executor-key.pem100
-rw-r--r--ms/py-executor/certs/py-executor/py-executor.conf43
-rw-r--r--ms/py-executor/configuration-local.ini13
-rw-r--r--ms/py-executor/requirements.txt4
8 files changed, 815 insertions, 80 deletions
diff --git a/ms/py-executor/README b/ms/py-executor/README
index 919795a3c..58b4fc5c9 100644
--- a/ms/py-executor/README
+++ b/ms/py-executor/README
@@ -1,5 +1,35 @@
-Generate Server Certificates
-------------------------------
+## Install virtual environments
-openssl req -x509 -newkey rsa:4096 -keyout py-executor-key.pem -out py-executor-chain.pem -days 3650 -nodes -subj '/CN=localhost' \ No newline at end of file
+```bash
+python3 -m pip install --user virtualenv # Install virtualenv
+
+python3 -m venv venv # Create virtual environment under py-executor path
+
+source env/bin/activate # Activate the current virtualenv
+
+pip install -r requirements.txt # Install the pip packages defined in requirements.txt file
+
+```
+## Generate TLS certificates
+
+```bash
+# Generate Server Certificates( chain and private keys ) using config file
+openssl req -config py-executor.conf -new -x509 -newkey rsa:4096 -nodes -keyout py-executor-key.pem -days 3650 -out py-executor-chain.pem
+
+# Verify the certificates generated
+openssl x509 -in py-executor-chain.pem -text -noout
+```
+
+## Generate Python GRPC bindings from Proto file
+
+```bash
+cd blueprints_grpc/proto
+
+# Remove Python generated files
+rm *pb2*.py
+
+#Generate proto python
+python3 -m grpc_tools.protoc -I. --python_out=. --grpc_python_out=. *.proto
+```
+fix the python import package issues.
diff --git a/ms/py-executor/blueprints_grpc/proto/BluePrintManagement_pb2.py b/ms/py-executor/blueprints_grpc/proto/BluePrintManagement_pb2.py
new file mode 100644
index 000000000..a2e0ec227
--- /dev/null
+++ b/ms/py-executor/blueprints_grpc/proto/BluePrintManagement_pb2.py
@@ -0,0 +1,528 @@
+# Copyright © 2018-2019 AT&T Intellectual Property.
+#
+# 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.
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: BluePrintManagement.proto
+
+import sys
+_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
+from google.protobuf.internal import enum_type_wrapper
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2
+from blueprints_grpc.proto import BluePrintCommon_pb2 as BluePrintCommon__pb2
+
+
+DESCRIPTOR = _descriptor.FileDescriptor(
+ name='BluePrintManagement.proto',
+ package='org.onap.ccsdk.cds.controllerblueprints.management.api',
+ syntax='proto3',
+ serialized_options=_b('P\001'),
+ serialized_pb=_b('\n\x19\x42luePrintManagement.proto\x12\x36org.onap.ccsdk.cds.controllerblueprints.management.api\x1a\x1cgoogle/protobuf/struct.proto\x1a\x15\x42luePrintCommon.proto\"\xd3\x02\n\x14\x42luePrintUploadInput\x12V\n\x0c\x63ommonHeader\x18\x01 \x01(\x0b\x32@.org.onap.ccsdk.cds.controllerblueprints.common.api.CommonHeader\x12T\n\tfileChunk\x18\x02 \x01(\x0b\x32\x41.org.onap.ccsdk.cds.controllerblueprints.management.api.FileChunk\x12`\n\x11\x61\x63tionIdentifiers\x18\x03 \x01(\x0b\x32\x45.org.onap.ccsdk.cds.controllerblueprints.common.api.ActionIdentifiers\x12+\n\nproperties\x18\x04 \x01(\x0b\x32\x17.google.protobuf.Struct\"\xff\x01\n\x16\x42luePrintDownloadInput\x12V\n\x0c\x63ommonHeader\x18\x01 \x01(\x0b\x32@.org.onap.ccsdk.cds.controllerblueprints.common.api.CommonHeader\x12`\n\x11\x61\x63tionIdentifiers\x18\x02 \x01(\x0b\x32\x45.org.onap.ccsdk.cds.controllerblueprints.common.api.ActionIdentifiers\x12+\n\nproperties\x18\x03 \x01(\x0b\x32\x17.google.protobuf.Struct\"\xfd\x01\n\x14\x42luePrintRemoveInput\x12V\n\x0c\x63ommonHeader\x18\x01 \x01(\x0b\x32@.org.onap.ccsdk.cds.controllerblueprints.common.api.CommonHeader\x12`\n\x11\x61\x63tionIdentifiers\x18\x02 \x01(\x0b\x32\x45.org.onap.ccsdk.cds.controllerblueprints.common.api.ActionIdentifiers\x12+\n\nproperties\x18\x03 \x01(\x0b\x32\x17.google.protobuf.Struct\"\xb9\x01\n\x17\x42luePrintBootstrapInput\x12V\n\x0c\x63ommonHeader\x18\x01 \x01(\x0b\x32@.org.onap.ccsdk.cds.controllerblueprints.common.api.CommonHeader\x12\x0f\n\x07loadCBA\x18\x02 \x01(\x08\x12\x15\n\rloadModelType\x18\x03 \x01(\x08\x12\x1e\n\x16loadResourceDictionary\x18\x04 \x01(\x08\"\xc2\x02\n\x19\x42luePrintManagementOutput\x12V\n\x0c\x63ommonHeader\x18\x01 \x01(\x0b\x32@.org.onap.ccsdk.cds.controllerblueprints.common.api.CommonHeader\x12T\n\tfileChunk\x18\x02 \x01(\x0b\x32\x41.org.onap.ccsdk.cds.controllerblueprints.management.api.FileChunk\x12J\n\x06status\x18\x03 \x01(\x0b\x32:.org.onap.ccsdk.cds.controllerblueprints.common.api.Status\x12+\n\nproperties\x18\x04 \x01(\x0b\x32\x17.google.protobuf.Struct\"\x1a\n\tFileChunk\x12\r\n\x05\x63hunk\x18\x01 \x01(\x0c*4\n\x0e\x44ownloadAction\x12\n\n\x06SEARCH\x10\x00\x12\x0b\n\x07STARTER\x10\x01\x12\t\n\x05\x43LONE\x10\x02*@\n\x0cUploadAction\x12\t\n\x05\x44RAFT\x10\x00\x12\n\n\x06\x45NRICH\x10\x01\x12\x0c\n\x08VALIDATE\x10\x02\x12\x0b\n\x07PUBLISH\x10\x03*\x1b\n\x0cRemoveAction\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x32\xfa\x05\n\x1a\x42luePrintManagementService\x12\xb6\x01\n\x11\x64ownloadBlueprint\x12N.org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintDownloadInput\x1aQ.org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintManagementOutput\x12\xb2\x01\n\x0fuploadBlueprint\x12L.org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintUploadInput\x1aQ.org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintManagementOutput\x12\xb2\x01\n\x0fremoveBlueprint\x12L.org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintRemoveInput\x1aQ.org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintManagementOutput\x12\xb8\x01\n\x12\x62ootstrapBlueprint\x12O.org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintBootstrapInput\x1aQ.org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintManagementOutputB\x02P\x01\x62\x06proto3')
+ ,
+ dependencies=[google_dot_protobuf_dot_struct__pb2.DESCRIPTOR,BluePrintCommon__pb2.DESCRIPTOR,])
+
+_DOWNLOADACTION = _descriptor.EnumDescriptor(
+ name='DownloadAction',
+ full_name='org.onap.ccsdk.cds.controllerblueprints.management.api.DownloadAction',
+ filename=None,
+ file=DESCRIPTOR,
+ values=[
+ _descriptor.EnumValueDescriptor(
+ name='SEARCH', index=0, number=0,
+ serialized_options=None,
+ type=None),
+ _descriptor.EnumValueDescriptor(
+ name='STARTER', index=1, number=1,
+ serialized_options=None,
+ type=None),
+ _descriptor.EnumValueDescriptor(
+ name='CLONE', index=2, number=2,
+ serialized_options=None,
+ type=None),
+ ],
+ containing_type=None,
+ serialized_options=None,
+ serialized_start=1535,
+ serialized_end=1587,
+)
+_sym_db.RegisterEnumDescriptor(_DOWNLOADACTION)
+
+DownloadAction = enum_type_wrapper.EnumTypeWrapper(_DOWNLOADACTION)
+_UPLOADACTION = _descriptor.EnumDescriptor(
+ name='UploadAction',
+ full_name='org.onap.ccsdk.cds.controllerblueprints.management.api.UploadAction',
+ filename=None,
+ file=DESCRIPTOR,
+ values=[
+ _descriptor.EnumValueDescriptor(
+ name='DRAFT', index=0, number=0,
+ serialized_options=None,
+ type=None),
+ _descriptor.EnumValueDescriptor(
+ name='ENRICH', index=1, number=1,
+ serialized_options=None,
+ type=None),
+ _descriptor.EnumValueDescriptor(
+ name='VALIDATE', index=2, number=2,
+ serialized_options=None,
+ type=None),
+ _descriptor.EnumValueDescriptor(
+ name='PUBLISH', index=3, number=3,
+ serialized_options=None,
+ type=None),
+ ],
+ containing_type=None,
+ serialized_options=None,
+ serialized_start=1589,
+ serialized_end=1653,
+)
+_sym_db.RegisterEnumDescriptor(_UPLOADACTION)
+
+UploadAction = enum_type_wrapper.EnumTypeWrapper(_UPLOADACTION)
+_REMOVEACTION = _descriptor.EnumDescriptor(
+ name='RemoveAction',
+ full_name='org.onap.ccsdk.cds.controllerblueprints.management.api.RemoveAction',
+ filename=None,
+ file=DESCRIPTOR,
+ values=[
+ _descriptor.EnumValueDescriptor(
+ name='DEFAULT', index=0, number=0,
+ serialized_options=None,
+ type=None),
+ ],
+ containing_type=None,
+ serialized_options=None,
+ serialized_start=1655,
+ serialized_end=1682,
+)
+_sym_db.RegisterEnumDescriptor(_REMOVEACTION)
+
+RemoveAction = enum_type_wrapper.EnumTypeWrapper(_REMOVEACTION)
+SEARCH = 0
+STARTER = 1
+CLONE = 2
+DRAFT = 0
+ENRICH = 1
+VALIDATE = 2
+PUBLISH = 3
+DEFAULT = 0
+
+
+
+_BLUEPRINTUPLOADINPUT = _descriptor.Descriptor(
+ name='BluePrintUploadInput',
+ full_name='org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintUploadInput',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='commonHeader', full_name='org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintUploadInput.commonHeader', index=0,
+ number=1, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='fileChunk', full_name='org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintUploadInput.fileChunk', index=1,
+ number=2, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='actionIdentifiers', full_name='org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintUploadInput.actionIdentifiers', index=2,
+ number=3, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='properties', full_name='org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintUploadInput.properties', index=3,
+ number=4, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=139,
+ serialized_end=478,
+)
+
+
+_BLUEPRINTDOWNLOADINPUT = _descriptor.Descriptor(
+ name='BluePrintDownloadInput',
+ full_name='org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintDownloadInput',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='commonHeader', full_name='org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintDownloadInput.commonHeader', index=0,
+ number=1, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='actionIdentifiers', full_name='org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintDownloadInput.actionIdentifiers', index=1,
+ number=2, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='properties', full_name='org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintDownloadInput.properties', index=2,
+ number=3, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=481,
+ serialized_end=736,
+)
+
+
+_BLUEPRINTREMOVEINPUT = _descriptor.Descriptor(
+ name='BluePrintRemoveInput',
+ full_name='org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintRemoveInput',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='commonHeader', full_name='org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintRemoveInput.commonHeader', index=0,
+ number=1, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='actionIdentifiers', full_name='org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintRemoveInput.actionIdentifiers', index=1,
+ number=2, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='properties', full_name='org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintRemoveInput.properties', index=2,
+ number=3, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=739,
+ serialized_end=992,
+)
+
+
+_BLUEPRINTBOOTSTRAPINPUT = _descriptor.Descriptor(
+ name='BluePrintBootstrapInput',
+ full_name='org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintBootstrapInput',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='commonHeader', full_name='org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintBootstrapInput.commonHeader', index=0,
+ number=1, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='loadCBA', full_name='org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintBootstrapInput.loadCBA', index=1,
+ number=2, type=8, cpp_type=7, label=1,
+ has_default_value=False, default_value=False,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='loadModelType', full_name='org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintBootstrapInput.loadModelType', index=2,
+ number=3, type=8, cpp_type=7, label=1,
+ has_default_value=False, default_value=False,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='loadResourceDictionary', full_name='org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintBootstrapInput.loadResourceDictionary', index=3,
+ number=4, type=8, cpp_type=7, label=1,
+ has_default_value=False, default_value=False,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=995,
+ serialized_end=1180,
+)
+
+
+_BLUEPRINTMANAGEMENTOUTPUT = _descriptor.Descriptor(
+ name='BluePrintManagementOutput',
+ full_name='org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintManagementOutput',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='commonHeader', full_name='org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintManagementOutput.commonHeader', index=0,
+ number=1, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='fileChunk', full_name='org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintManagementOutput.fileChunk', index=1,
+ number=2, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='status', full_name='org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintManagementOutput.status', index=2,
+ number=3, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ _descriptor.FieldDescriptor(
+ name='properties', full_name='org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintManagementOutput.properties', index=3,
+ number=4, type=11, cpp_type=10, label=1,
+ has_default_value=False, default_value=None,
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=1183,
+ serialized_end=1505,
+)
+
+
+_FILECHUNK = _descriptor.Descriptor(
+ name='FileChunk',
+ full_name='org.onap.ccsdk.cds.controllerblueprints.management.api.FileChunk',
+ filename=None,
+ file=DESCRIPTOR,
+ containing_type=None,
+ fields=[
+ _descriptor.FieldDescriptor(
+ name='chunk', full_name='org.onap.ccsdk.cds.controllerblueprints.management.api.FileChunk.chunk', index=0,
+ number=1, type=12, cpp_type=9, label=1,
+ has_default_value=False, default_value=_b(""),
+ message_type=None, enum_type=None, containing_type=None,
+ is_extension=False, extension_scope=None,
+ serialized_options=None, file=DESCRIPTOR),
+ ],
+ extensions=[
+ ],
+ nested_types=[],
+ enum_types=[
+ ],
+ serialized_options=None,
+ is_extendable=False,
+ syntax='proto3',
+ extension_ranges=[],
+ oneofs=[
+ ],
+ serialized_start=1507,
+ serialized_end=1533,
+)
+
+_BLUEPRINTUPLOADINPUT.fields_by_name['commonHeader'].message_type = BluePrintCommon__pb2._COMMONHEADER
+_BLUEPRINTUPLOADINPUT.fields_by_name['fileChunk'].message_type = _FILECHUNK
+_BLUEPRINTUPLOADINPUT.fields_by_name['actionIdentifiers'].message_type = BluePrintCommon__pb2._ACTIONIDENTIFIERS
+_BLUEPRINTUPLOADINPUT.fields_by_name['properties'].message_type = google_dot_protobuf_dot_struct__pb2._STRUCT
+_BLUEPRINTDOWNLOADINPUT.fields_by_name['commonHeader'].message_type = BluePrintCommon__pb2._COMMONHEADER
+_BLUEPRINTDOWNLOADINPUT.fields_by_name['actionIdentifiers'].message_type = BluePrintCommon__pb2._ACTIONIDENTIFIERS
+_BLUEPRINTDOWNLOADINPUT.fields_by_name['properties'].message_type = google_dot_protobuf_dot_struct__pb2._STRUCT
+_BLUEPRINTREMOVEINPUT.fields_by_name['commonHeader'].message_type = BluePrintCommon__pb2._COMMONHEADER
+_BLUEPRINTREMOVEINPUT.fields_by_name['actionIdentifiers'].message_type = BluePrintCommon__pb2._ACTIONIDENTIFIERS
+_BLUEPRINTREMOVEINPUT.fields_by_name['properties'].message_type = google_dot_protobuf_dot_struct__pb2._STRUCT
+_BLUEPRINTBOOTSTRAPINPUT.fields_by_name['commonHeader'].message_type = BluePrintCommon__pb2._COMMONHEADER
+_BLUEPRINTMANAGEMENTOUTPUT.fields_by_name['commonHeader'].message_type = BluePrintCommon__pb2._COMMONHEADER
+_BLUEPRINTMANAGEMENTOUTPUT.fields_by_name['fileChunk'].message_type = _FILECHUNK
+_BLUEPRINTMANAGEMENTOUTPUT.fields_by_name['status'].message_type = BluePrintCommon__pb2._STATUS
+_BLUEPRINTMANAGEMENTOUTPUT.fields_by_name['properties'].message_type = google_dot_protobuf_dot_struct__pb2._STRUCT
+DESCRIPTOR.message_types_by_name['BluePrintUploadInput'] = _BLUEPRINTUPLOADINPUT
+DESCRIPTOR.message_types_by_name['BluePrintDownloadInput'] = _BLUEPRINTDOWNLOADINPUT
+DESCRIPTOR.message_types_by_name['BluePrintRemoveInput'] = _BLUEPRINTREMOVEINPUT
+DESCRIPTOR.message_types_by_name['BluePrintBootstrapInput'] = _BLUEPRINTBOOTSTRAPINPUT
+DESCRIPTOR.message_types_by_name['BluePrintManagementOutput'] = _BLUEPRINTMANAGEMENTOUTPUT
+DESCRIPTOR.message_types_by_name['FileChunk'] = _FILECHUNK
+DESCRIPTOR.enum_types_by_name['DownloadAction'] = _DOWNLOADACTION
+DESCRIPTOR.enum_types_by_name['UploadAction'] = _UPLOADACTION
+DESCRIPTOR.enum_types_by_name['RemoveAction'] = _REMOVEACTION
+_sym_db.RegisterFileDescriptor(DESCRIPTOR)
+
+BluePrintUploadInput = _reflection.GeneratedProtocolMessageType('BluePrintUploadInput', (_message.Message,), {
+ 'DESCRIPTOR' : _BLUEPRINTUPLOADINPUT,
+ '__module__' : 'BluePrintManagement_pb2'
+ # @@protoc_insertion_point(class_scope:org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintUploadInput)
+ })
+_sym_db.RegisterMessage(BluePrintUploadInput)
+
+BluePrintDownloadInput = _reflection.GeneratedProtocolMessageType('BluePrintDownloadInput', (_message.Message,), {
+ 'DESCRIPTOR' : _BLUEPRINTDOWNLOADINPUT,
+ '__module__' : 'BluePrintManagement_pb2'
+ # @@protoc_insertion_point(class_scope:org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintDownloadInput)
+ })
+_sym_db.RegisterMessage(BluePrintDownloadInput)
+
+BluePrintRemoveInput = _reflection.GeneratedProtocolMessageType('BluePrintRemoveInput', (_message.Message,), {
+ 'DESCRIPTOR' : _BLUEPRINTREMOVEINPUT,
+ '__module__' : 'BluePrintManagement_pb2'
+ # @@protoc_insertion_point(class_scope:org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintRemoveInput)
+ })
+_sym_db.RegisterMessage(BluePrintRemoveInput)
+
+BluePrintBootstrapInput = _reflection.GeneratedProtocolMessageType('BluePrintBootstrapInput', (_message.Message,), {
+ 'DESCRIPTOR' : _BLUEPRINTBOOTSTRAPINPUT,
+ '__module__' : 'BluePrintManagement_pb2'
+ # @@protoc_insertion_point(class_scope:org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintBootstrapInput)
+ })
+_sym_db.RegisterMessage(BluePrintBootstrapInput)
+
+BluePrintManagementOutput = _reflection.GeneratedProtocolMessageType('BluePrintManagementOutput', (_message.Message,), {
+ 'DESCRIPTOR' : _BLUEPRINTMANAGEMENTOUTPUT,
+ '__module__' : 'BluePrintManagement_pb2'
+ # @@protoc_insertion_point(class_scope:org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintManagementOutput)
+ })
+_sym_db.RegisterMessage(BluePrintManagementOutput)
+
+FileChunk = _reflection.GeneratedProtocolMessageType('FileChunk', (_message.Message,), {
+ 'DESCRIPTOR' : _FILECHUNK,
+ '__module__' : 'BluePrintManagement_pb2'
+ # @@protoc_insertion_point(class_scope:org.onap.ccsdk.cds.controllerblueprints.management.api.FileChunk)
+ })
+_sym_db.RegisterMessage(FileChunk)
+
+
+DESCRIPTOR._options = None
+
+_BLUEPRINTMANAGEMENTSERVICE = _descriptor.ServiceDescriptor(
+ name='BluePrintManagementService',
+ full_name='org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintManagementService',
+ file=DESCRIPTOR,
+ index=0,
+ serialized_options=None,
+ serialized_start=1685,
+ serialized_end=2447,
+ methods=[
+ _descriptor.MethodDescriptor(
+ name='downloadBlueprint',
+ full_name='org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintManagementService.downloadBlueprint',
+ index=0,
+ containing_service=None,
+ input_type=_BLUEPRINTDOWNLOADINPUT,
+ output_type=_BLUEPRINTMANAGEMENTOUTPUT,
+ serialized_options=None,
+ ),
+ _descriptor.MethodDescriptor(
+ name='uploadBlueprint',
+ full_name='org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintManagementService.uploadBlueprint',
+ index=1,
+ containing_service=None,
+ input_type=_BLUEPRINTUPLOADINPUT,
+ output_type=_BLUEPRINTMANAGEMENTOUTPUT,
+ serialized_options=None,
+ ),
+ _descriptor.MethodDescriptor(
+ name='removeBlueprint',
+ full_name='org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintManagementService.removeBlueprint',
+ index=2,
+ containing_service=None,
+ input_type=_BLUEPRINTREMOVEINPUT,
+ output_type=_BLUEPRINTMANAGEMENTOUTPUT,
+ serialized_options=None,
+ ),
+ _descriptor.MethodDescriptor(
+ name='bootstrapBlueprint',
+ full_name='org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintManagementService.bootstrapBlueprint',
+ index=3,
+ containing_service=None,
+ input_type=_BLUEPRINTBOOTSTRAPINPUT,
+ output_type=_BLUEPRINTMANAGEMENTOUTPUT,
+ serialized_options=None,
+ ),
+])
+_sym_db.RegisterServiceDescriptor(_BLUEPRINTMANAGEMENTSERVICE)
+
+DESCRIPTOR.services_by_name['BluePrintManagementService'] = _BLUEPRINTMANAGEMENTSERVICE
+
+# @@protoc_insertion_point(module_scope)
diff --git a/ms/py-executor/blueprints_grpc/proto/BluePrintManagement_pb2_grpc.py b/ms/py-executor/blueprints_grpc/proto/BluePrintManagement_pb2_grpc.py
new file mode 100644
index 000000000..423a46003
--- /dev/null
+++ b/ms/py-executor/blueprints_grpc/proto/BluePrintManagement_pb2_grpc.py
@@ -0,0 +1,111 @@
+# Copyright © 2018-2019 AT&T Intellectual Property.
+#
+# 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.
+
+# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
+import grpc
+
+from blueprints_grpc.proto import BluePrintManagement_pb2 as BluePrintManagement__pb2
+
+
+class BluePrintManagementServiceStub(object):
+ # missing associated documentation comment in .proto file
+ pass
+
+ def __init__(self, channel):
+ """Constructor.
+
+ Args:
+ channel: A grpc.Channel.
+ """
+ self.downloadBlueprint = channel.unary_unary(
+ '/org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintManagementService/downloadBlueprint',
+ request_serializer=BluePrintManagement__pb2.BluePrintDownloadInput.SerializeToString,
+ response_deserializer=BluePrintManagement__pb2.BluePrintManagementOutput.FromString,
+ )
+ self.uploadBlueprint = channel.unary_unary(
+ '/org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintManagementService/uploadBlueprint',
+ request_serializer=BluePrintManagement__pb2.BluePrintUploadInput.SerializeToString,
+ response_deserializer=BluePrintManagement__pb2.BluePrintManagementOutput.FromString,
+ )
+ self.removeBlueprint = channel.unary_unary(
+ '/org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintManagementService/removeBlueprint',
+ request_serializer=BluePrintManagement__pb2.BluePrintRemoveInput.SerializeToString,
+ response_deserializer=BluePrintManagement__pb2.BluePrintManagementOutput.FromString,
+ )
+ self.bootstrapBlueprint = channel.unary_unary(
+ '/org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintManagementService/bootstrapBlueprint',
+ request_serializer=BluePrintManagement__pb2.BluePrintBootstrapInput.SerializeToString,
+ response_deserializer=BluePrintManagement__pb2.BluePrintManagementOutput.FromString,
+ )
+
+
+class BluePrintManagementServiceServicer(object):
+ # missing associated documentation comment in .proto file
+ pass
+
+ def downloadBlueprint(self, request, context):
+ # missing associated documentation comment in .proto file
+ pass
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def uploadBlueprint(self, request, context):
+ # missing associated documentation comment in .proto file
+ pass
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def removeBlueprint(self, request, context):
+ # missing associated documentation comment in .proto file
+ pass
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+ def bootstrapBlueprint(self, request, context):
+ # missing associated documentation comment in .proto file
+ pass
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+ context.set_details('Method not implemented!')
+ raise NotImplementedError('Method not implemented!')
+
+
+def add_BluePrintManagementServiceServicer_to_server(servicer, server):
+ rpc_method_handlers = {
+ 'downloadBlueprint': grpc.unary_unary_rpc_method_handler(
+ servicer.downloadBlueprint,
+ request_deserializer=BluePrintManagement__pb2.BluePrintDownloadInput.FromString,
+ response_serializer=BluePrintManagement__pb2.BluePrintManagementOutput.SerializeToString,
+ ),
+ 'uploadBlueprint': grpc.unary_unary_rpc_method_handler(
+ servicer.uploadBlueprint,
+ request_deserializer=BluePrintManagement__pb2.BluePrintUploadInput.FromString,
+ response_serializer=BluePrintManagement__pb2.BluePrintManagementOutput.SerializeToString,
+ ),
+ 'removeBlueprint': grpc.unary_unary_rpc_method_handler(
+ servicer.removeBlueprint,
+ request_deserializer=BluePrintManagement__pb2.BluePrintRemoveInput.FromString,
+ response_serializer=BluePrintManagement__pb2.BluePrintManagementOutput.SerializeToString,
+ ),
+ 'bootstrapBlueprint': grpc.unary_unary_rpc_method_handler(
+ servicer.bootstrapBlueprint,
+ request_deserializer=BluePrintManagement__pb2.BluePrintBootstrapInput.FromString,
+ response_serializer=BluePrintManagement__pb2.BluePrintManagementOutput.SerializeToString,
+ ),
+ }
+ generic_handler = grpc.method_handlers_generic_handler(
+ 'org.onap.ccsdk.cds.controllerblueprints.management.api.BluePrintManagementService', rpc_method_handlers)
+ server.add_generic_rpc_handlers((generic_handler,))
diff --git a/ms/py-executor/certs/py-executor/py-executor-chain.pem b/ms/py-executor/certs/py-executor/py-executor-chain.pem
index 30f09dfea..98c4f39ba 100644
--- a/ms/py-executor/certs/py-executor/py-executor-chain.pem
+++ b/ms/py-executor/certs/py-executor/py-executor-chain.pem
@@ -1,27 +1,37 @@
-----BEGIN CERTIFICATE-----
-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
+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
+3w==
-----END CERTIFICATE-----
diff --git a/ms/py-executor/certs/py-executor/py-executor-key.pem b/ms/py-executor/certs/py-executor/py-executor-key.pem
index 830a3ae21..9407765b5 100644
--- a/ms/py-executor/certs/py-executor/py-executor-key.pem
+++ b/ms/py-executor/certs/py-executor/py-executor-key.pem
@@ -1,52 +1,52 @@
-----BEGIN PRIVATE KEY-----
-MIIJQgIBADANBgkqhkiG9w0BAQEFAASCCSwwggkoAgEAAoICAQCsc4d6qfbW+GSM
-p+XURoLXtSAbbehoBXL2beSzqQNW6e+Q9IVtSPZst8VRjUXelFzMm7VpS9jhiXOP
-Z5KKUOD0GVuNQc54VpwtHt7t9L5wS9OvdnLijnMIkc0iUvC6+RcqHSfbNC2Tb+a8
-jLwojmtRCeY/MyCnmqYpD+U3b6Eue89VpMOIfmDuTqSRRBYNVO72hq7FI3UD8+zR
-Eg7htfzjJjG14Ec5iVMDxJA1FlwtXFnZxDHgbLjEVjTTR/9Wm1eUaJ4oWRt3gG/v
-nJNa+GwN4w/My+j/5/n/YpNh6GeQrHxBl/SL/SAFBshlwozr4K4Kav5MqRKyhCAC
-V4SsdhKJUEDtvrtukJvh/ZDW8jdNbFJAljm8UucZGbJrZl6G7XB3WteI7rezo0mL
-0NMBZIT3nQSMEpefKUFZFiE5lYvIk3UuChqIM0xdgV4INwLRHZdc1TtiGaBJV05y
-3Klo5gaUgNGbHP26zfub5TydiMrOA5W2mUvMkG2oit9aqnbaZBLDt17cCKzpzcVF
-5uNUng3j6sQvpTt3S4L28TvKUMAfpecQqvxMoxG0/9HZuv2z+U+LLVVsS07yJPIG
-MLcq1LMM++8LwD1MupcoShjNOq/lUOL6hIMfLOIfxt8Kv8WykVzv6yjKEIurjkwM
-ipq4kvr9J7FFi54kGr7uvXWQRHDFJwIDAQABAoICADepPmRAMbTnDYU8t/jRHXBE
-PO29htL0V0vk4nl+pt5JuZJe6iYA89DZa+3LnG6gEmfUJjSrT4BUXiE+O9U7D7CZ
-8qvgPqUmx1fk6+2AHmuefd/XanNnqQduD/jxLlQbC/gC2xdsev1ok9/tyNmKRmcs
-u81QUkzmpJUCVWiUNkELozswaBBJQj4I0iM1B60b6dlWVVi5/g3dkGVW38jIdaxX
-apoansKaaVoA+s63vd7CPRoFsleOoAB3FqvPREIO97CmJ848HJpwsTB0qDcnkbDV
-xgbDFhxrIozko09ptOvEUILXag45EDmvG8WEivmjVml0aUoTFD7cWHyJBQCpR4fU
-5W9mYd4Rrzbmpb+LGYdNyrp3wo3C7dJ7/ffBMQxmXTdMZkcxorxj4BRG3oACRQ1u
-Ff1iUruZzIIDtEkrC9hc5QpLlDf9b1obm8L9sxf1QmTt59o5oFG40GPwPP19GXwE
-l2faHwho2jYLM9rhuSsK/5sSmUshPNQYmfMnbWzTtghMPE/g0Cfpt8qbspq+G1bk
-z3M97JlFMF83ccRotDElX9E/ttjU7Lehoz+1sOyHiVW1E4oqKer4t+nI2bp6VYZm
-W94qptW7kb4o0DsvPCaoTPBxLJ1ag2WBlqoFkVI0YaxZiZ8OTR55Ovi4z5xWBO1q
-NkCKgdAUQvQVzVtASVGBAoIBAQDSw2nvPFN4gGZ6OI+8j2gWtPcsrhSHS9ykxBeB
-mB/HExYIe8k3EvClf2rnfwzuKgKyVMp7Ev7nH2jS/PGZq37QyXrw0NBGRnvJY0Ez
-YB1KTgf9xaHMGMut5efNvv/cPwYriqosgJ0pdt0vvUAIQ6EBv+iDXXqJ1lQUSRYk
-wKjFABi6TeJY4t9vC474KoXTDaHlwn9+TwnuRBk85wrZzlhK90J0iVa9/Eqeddsc
-Z3CuTlc+NmcP3qvniYODq8nyVc0pKw+28AVYYEd3aJfgm+dpcB21L0oz7CaxH/Rz
-FNONuQRaOzJrcuJsde/KG2X+MHs6hVMXXXWciPrJ2l+Cq7dnAoIBAQDRdwZDcgem
-tJHLihCRzUl9PKip4ZA5757ZyTy6WMLR3wMS2cNTK8+bTrUa0SSC4WSI28pybFA7
-QdSR08c5Nd7jXcIrtqspgZKhb0E60i8VQHhh6ba/kyQjsEz9c/G1WquPK13j2vZ0
-79bomDwFJPsFzABU+sC0/F42ZVQzy9qXkjngjtmaGfrCc7X+pV28nEGtyxHci3L4
-XXfE2dOb+GBVZPLBVXwcthdRYsFuU9GMy2GH0zVtWPOcGRnlpx53Tqg7NIeR0Nm1
-K35EaK8PH92PsAr0Xza7vQHY4cPRz+RhDzjyGQtnhKf96U6gzzt4ZVbQ/UuzDBcL
-PQ2DvUH+sqxBAoIBAEW5kiUsDu0xhTVv2tVll+jTK2ZjnLT5ut/jY2djHTgtrz9V
-PEb1BBmsIoC9PljYGxZGCMpYiW2KrZIHTiIpYwXNcdeTLSPik3cXV+2YIXiAghJJ
-PHKZzWAVS+97/YcubmsfL5cTYWrjQN9XO4TAYtaCV3iGB1DsT9p6J1I3Tl4F3yhb
-NcN0IrjI2R5uauFchC/PfYAaw81ISBUm1iciJYF/dUO6X7DwcvsjQD6QVe3ESwZw
-1v2gC7zIeHKp9WAvVHUHIubBVvNavqnZN01+JjtydNGI+IJe4Jn+WU9tF2OuTqtP
-JCn50sBQ7+gr0j0aatn8W3XCXHNRua3niWtgRYcCggEAT7OzfWxhPuyMYV9qiKAN
-a4ruPp3mjDUCQ6pP4jQuBT+PYtfbe8U63MSpIsgb1XVAFNdVBA70xGd7I/XqY3l9
-ExS08n8yR7vW+Hhl4KTjZ3m9lLwiXmj1omLOGM7KVRBoITUGJ9JEXyB3rM9oXyjA
-H2eNZMh5FSTGEHqj/IV/6paoUSrp37os8VqoEHoJ3d+zGhcf98RT/e9KyGt+GmX6
-+eNMf4YwkJg07THfmkRoguNMfCtAtBfZsjbW5MyfShRy7PxC7ZgDju06wXr3yZB9
-dNQuhufH4s27azQUl7w8ETaCm5QuA7i1V2c0FPpljZ052JHZAQsDpbIYd11HREvm
-QQKCAQEA0W7xNYoFvnyikdG0t266LLv1EkWDFdgkelGx/eGe/JZ+au3uTM94EssC
-ni64XX2P8vK/te+c3jItYO4MRgnDJ7GW+bRnJFu2kBE0W4chx7vga0XApVCP+Ugg
-owv5yf9cOAHFulvPefsU0snYStD3gNq77XDg0CwoyUkpeq+GiupoQ8tquMSsrEwp
-ve5DtDip3cLHz2oVLB3mR4kKVwVwmOgO5RKq6N/H6Jxtf/Zk1I260dKr+Dv2MnDh
-dysO4zH5YEt2ML3oY4zY8lu+I5bHCBR1updSny0B31WrXAJyfZpMx+HOwETFKa3B
-v9AGKz0Jc2GOIRKHrCQ/WkZePetaYQ==
+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
+lZqnHGyRAFqP6UxZgtwu30KuKIZBlg==
-----END PRIVATE KEY-----
diff --git a/ms/py-executor/certs/py-executor/py-executor.conf b/ms/py-executor/certs/py-executor/py-executor.conf
new file mode 100644
index 000000000..a74b39fdc
--- /dev/null
+++ b/ms/py-executor/certs/py-executor/py-executor.conf
@@ -0,0 +1,43 @@
+[req]
+default_bits = 4096
+default_keyfile = py-executor-key.pem
+distinguished_name = subject
+req_extensions = extensions
+x509_extensions = extensions
+string_mask = utf8only
+
+[ subject ]
+countryName = Country Name (2 letter code)
+countryName_default = US
+
+stateOrProvinceName = State or Province Name (full name)
+stateOrProvinceName_default = New Jersey
+
+localityName = Locality Name (eg, city)
+localityName_default = Middletown
+
+organizationName = Organization Name (eg, company)
+organizationName_default = ONAP Community
+
+commonName = Common Name (e.g. server FQDN or YOUR name)
+commonName_default = CCSDK
+
+emailAddress = Email Address
+emailAddress_default = bs2796@att.com
+
+[ extensions ]
+
+subjectKeyIdentifier = hash
+authorityKeyIdentifier = keyid,issuer
+
+basicConstraints = CA:FALSE
+keyUsage = nonRepudiation, digitalSignature, keyEncipherment
+extendedKeyUsage = serverAuth
+subjectAltName = @alt_names
+nsComment = "OpenSSL Generated Certificate"
+
+[alt_names]
+DNS.1 = cds-controller-*
+DNS.2 = py-executor-*
+DNS.3 = localhost
+IP.1 = 127.0.0.1
diff --git a/ms/py-executor/configuration-local.ini b/ms/py-executor/configuration-local.ini
new file mode 100644
index 000000000..c98746afe
--- /dev/null
+++ b/ms/py-executor/configuration-local.ini
@@ -0,0 +1,13 @@
+[scriptExecutor]
+port=50052
+authType=tls-auth
+# For TLS Auth
+certChain=certs/py-executor/py-executor-chain.pem
+privateKey=certs/py-executor/py-executor-key.pem
+logFile=application.log
+maxWorkers=20
+
+[blueprintsprocessor]
+blueprintDeployPath=test/resources
+blueprintArchivePath=target/blueprints/archive
+blueprintWorkingPath=target/blueprints/work
diff --git a/ms/py-executor/requirements.txt b/ms/py-executor/requirements.txt
index 6c406bfaf..14b4c29a0 100644
--- a/ms/py-executor/requirements.txt
+++ b/ms/py-executor/requirements.txt
@@ -1,5 +1,5 @@
-grpcio==1.23.0
-grpcio-tools==1.23.0
+grpcio==1.25.0
+grpcio-tools==1.25.0
configparser==4.0.2
requests==2.22.0
ncclient==0.6.6