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

Finish RPSL parser #9

Closed
mxsasha opened this issue May 10, 2018 · 1 comment
Closed

Finish RPSL parser #9

mxsasha opened this issue May 10, 2018 · 1 comment
Assignees

Comments

@mxsasha
Copy link
Collaborator

@mxsasha mxsasha commented May 10, 2018

  • Fix a number of open TODO's
  • Add generation of templates
  • Raise test coverage
  • Double check that non-strict mode does check for primary key presence
  • Validate for: "All the set name components
    of an hierarchical name has to be of the same type. For example, the
    following names are valid: AS1:AS-CUSTOMERS, AS1:RS-EXPORT:AS2, RS-
    EXCEPTIONS:RS-BOGUS."
  • Fix suspected PGP key reading bug in NTTCOM

See also #27

@mxsasha mxsasha added this to the IRRDv4 phase 1 milestone May 10, 2018
@mxsasha mxsasha self-assigned this May 10, 2018
@mxsasha mxsasha added this to To do in IRRDv4 phase 1 via automation May 10, 2018
mxsasha added a commit that referenced this issue May 10, 2018
mxsasha added a commit that referenced this issue May 10, 2018
mxsasha added a commit that referenced this issue May 11, 2018
mxsasha added a commit that referenced this issue May 11, 2018
@mxsasha

This comment has been minimized.

Copy link
Collaborator Author

@mxsasha mxsasha commented May 11, 2018

@job is there a readable authoritative place in IRRD where we can see what the current attribute definitions are, so we can do a consistency check with our current ones?

Here's the set we have now:

as-block:   [mandatory]  [single]    [primary/look-up key]
descr:      [optional]   [multiple]  []
admin-c:    [mandatory]  [multiple]  []
tech-c:     [mandatory]  [multiple]  []
remarks:    [optional]   [multiple]  []
notify:     [optional]   [multiple]  []
mnt-by:     [mandatory]  [multiple]  []
changed:    [mandatory]  [multiple]  []
source:     [mandatory]  [single]    []

as-set:        [mandatory]  [single]    [primary/look-up key]
descr:         [optional]   [multiple]  []
members:       [optional]   [multiple]  []
mbrs-by-ref:   [optional]   [multiple]  []
admin-c:       [optional]   [multiple]  []
tech-c:        [optional]   [multiple]  []
remarks:       [optional]   [multiple]  []
notify:        [optional]   [multiple]  []
mnt-by:        [mandatory]  [multiple]  []
changed:       [mandatory]  [multiple]  []
source:        [mandatory]  [single]    []

aut-num:      [mandatory]  [single]    [primary/look-up key]
as-name:      [mandatory]  [single]    []
descr:        [optional]   [multiple]  []
member-of:    [optional]   [multiple]  []
import:       [optional]   [multiple]  []
mp-import:    [optional]   [multiple]  []
import-via:   [optional]   [multiple]  []
export:       [optional]   [multiple]  []
mp-export:    [optional]   [multiple]  []
export-via:   [optional]   [multiple]  []
default:      [optional]   [multiple]  []
mp-default:   [optional]   [multiple]  []
admin-c:      [mandatory]  [multiple]  []
tech-c:       [mandatory]  [multiple]  []
remarks:      [optional]   [multiple]  []
notify:       [optional]   [multiple]  []
mnt-by:       [optional]   [multiple]  []
changed:      [mandatory]  [multiple]  []
source:       [mandatory]  [single]    []

dictionary:     [mandatory]  [single]    [primary/look-up key]
descr:          [optional]   [multiple]  []
admin-c:        [optional]   [multiple]  []
tech-c:         [optional]   [multiple]  []
typedef:        [optional]   [multiple]  []
rp-attribute:   [optional]   [multiple]  []
protocol:       [optional]   [multiple]  []
afi:            [optional]   [multiple]  []
remarks:        [optional]   [multiple]  []
notify:         [optional]   [multiple]  []
mnt-by:         [mandatory]  [multiple]  []
changed:        [mandatory]  [multiple]  []
source:         [mandatory]  [single]    []

domain:    [mandatory]  [single]    [primary/look-up key]
descr:     [optional]   [multiple]  []
admin-c:   [mandatory]  [multiple]  []
tech-c:    [mandatory]  [multiple]  []
zone-c:    [mandatory]  [multiple]  []
nserver:   [optional]   [multiple]  []
sub-dom:   [optional]   [multiple]  []
dom-net:   [optional]   [multiple]  []
refer:     [optional]   [single]    []
remarks:   [optional]   [multiple]  []
notify:    [optional]   [multiple]  []
mnt-by:    [optional]   [multiple]  []
changed:   [mandatory]  [multiple]  []
source:    [mandatory]  [single]    []

filter-set:   [mandatory]  [single]    [primary/look-up key]
descr:        [optional]   [multiple]  []
filter:       [mandatory]  [single]    []
mp-filter:    [optional]   [single]    []
admin-c:      [optional]   [multiple]  []
tech-c:       [optional]   [multiple]  []
remarks:      [optional]   [multiple]  []
notify:       [optional]   [multiple]  []
mnt-by:       [mandatory]  [multiple]  []
changed:      [mandatory]  [multiple]  []
source:       [mandatory]  [single]    []

inet-rtr:    [mandatory]  [single]    [primary/look-up key]
descr:       [optional]   [multiple]  []
alias:       [optional]   [multiple]  []
local-as:    [mandatory]  [single]    []
ifaddr:      [optional]   [multiple]  []
interface:   [optional]   [multiple]  []
peer:        [optional]   [multiple]  []
mp-peer:     [optional]   [multiple]  []
member-of:   [optional]   [multiple]  []
rs-in:       [optional]   [single]    []
rs-out:      [optional]   [single]    []
admin-c:     [optional]   [multiple]  []
tech-c:      [optional]   [multiple]  []
remarks:     [optional]   [multiple]  []
notify:      [optional]   [multiple]  []
mnt-by:      [mandatory]  [multiple]  []
changed:     [mandatory]  [multiple]  []
source:      [mandatory]  [single]    []

inet6num:   [mandatory]  [single]    [primary/look-up key]
netname:    [mandatory]  [single]    []
descr:      [optional]   [multiple]  []
country:    [mandatory]  [multiple]  []
admin-c:    [mandatory]  [multiple]  []
tech-c:     [mandatory]  [multiple]  []
rev-srv:    [optional]   [multiple]  []
status:     [mandatory]  [single]    []
remarks:    [optional]   [multiple]  []
notify:     [optional]   [multiple]  []
mnt-by:     [mandatory]  [multiple]  []
changed:    [mandatory]  [multiple]  []
source:     [mandatory]  [single]    []

inetnum:   [mandatory]  [single]    [primary/look-up key]
netname:   [mandatory]  [single]    []
descr:     [optional]   [multiple]  []
country:   [mandatory]  [multiple]  []
admin-c:   [mandatory]  [multiple]  []
tech-c:    [mandatory]  [multiple]  []
rev-srv:   [optional]   [multiple]  []
status:    [mandatory]  [single]    []
remarks:   [optional]   [multiple]  []
notify:    [optional]   [multiple]  []
mnt-by:    [mandatory]  [multiple]  []
changed:   [mandatory]  [multiple]  []
source:    [mandatory]  [single]    []

key-cert:   [mandatory]  [single]    [primary/look-up key]
method:     [optional]   [single]    []
owner:      [optional]   [multiple]  []
fingerpr:   [optional]   [single]    []
certif:     [mandatory]  [multiple]  []
remarks:    [optional]   [multiple]  []
admin-c:    [optional]   [multiple]  []
tech-c:     [optional]   [multiple]  []
notify:     [optional]   [multiple]  []
mnt-by:     [mandatory]  [multiple]  []
changed:    [mandatory]  [multiple]  []
source:     [mandatory]  [single]    []

limerick:   [mandatory]  [single]    [primary/look-up key]
descr:      [optional]   [multiple]  []
text:       [mandatory]  [multiple]  []
admin-c:    [mandatory]  [multiple]  []
author:     [mandatory]  [multiple]  []
remarks:    [optional]   [multiple]  []
notify:     [optional]   [multiple]  []
mnt-by:     [mandatory]  [multiple]  []
changed:    [mandatory]  [multiple]  []
source:     [mandatory]  [single]    []

mntner:    [mandatory]  [single]    [primary/look-up key]
descr:     [optional]   [multiple]  []
admin-c:   [mandatory]  [multiple]  []
tech-c:    [optional]   [multiple]  []
upd-to:    [mandatory]  [multiple]  []
mnt-nfy:   [optional]   [multiple]  []
auth:      [mandatory]  [multiple]  []
remarks:   [optional]   [multiple]  []
notify:    [optional]   [multiple]  []
mnt-by:    [mandatory]  [multiple]  []
changed:   [mandatory]  [multiple]  []
source:    [mandatory]  [single]    []

peering-set:   [mandatory]  [single]    [primary/look-up key]
descr:         [optional]   [multiple]  []
peering:       [optional]   [multiple]  []
mp-peering:    [optional]   [multiple]  []
admin-c:       [optional]   [multiple]  []
tech-c:        [optional]   [multiple]  []
remarks:       [optional]   [multiple]  []
notify:        [optional]   [multiple]  []
mnt-by:        [mandatory]  [multiple]  []
changed:       [mandatory]  [multiple]  []
source:        [mandatory]  [single]    []

person:    [mandatory]  [single]    [look-up key]
address:   [mandatory]  [multiple]  []
phone:     [mandatory]  [multiple]  []
fax-no:    [optional]   [multiple]  []
e-mail:    [mandatory]  [multiple]  []
nic-hdl:   [mandatory]  [single]    [primary/look-up key]
remarks:   [optional]   [multiple]  []
notify:    [optional]   [multiple]  []
mnt-by:    [mandatory]  [multiple]  []
changed:   [mandatory]  [multiple]  []
source:    [mandatory]  [single]    []

repository:           [mandatory]  [single]    [primary/look-up key]
query-address:        [mandatory]  [multiple]  []
response-auth-type:   [mandatory]  [multiple]  []
submit-address:       [mandatory]  [multiple]  []
submit-auth-type:     [mandatory]  [multiple]  []
repository-cert:      [mandatory]  [multiple]  []
expire:               [mandatory]  [single]    []
heartbeat-interval:   [mandatory]  [single]    []
descr:                [optional]   [multiple]  []
admin-c:              [mandatory]  [multiple]  []
tech-c:               [mandatory]  [multiple]  []
remarks:              [optional]   [multiple]  []
notify:               [optional]   [multiple]  []
mnt-by:               [mandatory]  [multiple]  []
changed:              [mandatory]  [multiple]  []
source:               [mandatory]  [single]    []

role:      [mandatory]  [single]    [look-up key]
trouble:   [optional]   [multiple]  []
address:   [mandatory]  [multiple]  []
phone:     [mandatory]  [multiple]  []
fax-no:    [optional]   [multiple]  []
e-mail:    [mandatory]  [multiple]  []
admin-c:   [optional]   [multiple]  []
tech-c:    [optional]   [multiple]  []
nic-hdl:   [mandatory]  [single]    [primary/look-up key]
remarks:   [optional]   [multiple]  []
notify:    [optional]   [multiple]  []
mnt-by:    [mandatory]  [multiple]  []
changed:   [mandatory]  [multiple]  []
source:    [mandatory]  [single]    []

route:          [mandatory]  [single]    [primary/look-up key]
descr:          [optional]   [multiple]  []
origin:         [mandatory]  [single]    [primary key]
holes:          [optional]   [multiple]  []
member-of:      [optional]   [multiple]  []
inject:         [optional]   [multiple]  []
aggr-bndry:     [optional]   [single]    []
aggr-mtd:       [optional]   [single]    []
export-comps:   [optional]   [single]    []
components:     [optional]   [single]    []
admin-c:        [optional]   [multiple]  []
tech-c:         [optional]   [multiple]  []
geoidx:         [optional]   [multiple]  []
roa-uri:        [optional]   [single]    []
remarks:        [optional]   [multiple]  []
notify:         [optional]   [multiple]  []
mnt-by:         [mandatory]  [multiple]  []
changed:        [mandatory]  [multiple]  []
source:         [mandatory]  [single]    []

route-set:     [mandatory]  [single]    [primary/look-up key]
members:       [optional]   [multiple]  []
mp-members:    [optional]   [multiple]  []
mbrs-by-ref:   [optional]   [multiple]  []
descr:         [optional]   [multiple]  []
admin-c:       [optional]   [multiple]  []
tech-c:        [optional]   [multiple]  []
remarks:       [optional]   [multiple]  []
notify:        [optional]   [multiple]  []
mnt-by:        [mandatory]  [multiple]  []
changed:       [mandatory]  [multiple]  []
source:        [mandatory]  [single]    []

route6:         [mandatory]  [single]    [primary/look-up key]
descr:          [optional]   [multiple]  []
origin:         [mandatory]  [single]    [primary key]
holes:          [optional]   [multiple]  []
member-of:      [optional]   [multiple]  []
inject:         [optional]   [multiple]  []
aggr-bndry:     [optional]   [single]    []
aggr-mtd:       [optional]   [single]    []
export-comps:   [optional]   [single]    []
components:     [optional]   [single]    []
admin-c:        [optional]   [multiple]  []
tech-c:         [optional]   [multiple]  []
geoidx:         [optional]   [multiple]  []
roa-uri:        [optional]   [single]    []
remarks:        [optional]   [multiple]  []
notify:         [optional]   [multiple]  []
mnt-by:         [mandatory]  [multiple]  []
changed:        [mandatory]  [multiple]  []
source:         [mandatory]  [single]    []

rtr-set:       [mandatory]  [single]    [primary/look-up key]
descr:         [optional]   [multiple]  []
members:       [optional]   [multiple]  []
mp-members:    [optional]   [multiple]  []
mbrs-by-ref:   [optional]   [multiple]  []
admin-c:       [optional]   [multiple]  []
tech-c:        [optional]   [multiple]  []
remarks:       [optional]   [multiple]  []
notify:        [optional]   [multiple]  []
mnt-by:        [mandatory]  [multiple]  []
changed:       [mandatory]  [multiple]  []
source:        [mandatory]  [single]    []
mxsasha added a commit that referenced this issue May 11, 2018
mxsasha added a commit that referenced this issue May 11, 2018
mxsasha added a commit that referenced this issue May 14, 2018
mxsasha added a commit that referenced this issue May 14, 2018
mxsasha added a commit that referenced this issue May 15, 2018
mxsasha added a commit that referenced this issue May 15, 2018
As RFC 2622 says:
All the set name components of an hierarchical name has to be of
the same type. For example, the following names are valid:
AS1:AS-CUSTOMERS, AS1:RS-EXPORT:AS2, RS-EXCEPTIONS:RS-BOGUS
mxsasha added a commit that referenced this issue May 15, 2018
Parsing already worked for having one certif: line per
line in the key, but was broken when using line continuation.
@mxsasha mxsasha moved this from To do to Done in IRRDv4 phase 1 May 15, 2018
@mxsasha mxsasha closed this May 15, 2018
@mxsasha mxsasha reopened this May 15, 2018
IRRDv4 phase 1 automation moved this from Done to In progress May 15, 2018
@mxsasha mxsasha closed this in 0ddafa8 May 15, 2018
IRRDv4 phase 1 automation moved this from In progress to Done May 15, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
1 participant
You can’t perform that action at this time.