Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
controller
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
TFS
controller
Commits
63b491e5
Commit
63b491e5
authored
11 months ago
by
Pablo Armingol
Browse files
Options
Downloads
Patches
Plain Diff
IP-link service
parent
6883949a
No related branches found
No related tags found
2 merge requests
!341
Draft: Resolve "optical bandwidth expansion"
,
!239
Draft: Resolve "(TID) Creation of IP link with supporting coherent pluggable to pluggable connection"
Changes
3
Pipelines
2
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
my_deploy.sh
+1
-1
1 addition, 1 deletion
my_deploy.sh
src/pathcomp/frontend/service/algorithms/tools/ComposeConfigRules.py
+52
-42
52 additions, 42 deletions
...p/frontend/service/algorithms/tools/ComposeConfigRules.py
src/webui/service/main/routes.py
+1
-1
1 addition, 1 deletion
src/webui/service/main/routes.py
with
54 additions
and
44 deletions
my_deploy.sh
+
1
−
1
View file @
63b491e5
...
@@ -20,7 +20,7 @@
...
@@ -20,7 +20,7 @@
export
TFS_REGISTRY_IMAGES
=
"http://localhost:32000/tfs/"
export
TFS_REGISTRY_IMAGES
=
"http://localhost:32000/tfs/"
# Set the list of components, separated by spaces, you want to build images for, and deploy.
# Set the list of components, separated by spaces, you want to build images for, and deploy.
export
TFS_COMPONENTS
=
"
context device pathcomp service slice nbi webui load_generator"
export
TFS_COMPONENTS
=
"context device pathcomp service slice nbi webui load_generator"
# Uncomment to activate Monitoring
# Uncomment to activate Monitoring
#export TFS_COMPONENTS="${TFS_COMPONENTS} monitoring"
#export TFS_COMPONENTS="${TFS_COMPONENTS} monitoring"
...
...
This diff is collapsed.
Click to expand it.
src/pathcomp/frontend/service/algorithms/tools/ComposeConfigRules.py
+
52
−
42
View file @
63b491e5
...
@@ -52,6 +52,10 @@ TAPI_SETTINGS_FIELD_DEFAULTS = {
...
@@ -52,6 +52,10 @@ TAPI_SETTINGS_FIELD_DEFAULTS = {
'
direction
'
:
'
UNIDIRECTIONAL
'
,
'
direction
'
:
'
UNIDIRECTIONAL
'
,
}
}
IPLINK_SETTINGS_FIELD_DEFAULTS
=
{
'
mtu
'
:
1450
,
}
def
find_custom_config_rule
(
config_rules
:
List
,
resource_name
:
str
)
->
Optional
[
Dict
]:
def
find_custom_config_rule
(
config_rules
:
List
,
resource_name
:
str
)
->
Optional
[
Dict
]:
resource_value
:
Optional
[
Dict
]
=
None
resource_value
:
Optional
[
Dict
]
=
None
for
config_rule
in
config_rules
:
for
config_rule
in
config_rules
:
...
@@ -105,7 +109,7 @@ def compose_tapi_config_rules(main_service_config_rules : List, subservice_confi
...
@@ -105,7 +109,7 @@ def compose_tapi_config_rules(main_service_config_rules : List, subservice_confi
compose_config_rules
(
main_service_config_rules
,
subservice_config_rules
,
rule_name
,
defaults
)
compose_config_rules
(
main_service_config_rules
,
subservice_config_rules
,
rule_name
,
defaults
)
def
compose_iplink_config_rules
(
main_service_config_rules
:
List
,
subservice_config_rules
:
List
)
->
None
:
def
compose_iplink_config_rules
(
main_service_config_rules
:
List
,
subservice_config_rules
:
List
)
->
None
:
CONFIG_RULES
=
[
SETTINGS_RULE_NAME
]
CONFIG_RULES
:
List
[
Tuple
[
str
,
dict
]]
=
[
(
SETTINGS_RULE_NAME
,
IPLINK_SETTINGS_FIELD_DEFAULTS
)
]
for
rule_name
,
defaults
in
CONFIG_RULES
:
for
rule_name
,
defaults
in
CONFIG_RULES
:
compose_config_rules
(
main_service_config_rules
,
subservice_config_rules
,
rule_name
,
defaults
)
compose_config_rules
(
main_service_config_rules
,
subservice_config_rules
,
rule_name
,
defaults
)
...
@@ -318,48 +322,54 @@ def generate_neighbor_endpoint_config_rules(
...
@@ -318,48 +322,54 @@ def generate_neighbor_endpoint_config_rules(
for
config_rule
in
config_rules
:
for
config_rule
in
config_rules
:
# Only applicable, by now, to Custom Config Rules for endpoint settings
# Only applicable, by now, to Custom Config Rules for endpoint settings
if
'
custom
'
not
in
config_rule
:
continue
if
'
custom
'
not
in
config_rule
or
'
ip_link
'
not
in
config_rule
:
continue
match
=
RE_ENDPOINT_SETTINGS
.
match
(
config_rule
[
'
custom
'
][
'
resource_key
'
])
if
'
custom
'
in
config_rule
:
if
match
is
None
:
match
=
RE_ENDPOINT_SETTINGS
.
match
(
config_rule
[
'
custom
'
][
'
resource_key
'
])
match
=
RE_ENDPOINT_VLAN_SETTINGS
.
match
(
config_rule
[
'
custom
'
][
'
resource_key
'
])
if
match
is
None
:
if
match
is
None
:
continue
match
=
RE_ENDPOINT_VLAN_SETTINGS
.
match
(
config_rule
[
'
custom
'
][
'
resource_key
'
])
if
match
is
None
:
continue
resource_key_values
=
match
.
groups
()
resource_key_values
=
match
.
groups
()
if
resource_key_values
[
0
:
2
]
in
device_endpoint_keys_a
:
if
resource_key_values
[
0
:
2
]
in
device_endpoint_keys_a
:
resource_key_values
=
list
(
resource_key_values
)
resource_key_values
=
list
(
resource_key_values
)
resource_key_values
[
0
]
=
link_endpoint_b
[
'
device
'
]
resource_key_values
[
0
]
=
link_endpoint_b
[
'
device
'
]
resource_key_values
[
1
]
=
link_endpoint_b
[
'
ingress_ep
'
]
resource_key_values
[
1
]
=
link_endpoint_b
[
'
ingress_ep
'
]
elif
resource_key_values
[
0
:
2
]
in
device_endpoint_keys_b
:
elif
resource_key_values
[
0
:
2
]
in
device_endpoint_keys_b
:
resource_key_values
=
list
(
resource_key_values
)
resource_key_values
=
list
(
resource_key_values
)
resource_key_values
[
0
]
=
link_endpoint_a
[
'
device
'
]
resource_key_values
[
0
]
=
link_endpoint_a
[
'
device
'
]
resource_key_values
[
1
]
=
link_endpoint_a
[
'
egress_ep
'
]
resource_key_values
[
1
]
=
link_endpoint_a
[
'
egress_ep
'
]
else
:
else
:
continue
continue
device_keys
=
compute_device_keys
(
resource_key_values
[
0
],
device_name_mapping
)
device_keys
=
compute_device_keys
(
resource_key_values
[
0
],
device_name_mapping
)
device_names
=
{
device_key
for
device_key
in
device_keys
if
RE_UUID
.
match
(
device_key
)
is
None
}
device_names
=
{
device_key
for
device_key
in
device_keys
if
RE_UUID
.
match
(
device_key
)
is
None
}
if
len
(
device_names
)
!=
1
:
if
len
(
device_names
)
!=
1
:
MSG
=
'
Unable to identify name for Device({:s}): device_keys({:s})
'
MSG
=
'
Unable to identify name for Device({:s}): device_keys({:s})
'
raise
Exception
(
MSG
.
format
(
str
(
resource_key_values
[
0
]),
str
(
device_keys
)))
raise
Exception
(
MSG
.
format
(
str
(
resource_key_values
[
0
]),
str
(
device_keys
)))
resource_key_values
[
0
]
=
device_names
.
pop
()
resource_key_values
[
0
]
=
device_names
.
pop
()
endpoint_keys
=
compute_endpoint_keys
(
device_keys
,
resource_key_values
[
1
],
endpoint_name_mapping
)
endpoint_keys
=
compute_endpoint_keys
(
device_keys
,
resource_key_values
[
1
],
endpoint_name_mapping
)
endpoint_names
=
{
endpoint_key
for
endpoint_key
in
endpoint_keys
if
RE_UUID
.
match
(
endpoint_key
)
is
None
}
endpoint_names
=
{
endpoint_key
for
endpoint_key
in
endpoint_keys
if
RE_UUID
.
match
(
endpoint_key
)
is
None
}
if
len
(
endpoint_names
)
!=
1
:
if
len
(
endpoint_names
)
!=
1
:
MSG
=
'
Unable to identify name for Endpoint({:s}): endpoint_keys({:s})
'
MSG
=
'
Unable to identify name for Endpoint({:s}): endpoint_keys({:s})
'
raise
Exception
(
MSG
.
format
(
str
(
resource_key_values
[
1
]),
str
(
endpoint_keys
)))
raise
Exception
(
MSG
.
format
(
str
(
resource_key_values
[
1
]),
str
(
endpoint_keys
)))
resource_key_values
[
1
]
=
endpoint_names
.
pop
()
resource_key_values
[
1
]
=
endpoint_names
.
pop
()
resource_value
:
Dict
=
json
.
loads
(
config_rule
[
'
custom
'
][
'
resource_value
'
])
resource_value
:
Dict
=
json
.
loads
(
config_rule
[
'
custom
'
][
'
resource_value
'
])
if
'
neighbor_address
'
not
in
resource_value
:
continue
if
'
neighbor_address
'
not
in
resource_value
:
continue
resource_value
[
'
ip_address
'
]
=
resource_value
.
pop
(
'
neighbor_address
'
)
resource_value
[
'
ip_address
'
]
=
resource_value
.
pop
(
'
neighbor_address
'
)
# remove neighbor_address also from original rule as it is already consumed
# remove neighbor_address also from original rule as it is already consumed
resource_key_template
=
TMPL_ENDPOINT_VLAN_SETTINGS
if
len
(
match
.
groups
())
==
3
else
TMPL_ENDPOINT_SETTINGS
resource_key_template
=
TMPL_ENDPOINT_VLAN_SETTINGS
if
len
(
match
.
groups
())
==
3
else
TMPL_ENDPOINT_SETTINGS
generated_config_rule
=
copy
.
deepcopy
(
config_rule
)
generated_config_rule
[
'
custom
'
][
'
resource_key
'
]
=
resource_key_template
.
format
(
*
resource_key_values
)
generated_config_rule
[
'
custom
'
][
'
resource_value
'
]
=
json
.
dumps
(
resource_value
)
generated_config_rules
.
append
(
generated_config_rule
)
else
:
LOGGER
.
debug
(
'
[generate_neighbor_endpoint_config_rules] IP_LINK: {:s}
'
.
format
(
str
(
config_rule
)))
resource_value
:
Dict
=
config_rule
[
'
ip_link
'
]
generated_config_rule
=
copy
.
deepcopy
(
config_rule
)
generated_config_rule
=
copy
.
deepcopy
(
config_rule
)
generated_config_rule
[
'
custom
'
][
'
resource_key
'
]
=
resource_key_template
.
format
(
*
resource_key_values
)
generated_config_rule
[
'
ip_link
'
]
=
json
.
dumps
(
resource_value
)
generated_config_rule
[
'
custom
'
][
'
resource_value
'
]
=
json
.
dumps
(
resource_value
)
generated_config_rules
.
append
(
generated_config_rule
)
generated_config_rules
.
append
(
generated_config_rule
)
LOGGER
.
debug
(
'
[generate_neighbor_endpoint_config_rules] generated_config_rules={:s}
'
.
format
(
str
(
generated_config_rules
)))
LOGGER
.
debug
(
'
[generate_neighbor_endpoint_config_rules] generated_config_rules={:s}
'
.
format
(
str
(
generated_config_rules
)))
...
...
This diff is collapsed.
Click to expand it.
src/webui/service/main/routes.py
+
1
−
1
View file @
63b491e5
...
@@ -48,7 +48,7 @@ def process_descriptors(descriptors):
...
@@ -48,7 +48,7 @@ def process_descriptors(descriptors):
descriptor_loader
=
DescriptorLoader
(
descriptors
,
num_workers
=
DESCRIPTOR_LOADER_NUM_WORKERS
)
descriptor_loader
=
DescriptorLoader
(
descriptors
,
num_workers
=
DESCRIPTOR_LOADER_NUM_WORKERS
)
results
=
descriptor_loader
.
process
()
results
=
descriptor_loader
.
process
()
for
message
,
level
in
compose_notifications
(
results
):
for
message
,
level
in
compose_notifications
(
results
):
if
level
==
'
error
'
:
LOGGER
.
warning
(
'
ERROR message
={:s}
'
.
format
(
str
(
message
)))
if
level
==
'
error
'
:
LOGGER
.
warning
(
'
ERROR message={:s}
'
.
format
(
str
(
message
)))
flash
(
message
,
level
)
flash
(
message
,
level
)
@main.route
(
'
/
'
,
methods
=
[
'
GET
'
,
'
POST
'
])
@main.route
(
'
/
'
,
methods
=
[
'
GET
'
,
'
POST
'
])
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment