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

octavia-cli: Added flag to control whether to reset the streams or not #18337

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ destination_configuration_path: TO_UPDATE_FROM_TEST
# EDIT THE CONFIGURATION BELOW!
configuration:
status: active # REQUIRED | string | Allowed values: active, inactive, deprecated
skip_reset: false # REQUIRED | boolean | Flag to check if the connection should be reseted after a connection update
namespace_definition: source # OPTIONAL | string | Allowed values: source, destination, customformat
namespace_format: "${SOURCE_NAMESPACE}" # OPTIONAL | string | Used when namespaceDefinition is 'customformat'. If blank then behaves like namespaceDefinition = 'destination'. If "${SOURCE_NAMESPACE}" then behaves like namespaceDefinition = 'source'.
prefix: "" # REQUIRED | Prefix that will be prepended to the name of each stream when it is written to the destination
Expand Down
16 changes: 16 additions & 0 deletions octavia-cli/octavia_cli/apply/resources.py
Original file line number Diff line number Diff line change
Expand Up @@ -569,6 +569,14 @@ class Connection(BaseResource):

resource_type = "connection"

local_root_level_keys_to_remove_during_create = [
"skip_reset"
] # Remove these keys when sending a create request

local_root_level_keys_to_filter_out_for_comparison = [
"skip_reset"
] # Remote do not have these keys

remote_root_level_keys_to_filter_out_for_comparison = [
"name",
"source",
Expand Down Expand Up @@ -667,6 +675,8 @@ def create_payload(self) -> WebBackendConnectionCreate:
self.configuration["operations"] = self._deserialize_operations(
self.raw_configuration["configuration"]["operations"], OperationCreate
)
for k in self.local_root_level_keys_to_remove_during_create:
self.configuration.pop(k, None)
return WebBackendConnectionCreate(
name=self.resource_name, source_id=self.source_id, destination_id=self.destination_id, **self.configuration
)
Expand Down Expand Up @@ -794,6 +804,12 @@ def _check_for_legacy_raw_configuration_keys(self, raw_configuration):
"These keys changed to source_configuration_path and destination_configuration_path in version > 0.39.18, please update your connection configuration to give path to source and destination configuration files or regenerate the connection",
)

def _get_local_comparable_configuration(self) -> dict:
comparable = {
k: v for k, v in self.raw_configuration["configuration"].items() if k not in self.local_root_level_keys_to_filter_out_for_comparison
}
return comparable

def _get_remote_comparable_configuration(self) -> dict:

comparable = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ destination_configuration_path: {{ destination_configuration_path }}
# EDIT THE CONFIGURATION BELOW!
configuration:
status: active # REQUIRED | string | Allowed values: active, inactive, deprecated
skip_reset: false # REQUIRED | boolean | Flag to check if the connection should be reseted after a connection update
namespace_definition: source # OPTIONAL | string | Allowed values: source, destination, customformat
namespace_format: "${SOURCE_NAMESPACE}" # OPTIONAL | string | Used when namespaceDefinition is 'customformat'. If blank then behaves like namespaceDefinition = 'destination'. If "${SOURCE_NAMESPACE}" then behaves like namespaceDefinition = 'source'.
prefix: "" # REQUIRED | Prefix that will be prepended to the name of each stream when it is written to the destination
Expand Down