# $SnapHashLicense:
#
# SnapLogic - Open source data services
#
# Copyright (C) 2008 - 2009, SnapLogic, Inc. All rights reserved.
#
# See http://www.snaplogic.org for more information about
# the SnapLogic project.
#
# This program is free software, distributed under the terms of
# the GNU General Public License Version 2. See the LEGAL file
# at the top of the source tree.
#
# "SnapLogic" is a trademark of SnapLogic, Inc.
#
#
# $
# $Id: ConnectionMySQL.py 10330 2009-12-24 22:13:38Z grisha $
"""
MySQL Connection component
"""
from snaplogic.common import version_info
from snaplogic.components.DBConnection import DBConnection
import snaplogic.cc.prop as prop
from snaplogic.snapi_base import keys
class ConnectionMySQL(DBConnection):
"""
This class implements the MySQL Connection component.
"""
api_version = '1.0'
component_version = '1.4'
component_description = "This component specifies MySQL connection information."
component_label = "DB Connection - MySQL"
component_doc_uri = "https://www.snaplogic.org/trac/wiki/Documentation/%s/ComponentRef/ConnectionMySQL" % \
version_info.doc_uri_version
def create_resource_template(self):
self.set_property_def('db_host',
prop.SimpleProp('Host',
"string",
"Hostname of MySQL server",
None,
True))
self.set_property_def('db_db',
prop.SimpleProp('Database',
"string",
"MySQL database",
None,
True))
self.set_property_def('db_user',
prop.SimpleProp('DB Username',
"string",
"MySQL user",
None,
True))
self.set_property_def('db_passwd',
prop.SimpleProp('DB Password',
"string",
"Password",
{keys.CONSTRAINT_OBFUSCATE : 0}))
self._add_port_prop()
self._set_cats()
def _add_port_prop(self):
self.set_property_def('db_port',
prop.SimpleProp('DB Port',
"number",
"Port",
None,
True))
self.set_property_value('db_port', 3306)
def upgrade_1_0_to_1_1(self):
"""
Upgrade resource from version 1.0 to version 1.1: add port property
"""
self._add_port_prop()
def upgrade_1_1_to_1_2(self):
"""
Upgrade resource from version 1.1 to version 1.2:
password property no longer required
"""
saved_password = self.get_property_value('db_passwd')
self.set_property_def('db_passwd',
prop.SimpleProp('DB Password',
"string",
"Password",
{keys.CONSTRAINT_OBFUSCATE : 0}))
self.set_property_value('db_passwd', saved_password)
def upgrade_1_2_to_1_3(self):
self._set_cats()
def upgrade_1_3_to_1_4(self):
"""
No-op upgrade only to change component doc URI during the upgrade
which will be by cc_info before calling this method.
"""
pass
|