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);