Project

General

Profile

Feature #35749

Umbrella #25917: Move business logic from Django to middlewared and make websocket API feature complete

Convert Storage:Volume Manager to Middlewared

Added by William Grzybowski over 1 year ago. Updated 9 months ago.

Status:
Ready for Testing
Priority:
No priority
Assignee:
William Grzybowski
Category:
Middleware
Target version:
Estimated time:
(Total: 0.00 h)
Severity:
Med High
Reason for Closing:
Reason for Blocked:
Needs QA:
Yes
Needs Doc:
No
Needs Merging:
No
Needs Automation:
Yes
Support Suite Ticket:
n/a
Hardware Configuration:

Description

Ticket to track transfer of business logic from Django/GUI to middlewared and making use of middleware client in GUI.

Risk
This is a high risk task, volume creation/extension will be moved from backend and may cause several undesired effects (failure in creation, wrong creation, errors improperly reported, etc)

Acceptance Criteria
When this is done we should be able to create volumes of several different topologies, extend existing volumes and get errors on invalid configurations (e.g. trying to extend a raidz volume with a stripe).


Subtasks

Feature #36113: Enable all pool features by defaultDoneWilliam Grzybowski

Related issues

Related to FreeNAS - Feature #36318: Ensure geli key file syncs to standby nodeReady for Testing
Has duplicate FreeNAS - Feature #37946: Return progress for pool creationClosed

Associated revisions

Revision 1a87af04 (diff)
Added by William Grzybowski over 1 year ago

fix(middlewared/job): set `loop` on Job init This fixes race condition when using wait_sync before job is RUNNING. Ticket: #35749

Revision 44e7cf9f (diff)
Added by William Grzybowski over 1 year ago

feat(middlewared/zfs): add zfs.pool.create Ticket: #35749

Revision 325fbda2 (diff)
Added by William Grzybowski over 1 year ago

feat(middlewared/disk): add private methods to format disk and get gptid Ticket: #35749

Revision 0e2d6eb9 (diff)
Added by William Grzybowski over 1 year ago

feat(middlewared/pool): add basic pool.create method Its functional as far as creating a pool. Encryption support still has to be added. Ticket: #35749

Revision 86a7be0e (diff)
Added by William Grzybowski over 1 year ago

feat(middlewared/zfs): implement zfs.pool.delete Ticket: #35749

Revision a6a5540e (diff)
Added by William Grzybowski over 1 year ago

feat(middlewared/pool): improvements to pool.create - Do not create swap on log/cache - Create zpool cache file dir - Inherit pool dataset mountpoint - Create pool database entry - Create scrub database entry - Restart services after pool creation Ticket: #35749

Revision bcd112fb (diff)
Added by William Grzybowski over 1 year ago

feat(middlewared): allow to create encrypted pools on pool.create Ticket: #35749

Revision 3abee32c (diff)
Added by William Grzybowski over 1 year ago

feat(middlewared/zfs): allow zfs.pool.extend to add new vdevs Ticket: #35749

Revision 8bb52f4f (diff)
Added by William Grzybowski over 1 year ago

feat(middlewared/pool): implement pool.update to add new vdevs Ticket: #35749

Revision c871a293 (diff)
Added by William Grzybowski over 1 year ago

feat(middlewared): RAIDZ1 not RAIDZ Ticket: #35749

Revision c797dc33 (diff)
Added by William Grzybowski over 1 year ago

feat(gui): create volume using middleware in Volume Manager Ticket: #35749

Revision 87ba57c7 (diff)
Added by William Grzybowski over 1 year ago

feat(middlewared/pool): allow to set dedup on pool create Ticket: #35749

Revision 548d4406 (diff)
Added by William Grzybowski over 1 year ago

feat(gui): use middleware to create volume using Manual Setup Ticket: #35749

Revision 098005bf (diff)
Added by William Grzybowski over 1 year ago

feat(middlewared/pool): do not allow different vdev type on pool.update Ticket: #35749

Revision 94745fb8 (diff)
Added by William Grzybowski over 1 year ago

feat(gui): create volume using middleware in Volume Manager Ticket: #35749

Revision 593f45ee (diff)
Added by William Grzybowski over 1 year ago

feat(middlewared/pool): allow to set dedup on pool create Ticket: #35749

Revision 48c678e5 (diff)
Added by William Grzybowski over 1 year ago

feat(gui): use middleware to create volume using Manual Setup Ticket: #35749

Revision ebed2108 (diff)
Added by William Grzybowski over 1 year ago

feat(middlewared/pool): do not allow different vdev type on pool.update Ticket: #35749

Revision 6d5c3931 (diff)
Added by William Grzybowski over 1 year ago

feat(middlewared/zfs): allow zfs.pool.extend to add new vdevs Ticket: #35749

Revision 8e86d79b (diff)
Added by William Grzybowski over 1 year ago

feat(middlewared/pool): implement pool.update to add new vdevs Ticket: #35749

Revision 0dee8d7d (diff)
Added by William Grzybowski over 1 year ago

feat(middlewared): RAIDZ1 not RAIDZ Ticket: #35749

Revision ffee8ef8 (diff)
Added by William Grzybowski over 1 year ago

feat(gui): create volume using middleware in Volume Manager Ticket: #35749

Revision df0039f5 (diff)
Added by William Grzybowski over 1 year ago

feat(middlewared/pool): allow to set dedup on pool create Ticket: #35749

Revision 1d25535d (diff)
Added by William Grzybowski over 1 year ago

feat(gui): use middleware to create volume using Manual Setup Ticket: #35749

Revision a1adc0d2 (diff)
Added by William Grzybowski over 1 year ago

feat(middlewared/pool): do not allow different vdev type on pool.update Ticket: #35749

Revision c5fdd875 (diff)
Added by William Grzybowski over 1 year ago

feat(gui): create volume using middleware in Volume Manager Ticket: #35749

Revision f5b8cbc5 (diff)
Added by William Grzybowski over 1 year ago

feat(middlewared/pool): allow to set dedup on pool create Ticket: #35749

Revision 276cc640 (diff)
Added by William Grzybowski over 1 year ago

feat(gui): use middleware to create volume using Manual Setup Ticket: #35749

Revision e21c4aad (diff)
Added by William Grzybowski over 1 year ago

feat(middlewared/pool): do not allow different vdev type on pool.update Ticket: #35749

Revision f4e8d8aa (diff)
Added by William Grzybowski over 1 year ago

feat(gui): use middleware to create volume in Wizard Ticket: #35749

Revision b281b3d4 (diff)
Added by William Grzybowski over 1 year ago

rm(notifier): now unused create volume methods Ticket: #35749

Revision 96932ae9 (diff)
Added by William Grzybowski over 1 year ago

feat(middlewared/pool): turn pool.{create,update} into jobs Ticket: #35749

Revision baa4e02f (diff)
Added by William Grzybowski over 1 year ago

feat(middlewared): make jobs record exc_info and handle validation errors Ticket: #35749

Revision fcdc432c (diff)
Added by William Grzybowski over 1 year ago

feat(middlewared/disk): unused variable and wrong CallError Ticket: #35749

Revision 04e78560 (diff)
Added by William Grzybowski over 1 year ago

fix(middlewared/disk): check disk size prior to wipe disk Suggested by Vladimir Vinogradenko Ticket: #35749

Revision 2e3298fe (diff)
Added by William Grzybowski over 1 year ago

fix(middlewared/pool) schema names for pool.{create,update} validation Ticket: #35749

Revision 3bb902e1 (diff)
Added by William Grzybowski over 1 year ago

rm(middlewared/pool): makes no sense to restart smartd on pool.create Ticket: #35749

Revision b632142b (diff)
Added by William Grzybowski over 1 year ago

fix(middlewared/job): set `loop` on Job init This fixes race condition when using wait_sync before job is RUNNING. Ticket: #35749

Revision 24efa4b7 (diff)
Added by William Grzybowski over 1 year ago

feat(middlewared/zfs): add zfs.pool.create Ticket: #35749

Revision cb2b4e2a (diff)
Added by William Grzybowski over 1 year ago

feat(middlewared/disk): add private methods to format disk and get gptid Ticket: #35749

Revision bc9542bc (diff)
Added by William Grzybowski over 1 year ago

feat(middlewared/pool): add basic pool.create method Its functional as far as creating a pool. Encryption support still has to be added. Ticket: #35749

Revision 1e330879 (diff)
Added by William Grzybowski over 1 year ago

feat(middlewared/zfs): implement zfs.pool.delete Ticket: #35749

Revision aac7bb05 (diff)
Added by William Grzybowski over 1 year ago

feat(middlewared/pool): improvements to pool.create - Do not create swap on log/cache - Create zpool cache file dir - Inherit pool dataset mountpoint - Create pool database entry - Create scrub database entry - Restart services after pool creation Ticket: #35749

Revision b98d9f87 (diff)
Added by William Grzybowski over 1 year ago

feat(middlewared): allow to create encrypted pools on pool.create Ticket: #35749

Revision e646600b (diff)
Added by William Grzybowski over 1 year ago

feat(middlewared/zfs): allow zfs.pool.extend to add new vdevs Ticket: #35749

Revision dce2c0d2 (diff)
Added by William Grzybowski over 1 year ago

feat(middlewared/pool): implement pool.update to add new vdevs Ticket: #35749

Revision e702eae3 (diff)
Added by William Grzybowski over 1 year ago

feat(middlewared): RAIDZ1 not RAIDZ Ticket: #35749

Revision 049fa5ff (diff)
Added by William Grzybowski over 1 year ago

feat(gui): create volume using middleware in Volume Manager Ticket: #35749

Revision 71299301 (diff)
Added by William Grzybowski over 1 year ago

feat(middlewared/pool): allow to set dedup on pool create Ticket: #35749

Revision 50285564 (diff)
Added by William Grzybowski over 1 year ago

feat(gui): use middleware to create volume using Manual Setup Ticket: #35749

Revision ab6ef8e4 (diff)
Added by William Grzybowski over 1 year ago

feat(middlewared/pool): do not allow different vdev type on pool.update Ticket: #35749

Revision 91c55cbf (diff)
Added by William Grzybowski over 1 year ago

feat(gui): use middleware to create volume in Wizard Ticket: #35749

Revision 923fc840 (diff)
Added by William Grzybowski over 1 year ago

rm(notifier): now unused create volume methods Ticket: #35749

Revision 63d18069 (diff)
Added by William Grzybowski over 1 year ago

feat(middlewared/pool): turn pool.{create,update} into jobs Ticket: #35749

Revision dd52bdf1 (diff)
Added by William Grzybowski over 1 year ago

feat(middlewared): make jobs record exc_info and handle validation errors Ticket: #35749

Revision bb365bb6 (diff)
Added by William Grzybowski over 1 year ago

feat(middlewared/disk): unused variable and wrong CallError Ticket: #35749

Revision 036e9c70 (diff)
Added by William Grzybowski over 1 year ago

fix(middlewared/disk): check disk size prior to wipe disk Suggested by Vladimir Vinogradenko Ticket: #35749

Revision 79dac3f2 (diff)
Added by William Grzybowski over 1 year ago

fix(middlewared/pool) schema names for pool.{create,update} validation Ticket: #35749

Revision 90ec0bdb (diff)
Added by William Grzybowski over 1 year ago

rm(middlewared/pool): makes no sense to restart smartd on pool.create Ticket: #35749

History

#1 Updated by William Grzybowski over 1 year ago

  • Status changed from Unscreened to Screened

#2 Updated by William Grzybowski over 1 year ago

  • Status changed from Screened to In Progress

#3 Updated by William Grzybowski over 1 year ago

#4 Updated by Dru Lavigne over 1 year ago

  • Has duplicate Feature #37946: Return progress for pool creation added

#5 Updated by William Grzybowski over 1 year ago

  • Related to Feature #36318: Ensure geli key file syncs to standby node added

#6 Updated by William Grzybowski over 1 year ago

  • Status changed from In Progress to Ready for Testing

#7 Updated by Dru Lavigne 10 months ago

  • Target version changed from 11.3 to 11.3-BETA1

Also available in: Atom PDF