You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by sj...@apache.org on 2015/10/26 13:31:27 UTC
[6/7] incubator-brooklyn git commit: MySqlCluster - rebind backwards
compatibility
MySqlCluster - rebind backwards compatibility
Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/71ddae11
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/71ddae11
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/71ddae11
Branch: refs/heads/master
Commit: 71ddae118ff68956fe3856559ba20fbb134b7301
Parents: ccbee8e
Author: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Authored: Tue Oct 20 09:24:26 2015 +0300
Committer: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Committed: Tue Oct 20 10:09:57 2015 +0300
----------------------------------------------------------------------
.../database/mysql/InitSlaveTaskBody.java | 30 +++++++++++++++++++-
1 file changed, 29 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/71ddae11/software/database/src/main/java/org/apache/brooklyn/entity/database/mysql/InitSlaveTaskBody.java
----------------------------------------------------------------------
diff --git a/software/database/src/main/java/org/apache/brooklyn/entity/database/mysql/InitSlaveTaskBody.java b/software/database/src/main/java/org/apache/brooklyn/entity/database/mysql/InitSlaveTaskBody.java
index 1c75275..70e29d7 100644
--- a/software/database/src/main/java/org/apache/brooklyn/entity/database/mysql/InitSlaveTaskBody.java
+++ b/software/database/src/main/java/org/apache/brooklyn/entity/database/mysql/InitSlaveTaskBody.java
@@ -39,6 +39,7 @@ import org.apache.brooklyn.core.effector.Effectors;
import org.apache.brooklyn.core.effector.ssh.SshEffectorTasks;
import org.apache.brooklyn.core.entity.EntityPredicates;
import org.apache.brooklyn.core.sensor.DependentConfiguration;
+import org.apache.brooklyn.core.sensor.Sensors;
import org.apache.brooklyn.entity.database.mysql.MySqlNode.ExportDumpEffector;
import org.apache.brooklyn.entity.software.base.SoftwareProcess;
import org.apache.brooklyn.location.ssh.SshMachineLocation;
@@ -245,7 +246,10 @@ public class InitSlaveTaskBody implements Runnable {
} catch (InterruptedException e) {
throw Exceptions.propagate(e);
}
- ReplicationSnapshot replicationSnapshot = getAttributeBlocking(cluster, MySqlCluster.REPLICATION_LAST_SLAVE_SNAPSHOT);
+ ReplicationSnapshot replicationSnapshot = getReplicationInfoMasterConfig();
+ if (replicationSnapshot == null) {
+ replicationSnapshot = getAttributeBlocking(cluster, MySqlCluster.REPLICATION_LAST_SLAVE_SNAPSHOT);
+ }
if (!isReplicationInfoValid(replicationSnapshot)) {
final MySqlNode snapshotNode = getSnapshotNode();
final String dumpName = getDumpUniqueId() + ".sql";
@@ -261,6 +265,30 @@ public class InitSlaveTaskBody implements Runnable {
}
}
+ /**
+ * Rebind backwards compatibility
+ * @deprecated since 0.9.0
+ */
+ @Deprecated
+ private ReplicationSnapshot getReplicationInfoMasterConfig() {
+ Entity master = getMaster();
+ AttributeSensor<String> MASTER_LOG_FILE = Sensors.newStringSensor(
+ "mysql.master.log_file", "The binary log file master is writing to");
+ AttributeSensor<Integer> MASTER_LOG_POSITION = Sensors.newIntegerSensor(
+ "mysql.master.log_position", "The position in the log file to start replication");
+
+ String logFile = master.sensors().get(MASTER_LOG_FILE);
+ Integer logPos = master.sensors().get(MASTER_LOG_POSITION);
+ if(logFile != null && logPos != null) {
+ ReplicationSnapshot replicationSnapshot = new ReplicationSnapshot(null, null, logFile, logPos);
+ cluster.sensors().set(MySqlCluster.REPLICATION_LAST_SLAVE_SNAPSHOT, replicationSnapshot);
+ master.sensors().set(MASTER_LOG_FILE, null);
+ master.sensors().set(MASTER_LOG_POSITION, null);
+ return replicationSnapshot;
+ }
+ return null;
+ }
+
private Future<ReplicationSnapshot> createMasterReplicationSnapshot(final MySqlNode master, final String dumpName) {
log.info("MySql cluster " + cluster + ": generating new replication snapshot on master node " + master + " with name " + dumpName);
String dumpOptions = SNAPSHOT_DUMP_OPTIONS + " --master-data=2" + getDumpDatabases(master);