Exemple #1
0
    def DeactivateSelf(self, force=False):
        if not self.IsActive():
            logging.info("No need to deactivate service: %s, not active",
                         str(self.GetServiceId()))
            return []

        if not force and self.GetStateProto().options.disable_deactivate:
            raise errors.InternalError(
                "Cannot deactivate {}, disable_deactivate is true.".format(
                    self.GetServiceId()))

        if not force and self.GetStateProto().requested_by_others:
            raise errors.InternalError(
                "Cannot deactivate {}, requested by services: {}.".format(
                    self.GetServiceId(), ", ".join(
                        map(str,
                            self.GetStateProto().requested_by_others))))
        all_delayed_actions = []
        for srv_id in self.GetStateProto().options.grouped_services:
            grouped_service = self._manager.GetService(
                ServiceId.FromProto(srv_id))
            all_delayed_actions += grouped_service.HandleReleaseService(
                self._GetServiceRequest())
        self.GetStateProto().requests_by_self.ClearFields()
        self.GetStateProto().status = ServiceStatePb.STATUS_STOPPED

        # all_delayed_actions will always be [], which is OK for now.
        return all_delayed_actions
Exemple #2
0
 def ForceRestart(self):
     raise errors.InternalError("Cannot force-restart a MetaService.")
Exemple #3
0
 def HandleReleaseService(self, service_request_id):
     del request
     raise errors.InternalError("Cannot release a MetaService")
Exemple #4
0
 def HandleRequestService(self, request):
     del request
     raise errors.InternalError("Cannot request a MetaService")
Exemple #5
0
 def Remove(self):
     raise errors.InternalError("Cannot remove a MetaService.")
Exemple #6
0
 def Update(self, new_options):
     raise errors.InternalError("Cannot update a MetaService.")
Exemple #7
0
 def ForceRestart(self):
     raise errors.InternalError(
         "Cannot force-restart a GroupService. Please find the groupped "
         "services and restart them individually.")