
    i!                         d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dlm	Z	 d dl
mZ dZdZdZ ej                    Zd	 Zd
efdZd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdS )    N)render_template)PRODUCT)api_function)	ENDPOINTSzapplication/jsonz	text/htmlz
text/plainc                    |                      dd          }|dk    rt          |          S |dk    r|                                }t          j                             dd          }t          j                             dd          }t          j         |          }|st          dd          S | d| d	| d
}t          ||          S |dk    rt          |          S |	                    d          rt          |           S |	                    d          rt          |          S |	                    d          rt          |           S |	                    d          rt          | |          S |                    d          rt          ||          S |dk    rt!                      S |dk    rt#          |           S |	                    d          rt%          ||          S t          dd          S )Npath /z/function_test_ui	FUNC_NAMEFUNC_ENVIRONMENTzInvalid environment  z/function/function/z	/overviewz/get_access_tokenz/test_timeoutz/env/z/send_requestz/secret_manager/).js.css.png.jpg.jpeg.gif.icoz/get_elapsed_timez/testInvalid request)gethandle_rootget_projectosenvironr   create_responsehandle_function_test_uihandle_access_token
startswithhandle_test_timeouthandle_env_requesthandle_send_requesthandle_secret_managerendswithhandle_static_filehandle_get_elapsed_timehandle_testhandle_markdown_file)requestcontextr   project_name	func_namefunc_envendpointconsole_urls           E/Users/user/workspace/sujinbaek/cqa-test-app/products/faas/handler.pyhandlerr0      s   ;;vr""Ds{{7###"""**,,JNN;33	:>>"4b99=** 	?"#8#>>> OO,OO9OOO 	 '{I>>>""""7+++'' ,"7+++w (!$''''' ,"7+++)** 7$Wg666}}MNN 1!$000"""&(((w7###s 3#D'222,c222       c                     | |d|idS )NzContent-Type)bodystatusheaders )r4   r5   content_types      r/   r   r   ;   s    "L1  r1   c                    	 t          j        d d          }t          |t                    S # t          $ r t          dd          cY S t
          $ r2}|                     d|            t          dd          cY d }~S d }~ww xY w)NzHome.mdr8   File not found  Error rendering markdown: Internal server error  )r   render_markdownr   CONTENT_TYPE_HTMLFileNotFoundError	Exceptionlog)r)   r4   es      r/   r   r   C   s    =+D)<<t2CDDDD 6 6 6/55555 = = =4445556<<<<<<<<=s!   *- B		B'A?9B?Bc                 N    t          t          d| |          t                    S )Nzfunction_test.htmlr.   r+   r:   )r   r   rA   rG   s     r/   r   r   N   s7     kY	
 	
 	
 '	   r1   c                    	 t          |                     di                               dd                    }t          j        |           t	          j        dd| dd          }t          |t                    S # t          $ rD}t	          j        d	t          |          d          }t          |d
t                    cY d }~S d }~ww xY w)Nquerysleepr   Tz
Slept for z secondssuccessmessager:   Fr?   )
intr   timerJ   jsondumpsr   CONTENT_TYPE_JSONrC   str)r(   
sleep_timer4   rE   s       r/   r   r   W   s    	=Wb1155gqAABB

:z)Jj)J)J)JKK
 
 t2CDDDD = = =zeA??@@tS*;<<<<<<<<=s   A;A> >
C9CCCc                     |                      d          d         }t          j                            |d           }t	          j        d|i          }t          |t                    S )Nr
   valuer:   )splitr   r   r   rP   rQ   r   rR   )r   keyrW   r4   s       r/   r    r    d   sS    
**S//"
CJNN3%%E:w&''D4.?@@@@r1   c           	         |                      di                                dd          }|s%t          t          j        ddd          d          S 	 t	          j         |d	          }|                                 t          t          j        d
d| dd          t                    S # t          j        $ r<}t          t          j        dt          |          d          d          cY d }~S d }~ww xY w)NrI   hostr	   FzNo host URL providedrK   r      )timeoutTzConnected to z successfully.r:   r?   )	r   r   rP   rQ   requestsraise_for_statusrR   RequestExceptionrS   )r(   r[   responserE   s       r/   r!   r!   k   s%   ;;w##''33D 
J55KLLMMs
 
 	

W<a000!!###J -QT-Q-Q-QRR  +	
 
 
 	
 $ W W WtzeA*O*OPPRUVVVVVVVVWs   AB, ,C7;1C2,C72C7c                    	 |                      |                     t          j                            }t	          j        d|i          }t          |t                    S # t          $ r]}| 	                    dt          |                      t	          j        dddii          }t          |dt                    cY d }~S d }~ww xY w)Ntokenr:   z?Internal error during acquiring ServiceAccount's Access Token: errorrM   Internal Server Errorr?   )get_accesstokenget_product_domainr   FUNCTIONrP   rQ   r   rR   rC   rD   rS   )r)   rc   r4   rE   s       r/   r   r      s    	=''(B(B7CS(T(TUUz7E*++t2CDDDD = = =VcRSffVV	
 	
 	
 z7Y0G$HIJJtS*;<<<<<<<<=s   AA   
C*AC<CCc                 >   	 |                      dd                              d          }|d         }|d         }t          |                      di                                dd                    }|                    |||          }t	          j        d	|i          }t          |t          
          S # t          $ r]}|	                    dt          |                      t	          j        dddii          }t          |dt                    cY d }~S d }~ww xY w)Nr   r	   r
         rI   versionr   secretr:   z(Internal error during acquiring secret: rd   rM   re   r?   )r   rX   rN   
get_secretrP   rQ   r   rR   rC   rD   rS   )	r(   r)   partssecret_grouprm   rl   secret_valuer4   rE   s	            r/   r"   r"      s    =FB''--c22Qxqgkk'2..229a@@AA)),HHz8\233t2CDDDD = = =Gs1vvGGHHHz7Y0G$HIJJtS*;<<<<<<<<=s   B2B5 5
D?ADDDc                    |                      d          }	 t          |d          5 }|                                }d d d            n# 1 swxY w Y   t          |          }t	          ||          S # t
          $ r t	          dd          cY S t          $ r2}|                    d|            t	          dd          cY d }~S d }~ww xY w)	Nr
   rbr:   r;   r<   zError serving file: r>   r?   )lstripopenreaddetermine_content_typer   rB   rC   rD   )r   r)   	file_pathfilefile_contentr8   rE   s          r/   r$   r$      s*   C  I	=)T"" 	'd99;;L	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	'-i88|,GGGG 6 6 6/55555 = = =.1..///6<<<<<<<<=sE   A3 AA3 AA3 A"A3 3C
	C
'C?C
C
c                     |                      d          rdS |                      d          rdS |                      d          rd|                     d          d         z   S t          S )	Nr   zapplication/javascriptr   ztext/css)r   r   r   r   r   zimage/.rV   )r#   rX   CONTENT_TYPE_TEXT)rx   s    r/   rw   rw      sr    %   (''&!! zCDD 3)//#..r222r1   c                    |                      d          }|                    d          r	 t          j        d |          }t	          |t
                    S # t          $ r t	          dd          cY S t          $ r2}|                    d|            t	          dd          cY d }~S d }~ww xY wt	          d	d
          S )Nr
   z.mdr:   r;   r<   r=   r>   r?   r   r   )	rt   r#   r   r@   r   rA   rB   rC   rD   )r   r)   rx   r4   rE   s        r/   r'   r'      s    C  I%   A	A/i@@D"46GHHHH  	: 	: 	:"#3S99999 	A 	A 	AKK8Q88999"#:C@@@@@@@@	A ,c222s#   *A B.3	B.<'B)#B.)B.c                      t          j                     } | t          z
  }t          j        d|i          }t	          |t
                    S )NrW   r:   )rO   
start_timerP   rQ   r   rR   )end_timeelapsed_timer4   s      r/   r%   r%      s?    y{{Hj(L:w-..D4.?@@@@r1   c                 ,    t          j        |           S )Nr(   )r   make_common_responser   s    r/   r&   r&      s    ,W====r1   )r   rP   rO   r^   flaskr   flava_function.contextsr   common.contextr   config.endpointsr   rR   rA   r}   r   r0   r   r   r   r   r    r!   r   r"   r$   rw   r'   r%   r&   r7   r1   r/   <module>r      s   				    ! ! ! ! ! ! + + + + + + ' ' ' ' ' ' & & & & & & '     TY[[
%3 %3 %3P "%3D    = = =  
= 
= 
=A A AW W W(
= 
= 
== = == = =  3 3 3A A A> > > > >r1   