Make agent URLs as CharField validated by a customized validator #703
+28
−2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
As an application which largely relies on modern microsvc deployment architecture as provided by tools like docker and k8s, Cello must be compatible with any of them, which means to be compatible with lots of components within an internal container network. Thus, the ability to accept internal URL references, like container and service names, compling with RFC-1123 is indeed necessary.
This commit introduces a new dependency FQDN in order to achieve this very goal. A hostname which is accepted by this tool should be seen as valid by Cello. Moreover, in order to introduce this customized validator, the urls field of
Agentmodel is now changed into CharField to stop serializers of Django REST framework to use the default method to validate the field. An overriding in the serializers level can be done but must be done for allAgentserializers respectively. Therefore, to keep code simplicity, this commit directly changes the field type. Changing the validator of the field all at once. As a result, the URL of Agent should be fully compatible with an internal container network after this commit.