endpoint_resolver_base.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #
  2. # Licensed to the Apache Software Foundation (ASF) under one
  3. # or more contributor license agreements. See the NOTICE file
  4. # distributed with self work for additional information
  5. # regarding copyright ownership. The ASF licenses self file
  6. # to you under the Apache License, Version 2.0 (the
  7. # "License"); you may not use self file except in compliance
  8. # with the License. You may obtain a copy of the License at
  9. #
  10. # http://www.apache.org/licenses/LICENSE-2.0
  11. #
  12. # Unless required by applicable law or agreed to in writing,
  13. # software distributed under the License is distributed on an
  14. # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  15. # KIND, either express or implied. See the License for the
  16. # specific language governing permissions and limitations
  17. # under the License.
  18. #
  19. from aliyunsdkcore.endpoint import EndpointResolver
  20. class EndpointResolverBase(EndpointResolver):
  21. def __init__(self):
  22. EndpointResolver.__init__(self)
  23. self.endpoints_data = dict()
  24. def fetch_endpoint_entry(self, request):
  25. key = self.get_endpoint_key_from_request(request)
  26. return self.endpoints_data.get(key)
  27. def put_endpoint_entry(self, key, endpoint):
  28. self.endpoints_data[key] = endpoint
  29. def is_product_code_valid(self, request):
  30. for key in self.endpoints_data.keys():
  31. if key.startswith(request.product_code_lower):
  32. return True
  33. return False
  34. def is_region_id_valid(self, request):
  35. raise NotImplementedError()
  36. def get_endpoint_key_from_request(self, request):
  37. raise NotImplementedError()
  38. def get_valid_region_ids_by_product(self, product_code):
  39. # Only local config can tell
  40. return None