
    oi                         d dl Z d dlZd dlZd dlZd dl d dlZd dlmZ d dlm	Z	  ed      Z
 G d dej                  j                        Zy)    N)*)BoundedSemaphore)ProcessGroupManager   c                   H    e Zd ZdZej
                  j                  d        Zy)PlantumlView/c           	      
   t         j                  dd       	 t        j                         5 }t        j
                  j                  dd      }t        j
                  j                  dd       }t         j                  d| d| d       t        j                  j                  |d	|       }|d
k(  rdt        j                  d   j                         j                         }dddt        j                  j                  t        j                  d      d|g}nd}t        j                  j                  |d      }	 t        |d      5 }	t        j                  d   j                  |      }
|
r6|	j!                  |
       t        j                  d   j                  |      }
|
r6d d d        t         j                  d| d       dddt        j                  j                  t        j                  d      d| d||g}t         j                  ddj                  |       d       t%        j&                         }d }	 t(        5  t+        |dt,        j.                  t,        j.                        5 }|j1                         }t%        j&                         |z
  }t         j                  d|ddd       |d k7  r?|j2                  xs d!}t         j                  d"| d       t-        j4                  |      |j6                  }d d d        d d d        |d
k(  r||s,t         j                  d$d       t-        j4                  d%      t        |d      5 }	|	j!                  |j;                                d d d        t         j                  d&| d       t         j                  d'| d       	 t<        j>                  jA                  |d()      cd d d        S # 1 sw Y   9xY w# t"        $ r }t         j                  d| d        d }~ww xY w# 1 sw Y   xY w# 1 sw Y   xY w# t,        j8                  $ r5 t%        j&                         |z
  }t         j                  d#|ddd        w xY w# 1 sw Y   xY w# tB        $ r9 t         j                  d*d+       t<        jE                  d,-      cY cd d d        S w xY w# 1 sw Y   y xY w# t,        j4                  $ r>}t         j                  d.| d       t<        jE                  d/| d0-      cY d }~S d }~wtF        $ r>}t         j                  d1| d       t<        jE                  d2| d0-      cY d }~S d }~ww xY w)3NuC   Начало выполнения метода post в PlantumlViewDEBUG)levelformatsvgobj_idu   Получен формат: z	, obj_id=zresult.pumlfilez/usr/bin/javaz -Djava.net.useSystemProxies=truez-jarzplantuml.jarz
-decodeurli    zresult.pumlzwb+u3   Загруженный файл записан в: uB   Ошибка при записи временного файла: ERRORz-tz-ou%   Выполнение команды:     )timeoutstdoutstderru+   Команда завершилась за z.2fu    секr    u9   Команда завершилась с ошибкой: u6   Команда превысила таймаут за uI   Не получен stdout от команды для формата pumlu.   Не получен stdout от командыu/   Записан результат в файл: u   Отправка файла: T)as_attachmentuh   Клиент разорвал соединение до завершения передачи файлаWARNINGi  )statusuA   Ошибка выполнения внешней команды: u*   Ошибка обработки PlantUML: i  u+   Исключение в методе post: u0   Ошибка обработки запроса: )$gdebugtempfileTemporaryDirectoryrequestvaluesgetospathjoinfilesreaddecodeconfigPROJECT_DIRopenwriteIOErrortimeperf_counterPLANTUML_SEMAPHOREr   
subprocessPIPEwaitr   SubprocessErrorr   TimeoutExpiredencodeflaskhelpers	send_fileBrokenPipeErrorResponse	Exception)selftmp_dir	to_formatr   result_filedecoded_contentcmd
chunk_sizetemp_filenamefchunkestartstdout_dataprocretdurationstderr_texts                     !./modules/plantuml/views/index.pypostzPlantumlView.post   s
   	U]deR	f,,. J6'#NN..x?	 ++Hd;7	{)F8T\cd ggll7gi[4IJ&&-mmF&;&@&@&B&I&I&KO':V%7%7H$oC "&J$&GGLL-$HM	!-7 O1$+MM&$9$>$>z$JE"' !(/f(=(B(B:(N #(O
 "UVcUd emtu (:V%7%7HYK(g%C ?OW^_))+"+ 60bakapapq 6uy"&))+C'+'8'8':U'BHGG&QRZ[^Q__f$govGw"ax.2kk.?R !*cdocp(q  zA  !B&0&@&@&M M +/++K66$ && ksz{(889ijjk51 6Q 2 2 456GGMk][cjGk7}EWU6 ==22;d2SOJ6 J6&O O # "defdg hpwx&6 66 6 "00 #002U:HGGTU]^aTbbijryGz6 6 ' 6GG  G  OXG  Y >>>55UJ6 J6P6QJ6 J6X )) 	`GGWXYWZ[cjGk>>$Nqc"R[^>__ 	fGGA!EWGU>>$TUVTW"Xad>ee	fs  S DS:O%AO!"O%A8S<P+,P.BPP
P+?S Q61<S. R	S O"	O%%	P.P		PSPPP(	#P++AQ33S6R 	;S6S9S:	S SSSS S U*'3T U* U*,3U%U*%U*N)__name__
__module____qualname____url__cmfviewsactionrO        rN   r   r      s'    GYYTf TfrX   r   )loggingr#   r1   r   cmf.includer.   	threadingr   common.process_utilsr   r0   rT   rU   BaseViewr   rW   rX   rN   <module>r^      sB     	     & 4%a( Xf399%% XfrX   