Ability to be used as an UNRAID plugin- preferably importing existing Sickbeard settings

For me, the ability to run on my unraid server (slackware linux) is a must (hopefully via an unraid plugin). And if I don’t have to configure 100+ directories, that’s a GIGANTIC plus. Until then, congratulations on your efforts so far- looks really impressive!

Been a while since I’ve used unraid (Great system, but Windows was just easier for me). As long are you’re able to install mono 2.10+ it should be doable.

Plugins look pretty complex (XML full of code by the looks of it), not something I see us tackling soon, but its on Trello now: https://trello.com/c/3SKt0Ldd/451-unraid-plugin

Regarding the configure 100+ directories, I assume thats referring to adding the shows/importing from SB (based on the title)? Getting the shows in is one things, but things like quality settings would be different. This could definitely be setup as a script that either reads the SB DB directly or via its API, but I don’t think this is something we will tackle ourselves.

Thanks for the fast response. Windows is my environment as well, but the stability of Unraid and the inertia of my growing system’s configuration earned my loyalty. I can go months without restarting it- and even then, it’s because I’VE done something. Unfortunately, its stability also lends itself to hands-off ownership- which is why I still know almost ZERO about Linux. My request may already be do-able by more talented Linux users. Users with unraid media servers are going to be a significant audience for this type of program. Luckily for us both, they’re a talented and determined lot. If there’s a way to get them together, they WILL. NZBDRONE has already generated a lot of interest, so I’m sure it’s only a matter of time. Again, thanks for the fast response. Responsiveness is one of the advantages being touted for you & NZBDRONE’s development.

Unraid plugin is up (commented on trello a bit ago) here: http://lime-technology.com/forum/index.php?topic=30463.msg282500#msg282500

Give it a whirl. It doesn’t auto-handle import from sickbeard, that’s a bit too big of an undertaking to be honest. It’s pretty simple to convert from what I’ve seen, but I’m slowly converting things over at first myself to make sure there aren’t gotchas with NzbDrone that I’m unaware of. SickBeard is the devil I know at least, for the time being.

Moved the trello card to in progress, also added a comment to change the URL instead of using the debian repo.

finally moving from SB to full NZBDRONE on unraid being using it in a vm on windows. As a matter of fact i am using dragonfyre13 plugin for unraid, simple and nice. i keep getting this error in the logs not sure what its referring since i know i got plenty of space . I have not imported all of my series but drone has all the settings ready, just waiting to import series on disk. anyhow here is the image http://i.imgur.com/ILRELRB.png

@flat4 can you run drone in mono debug so the line numbers are available?

mono --debug NzbDrone.exe

umm im using it on unraid, so when i run that it gives me this
root@LahomaMediaCenter:~# mono --debug NzbDrone.exe
Cannot open assembly ‘NzbDrone.exe’: No such file or directory.
root@LahomaMediaCenter:~#

I run unraif v5.0 stable nzbdrone.plg from dragonfyre13 download http://lime-technology.com/forum/index.php?action=dlattach;topic=30463.0;attach=19769

maybe this might help
14-2-26 06:40:45.8|Info|RssSyncService|Starting RSS Sync
14-2-26 06:40:49.8|Info|DownloadDecisionMaker|Processing 300 reports
14-2-26 06:40:52.5|Info|RssSyncService|RSS Sync Completed. Reports found: 300, Reports downloaded: 0
14-2-26 06:44:42.0|Warn|NzbDroneErrorPipeline|Invalid request Validation failed:
– ‘Name’ should not be empty.
14-2-26 06:44:42.0|Warn|NzbDroneErrorPipeline|Invalid request Validation failed:
– ‘Name’ should not be empty.
14-2-26 06:44:42.0|Warn|NzbDroneErrorPipeline|Invalid request Validation failed:
– ‘Name’ should not be empty.
14-2-26 06:44:42.0|Warn|NzbDroneErrorPipeline|Invalid request Validation failed:
– ‘Name’ should not be empty.
14-2-26 06:45:06.7|Error|DiskProvider|Couldn’t get free space for /

System.InvalidOperationException: The source sequence is empty
at System.Linq.Enumerable.First[DriveInfo] (IEnumerable`1 source) [0x00000] in :0
at NzbDrone.Mono.DiskProvider.GetDriveInfoLinux (System.String path) [0x00000] in :0
at NzbDrone.Mono.DiskProvider.GetAvailableSpace (System.String path) [0x00000] in :0

14-2-26 06:45:07.2|Warn|DiskSpaceService|Unable to get free space for: /

System.InvalidOperationException: Nullable object must have a value.
at System.Nullable`1[System.Int64].get_Value () [0x00000] in :0
at NzbDrone.Core.DiskSpace.DiskSpaceService+d__4.MoveNext () [0x00000] in :0

14-2-26 06:47:49.1|Error|DiskProvider|Couldn’t get free space for /

System.InvalidOperationException: The source sequence is empty
at System.Linq.Enumerable.First[DriveInfo] (IEnumerable`1 source) [0x00000] in :0
at NzbDrone.Mono.DiskProvider.GetDriveInfoLinux (System.String path) [0x00000] in :0
at NzbDrone.Mono.DiskProvider.GetAvailableSpace (System.String path) [0x00000] in :0

14-2-26 06:47:49.7|Warn|DiskSpaceService|Unable to get free space for: /

System.InvalidOperationException: Nullable object must have a value.
at System.Nullable`1[System.Int64].get_Value () [0x00000] in :0
at NzbDrone.Core.DiskSpace.DiskSpaceService+d__4.MoveNext () [0x00000] in :0

14-2-26 06:49:46.3|Error|DiskProvider|Couldn’t get free space for /

System.InvalidOperationException: The source sequence is empty
at System.Linq.Enumerable.First[DriveInfo] (IEnumerable`1 source) [0x00000] in :0
at NzbDrone.Mono.DiskProvider.GetDriveInfoLinux (System.String path) [0x00000] in :0
at NzbDrone.Mono.DiskProvider.GetAvailableSpace (System.String path) [0x00000] in :0

14-2-26 06:49:46.9|Warn|DiskSpaceService|Unable to get free space for: /

System.InvalidOperationException: Nullable object must have a value.
at System.Nullable`1[System.Int64].get_Value () [0x00000] in :0
at NzbDrone.Core.DiskSpace.DiskSpaceService+d__4.MoveNext () [0x00000] in :0

You’ll need to use the full path to NzbDrone.exe (or run it from the folder that contains it).

The extra logging did help to find the issue in drone, which I have fixed, but the underlying issue on your system remains, drone is unable to get the free space for /.

I will work work on that, also the fix you did, will that be in the next version you release?

Yes, its in develop now, not sure if the unraid plugin uses master or develop though.

I’ve just migrated over from Sickbeard. I’m running the Windows version of NzbDrone, but I have a 70TB unraid server on my LAN too. The migration process itself was fairly painless … I just pointed ND at my existing TV folder (on my unraid box mapped as a windows share) and it indexed everything nicely into it’s database. I then told ND to backfill missing/better quality episodes (a bit painful since you have to do that manually one show at a time), but it’s worth it because ND has already found hundreds of episodes that SB didn’t. I do feel sorry for my poor SAB though … it’s being crushed under the weight of about 3TB of new downloads in it’s queue LOL. Very happy I’ve made the jump over here! And yes you’re right, one of the amazing things is the dev’s (markus101) responsiveness!!

markus101 wrote:
Yes, its in develop now, not sure if the unraid plugin uses master or develop though.

Dragonfyre13 has it pointed to master.

toby9999 wrote:

I’ve just migrated over from Sickbeard. I’m running the Windows version of NzbDrone, but I have a 70TB unraid server on my LAN too. The migration process itself was fairly painless … I just pointed ND at my existing TV folder (on my unraid box mapped as a windows share) and it indexed everything nicely into it’s database. I then told ND to backfill missing/better quality episodes (a bit painful since you have to do that manually one show at a time), but it’s worth it because ND has already found hundreds of episodes that SB didn’t. I do feel sorry for my poor SAB though … it’s being crushed under the weight of about 3TB of new downloads in it’s queue LOL. Very happy I’ve made the jump over here! And yes you’re right, one of the amazing things is the dev’s (markus101) responsiveness!!

Yeah that is why I’m moving to drone. I donated not much but it makes me feel better that Markus takes time to answer your questions personally.

Also I started like you did with drone on a vm and it worked well but I recall like it use a plugin so my vm only runs spider oak back up.

Yup, I’ve got it pointed at master (specifically, whatever release the latest deb package is. As the debian repo is updated, the unraid plugin updates as well, just click the “update” button in the unraid web interface when nzbdrone is stopped.

The issue described is actually pretty simple when understanding how unraid works. / has no defined free space because unlike general purpose linux distros, it’s not mounted per-say. It’s running out of RAM by default (after bios loads GRUB, GRUB loads the linux image into RAM and since / is never mounted…), which also means anything stored there is blown away if the machine reboots. /boot is mounted to your flash drive (which it unpacks the OS from before loading it into RAM), /mnt has sub-directories under it for each of the disks, and a few “virtual” directories that combine all the contents of all the disks (/mnt/user and /mnt/user0, /mnt/user0 is whatever disks combined minus the cache drive IIRC). This is why the installation path and config path have to be set in the unraid plugin, since they need to be somewhere within either /boot (bad idea, lots of hits to your flash drive drastically reduces longevity) or /mnt/something. Personally, I have it on my cache drive, you can also choose to have it on a different drive if you don’t have a cache drive. Of course, the option is always there to have the config on one of your drives, but the installation held in memory (stick it somewhere other than /mnt/something or /boot) since unraid re-installs any plugins needed on each boot up, which is why plugin logic needs to account for this.

So for example, this is the drive configuration on one of my unraid boxes (I have two, it’s an addiction, and before you say it I know I need to clean up my drives on this one a LOT):
# df -h Filesystem Size Used Avail Use% Mounted on /dev/sdd1 31G 532M 30G 2% /boot /dev/sdc1 120G 45G 75G 38% /mnt/cache /dev/md1 932G 853G 80G 92% /mnt/disk1 /dev/md2 932G 797G 136G 86% /mnt/disk2 /dev/md4 1.9T 1.7T 207G 89% /mnt/disk4 /dev/md5 932G 841G 91G 91% /mnt/disk5 /dev/md3 1.9T 1.7T 137G 93% /mnt/disk3 shfs 6.4T 5.8T 649G 91% /mnt/user0 shfs 6.4T 5.8T 649G 91% /mnt/user

Here’s the mount locations:
# mount proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) /dev/sdd1 on /boot type vfat (rw,noatime,nodiratime,umask=0,shortname=mixed) /dev/sdc1 on /mnt/cache type reiserfs (rw,noatime,nodiratime,user_xattr,acl) /dev/md1 on /mnt/disk1 type reiserfs (rw,noatime,nodiratime,user_xattr,acl) /dev/md2 on /mnt/disk2 type reiserfs (rw,noatime,nodiratime,user_xattr,acl) /dev/md4 on /mnt/disk4 type reiserfs (rw,noatime,nodiratime,user_xattr,acl) /dev/md5 on /mnt/disk5 type reiserfs (rw,noatime,nodiratime,user_xattr,acl) /dev/md3 on /mnt/disk3 type reiserfs (rw,noatime,nodiratime,user_xattr,acl) shfs on /mnt/user0 type fuse.shfs (rw,nosuid,nodev,noatime,allow_other,default_permissions) shfs on /mnt/user type fuse.shfs (rw,nosuid,nodev,noatime,allow_other,default_permissions) nfsd on /proc/fs/nfs type nfsd (rw)

Notice, there’s no mount location for “/” included there, and nothing returned in df. That’s why specifying / when calling df (to get “disk free” for root level directory) returns what it does:
`# df /
Filesystem 1K-blocks Used Available Use% Mounted on

  •                        0         0         0   -  /`
    

So the reason nzbdrone can’t see free space on / is because… such a thing doesn’t exist as far as the OS is concerned. It’s an oddity, but one I’ve been ignoring in my logs until now wherever it appears. Nice that it doesn’t log an error anymore, and good to handle a circumstance where this happens (there’s other scenarios in the linux world you might not be able to get free space for a given mount location), but not critical since if the unraid plugin has been configured properly you’ll never be doing anything with / anyway, just mount locations underneath that.

@dragonfyre13 thanks for the explanation.

Are you extracting from the .deb?