Opened 14 years ago

Closed 9 years ago

#7 closed enhancement (fixed)

Block munging - "split this block" and "shrink this block"

Reported by: Kris Deugau Owned by:
Priority: minor Milestone: 3.0
Version: Keywords:

Description (last modified by Kris Deugau)

Allow an existing allocation to be split or shrunk instead of having to deallocate and reallocate

Change History (9)

comment:1 by Kris Deugau, 9 years ago

Milestone: 3.0

comment:2 by Kris Deugau, 9 years ago

(In [702]) /trunk

Add "split block" feature. See #7. May still need a little tweaking
("List IPs" link for pools, refiddle rDNS template records?)

Also stubbed out "shrink block" (branch for "split block"), and added
a placeholder for "merge blocks".

comment:3 by Kris Deugau, 9 years ago

(In [705]) /trunk

  • Complete internal handling for "shrink block". See #7 (more or less).
  • Add "breadcrumb" navigation fragments to split/shrink prep and do pages
  • Add link to pool IP list on edit and split/shrink prep pages
  • Shave off some useless code showing the split results
  • Catch the theoretically impossible case of "no subact value" on submitting split/shrink form

Still need to add calls to monkey rDNS on split/shrink changes

comment:4 by Kris Deugau, 9 years ago

(In [707]) /trunk

Add rDNS update call for splitBlock(). Requires dnsadmin:trunk/@r680
for new RPC sub splitTemplate. See #7.
IPDB::splitBlock() required a change in argument handling to make sure
all the necessary bits got through where needed for the RPC call.

comment:5 by Kris Deugau, 9 years ago

Description: modified (diff)
Summary: Block munging - "split this block"Block munging - "split this block" and "shrink this block"

comment:6 by Kris Deugau, 9 years ago

(In [713]) /trunk

Review and revise splitBlock() and shrinkBlock() to properly handle
n-depth nested allocation structures, as well as making sure master
blocks can be shrunk or split without leaving dangling data. See #7.

comment:7 by Kris Deugau, 9 years ago

(In [739]) /dev

Fix a lurking bug before I forget; splitting a largish container with
mostly free space would result in mangled free blocks. Any block larger
than the split size needs to be split as well and distributed between the
appropriate containers. See #7.

comment:8 by Kris Deugau, 9 years ago

(In [775]) /trunk

Further tweak splitBlock() to handle a contained block the same size as
its container - may be a common case in legacy data. Still leaves more
deeply nested same-sized container trees hanging but those should be
rare enough than manual intervention can patch it up well enough. See #7.

comment:9 by Kris Deugau, 9 years ago

Resolution: fixed
Status: newclosed

Resolving this ticket as "Feature implemented"

Note: See TracTickets for help on using tickets.