Opened 12 years ago

Closed 7 years ago

#5 closed enhancement (fixed)

Allow arbitrarily nested containers/allocations

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

Description

Current allocation structure is a little too limiting, need to expand it to support deeper suballocation structures

Change History (40)

comment:1 Changed 9 years ago by Kris Deugau

(In [554]) /trunk

Work in progress, see #5:
Update allocateBlock() to support new concept for allocation nesting

comment:2 Changed 9 years ago by Kris Deugau

(In [555]) /trunk

Work in progress, see #5:
Fix allocateBlock() update's "simple" case; don't delete things
before retriving details we need

comment:3 Changed 9 years ago by Kris Deugau

(In [556]) /trunk

Work in progress, see #5:
Update addMaster() to handle new table logic and fields

comment:4 Changed 9 years ago by Kris Deugau

(In [557]) /trunk

Work in progress, see #5:
Update getBlockData() to handle new table logic and fields

comment:5 Changed 9 years ago by Kris Deugau

(In [558]) /trunk

Work in progress, see #5:
Update deleteBlock() to handle new table logic and fields

comment:6 Changed 9 years ago by Kris Deugau

(In [559]) /trunk

Work in progress, see #5:
Fix subtle ordering bug in deleteBlock() handling legacy netblocks
allocated from a static IP pool; the whole point of the special
handling is to NOT make the IPs in it available for general
allocation.

comment:7 Changed 9 years ago by Kris Deugau

(In [560]) /trunk

Work in progress, see #5:
Update listSummary() for new table logic and fields

comment:8 Changed 9 years ago by Kris Deugau

(In [561]) /trunk

Work in progress, see #5:
Replace listMaster() and listRBlock() with listSubs() due to
the merge of routing and other container types.

comment:9 Changed 9 years ago by Kris Deugau

(In [562]) /trunk

Work in progress, see #5:
Update listFree() to handle new table logic and fields

comment:10 Changed 9 years ago by Kris Deugau

(In [563]) /trunk

Work in progress, see #5:
Update listPool() to handle the fringes of the new table structures
that touch it.

comment:11 Changed 9 years ago by Kris Deugau

(In [564]) /trunk

Work in progress, see #5:
Update getTypeList() for new dropdown list requirements

comment:12 Changed 9 years ago by Kris Deugau

(In [565]) /trunk

Work in progress, see #5:
Narrow the focus in ipParent() to make sure we only return a
netblock that's an IP pool

comment:13 Changed 9 years ago by Kris Deugau

(In [566]) /trunk

Work in progress, see #5:
Replace $webvar{action} branches for showmaster and showrouted
with showsubs, calling listSubs()

comment:14 Changed 9 years ago by Kris Deugau

(In [567]) /trunk

Work in progress, see #5:
Forgot to add $webvar{action} branch for showsubs in r566

comment:15 Changed 9 years ago by Kris Deugau

(In [568]) /trunk

Work in progress, see #5:
Also forgot about the new template for the new page in r566

comment:16 Changed 9 years ago by Kris Deugau

(In [569]) /trunk

Work in progress, see #5:
Template update for index page

comment:17 Changed 9 years ago by Kris Deugau

(In [570]) /trunk

Work in progress, see #5:
Update IP pool listing with new fields.
Also update the listing itself to allow allocation of unassigned IPs
right from the list, rather than forcing use of either admin tools
or guided assignment.

comment:18 Changed 9 years ago by Kris Deugau

(In [572]) /trunk

Work in progress, see #5:
Get-info-about-freeblocks cleanups

  • Update/tweak getPoolSelect() for rdepth and saner SQL
  • Update findAllocateFrom() for new table logic and structures

comment:19 Changed 9 years ago by Kris Deugau

(In [574]) /trunk

Work in progress, see #5:
Tweak initPool(), and calls to initPool(), to properly set rdepth
Also a minor error-reporting cleanup in initPool()

comment:20 Changed 9 years ago by Kris Deugau

(In [575]) /trunk

Work in progress, see #5:
Update "add new allocation" templates and calling code for new
table logic and fields.
Also update listpool page to pass around rdepth as necessary

comment:21 Changed 9 years ago by Kris Deugau

(In [576]) /trunk

Work in progress, see #5:
Update templates and calling code for allocation update to pass
around rdepth as needed, and to set some breadcrumbs-lite to
make it easier to get back where you were

comment:22 Changed 9 years ago by Kris Deugau

(In [577]) /trunk

Work in progress, see #5:
Update templates and calling code for allocation delete to pass
and use rdepth
Start adding support for reparented netblocks; when a reparented
block is deleted, link back not only to the parent it was living
in, but the "true" parent the free space was merged with.

comment:23 Changed 9 years ago by Kris Deugau

(In [584]) /trunk

Fix bug introduced due to stuffing rdepth into alloc_from for
guided allocation of static IPs. See #5.

comment:24 Changed 9 years ago by Kris Deugau

Milestone: 3.0

comment:25 Changed 7 years ago by Kris Deugau

/trunk

rdepth got too hairy and stupid. Redesigned allocation structure so that:

  • All netblock allocations are in the allocations table
  • Usage netblocks can be assigned directly under a master, instead of needing an extra "routed block" container
  • Underlying data structure supports assigning the same IP/block in different VRFs. Not sure it really makes sense to actually allow this for publicly-routeable IPs and in any case the UI still won't gel.
  • Data structure also allows for "reparenting" a block from deep in the tree up higher, or even across to a different branch (to represent real routing structures). "All" you need to do is change the parent ID.

comment:26 Changed 7 years ago by Kris Deugau

(In [625]) /trunk

Commit 1/mumble for work done intermittently over the past ~year.
See #5, comment 25:

  • Update IPDB::listSummary() for new DB structure

comment:27 Changed 7 years ago by Kris Deugau

(In [626]) /trunk

Commit 2/mumble for work done intermittently over the past ~year.
See #5, comment 25:

  • Update index/summary page template to match r625

comment:28 Changed 7 years ago by Kris Deugau

(In [627]) /trunk

Commit 3/mumble for work done intermittently over the past ~year.
See #5, comment 25:

  • Update suballocation list/summary; IPDB::listSubs(), main.cgi:showSubs(), and page template

comment:29 Changed 7 years ago by Kris Deugau

(In [628]) /trunk

Commit 4/mumble for work done intermittently over the past ~year.
See #5, comment 25:

  • Update IPDB::addMaster() and success/error page template

comment:30 Changed 7 years ago by Kris Deugau

(In [629]) /trunk

Missing variable declaration that should have been in r628. *sigh*.
See #5.

comment:31 Changed 7 years ago by Kris Deugau

(In [630]) /trunk

Commit 2/mumble for work done intermittently over the past ~year.
See #5, comment 25:

  • Update free blocks lister IPDB::listFree()
  • Update IP pool lister IPDB::listPool() and IP pool template page

comment:32 Changed 7 years ago by Kris Deugau

(In [631]) /trunk

Missed main.cgi update for IP pool page in r630. See #5.

comment:33 Changed 7 years ago by Kris Deugau

(In [630]) /trunk

Commit 5/mumble for work done intermittently over the past ~year.
See #5, comment 25:

  • Update free blocks lister IPDB::listFree()
  • Update IP pool lister IPDB::listPool() and IP pool template page

comment:34 Changed 7 years ago by Kris Deugau

(In [632]) /trunk

Commit 6/mumble for work done intermittently over the past ~year.
See #5, comment 25:

  • Update IPDB::getMasterList()
  • Update IPDB::getTypeList()

comment:35 Changed 7 years ago by Kris Deugau

(In [633]) /trunk

Commit 7/mumble for work done intermittently over the past ~year.
See #5, comment 25:

  • Netblock assignment
    • Update several supporting data-grabber subs in IPDB.pm
    • Update assignment sub
    • Update data-entry, confirmation, and acceptance/error page templates and related main.cgi sections

comment:36 Changed 7 years ago by Kris Deugau

(In [634]) /trunk

Commit 8/mumble for work done intermittently over the past ~year.
See #5, comment 25:

  • Netblock update

comment:37 Changed 7 years ago by Kris Deugau

(In [636]) /trunk

Commit 9/mumble for work done intermittently over the past ~year.
See #5, comment 25:

  • Update getBlockData(); used several places (likely including previous commits in this series)

comment:38 Changed 7 years ago by Kris Deugau

(In [637]) /trunk

Commit 10/mumble for work done intermittently over the past ~year.
See #5, comment 25:

  • Update another miscellaenous sub; getBlockRDNS()

comment:39 Changed 7 years ago by Kris Deugau

(In [638]) /trunk

Commit 10/mumble for work done intermittently over the past ~year.
See #5, comment 25:

  • Update block delete. Includes a little current work to fix outstanding edge case issues

comment:40 Changed 7 years ago by Kris Deugau

Resolution: fixed
Status: newclosed

Closing this ticket. The new data structure is working, and allows for flexibility not yet in the UI.

Note: See TracTickets for help on using tickets.