Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release v2.0 Beta 2 #1042

Merged
merged 73 commits into from
Apr 5, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
3fe3151
Filter on mac address on interface
marc-us Mar 18, 2017
f2dc287
Filter on mac address on interface
marc-us Mar 18, 2017
f26253e
Filter on mac address on interface
marc-us Mar 18, 2017
007fe6a
Markdown fixes
jeremystretch Mar 22, 2017
66a6a8f
Closes #983: Include peer device names when listing circuits in devic…
jeremystretch Mar 22, 2017
32bf17c
Closes #978: Allow filtering device types by function and subdevice role
jeremystretch Mar 22, 2017
0899a10
Only attempt to process session key if user is authenticated
jeremystretch Mar 22, 2017
b875cea
Filter on mac address on interface via API
marc-us Mar 23, 2017
fb6cfa4
Merge pull request #974 from marc-us/develop
jeremystretch Mar 23, 2017
c0417c1
Closes #972: Add ability to filter connections list by device name
jeremystretch Mar 23, 2017
93a4327
Merge branch 'api2' into v2-develop
jeremystretch Mar 23, 2017
47120fa
Rack assignment is optional for devices
jeremystretch Mar 23, 2017
ef59f38
Release v1.9.3
jeremystretch Mar 23, 2017
a51f5ed
Post-release version bump
jeremystretch Mar 23, 2017
576e21e
Merge branch 'develop' into v2-develop
jeremystretch Mar 23, 2017
48141c0
Fixes #996
Mar 24, 2017
066a3b8
update `api_url` with new interfaces endpoint.
Mar 24, 2017
22bfac7
fix remaining legacy api url paths.
Mar 24, 2017
cf3e7f9
Merge pull request #997 from digitalocean/livesearch-fix
jeremystretch Mar 27, 2017
8103c39
Fixes #991: Correct server error on "create and connect another" inte…
jeremystretch Mar 27, 2017
e8fd0f3
Order interfaces naturally for Device A
jeremystretch Mar 27, 2017
5d022a5
Closes #985: Added preserve_key to get-session-key endpoint
jeremystretch Mar 28, 2017
116ceb6
Added tests for get-session-key API endpoint
jeremystretch Mar 28, 2017
69e54ab
Token admin form improvements
jeremystretch Mar 28, 2017
28761fc
Closes #362: Added per_page query parameter to control pagination pag…
jeremystretch Mar 28, 2017
58e4bf1
Closes #973: Removed extraneous admin UI functions
jeremystretch Mar 28, 2017
afdb246
Initial work on global search
jeremystretch Mar 29, 2017
6813787
Fixes #1013: Show edit/delete reservation buttons on rack view
jeremystretch Mar 29, 2017
6542b8b
Base64 decoding tweaks
jeremystretch Mar 29, 2017
d04436a
Search form improvements
jeremystretch Mar 29, 2017
a5dc91c
Introduced SearchTable for improved performance
jeremystretch Mar 29, 2017
66615f1
Prettied things up a bit
jeremystretch Mar 29, 2017
aefc6ff
Merge branch 'global-search' into v2-develop
jeremystretch Mar 29, 2017
998f892
Updated the docstring for Device
jeremystretch Mar 30, 2017
f6ea09e
Removed duplicate 'Regions' section
jeremystretch Mar 30, 2017
3ed3e93
Appended a version flag to all CSS/JS references to invalidate browse…
jeremystretch Mar 30, 2017
b643939
Initial work on #152: Image attachments
jeremystretch Mar 31, 2017
1c38f70
Fixes #1021: Corrected evaluation of API token expiration time
jeremystretch Mar 31, 2017
50d7fd7
Added image attachments to sites and devices
jeremystretch Mar 31, 2017
6bbdc2b
Enable serving static media through Django
jeremystretch Mar 31, 2017
a67fc64
Fixes #1025: Applied missing API view filters
jeremystretch Apr 3, 2017
2c1fa62
Implemented API endpoints for ImageAttachments
jeremystretch Apr 3, 2017
2cde9a8
Merge pull request #1026 from digitalocean/image-attachments
jeremystretch Apr 3, 2017
8799a15
What would we do without you, PEP8?
jeremystretch Apr 3, 2017
05d3354
Fixes #1022: Record user actions when creating IP addresses in bulk
jeremystretch Apr 3, 2017
51725d3
Added a search box to the navigation menu
jeremystretch Apr 3, 2017
36c31a2
Fixed deprecated references to ImageAttachment.obj
jeremystretch Apr 3, 2017
80267aa
Documented image attachments
jeremystretch Apr 3, 2017
0b681c4
Removed survey notice
jeremystretch Apr 3, 2017
ea1d4e7
Updated static CSS/JS libraries
jeremystretch Apr 3, 2017
ca293dc
Corrected topology map link
jeremystretch Apr 3, 2017
2bb6387
Fixes #1028: Corrected API endpoint URL name in IPAddressForm
jeremystretch Apr 3, 2017
5187138
Refactored custom field serializers
jeremystretch Apr 4, 2017
f11bb25
Only show Custom Fields on IP Address Assign Page if custom fields ar…
snazy2000 Apr 4, 2017
11ae938
Fixes #1027: Fixed nav menu highlighting when BASE_PATH is set
jeremystretch Apr 4, 2017
3b2c740
Release v1.9.4
jeremystretch Apr 4, 2017
aa54e14
Post-release version bump
jeremystretch Apr 4, 2017
409c9c4
Merge branch 'develop' into v2-develop
jeremystretch Apr 4, 2017
1dcb0b5
#1033: Disable the debug toolbar templates panel by default due to a …
jeremystretch Apr 4, 2017
d2bd4a2
#1033: Convert ColorSelect to a templatized widget
jeremystretch Apr 4, 2017
99a3e0c
Corrected CustomFieldModelSerializer behavior when serializing lists …
jeremystretch Apr 4, 2017
c09473f
#1033: Convert SelectWithDisabled to a templatized widget
jeremystretch Apr 4, 2017
1ae0820
#1033: Update ArrayFieldSelectMultiple for Django 1.11
jeremystretch Apr 4, 2017
ae5bf74
#1033: Tweak SelectWithDisabled option template
jeremystretch Apr 4, 2017
280d98b
#1033: Updated requirements.txt for Django 1.11
jeremystretch Apr 4, 2017
4308b8a
Fixes #1034: Missing migration
jeremystretch Apr 4, 2017
a18e1a0
Release v1.9.4-r1
jeremystretch Apr 4, 2017
78adaec
Post-release version bump
jeremystretch Apr 4, 2017
0d7ee6f
Merge branch 'develop' into v2-develop
jeremystretch Apr 4, 2017
bde1f6d
Bump migration index due to a new migration in 1.9.4-r1
jeremystretch Apr 4, 2017
f34a8ff
Extend upgrade script to remove cached bytecode
jeremystretch Apr 5, 2017
178f7b4
Added API endpoints for console and power connections
jeremystretch Apr 5, 2017
f000df1
Release v2.0-beta2
jeremystretch Apr 5, 2017
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
**The [2017 NetBox User Survey](https://goo.gl/forms/75HnNS2iE0Y1hVFH3) is open!** Please consider taking a moment to respond. Your feedback helps shape the pace and focus of NetBox development. The survey will remain open until 2017-03-31. Results will be published on the mailing list.

---

![NetBox](docs/netbox_logo.png "NetBox logo")

NetBox is an IP address management (IPAM) and data center infrastructure management (DCIM) tool. Initially conceived by the network engineering team at [DigitalOcean](https://www.digitalocean.com/), NetBox was developed specifically to address the needs of network and infrastructure engineers.
Expand Down
2 changes: 1 addition & 1 deletion docs/api/authentication.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ $ curl -H "Accept: application/json; indent=4" http://localhost/api/dcim/sites/
}
```

However, if the `[LOGIN_REQUIRED](../configuration/optional-settings/#login_required)` configuration setting has been set to `True`, all requests must be authenticated.
However, if the [`LOGIN_REQUIRED`](../configuration/optional-settings/#login_required) configuration setting has been set to `True`, all requests must be authenticated.

```
$ curl -H "Accept: application/json; indent=4" http://localhost/api/dcim/sites/
Expand Down
2 changes: 1 addition & 1 deletion docs/api/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ Vary: Accept
}
```

The default page size derives from the `[PAGINATE_COUNT](../configuration/optional-settings/#paginate_count)` configuration setting, which defaults to 50. However, this can be overridden per request by specifying the desired `offset` and `limit` query parameters. For example, if you wish to retrieve a hundred devices at a time, you would make a request for:
The default page size derives from the [`PAGINATE_COUNT`](../configuration/optional-settings/#paginate_count) configuration setting, which defaults to 50. However, this can be overridden per request by specifying the desired `offset` and `limit` query parameters. For example, if you wish to retrieve a hundred devices at a time, you would make a request for:

```
http://localhost:8000/api/dcim/devices/?limit=100
Expand Down
4 changes: 0 additions & 4 deletions docs/data-model/dcim.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,6 @@ Sites can be assigned an optional facility ID to identify the actual facility ho

Sites can be arranged geographically using regions. A region might represent a continent, country, city, campus, or other area depending on your use case. Regions can be nested recursively to construct a hierarchy. For example, you might define several country regions, and within each of those several state or city regions to which sites are assigned.

### Regions

Sites can optionally be arranged by geographic region. A region might represent a continent, country, city, campus, or other area depending on your use case. Regions can be nested recursively to construct a hierarchy.

---

# Racks
Expand Down
7 changes: 7 additions & 0 deletions docs/data-model/extras.md
Original file line number Diff line number Diff line change
Expand Up @@ -123,3 +123,10 @@ access-switch\d+,oob-switch\d+
```

Note that you can combine multiple regexes onto one line using semicolons. The order in which regexes are listed on a line is significant: devices matching the first regex will be rendered first, and subsequent groups will be rendered to the right of those.

# Image Attachments

Certain objects within NetBox (namely sites, racks, and devices) can have photos or other images attached to them. (Note that _only_ image files are supported.) Each attachment may optionally be assigned a name; if omitted, the attachment will be represented by its file name.

!!! note
If you experience a server error while attempting to upload an image attachment, verify that the system user NetBox runs as has write permission to the media root directory (`netbox/media/`).
29 changes: 0 additions & 29 deletions netbox/circuits/admin.py

This file was deleted.

4 changes: 2 additions & 2 deletions netbox/circuits/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ class CircuitTerminationForm(BootstrapMixin, forms.ModelForm):
label='Device',
widget=Livesearch(
query_key='q',
query_url='dcim-api:device_list',
query_url='dcim-api:device-list',
field_to_update='device'
)
)
Expand All @@ -192,7 +192,7 @@ class CircuitTerminationForm(BootstrapMixin, forms.ModelForm):
required=False,
label='Interface',
widget=APISelect(
api_url='/api/dcim/devices/{{device}}/interfaces/?type=physical',
api_url='/api/dcim/interfaces/?device_id={{device}}&type=physical',
disabled_indicator='is_connected'
)
)
Expand Down
52 changes: 35 additions & 17 deletions netbox/circuits/tables.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import django_tables2 as tables
from django_tables2.utils import Accessor

from utilities.tables import BaseTable, ToggleColumn
from utilities.tables import BaseTable, SearchTable, ToggleColumn

from .models import Circuit, CircuitType, Provider

Expand All @@ -19,27 +19,33 @@

class ProviderTable(BaseTable):
pk = ToggleColumn()
name = tables.LinkColumn('circuits:provider', args=[Accessor('slug')], verbose_name='Name')
asn = tables.Column(verbose_name='ASN')
account = tables.Column(verbose_name='Account')
name = tables.LinkColumn()
circuit_count = tables.Column(accessor=Accessor('count_circuits'), verbose_name='Circuits')

class Meta(BaseTable.Meta):
model = Provider
fields = ('pk', 'name', 'asn', 'account', 'circuit_count')


class ProviderSearchTable(SearchTable):
name = tables.LinkColumn()

class Meta(SearchTable.Meta):
model = Provider
fields = ('name', 'asn', 'account')


#
# Circuit types
#

class CircuitTypeTable(BaseTable):
pk = ToggleColumn()
name = tables.LinkColumn(verbose_name='Name')
name = tables.LinkColumn()
circuit_count = tables.Column(verbose_name='Circuits')
slug = tables.Column(verbose_name='Slug')
actions = tables.TemplateColumn(template_code=CIRCUITTYPE_ACTIONS, attrs={'td': {'class': 'text-right'}},
verbose_name='')
actions = tables.TemplateColumn(
template_code=CIRCUITTYPE_ACTIONS, attrs={'td': {'class': 'text-right'}}, verbose_name=''
)

class Meta(BaseTable.Meta):
model = CircuitType
Expand All @@ -52,16 +58,28 @@ class Meta(BaseTable.Meta):

class CircuitTable(BaseTable):
pk = ToggleColumn()
cid = tables.LinkColumn('circuits:circuit', args=[Accessor('pk')], verbose_name='ID')
type = tables.Column(verbose_name='Type')
provider = tables.LinkColumn('circuits:provider', args=[Accessor('provider.slug')], verbose_name='Provider')
tenant = tables.LinkColumn('tenancy:tenant', args=[Accessor('tenant.slug')], verbose_name='Tenant')
a_side = tables.LinkColumn('dcim:site', accessor=Accessor('termination_a.site'), orderable=False,
args=[Accessor('termination_a.site.slug')])
z_side = tables.LinkColumn('dcim:site', accessor=Accessor('termination_z.site'), orderable=False,
args=[Accessor('termination_z.site.slug')])
description = tables.Column(verbose_name='Description')
cid = tables.LinkColumn(verbose_name='ID')
provider = tables.LinkColumn('circuits:provider', args=[Accessor('provider.slug')])
tenant = tables.LinkColumn('tenancy:tenant', args=[Accessor('tenant.slug')])
a_side = tables.LinkColumn(
'dcim:site', accessor=Accessor('termination_a.site'), orderable=False,
args=[Accessor('termination_a.site.slug')]
)
z_side = tables.LinkColumn(
'dcim:site', accessor=Accessor('termination_z.site'), orderable=False,
args=[Accessor('termination_z.site.slug')]
)

class Meta(BaseTable.Meta):
model = Circuit
fields = ('pk', 'cid', 'type', 'provider', 'tenant', 'a_side', 'z_side', 'description')


class CircuitSearchTable(SearchTable):
cid = tables.LinkColumn(verbose_name='ID')
provider = tables.LinkColumn('circuits:provider', args=[Accessor('provider.slug')])
tenant = tables.LinkColumn('tenancy:tenant', args=[Accessor('tenant.slug')])

class Meta(SearchTable.Meta):
model = Circuit
fields = ('cid', 'type', 'provider', 'tenant', 'description')
212 changes: 0 additions & 212 deletions netbox/dcim/admin.py

This file was deleted.

Loading