-\r
-class OcloudWather(BaseWatcher):\r
- def __init__(self, ocloud_client: BaseClient,\r
- repo: OcloudRepository) -> None:\r
- super().__init__(ocloud_client)\r
- self._repo = repo\r
-\r
- def _targetname(self):\r
- return "ocloud"\r
-\r
- def _probe(self):\r
- ocloudmodel = self._client.get(None)\r
- if ocloudmodel:\r
- self._compare_and_update(ocloudmodel)\r
-\r
- def _compare_and_update(self, ocloudmodel: StxGenericModel) -> bool:\r
- # localmodel = self._repo.get(ocloudmodel.id)\r
- oclouds = self._repo.list()\r
- if len(oclouds) > 1:\r
- raise InvalidOcloudState("More than 1 ocloud is found")\r
- if len(oclouds) == 0:\r
- self._repo.add(ocloudmodel)\r
- else:\r
- localmodel = oclouds.pop()\r
- if localmodel.is_outdated(ocloudmodel):\r
- localmodel.update_by(ocloudmodel)\r
- self._repo.update(localmodel)\r
-\r
-\r
-class DmsWatcher(BaseWatcher):\r
- def __init__(self, client: BaseClient) -> None:\r
- super().__init__(client)\r
-\r