* Register a sqlalchemy event listener on all models that are subclasses of HasId to make sure id is set on object creation so the id can be referenced prior to commit. * Add TODO entry to think about refactoring out sqlalchemy from the plugin
		
			
				
	
	
		
			32 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
Import the tags and meta objects from newtonian
 | 
						|
* Clean up and subset aicq/aiclib for quark
 | 
						|
* Implement All port methods
 | 
						|
Figure out a better way to patch the allowed attributes in the API (bulk create subnets in the network create etc)
 | 
						|
Import and implement zope transaction all the way down
 | 
						|
Implement API extensions for basically everything
 | 
						|
* CRUD routes
 | 
						|
CRUD IP Allocations
 | 
						|
* CRUD MacAddressRanges
 | 
						|
* AIC doesn't support creating multiple switches on the same network. i.e. if we expand past the port count per switch, undefined
 | 
						|
 | 
						|
 | 
						|
Later:
 | 
						|
Maybe implement a straight passthrough driver for testing and debugging purposes
 | 
						|
Separate all SQL alchemy out of the plugin
 | 
						|
 | 
						|
 | 
						|
Allocations Controller Extension:
 | 
						|
 | 
						|
Instead of assigning ports through IP address, we need a separate way of handling that. One 
 | 
						|
suggestion was to provide a generic "allocations" controller with a means of defining what 
 | 
						|
resources you want to allocate for a particular instance.
 | 
						|
 | 
						|
Examples:
 | 
						|
A traditional instance allocation, requesting a MAC, IP and Port.
 | 
						|
If I were a baremetal server, I may have a MAC but want an IP address and port on a given network for bridging. 
 | 
						|
I might simply want to allocate MAC addresses for devices serving a cloud, but don't need any connections on a particular network.
 | 
						|
As a customer, I might want to build an unmanaged isolated network, wherein I assign addresses via a DHCP server I set up myself
 | 
						|
I need an IP address for a device that sits on the same network
 | 
						|
I need to assign additional IPs to a device I already have, on a port I've already attached to
 | 
						|
 |