@@ -598,18 +598,27 @@ def retrieve_ssh_config(self, ca_request):
598598 value = None
599599 if ca_request .template :
600600 key = 'DN'
601- value = "%s%s%s" % (CA_ROOT_PATH , PATH_SEPARATOR , ca_request .guid )
601+ value = ca_request .template
602+ if not value .startswith (PATH_SEPARATOR ):
603+ value = "%s%s" % (PATH_SEPARATOR , value )
604+ if not value .startswith (CA_ROOT_PATH ):
605+ value = "%s%s" % (CA_ROOT_PATH , value )
602606 elif ca_request .guid :
603607 key = 'guid'
604608 value = ca_request .guid
605609 else :
606610 raise ClientBadData ("CA Guid or CA template must be provided to retrieve SSH config." )
607611
612+ value = url_parse .quote (value )
608613 query = "%s=%s" % (key , value )
609- query = url_parse .quote (query )
610614 url = "%s?%s" % (URLS .SSH_CA_PUBLIC_KEY , query )
611615
612- status , data = self ._get (url = url , params = None )
616+ args = {
617+ self .ARG_URL : url ,
618+ self .ARG_CHECK_TOKEN : False ,
619+ self .ARG_INCLUDE_TOKEN_HEADER : False
620+ }
621+ status , data = self .get (args = args )
613622 if status == HTTPStatus .OK :
614623 ssh_config_response = SSHConfig ()
615624 ssh_config_response .ca_public_key = data
@@ -621,6 +630,28 @@ def retrieve_ssh_config(self, ca_request):
621630 raise ServerUnexptedBehavior ("Server returns %d status on requesting SSH CA Public Key Data for %s = %s."
622631 % (status , key , value ))
623632
633+ ARG_URL = 'url'
634+ ARG_PARAMS = 'params'
635+ ARG_CHECK_TOKEN = 'check_token'
636+ ARG_INCLUDE_TOKEN_HEADER = 'include_token_header'
637+ ARG_DATA = 'data'
638+
639+ def get (self , args ):
640+ """
641+
642+ :param dict args:
643+ :rtype: tuple[Any, Any]
644+ """
645+ raise NotImplementedError
646+
647+ def post (self , args ):
648+ """
649+
650+ :param dict args:
651+ :rtype: tuple[Any, Any]
652+ """
653+ raise NotImplementedError
654+
624655 # ======================================== API IMPLEMENTATION ENDS ======================================== #
625656 # ========================================================================================================= #
626657
@@ -876,13 +907,22 @@ def _retrieve_ssh_ca_details(self, ca_request):
876907 """
877908 json_request = dict ()
878909 if ca_request .template :
879- json_request ['DN' ] = "%s%s%s" % (CA_ROOT_PATH , PATH_SEPARATOR , ca_request .guid )
910+ value = ca_request .template
911+ if not value .startswith (PATH_SEPARATOR ):
912+ value = "%s%s" % (PATH_SEPARATOR , value )
913+ if not value .startswith (CA_ROOT_PATH ):
914+ value = "%s%s" % (CA_ROOT_PATH , value )
915+ json_request ['DN' ] = value
880916 elif ca_request .guid :
881917 json_request ['Guid' ] = ca_request .guid
882918 else :
883919 raise ClientBadData ("CA Guid or CA template must be provided to retrieve SSH CA details." )
884920
885- status , data = self ._post (URLS .SSH_CA_DETAILS , json_request )
921+ args = {
922+ self .ARG_URL : URLS .SSH_CA_DETAILS ,
923+ self .ARG_DATA : json_request
924+ }
925+ status , data = self .post (args = args )
886926 if status == HTTPStatus .OK :
887927 response_object = SSHResponse (data ['Response' ])
888928 if response_object .success :
0 commit comments