1
0
mirror of https://github.com/peeringdb/peeringdb.git synced 2024-05-11 05:55:09 +00:00
Commit Graph

80 Commits

Author SHA1 Message Date
be9deaf2f8 Support 202309 (#1458)
* fixes #1260 - playwright tests
fixes #1394 - v2 search failing to find some names
fixes #1374 - Search to include new objects: Campus & Carrier
fixes #1164 - better rdap error reporting
fixes #1368 - Facility data export into Google Earth KMZ
fixes #1328 - Support web updates from a source of truth
fixes #1257 - Help text covers non-compliant email addresses
fixes #1313 - Improve email confirmation control - add 3 month option & maybe set new default value
fixes #1380 - Reset 'Social Media' to '[]' if field has no value

* linting

* remove target=_blank

* bump ES version to 8.10

* Cache and ES updates (#1459)

* elasticsearch major version pin and relock

* set decimal fields to python value on client save for load_data

* force use of redis password

* add default_meta to render

* add generated, clean up var names

* run pre-commit

* update ES for https and password

* rm cruft

* isort

---------

Co-authored-by: 20C <code@20c.com>
Co-authored-by: Matt Griswold <grizz@20c.com>
2023-10-24 12:17:03 -05:00
0784265f80 Support 202308 test performance (#1440)
* Sorting icon from google material icons #1419
Manual IX-F import request queue can get stuck #1182
IX Object Creation Per Policy #1364
Creating a new network not possible #1401
IX-F Importer: Cosmetic issue with "resolved" emails and double-slashes in URLs after the FQDN #1334
Add a "Delete Affiliation" button/option to the profile #1226
Redis and negative caching #1431

* linting

* update gen_docs to use py3.11

* fix issue with api docs schema regen

* regen apidoc schema and db schema graph

* fix username validation for social media

* Add test case for social media validation

* linting

* tests shouldnt use redis

* also fix session cache setup (although not used atm)

* linting

* all caches to localmemcache during testing

---------

Co-authored-by: 20C <code@20c.com>
Co-authored-by: Matt Griswold <grizz@20c.com>
2023-09-12 20:54:04 -05:00
3167679b3c Support 202307 (#1426)
* Support 202307

Add hover tip to describe meaning of routeserver icon #1381

Add Campus and Carrier Tooltips #1361

Display website URL on all non-org objects #1300

Make the search field on cp/peeringdb_server/network/ aware of leading AS/ASN #1027

Add search field to `/cp/peeringdb_server/` AC views (#1239)

IX-F Importer: IX-F Member Data not being nullified after IX stops/changes import #1360

Include carrier and campus objects in the API #1352

* fixes to website propagation

* fix tests

* django-security-keys to 1.1.0 and relock

* poetry relock

* linting

* comment django-peeringdb dev mount

* add org website field to admin forms

* fix templatetag name collision between django-security-keys and peeringdb

* linting

* django-peeringdb to 3.2.0 and poetry relock

* remove debug message

---------

Co-authored-by: 20C <code@20c.com>
2023-08-15 18:40:18 +00:00
020b267886 Support 202306 (#1411)
* Support 202306

fixes #997
fixes #1219
fixes #1299
fixes #1344
fixes #1370
fixes #1404

* fix PEERINGDB_SYNC_CACHE_URL
2023-07-11 13:20:46 +00:00
c736e60910 Support 202305 (#1402)
* dependency updates #1311

* poetry relock

* linting

* fix global stats cache test and remove timed test

* pin django-peeringdb 3.1.0

* remove deprecated cors test

---------

Co-authored-by: 20C <code@20c.com>
2023-06-20 00:26:06 +00:00
4b10b8e41d Support 202304 (#1383)
* Don't allow the first and last addresses being assigned #1241

Show all e-mail addresses associated with a username #1291

Add permission 'manage peering sessions' #1290

Put an Icon next to user name on https://www.peeringdb.com/org/nnnn#users if the user is using U2F #1238

Tie TOTP devices and Webauthn Security Keys to the user account #1339

v2 Search (#1204)

pin django peeringdb 3.0.1 and poetry relock

linting

* fix codeql warning: DOM text reinterpreted as HTML

* fix global stats tests

---------

Co-authored-by: 20C <code@20c.com>
2023-05-16 18:04:05 +00:00
9b19492fee Support 202303 (#1371)
* add social media fields

Clearly show when a facility is part of a campus #1336

fix get carrier with parameter

Duplicate address(es) should result in rejection of JSON export and notification of IXP

linting

move style to css file

social media field fixes

fix tests

remove social media fields from entity creation

change label to "+ Social Media"

poetry relock

fix migration hierarchy

fix missing template tag

pin django-peeringdb to support_202303 branch

django-cors-headers to 3.13 as 3.14 breaks stuff

fix pdb_load issues

PEERINGDB_SYNC_USERNAME

linting

django-peeringdb 3.0.0

* use .text() to set social media label content

---------

Co-authored-by: 20C <code@20c.com>
2023-04-11 21:04:36 +00:00
c1b13c5d53 fix/improve ix-f stale netixlan deletion process and add additional tests (#1356)
* fix/improve ix-f stale netixlan deletion process and add additional tests

* linting

* remove debug messages

* remove redundant test
2023-03-20 12:34:56 +00:00
5b1d19528d better title tags #1281 (#1345)
It should be impossible to save an active entity under an entity that is marked as deleted. #389

Implement auto-removal of stale networks according to DOTF recommendations #1271

Rename Private Peering Facilities to Interconnection Facilities in the UI #749

poetry relock

linting
2023-03-13 18:22:22 +00:00
5eb925e319 Support 202301 (#1329)
* fix next redirect when using U2F 2FA auth (#1191)

* Added self identifier to API

* fix migrations hierarchy after merging in previous support branch

* campus object

Co-authored-by: Stefan Pratter <stefan@20c.com>

* fix out of bound error message
add city / country to campus view

* fix tests

* relock poetry

* linting

* linting

* fix docs regen

* regen docs

* linting

* refactor self entity view to support carrier and campus object types and also make it easier to support additional object types in the future

* remove debug message

---------

Co-authored-by: Gajanan Patil <dipaksavaliya.python@gmail.com>
2023-02-15 07:55:01 +00:00
a0f1970fec Support 202211 (#1304)
* Carrier object implementation #909

* API keys: disabling of user account by a PeeringDB admin does not disable access via a User API key. Also no disable mech, only revoke. #1140

* Ops: django needs lightweight healthcheck route that confirms database connectivity #1284

* Ops: various indexes are needed #1285

* API requests with invalid Authentication headers should notify users in some way. #1220

* Allow user to change account username #1130

* UX to remove carriers from facilities more inline the other similar UX

* more UX fixes for removing carriers from facilities

* Cache hints are needed for optimal CDN use #970

* fixes Commandline tool "Run command" button gone #1278

* RIR status gets deleted when changes are made to the network #1279

* Improve MTU field #658

* CSRF cookie not set error from email confirmation view #1296

* expose CSP_CONNECT_SRC

* fix confirm email path checking in session middleware

* Ops: Emails to OPERATIONS_EMAIL need to be rate-limited #1282

* add website field to carrier ux

* website field on carrier optional with org fallback

* linting

* add *.google-analytics.com to CSP_CONNECT_SRC

* poetry relock

* fix issues with confirm-email reverse during session creation validation

* fix tests

* fix tests

* pin django-peeringdb to support_202211

* linting

* django ratelimit to <4

* regen docs

* fix automated net stats to only include networks with status `ok` #1283

* linting

* poetry lock

Co-authored-by: Matt Griswold <grizz@20c.com>
2023-01-18 10:32:46 -06:00
2e8788b595 Support 202210 (#1286)
* Allow REALPEER to overwrite GHOSTPEER netixlan entry, if asn and IPv6/v4 addresses matches the IX-F Members Export information #983

* Lightweight user notification mechanism #758

* do not allow affiliation with a deleted organisation #953

* Improve readability when users have special permissions #659

* fix advanced search export when api-cache exist and no filters were supplied #1153

* Ops: Throttle strings with "Response size" should be renamed "Repeated request" #1168

* allow ixlan prefix to be changed / deleted regardless of existence of netixlans in the address space #924

* linting

* poetry relock

* remove debug code

* linting

* fixed Reset IX-F suggestions link non-functional #1253

* solved UI shows own email when viewing affiliation requests for an organization #1250

* Adjust "Add Facility" menu to include newly defined fields #1091

* Footer "Global System Statistics" should be cached within django instance, not updated with every page load #1283

* linting

* django-handleref to 1.1.0 and relock poetry

* GLOBAL_STATS_CACHE_DURATION default to 900 seconds

* remove vscode and idea

* remove Ctl/dev/docker-compose.debug.yml

* remove unsused variable

* rename STATS to __STATS

* linting

* regen docs
2022-11-08 11:25:32 -06:00
2ee1220c58 Support 202209 (#1259)
* Add export tool to https://peeringdb.com/cp/peeringdb_server #586

* IX-F importer fails on nulled ipv4 / ipv6 properties in vlan_list entries #1244

* Adding a POC must require an email address or phone number #1044

* Selenium tests

* ping django-peeringdb and rdap and poetry relock

* linting

* linting

* remove selenium tests cruft

* comment out django-peeringdb and search data mounts

* regen docs
2022-10-11 07:45:07 -05:00
b7bfd631a3 Support 202208 (#1240)
* Make it possible to display the TOTP secret in text form instead of QR code only #947

* Show username *and* email address when user is logged in #484

* fix asn auto tool #959

* Trigger IX-F import when network sets allow_ixp_update to "yes" #499

* Ops: Log Melissa payload in django.log #1150

* Error-handling of failed creation of DeskPRO ticket #981

* email management changes #267 #736 #737 #738 #907

* block api write operations when using basic-auth to authenticate an MFA enabled account

* add robots txt #1213

* DB clean-up of elderly ophaned user accounts #380

* linting

* fix migrations

* fix tests

* dont flag new users for deletion

* linting

* docs

Co-authored-by: dpoarch <dpoarch@20c.com>
2022-09-12 16:29:28 +03:00
d5c3429254 Support 202206 (#1207)
* Organization Merging Tool only offers the first 10 matches #941

* AC Change User Permission broken #1043

* change rs peer icon and move to policy column (#727)

* An account with admin status can not have permissions #1157

* add rir_* fields to keep track of ASN status #473

* poetry relock for rdap 1.3.0

* Ops: Limit Django session creation for unauthenticated requests (#1205)

* refactor 941 changes to honor grappelli field configuration and also fix broken end anchors

* check term has a value

* fix tests

* poetry reloc and pin django-peeringdb to 2.14.0

* fix middleware test

* linting

* set more reasonable default RIR_ALLOCATION_DATA_CACHE_DAYS

* better default dir for RIR_ALLOCATION_DATA_PATH

* fix csv export for advanced search

* fix issues with tests failing on CSRF_USE_SESSIONS when they are using RequestFactory

* tox.ini for flake8 options

* regen docs

* regen docs

Co-authored-by: David Poarch <dpoarch@20c.com>
2022-07-15 13:47:59 -05:00
bee1788bca Add Support for Enums against Locale Field (#1202)
* Upgrade Dependencies to its secure versions for bootstrap, jquery and DOMPurify

* Enforce Session Timeouts

* Revert "Enforce Session Timeouts"

This reverts commit ff82ea91b2.

* Fix bad merge

* Check Locale Field against Enums

Co-authored-by: Prithvi Nath Manikonda <manikop@amazon.com>
2022-07-13 17:28:40 +03:00
3ee0d1ea5e Support 202205 (#1188)
* Add "Last login" to https://peeringdb.com/cp/peeringdb_server/user/ #879

* Bug in renumbering tool #660

* Add the IX name and id to IX-F Import Emails #963

* Use username to create deskpro person when no first-name / last-name data exists #1057

* Organization merge tool usergroup issues #930

* Exempt superusers (PeeringDB Admin Committee & Operations Committee admins) from throttling #1172

* add missing migration for #1172

* linting

* poetry relock

* adapt to django-two-factor-auth template-tag renaming changes

* increase default for DATA_QUALITY_MAX_SPEED to 5Tb

* regenerate docs

* fix api test for netixlan max speed validation

* pdb_api_cache command needs to disable CSRF_USE_SESSIONS before it runs

Co-authored-by: David Poarch <dpoarch@20c.com>
2022-06-15 07:23:26 -05:00
60c7066870 fix melissa anonymous throttling django-admin management (#1124) (#1167)
* fix melissa throttling setting name mismatches (#1124)

* add tests to check EnvironmentSetting setup sanity

* linting

* prep 2.37.0-beta3

Co-authored-by: Matt Griswold <grizz@20c.com>
2022-05-17 08:38:13 -05:00
de531889f9 Support 202204 (#1163)
* Organization oauth apps #960

* data change notifications (#403)

* handle sponsorships during org merge (#942)

* linting

* fix migrations

* fix network view no longer working for anonymous user

* code quality pass

* linting

* poetry relock

* poetry relock

* missing migrations

* linting

* regenerate docs
2022-05-10 16:56:30 +03:00
505760aa8d Support 202203 (#1144)
* Do not show objects in status "pending" on the UI #784

* Fix peeringdb.js bug introduced in #784

* 500 Error during login for 2FA enabled accounts with unverified email address #996

* Django-Admin: adding a network with existing asn fails with internal error #1035

* Some command-line-tool executions are not logged #1119

* Ops: API throttling of repeated requests #1126

* Ops: response header X-Auth-ID to augment logging #1120

* Allow rate-limiting of melissa enabled api functionality. #1124

* State / Province normalization #1079

* Log melissa requests #1122

* remove debug messages

* bump django-handleref to 1.0.2

* Need consolidated app logs #845

* pin django peeringdb to 2.13 and relock poetry

* pin django-restframework-apikey to 2.1.0

* linting

* migrations

* docs regenerate

* docs

* linting

Co-authored-by: David Poarch <dpoarch@20c.com>
Co-authored-by: Stefan Pratter <stefan@20c.com>
2022-04-12 15:39:19 -05:00
4bbe4f1d3d Beta fixes 202202 (#1112)
* remove survey notifications

* fixing old reference of IXF_IMPORTER_DAYS_UNTIL_TICKET through EnvironmentSettings, this setting is no longer controlled through that and should come straight from settings

* fix pdb_load_data ixlan.status error

Co-authored-by: Stefan Pratter <stefan@20c.com>
2022-02-10 06:17:26 -06:00
e2619a001f Support 202201 (#1111)
* remove survey notifications

* substantially rate limit unauthenticated /api/ queries to encourage authenticated queries #853

* move api throttle class configuration to settings (#853)

* #722 with a more generic validation approach

* Add organisations and registered users to "Global System Statistics" in footer #620

* poetry relock

* linting

* regen docs

* fix test data

Co-authored-by: Stefan Pratter <stefan@20c.com>
Co-authored-by: David Poarch <dpoarch@20c.com>
2022-02-08 13:14:27 -06:00
677f94f550 Support 202111 (#1101)
* Block registering private ASN ranges

* Add a continental region field for facilities #1007

* Incorrect order of search results #232

* Allow users to upload a small logo to their record #346

* Sponsor badge CSS and text translation issues #453

* IXP and Facility summary #18

* Add sales email and phone contact to ix object #949

* Increase timeout timer for IX-F JSON importer to 30s #962

* IX-F manually triggered import bugs #1054

* remove survey notifications

* IX-F importer: manual add followed by IX-F prompted add can result in "The server rejected your data" #807

* performance fix for net view

* api documentation generate broken #956

* fix poc set missing from net view

* Auto focus cursor on search field on main website #695

* PeeringDB website has a poor choice of line-breaks for IPv6 addresses. #748

* Delete childless org objects #838

* linting

* poetry lock

* re-add mistakingly dropped translation to email template

* fix template variables

* regen docs

* regen api docs

* add u2f api

* fix merge cruft

* fido u2f webauthn first steps

* dont need this

* typo

* first ux steps for security key management, u2f views

* u2f auth

* linting

* Cascade delete when performed by superuser in django-admin #735

* security key passwordless login

* reset webauthn migrations

* security key 2fa

* linting

* ux cleanup

* cleanup

* Add IXP to AS record / dropdown limited #469

* ignore orgs that have pre-dated or finished sponsorships attached

* split out to django_security_keys

* default to 90 days

* make URL required for new objects #374

* move CONN_MAX_AGE to proper location and expose as env var (#1060)

* Error message for invalid password on email change

* Registering a new facility or exchange organization is broken #1062

* Creating a facility that matches the name of a soft-deleted facility will cause the entry to bypass the verification queue #901

* irr source validator doesn't allow for hyphens in source #921

* split out javascript

* split out js

* Clicking "Add" to add a user api-key without providing a name for the key raises Internal Error #1033

* remove security key admin views

* global stats don't show up at login screen #284

* Possible for "pending" exchange to have "deleted" ixlan (#1077)

* webauthn finalizations

* oidc support for oauth provider #1070

* Revert "Merge branch 'gh_1070' into 'support_202111'"

* remove unused dev mounts

* linting

* add django-security-key and relock poetry

* re-add imports removed through linting

* docs regen

* oauth toolkit pinned to 1.6.1
django-security-keys pinned to 1.0.1

* remove debug message

* linting

* linting

Co-authored-by: Stefan Pratter <stefan@20c.com>
Co-authored-by: David Poarch <dpoarch@20c.com>
2022-01-11 08:56:47 -06:00
a5abe0e78f Nanog 83 Hackathon improvements to the PeeringDB Website (#1083)
* Nanog 83 Hackathon improvements to the PeeringDB Website

- If a user inputs only numbers, search for ASN only
- If a user inputs what looks like a IPv4 or IPv6 address, search Network IP addresses only
- Use direct SQL in the above instances rather than Haystack fuzzy matching, though search fields for ASN and ipaddr[46] were added to the Haystack search index

* Revert change to prepare_term

* remove print

* run black

* add ipv4 and 6 search tests

Co-authored-by: Jeff Kala <jeff.l.kala@gmail.com>
2022-01-10 07:40:26 -06:00
8ef76dc5ab Support 202110 (#1085)
* Block registering private ASN ranges

* Add a continental region field for facilities #1007

* Incorrect order of search results #232

* Allow users to upload a small logo to their record #346

* Sponsor badge CSS and text translation issues #453

* IXP and Facility summary #18

* Add sales email and phone contact to ix object #949

* Increase timeout timer for IX-F JSON importer to 30s #962

* IX-F manually triggered import bugs #1054

* remove survey notifications

* IX-F importer: manual add followed by IX-F prompted add can result in "The server rejected your data" #807

* performance fix for net view

* api documentation generate broken #956

* fix poc set missing from net view

* Auto focus cursor on search field on main website #695

* PeeringDB website has a poor choice of line-breaks for IPv6 addresses. #748

* Delete childless org objects #838

* linting

* poetry lock

* re-add mistakingly dropped translation to email template

* fix template variables

* regen docs

* regen api docs

* fix merge cruft

* django-peeringdb to 2.11 and poetry relock

* linting

* comment out django-peeringdb volume mount

* add missing declaration

Co-authored-by: Stefan Pratter <stefan@20c.com>
Co-authored-by: David Poarch <dpoarch@20c.com>
2021-11-09 09:47:38 -06:00
c21130eed9 Docs 202109 (#1067)
* module docstrings

* db schema graph

* dev docs first pass

* dev docs pass 2

* add generated notification to top of generated docs files

* linting

* regen docs

Co-authored-by: Stefan Pratter <stefan@20c.com>
Co-authored-by: Sunshine Buchholz <sunshine@20c.com>
2021-10-15 03:25:38 -05:00
f1e2e8e05d 346 fixes (#1066)
* org logo now uploads to separate directory than sponsorship logos and normalizes file name to org-{id} #346

* validation fixes for logo upload (#346)

Co-authored-by: Stefan Pratter <stefan@20c.com>
2021-10-14 02:03:10 -05:00
0c4ff0b2de Support 202109 (#1064)
* Block registering private ASN ranges

* Add a continental region field for facilities #1007

* Incorrect order of search results #232

* Allow users to upload a small logo to their record #346

* Sponsor badge CSS and text translation issues #453

* IXP and Facility summary #18

* poetry relock

* linting

* add libgcc

* lint

* bump version to 2.31.0-beta

Co-authored-by: Stefan Pratter <stefan@20c.com>
Co-authored-by: David Poarch <dpoarch@20c.com>
2021-10-12 11:05:25 -05:00
636f37eb12 Support 202108 (#1051)
* add OPERATIONS_EMAIL setting

* fixes #1019: redundant saves to deleted netixlans during ix-f import

* private pocs are no longer valid (#944)

* poetry relock (handleref update)

* fixes #1032: __id api filter not working

* Additional self-selection fields for Facilities #800

* advanced search fields for available voltage, property and diverse serving substations (#1016)

* When network sets netixlan speed to 1200000 only 1T is shown instead of 1.2T ... sometimes #500

* add search-data

* comment out mount points for api-cache, search-data, django-peeringdb

* poetry relock (django-peeringdb 2.9.0)

* linting

Co-authored-by: Stefan Pratter <stefan@20c.com>
2021-09-14 08:59:09 -05:00
77282c4b66 Prep 2.29 (#1024)
* django3, py39, lgtm, linting (#715)

* IX-F Importer: ticket status change when posting re-occuring conflict to existing resolved ticket (#920)

* fix recaptcha requirement for user creation in django-admin (#715)

* IX-F Importer: fix command output buffering #967

* Drop dot1q_support field #903

* fix test (#967)

* Add name, city, country to ixfac (GET operation) #166

* additional tests fir #166

* Allow IXP to trigger ix-f importer for their exchange #779

* add docker compose for dev

* add selinux labels for mountpoints

* fixes #1013: The process to permanently remove old soft-deleted network contacts pdb_delete_pocs raises a false ProtectedAction

* fix api test

* relock poetry

* remove django_namespace_perms from installed apps

* fix user permissios ui

* remove remaining references to django namespace perms

* linting

* copy tox.ini

* comment flake8 check until we figure out why it ignores configs from tox.ini

* black format

* poetry lock

Co-authored-by: Stefan Pratter <stefan@20c.com>
2021-08-18 08:21:22 -05:00
5147028bee clean up / format / poetry (#1000)
* stub in poetry for pipenv

* re-add tester image

* add pre-commit / formatting

* fix ghactions

* revert test data whitespace, exclude tests/data

* revert ws

* decruft, rm tox/pipenv

* install dev packages for base image

* add lgtm config to force to py3
2021-07-10 10:12:35 -05:00
7c3d160dec Support 202106 (#994)
* fixes #965: intermittent bug during consolidation of notifications

* fixes #863: better visibility for input validation errors

* fixes #375: re-evaluate affiliation requests on email change

* fixes #741: remove data quality validation for superusers

* fixes #587: customizable pagination in django admin

* fixes #923: Prevent deletion of a last technical contact if there is an existing netixlan object

* better search #23 (first pass)

* black format

* haystack test config to run_tests.py
remove old django_init.py test settings

* black format

* haystack test config fixes

* #23 better search (pt.2)

* rate limit distance queries (#23)
rate limiting based on query filters

* settings controlled blocking of distance filter for unauthenticated / unverified users (#23)

* fix distance filter throttling with api key auth (#23)

* fix anon user access check on distance queries

* search index and performance tweaks

* fix org_id not set in search results

* org id to int

Co-authored-by: Stefan Pratter <stefan@20c.com>
2021-07-07 17:57:04 -05:00
fbc72ea682 Support 202104 (#980)
* Add migration for service level and terms

* Add service level and terms to UI and serializer, as well as data/enum

* Wire up data/enum endpoint and loader

* remove proto_ from ix UI

* derive fields for proto_unicast and proto_ipv6

* update tests for readonly fields

* Fix query for protocols

* Fix api bug with protocol

* add readonly fields to django admin

* rename readonly fields

* Add translation to names

* Add pdb api test for suggested facility re-add

* Add printing debuggin test

* add printing debugging serializer

* Update _undelete with _reapprove to handle pending cases

* Update tests (one is still failing)

* adjust suggest test

* Add ix_count to fac (834)

* Add test for ix_count on fac (834)

* Add fac_count to IX (836)

* add ix_count and fac_count to Network

* Refactor ix net_count filtering

* Add filtering for 834, 835, 836

* Remove duplicates from the Network's ix_count

* Setup Network for ix_count and fac_count (835)

* initial obj_counts for Facilities and Exchanges

* Add signals for updates to all counts

* add migration

* Add print statements to test

* introduce reversion to tests

* rename network count to net count across codebase

* fix network_count typo

* add migration to set default vals

* fix filter tests for obj_counts

* speed up migration

* fix failing tests

* fix final test

* sort out migration tree and add fac offered fields

* update frontend for facility dropdown offered_resilience

* First pass at advanced api search for user story 1

* melissa geo lookup first steps

* fix migration hierarchy

* working melissa integration

* begin ending filters for api endpoints

* add more org_present endpoints

* add search for IXs that match multiple networks

* extend logic to facility

* Add service level and terms to advanced search

* use address2 field for lookup

* melissa tests

* cleanup and docs

* uncomment offered_power

* developed offered_power component

* fix geo normalize existing cmd
normalize state

* change migration to match django-peeringdb

* add offered_space field

* Fill out remaining api filter fields

* Add org_not_present endpoint filter

* fix unit input ux

* more ux fixes

* remove merge cruft

* google for geocoding
various melissa improvements (consider result quality)

* fix tests

* refactor org_preset and org_not_present queries

* ix capacity api filters

* ix capacity filters for #802
advanced search ux for #802

* finalize advanced search UX for #802

* css fixes

* remove cruft

* fix net_count fac_count queries

* add new fields to create facility (#800)
tests for #802 and #800

* fix tests

* remove #800 changes

* fix capacity search

* more #800 changes to remove

* django-peeringdb 2.7.0 and pipenv relock

* black format

* pin black version

Co-authored-by: Elliot Frank <elliot@20c.com>
Co-authored-by: Stefan Pratter <stefan@20c.com>
2021-05-19 08:11:30 -05:00
8cc0f13ec1 Support 202102 (#950)
* install django-grainy

* nsp to grainy first iteration

* nsp to grainy second iteration

* grainy and django-grainy pinned to latest releases

* Fix typo

* Update djangorestframework, peeringdb, django-ratelimit

* Rewrite login view ratelimit decorator

* Relock pipfile

* add list() to make copy of dictionaries before iterating

* relock pipfile with python3.9
change docker to use python3.9

* add ordering to admin search queryset for deskproticket and email

* add org api key and begin to write tests

* additional key tests

* add drf-api-keys to pipfile

* Wire orgapikey to modelviewsetpermissions

* Update api key helper functions

* add put test

* Add Org API key tab to frontend

* Add user api key model

* Update user key handling and tests

* Update APIPermissionsApplicator to make it work w requests

* Add org api key perm panel

* add org key permissions

* Add user api key views

* Add templates for handling user api key (adding, not revoking)

* relock pipfile

* assorted fixes and tweaks

* Add general user group permissions and org user group perms

* refactor org api key perms

* Add tests for api keys

* Add docstrings to permissions helpers

* Add api key examples

* squash migrations

* remove custom api key header config

* Change api key test setup

* Update permissions for grainy change

* Bump up pipfile and pipfile.lock

* Add API Key to Verification Queue Item

* Delete travis

* Add workaround to Dockerfile

* update pipfile and sort out migrations

* Add comment to Dockerfile

* Re-add API Key migrations

* Add locale to .gitignore

* remove suggest functionality from ix

* Update test to recognize that IX api no longer has suggest function

* Add test to outlaw POSTing an IX w its org equal to the suggest entity org

* Add meta information geowarning

* Add alert to demonstrate UI

* Add error to fac update

* Add template warning for geovalidation

* Add geowarning meta js

* cover absent meta_response test case

* Update styles for geowarning

* refactor geotag warning implementation

* null lat and long on unsuccessful geo locate

* modify geovalidation frontend update

* Add deskproticket model email field

* Add missing span

* add email to org keys

* Add email to org key tests

* update serializer with rdap validation wrapper

* update admin for api keys

* Enable writing an email as part of org key creation

* Add email validation to org api key form

* fix css style on perm row

* Add suggested info to api response

* display suggested address on frontend

* add needs geocode to serializer

* save lat long on forward geonormalization

* add address suggestion submit button

* Add suggested address popin to ADD facility form

* Fix css

* add lat and long rounding to geocodenabled model clean method

* add migration and regression test for lat long decimal db constraint

* Add another regression test for model decimal places

* Get deskpro functions passing isort and flake

* Update ticket_queue_deletion_prevented

* update ticket_queue_deletion_prevented for use with org api key

* add template for org key dpt from asnauto skipvq

* Update deskproticket for rdap error

* add facility aka

* add aka to serializer and views

* black and isort test api keys

* fix typo in org key deskpro template

* skip or rewrite unapplicable org key tests, and add as_set tests

* adjust api key test comments

* Add vqi_notify to signals

* Add reversion comments for api keys and helper function

* update how org keys are added to verification queue items

* rename verification queue item fk from api_key to org_key

* fix group id error

* update key tests with correct http header info

* check both user and key, not just user

* templates fiex

* adapt deskpro integration to work with email only

* make org api keys editable for desc and email

* pipfile relock

* edit test setupdata settings for groups

* Change comment to signify we don't need to remove code

* address untranslated accept button

* Add docstrings to the serializer functions

* Add loading shim

* Add migration for all longname and aka

* Add aka and long name to views and serializers

* delete migration w decimals

* standardize serializer lat and long fields

* Add clean rounding for lat and long

* fix serializer error

* api key admin improvements

* fix linebreak in user api key form

* remove debug prints

* Add rounding util

* Add rounding to lat and long fields

* remove 'clean' from geocode method (logic now in admin form)

* remove erroneous tests

* revert serializer changes

* Fix migrations

* Add long name and aka to admin models

* Update API key docs

* Add documentation for api keys

* fix typo

* fix org api key revoke broken by editable api keys

* doc tweaks

* doc tweaks

* doc tweaks

* black format

* fix migration hierarchy

* docs

* docs

* api key permissions screenshot

* formatting

* formatting

* padding fixed

* remove one image

* fix get_user_from_request type checking
take out POST only valdiator for entity suggest

* didnt mean to commit the django-peeringdb mount

* fix suggest on PUT net
fix tests

* black formatting

* update org key permission template

* install rust for cryptography

* pipfile relock (django-peeringdb to 2.6)

Co-authored-by: Stefan Pratter <stefan@20c.com>
Co-authored-by: Elliot Frank <elliot@20c.com>
2021-03-09 13:30:30 -06:00
bf304ec122 Fixes 20210205 (#935)
* Add model check so you cannot double approve an admin org affiliation

* remove django namespace perms form INSTALLED_APPS

* script to fix users affected by #930

* black formatted

* add nsp back to installed apps for now
remove remaining nsp references

* fix initial_data fixtures (nsp->grainy)

* fixes #934: privacy permissions scope for pocs and ixf urls

* test that poc pirvacy scope works correctly on GUI (#934)

* black format

Co-authored-by: Elliot Frank <elliot@20c.com>
Co-authored-by: Stefan Pratter <stefan@20c.com>
2021-02-05 07:41:37 -06:00
ab1f07f379 777 fix address1 issue (#919)
* Check for None before assigning address1 (commandline tool)

* Add checking for address1 into model

Co-authored-by: Elliot Frank <elliot@20c.com>
2021-01-14 06:44:12 -06:00
b07baf3092 Support 202011 (#917)
* install django-grainy

* nsp to grainy first iteration

* Fix validation error message overflow

* Add migration, update views.py and template to add help_text to UI

* nsp to grainy second iteration

* grainy and django-grainy pinned to latest releases

* deskpro ticket cc (#875)

* black formatting

* move ac link to bottom for ticket body

* Fix typo

* Update djangorestframework, peeringdb, django-ratelimit

* Rewrite login view ratelimit decorator

* Relock pipfile

* add list() to make copy of dictionaries before iterating

* respect ix-f url visibilty in ix-f conflict emails

* Add type coercion to settings taken from environment variables

* Add bool handling

* relock pipfile with python3.9
change docker to use python3.9

* Check bool via isinstance

* add ordering to admin search queryset for deskproticket and email

* update settings with envvar_type option

* Add tooltips to add ix and add exchange views (in org)

* Add tooltip to suggest fac view

* get phone information in view

* add missing migration

* add migration and make org a geo model

* Wire normalization to put/create requests for Facility

* Update admin with new address fields

* Refactor serializer using mixin

* Add floor and suite to address API

* Write command to geonormalize existing entries

* Remove unnecessary method from model

* Add floor and suite to views

* Add ignore geo status

* Force refresh for fac and org updates

* adjust frontend typo

* add checking if update needs geosync

* redo error handling for geosync

* remove save keyword from geonormalize command script

* change raw_id_fields

* alternate autocomplete lookup field depending on where inline is called

* remove unnecessary error handling

* Add  csv option

* Fix bug
 with None vs empty string

* add regex parsing for suite and floor conversion

* Add migration that removes geo error as a field

* add geostatus update to command

* Ignore suite floor and address2 changes for api normalization

* update geomodel by removing geo_error

* Black models.py

* Black serializers.py

* remove geocode error from admin

* Add function for reversing pretty speed

* add conversion to export method

* fix typo

* fix speed value feedback after submit

* remove conditional

* Add error handling to create endpoint

* Refine floor and suite parsing regex

* Add geocoding tests

* Add json for tests

* IX-F Importer: Bogus output of "Preview" tool #896

* remove cruft

* black formatting

* IX-F Importer: history of changes per ixlan & netixlan #893

* 6 add geocode to org view

* 4 update geocode without refresh

* Update error display

* Fix bug with formatting translated string

* Add DateTimeFields to model

* Add update signals

* add last updated fields to views and serializers

* Add last updated model migration

* Add the data migration for last updated fields

* add test that tests a normal org user with create org permissions

* grainy to 1.7
django grainy to 1.9.1

* Fix formatting issues

* Adjust var names

* Refactor signals

* Temporary: save override from network model

* Empty vlan lists no longer cause error

* typo in ixf.py

* typo in admin

* Typos in model verbose names

* Add serializer IXLAN validation for ixf_ixp_import_enabled

* Add model validation to IXLan

* relock pipfile

* relock pipfile

* begin signal test file

* Remove full clean from save in ixlan

* use post_reversion_commit signal instead

* remove redundant save override

* remove cruft / debug code

* Add signal tests

* exclude organizations with city missing from commandline geosync

* Skip geosync if the only address information we have is a country

* initial commit for vlan matcher in importer

* Add more tests and remove unused imports

* update tests

* Actually add vlan matching to importer

* Add type checking for speed list and state

* Change how we register connection.state

* add bootstrap options

* add rdap cache command

* remove outdated perm docs

* rdap from master and relock

* propagate rdap settings to peeringdb.settings

* add loaddata for initial fixtures

* user friendly error message on RdapNotFound errors (#497)

* update rdap errors

* django-peeringdb to 2.5.0 and relock

* rdap to 1.2.0 and relock

* fix migration hierarchy

* add ignore_recurse_errors option

* add missing fields to mock
remove cruft missed during merge

* rdap to 1.2.1

* dont geo validate during api tests

* fix tests

* Add test file

* fix merge

* RDAP_SELF_BOOTSTRAP to False while running tests

* black formatted

* run black

* add github actions

* add runs on

Co-authored-by: Stefan Pratter <stefan@20c.com>
Co-authored-by: Elliot Frank <elliot@20c.com>
2021-01-13 14:35:07 -06:00
b2fe79cdcd Ixf fixes 202011 (#898)
* Fix local var error and add test

* Add error handling that mentions ixlan and update one test

* Add conditional

* test to reproduce #889 and fixes for #889

* Remove member type checking

* check requirement_of_id instead of requirement_of as that can raise an exception if the relationship isn't cached

* ix-f suggestion to modify netixlan to clear an ip field is now stated as "Clear IPvX address" instead of "Set IPvX address"

* handle multiple vlans for prefixes defined on ixlan

* rewording

* fix tests

* black formatted

Co-authored-by: Elliot Frank <elliot@20c.com>
Co-authored-by: Stefan Pratter <stefan@20c.com>
2020-12-03 09:35:33 -06:00
16285c13f3 Support 202010 (#868)
* Add migrations for 463_745_775

* Black format the migration

* Bump up django_peeringdb version

* api require django-peeringdb 2.3.0.1 and later

* Set timezone to utc throughout sponsorship notifications

* Add government net type to existing migrtion

* Remove ixlan from peers at this exchange point

* Add new migration

* add backward migrtion

* Search on user__username not user object

* Black those changes

* Fix local erro bug

* Add test and fix speed update for deleted netixlan

* Handle attribute error

* Change language in email to reflect we don't email after x days

* Comment out EnvironmentSetting in django admin

* Disable the followup ticket and modify tests to correct deskproticket assertions

* exclude ixf tickets from deskpro publishing

* Add failing mock deskpro api and write a test with it

* Add anchor tags to notify-ixf-add

* a tags for conflict insert

* a tags for consolidated

* a tags modify

* a tags protocol conflict

* a tags remote changes

* a tags for remove

* a tags for resolved

* a tags source error

* Add target blank

* Add comment

* fix unhandled deskpro api errors

* Add mail attachment

* Remove strip_tags

* readd some strip_tags

* add explicit order for fields in admin control panel #861

* revert pretty_speed change

* Coerce is_rs_peer and operational to bool

* black formatted

* pipfile relock

Co-authored-by: Elliot Frank <elliot@20c.com>
Co-authored-by: Stefan Pratter <stefan@20c.com>
2020-11-03 18:26:15 -06:00
04f1928b3c Updates 2.23 (#843)
* pipenv lock and pyupgrade

* pyupgrade, black format, add docs

* update for py3.7
2020-09-29 20:13:38 -05:00
aed211418d Fix typos1 conflicts resolved (#842)
* Update 0006_network_allow_ixp_update.py

fixes 'Sepcifies' typo in 0006_network_allow_ixp_update.py

* Update 0029_auto_20200401_1006.py

fixes 'Sepcifies' typo in 0029_auto_20200401_1006.py

* Update models.py

fixes 'Sepcifies' typo in models.py

* Update org_admin_views.py

fixes 'afiliation' typos in org_admin_views.py

* Update serializers.py

fix use of "it's" when it should instead be "its" in 'serializers.py'

* Update 0004_geocode_fields.py

correct use of "it's" to be "its" in '0004_geocode_fields.py', also fix spelling of 'syncronized'

* Update 0029_auto_20200401_1006.py

correct use of "it's" to be "its" in '0029_auto_20200401_1006.py', also fix spelling of 'syncronized'

* Update models.py

correct use of "it's" to be "its" in 'models.py', also fix spelling of 'syncronized'

* Update email_confirm.html

correct 're-initate' in email_confirm.html

* Update notify-pdb-admin-user-affil.txt

correct 'organzation' in 'notify-pdb-admin-user-affil.txt'

* Update op_create.md

correct 'organzation' in 'ip_create.md'

* Update notify-pdb-admin-asnauto-skipvq.txt

correct 'organzation' in 'notify-pdb-admin-asnauto-skipvq.txt'

* Update models.py

correct 'organzation' in 'models.py'

* Update notify-pdb-admin-asnauto-skipvq.txt

fix 'succesfully' in 'notify-pdb-admin-asnauto-skipvq.txt'

* Update views.py

fix 'succesfully' in 'views.py'

* Update pdb_migrate_ixlans.py

* Update models.py

several more replacements of "it's" with "its"

* Update rest.py

one more replacement of "it's" with "its"

* Update op_retrieve.md

replace "dont" with "don't"

* Update notify-org-admin-merge.txt

fix "dont" with "don't"

* Update error.html

fix "dont" with "don't"

* Update op_list.md

fix "dont" with "don't"

* Update serializers.py

fix "dont" with "don't"

* Update deskpro.py

fix "dont" with "don't"

* Update mock.py

fix "dont" with "don't"

* Update ixf.py

fix "dont" with "don't"

* Update admin.py

fix "dont" with "don't"

* Update api_schema.py

fix "dont" with "don't"

* Update signals.py

fix "dont" with "don't"

* Update views.py

fix "dont" with "don't"

* Update test_admin.py

fix "dont" with "don't"

* Update pdb_api_test.py

fix "dont" with "don't"

* Update models.py

fix "dont" with "don't"

* revert to "IXP" in help text

Co-authored-by: Theo Baschak <tbaschak@users.noreply.github.com>
Co-authored-by: Stefan Pratter <stefan@20c.com>
2020-09-29 15:01:47 -05:00
1fa46e2acb Support 202009 (#841)
* Add EmailMultiAlternatives import

* Add strip_tags import

* Add settings imports and new email test

* Add email increment to ixf and tests

* IX-F Importer: suggested update when it should be add + remove #832

* Take email increment out of if-else

* Add max and min speed settings

* Change validation check for models

* new speed validation

* Add basic user command

* Add pdb cleanup users tool

* Add pretty printing for speed

* Add users as a subparser

* add translation override to signals

* Add parser as parent of subparser

* refactor and change test

* Move override to cover single variable

* Add tooltip option for individual checkboxes

* address 'fix me' issue with field_help helper func

* Add zipcode validator and black format

* Make website required input but zipcode dependent on country

* Add net POC requirement to Netixlan serializer

* Website is now blank=False ie required in all forms

* refine error message

* Require email is not blank and add test

* Change error message

* add website and zipcode test, edit zipcode error message

* change placement of tooltip

* add question mark

* Add comment

* Add runtime error logging for ixp member import

* add uncaught error test

* delete two unused methods

* Rename test file and add different tests

* Add missing email imports (reproduces changes in hot_fix_gh_831)

* add resend methods

* Add missing email imports (reproduces changes in hot_fix_gh_831)

* Add pytest-mock to pipfile

* Add resend email mechanism

* Add email resending

* remove failing assertion

* fix for ticket_aged_proposals

* Wrap resending emails in conditional for commit

* Add resend email tests

* fix mail_Debug bug

* Figure out production mailing and resending settings

* Add stale info field

* default IXF_RESEND_FAILED_EMAILS to False
fix issue with sent being set even if email was not sent
fix issue with output stating resending of emails even if it wasnt

* IX-F Preview - shows the consolidated delete operation when it shouldn't (#824)

* black format (v 19.10)

* black formatting

* black formatting

* pipfile relock

* make changes from #825 play nice with changes from #833

* black to pipenv dev packages

Co-authored-by: Elliot Frank <elliot@20c.com>
Co-authored-by: Stefan Pratter <stefan@20c.com>
2020-09-29 13:07:56 -05:00
31a0f886a7 Dotf fixes 3 (#820)
* [beta] IX-F importer: [showstopper]: Seeing 'Update' hint instead of 'Add' hint #816

* [beta] IX-F importer: list of hints should be case-independently sorted alphabetically #817

* [beta] IX-F importer: IX "Last Updated" timestamp is based on IX-F import time - not sure that is intended #812

* Improve soft delete error handling re: protectedactions

* Fix template bug

* Modify template again

* add a test to confirm ipaddr suggestions end up in template

* rebase #817 into this and adapt to changes in #817

* [beta] IX-F importer: notice about dismissed hints remains after no longer relevant #809

* Server Error 500 when deleting organisations #798

* black formatting

Co-authored-by: Stefan Pratter <stefan@20c.com>
Co-authored-by: egfrank <elliot@20c.com>
2020-08-18 09:30:40 -05:00
38a49b4a10 Gh 761 (#819)
* Make in_dfz a readonly field

* add migrations for in_dfz noop,
add validation error when trying to set in_dfz to false over api
fix template layout

* remove in_dfz from ixlanprefixinline admin

* fix error message

* black formatted

Co-authored-by: egfrank <elliot@20c.com>
Co-authored-by: Stefan Pratter <stefan@20c.com>
2020-08-18 09:28:18 -05:00
0e2829d82f Dotf fixes 2 (#797)
* [beta] IX-F importer: Adding entry results in 'The server rejected your data' #789

* [beta] IX-F importer: tooltip remains visible after clicking "Auto-resolve", also misspelling #788

* fix protocol-conflict notifications not going out if there are no other conflicts (#771)

* fix messy white-space in ix-f notificaiton emails (#790)

* add link to python regex documentation (#768)

* IX-F import preview when authenticating via basic auth broken #791
Re-add preview tests

* [beta] IX-F importer: Lack of "routeserver" status in IX-F JSON should imply "undefined" rather than "false" and result in no action #792

* speed not being present in the ix-f data should be ignored (#792)

* [beta] IX-F importer: ignore speed and is_rs_peer differences for now, but retain code #793

* do a simple dedupe of ip addresses before processing the ix-f export
remove email debug spam

* normalize ip addresses
bug fixes for protocol conflict

* fix typo and remove debug output

* bail if unable to reasonably dedupe duplicate ips in ix-f export data

* sanitization fixes

* reset ix error notification timer on successful import

Co-authored-by: Stefan Pratter <stefan@20c.com>
Co-authored-by: Elliot Frank <elliot@20c.com>
2020-08-03 14:51:11 -05:00
abe3e78d50 Dotf fixes (#781)
* fix issue where ix-f import would raise suggestions ipaddresses not that ixlan (#764)

* IX-F Suggestions: Leaving the editor and returning to it via back button issues (#765)

* IX-F importer: Clicking "Preview" (IXP Update Tools) on /net/ page resulted in 170 ticket resolutions (#769)
More robust testing

* black formatting (was lost after pyupgrade)

* Add regex searching to deskpro ticket subjects

* Change operational error

* IX-F suggestions: consolidate delete+add (#770)

* Add reset functions to commandline tool

* Fix commandline tool bugs

* Fix reset commandline tool bugs

* add commandline tool

* Ixlan needs to be set for import commandline tool

* Add email model

* Add admin view to emails

* Allow network and ix to be null

* save emails as part of ixf import

* Add email model

* Add email delete

* add iregex search and better comments

* fix ixlan selection for import

* redefine migration dependencies for this branch

* only enable search w start and end char

* Add caption to regex search

* Remove delete all ixfmemberdata option

* [beta] IX-F importer: don't bother about missing IPv{4,6} address when network is not doing IPv{4,6} (#771)

* Add cmdline tests

* Resolve email conflicts

* Add cmd tool reset tests

* add autocomplete to commandline tool

* Fix email bugs

* Fix email migrations

* Fix typos

* [beta] IX-F importer: prevent Admin Committee overload by initially limiting importer to IXes enabled by AC (#772)

* Finalize regex search for emails and deskprotickets

* Fix keyword bug

* fix typo

* protocol-conflict will now be handled in the notification consolidation

771 changes where if the network indicates neither ipv4 nor ipv6 support, it is handled as supporting both (eg the network didnt configure these at all)

realised that the importer command re instantiates the `Importer` class for each ixlan it processes, so moved the sending of consolidated notifications (#772) out of the `update` function and into the command itself after its done processing all the ixlans. This means for tests you will need to call `importer.notify_proposals` after `importer.update` to test the consolidated notifications.

fixed several MultipleObjectsReturned errors when network switch protocol support in between imports

* should be checking for "ix" in the form data (#773)

* Fix cmd ixf tests

* fix issue in log_peer

* Add commit check for reset tool

* fix importer bugs

* remove dupe IXFImportEmail definition

* ixfimportemail support ix__name and net__name searching

* ticket resolution responses

* Add commit to command ixf import changes

* fix modify entry header

* remove whitespace in notification about remote data changes

* Begin updating tests

* ixf-import command line tool to queue

* refactor conflict inserts

* Update import protocol tests, including tests for 770

* More test edits

* Change cmd tests

* better ixfmemberdata error handling and fix some test data

* dont reset the same ixfmemberdata requirement

* fix many bugs add many tests

* remove debug message

* fix bug during import when consolidating delete+add

* fix perfomance issue in IXFMemberData listing

* dont show reset flags on prod env

* Add regex search tests

* Add 772 tests

* remove debug output

* fix `test_resolve_deskpro_ticket` test

* black formatting

* remove dupe import

* fix issue with unique constraint error handling

* add test for ixp / network ip protocol notification

* add missing test data

Co-authored-by: Stefan Pratter <stefan@20c.com>
Co-authored-by: Elliot Frank <elliot@20c.com>
2020-07-27 04:36:27 +00:00
f9dedb5274 typo: "ixp" -> "IXP" (#780) 2020-07-24 10:12:06 -05:00
ea55c4dc38 July updates (#762)
* Change label from primary ASN to ASN

* Raise validation error when trying to update ASN

* first steps for dotf importer procotol (#697)

* migrations (#697)

* Add translation to error meessage

* Make ASN readonly in table

* Add test now that ASN should not be able to update

* Set fac.rencode to '' for all entries and make it readonly in serializer

* Add unique constraints to network ixlan ip addresses

* Add migration to null out duplicate ipaddresses for deleted netixlans

* Add unique constraints to network ixlan ip addresses

* Add migration to null out duplicate ipaddresses for deleted netixlans

* remove old migrations (#697)

* fix netixlan ipaddr dedupe migration (#268)
add netixlan ipaddr unique constraint migration (#268)

* ixf_member_data migrations (#697)

* fix table name (#697)

* importer protocol (#697)

* fix netixlan ipaddr dedupe migration (#268)
add netixlan ipaddr unique constraint migration (#268)

* ixf proposed changes notifications (#697)

* Delete repeated query

* Add a test to show rencode is readonly

* Blank out rencode when mocking data

* Remove validator now that constraint exists

* Add back unique field validator w Check Deleted true

* conflict resolving (#697)

* UniqueFieldValidator raise error with code "unique" (#268)

* conflict resolution (#697)

* Add fixme comment to tests

* conflict resolution (#697)

* Remove now invalid undelete tests

* UniqueFieldValidator raise error with code "unique" (#268)

* delete admin tools for duplicate ip addresses

* Make migration to delete duplicateipnetworkixlan

* Add ixlan-ixpfx status matching validation, add corresponding test

* delete redundant checking in test

* resolve conflict ui (#697)

* fix migrations hierarchy

* squash migrations for ixf member data

* clean up preview and post-mortem tools

* remove non-sensical permission check when undeleting soft-deleted objects through unique integrity error handling

* only include the ix-f data url in notifications to admincom (#697)

* resolve on --skip-import (#697)

* ac conflict resolution (#697)

* Define more accurately the incompatible statuses for ixlan and ixpfx

* Add another status test

* Preventing disrupting changes (#697)

* fix tests (#697)

* Stop allow_ixp_update from being write only and add a global stat for automated networks

* Add tests for global stats that appear in footer

* Change how timezone is called with datetime, to get test_stats.py/test_generate_for_current_date to pass

* test for protected entities (#697)

* admincom conflict resolution refine readonly fields (#697)
network notifications only if the problem is actually actionable by the network (#697)

* ixp / ac notifcation when ix-f source cannot be parsed (#697)
fix issue with ixlan prefix protection (#697)

* migrations (#697)

* code documentation (#697)

* ux tweaks (#697)

* UX tweaks (#697)

* Fix typo

* fix netixlan returned in IXFMemberData.apply when adding a new one (#697)

* fix import log incosistencies (#697)

* Add IXFMemberData to test

* Update test data

* Add protocol tests

* Add tests for views

* always persist changes to remote data on set_conflict (#697)

* More tests

* always persist changes to remote data on set_conflict (#697)

* suggest-add test

* net_present_at_ix should check status (#697)

* Add more protocol tests

* Edit language of some tests

* django-peeringdb to 2.1.1
relock pipfile, pin django-ratelimit to <3 as it breaks stuff

* Add net_count_ixf field to ix object (#683)

* Add the IX-F Member Export URL to the ixlan API endpoint (#249)

* Lock some objects from being deleted by the owner (#696)

* regenerate api docs (#249)

* always persist changes to remote data on set_add and set_update (#697)

* IXFMemberData: always persist remote data changes during set_add and set_update, also allow for saving without touching the updated field

* always persist changes to remote data on set_add and set_update (#697)

* Fix suggest-add tests

* IXFMemberData: always persist remote data changes during set_add and set_update, also allow for saving without touching the updated field

* IXFMemberData: always persist remote data changes during set_add and set_update, also allow for saving without touching the updated field

* fix issue with deletion when ixfmemberdata for entry existed previously (#697)

* fix test_suggest_delete_local_ixf_no_flag (#697 tests)

* fix issue with deletion when ixfmemberdata for entry existed previously (#697)

* invalid ips get logged and notified to the ix via notify_error (#697)

* Fix more tests

* issue with previous_data when running without save (#697)
properly track speed errors (#697)

* reset errors on ixfmemberdata that go into pending_save (#697)

* add remote_data to admin view (#697)

* fix error reset inconsistency (#697)

* Refine invalid data tests

* remove debug output

* for notifications to ac include contact points for net and ix in the message (#697)

* settings to toggle ix-f tickets / emails (#697)

* allow turning off ix-f notifications for net and ix separately (#697)

* add jsonschema test

* Add idempotent tests to updater

* remove old ixf member tests

* Invalid data tests when ixp_updates are enabled

* fix speed error validation (#697)

* fix issue with rollback (#697)

* fix migration hierarchy

* fix ixfmemberdata _email

* django-peeringdb to 2.2 and relock

* add ixf rollback tests

* ixf email notifications off by default

* black formatted

* pyupgrade

Co-authored-by: egfrank <egfrank@20c.com>
Co-authored-by: Stefan Pratter <stefan@20c.com>
2020-07-15 07:07:01 +00:00
af6974e3d3 June updates (#751)
* Add pointer from API docs to tutorial #650

* Sorting by clicking table headers should use local-compare #356

* Mark IXP peering LAN as bogon #352

* Add help text to "Add (Facility, Network, Exchange)" tab #669

* Add Looking Glass field to the IX object #672

* Add read-only Superuser #679

* Make spelling of traffic levels consistent #519 (#723)

* Offer 2FA (#290)

* Show "Last Updated" fields on fac, ix, org records (#526)

* Enable sort and reverse sort of IP column in IX display (#72)

* IRR validation not handling unexpected characters gracefully (#712)

* Support alternative direction of writing, e.g. Arabic (#618)

* Undeleting an ixlan with an emtpy IPv4 XOR IPv6 field throws a silly error (#644)

* Changing org while adding net results in 500 #654

* missing delete button for organisations (#121)

* When changing owner of an ix admin GUI borks because of "Ixlan for exchange already exists" #666

* Selection should only present undeleted objects (#664)

* change default encoding of API calls to 'utf-8' #663

* Posting https://www.peeringdb.com onto social media doesn't select a good preview image #537

* Revert "Add Looking Glass field to the IX object #672"

This reverts commit 4daf2520043c241fabe9a521757efa86a274e28a.

Conflicts:
	peeringdb_server/migrations/0037_ix_looking_glass.py
	peeringdb_server/views.py

* 500 Internal Error when creating IX where prefix already exists elsewhere #718

* Fix graceful restore of soft-deleted objects with translation active (#580)

* Don't return any POC data with status=deleted #569
Hard delete soft-deleted pocs after grace period #566

* django-peeringdb from github@2.0.0.2-beta

Co-authored-by: Stefan Pratter <stefan@20c.com>
2020-06-24 12:55:01 -05:00
dbedb5e606 April update fixes 2 (#700)
* add tech contact and sales contact fields to add / suggest facility forms (#378)

* add swagger docs as backup api docs under apidocs/swagger/ (#626)

* tech and sales phone number fields arent required and should KeyError when missing from POST data (#378, #699)

* re-enable Try it out functionality for swagger docs (#626)

Co-authored-by: Stefan Pratter <stefan@20c.com>
2020-04-20 14:45:48 +00:00