Skip to content

Commit cc15644

Browse files
feat(DirectLink): implement the changes to edit BGP Parameters - IP and ASN, enable/update the bfd config
1 parent 8e3acf8 commit cc15644

File tree

6 files changed

+4294
-1157
lines changed

6 files changed

+4294
-1157
lines changed

ibm_cloud_networking_services/direct_link_provider_v2.py

Lines changed: 34 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# coding: utf-8
22

3-
# (C) Copyright IBM Corp. 2020.
3+
# (C) Copyright IBM Corp. 2021.
44
#
55
# Licensed under the Apache License, Version 2.0 (the "License");
66
# you may not use this file except in compliance with the License.
@@ -324,6 +324,9 @@ def get_provider_gateway(self,
324324
def update_provider_gateway(self,
325325
id: str,
326326
*,
327+
bgp_asn: int = None,
328+
bgp_cer_cidr: str = None,
329+
bgp_ibm_cidr: str = None,
327330
name: str = None,
328331
speed_mbps: int = None,
329332
**kwargs
@@ -336,6 +339,26 @@ def update_provider_gateway(self,
336339
change_request and require approval from the client.
337340
338341
:param str id: Direct Link Connect gateway identifier.
342+
:param int bgp_asn: (optional) The autonomous system number (ASN) of Border
343+
Gateway Protocol (BGP) configuration for the IBM side of the DL 2.0
344+
gateway.
345+
:param str bgp_cer_cidr: (optional) BGP customer edge router CIDR is the
346+
new CIDR (Classless Inter-Domain Routing) value to be updated on customer
347+
edge router for the DL 2.0 gateway. Customer edge IP and IBM IP should be
348+
in the same network. Updating customer edge router CIDR should be
349+
accompanied with IBM CIDR in the request. Update customer edge router IP to
350+
a valid bgp_cer_cidr and bgp_ibm_cidr CIDR, the value must reside in one of
351+
"10.254.0.0/16", "172.16.0.0/12", "192.168.0.0/16", "169.254.0.0/16" or an
352+
owned public CIDR. bgp_cer_cidr and bgp_ibm_cidr must have matching
353+
network and subnet mask values.
354+
:param str bgp_ibm_cidr: (optional) BGP IBM CIDR is the new CIDR (Classless
355+
Inter-Domain Routing) value to be updated on IBM edge router for the DL 2.0
356+
gateway. IBM IP and customer edge IP should be in the same network.
357+
Updating IBM CIDR should be accompanied with customer edge router CIDR in
358+
the request. Update IBM CIDR to a valid bgp_cer_cidr and bgp_ibm_cidr CIDR,
359+
the value must reside in one of "10.254.0.0/16", "172.16.0.0/12",
360+
"192.168.0.0/16", "169.254.0.0/16" or an owned public CIDR. bgp_cer_cidr
361+
and bgp_ibm_cidr must have matching network and subnet mask values.
339362
:param str name: (optional) The unique user-defined name for this gateway.
340363
:param int speed_mbps: (optional) Gateway speed in megabits per second.
341364
:param dict headers: A `dict` containing the request headers
@@ -356,6 +379,9 @@ def update_provider_gateway(self,
356379
}
357380

358381
data = {
382+
'bgp_asn': bgp_asn,
383+
'bgp_cer_cidr': bgp_cer_cidr,
384+
'bgp_ibm_cidr': bgp_ibm_cidr,
359385
'name': name,
360386
'speed_mbps': speed_mbps
361387
}
@@ -481,7 +507,7 @@ class ProviderGateway():
481507
:attr str bgp_ibm_cidr: (optional) BGP IBM CIDR.
482508
:attr str bgp_status: (optional) Gateway BGP status.
483509
The list of enumerated values for this property may expand in the future. Code
484-
and processes using this field must tolerate unexpected values.
510+
and processes using this field must tolerate unexpected values.
485511
:attr ProviderGatewayChangeRequest change_request: (optional)
486512
:attr datetime created_at: The date and time resource was created.
487513
:attr str crn: (optional) The CRN (Cloud Resource Name) of this gateway.
@@ -490,7 +516,7 @@ class ProviderGateway():
490516
:attr str name: The unique user-defined name for this gateway.
491517
:attr str operational_status: Gateway operational status.
492518
The list of enumerated values for this property may expand in the future. Code
493-
and processes using this field must tolerate unexpected values.
519+
and processes using this field must tolerate unexpected values.
494520
:attr ProviderGatewayPortReference port: Port identifier for the gateway.
495521
:attr bool provider_api_managed: Set to `true` for gateways created through the
496522
Direct Link Provider APIs.
@@ -534,7 +560,7 @@ def __init__(self,
534560
:param str name: The unique user-defined name for this gateway.
535561
:param str operational_status: Gateway operational status.
536562
The list of enumerated values for this property may expand in the future.
537-
Code and processes using this field must tolerate unexpected values.
563+
Code and processes using this field must tolerate unexpected values.
538564
:param ProviderGatewayPortReference port: Port identifier for the gateway.
539565
:param bool provider_api_managed: Set to `true` for gateways created
540566
through the Direct Link Provider APIs.
@@ -546,7 +572,7 @@ def __init__(self,
546572
:param str bgp_ibm_cidr: (optional) BGP IBM CIDR.
547573
:param str bgp_status: (optional) Gateway BGP status.
548574
The list of enumerated values for this property may expand in the future.
549-
Code and processes using this field must tolerate unexpected values.
575+
Code and processes using this field must tolerate unexpected values.
550576
:param ProviderGatewayChangeRequest change_request: (optional)
551577
:param str crn: (optional) The CRN (Cloud Resource Name) of this gateway.
552578
:param int vlan: (optional) VLAN allocated for this gateway.
@@ -697,7 +723,7 @@ class BgpStatusEnum(Enum):
697723
"""
698724
Gateway BGP status.
699725
The list of enumerated values for this property may expand in the future. Code and
700-
processes using this field must tolerate unexpected values.
726+
processes using this field must tolerate unexpected values.
701727
"""
702728
ACTIVE = "active"
703729
CONNECT = "connect"
@@ -709,8 +735,9 @@ class OperationalStatusEnum(Enum):
709735
"""
710736
Gateway operational status.
711737
The list of enumerated values for this property may expand in the future. Code and
712-
processes using this field must tolerate unexpected values.
738+
processes using this field must tolerate unexpected values.
713739
"""
740+
CONFIGURING = "configuring"
714741
CREATE_PENDING = "create_pending"
715742
CREATE_REJECTED = "create_rejected"
716743
DELETE_PENDING = "delete_pending"

0 commit comments

Comments
 (0)