Repository: brooklyn-library Updated Branches: refs/heads/master b14b946eb -> 621bf5f9d
add user sensor to MySqlNode Project: http://git-wip-us.apache.org/repos/asf/brooklyn-library/repo Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-library/commit/437819c8 Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-library/tree/437819c8 Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-library/diff/437819c8 Branch: refs/heads/master Commit: 437819c879541cc04995533d9a5e7daa7f6a9d04 Parents: 69efaf5 Author: Andrea Turli <[email protected]> Authored: Fri Aug 5 10:26:47 2016 +0200 Committer: Andrea Turli <[email protected]> Committed: Thu Aug 11 11:21:46 2016 +0200 ---------------------------------------------------------------------- .../entity/database/mysql/MySqlNode.java | 11 +++++++---- .../entity/database/mysql/MySqlNodeImpl.java | 20 +++++++++++++++----- 2 files changed, 22 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/437819c8/software/database/src/main/java/org/apache/brooklyn/entity/database/mysql/MySqlNode.java ---------------------------------------------------------------------- diff --git a/software/database/src/main/java/org/apache/brooklyn/entity/database/mysql/MySqlNode.java b/software/database/src/main/java/org/apache/brooklyn/entity/database/mysql/MySqlNode.java index 5003d4d..568aac5 100644 --- a/software/database/src/main/java/org/apache/brooklyn/entity/database/mysql/MySqlNode.java +++ b/software/database/src/main/java/org/apache/brooklyn/entity/database/mysql/MySqlNode.java @@ -62,12 +62,15 @@ public interface MySqlNode extends SoftwareProcess, HasShortName, DatastoreCommo @SetFromFlag("serverConf") MapConfigKey<Object> MYSQL_SERVER_CONF = new MapConfigKey<Object>( Object.class, "mysql.server.conf", "Configuration options for mysqld"); - + ConfigKey<Object> MYSQL_SERVER_CONF_LOWER_CASE_TABLE_NAMES = MYSQL_SERVER_CONF.subKey("lower_case_table_names", "See MySQL guide. Set 1 to ignore case in table names (useful for OS portability)"); - + @SetFromFlag("serverId") ConfigKey<Integer> MYSQL_SERVER_ID = ConfigKeys.newIntegerConfigKey("mysql.server_id", "Corresponds to server_id option", 0); - + + @SetFromFlag("user") + AttributeSensor USER = Sensors.newStringSensor("mysql.user", "Database admin user (default is `root`)"); + @SetFromFlag("password") StringAttributeSensorAndConfigKey PASSWORD = new StringAttributeSensorAndConfigKey( "mysql.password", "Database admin password (or randomly generated if not set)", null); @@ -78,7 +81,7 @@ public interface MySqlNode extends SoftwareProcess, HasShortName, DatastoreCommo @SetFromFlag("generalLog") ConfigKey GENERAL_LOG = ConfigKeys.newBooleanConfigKey("mysql.general_log", "Enable general log", false); - + /** @deprecated since 0.7.0 use DATASTORE_URL */ @Deprecated AttributeSensor<String> MYSQL_URL = DATASTORE_URL; http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/437819c8/software/database/src/main/java/org/apache/brooklyn/entity/database/mysql/MySqlNodeImpl.java ---------------------------------------------------------------------- diff --git a/software/database/src/main/java/org/apache/brooklyn/entity/database/mysql/MySqlNodeImpl.java b/software/database/src/main/java/org/apache/brooklyn/entity/database/mysql/MySqlNodeImpl.java index fd19fac..8a4c177 100644 --- a/software/database/src/main/java/org/apache/brooklyn/entity/database/mysql/MySqlNodeImpl.java +++ b/software/database/src/main/java/org/apache/brooklyn/entity/database/mysql/MySqlNodeImpl.java @@ -43,6 +43,12 @@ public class MySqlNodeImpl extends SoftwareProcessImpl implements MySqlNode { private static final Logger LOG = LoggerFactory.getLogger(MySqlNodeImpl.class); + /** This comes from mysql.cnf + * See http://dev.mysql.com/doc/refman/5.6/en/mysql-install-db.html and http://dev.mysql.com/doc/refman/5.7/en/mysql-install-db.html + * for more details. + * */ + String DEFAULT_USERNAME = "root"; + private SshFeed feed; public MySqlNodeImpl() { @@ -69,7 +75,7 @@ public class MySqlNodeImpl extends SoftwareProcessImpl implements MySqlNode { public MySqlDriver getDriver() { return (MySqlDriver) super.getDriver(); } - + @Override public void init() { super.init(); @@ -88,8 +94,8 @@ public class MySqlNodeImpl extends SoftwareProcessImpl implements MySqlNode { protected void connectSensors() { super.connectSensors(); sensors().set(DATASTORE_URL, String.format("mysql://%s:%s/", getAttribute(HOSTNAME), getAttribute(MYSQL_PORT))); - - /* + sensors().set(USER, getUser()); + /* * TODO status gives us things like: * Uptime: 2427 Threads: 1 Questions: 581 Slow queries: 0 Opens: 53 Flush tables: 1 Open tables: 35 Queries per second avg: 0.239 * So can extract lots of sensors from that. @@ -125,7 +131,7 @@ public class MySqlNodeImpl extends SoftwareProcessImpl implements MySqlNode { sensors().set(SERVICE_UP, true); } } - + @Override protected void disconnectSensors() { if (feed != null) feed.stop(); @@ -145,6 +151,10 @@ public class MySqlNodeImpl extends SoftwareProcessImpl implements MySqlNode { return result; } + public String getUser() { + return DEFAULT_USERNAME; + } + public String getPassword() { String result = getAttribute(MySqlNode.PASSWORD); if (Strings.isBlank(result)) { @@ -153,7 +163,7 @@ public class MySqlNodeImpl extends SoftwareProcessImpl implements MySqlNode { } return result; } - + @Override public String getShortName() { return "MySQL";
