ep1cman / unifi-protect-backup

Python tool to backup unifi event clips in realtime
MIT License
577 stars 25 forks source link

ValueError for remote called '/data' #34

Closed adamzvolanek closed 2 years ago

adamzvolanek commented 2 years ago

Description

Filled out the template for the docker container in Unraid however on launch is failing to start with a manual /data path added. Note instructions in docker template read "By default it will backup clips locally to /data inside the container."

Describe what you were trying to get done. Tell us what happened, what went wrong, and what you expected to happen. Expecting UniFi-Protect-Backup to use local directories that are put into the Clip Directory parameter, however traceback reads as if it expects an additional path or variable.

What I Did

Created a new 'Data Path' path for the docker container to utilize for its rclone destination.

Paste the command(s) you ran and the output. If there was a crash, please include the traceback here.

2022-04-14 02:13:09 [DEBUG]:unifi_protect_backup.unifi_protect_backup: Config:
2022-04-14 02:13:09 [DEBUG]:unifi_protect_backup.unifi_protect_backup: address='192.168.1.1'
2022-04-14 02:13:09 [DEBUG]:unifi_protect_backup.unifi_protect_backup: port=8080
2022-04-14 02:13:09 [DEBUG]:unifi_protect_backup.unifi_protect_backup: username='Alexandria_Backup'
2022-04-14 02:13:09 [DEBUG]:unifi_protect_backup.unifi_protect_backup: password=REDACTED
2022-04-14 02:13:09 [DEBUG]:unifi_protect_backup.unifi_protect_backup: verify_ssl=False
2022-04-14 02:13:09 [DEBUG]:unifi_protect_backup.unifi_protect_backup: rclone_destination='/data'
2022-04-14 02:13:09 [DEBUG]:unifi_protect_backup.unifi_protect_backup: retention='7d'
2022-04-14 02:13:09 [DEBUG]:unifi_protect_backup.unifi_protect_backup: rclone_args=''
2022-04-14 02:13:09 [DEBUG]:unifi_protect_backup.unifi_protect_backup: ignore_cameras=()
2022-04-14 02:13:09 [DEBUG]:unifi_protect_backup.unifi_protect_backup: verbose=1
2022-04-14 02:13:09 [DEBUG]:unifi_protect_backup.unifi_protect_backup: detection_types=['motion', 'person', 'vehicle', 'ring']
2022-04-14 02:13:09 [DEBUG]:unifi_protect_backup.unifi_protect_backup: file_structure_format='{camera_name}/{event.start:%Y-%m-%d}/{event.end:%Y-%m-%dT%H-%M-%S} {detection_type}.mp4'
2022-04-14 02:13:09 [INFO]:unifi_protect_backup.unifi_protect_backup: Starting...
2022-04-14 02:13:09 [INFO]:unifi_protect_backup.unifi_protect_backup: Checking rclone configuration...
2022-04-14 02:13:09 [DEBUG]:unifi_protect_backup.unifi_protect_backup: rclone found: /usr/bin/rclone
Traceback (most recent call last):
File "/usr/bin/unifi-protect-backup", line 8, in <module>
sys.exit(main())
File "/usr/lib/python3.9/site-packages/click/core.py", line 1137, in __call__
return self.main(*args, **kwargs)
File "/usr/lib/python3.9/site-packages/click/core.py", line 1062, in main
rv = self.invoke(ctx)
File "/usr/lib/python3.9/site-packages/click/core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/lib/python3.9/site-packages/click/core.py", line 763, in invoke
return __callback(*args, **kwargs)
File "/usr/lib/python3.9/site-packages/unifi_protect_backup/cli.py", line 109, in main
loop.run_until_complete(event_listener.start())
File "/usr/lib/python3.9/asyncio/base_events.py", line 642, in run_until_complete
return future.result()
File "/usr/lib/python3.9/site-packages/unifi_protect_backup/unifi_protect_backup.py", line 278, in start
await self._check_rclone()
File "/usr/lib/python3.9/site-packages/unifi_protect_backup/unifi_protect_backup.py", line 414, in _check_rclone
raise ValueError(f"rclone does not have a remote called `{remote}`")
ValueError: rclone does not have a remote called `/data`
[cont-finish.d] executing container finish scripts...
[cont-finish.d] done.
[s6-finish] waiting for services.
[s6-finish] sending all processes the TERM signal.
[s6-finish] sending all processes the KILL signal and exiting.

Screenshot 2022-04-13 211919

ep1cman commented 2 years ago

So the rclone destination should be in the format {rclone remote name}:{path on remote}. The remotes are defined in the rclone.conf file. If you are using the default config to backup locally, it will have created a remote called local for you so the value for that entry should be local:/data.

I think I will update the template to have that as the default value.

Finally that last entry I assume you added? That looks like a duplicate one the one above it?

adamzvolanek commented 2 years ago

Deleting my additional 'Data Path' variable and setting the rclone destination variable to local:/data seemed to have fixed the issue.