diff options
author | grakiss <grakiss.wanglei@huawei.com> | 2017-10-27 21:53:51 -0400 |
---|---|---|
committer | Leo wang <grakiss.wanglei@huawei.com> | 2017-11-01 08:27:37 +0000 |
commit | 62562458e6fd007f4240b669f509f772dd883ca5 (patch) | |
tree | 3dd8cd346bb1ba0328c218b1c5d03c52c2092522 | |
parent | 4e890653df7b39774845b61a81853b54aae0c5eb (diff) |
[web-cvp] Trigger an email when admin submit an application form
JIRA: DOVETAIL-542
Trigger an email to cvp@opnfv.org when admin submit an application form.
Change-Id: Ie73d5a6380b5f5d1b0507564dc1f067047284f99
Signed-off-by: grakiss <grakiss.wanglei@huawei.com>
-rw-r--r-- | cvp/opnfv_testapi/common/utils.py | 43 | ||||
-rw-r--r-- | cvp/opnfv_testapi/resources/application_handlers.py | 42 |
2 files changed, 84 insertions, 1 deletions
diff --git a/cvp/opnfv_testapi/common/utils.py b/cvp/opnfv_testapi/common/utils.py new file mode 100644 index 00000000..107c7099 --- /dev/null +++ b/cvp/opnfv_testapi/common/utils.py @@ -0,0 +1,43 @@ +import logging +import smtplib +from email.mime.text import MIMEText + +LOG = logging.getLogger(__name__) +LOG.setLevel(logging.DEBUG) + + +def send_email(subject, content): + MAIL_LIST = ['cvp@opnfv.org'] + HOST = "smtp.gmail.com" + USER = "opnfv.cvp" + PASSWD = "opnfv@cvp" + + sender = 'cvp<{}@gmail.com>'.format(USER) + msg = MIMEText(content, _subtype='plain') + msg['Subject'] = subject + msg['From'] = sender + msg['To'] = ";".join(MAIL_LIST) + + _send_email(HOST, sender, USER, PASSWD, MAIL_LIST, msg) + + +def _send_email(host, + sender, + user, + passwd, + receivers, + msg): + + client = smtplib.SMTP() + try: + client.connect(host, 25) + LOG.debug('Success to connect server') + client.starttls() + client.login(user, passwd) + LOG.debug('Success to login') + LOG.debug('Start to sending email') + client.sendmail(sender, receivers, msg.as_string()) + client.close() + except Exception: + LOG.exception('Error when sending email') + raise diff --git a/cvp/opnfv_testapi/resources/application_handlers.py b/cvp/opnfv_testapi/resources/application_handlers.py index 6986b9ef..144b2241 100644 --- a/cvp/opnfv_testapi/resources/application_handlers.py +++ b/cvp/opnfv_testapi/resources/application_handlers.py @@ -14,6 +14,7 @@ from tornado import gen from bson import objectid from opnfv_testapi.common.config import CONF +from opnfv_testapi.common import utils from opnfv_testapi.resources import handlers from opnfv_testapi.resources import application_models from opnfv_testapi.tornado_swagger import swagger @@ -107,9 +108,48 @@ class ApplicationsCLHandler(GenericApplicationHandler): if not ret: self.finish_request({'code': '403', 'msg': msg}) return - self._create(miss_fields=miss_fields, carriers=carriers) + self._send_email() + + def _send_email(self): + + data = self.table_cls.from_dict(self.json_args) + subject = "[OPNFV CVP]New OPNFV CVP Application Submission" + content = """Hi CVP Reviewer, + +This is a new application: + + Organization Name: {}, + Organization Website: {}, + Product Name: {}, + Product Specifications: {}, + Product Documentation: {}, + Product Categories: {}, + Primary Name: {}, + Primary Email: {}, + Primary Address: {}, + Primary Phone: {}, + User ID Type: {}, + User ID: {} + +Best Regards, +CVP Team + """.format(data.organization_name, + data.organization_web, + data.product_name, + data.product_spec, + data.product_documentation, + data.product_categories, + data.prim_name, + data.prim_email, + data.prim_address, + data.prim_phone, + data.id_type, + data.user_id) + + utils.send_email(subject, content) + class ApplicationsGURHandler(GenericApplicationHandler): @swagger.operation(nickname="deleteAppById") |