mirror of
https://github.com/netbox-community/netbox.git
synced 2025-12-20 04:12:25 -06:00
Vapor API Scaffold (#2)
* Updated README * Start of Vapor Netbox Module * Add api/vapor route * Ignore virtualenv * Query devices assigned to users * Add vapor/interfaces route * adds docker-compose file to manage postgres/redis - Initial test suite for the vapor api module. (Django tests are kind of hard and slow) * Init pipeline - Adds a tox harness to run the test suite - Test running in tox - Clone example config to config.py - Add the kubernetes agent + dependent services to complete tests in the podspec - some really hacky sed configuration on the fly * Init Docker build - Adds the dockerfile assets from vapor-ware/netbox-docker - Slight changes to keep the root directory clean (nesting dirs in docker path) - Adds a rudimentary job label to build on micro-k8s builder - adds docker build/publish stages to the pipeline for branch builds. - dockerignore the project dir as its fetching packages from GHAPI * Cleanups * More unittests
This commit is contained in:
82
docker/initializers/custom_fields.yml
Normal file
82
docker/initializers/custom_fields.yml
Normal file
@@ -0,0 +1,82 @@
|
||||
# text_field:
|
||||
# type: text
|
||||
# label: Custom Text
|
||||
# description: Enter text in a text field.
|
||||
# required: false
|
||||
# weight: 0
|
||||
# on_objects:
|
||||
# - dcim.models.Device
|
||||
# - dcim.models.Rack
|
||||
# - dcim.models.Site
|
||||
# - dcim.models.DeviceType
|
||||
# - ipam.models.IPAddress
|
||||
# - ipam.models.Prefix
|
||||
# - tenancy.models.Tenant
|
||||
# - virtualization.models.VirtualMachine
|
||||
# integer_field:
|
||||
# type: integer
|
||||
# label: Custom Number
|
||||
# description: Enter numbers into an integer field.
|
||||
# required: true
|
||||
# filter_logic: loose
|
||||
# weight: 10
|
||||
# on_objects:
|
||||
# - tenancy.models.Tenant
|
||||
# selection_field:
|
||||
# type: selection
|
||||
# label: Choose between items
|
||||
# required: false
|
||||
# filter_logic: exact
|
||||
# weight: 30
|
||||
# on_objects:
|
||||
# - dcim.models.Device
|
||||
# choices:
|
||||
# - value: First Item
|
||||
# weight: 10
|
||||
# - value: Second Item
|
||||
# weight: 20
|
||||
# - value: Third Item
|
||||
# weight: 30
|
||||
# - value: Fifth Item
|
||||
# weight: 50
|
||||
# - value: Fourth Item
|
||||
# weight: 40
|
||||
# selection_field_auto_weight:
|
||||
# type: selection
|
||||
# label: Choose between items
|
||||
# required: false
|
||||
# filter_logic: loose
|
||||
# weight: 30
|
||||
# on_objects:
|
||||
# - dcim.models.Device
|
||||
# choices:
|
||||
# - value: A
|
||||
# - value: B
|
||||
# - value: C
|
||||
# - value: "D like deprecated"
|
||||
# weight: 999
|
||||
# - value: E
|
||||
# boolean_field:
|
||||
# type: boolean
|
||||
# label: Yes Or No?
|
||||
# required: true
|
||||
# filter_logic: loose
|
||||
# default: "false" # important: but "false" in quotes!
|
||||
# weight: 90
|
||||
# on_objects:
|
||||
# - dcim.models.Device
|
||||
# url_field:
|
||||
# type: url
|
||||
# label: Hyperlink
|
||||
# description: Link to something nice.
|
||||
# required: true
|
||||
# filter_logic: disabled
|
||||
# on_objects:
|
||||
# - tenancy.models.Tenant
|
||||
# date_field:
|
||||
# type: date
|
||||
# label: Important Date
|
||||
# required: false
|
||||
# filter_logic: disabled
|
||||
# on_objects:
|
||||
# - dcim.models.Device
|
||||
15
docker/initializers/device_roles.yml
Normal file
15
docker/initializers/device_roles.yml
Normal file
@@ -0,0 +1,15 @@
|
||||
# - name: switch
|
||||
# slug: switch
|
||||
# color: Grey
|
||||
# - name: router
|
||||
# slug: router
|
||||
# color: Cyan
|
||||
# - name: load-balancer
|
||||
# slug: load-balancer
|
||||
# color: Red
|
||||
# - name: server
|
||||
# slug: server
|
||||
# color: Blue
|
||||
# - name: patchpanel
|
||||
# slug: patchpanel
|
||||
# color: Black
|
||||
23
docker/initializers/device_types.yml
Normal file
23
docker/initializers/device_types.yml
Normal file
@@ -0,0 +1,23 @@
|
||||
# - model: Model 1
|
||||
# manufacturer: Manufacturer 1
|
||||
# slug: model-1
|
||||
# u_height: 2
|
||||
# custom_fields:
|
||||
# text_field: Description
|
||||
# - model: Model 2
|
||||
# manufacturer: Manufacturer 1
|
||||
# slug: model-2
|
||||
# custom_fields:
|
||||
# text_field: Description
|
||||
# - model: Model 3
|
||||
# manufacturer: Manufacturer 1
|
||||
# slug: model-3
|
||||
# is_full_depth: false
|
||||
# u_height: 0
|
||||
# custom_fields:
|
||||
# text_field: Description
|
||||
# - model: Other
|
||||
# manufacturer: NoName
|
||||
# slug: other
|
||||
# custom_fields:
|
||||
# text_field: Description
|
||||
27
docker/initializers/devices.yml
Normal file
27
docker/initializers/devices.yml
Normal file
@@ -0,0 +1,27 @@
|
||||
# - name: server01
|
||||
# device_role: server
|
||||
# device_type: Other
|
||||
# site: AMS 1
|
||||
# rack: rack-01
|
||||
# face: Front
|
||||
# position: 1
|
||||
# custom_fields:
|
||||
# text_field: Description
|
||||
# - name: server02
|
||||
# device_role: server
|
||||
# device_type: Other
|
||||
# site: AMS 2
|
||||
# rack: rack-02
|
||||
# face: Front
|
||||
# position: 2
|
||||
# custom_fields:
|
||||
# text_field: Description
|
||||
# - name: server03
|
||||
# device_role: server
|
||||
# device_type: Other
|
||||
# site: SING 1
|
||||
# rack: rack-03
|
||||
# face: Front
|
||||
# position: 3
|
||||
# custom_fields:
|
||||
# text_field: Description
|
||||
16
docker/initializers/groups.yml
Normal file
16
docker/initializers/groups.yml
Normal file
@@ -0,0 +1,16 @@
|
||||
# applications:
|
||||
# users:
|
||||
# - technical_user
|
||||
# readers:
|
||||
# users:
|
||||
# - reader
|
||||
# writers:
|
||||
# users:
|
||||
# - writer
|
||||
# permissions:
|
||||
# - add_device
|
||||
# - change_device
|
||||
# - delete_device
|
||||
# - add_virtualmachine
|
||||
# - change_virtualmachine
|
||||
# - delete_virtualmachine
|
||||
6
docker/initializers/manufacturers.yml
Normal file
6
docker/initializers/manufacturers.yml
Normal file
@@ -0,0 +1,6 @@
|
||||
# - name: Manufacturer 1
|
||||
# slug: manufacturer-1
|
||||
# - name: Manufacturer 2
|
||||
# slug: manufacturer-2
|
||||
# - name: NoName
|
||||
# slug: noname
|
||||
19
docker/initializers/platforms.yml
Normal file
19
docker/initializers/platforms.yml
Normal file
@@ -0,0 +1,19 @@
|
||||
# # Allowed rpc clients are: juniper-junos, cisco-ios, opengear
|
||||
# - name: Platform 1
|
||||
# slug: platform-1
|
||||
# manufacturer: Manufacturer 1
|
||||
# napalm_driver: driver1
|
||||
# napalm_args: "{'arg1': 'value1', 'arg2': 'value2'}"
|
||||
# rpc_client: juniper-junos
|
||||
# - name: Platform 2
|
||||
# slug: platform-2
|
||||
# manufacturer: Manufacturer 2
|
||||
# napalm_driver: driver2
|
||||
# napalm_args: "{'arg1': 'value1', 'arg2': 'value2'}"
|
||||
# rpc_client: opengear
|
||||
# - name: Platform 3
|
||||
# slug: platform-3
|
||||
# manufacturer: NoName
|
||||
# napalm_driver: driver3
|
||||
# napalm_args: "{'arg1': 'value1', 'arg2': 'value2'}"
|
||||
# rpc_client: juniper-junos
|
||||
12
docker/initializers/rack_roles.yml
Normal file
12
docker/initializers/rack_roles.yml
Normal file
@@ -0,0 +1,12 @@
|
||||
# - name: Role 1
|
||||
# slug: role-1
|
||||
# color: Pink
|
||||
# - name: Role 2
|
||||
# slug: role-2
|
||||
# color: Cyan
|
||||
# - name: Role 3
|
||||
# slug: role-3
|
||||
# color: Grey
|
||||
# - name: Role 4
|
||||
# slug: role-4
|
||||
# color: Teal
|
||||
24
docker/initializers/racks.yml
Normal file
24
docker/initializers/racks.yml
Normal file
@@ -0,0 +1,24 @@
|
||||
# - site: AMS 1
|
||||
# name: rack-01
|
||||
# role: Role 1
|
||||
# type: 4-post cabinet
|
||||
# width: 19 inches
|
||||
# u_height: 47
|
||||
# custom_fields:
|
||||
# text_field: Description
|
||||
# - site: AMS 2
|
||||
# name: rack-02
|
||||
# role: Role 2
|
||||
# type: 4-post cabinet
|
||||
# width: 19 inches
|
||||
# u_height: 47
|
||||
# custom_fields:
|
||||
# text_field: Description
|
||||
# - site: SING 1
|
||||
# name: rack-03
|
||||
# role: Role 3
|
||||
# type: 4-post cabinet
|
||||
# width: 19 inches
|
||||
# u_height: 47
|
||||
# custom_fields:
|
||||
# text_field: Description
|
||||
10
docker/initializers/regions.yml
Normal file
10
docker/initializers/regions.yml
Normal file
@@ -0,0 +1,10 @@
|
||||
# - name: Singapore
|
||||
# slug: singapore
|
||||
# - name: Amsterdam
|
||||
# slug: amsterdam
|
||||
# - name: Downtown
|
||||
# slug: downtown
|
||||
# parent: Amsterdam
|
||||
# - name: Suburbs
|
||||
# slug: suburbs
|
||||
# parent: Amsterdam
|
||||
32
docker/initializers/sites.yml
Normal file
32
docker/initializers/sites.yml
Normal file
@@ -0,0 +1,32 @@
|
||||
# - name: AMS 1
|
||||
# slug: ams1
|
||||
# region: Downtown
|
||||
# status: 1
|
||||
# facility: Amsterdam 1
|
||||
# asn: 12345
|
||||
# custom_fields:
|
||||
# text_field: Description
|
||||
# - name: AMS 2
|
||||
# slug: ams2
|
||||
# region: Downtown
|
||||
# status: 1
|
||||
# facility: Amsterdam 2
|
||||
# asn: 54321
|
||||
# custom_fields:
|
||||
# text_field: Description
|
||||
# - name: AMS 3
|
||||
# slug: ams3
|
||||
# region: Suburbs
|
||||
# status: 1
|
||||
# facility: Amsterdam 3
|
||||
# asn: 67890
|
||||
# custom_fields:
|
||||
# text_field: Description
|
||||
# - name: SING 1
|
||||
# slug: sing1
|
||||
# region: Singapore
|
||||
# status: 1
|
||||
# facility: Singapore 1
|
||||
# asn: 09876
|
||||
# custom_fields:
|
||||
# text_field: Description
|
||||
13
docker/initializers/users.yml
Normal file
13
docker/initializers/users.yml
Normal file
@@ -0,0 +1,13 @@
|
||||
# technical_user:
|
||||
# api_token: 0123456789technicaluser789abcdef01234567 # must be looooong!
|
||||
# reader:
|
||||
# password: reader
|
||||
# writer:
|
||||
# password: writer
|
||||
# permissions:
|
||||
# - add_device
|
||||
# - change_device
|
||||
# - delete_device
|
||||
# - add_virtualmachine
|
||||
# - change_virtualmachine
|
||||
# - delete_virtualmachine
|
||||
Reference in New Issue
Block a user