<mxfile host="Electron" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.7.17 Chrome/128.0.6613.36 Electron/32.0.1 Safari/537.36" version="24.7.17" pages="4">
  <diagram name="Общее" id="uWGEkWUUhbdnRNRL2ol-">
    <mxGraphModel dx="2058" dy="2293" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        <mxCell id="2CiPU0xj2x6B_2mmQOu2-1" value="Cisco FTD 1" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;" parent="1" vertex="1">
          <mxGeometry x="60" y="590" width="120" height="60" as="geometry" />
        </mxCell>
        <mxCell id="2CiPU0xj2x6B_2mmQOu2-13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="2CiPU0xj2x6B_2mmQOu2-2" target="2CiPU0xj2x6B_2mmQOu2-7" edge="1">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="2CiPU0xj2x6B_2mmQOu2-16" value="Отдай правила" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="2CiPU0xj2x6B_2mmQOu2-13" vertex="1" connectable="0">
          <mxGeometry x="0.0347" y="1" relative="1" as="geometry">
            <mxPoint as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="2CiPU0xj2x6B_2mmQOu2-23" value="Правила Cisco FTD 2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="1" source="2CiPU0xj2x6B_2mmQOu2-2" target="2CiPU0xj2x6B_2mmQOu2-9" edge="1">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="2CiPU0xj2x6B_2mmQOu2-2" value="Cisco FTD 2" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;" parent="1" vertex="1">
          <mxGeometry x="620" y="590" width="120" height="60" as="geometry" />
        </mxCell>
        <mxCell id="2CiPU0xj2x6B_2mmQOu2-3" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" parent="1" edge="1">
          <mxGeometry width="50" height="50" relative="1" as="geometry">
            <mxPoint x="434.58" y="1490" as="sourcePoint" />
            <mxPoint x="434.58" y="640" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="2CiPU0xj2x6B_2mmQOu2-4" value="Manual" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=23;" parent="1" vertex="1">
          <mxGeometry x="70" y="135" width="100" height="40" as="geometry" />
        </mxCell>
        <mxCell id="2CiPU0xj2x6B_2mmQOu2-5" value="Through FMC" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=23;" parent="1" vertex="1">
          <mxGeometry x="585" y="135" width="170" height="40" as="geometry" />
        </mxCell>
        <mxCell id="2CiPU0xj2x6B_2mmQOu2-10" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="2CiPU0xj2x6B_2mmQOu2-6" target="2CiPU0xj2x6B_2mmQOu2-9" edge="1">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="2CiPU0xj2x6B_2mmQOu2-11" value="Хочу правила Cisco FTD 2" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="2CiPU0xj2x6B_2mmQOu2-10" vertex="1" connectable="0">
          <mxGeometry x="0.3895" relative="1" as="geometry">
            <mxPoint as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="2CiPU0xj2x6B_2mmQOu2-6" value="" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;" parent="1" vertex="1">
          <mxGeometry x="420" y="190" width="30" height="60" as="geometry" />
        </mxCell>
        <mxCell id="2CiPU0xj2x6B_2mmQOu2-21" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="1" source="2CiPU0xj2x6B_2mmQOu2-7" target="2CiPU0xj2x6B_2mmQOu2-2" edge="1">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="1050" y="680" />
              <mxPoint x="680" y="680" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="2CiPU0xj2x6B_2mmQOu2-22" value="На правила" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="2CiPU0xj2x6B_2mmQOu2-21" vertex="1" connectable="0">
          <mxGeometry x="-0.1136" y="2" relative="1" as="geometry">
            <mxPoint as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="2CiPU0xj2x6B_2mmQOu2-7" value="FMC" style="ellipse;shape=cloud;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="980" y="580" width="120" height="80" as="geometry" />
        </mxCell>
        <mxCell id="2CiPU0xj2x6B_2mmQOu2-12" value="Смотрим что FTD добавлена через FMC" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="2CiPU0xj2x6B_2mmQOu2-9" target="2CiPU0xj2x6B_2mmQOu2-2" edge="1">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="2CiPU0xj2x6B_2mmQOu2-9" value="Back" style="shape=parallelogram;perimeter=parallelogramPerimeter;whiteSpace=wrap;html=1;fixedSize=1;" parent="1" vertex="1">
          <mxGeometry x="375" y="320" width="120" height="60" as="geometry" />
        </mxCell>
        <mxCell id="2CiPU0xj2x6B_2mmQOu2-15" value="" style="shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image=data:image/png,[encoded data, 37016 characters];" parent="1" vertex="1">
          <mxGeometry x="850" y="327" width="759" height="223" as="geometry" />
        </mxCell>
        <mxCell id="2CiPU0xj2x6B_2mmQOu2-17" value="" style="shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image=data:image/png,[encoded data, 96680 characters];" parent="1" vertex="1">
          <mxGeometry x="850" y="-170" width="1056" height="460" as="geometry" />
        </mxCell>
        <mxCell id="2CiPU0xj2x6B_2mmQOu2-18" value="&lt;b&gt;Скорее всего то что выделено красным является то, что нужно подставлять в containerUUID&lt;/b&gt;&lt;div&gt;&lt;b&gt;Но это никуда не сохраняется&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Проверить&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Возможно надо добавить в модель FTD&lt;/b&gt;&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
          <mxGeometry x="1480" y="290" width="580" height="70" as="geometry" />
        </mxCell>
        <mxCell id="2CiPU0xj2x6B_2mmQOu2-19" value="" style="shape=image;verticalLabelPosition=bottom;labelBackgroundColor=default;verticalAlign=top;aspect=fixed;imageAspect=0;image=data:image/png,[encoded data, 133632 characters];" parent="1" vertex="1">
          <mxGeometry x="1630" y="420" width="636.73" height="472" as="geometry" />
        </mxCell>
        <mxCell id="2CiPU0xj2x6B_2mmQOu2-20" value="&lt;b&gt;DomainUUID берется из модельки&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1">
          <mxGeometry x="1630" y="900" width="230" height="30" as="geometry" />
        </mxCell>
        <mxCell id="2CiPU0xj2x6B_2mmQOu2-24" value="Правила Cisco FTD 2&lt;br&gt;адаптированные под модели&amp;nbsp;&lt;div&gt;Manual Cisco FTD 1&lt;/div&gt;" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="2CiPU0xj2x6B_2mmQOu2-9" target="2CiPU0xj2x6B_2mmQOu2-6" edge="1">
          <mxGeometry x="-0.0741" y="20" relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="340" y="350" />
              <mxPoint x="340" y="220" />
            </Array>
            <mxPoint as="offset" />
          </mxGeometry>
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
  <diagram id="dN5-Lvjy9Um8qbfq5YZI" name="Новый механизм забора правил FTD">
    <mxGraphModel dx="2058" dy="1193" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        <mxCell id="V1zs77xm2m6hxhrpX2sv-1" value="&lt;font style=&quot;font-size: 18px;&quot;&gt;Как сделано сейчас&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontStyle=1" parent="1" vertex="1">
          <mxGeometry x="40" y="40" width="190" height="40" as="geometry" />
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="V1zs77xm2m6hxhrpX2sv-4" target="V1zs77xm2m6hxhrpX2sv-6" edge="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="140" y="230" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-3" value="1&lt;br&gt;Дай правила" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="V1zs77xm2m6hxhrpX2sv-2" vertex="1" connectable="0">
          <mxGeometry x="-0.1096" relative="1" as="geometry">
            <mxPoint as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-4" value="Actor" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;" parent="1" vertex="1">
          <mxGeometry x="20" y="200" width="30" height="60" as="geometry" />
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-5" value="2&lt;div&gt;Инициализипрую операцию для получения правил&lt;/div&gt;&lt;div&gt;GetCiscoFTDSSHPoliciesOperation&lt;br&gt;&lt;/div&gt;" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="V1zs77xm2m6hxhrpX2sv-6" target="V1zs77xm2m6hxhrpX2sv-8" edge="1">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-6" value="CiscoFTDSSHParsedPoliciesListApiView" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="200" y="210" width="250" height="40" as="geometry" />
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-7" value="3&lt;div&gt;Операция при инициализации имплементирует родительский класс&lt;/div&gt;&lt;div&gt;CiscoFTDCacheOperationFactory&lt;br&gt;&lt;/div&gt;" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="V1zs77xm2m6hxhrpX2sv-8" target="V1zs77xm2m6hxhrpX2sv-10" edge="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="325" y="440" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-8" value="GetCiscoFTDSSHPoliciesOperation" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="200" y="360" width="250" height="40" as="geometry" />
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-9" value="4&lt;div&gt;Далее после инициализации родительского класса инициализируется&lt;/div&gt;&lt;div&gt;реализация для получения списка правил&lt;/div&gt;" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="V1zs77xm2m6hxhrpX2sv-10" target="V1zs77xm2m6hxhrpX2sv-12" edge="1">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-10" value="&lt;span style=&quot;font-size: 11px; text-wrap: nowrap; background-color: rgb(255, 255, 255);&quot;&gt;CiscoFTDCacheOperationFactory:&lt;/span&gt;&lt;div&gt;&lt;span style=&quot;background-color: rgb(255, 255, 255);&quot;&gt;&lt;div style=&quot;&quot;&gt;&lt;span style=&quot;font-size: 11px; text-wrap: nowrap;&quot;&gt;ftd_instance&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;&quot;&gt;&lt;span style=&quot;font-size: 11px; text-wrap: nowrap;&quot;&gt;request_data&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;&quot;&gt;&lt;span style=&quot;font-size: 11px; text-wrap: nowrap;&quot;&gt;ftd_backend_service&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="200" y="480" width="250" height="100" as="geometry" />
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-11" value="5&lt;div&gt;perform_request - метод для выполнения запроса правил&lt;/div&gt;&lt;div&gt;идет в кэш и пытается оттуда достать инфу&lt;/div&gt;" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="V1zs77xm2m6hxhrpX2sv-12" target="V1zs77xm2m6hxhrpX2sv-14" edge="1">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-12" value="GetCiscoFTDSSHPoliciesOperation&lt;div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; cache_key&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; pydantic_cache_key&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; template_file_path&lt;/div&gt;&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="200" y="650" width="250" height="70" as="geometry" />
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-13" value="6&lt;div&gt;Полученные данные&amp;nbsp;&lt;/div&gt;&lt;div&gt;(или выдается ответ нехватки данных)&lt;/div&gt;&lt;div&gt;отдаются во View&lt;/div&gt;" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="V1zs77xm2m6hxhrpX2sv-14" target="V1zs77xm2m6hxhrpX2sv-6" edge="1">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="600" y="830" />
              <mxPoint x="600" y="230" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-14" value="Cache" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;" parent="1" vertex="1">
          <mxGeometry x="295" y="790" width="60" height="80" as="geometry" />
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-15" value="7&lt;div&gt;Ответ с правилами или ошибкой отдается фронту&lt;/div&gt;" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="V1zs77xm2m6hxhrpX2sv-6" target="V1zs77xm2m6hxhrpX2sv-4" edge="1">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="325" y="180" />
              <mxPoint x="35" y="180" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-16" value="&lt;span style=&quot;font-size: 18px;&quot;&gt;Как надо сделать&lt;/span&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontStyle=1" parent="1" vertex="1">
          <mxGeometry x="810" y="40" width="170" height="40" as="geometry" />
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="V1zs77xm2m6hxhrpX2sv-19" target="V1zs77xm2m6hxhrpX2sv-21" edge="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="900" y="230" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-18" value="1&lt;br&gt;Дай правила" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="V1zs77xm2m6hxhrpX2sv-17" vertex="1" connectable="0">
          <mxGeometry x="-0.1096" relative="1" as="geometry">
            <mxPoint as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-19" value="Actor" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;" parent="1" vertex="1">
          <mxGeometry x="780" y="200" width="30" height="60" as="geometry" />
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-20" value="2&lt;div&gt;Инициализипрую операцию для получения правил&lt;/div&gt;&lt;div&gt;GetCiscoFTDSSHPoliciesOperation&lt;br&gt;&lt;/div&gt;" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="V1zs77xm2m6hxhrpX2sv-21" target="V1zs77xm2m6hxhrpX2sv-23" edge="1">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-21" value="CiscoFTDSSHParsedPoliciesListApiView" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="960" y="210" width="250" height="40" as="geometry" />
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-22" value="3&lt;div&gt;Операция при инициализации имплементирует родительский класс&lt;/div&gt;&lt;div&gt;CiscoFTDCacheOperationFactory&lt;br&gt;&lt;/div&gt;" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="V1zs77xm2m6hxhrpX2sv-23" target="V1zs77xm2m6hxhrpX2sv-25" edge="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="1085" y="440" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-23" value="GetCiscoFTDSSHPoliciesOperation" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="960" y="360" width="250" height="40" as="geometry" />
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-24" value="4&lt;div&gt;Далее после инициализации родительского класса инициализируется&lt;/div&gt;&lt;div&gt;реализация для получения списка правил&lt;/div&gt;" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="V1zs77xm2m6hxhrpX2sv-25" target="V1zs77xm2m6hxhrpX2sv-27" edge="1">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-25" value="&lt;span style=&quot;font-size: 11px; text-wrap: nowrap; background-color: rgb(255, 255, 255);&quot;&gt;CiscoFTDCacheOperationFactory:&lt;/span&gt;&lt;div&gt;&lt;span style=&quot;background-color: rgb(255, 255, 255);&quot;&gt;&lt;div style=&quot;&quot;&gt;&lt;span style=&quot;font-size: 11px; text-wrap: nowrap;&quot;&gt;ftd_instance&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;&quot;&gt;&lt;span style=&quot;font-size: 11px; text-wrap: nowrap;&quot;&gt;request_data&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;&quot;&gt;&lt;span style=&quot;font-size: 11px; text-wrap: nowrap;&quot;&gt;ftd_backend_service&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="960" y="480" width="250" height="100" as="geometry" />
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-26" value="5&lt;div&gt;perform_request - метод для выполнения запроса правил&lt;/div&gt;&lt;div&gt;идет в кэш и пытается оттуда достать инфу&lt;/div&gt;" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="V1zs77xm2m6hxhrpX2sv-27" target="V1zs77xm2m6hxhrpX2sv-29" edge="1">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-27" value="GetCiscoFTDSSHPoliciesOperation&lt;div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; cache_key&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; pydantic_cache_key&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; template_file_path&lt;/div&gt;&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
          <mxGeometry x="960" y="650" width="250" height="70" as="geometry" />
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-28" value="6&lt;div&gt;Полученные данные&amp;nbsp;&lt;/div&gt;&lt;div&gt;(или выдается ответ нехватки данных)&lt;/div&gt;&lt;div&gt;отдаются во View&lt;/div&gt;" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="V1zs77xm2m6hxhrpX2sv-29" target="V1zs77xm2m6hxhrpX2sv-21" edge="1">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="1360" y="830" />
              <mxPoint x="1360" y="230" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-29" value="Cache" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;" parent="1" vertex="1">
          <mxGeometry x="1055" y="790" width="60" height="80" as="geometry" />
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-30" value="7&lt;div&gt;Ответ с правилами или ошибкой отдается фронту&lt;/div&gt;" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="V1zs77xm2m6hxhrpX2sv-21" target="V1zs77xm2m6hxhrpX2sv-19" edge="1">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="1085" y="180" />
              <mxPoint x="795" y="180" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-59" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" source="V1zs77xm2m6hxhrpX2sv-32" edge="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="1230" y="310" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-32" value="Менеджер операций" style="swimlane;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
          <mxGeometry x="1560" y="220" width="1040" height="300" as="geometry" />
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-35" value="Нужен какой-то менеджер операций, который будет абстрагирован от того, как эти операции выполняются.&lt;div&gt;Т.е. получая запрос от пользователя о получении какой-либо инфомрации с устройства - это устройство передается в менеджер&lt;/div&gt;&lt;div&gt;и далее в зависимости от того, как добавлено это устройство, выбирает то, как данные будут получены&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="V1zs77xm2m6hxhrpX2sv-32" vertex="1">
          <mxGeometry y="30" width="750" height="60" as="geometry" />
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-39" value="CiscoFTDOperationsManager" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="V1zs77xm2m6hxhrpX2sv-32" vertex="1">
          <mxGeometry x="40" y="100" width="265" height="126" as="geometry" />
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-51" value="+ cisco_ftd_instance: CIscoFTD" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="V1zs77xm2m6hxhrpX2sv-39" vertex="1">
          <mxGeometry y="26" width="265" height="26" as="geometry" />
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-41" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="V1zs77xm2m6hxhrpX2sv-39" vertex="1">
          <mxGeometry y="52" width="265" height="8" as="geometry" />
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-42" value="@propery&lt;div&gt;+ strategy(self): CiscoFTDOperationsStrategy&lt;/div&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="V1zs77xm2m6hxhrpX2sv-39" vertex="1">
          <mxGeometry y="60" width="265" height="40" as="geometry" />
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-53" value="+ get_policies_list(self): List" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="V1zs77xm2m6hxhrpX2sv-39" vertex="1">
          <mxGeometry y="100" width="265" height="26" as="geometry" />
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-43" value="CiscoFTDOperationsStrategy" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="V1zs77xm2m6hxhrpX2sv-32" vertex="1">
          <mxGeometry x="360" y="100" width="265" height="80" as="geometry" />
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-45" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="V1zs77xm2m6hxhrpX2sv-43" vertex="1">
          <mxGeometry y="26" width="265" height="8" as="geometry" />
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-46" value="@abstractmethod&lt;br&gt;+ get_policies_list: List" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="V1zs77xm2m6hxhrpX2sv-43" vertex="1">
          <mxGeometry y="34" width="265" height="46" as="geometry" />
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-47" value="CiscoFTDviaFMSStrategy" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="V1zs77xm2m6hxhrpX2sv-32" vertex="1">
          <mxGeometry x="680" y="180" width="265" height="60" as="geometry" />
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-48" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="V1zs77xm2m6hxhrpX2sv-47" vertex="1">
          <mxGeometry y="26" width="265" height="8" as="geometry" />
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-49" value="+ get_policies_list: List" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="V1zs77xm2m6hxhrpX2sv-47" vertex="1">
          <mxGeometry y="34" width="265" height="26" as="geometry" />
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-50" value="" style="endArrow=block;dashed=1;endFill=0;endSize=12;html=1;rounded=0;" parent="V1zs77xm2m6hxhrpX2sv-32" source="V1zs77xm2m6hxhrpX2sv-47" target="V1zs77xm2m6hxhrpX2sv-43" edge="1">
          <mxGeometry width="160" relative="1" as="geometry">
            <mxPoint x="490" y="450" as="sourcePoint" />
            <mxPoint x="650" y="450" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-54" value="CiscoFTDviaSSHStrategy" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="V1zs77xm2m6hxhrpX2sv-32" vertex="1">
          <mxGeometry x="680" y="100" width="265" height="60" as="geometry" />
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-55" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="V1zs77xm2m6hxhrpX2sv-54" vertex="1">
          <mxGeometry y="26" width="265" height="8" as="geometry" />
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-56" value="+ get_policies_list: List" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" parent="V1zs77xm2m6hxhrpX2sv-54" vertex="1">
          <mxGeometry y="34" width="265" height="26" as="geometry" />
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-57" value="" style="endArrow=block;dashed=1;endFill=0;endSize=12;html=1;rounded=0;" parent="V1zs77xm2m6hxhrpX2sv-32" source="V1zs77xm2m6hxhrpX2sv-54" target="V1zs77xm2m6hxhrpX2sv-43" edge="1">
          <mxGeometry width="160" relative="1" as="geometry">
            <mxPoint x="690" y="191" as="sourcePoint" />
            <mxPoint x="635" y="179" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="V1zs77xm2m6hxhrpX2sv-58" value="" style="endArrow=diamondThin;endFill=0;endSize=24;html=1;rounded=0;" parent="V1zs77xm2m6hxhrpX2sv-32" source="V1zs77xm2m6hxhrpX2sv-43" target="V1zs77xm2m6hxhrpX2sv-39" edge="1">
          <mxGeometry width="160" relative="1" as="geometry">
            <mxPoint x="360" y="380" as="sourcePoint" />
            <mxPoint x="520" y="380" as="targetPoint" />
          </mxGeometry>
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
  <diagram id="0wPnesBY6uZlDhF2j6Lc" name="Архитектура взаимодействия с FTD">
    <mxGraphModel dx="2565" dy="994" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        <mxCell id="drPpgh3BXh3ZiLaSK0Ap-1" value="Взаимодействие с Cisco FTD" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;size=120;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
          <mxGeometry x="120" y="160" width="560" height="400" as="geometry" />
        </mxCell>
        <mxCell id="drPpgh3BXh3ZiLaSK0Ap-2" value="Cisco FTD&lt;div&gt;manual&lt;/div&gt;" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;" parent="1" vertex="1">
          <mxGeometry x="250" y="760" width="120" height="60" as="geometry" />
        </mxCell>
        <mxCell id="drPpgh3BXh3ZiLaSK0Ap-3" value="Cisco FTD&lt;div&gt;via FMC&lt;/div&gt;" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;" parent="1" vertex="1">
          <mxGeometry x="450" y="760" width="120" height="60" as="geometry" />
        </mxCell>
        <mxCell id="BdscG7s9_RsS8tnFf5lC-13" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="drPpgh3BXh3ZiLaSK0Ap-8" target="BdscG7s9_RsS8tnFf5lC-8">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="BdscG7s9_RsS8tnFf5lC-19" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;dashed=1;" edge="1" parent="1" source="drPpgh3BXh3ZiLaSK0Ap-8" target="BdscG7s9_RsS8tnFf5lC-18">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="drPpgh3BXh3ZiLaSK0Ap-8" value="Ports" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;size=0.18750000000000042;arcSize=10;flipV=1;labelPosition=center;align=center;fillColor=#f8cecc;strokeColor=#b85450;" parent="1" vertex="1">
          <mxGeometry x="330" y="560" width="150" height="40" as="geometry" />
        </mxCell>
        <mxCell id="drPpgh3BXh3ZiLaSK0Ap-13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="BdscG7s9_RsS8tnFf5lC-23" target="drPpgh3BXh3ZiLaSK0Ap-2" edge="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="405.00000000000045" y="680" as="sourcePoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="drPpgh3BXh3ZiLaSK0Ap-14" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="BdscG7s9_RsS8tnFf5lC-23" target="drPpgh3BXh3ZiLaSK0Ap-3" edge="1">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="404.99999999999955" y="680" as="sourcePoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="BdscG7s9_RsS8tnFf5lC-21" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;endArrow=none;endFill=0;" edge="1" parent="1" source="BdscG7s9_RsS8tnFf5lC-26" target="BdscG7s9_RsS8tnFf5lC-18">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="115.15315641355801" y="309.64484318204654" as="sourcePoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="BdscG7s9_RsS8tnFf5lC-12" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.526;exitY=0.933;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="BdscG7s9_RsS8tnFf5lC-27" target="BdscG7s9_RsS8tnFf5lC-10">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="79.1992424973605" y="193.6915505484336" as="sourcePoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="BdscG7s9_RsS8tnFf5lC-9" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="BdscG7s9_RsS8tnFf5lC-8">
          <mxGeometry relative="1" as="geometry">
            <mxPoint x="184.06590961959455" y="253.2028827412655" as="targetPoint" />
          </mxGeometry>
        </mxCell>
        <mxCell id="BdscG7s9_RsS8tnFf5lC-8" value="Правила FTD" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="1">
          <mxGeometry x="220" y="270" width="120" height="60" as="geometry" />
        </mxCell>
        <mxCell id="BdscG7s9_RsS8tnFf5lC-10" value="Redis" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
          <mxGeometry x="-90" y="80" width="90" height="80" as="geometry" />
        </mxCell>
        <mxCell id="BdscG7s9_RsS8tnFf5lC-18" value="&lt;span style=&quot;font-style: italic; text-align: left;&quot;&gt;CiscoFTDPolicyPyModel&lt;/span&gt;" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
          <mxGeometry x="-60" y="440" width="150" height="30" as="geometry" />
        </mxCell>
        <mxCell id="BdscG7s9_RsS8tnFf5lC-23" value="Adapters" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;size=0.18750000000000042;arcSize=10;flipV=0;labelPosition=center;align=center;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
          <mxGeometry x="330" y="600" width="150" height="40" as="geometry" />
        </mxCell>
        <mxCell id="BdscG7s9_RsS8tnFf5lC-24" value="Ports" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;size=0.18750000000000042;arcSize=10;flipV=1;labelPosition=center;align=center;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
          <mxGeometry x="-800" y="380" width="150" height="40" as="geometry" />
        </mxCell>
        <mxCell id="BdscG7s9_RsS8tnFf5lC-25" value="Adapters" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;size=0.18750000000000042;arcSize=10;flipV=0;labelPosition=center;align=center;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
          <mxGeometry x="-800" y="420" width="150" height="40" as="geometry" />
        </mxCell>
        <mxCell id="BdscG7s9_RsS8tnFf5lC-26" value="Ports" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;size=0.18750000000000042;arcSize=10;flipV=1;labelPosition=center;align=center;fillColor=#f8cecc;strokeColor=#b85450;rotation=121;" vertex="1" parent="1">
          <mxGeometry x="93" y="220" width="150" height="40" as="geometry" />
        </mxCell>
        <mxCell id="BdscG7s9_RsS8tnFf5lC-27" value="Adapters" style="verticalLabelPosition=middle;verticalAlign=middle;html=1;shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;size=0.18750000000000042;arcSize=10;flipV=0;labelPosition=center;align=center;fillColor=#d5e8d4;strokeColor=#82b366;rotation=121;" vertex="1" parent="1">
          <mxGeometry x="58" y="200" width="150" height="40" as="geometry" />
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
  <diagram id="lNb1j-PrQNOe5WVsi_B7" name="Page-4">
    <mxGraphModel dx="2058" dy="1193" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
