Example #1
0
 def _promote_resource(self, xcli_mirror, resource_id):
     type_str = self.get_type_str()
     if not MirroredEntities.is_mirror_master(xcli_mirror):
         logger.debug("-> Promoting and setting [r/w] attributes "
                      "for %s [%s]." % (
                          type_str,
                          resource_id,
                      ))
         try:
             if self._is_sync_mirror(xcli_mirror):
                 self.snap_target_before_possible_override(resource_id)
             else:
                 self.duplicate_target_snapshot_before_possible_override(
                     resource_id)
         except CommandExecutionError as e:
             logger.warning("Failed to create failsafe snap group "
                            "for %s [%s]." %
                            (type_str, resource_id, str(e)))
         except Exception as e:
             logger.error("Unexpected exception %s", e)
             raise e
         self.change_role_to_master(resource_id)
     else:
         logger.warning("-> %s [%s] is already promoted to "
                        "Read-Write" % (
                            type_str,
                            resource_id,
                        ))
Example #2
0
 def snap_and_change_role_to_slave(self, resource_id):
     xcli_mirror = self.get_mirror_resources()[resource_id]
     type_str = self.get_type_str()
     if MirroredEntities.is_mirror_master(xcli_mirror):
         self.snap_target_before_possible_override(resource_id)
         logger.debug("-> Setting %s [%s] as replication target." %
                      (type_str, resource_id))
         if self._is_mirror_active(xcli_mirror):
             self.deactivate_mirror(resource_id)
         self.change_role_to_slave(resource_id)
     else:
         logger.warning("-> %s [%s] is already a replication target "
                        "target" % (type_str, resource_id))
Example #3
0
 def snap_and_change_role_to_slave(self, resource_id):
     xcli_mirror = self.get_mirror_resources()[resource_id]
     type_str = self.get_type_str()
     if MirroredEntities.is_mirror_master(xcli_mirror):
         self.snap_target_before_possible_override(resource_id)
         logger.debug(
             "-> Setting %s [%s] as replication target." % (type_str,
                                                            resource_id))
         if self._is_mirror_active(xcli_mirror):
             self.deactivate_mirror(resource_id)
         self.change_role_to_slave(resource_id)
     else:
         logger.warning("-> %s [%s] is already a replication target "
                        "target" % (type_str, resource_id))
Example #4
0
 def _promote_resource(self, xcli_mirror, resource_id):
     type_str = self.get_type_str()
     if not MirroredEntities.is_mirror_master(xcli_mirror):
         logger.debug("-> Promoting and setting [r/w] attributes "
                      "for %s [%s]." % (type_str, resource_id,))
         try:
             if self._is_sync_mirror(xcli_mirror):
                 self.snap_target_before_possible_override(resource_id)
             else:
                 self.duplicate_target_snapshot_before_possible_override(
                     resource_id)
         except CommandExecutionError as e:
             logger.warning("Failed to create failsafe snap group "
                            "for %s [%s]." % (type_str,
                                              resource_id, str(e)))
         except Exception as e:
             logger.error("Unexpected exception %s", e)
             raise e
         self.change_role_to_master(resource_id)
     else:
         logger.warning("-> %s [%s] is already promoted to "
                        "Read-Write" % (type_str, resource_id,))
Example #5
0
 def _is_slave_consistent(self, xcli_mirror):
     if not MirroredEntities.is_mirror_master(xcli_mirror):
         if not self._is_mirror_slave_ready_for_promote(xcli_mirror):
             return False
     return True
Example #6
0
 def _is_slave_consistent(self, xcli_mirror):
     if not MirroredEntities.is_mirror_master(xcli_mirror):
         if not self._is_mirror_slave_ready_for_promote(xcli_mirror):
             return False
     return True