<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: ACI accesses parser in Controllers</title>
    <link>https://community.cisco.com/t5/controllers/aci-accesses-parser/m-p/4518725#M2466</link>
    <description>&lt;P&gt;Nah, that would be too easy, right? ^_^&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Cheers,&lt;/P&gt;
&lt;P&gt;Sergiu&lt;/P&gt;</description>
    <pubDate>Tue, 14 Dec 2021 16:13:00 GMT</pubDate>
    <dc:creator>Sergiu.Daniluk</dc:creator>
    <dc:date>2021-12-14T16:13:00Z</dc:date>
    <item>
      <title>ACI accesses parser</title>
      <link>https://community.cisco.com/t5/controllers/aci-accesses-parser/m-p/4518493#M2461</link>
      <description>&lt;P&gt;Hello colleagues!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Im trying to parse all accesses between endpoints in ACI via API (including vzAny accesses).&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Now, I have got enormous script with a lot of&amp;nbsp;&lt;SPAN&gt;consecutive steps of filling dictionaries:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;1. dictionary with contracts used in vzAny objects;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;2. dictionary with matching EPGs and Tenants;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;3. dictionary with matching contracts and filters;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;4. dictionary with matching filters and entries (ports);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;5. dictionary with matching EP IPs and EPGs;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;6. dictionary with list of providers/consumers for each contract;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Next I am using it in huge cycle and collecting all accesses. It's looking ugly and heavy.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Could you share your experience with such task?&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 14 Dec 2021 10:37:02 GMT</pubDate>
      <guid>https://community.cisco.com/t5/controllers/aci-accesses-parser/m-p/4518493#M2461</guid>
      <dc:creator>ksarek</dc:creator>
      <dc:date>2021-12-14T10:37:02Z</dc:date>
    </item>
    <item>
      <title>Re: ACI accesses parser</title>
      <link>https://community.cisco.com/t5/controllers/aci-accesses-parser/m-p/4518591#M2462</link>
      <description>&lt;P&gt;Hi &lt;a href="https://community.cisco.com/t5/user/viewprofilepage/user-id/1288691"&gt;@ksarek&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;By "accesses" you mean which EPG can talk with which EPG (or which EP can talk with which EP)?&lt;/P&gt;
&lt;P&gt;If this is what you are trying to obtain, then I think it would be sufficient to have two dictionaries:&lt;/P&gt;
&lt;P&gt;1. {"EPG": {"consumed contracts": [], "provided_contracts": []}}&lt;/P&gt;
&lt;P&gt;2. {"EP": "EPG it belongs to"}&lt;/P&gt;
&lt;P&gt;If you are asked if two EPs can talk, you simply search if there are any common items between ( EPG1_consumed_contracts, EPG2_provided_contracts) and&amp;nbsp; ( EPG2_consumed_contracts, EPG1_provided_contracts).&lt;/P&gt;
&lt;P&gt;vzAny will be a special condition, but is similar with the logic above.&lt;/P&gt;
&lt;P&gt;OFC you will have to keep in mind that there are other special conditions which you need to check - part of same EPG, EPG configured or not with intra-epg isolation, uEPG, ESGs.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Stay safe,&lt;/P&gt;
&lt;P&gt;Sergiu&lt;/P&gt;</description>
      <pubDate>Tue, 14 Dec 2021 13:31:32 GMT</pubDate>
      <guid>https://community.cisco.com/t5/controllers/aci-accesses-parser/m-p/4518591#M2462</guid>
      <dc:creator>Sergiu.Daniluk</dc:creator>
      <dc:date>2021-12-14T13:31:32Z</dc:date>
    </item>
    <item>
      <title>Re: ACI accesses parser</title>
      <link>https://community.cisco.com/t5/controllers/aci-accesses-parser/m-p/4518612#M2463</link>
      <description>&lt;P&gt;&lt;SPAN&gt;Hello, thank you for reply!&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;gt;&amp;gt;&amp;gt;By "accesses" you mean which EPG can talk with which EPG (or which EP can talk with which EP)?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I mean EP-to-EP accesses&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;gt;&amp;gt;&amp;gt;If this is what you are trying to obtain, then I think it would be sufficient to have two dictionaries:&lt;/P&gt;&lt;P&gt;1. {"EPG": {"consumed contracts": [], "provided_contracts": []}}&lt;/P&gt;&lt;P&gt;2. {"EP": "EPG it belongs to"}&lt;/P&gt;&lt;P&gt;Yes, I have used close structure, but I need additional dictionaries for vzAny cases, filters and entries matching.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;gt;&amp;gt;&amp;gt;OFC you will have to keep in mind that there are other special conditions which you need to check - part of same EPG, EPG configured or not with intra-epg isolation, uEPG, ESGs.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;OFC, there are many special conditions here...&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;What about my structure in general? Is it optimal approach or I can find something more graceful?&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 14 Dec 2021 13:52:13 GMT</pubDate>
      <guid>https://community.cisco.com/t5/controllers/aci-accesses-parser/m-p/4518612#M2463</guid>
      <dc:creator>ksarek</dc:creator>
      <dc:date>2021-12-14T13:52:13Z</dc:date>
    </item>
    <item>
      <title>Re: ACI accesses parser</title>
      <link>https://community.cisco.com/t5/controllers/aci-accesses-parser/m-p/4518629#M2464</link>
      <description>&lt;P&gt;Depending on the code it can be more or less optimal. But keeping in mind of so many different exceptions, I do not see a straight forward way to do it, other then checking each first for intersection of contracts, then look for exceptions.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Cheers,&lt;/P&gt;
&lt;P&gt;Sergiu&lt;/P&gt;</description>
      <pubDate>Tue, 14 Dec 2021 14:15:37 GMT</pubDate>
      <guid>https://community.cisco.com/t5/controllers/aci-accesses-parser/m-p/4518629#M2464</guid>
      <dc:creator>Sergiu.Daniluk</dc:creator>
      <dc:date>2021-12-14T14:15:37Z</dc:date>
    </item>
    <item>
      <title>Re: ACI accesses parser</title>
      <link>https://community.cisco.com/t5/controllers/aci-accesses-parser/m-p/4518652#M2465</link>
      <description>&lt;P&gt;I just thought about "secret" url in object browser for optimal API request;)&lt;/P&gt;&lt;P&gt;So, I will optimise my code then. Thank you!&lt;/P&gt;</description>
      <pubDate>Tue, 14 Dec 2021 14:45:27 GMT</pubDate>
      <guid>https://community.cisco.com/t5/controllers/aci-accesses-parser/m-p/4518652#M2465</guid>
      <dc:creator>ksarek</dc:creator>
      <dc:date>2021-12-14T14:45:27Z</dc:date>
    </item>
    <item>
      <title>Re: ACI accesses parser</title>
      <link>https://community.cisco.com/t5/controllers/aci-accesses-parser/m-p/4518725#M2466</link>
      <description>&lt;P&gt;Nah, that would be too easy, right? ^_^&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Cheers,&lt;/P&gt;
&lt;P&gt;Sergiu&lt;/P&gt;</description>
      <pubDate>Tue, 14 Dec 2021 16:13:00 GMT</pubDate>
      <guid>https://community.cisco.com/t5/controllers/aci-accesses-parser/m-p/4518725#M2466</guid>
      <dc:creator>Sergiu.Daniluk</dc:creator>
      <dc:date>2021-12-14T16:13:00Z</dc:date>
    </item>
  </channel>
</rss>

