Skip to content

Commit 081559e

Browse files
ygcyaoiSecloud
authored andcommitted
fix(backend): 修复cl5域名精确查找问题 #11322
# Reviewed, transaction id: 47997
1 parent 2ffcef2 commit 081559e

File tree

3 files changed

+12
-1
lines changed

3 files changed

+12
-1
lines changed

dbm-ui/backend/constants.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@
2929
IP_RE_PATTERN = r"(?:(?:2(?:5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(?:\.(?:(?:2(?:5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}"
3030
IP_PORT_RE_PATTERN = r"(?:[0-9]{1,3}\.){3}[0-9]{1,3}:[0-9]{1,5}"
3131

32+
# 域名正则表达式
33+
DOMAIN_PATTERN = r"^[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62}){2,8}\.*(#(\d+))?$"
34+
3235
# 是否有备份系统
3336
BACKUP_SYS_STATUS = True
3437

dbm-ui/backend/db_services/quick_search/handlers.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,13 @@
88
an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
99
specific language governing permissions and limitations under the License.
1010
"""
11+
import re
12+
1113
from django.db.models import CharField, F, Q, Value
1214
from django.db.models.functions import Concat
1315

1416
from backend.configuration.models import DBAdministrator
17+
from backend.constants import DOMAIN_PATTERN
1518
from backend.db_dirty.models import DirtyMachine
1619
from backend.db_dirty.serializers import ListMachinePoolSerializer
1720
from backend.db_meta.enums import ClusterType
@@ -97,6 +100,10 @@ def generate_filter_for_domain(self, filter_key, keyword_list):
97100
except ValueError:
98101
domain, _ = keyword, None
99102

103+
# 如果不是有效的域名,则直接将整个字符串作为域名
104+
if not re.compile(DOMAIN_PATTERN).match(domain):
105+
domain = keyword
106+
100107
if self.filter_type == FilterType.EXACT.value:
101108
domains.append(domain)
102109
else:

dbm-ui/backend/ticket/builders/common/base.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
from rest_framework import serializers
2222

2323
from backend.configuration.constants import MASTER_DOMAIN_INITIAL_VALUE, PLAT_BIZ_ID, AffinityEnum
24+
from backend.constants import DOMAIN_PATTERN
2425
from backend.db_meta.enums import AccessLayer, ClusterPhase, ClusterType, InstanceInnerRole, InstanceStatus
2526
from backend.db_meta.enums.comm import SystemTagEnum
2627
from backend.db_meta.models import Cluster, ExtraProcessInstance, Machine, ProxyInstance, Spec, StorageInstance
@@ -186,7 +187,7 @@ def validated_params(self, attrs):
186187
class CommonValidate(object):
187188
"""存放单据的公共校验逻辑"""
188189

189-
domain_pattern = re.compile(r"^[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62}){2,8}\.*(#(\d+))?$")
190+
domain_pattern = re.compile(DOMAIN_PATTERN)
190191

191192
@classmethod
192193
def validate_destroy_temporary_cluster_ids(cls, cluster_ids):

0 commit comments

Comments
 (0)