Commit Graph

35 Commits

Author SHA1 Message Date
Kevin Scott Adams c3935785c0 Update comments/doc of the methods changes
- Just a change to two doc of 'GET' and 'DELETE' method subs.
2020-07-14 17:32:53 -04:00
Kevin Scott Adams ac1c31f2d0 Added 302 and 307 code handlers on initial API connection and various
other changes.

- Add logic to freenas_api_connect to handle a '302 Found' which seems
to mean it does not handle v1.0 API's. Fixes #60.
- Add logic to freenas_api_connect to handle a '307 Temporary Redirect'
which is when the redirect http to https box is checked. Fixes #59.
- Redesign the RegEx that validates and pulls the version information
from the API system/version call. This is due to a format like
TrueNAS-12.0-BETA instead of [FreeNAS|TrueNAS]-12.0-U1.1. Also make sure
empty RegEx return variables are zero (0) so the version number that is
formulated is correct (e.g. 12000000, 11030302). Fixes #60.
- During testing needed to add a check due to the
api/v2.0/system/version returning a quoted string where
api/v1.0/system/version returned a JSON-format data.
- Tested against baremetal FreeNAS 11.3-U3.2 and virtual TrueNAS
12.0-BETA machines.
2020-07-07 11:14:30 -04:00
Kevin Scott Adams aa11d596bd Code efficiency improvements.
- Cleaned up the API calling routine so it will only create one instance
of the REST::Client module. Typically was 10 to 30+ instances per VM
disk CRUD.
- Due to this some variables needed to be “global” to the plugin.
- Removed some superfluous hashes and variables.
- Repetitive code reduced to only on call.
- Created one “Frankenstein” hash that retains all API methods,
variables and json body structures for each API version used by the
plugin.
- One call to the global configuration in the version check to reduce
execution time.
- Cleanup some code and formatting.
- Added some comments.
2020-06-11 12:49:28 -04:00
Kevin Scott Adams 977b00a178 FreeNAS API v2.0 features
- Allows the use of FreeNAS API v2.0 so we can finally remove a VM drive
from the Proxmox VE GUI.
- Created a Frankenstein of out of FreeNAS.pm to allow 'one module to
rule them all' for v1.0 and v2.0 API's to FreeNAS.
- librest-client-perl changes so the call can have a <body/> to it on
GET and DELETE methods.
- Some spelling mistakes.
- Better syslog entries.
- More debbugging for testing purposes to the syslog.
2020-06-09 12:31:31 -04:00
Kevin Scott Adams 006dacc479 Add librest-client-perl to the package.
- librest-client-perl needs to be updated so it can have data in the
body of the call for GET and DELETE's.
2020-06-09 09:59:39 -04:00
Kevin Scott Adams 826e1e7ad2 Merge branch 'master' of
https://github.com/TheGrandWazoo/freenas-proxmox.git

Conflicts:
	perl5/PVE/Storage/ZFSPlugin.pm.patch
	stable-6/perl5/PVE/Storage/ZFSPlugin.pm.patch
2019-10-22 21:18:35 -04:00
Kevin Scott Adams 0e14d207ad Update patch sets
- Update ZFSPlugin.pm patch for Proxmox libpve-storage-perl version
6.0-9
2019-10-13 13:03:43 -04:00
Kevin Scott Adams c25fa0fe58 Update patch sets
- Update pvemanagerlib.js patch for Proxmox version to 6.0-7
- Update ZFSPlugin.pm patch for Proxmox version 6.0-8
- Adjusted new directory structure and added some missing files.
2019-10-13 09:26:52 -04:00
Kevin Scott Adams 4b46f2240f Updated patches for the latest Proxmox VE updates and added donation
button.

- Update README.md to include a requested donation button for the
project. Thank you.
- Updated patch for pvemanagerlib.js for Proxmox VE pve-manager: 6.0-5
- Updated patch for apidoc.js for Proxmox VE pve-docs: 6.0-4
- Updated patch for ZFSPlugin.pm for Proxmox VE libpve-storage-perl:
6.0-6
2019-08-07 22:57:22 -04:00
Kevin Scott Adams 5091f0ae12 Patches created for latest 5.4 branch of Proxmox VE
- Patch created for pve-manager 5.4-11 specifically for pvemanagerlib.js
- Patch created for pve-manager 5.4-13 specifically for pvemanagerlib.js
- Patch created for libpve-storage-perl 5.0-44 specifically for
ZFSPlugin.pm
2019-08-05 18:02:01 -04:00
Kevin Scott Adams 16b3bd1a0b Update the FreeNAS-API related files to the latest Proxmox VE
- Updated apidoc.js.patch to reflect pve-docs: 5.4-2
- New apidoc-5.4-2_1.js.patch
- Updated pvemanagerlib.js.patch to reflect pve-manager: 5.4-5
- New pvemanagerlib-5.4-5_1.js.patch
- Updated ZFSPlugin.pm.patch to reflect libpve-storage-perl: 5.0-42
- New ZFSPlugin-5.0-42.pm.patch
- Revised the README.md
2019-05-11 11:13:54 -04:00
Kevin Scott Adams ea73c4f7c9 Update to latest Proxmox VE update
- Update ZFSPlugin.pm to reflect 'libpve-storage-perl: 5.0-38'
- Update pvemanager.js to reflect 'pve-manager: 5.3-11'
- Update pve-docs.js to reflect 'pve-docs: 5.3-3'
2019-02-26 21:28:15 -05:00
KevinAdams 2f22e60626 Remove ZFSPoolPlugin.pm from repo.
- Mistakenly added the ZFSPoolPlugin.pm to the repo.
2019-02-04 10:48:05 -05:00
Kevin Scott Adams d0efcd49c5 Update Proxmox VE patches to 5.3-6
- Updated ZFSPlugin.pm.patch for libpve-storage-perl: 5.3-34
- Updated pvemanagerlib.js.patch for pve-manager: 5.3-6
- Patch file versions will now have a '_<#>' (e.g. 5.3-34_1) appended to
it denoting the patch version for that Proxmox VE lib/file version.
2018-12-24 07:36:33 -05:00
KevinAdams 5e255a6208 Fixed block size issue and updated for Proxmox VE 5.3-5
- Removed code in FreeNAS.PM that used the blocksize field from the GUI
for the use of iSCSI block size causing migration and large extent
sizes. Fixes issues #9 and #33.
- Prefixed 'ZFS' to the 'Block Size' label on the GUI.
- Updated for 5.3-5
2018-12-22 13:18:51 -05:00
Kevin Scott Adams 5e5f649fe1 Fix ZFS error: Unrecognized command "list_extent"
- A regression error that added the 'list_extent" method to the
$lun_cmds array in ZFSPlugin.pm. Fixes issue #32.
2018-12-15 09:50:44 -05:00
Kevin Scott Adams 82fe27242f Update patch set to the latest version of Proxmox-VE: 5.3-1
- Updated patch file for pvemanagerlib.js to pve-manager: 5.3-5
- Updated patch file for apidoc.js to pve-docs: 5.3-1
- Updated patch file for ZFSPlugin.pm to libpve-storage-perl: 5.0-33
2018-12-13 07:37:03 -05:00
Kevin Scott Adams 64afc5a70a Fix 'Parameter verification failed' when editing
- When changing the 'target' and 'pool' field to be editable in the Edit
ZFS over iSCSI panel it created an issue when you went to save any
change to that panel. The parameters were defined as { fixed => 1 }. Now
I don't know the backend of this but I changed it to { optional => 1} or
to { fixed => 0} they both worked. So I went with the { fixed => 0 } on
the 'target' and 'pool'. This fixes issue #27.
- Added a file with the version of the 'libpve-storage-perl' (e.g. -
ZFSPlugin-5.0-30.pm.patch to follow each version has it is changed.
2018-10-28 21:37:06 -04:00
Kevin Scott Adams 9a14130375 Updated files to latest Proxmox repo as of 2018-10-16.
- Updated pvemanagerlib.js.patch to reflect pve-manager version 5.2-9
- Updated ZFSPlugin.pm.patch to reflect libpve-storage-perl version
5.0-30
- Fixed issue with multipathing when NOT multipathing on the run_command
function.
- Fixed whitespace in README.md
2018-10-16 08:19:01 -04:00
Kevin Scott Adams 0e58a78e4a Add functionality for iSCSI multipathing
- Added patch from @tl8roy to add multipathing to the ZFSPluging.pm for
FreeNAS. I believe this was only patched and tested for FreeNAS.  I
tested WITHOUT using multipathing and I have had no issues. Closes
enhancement request #15 and reference #11.
2018-08-19 16:35:28 -04:00
Kevin Scott Adams 94d897f7d1 Added API Host
- This change allows the API traffic to be on a different interface then
the iSCSI Provider interface. This allows the selection of the FreeNAS
WebGUI address for HTTP/HTTPS to be on a specific interface instead of
"ALL" (0.0.0.0) interfaces.  If the API Host is not defined then the API
traffic will default to the iSCSI Provider interface.
2018-08-19 15:28:39 -04:00
Kevin Scott Adams 3f6059e75f Add test for the FreeNAS API
- Add a simple API test using the FreeNAS API call to get its version
number, which could prove useful in future versions. Closes #17
- Whitespace cleanup
2018-07-31 22:40:22 -04:00
Kevin Scott Adams 42edb8614e Few housekeeping changes
- Whitespace cleanup
- Removed the 'hardcoded' username and password. Will not throw an error
if it is not defined or blank in /etc/pve/storage.cfg for each ZFS via
ISCSI definition.
- Used a Ternary (Elvis - ?:) Operator for the scheme variable.
2018-07-31 21:33:21 -04:00
Tristan Lostroh cce719afb7 Add a function to return NAA
Adds a function to return NAA. This is required to match the WWID for multipath
2018-07-16 09:16:10 +10:00
Krzysztof Raczkowski d3c477c40d Support for SSL access to FreeNAS API. 2018-07-11 12:41:19 +02:00
Kevin Scott Adams a29328e7fa Undef $iscsi_lunid in FreeNAS.pm on line 457
- The perl code was creating a new variable in the ‘if’ code block by
using 'my' at the beginning of the assignment at line 452. Once the code
exited this block that variable was released and now defaulted to the
main block variable at line 441 which is still set to 'undef'. Removing
the 'my' from the assignment line allowed the code to use the main block
$iscsi_lunid variable.

Fixes issue #7
2018-07-09 15:38:54 -04:00
Kevin Scott Adams 23990fc008 Add tainted checking to iscsi_lunid
- So we do not have to change the /usr/bin/pvedaemon a small fix to
check the $item->{'iscsi_target'} varaible from the API call is needed.
This closes issue #3.
2018-06-26 15:00:09 -04:00
Kevin Scott Adams 1943a454a2 Small README.md update
- And the removed files did not take place on the last commit.
2018-06-10 23:07:40 -04:00
Eugene Chow 25fcda3598 Fixed malfunctioning patches 2018-06-04 15:06:36 +08:00
Kevin Scott Adams ad8ca3aca8 Obtain the FreeNAS username and password values from storage.cfg
- Added the ability to process two new fields in the storage.cfg under
an iSCSI configuration.
   freenas_user <username>
   freenas_password <password>
No more editing the FreeNAS.pm file
2018-04-18 14:27:19 -04:00
Kevin Scott Adams af42dfd008 Change iscsi_lunid values of 'undef' to 0 (zero)
- In FreeNAS 11.1 it seems like a Lun of 0 becomes 'Auto'. When the API
returns the targent_to_extent data any Lun of "Auto" become 'undef' and
causes issues and errors in the syslog. This change corrects this
behavior. Have tested with adding, detaching, removing and "Moving Disk"
functions of Proxmox version 5.1-51.
2018-04-18 13:53:29 -04:00
Kevin Scott Adams 6931f4a232 - Code formatting and whitespace cleanup
Just conformed to a certain coding, space and comment that was already
in the code for better readability.
2018-04-18 12:59:44 -04:00
Andrew Beam f3c51d8e8a
fix problem with more than 20 LUNs
Disable FreeNAS API result limits
2017-12-08 14:12:54 +01:00
Beam 3797983e1a fix sort luns numerically 2017-10-12 15:23:59 +02:00
Ondrej Bima d91ec2d0b8 first commit 2017-05-19 12:15:42 +02:00