├── .gitignore ├── LICENSE ├── README.md ├── demo-install.sh ├── demos ├── demo_cleanup.yml ├── kubernetes │ ├── aviconfigs │ │ ├── avi-dns.yml │ │ ├── cloud-modify.yml │ │ ├── ipam_dns-create.yml │ │ ├── networks-create.yml │ │ └── se_enable.yml │ ├── client │ │ ├── dockerfile │ │ ├── img │ │ │ ├── logo.svg │ │ │ └── polygon.png │ │ ├── k8s_auto.html │ │ ├── kubeclient-create.yml │ │ ├── kubeclient-delete.yml │ │ └── traffic-kube.py │ ├── clusterbinding.json │ ├── clusterrole.json │ ├── controller_config-prep.yml │ ├── controller_deploy_kubernetes.yml │ ├── controller_post_check.yml │ ├── controller_service_check.yml │ ├── dashboard.yml │ ├── demo_kubernetes.yml │ ├── kubernetes-create.yml │ ├── kubernetes-delete.yml │ ├── manifests │ │ ├── deploy-manifest.yml │ │ └── gallery-app.yml │ ├── template_setup.json │ └── vm_prep │ │ └── prep-kube.yml ├── metrics │ ├── avimetrics │ │ ├── README.md │ │ ├── avi_controllers.json │ │ ├── avimetrics-create.yml │ │ ├── avimetrics-delete.yml │ │ ├── dockerfile │ │ └── influxdb.json │ ├── grafana │ │ ├── 01-summary.json │ │ ├── 02-serviceEnginesTotal.json │ │ ├── 03-serviceEnginesSpecific.json │ │ ├── 04-virtualServicesTotal.json │ │ ├── 05-virtualServicesSpecific.json │ │ ├── Avi-dashboards.json │ │ ├── dashboard.yml │ │ ├── datasource.yml │ │ ├── dockerfile │ │ ├── grafana-create.yml │ │ ├── grafana-delete.yml │ │ ├── server.crt │ │ └── server.key │ ├── influxdb │ │ ├── influxdb-create.yml │ │ └── influxdb-delete.yml │ ├── metrics_delete.yml │ ├── metrics_hosts │ └── metrics_install.yml ├── nocloud │ ├── applications │ │ ├── applications.yml │ │ ├── demo_avi │ │ │ ├── app.yml │ │ │ └── config.yml │ │ ├── scaleout │ │ │ ├── app.yml │ │ │ └── config.yml │ │ └── waf │ │ │ ├── app.yml │ │ │ └── config.yml │ ├── avicontroller │ │ ├── controller_change_ver.yml │ │ ├── controller_delete.yml │ │ ├── controller_deploy.yml │ │ ├── controller_post_check.yml │ │ ├── controller_service_check.yml │ │ └── setup.json │ ├── client │ │ ├── demo-waf │ │ │ ├── democlient-create.yml │ │ │ ├── democlient-delete.yml │ │ │ ├── dockerfile │ │ │ ├── interfaces │ │ │ ├── netem │ │ │ ├── startup.py │ │ │ ├── vs_demo │ │ │ │ ├── brokenlink_vs.py │ │ │ │ └── ssl_traffic.py │ │ │ └── waf │ │ │ │ └── waf_traffic.py │ │ └── scaleout │ │ │ ├── dockerfile │ │ │ ├── scaleout │ │ │ ├── traffic-ecc.py │ │ │ └── traffic-rsa.py │ │ │ ├── scaleoutclient-create.yml │ │ │ ├── scaleoutclient-delete.yml │ │ │ └── startup.py │ ├── demo_nocloud.yml │ ├── nocloud_change_ver.yml │ ├── se_group │ │ └── se_group.yml │ ├── servers │ │ ├── demo-scaleout │ │ │ ├── demoscaleoutserver-create.yml │ │ │ ├── demoscaleoutserver-delete.yml │ │ │ ├── dockerfile │ │ │ └── html │ │ │ │ ├── 100k.dat │ │ │ │ ├── assets │ │ │ │ ├── avi.mp4 │ │ │ │ └── avi.webm │ │ │ │ ├── avinetworks │ │ │ │ ├── index.html │ │ │ │ ├── secure │ │ │ │ │ └── accounts │ │ │ │ │ │ ├── login │ │ │ │ │ │ └── index.html │ │ │ │ │ │ └── register │ │ │ │ │ │ └── index.html │ │ │ │ └── static │ │ │ │ │ └── avi │ │ │ │ │ ├── css │ │ │ │ │ └── style.css │ │ │ │ │ ├── img │ │ │ │ │ ├── arrow.png │ │ │ │ │ ├── arrow_more.png │ │ │ │ │ ├── bg.png │ │ │ │ │ ├── bg_mobi.png │ │ │ │ │ ├── favicon.ico │ │ │ │ │ ├── icon_bio_twitter.png │ │ │ │ │ ├── icon_culture.png │ │ │ │ │ ├── icon_email.png │ │ │ │ │ ├── icon_jobs.png │ │ │ │ │ ├── icon_linkedin.png │ │ │ │ │ ├── icon_menu.png │ │ │ │ │ ├── icon_perks.png │ │ │ │ │ ├── icon_phone.png │ │ │ │ │ ├── icon_pin.png │ │ │ │ │ ├── icon_team.png │ │ │ │ │ ├── icon_twitter.png │ │ │ │ │ ├── logo.png │ │ │ │ │ ├── logo_bottom.png │ │ │ │ │ ├── logo_greylock.png │ │ │ │ │ ├── logo_lightspeed.png │ │ │ │ │ ├── pic_asheem.png │ │ │ │ │ ├── pic_barry.png │ │ │ │ │ ├── pic_guru.png │ │ │ │ │ ├── pic_murali.png │ │ │ │ │ ├── pic_ranga.png │ │ │ │ │ ├── pic_umesh.png │ │ │ │ │ └── rocket.png │ │ │ │ │ └── js │ │ │ │ │ ├── libs │ │ │ │ │ ├── jquery.form.js │ │ │ │ │ ├── jquery.js │ │ │ │ │ ├── jquery.pagescroller.lite.js │ │ │ │ │ └── jquery.validate.js │ │ │ │ │ └── scripts.js │ │ │ │ ├── imgs │ │ │ │ ├── 443964.js │ │ │ │ ├── any-cloud.svg │ │ │ │ ├── app-insights.svg │ │ │ │ ├── build.js │ │ │ │ ├── control-icon.svg │ │ │ │ ├── conversion.js │ │ │ │ ├── favicon_v2.ico │ │ │ │ ├── foot-logo.png │ │ │ │ ├── ga.js │ │ │ │ ├── header.png │ │ │ │ ├── icon_search.png │ │ │ │ ├── jfx7aaf.js │ │ │ │ ├── l │ │ │ │ ├── localization.en.0.3632191afe35222a6b78c04d457adc0d_bd239e886f1485cd3078d7b9d4f583da.js │ │ │ │ ├── logo.png │ │ │ │ ├── lower-tco.svg │ │ │ │ ├── microservices.svg │ │ │ │ ├── open_chat.html │ │ │ │ ├── openstack.svg │ │ │ │ ├── ping │ │ │ │ ├── s2.png │ │ │ │ ├── s3.png │ │ │ │ ├── s4.png │ │ │ │ ├── saved_resource.html │ │ │ │ ├── scalability.svg │ │ │ │ ├── script_data.js │ │ │ │ ├── sdn.svg │ │ │ │ ├── service-icon.svg │ │ │ │ ├── sf14g.js │ │ │ │ ├── tl813.js │ │ │ │ ├── tracking.js │ │ │ │ ├── webinar.png │ │ │ │ └── whitepaper.png │ │ │ │ ├── index.htm │ │ │ │ └── index_old.html │ │ ├── rdp │ │ │ ├── admin │ │ │ │ ├── .config │ │ │ │ │ └── xfce4 │ │ │ │ │ │ └── xfconf │ │ │ │ │ │ └── xfce-perchannel-xml │ │ │ │ │ │ ├── xfce4-desktop.xml │ │ │ │ │ │ ├── xfwm4.xml │ │ │ │ │ │ └── xsettings.xml │ │ │ │ ├── .gtkrc-2.0 │ │ │ │ └── Desktop │ │ │ │ │ ├── bookmarks.html │ │ │ │ │ ├── firefox.desktop │ │ │ │ │ └── wireshark.desktop │ │ │ ├── docker-entrypoint.sh │ │ │ ├── dockerfile │ │ │ ├── etc │ │ │ │ ├── supervisord.conf │ │ │ │ └── xrdp │ │ │ │ │ ├── sesman.ini │ │ │ │ │ └── xrdp.ini │ │ │ ├── rdpserver-create.yml │ │ │ └── rdpserver-delete.yml │ │ └── waf │ │ │ ├── dockerfile │ │ │ ├── dvwa.sql │ │ │ ├── dvwa │ │ │ ├── .htaccess │ │ │ ├── CHANGELOG.md │ │ │ ├── COPYING.txt │ │ │ ├── README.md │ │ │ ├── about.php │ │ │ ├── config │ │ │ │ └── config.inc.php │ │ │ ├── docs │ │ │ │ ├── DVWA_v1.3.pdf │ │ │ │ └── pdf.html │ │ │ ├── dvwa │ │ │ │ ├── css │ │ │ │ │ ├── help.css │ │ │ │ │ ├── login.css │ │ │ │ │ ├── main.css │ │ │ │ │ └── source.css │ │ │ │ ├── images │ │ │ │ │ ├── RandomStorm.png │ │ │ │ │ ├── dollar.png │ │ │ │ │ ├── lock.png │ │ │ │ │ ├── login_logo.png │ │ │ │ │ ├── logo.png │ │ │ │ │ ├── spanner.png │ │ │ │ │ └── warning.png │ │ │ │ ├── includes │ │ │ │ │ ├── DBMS │ │ │ │ │ │ ├── MySQL.php │ │ │ │ │ │ └── PGSQL.php │ │ │ │ │ ├── dvwaPage.inc.php │ │ │ │ │ └── dvwaPhpIds.inc.php │ │ │ │ └── js │ │ │ │ │ └── dvwaPage.js │ │ │ ├── external │ │ │ │ ├── phpids │ │ │ │ │ └── 0.6 │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── build.xml │ │ │ │ │ │ ├── docs │ │ │ │ │ │ ├── examples │ │ │ │ │ │ │ ├── cakephp │ │ │ │ │ │ │ │ ├── README │ │ │ │ │ │ │ │ ├── ids.php │ │ │ │ │ │ │ │ └── intrusion.php │ │ │ │ │ │ │ └── example.php │ │ │ │ │ │ └── phpdocumentor │ │ │ │ │ │ │ ├── PHPIDS │ │ │ │ │ │ │ ├── IDS_Caching.html │ │ │ │ │ │ │ ├── IDS_Caching_Database.html │ │ │ │ │ │ │ ├── IDS_Caching_File.html │ │ │ │ │ │ │ ├── IDS_Caching_Interface.html │ │ │ │ │ │ │ ├── IDS_Caching_Memcached.html │ │ │ │ │ │ │ ├── IDS_Caching_Session.html │ │ │ │ │ │ │ ├── IDS_Converter.html │ │ │ │ │ │ │ ├── IDS_Event.html │ │ │ │ │ │ │ ├── IDS_Filter.html │ │ │ │ │ │ │ ├── IDS_Filter_Storage.html │ │ │ │ │ │ │ ├── IDS_Filter_Storage_Abstract.html │ │ │ │ │ │ │ ├── IDS_Init.html │ │ │ │ │ │ │ ├── IDS_Log_Composite.html │ │ │ │ │ │ │ ├── IDS_Log_Database.html │ │ │ │ │ │ │ ├── IDS_Log_Email.html │ │ │ │ │ │ │ ├── IDS_Log_File.html │ │ │ │ │ │ │ ├── IDS_Log_Interface.html │ │ │ │ │ │ │ ├── IDS_Monitor.html │ │ │ │ │ │ │ ├── IDS_Report.html │ │ │ │ │ │ │ ├── _Caching---Database.php.html │ │ │ │ │ │ │ ├── _Caching---Factory.php.html │ │ │ │ │ │ │ ├── _Caching---File.php.html │ │ │ │ │ │ │ ├── _Caching---Interface.php.html │ │ │ │ │ │ │ ├── _Caching---Memcached.php.html │ │ │ │ │ │ │ ├── _Caching---Session.php.html │ │ │ │ │ │ │ ├── _Converter.php.html │ │ │ │ │ │ │ ├── _Event.php.html │ │ │ │ │ │ │ ├── _Filter---Filter.php.html │ │ │ │ │ │ │ ├── _Filter---Storage---Abstract.php.html │ │ │ │ │ │ │ ├── _Filter---Storage.php.html │ │ │ │ │ │ │ ├── _Filter.php.html │ │ │ │ │ │ │ ├── _Init.php.html │ │ │ │ │ │ │ ├── _Log---Composite.php.html │ │ │ │ │ │ │ ├── _Log---Database.php.html │ │ │ │ │ │ │ ├── _Log---Email.php.html │ │ │ │ │ │ │ ├── _Log---File.php.html │ │ │ │ │ │ │ ├── _Log---Interface.php.html │ │ │ │ │ │ │ ├── _Monitor.php.html │ │ │ │ │ │ │ └── _Report.php.html │ │ │ │ │ │ │ ├── blank.html │ │ │ │ │ │ │ ├── classtrees_PHPIDS.html │ │ │ │ │ │ │ ├── elementindex.html │ │ │ │ │ │ │ ├── elementindex_PHPIDS.html │ │ │ │ │ │ │ ├── errors.html │ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ │ ├── li_PHPIDS.html │ │ │ │ │ │ │ ├── media │ │ │ │ │ │ │ ├── banner.css │ │ │ │ │ │ │ └── stylesheet.css │ │ │ │ │ │ │ └── packages.html │ │ │ │ │ │ ├── lib │ │ │ │ │ │ └── IDS │ │ │ │ │ │ │ ├── Caching │ │ │ │ │ │ │ ├── Database.php │ │ │ │ │ │ │ ├── Factory.php │ │ │ │ │ │ │ ├── File.php │ │ │ │ │ │ │ ├── Interface.php │ │ │ │ │ │ │ ├── Memcached.php │ │ │ │ │ │ │ └── Session.php │ │ │ │ │ │ │ ├── Config │ │ │ │ │ │ │ └── Config.ini │ │ │ │ │ │ │ ├── Converter.php │ │ │ │ │ │ │ ├── Event.php │ │ │ │ │ │ │ ├── Filter.php │ │ │ │ │ │ │ ├── Filter │ │ │ │ │ │ │ └── Storage.php │ │ │ │ │ │ │ ├── Init.php │ │ │ │ │ │ │ ├── Log │ │ │ │ │ │ │ ├── Composite.php │ │ │ │ │ │ │ ├── Database.php │ │ │ │ │ │ │ ├── Email.php │ │ │ │ │ │ │ ├── File.php │ │ │ │ │ │ │ └── Interface.php │ │ │ │ │ │ │ ├── Monitor.php │ │ │ │ │ │ │ ├── Report.php │ │ │ │ │ │ │ ├── default_filter.json │ │ │ │ │ │ │ ├── default_filter.xml │ │ │ │ │ │ │ ├── tmp │ │ │ │ │ │ │ └── phpids_log.txt │ │ │ │ │ │ │ └── vendors │ │ │ │ │ │ │ └── htmlpurifier │ │ │ │ │ │ │ ├── HTMLPurifier.auto.php │ │ │ │ │ │ │ ├── HTMLPurifier.autoload.php │ │ │ │ │ │ │ ├── HTMLPurifier.func.php │ │ │ │ │ │ │ ├── HTMLPurifier.includes.php │ │ │ │ │ │ │ ├── HTMLPurifier.kses.php │ │ │ │ │ │ │ ├── HTMLPurifier.path.php │ │ │ │ │ │ │ ├── HTMLPurifier.php │ │ │ │ │ │ │ ├── HTMLPurifier.safe-includes.php │ │ │ │ │ │ │ └── HTMLPurifier │ │ │ │ │ │ │ ├── AttrCollections.php │ │ │ │ │ │ │ ├── AttrDef.php │ │ │ │ │ │ │ ├── AttrDef │ │ │ │ │ │ │ ├── CSS.php │ │ │ │ │ │ │ ├── CSS │ │ │ │ │ │ │ │ ├── AlphaValue.php │ │ │ │ │ │ │ │ ├── Background.php │ │ │ │ │ │ │ │ ├── BackgroundPosition.php │ │ │ │ │ │ │ │ ├── Border.php │ │ │ │ │ │ │ │ ├── Color.php │ │ │ │ │ │ │ │ ├── Composite.php │ │ │ │ │ │ │ │ ├── DenyElementDecorator.php │ │ │ │ │ │ │ │ ├── Filter.php │ │ │ │ │ │ │ │ ├── Font.php │ │ │ │ │ │ │ │ ├── FontFamily.php │ │ │ │ │ │ │ │ ├── ImportantDecorator.php │ │ │ │ │ │ │ │ ├── Length.php │ │ │ │ │ │ │ │ ├── ListStyle.php │ │ │ │ │ │ │ │ ├── Multiple.php │ │ │ │ │ │ │ │ ├── Number.php │ │ │ │ │ │ │ │ ├── Percentage.php │ │ │ │ │ │ │ │ ├── TextDecoration.php │ │ │ │ │ │ │ │ └── URI.php │ │ │ │ │ │ │ ├── Enum.php │ │ │ │ │ │ │ ├── HTML │ │ │ │ │ │ │ │ ├── Bool.php │ │ │ │ │ │ │ │ ├── Color.php │ │ │ │ │ │ │ │ ├── FrameTarget.php │ │ │ │ │ │ │ │ ├── ID.php │ │ │ │ │ │ │ │ ├── Length.php │ │ │ │ │ │ │ │ ├── LinkTypes.php │ │ │ │ │ │ │ │ ├── MultiLength.php │ │ │ │ │ │ │ │ ├── Nmtokens.php │ │ │ │ │ │ │ │ └── Pixels.php │ │ │ │ │ │ │ ├── Integer.php │ │ │ │ │ │ │ ├── Lang.php │ │ │ │ │ │ │ ├── Switch.php │ │ │ │ │ │ │ ├── Text.php │ │ │ │ │ │ │ ├── URI.php │ │ │ │ │ │ │ └── URI │ │ │ │ │ │ │ │ ├── Email.php │ │ │ │ │ │ │ │ ├── Email │ │ │ │ │ │ │ │ └── SimpleCheck.php │ │ │ │ │ │ │ │ ├── Host.php │ │ │ │ │ │ │ │ ├── IPv4.php │ │ │ │ │ │ │ │ └── IPv6.php │ │ │ │ │ │ │ ├── AttrTransform.php │ │ │ │ │ │ │ ├── AttrTransform │ │ │ │ │ │ │ ├── Background.php │ │ │ │ │ │ │ ├── BdoDir.php │ │ │ │ │ │ │ ├── BgColor.php │ │ │ │ │ │ │ ├── BoolToCSS.php │ │ │ │ │ │ │ ├── Border.php │ │ │ │ │ │ │ ├── EnumToCSS.php │ │ │ │ │ │ │ ├── ImgRequired.php │ │ │ │ │ │ │ ├── ImgSpace.php │ │ │ │ │ │ │ ├── Input.php │ │ │ │ │ │ │ ├── Lang.php │ │ │ │ │ │ │ ├── Length.php │ │ │ │ │ │ │ ├── Name.php │ │ │ │ │ │ │ ├── SafeEmbed.php │ │ │ │ │ │ │ ├── SafeObject.php │ │ │ │ │ │ │ ├── SafeParam.php │ │ │ │ │ │ │ ├── ScriptRequired.php │ │ │ │ │ │ │ └── Textarea.php │ │ │ │ │ │ │ ├── AttrTypes.php │ │ │ │ │ │ │ ├── AttrValidator.php │ │ │ │ │ │ │ ├── Bootstrap.php │ │ │ │ │ │ │ ├── CSSDefinition.php │ │ │ │ │ │ │ ├── ChildDef.php │ │ │ │ │ │ │ ├── ChildDef │ │ │ │ │ │ │ ├── Chameleon.php │ │ │ │ │ │ │ ├── Custom.php │ │ │ │ │ │ │ ├── Empty.php │ │ │ │ │ │ │ ├── Optional.php │ │ │ │ │ │ │ ├── Required.php │ │ │ │ │ │ │ ├── StrictBlockquote.php │ │ │ │ │ │ │ └── Table.php │ │ │ │ │ │ │ ├── Config.php │ │ │ │ │ │ │ ├── ConfigDef.php │ │ │ │ │ │ │ ├── ConfigDef │ │ │ │ │ │ │ ├── Directive.php │ │ │ │ │ │ │ ├── DirectiveAlias.php │ │ │ │ │ │ │ └── Namespace.php │ │ │ │ │ │ │ ├── ConfigSchema.php │ │ │ │ │ │ │ ├── ConfigSchema │ │ │ │ │ │ │ ├── Builder │ │ │ │ │ │ │ │ ├── ConfigSchema.php │ │ │ │ │ │ │ │ └── Xml.php │ │ │ │ │ │ │ ├── Exception.php │ │ │ │ │ │ │ ├── Interchange.php │ │ │ │ │ │ │ ├── Interchange │ │ │ │ │ │ │ │ ├── Directive.php │ │ │ │ │ │ │ │ ├── Id.php │ │ │ │ │ │ │ │ └── Namespace.php │ │ │ │ │ │ │ ├── InterchangeBuilder.php │ │ │ │ │ │ │ ├── Validator.php │ │ │ │ │ │ │ ├── ValidatorAtom.php │ │ │ │ │ │ │ ├── schema.ser │ │ │ │ │ │ │ └── schema │ │ │ │ │ │ │ │ ├── Attr.AllowedFrameTargets.txt │ │ │ │ │ │ │ │ ├── Attr.AllowedRel.txt │ │ │ │ │ │ │ │ ├── Attr.AllowedRev.txt │ │ │ │ │ │ │ │ ├── Attr.DefaultImageAlt.txt │ │ │ │ │ │ │ │ ├── Attr.DefaultInvalidImage.txt │ │ │ │ │ │ │ │ ├── Attr.DefaultInvalidImageAlt.txt │ │ │ │ │ │ │ │ ├── Attr.DefaultTextDir.txt │ │ │ │ │ │ │ │ ├── Attr.EnableID.txt │ │ │ │ │ │ │ │ ├── Attr.IDBlacklist.txt │ │ │ │ │ │ │ │ ├── Attr.IDBlacklistRegexp.txt │ │ │ │ │ │ │ │ ├── Attr.IDPrefix.txt │ │ │ │ │ │ │ │ ├── Attr.IDPrefixLocal.txt │ │ │ │ │ │ │ │ ├── Attr.txt │ │ │ │ │ │ │ │ ├── AutoFormat.AutoParagraph.txt │ │ │ │ │ │ │ │ ├── AutoFormat.Custom.txt │ │ │ │ │ │ │ │ ├── AutoFormat.DisplayLinkURI.txt │ │ │ │ │ │ │ │ ├── AutoFormat.Linkify.txt │ │ │ │ │ │ │ │ ├── AutoFormat.PurifierLinkify.txt │ │ │ │ │ │ │ │ ├── AutoFormat.RemoveEmpty.txt │ │ │ │ │ │ │ │ ├── AutoFormat.txt │ │ │ │ │ │ │ │ ├── AutoFormatParam.PurifierLinkifyDocURL.txt │ │ │ │ │ │ │ │ ├── AutoFormatParam.txt │ │ │ │ │ │ │ │ ├── CSS.AllowImportant.txt │ │ │ │ │ │ │ │ ├── CSS.AllowTricky.txt │ │ │ │ │ │ │ │ ├── CSS.AllowedProperties.txt │ │ │ │ │ │ │ │ ├── CSS.DefinitionRev.txt │ │ │ │ │ │ │ │ ├── CSS.MaxImgLength.txt │ │ │ │ │ │ │ │ ├── CSS.Proprietary.txt │ │ │ │ │ │ │ │ ├── CSS.txt │ │ │ │ │ │ │ │ ├── Cache.DefinitionImpl.txt │ │ │ │ │ │ │ │ ├── Cache.SerializerPath.txt │ │ │ │ │ │ │ │ ├── Cache.txt │ │ │ │ │ │ │ │ ├── Core.AggressivelyFixLt.txt │ │ │ │ │ │ │ │ ├── Core.CollectErrors.txt │ │ │ │ │ │ │ │ ├── Core.ColorKeywords.txt │ │ │ │ │ │ │ │ ├── Core.ConvertDocumentToFragment.txt │ │ │ │ │ │ │ │ ├── Core.DirectLexLineNumberSyncInterval.txt │ │ │ │ │ │ │ │ ├── Core.Encoding.txt │ │ │ │ │ │ │ │ ├── Core.EscapeInvalidChildren.txt │ │ │ │ │ │ │ │ ├── Core.EscapeInvalidTags.txt │ │ │ │ │ │ │ │ ├── Core.EscapeNonASCIICharacters.txt │ │ │ │ │ │ │ │ ├── Core.HiddenElements.txt │ │ │ │ │ │ │ │ ├── Core.Language.txt │ │ │ │ │ │ │ │ ├── Core.LexerImpl.txt │ │ │ │ │ │ │ │ ├── Core.MaintainLineNumbers.txt │ │ │ │ │ │ │ │ ├── Core.RemoveInvalidImg.txt │ │ │ │ │ │ │ │ ├── Core.RemoveScriptContents.txt │ │ │ │ │ │ │ │ ├── Core.txt │ │ │ │ │ │ │ │ ├── Filter.Custom.txt │ │ │ │ │ │ │ │ ├── Filter.ExtractStyleBlocks.txt │ │ │ │ │ │ │ │ ├── Filter.YouTube.txt │ │ │ │ │ │ │ │ ├── Filter.txt │ │ │ │ │ │ │ │ ├── FilterParam.ExtractStyleBlocksEscaping.txt │ │ │ │ │ │ │ │ ├── FilterParam.ExtractStyleBlocksScope.txt │ │ │ │ │ │ │ │ ├── FilterParam.ExtractStyleBlocksTidyImpl.txt │ │ │ │ │ │ │ │ ├── FilterParam.txt │ │ │ │ │ │ │ │ ├── HTML.Allowed.txt │ │ │ │ │ │ │ │ ├── HTML.AllowedAttributes.txt │ │ │ │ │ │ │ │ ├── HTML.AllowedElements.txt │ │ │ │ │ │ │ │ ├── HTML.AllowedModules.txt │ │ │ │ │ │ │ │ ├── HTML.BlockWrapper.txt │ │ │ │ │ │ │ │ ├── HTML.CoreModules.txt │ │ │ │ │ │ │ │ ├── HTML.CustomDoctype.txt │ │ │ │ │ │ │ │ ├── HTML.DefinitionID.txt │ │ │ │ │ │ │ │ ├── HTML.DefinitionRev.txt │ │ │ │ │ │ │ │ ├── HTML.Doctype.txt │ │ │ │ │ │ │ │ ├── HTML.ForbiddenAttributes.txt │ │ │ │ │ │ │ │ ├── HTML.ForbiddenElements.txt │ │ │ │ │ │ │ │ ├── HTML.MaxImgLength.txt │ │ │ │ │ │ │ │ ├── HTML.Parent.txt │ │ │ │ │ │ │ │ ├── HTML.Proprietary.txt │ │ │ │ │ │ │ │ ├── HTML.SafeEmbed.txt │ │ │ │ │ │ │ │ ├── HTML.SafeObject.txt │ │ │ │ │ │ │ │ ├── HTML.Strict.txt │ │ │ │ │ │ │ │ ├── HTML.TidyAdd.txt │ │ │ │ │ │ │ │ ├── HTML.TidyLevel.txt │ │ │ │ │ │ │ │ ├── HTML.TidyRemove.txt │ │ │ │ │ │ │ │ ├── HTML.Trusted.txt │ │ │ │ │ │ │ │ ├── HTML.XHTML.txt │ │ │ │ │ │ │ │ ├── HTML.txt │ │ │ │ │ │ │ │ ├── Output.CommentScriptContents.txt │ │ │ │ │ │ │ │ ├── Output.Newline.txt │ │ │ │ │ │ │ │ ├── Output.SortAttr.txt │ │ │ │ │ │ │ │ ├── Output.TidyFormat.txt │ │ │ │ │ │ │ │ ├── Output.txt │ │ │ │ │ │ │ │ ├── Test.ForceNoIconv.txt │ │ │ │ │ │ │ │ ├── Test.txt │ │ │ │ │ │ │ │ ├── URI.AllowedSchemes.txt │ │ │ │ │ │ │ │ ├── URI.Base.txt │ │ │ │ │ │ │ │ ├── URI.DefaultScheme.txt │ │ │ │ │ │ │ │ ├── URI.DefinitionID.txt │ │ │ │ │ │ │ │ ├── URI.DefinitionRev.txt │ │ │ │ │ │ │ │ ├── URI.Disable.txt │ │ │ │ │ │ │ │ ├── URI.DisableExternal.txt │ │ │ │ │ │ │ │ ├── URI.DisableExternalResources.txt │ │ │ │ │ │ │ │ ├── URI.DisableResources.txt │ │ │ │ │ │ │ │ ├── URI.Host.txt │ │ │ │ │ │ │ │ ├── URI.HostBlacklist.txt │ │ │ │ │ │ │ │ ├── URI.MakeAbsolute.txt │ │ │ │ │ │ │ │ ├── URI.Munge.txt │ │ │ │ │ │ │ │ ├── URI.MungeResources.txt │ │ │ │ │ │ │ │ ├── URI.MungeSecretKey.txt │ │ │ │ │ │ │ │ ├── URI.OverrideAllowedSchemes.txt │ │ │ │ │ │ │ │ ├── URI.txt │ │ │ │ │ │ │ │ └── info.ini │ │ │ │ │ │ │ ├── ContentSets.php │ │ │ │ │ │ │ ├── Context.php │ │ │ │ │ │ │ ├── Definition.php │ │ │ │ │ │ │ ├── DefinitionCache.php │ │ │ │ │ │ │ ├── DefinitionCache │ │ │ │ │ │ │ ├── Decorator.php │ │ │ │ │ │ │ ├── Decorator │ │ │ │ │ │ │ │ ├── Cleanup.php │ │ │ │ │ │ │ │ ├── Memory.php │ │ │ │ │ │ │ │ └── Template.php.in │ │ │ │ │ │ │ ├── Null.php │ │ │ │ │ │ │ ├── Serializer.php │ │ │ │ │ │ │ └── Serializer │ │ │ │ │ │ │ │ └── README │ │ │ │ │ │ │ ├── DefinitionCacheFactory.php │ │ │ │ │ │ │ ├── Doctype.php │ │ │ │ │ │ │ ├── DoctypeRegistry.php │ │ │ │ │ │ │ ├── ElementDef.php │ │ │ │ │ │ │ ├── Encoder.php │ │ │ │ │ │ │ ├── EntityLookup.php │ │ │ │ │ │ │ ├── EntityLookup │ │ │ │ │ │ │ └── entities.ser │ │ │ │ │ │ │ ├── EntityParser.php │ │ │ │ │ │ │ ├── ErrorCollector.php │ │ │ │ │ │ │ ├── ErrorStruct.php │ │ │ │ │ │ │ ├── Exception.php │ │ │ │ │ │ │ ├── Filter.php │ │ │ │ │ │ │ ├── Filter │ │ │ │ │ │ │ ├── ExtractStyleBlocks.php │ │ │ │ │ │ │ └── YouTube.php │ │ │ │ │ │ │ ├── Generator.php │ │ │ │ │ │ │ ├── HTMLDefinition.php │ │ │ │ │ │ │ ├── HTMLModule.php │ │ │ │ │ │ │ ├── HTMLModule │ │ │ │ │ │ │ ├── Bdo.php │ │ │ │ │ │ │ ├── CommonAttributes.php │ │ │ │ │ │ │ ├── Edit.php │ │ │ │ │ │ │ ├── Forms.php │ │ │ │ │ │ │ ├── Hypertext.php │ │ │ │ │ │ │ ├── Image.php │ │ │ │ │ │ │ ├── Legacy.php │ │ │ │ │ │ │ ├── List.php │ │ │ │ │ │ │ ├── Name.php │ │ │ │ │ │ │ ├── NonXMLCommonAttributes.php │ │ │ │ │ │ │ ├── Object.php │ │ │ │ │ │ │ ├── Presentation.php │ │ │ │ │ │ │ ├── Proprietary.php │ │ │ │ │ │ │ ├── Ruby.php │ │ │ │ │ │ │ ├── SafeEmbed.php │ │ │ │ │ │ │ ├── SafeObject.php │ │ │ │ │ │ │ ├── Scripting.php │ │ │ │ │ │ │ ├── StyleAttribute.php │ │ │ │ │ │ │ ├── Tables.php │ │ │ │ │ │ │ ├── Target.php │ │ │ │ │ │ │ ├── Text.php │ │ │ │ │ │ │ ├── Tidy.php │ │ │ │ │ │ │ ├── Tidy │ │ │ │ │ │ │ │ ├── Name.php │ │ │ │ │ │ │ │ ├── Proprietary.php │ │ │ │ │ │ │ │ ├── Strict.php │ │ │ │ │ │ │ │ ├── Transitional.php │ │ │ │ │ │ │ │ ├── XHTML.php │ │ │ │ │ │ │ │ └── XHTMLAndHTML4.php │ │ │ │ │ │ │ └── XMLCommonAttributes.php │ │ │ │ │ │ │ ├── HTMLModuleManager.php │ │ │ │ │ │ │ ├── IDAccumulator.php │ │ │ │ │ │ │ ├── Injector.php │ │ │ │ │ │ │ ├── Injector │ │ │ │ │ │ │ ├── AutoParagraph.php │ │ │ │ │ │ │ ├── DisplayLinkURI.php │ │ │ │ │ │ │ ├── Linkify.php │ │ │ │ │ │ │ ├── PurifierLinkify.php │ │ │ │ │ │ │ ├── RemoveEmpty.php │ │ │ │ │ │ │ └── SafeObject.php │ │ │ │ │ │ │ ├── Language.php │ │ │ │ │ │ │ ├── Language │ │ │ │ │ │ │ ├── classes │ │ │ │ │ │ │ │ └── en-x-test.php │ │ │ │ │ │ │ └── messages │ │ │ │ │ │ │ │ ├── en-x-test.php │ │ │ │ │ │ │ │ ├── en-x-testmini.php │ │ │ │ │ │ │ │ └── en.php │ │ │ │ │ │ │ ├── LanguageFactory.php │ │ │ │ │ │ │ ├── Length.php │ │ │ │ │ │ │ ├── Lexer.php │ │ │ │ │ │ │ ├── Lexer │ │ │ │ │ │ │ ├── DOMLex.php │ │ │ │ │ │ │ ├── DirectLex.php │ │ │ │ │ │ │ ├── PEARSax3.php │ │ │ │ │ │ │ └── PH5P.php │ │ │ │ │ │ │ ├── PercentEncoder.php │ │ │ │ │ │ │ ├── Printer.php │ │ │ │ │ │ │ ├── Printer │ │ │ │ │ │ │ ├── CSSDefinition.php │ │ │ │ │ │ │ ├── ConfigForm.css │ │ │ │ │ │ │ ├── ConfigForm.js │ │ │ │ │ │ │ ├── ConfigForm.php │ │ │ │ │ │ │ └── HTMLDefinition.php │ │ │ │ │ │ │ ├── Strategy.php │ │ │ │ │ │ │ ├── Strategy │ │ │ │ │ │ │ ├── Composite.php │ │ │ │ │ │ │ ├── Core.php │ │ │ │ │ │ │ ├── FixNesting.php │ │ │ │ │ │ │ ├── MakeWellFormed.php │ │ │ │ │ │ │ ├── RemoveForeignElements.php │ │ │ │ │ │ │ └── ValidateAttributes.php │ │ │ │ │ │ │ ├── StringHash.php │ │ │ │ │ │ │ ├── StringHashParser.php │ │ │ │ │ │ │ ├── TagTransform.php │ │ │ │ │ │ │ ├── TagTransform │ │ │ │ │ │ │ ├── Font.php │ │ │ │ │ │ │ └── Simple.php │ │ │ │ │ │ │ ├── Token.php │ │ │ │ │ │ │ ├── Token │ │ │ │ │ │ │ ├── Comment.php │ │ │ │ │ │ │ ├── Empty.php │ │ │ │ │ │ │ ├── End.php │ │ │ │ │ │ │ ├── Start.php │ │ │ │ │ │ │ ├── Tag.php │ │ │ │ │ │ │ └── Text.php │ │ │ │ │ │ │ ├── TokenFactory.php │ │ │ │ │ │ │ ├── URI.php │ │ │ │ │ │ │ ├── URIDefinition.php │ │ │ │ │ │ │ ├── URIFilter.php │ │ │ │ │ │ │ ├── URIFilter │ │ │ │ │ │ │ ├── DisableExternal.php │ │ │ │ │ │ │ ├── DisableExternalResources.php │ │ │ │ │ │ │ ├── HostBlacklist.php │ │ │ │ │ │ │ ├── MakeAbsolute.php │ │ │ │ │ │ │ └── Munge.php │ │ │ │ │ │ │ ├── URIParser.php │ │ │ │ │ │ │ ├── URIScheme.php │ │ │ │ │ │ │ ├── URIScheme │ │ │ │ │ │ │ ├── ftp.php │ │ │ │ │ │ │ ├── http.php │ │ │ │ │ │ │ ├── https.php │ │ │ │ │ │ │ ├── mailto.php │ │ │ │ │ │ │ ├── news.php │ │ │ │ │ │ │ └── nntp.php │ │ │ │ │ │ │ ├── URISchemeRegistry.php │ │ │ │ │ │ │ ├── UnitConverter.php │ │ │ │ │ │ │ ├── VarParser.php │ │ │ │ │ │ │ ├── VarParser │ │ │ │ │ │ │ ├── Flexible.php │ │ │ │ │ │ │ └── Native.php │ │ │ │ │ │ │ └── VarParserException.php │ │ │ │ │ │ └── tests │ │ │ │ │ │ ├── IDS │ │ │ │ │ │ ├── CachingTest.php │ │ │ │ │ │ ├── EventTest.php │ │ │ │ │ │ ├── ExceptionTest.php │ │ │ │ │ │ ├── FilterTest.php │ │ │ │ │ │ ├── InitTest.php │ │ │ │ │ │ ├── MonitorTest.php │ │ │ │ │ │ └── ReportTest.php │ │ │ │ │ │ ├── allTests.php │ │ │ │ │ │ └── coverage │ │ │ │ │ │ ├── Caching.html │ │ │ │ │ │ ├── Caching_Factory.php.html │ │ │ │ │ │ ├── Caching_File.php.html │ │ │ │ │ │ ├── Caching_Interface.php.html │ │ │ │ │ │ ├── Caching_Session.php.html │ │ │ │ │ │ ├── Converter.php.html │ │ │ │ │ │ ├── Event.php.html │ │ │ │ │ │ ├── Filter.html │ │ │ │ │ │ ├── Filter.php.html │ │ │ │ │ │ ├── Filter_Storage.php.html │ │ │ │ │ │ ├── Init.php.html │ │ │ │ │ │ ├── Monitor.php.html │ │ │ │ │ │ ├── Report.php.html │ │ │ │ │ │ ├── butter.png │ │ │ │ │ │ ├── chameleon.png │ │ │ │ │ │ ├── close12_1.gif │ │ │ │ │ │ ├── container-min.js │ │ │ │ │ │ ├── container.css │ │ │ │ │ │ ├── glass.png │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── scarlet_red.png │ │ │ │ │ │ ├── snow.png │ │ │ │ │ │ ├── style.css │ │ │ │ │ │ └── yahoo-dom-event.js │ │ │ │ └── recaptcha │ │ │ │ │ └── recaptchalib.php │ │ │ ├── favicon.ico │ │ │ ├── hackable │ │ │ │ ├── flags │ │ │ │ │ └── fi.php │ │ │ │ ├── uploads │ │ │ │ │ └── dvwa_email.png │ │ │ │ └── users │ │ │ │ │ ├── 1337.jpg │ │ │ │ │ ├── admin.jpg │ │ │ │ │ ├── gordonb.jpg │ │ │ │ │ ├── pablo.jpg │ │ │ │ │ └── smithy.jpg │ │ │ ├── ids_log.php │ │ │ ├── index.php │ │ │ ├── instructions.php │ │ │ ├── login.php │ │ │ ├── logout.php │ │ │ ├── php.ini │ │ │ ├── phpinfo.php │ │ │ ├── robots.txt │ │ │ ├── security.php │ │ │ ├── setup.php │ │ │ └── vulnerabilities │ │ │ │ ├── brute │ │ │ │ ├── help │ │ │ │ │ └── help.php │ │ │ │ ├── index.php │ │ │ │ └── source │ │ │ │ │ ├── high.php │ │ │ │ │ ├── impossible.php │ │ │ │ │ ├── low.php │ │ │ │ │ └── medium.php │ │ │ │ ├── captcha │ │ │ │ ├── help │ │ │ │ │ └── help.php │ │ │ │ ├── index.php │ │ │ │ └── source │ │ │ │ │ ├── high.php │ │ │ │ │ ├── impossible.php │ │ │ │ │ ├── low.php │ │ │ │ │ └── medium.php │ │ │ │ ├── csrf │ │ │ │ ├── help │ │ │ │ │ └── help.php │ │ │ │ ├── index.php │ │ │ │ └── source │ │ │ │ │ ├── high.php │ │ │ │ │ ├── impossible.php │ │ │ │ │ ├── low.php │ │ │ │ │ └── medium.php │ │ │ │ ├── exec │ │ │ │ ├── help │ │ │ │ │ └── help.php │ │ │ │ ├── index.php │ │ │ │ └── source │ │ │ │ │ ├── high.php │ │ │ │ │ ├── impossible.php │ │ │ │ │ ├── low.php │ │ │ │ │ └── medium.php │ │ │ │ ├── fi │ │ │ │ ├── file1.php │ │ │ │ ├── file2.php │ │ │ │ ├── file3.php │ │ │ │ ├── file4.php │ │ │ │ ├── help │ │ │ │ │ └── help.php │ │ │ │ ├── include.php │ │ │ │ ├── index.php │ │ │ │ └── source │ │ │ │ │ ├── high.php │ │ │ │ │ ├── impossible.php │ │ │ │ │ ├── low.php │ │ │ │ │ └── medium.php │ │ │ │ ├── sqli │ │ │ │ ├── help │ │ │ │ │ └── help.php │ │ │ │ ├── index.php │ │ │ │ ├── session-input.php │ │ │ │ └── source │ │ │ │ │ ├── high.php │ │ │ │ │ ├── impossible.php │ │ │ │ │ ├── low.php │ │ │ │ │ └── medium.php │ │ │ │ ├── sqli_blind │ │ │ │ ├── cookie-input.php │ │ │ │ ├── help │ │ │ │ │ └── help.php │ │ │ │ ├── index.php │ │ │ │ └── source │ │ │ │ │ ├── high.php │ │ │ │ │ ├── impossible.php │ │ │ │ │ ├── low.php │ │ │ │ │ └── medium.php │ │ │ │ ├── upload │ │ │ │ ├── help │ │ │ │ │ └── help.php │ │ │ │ ├── index.php │ │ │ │ └── source │ │ │ │ │ ├── high.php │ │ │ │ │ ├── impossible.php │ │ │ │ │ ├── low.php │ │ │ │ │ └── medium.php │ │ │ │ ├── view_help.php │ │ │ │ ├── view_source.php │ │ │ │ ├── view_source_all.php │ │ │ │ ├── weak_id │ │ │ │ ├── help │ │ │ │ │ └── help.php │ │ │ │ ├── index.php │ │ │ │ └── source │ │ │ │ │ ├── high.php │ │ │ │ │ ├── impossible.php │ │ │ │ │ ├── low.php │ │ │ │ │ └── medium.php │ │ │ │ ├── xss_d │ │ │ │ ├── help │ │ │ │ │ └── help.php │ │ │ │ ├── index.php │ │ │ │ └── source │ │ │ │ │ ├── high.php │ │ │ │ │ ├── impossible.php │ │ │ │ │ ├── low.php │ │ │ │ │ └── medium.php │ │ │ │ ├── xss_r │ │ │ │ ├── help │ │ │ │ │ └── help.php │ │ │ │ ├── index.php │ │ │ │ └── source │ │ │ │ │ ├── high.php │ │ │ │ │ ├── impossible.php │ │ │ │ │ ├── low.php │ │ │ │ │ └── medium.php │ │ │ │ └── xss_s │ │ │ │ ├── help │ │ │ │ └── help.php │ │ │ │ ├── index.php │ │ │ │ └── source │ │ │ │ ├── high.php │ │ │ │ ├── impossible.php │ │ │ │ ├── low.php │ │ │ │ └── medium.php │ │ │ ├── dvwaserver-create.yml │ │ │ ├── dvwaserver-delete.yml │ │ │ └── main.sh │ ├── service_engines │ │ ├── avise1.service │ │ ├── avise2.service │ │ ├── service_engines.yml │ │ └── service_engines_delete.yml │ └── vm_prep │ │ └── prep.yml ├── openshift │ ├── aviconfigs │ │ ├── avi-dns.yml │ │ ├── cloud-modify.yml │ │ ├── ipam_dns-create.yml │ │ └── networks-create.yml │ ├── client │ │ ├── dockerfile │ │ ├── img │ │ │ ├── logo.svg │ │ │ └── polygon.png │ │ ├── k8s_auto.html │ │ ├── kubeclient-create.yml │ │ ├── kubeclient-delete.yml │ │ └── traffic-kube.py │ ├── clusterrole.json │ ├── clusterrolespod.json │ ├── controller_config-prep.yml │ ├── controller_deploy_openshift.yml │ ├── controller_post_check.yml │ ├── controller_service_check.yml │ ├── demo_openshift.yml │ ├── manifests │ │ ├── deploy-manifest.yml │ │ └── gallery-app.yml │ ├── openshift-create.yml │ ├── openshift-delete.yml │ ├── sa.json │ ├── template_setup.json │ └── vm_prep │ │ └── prep-openshift.yml └── openstack │ ├── controller_deploy_openstack.yml │ ├── local.conf │ └── openstack_create.yml ├── hosts ├── vars └── avi_details.yaml └── vm_prep ├── avinet-delete.yml └── avinet.yml /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .history/* 3 | -------------------------------------------------------------------------------- /demos/demo_cleanup.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - import_playbook: nocloud/client/demo-waf/democlient-delete.yml 3 | - import_playbook: nocloud/client/scaleout/scaleoutclient-delete.yml 4 | - import_playbook: nocloud/servers/demo-scaleout/demoscaleoutserver-delete.yml 5 | - import_playbook: nocloud/servers/rdp/rdpserver-delete.yml 6 | - import_playbook: nocloud/servers/waf/dvwaserver-delete.yml 7 | - import_playbook: kubernetes/kubernetes-delete.yml 8 | - import_playbook: kubernetes/client/kubeclient-delete.yml 9 | - import_playbook: openshift/openshift-delete.yml 10 | - import_playbook: nocloud/service_engines/service_engines_delete.yml 11 | - import_playbook: nocloud/avicontroller/controller_delete.yml 12 | - import_playbook: metrics/metrics_delete.yml 13 | - import_playbook: ../vm_prep/avinet-delete.yml 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /demos/kubernetes/aviconfigs/se_enable.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: controllers 3 | become: True 4 | vars_files: 5 | - ../../../vars/avi_details.yaml 6 | roles: 7 | - avinetworks.avisdk 8 | 9 | 10 | tasks: 11 | - avi_api_session: 12 | controller: "{{ controller_ip }}" 13 | username: "{{ username }}" 14 | password: "{{ password }}" 15 | tenant: "{{ tenant | default('admin',true) }}" 16 | http_method: get 17 | path: serviceengine 18 | register: se_results 19 | 20 | 21 | - name: Enable SE 22 | avi_serviceengine: 23 | avi_api_update_method: "patch" 24 | avi_api_patch_op: "replace" 25 | api_version: "{{ api_version }}" 26 | controller: "{{ controller_ip }}" 27 | username: "{{ username }}" 28 | password: "{{ password }}" 29 | tenant: "{{ tenant | default('admin') }}" 30 | uuid: "{{ se_results.obj.results.0.uuid }}" 31 | enable_state: "SE_STATE_ENABLED" 32 | when: se_results.obj.results.0.enable_state == "SE_STATE_DISABLED" 33 | -------------------------------------------------------------------------------- /demos/kubernetes/client/dockerfile: -------------------------------------------------------------------------------- 1 | ############################################################ 2 | # Dockerfile to build avi demo client 3 | # Based on ubuntu:latest 4 | ############################################################ 5 | 6 | # Set the base image to ubuntu:latest 7 | FROM ubuntu:16.04 8 | 9 | WORKDIR /opt/avi/client 10 | 11 | 12 | 13 | ################## BEGIN INSTALLATION ###################### 14 | 15 | # Install client script requirements 16 | RUN apt-get update 17 | RUN apt-get upgrade -y 18 | RUN apt-get install -y curl apache2-utils python-minimal python-requests dnsutils vim 19 | 20 | # Copy Traffic Generation Script and dependencies 21 | 22 | COPY "./traffic-kube.py" "/opt/avi/client/traffic-kube.py" 23 | 24 | RUN chmod a+x /opt/avi/client/traffic-kube.py 25 | 26 | # Execute script 27 | #----NEED TO CREATE A START SCRIPT 28 | CMD ["/usr/bin/python", "/opt/avi/client/traffic-kube.py"] 29 | -------------------------------------------------------------------------------- /demos/kubernetes/client/img/polygon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avinetworks/demo-in-a-box/cfdd7c735b01673cd0b9b9ffbf87c2052295549d/demos/kubernetes/client/img/polygon.png -------------------------------------------------------------------------------- /demos/kubernetes/client/kubeclient-create.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Build the Kube Client 3 | hosts: demo_clients 4 | become: True 5 | 6 | tasks: 7 | - name: build the kubeclient base image 8 | docker_image: 9 | path: . 10 | name: kubeclient 11 | tag: latest 12 | state: present 13 | 14 | - name: start kubeclient 15 | docker_container: 16 | name: kubeclient1 17 | hostname: kubeclient1 18 | networks: 19 | - name: avinet 20 | ipv4_address: "169.254.8.8" 21 | purge_networks: yes 22 | dns_servers: 23 | - "169.254.190.1" 24 | detach: yes 25 | log_driver: json-file 26 | log_options: 27 | max-size: 1m 28 | restart_policy: always 29 | state: started 30 | image: kubeclient:latest 31 | -------------------------------------------------------------------------------- /demos/kubernetes/client/kubeclient-delete.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Delete the Kube Client 3 | hosts: demo_clients 4 | become: True 5 | 6 | tasks: 7 | - name: delete kubeclient container 8 | docker_container: 9 | name: kubeclient1 10 | state: absent 11 | 12 | 13 | - name: delete the kubeclient base image 14 | docker_image: 15 | name: kubeclient 16 | tag: latest 17 | state: absent 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /demos/kubernetes/client/traffic-kube.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | import subprocess 4 | import traceback 5 | from datetime import datetime 6 | import time 7 | 8 | while True: 9 | print '-----> STARTING NEW LOOP' 10 | try: 11 | #cmd = 'while true; do ab -n 100000 -c 5 -f TLS1.0 -Z ECDHE-ECDSA-AES256-SHA https://scaleout.demovip.avi.local/100k.dat & ab -n 100000 -c 5 -f TLS1.1 -Z ECDHE-ECDSA-AES256-SHA https://scaleout.demovip.avi.local/100k.dat & ab -n 100000 -c 5 -f TLS1.2 -Z ECDHE-ECDSA-AES256-SHA https://scaleout.demovip.avi.local/100k.dat; done' 12 | cmd = 'ab -n 100000 -c 2 https://photo.demo.ns.avi/photo' 13 | result = subprocess.check_output(cmd, shell=True) 14 | time.sleep(1) 15 | except: 16 | exception_text = traceback.format_exc() 17 | print(str(datetime.now())+' '+exception_text) 18 | print 'ERROR - restarting' 19 | -------------------------------------------------------------------------------- /demos/kubernetes/clusterbinding.json: -------------------------------------------------------------------------------- 1 | { 2 | "apiVersion": "rbac.authorization.k8s.io/v1beta1", 3 | "kind": "ClusterRoleBinding", 4 | "metadata": { 5 | "name": "avirolebinding", 6 | "namespace": "default" 7 | }, 8 | "roleRef": { 9 | "apiGroup": "rbac.authorization.k8s.io", 10 | "kind": "ClusterRole", 11 | "name": "avirole" 12 | }, 13 | "subjects": [ 14 | { 15 | "kind": "ServiceAccount", 16 | "name": "avi", 17 | "namespace": "default" 18 | } 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /demos/kubernetes/controller_config-prep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Prep Avi Controller Config 3 | hosts: kubernetes 4 | become: True 5 | 6 | tasks: 7 | - name: Retrieve Service Account Secret Name 8 | shell: kubectl describe serviceaccount avi -n default | grep Mountable | awk '{print $3'} 9 | register: srvc_account_secret_name 10 | 11 | 12 | - debug: 13 | msg: "{{ srvc_account_secret_name.stdout }}" 14 | 15 | 16 | - name: Retrieve Service Account Secret Name 17 | shell: "kubectl describe secret {{ srvc_account_secret_name.stdout }} -n default | grep token: | awk '{print $2'}" 18 | register: srvc_account_token 19 | 20 | 21 | - debug: 22 | msg: "{{ srvc_account_token.stdout }}" 23 | 24 | 25 | - name: Prepare Controller config 26 | shell: | 27 | cp template_setup.json setup.json 28 | sed -i "s/REPLACE-TOKEN/{{ srvc_account_token.stdout }}/g" setup.json 29 | sed -i "s/REPLACE-IP/{{ ansible_default_ipv4.address }}/g" setup.json 30 | -------------------------------------------------------------------------------- /demos/kubernetes/controller_deploy_kubernetes.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: controllers 3 | become: True 4 | vars_files: 5 | - ../../vars/avi_details.yaml 6 | roles: 7 | - role: avinetworks.avicontroller 8 | con_version: "{{ avi_version }}" 9 | con_disk_gb: 64 10 | con_cores: 8 11 | con_memory_gb: "{{ avi_controller_memory }}" 12 | con_controller_ip: "{{ ansible_default_ipv4.address }}" 13 | con_sysint_port: 8444 14 | con_setup_json: "./setup.json" 15 | con_disk_path: "/opt/avi/controller/{{ avi_version }}" 16 | con_docker_run_params: "--name=avicontroller{{ con_ports_list_string }} --net avinet --label demo=kubernetes --ip 169.254.0.100 -d --privileged{{ con_env_variables_string }}{{ con_mounts_string }} {{ con_image }}" 17 | -------------------------------------------------------------------------------- /demos/kubernetes/demo_kubernetes.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - import_playbook: vm_prep/prep-kube.yml 3 | - import_playbook: ../../vm_prep/avinet.yml 4 | - import_playbook: kubernetes-create.yml 5 | - import_playbook: controller_config-prep.yml 6 | - import_playbook: controller_deploy_kubernetes.yml 7 | - import_playbook: controller_service_check.yml 8 | - import_playbook: aviconfigs/networks-create.yml 9 | - import_playbook: aviconfigs/ipam_dns-create.yml 10 | - import_playbook: aviconfigs/cloud-modify.yml 11 | - import_playbook: aviconfigs/avi-dns.yml 12 | - import_playbook: manifests/deploy-manifest.yml 13 | - import_playbook: client/kubeclient-create.yml 14 | - import_playbook: aviconfigs/se_enable.yml 15 | - import_playbook: controller_post_check.yml 16 | -------------------------------------------------------------------------------- /demos/kubernetes/manifests/deploy-manifest.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Install Kubernetes 3 | hosts: kubernetes 4 | become: True 5 | 6 | tasks: 7 | 8 | - name: Check if Gallery app is already deployed 9 | shell: "kubectl get namespace" 10 | register: app_status 11 | 12 | - name: Deploy Gallery App 13 | shell: kubectl create -f gallery-app.yml 14 | when: "'demo' not in app_status.stdout" 15 | -------------------------------------------------------------------------------- /demos/metrics/avimetrics/avi_controllers.json: -------------------------------------------------------------------------------- 1 | {"controllers":[ 2 | { 3 | "avi_controller":"avicontroller.avinet", 4 | "location":"datacenter1", 5 | "environment":"demo", 6 | "avi_user":"admin", 7 | "_comment":"ACCEPTS PLAIN TEXT OR BASE64 ENCODED PASSWORD", 8 | "avi_pass":"AviDemo1!" 9 | }] 10 | } 11 | -------------------------------------------------------------------------------- /demos/metrics/avimetrics/avimetrics-create.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Build the Avimetrics container 3 | hosts: metrics_hosts 4 | become: True 5 | 6 | tasks: 7 | - name: build the avimetrics base image 8 | docker_image: 9 | path: . 10 | name: avimetrics 11 | tag: latest 12 | state: present 13 | 14 | - name: start avimetrics 15 | docker_container: 16 | name: avimetrics 17 | hostname: avimetrics 18 | networks: 19 | - name: avinet 20 | ipv4_address: "169.254.100.102" 21 | env: 22 | EN_METRIC_ENDPOINT: influxdb 23 | log_driver: json-file 24 | log_options: 25 | max-size: 1m 26 | purge_networks: yes 27 | detach: yes 28 | restart_policy: always 29 | state: started 30 | image: avimetrics:latest 31 | -------------------------------------------------------------------------------- /demos/metrics/avimetrics/avimetrics-delete.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Delete the Avimetrics container 3 | hosts: metrics_hosts 4 | become: True 5 | 6 | tasks: 7 | - name: delete avimetrics container 8 | docker_container: 9 | name: avimetrics 10 | state: absent 11 | 12 | 13 | - name: delete the avimetrics demo image 14 | docker_image: 15 | name: avimetrics 16 | tag: latest 17 | state: absent 18 | 19 | 20 | - name: delete the python base image 21 | docker_image: 22 | name: avinetworks/avi-metrics 23 | tag: latest 24 | state: absent 25 | -------------------------------------------------------------------------------- /demos/metrics/avimetrics/dockerfile: -------------------------------------------------------------------------------- 1 | ############################################################ 2 | # Dockerfile to build python avi-monitor script container 3 | # Based on alpine:edge 4 | ############################################################ 5 | 6 | # Set the base image to alpine:edge 7 | FROM avinetworks/avi-metrics:latest 8 | 9 | # Set the working directory 10 | WORKDIR /usr/src/avi 11 | 12 | # File Author / Maintainer 13 | MAINTAINER mkarnowski@avinetworks.com 14 | 15 | 16 | ################## BEGIN INSTALLATION ###################### 17 | 18 | # Set Docker environment variable 19 | ENV EN_DOCKER=True 20 | 21 | # Copy scripts to directory 22 | COPY "avi_controllers.json" "/usr/src/avi" 23 | COPY "influxdb.json" "/usr/src/avi" 24 | 25 | 26 | -------------------------------------------------------------------------------- /demos/metrics/avimetrics/influxdb.json: -------------------------------------------------------------------------------- 1 | {"influxdb": 2 | { 3 | "server": "169.254.100.100", 4 | "server_port": 8086, 5 | "protocol": "http", 6 | "db": "avi", 7 | "_comment":"Change metric_prefix only if you need to define a prefix", 8 | "metric_prefix": "", 9 | "_comment":"If using auth on influxdb set auth-enabled to true and modify the credential values", 10 | "auth-enabled": false, 11 | "username": "admin", 12 | "password": "password" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /demos/metrics/grafana/dashboard.yml: -------------------------------------------------------------------------------- 1 | apiVersion: 1 2 | 3 | providers: 4 | - name: 'default' 5 | orgId: 1 6 | folder: '' 7 | type: file 8 | disableDeletion: true 9 | editable: true 10 | options: 11 | path: /var/lib/grafana/dashboards 12 | -------------------------------------------------------------------------------- /demos/metrics/grafana/grafana-delete.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Delete the Grafana container 3 | hosts: metrics_hosts 4 | become: True 5 | 6 | tasks: 7 | - name: delete grafana container 8 | docker_container: 9 | name: grafana 10 | state: absent 11 | 12 | 13 | - name: delete the grafana demo image 14 | docker_image: 15 | name: grafana 16 | tag: latest 17 | state: absent 18 | 19 | 20 | - name: delete the grafana base image 21 | docker_image: 22 | name: grafana/grafana 23 | tag: latest 24 | state: absent 25 | -------------------------------------------------------------------------------- /demos/metrics/influxdb/influxdb-create.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Build the Influxdb Container 3 | hosts: metrics_hosts 4 | become: True 5 | 6 | tasks: 7 | - name: start the Influxdb container 8 | docker_container: 9 | name: influxdb 10 | hostname: influxdb 11 | networks: 12 | - name: avinet 13 | ipv4_address: "169.254.100.100" 14 | purge_networks: yes 15 | env: 16 | INFLUXDB_REPORTING_DISABLED: true 17 | INFLUXDB_DB: avi 18 | volumes: influxdb:/var/lib/influxdb 19 | log_driver: json-file 20 | log_options: 21 | max-size: 200m 22 | detach: yes 23 | restart_policy: always 24 | state: started 25 | image: influxdb:latest 26 | 27 | -------------------------------------------------------------------------------- /demos/metrics/influxdb/influxdb-delete.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Delete the Avi Influxdb Container 3 | hosts: metrics_hosts 4 | become: True 5 | 6 | tasks: 7 | 8 | - name: delete the influxdb container 9 | docker_container: 10 | name: influxdb 11 | keep_volumes: no 12 | state: absent 13 | 14 | 15 | - name: cleanup the influxdb volume 16 | docker_volume: 17 | name: influxdb 18 | state: absent 19 | 20 | 21 | - name: delete the influxdb base image 22 | docker_image: 23 | name: influxdb:latest 24 | tag: latest 25 | state: absent 26 | -------------------------------------------------------------------------------- /demos/metrics/metrics_delete.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - import_playbook: influxdb/influxdb-delete.yml 3 | - import_playbook: avimetrics/avimetrics-delete.yml 4 | - import_playbook: grafana/grafana-delete.yml 5 | -------------------------------------------------------------------------------- /demos/metrics/metrics_hosts: -------------------------------------------------------------------------------- 1 | [metrics_hosts] 2 | localhost ansible_connection=local 3 | -------------------------------------------------------------------------------- /demos/metrics/metrics_install.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - import_playbook: influxdb/influxdb-create.yml 3 | - import_playbook: avimetrics/avimetrics-create.yml 4 | - import_playbook: grafana/grafana-create.yml 5 | -------------------------------------------------------------------------------- /demos/nocloud/applications/applications.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - import_playbook: demo_avi/app.yml 3 | - import_playbook: scaleout/app.yml 4 | - import_playbook: waf/app.yml 5 | -------------------------------------------------------------------------------- /demos/nocloud/applications/demo_avi/app.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: localhost 3 | connection: local 4 | vars_files: 5 | - ../../../../vars/avi_details.yaml 6 | vars: 7 | - api_version: 17.2.7 8 | - avi_controller: "{{ controller_ip }}" 9 | - avi_username: "{{ username }}" 10 | - avi_password: "{{ password }}" 11 | roles: 12 | - role: avinetworks.avisdk 13 | tasks: 14 | - name: Avi Application | Setup Avi-Demo-VS 15 | include_role: 16 | name: avinetworks.aviconfig 17 | vars: 18 | avi_config_file: config.yml 19 | -------------------------------------------------------------------------------- /demos/nocloud/applications/scaleout/app.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: localhost 3 | connection: local 4 | vars_files: 5 | - ../../../../vars/avi_details.yaml 6 | vars: 7 | - api_version: 17.2.7 8 | - avi_controller: "{{ controller_ip }}" 9 | - avi_username: "{{ username }}" 10 | - avi_password: "{{ password }}" 11 | roles: 12 | - role: avinetworks.avisdk 13 | tasks: 14 | - name: Avi Application | Setup Avi-Scaleout-VS 15 | include_role: 16 | name: avinetworks.aviconfig 17 | vars: 18 | avi_config_file: config.yml 19 | -------------------------------------------------------------------------------- /demos/nocloud/applications/waf/app.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: localhost 3 | connection: local 4 | vars_files: 5 | - ../../../../vars/avi_details.yaml 6 | vars: 7 | - api_version: 17.2.7 8 | - avi_controller: "{{ controller_ip }}" 9 | - avi_username: "{{ username }}" 10 | - avi_password: "{{ password }}" 11 | roles: 12 | - role: avinetworks.avisdk 13 | tasks: 14 | - name: Avi Application | Setup WAF-VS 15 | include_role: 16 | name: avinetworks.aviconfig 17 | vars: 18 | avi_config_file: config.yml 19 | -------------------------------------------------------------------------------- /demos/nocloud/avicontroller/controller_deploy.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: controllers 3 | become: yes 4 | vars_files: 5 | - ../../../vars/avi_details.yaml 6 | 7 | roles: 8 | - role: avinetworks.avicontroller 9 | con_version: "{{ avi_version }}" 10 | con_disk_gb: 64 11 | con_cores: 8 12 | con_memory_gb: "{{ avi_controller_memory }}" 13 | con_controller_ip: "{{ ansible_default_ipv4.address }}" 14 | con_setup_json: "./setup.json" 15 | con_disk_path: "/opt/avi/controller/{{ avi_version }}" 16 | con_docker_run_params: "--name=avicontroller{{ con_ports_list_string }} --net avinet --label demo=default --ip 169.254.0.100 -d --privileged{{ con_env_variables_string }}{{ con_mounts_string }} {{ con_image }}" 17 | -------------------------------------------------------------------------------- /demos/nocloud/client/demo-waf/democlient-delete.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Delete the Avi Demo Clients 3 | hosts: demo_clients 4 | become: True 5 | 6 | tasks: 7 | 8 | - name: delete the democlient1 container 9 | docker_container: 10 | name: democlient1 11 | state: absent 12 | 13 | 14 | - name: delete the democlient2 container 15 | docker_container: 16 | name: democlient2 17 | state: absent 18 | 19 | 20 | - name: delete the democlient base image 21 | docker_image: 22 | name: democlient 23 | tag: latest 24 | state: absent 25 | -------------------------------------------------------------------------------- /demos/nocloud/client/demo-waf/netem: -------------------------------------------------------------------------------- 1 | tc qdisc add dev eth0 handle 1: root htb direct_qlen 1000 2 | 3 | tc class add dev eth0 parent 1: classid 1:1 htb rate 1000Mbps 4 | 5 | tc class add dev eth0 parent 1:1 classid 1:11 htb rate 100Mbps 6 | 7 | tc qdisc add dev eth0 parent 1:11 handle 10: netem delay 900ms 100ms 25% 8 | 9 | tc filter add dev eth0 protocol ip prio 1 u32 match ip src 27.97.1.2 flowid 1:11 10 | 11 | tc class add dev eth0 parent 1:1 classid 1:12 htb rate 100Mbps 12 | 13 | tc qdisc add dev eth0 parent 1:12 handle 20: netem delay 50ms 45ms 25% 14 | 15 | tc filter add dev eth0 protocol ip prio 1 u32 match ip src 0.0.0.0/0 flowid 1:12 16 | -------------------------------------------------------------------------------- /demos/nocloud/client/scaleout/scaleout/traffic-ecc.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | import subprocess 4 | import traceback 5 | from datetime import datetime 6 | 7 | 8 | while True: 9 | print '-----> STARTING NEW LOOP' 10 | try: 11 | #cmd = 'while true; do ab -n 100000 -c 5 -f TLS1.0 -Z ECDHE-ECDSA-AES256-SHA https://scaleout.demovip.avi.local/100k.dat & ab -n 100000 -c 5 -f TLS1.1 -Z ECDHE-ECDSA-AES256-SHA https://scaleout.demovip.avi.local/100k.dat & ab -n 100000 -c 5 -f TLS1.2 -Z ECDHE-ECDSA-AES256-SHA https://scaleout.demovip.avi.local/100k.dat; done' 12 | cmd = 'ab -n 100000 -c 5 -f TLS1.0 -Z ECDHE-ECDSA-AES256-SHA https://scaleout.demovip.avi.local/100k.dat & ab -n 100000 -c 5 -f TLS1.1 -Z ECDHE-ECDSA-AES256-SHA https://scaleout.demovip.avi.local/100k.dat & ab -n 100000 -c 5 -f TLS1.2 -Z ECDHE-ECDSA-AES256-SHA https://scaleout.demovip.avi.local/100k.dat' 13 | result = subprocess.check_output(cmd, shell=True) 14 | except: 15 | exception_text = traceback.format_exc() 16 | print(str(datetime.now())+' '+exception_text) 17 | print 'ERROR - restarting' 18 | -------------------------------------------------------------------------------- /demos/nocloud/client/scaleout/scaleout/traffic-rsa.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | import subprocess 4 | import traceback 5 | from datetime import datetime 6 | 7 | 8 | while True: 9 | print '-----> STARTING NEW LOOP' 10 | try: 11 | #cmd = 'while true; do ab -n 100000 -c 5 -f TLS1.0 -Z ECDHE-ECDSA-AES256-SHA https://scaleout.demovip.avi.local/100k.dat & ab -n 100000 -c 5 -f TLS1.1 -Z ECDHE-ECDSA-AES256-SHA https://scaleout.demovip.avi.local/100k.dat & ab -n 100000 -c 5 -f TLS1.2 -Z ECDHE-ECDSA-AES256-SHA https://scaleout.demovip.avi.local/100k.dat; done' 12 | cmd = 'ab -n 100000 -c 5 -f TLS1.0 -Z AES256-SHA https://scaleout.demovip.avi.local/100k.dat & ab -n 100000 -c 5 -f TLS1.1 -Z AES256-SHA https://scaleout.demovip.avi.local/100k.dat & ab -n 100000 -c 5 -f TLS1.2 -Z AES256-SHA https://scaleout.demovip.avi.local/100k.dat' 13 | result = subprocess.check_output(cmd, shell=True) 14 | except: 15 | exception_text = traceback.format_exc() 16 | print(str(datetime.now())+' '+exception_text) 17 | print 'ERROR - restarting' 18 | -------------------------------------------------------------------------------- /demos/nocloud/client/scaleout/scaleoutclient-delete.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Delete the Scaleout Clients 3 | hosts: demo_clients 4 | become: True 5 | 6 | tasks: 7 | 8 | - name: delete scaleoutclient1 9 | docker_container: 10 | name: scaleoutclient1 11 | state: absent 12 | 13 | - name: delete the scaleoutclient base image 14 | docker_image: 15 | name: scaleoutclient 16 | tag: latest 17 | state: absent 18 | -------------------------------------------------------------------------------- /demos/nocloud/client/scaleout/startup.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | import subprocess 4 | from multiprocessing import Process 5 | import os 6 | import time 7 | 8 | 9 | 10 | #----- USE ENV VARS TO FIND VS IPs 11 | #----- os.environ 12 | 13 | 14 | 15 | 16 | #----- Add VS FQDN entries 17 | #cmd = 'echo "169.254.10.2 scaleout.demovip.avi.local" >> /etc/hosts' 18 | #result = subprocess.check_output(cmd, shell=True) 19 | #time.sleep(1) 20 | 21 | 22 | 23 | 24 | 25 | script_list = [ 26 | '/usr/bin/python /opt/avi/client/scaleout/traffic-ecc.py >> /opt/avi/client/scaleout/traffic-ecc.log', 27 | '/usr/bin/python /opt/avi/client/scaleout/traffic-rsa.py >> /opt/avi/client/scaleout/traffic-rsa.log' 28 | ] 29 | 30 | 31 | def run_script(script): 32 | result = subprocess.check_output(script, shell=True) 33 | 34 | 35 | 36 | 37 | while True: 38 | proc = [] 39 | for s in script_list: 40 | p = Process(target = run_script, args = (s,)) 41 | p.start() 42 | proc.append(p) 43 | for p in proc: 44 | p.join() 45 | -------------------------------------------------------------------------------- /demos/nocloud/demo_nocloud.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - import_playbook: vm_prep/prep.yml 3 | - import_playbook: ../../vm_prep/avinet.yml 4 | - import_playbook: avicontroller/controller_deploy.yml 5 | - import_playbook: servers/demo-scaleout/demoscaleoutserver-create.yml 6 | - import_playbook: servers/rdp/rdpserver-create.yml 7 | - import_playbook: servers/waf/dvwaserver-create.yml 8 | - import_playbook: client/demo-waf/democlient-create.yml 9 | - import_playbook: client/scaleout/scaleoutclient-create.yml 10 | - import_playbook: se_group/se_group.yml 11 | - import_playbook: service_engines/service_engines.yml 12 | - import_playbook: applications/applications.yml 13 | - import_playbook: avicontroller/controller_post_check.yml 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /demos/nocloud/nocloud_change_ver.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - import_playbook: service_engines/service_engines_delete.yml 3 | - import_playbook: avicontroller/controller_delete.yml 4 | - import_playbook: avicontroller/controller_change_ver.yml 5 | - import_playbook: service_engines/service_engines.yml 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /demos/nocloud/se_group/se_group.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - hosts: controllers 3 | roles: 4 | - role: avinetworks.avisdk 5 | vars_files: 6 | - ../../../vars/avi_details.yaml 7 | 8 | tasks: 9 | - name: Configure tunnel mode in service engine group 10 | avi_serviceenginegroup: 11 | controller: "{{ controller_ip }}" 12 | username: "{{ username }}" 13 | password: "{{ password }}" 14 | state: present 15 | api_version: "{{ api_version }}" 16 | name: "Default-Group" 17 | se_tunnel_mode: "2" 18 | -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/demoscaleoutserver-delete.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Delete the Demo Web Servers 3 | hosts: demo_servers 4 | become: True 5 | 6 | tasks: 7 | - name: delete demoserver1 container 8 | docker_container: 9 | name: demoserver1 10 | state: absent 11 | 12 | 13 | 14 | - name: delete demoserver2 container 15 | docker_container: 16 | name: demoserver2 17 | state: absent 18 | 19 | 20 | 21 | - name: delete demoserver3 container 22 | docker_container: 23 | name: demoserver3 24 | state: absent 25 | 26 | 27 | 28 | - name: delete the demoserver base image 29 | docker_image: 30 | name: demoserver 31 | tag: latest 32 | state: absent 33 | -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/dockerfile: -------------------------------------------------------------------------------- 1 | FROM httpd:alpine 2 | 3 | RUN rm /usr/local/apache2/htdocs/index.html 4 | COPY html /usr/local/apache2/htdocs 5 | -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/assets/avi.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avinetworks/demo-in-a-box/cfdd7c735b01673cd0b9b9ffbf87c2052295549d/demos/nocloud/servers/demo-scaleout/html/assets/avi.mp4 -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/assets/avi.webm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avinetworks/demo-in-a-box/cfdd7c735b01673cd0b9b9ffbf87c2052295549d/demos/nocloud/servers/demo-scaleout/html/assets/avi.webm -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avinetworks/demo-in-a-box/cfdd7c735b01673cd0b9b9ffbf87c2052295549d/demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/arrow.png -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/arrow_more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avinetworks/demo-in-a-box/cfdd7c735b01673cd0b9b9ffbf87c2052295549d/demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/arrow_more.png -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avinetworks/demo-in-a-box/cfdd7c735b01673cd0b9b9ffbf87c2052295549d/demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/bg.png -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/bg_mobi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avinetworks/demo-in-a-box/cfdd7c735b01673cd0b9b9ffbf87c2052295549d/demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/bg_mobi.png -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avinetworks/demo-in-a-box/cfdd7c735b01673cd0b9b9ffbf87c2052295549d/demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/favicon.ico -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/icon_bio_twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avinetworks/demo-in-a-box/cfdd7c735b01673cd0b9b9ffbf87c2052295549d/demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/icon_bio_twitter.png -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/icon_culture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avinetworks/demo-in-a-box/cfdd7c735b01673cd0b9b9ffbf87c2052295549d/demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/icon_culture.png -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/icon_email.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avinetworks/demo-in-a-box/cfdd7c735b01673cd0b9b9ffbf87c2052295549d/demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/icon_email.png -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/icon_jobs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avinetworks/demo-in-a-box/cfdd7c735b01673cd0b9b9ffbf87c2052295549d/demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/icon_jobs.png -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/icon_linkedin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avinetworks/demo-in-a-box/cfdd7c735b01673cd0b9b9ffbf87c2052295549d/demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/icon_linkedin.png -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/icon_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avinetworks/demo-in-a-box/cfdd7c735b01673cd0b9b9ffbf87c2052295549d/demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/icon_menu.png -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/icon_perks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avinetworks/demo-in-a-box/cfdd7c735b01673cd0b9b9ffbf87c2052295549d/demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/icon_perks.png -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/icon_phone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avinetworks/demo-in-a-box/cfdd7c735b01673cd0b9b9ffbf87c2052295549d/demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/icon_phone.png -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/icon_pin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avinetworks/demo-in-a-box/cfdd7c735b01673cd0b9b9ffbf87c2052295549d/demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/icon_pin.png -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/icon_team.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avinetworks/demo-in-a-box/cfdd7c735b01673cd0b9b9ffbf87c2052295549d/demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/icon_team.png -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/icon_twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avinetworks/demo-in-a-box/cfdd7c735b01673cd0b9b9ffbf87c2052295549d/demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/icon_twitter.png -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avinetworks/demo-in-a-box/cfdd7c735b01673cd0b9b9ffbf87c2052295549d/demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/logo.png -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/logo_bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avinetworks/demo-in-a-box/cfdd7c735b01673cd0b9b9ffbf87c2052295549d/demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/logo_bottom.png -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/logo_greylock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avinetworks/demo-in-a-box/cfdd7c735b01673cd0b9b9ffbf87c2052295549d/demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/logo_greylock.png -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/logo_lightspeed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avinetworks/demo-in-a-box/cfdd7c735b01673cd0b9b9ffbf87c2052295549d/demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/logo_lightspeed.png -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/pic_asheem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avinetworks/demo-in-a-box/cfdd7c735b01673cd0b9b9ffbf87c2052295549d/demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/pic_asheem.png -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/pic_barry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avinetworks/demo-in-a-box/cfdd7c735b01673cd0b9b9ffbf87c2052295549d/demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/pic_barry.png -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/pic_guru.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avinetworks/demo-in-a-box/cfdd7c735b01673cd0b9b9ffbf87c2052295549d/demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/pic_guru.png -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/pic_murali.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avinetworks/demo-in-a-box/cfdd7c735b01673cd0b9b9ffbf87c2052295549d/demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/pic_murali.png -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/pic_ranga.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avinetworks/demo-in-a-box/cfdd7c735b01673cd0b9b9ffbf87c2052295549d/demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/pic_ranga.png -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/pic_umesh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avinetworks/demo-in-a-box/cfdd7c735b01673cd0b9b9ffbf87c2052295549d/demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/pic_umesh.png -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/rocket.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avinetworks/demo-in-a-box/cfdd7c735b01673cd0b9b9ffbf87c2052295549d/demos/nocloud/servers/demo-scaleout/html/avinetworks/static/avi/img/rocket.png -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/imgs/favicon_v2.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avinetworks/demo-in-a-box/cfdd7c735b01673cd0b9b9ffbf87c2052295549d/demos/nocloud/servers/demo-scaleout/html/imgs/favicon_v2.ico -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/imgs/foot-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avinetworks/demo-in-a-box/cfdd7c735b01673cd0b9b9ffbf87c2052295549d/demos/nocloud/servers/demo-scaleout/html/imgs/foot-logo.png -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/imgs/header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avinetworks/demo-in-a-box/cfdd7c735b01673cd0b9b9ffbf87c2052295549d/demos/nocloud/servers/demo-scaleout/html/imgs/header.png -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/imgs/icon_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avinetworks/demo-in-a-box/cfdd7c735b01673cd0b9b9ffbf87c2052295549d/demos/nocloud/servers/demo-scaleout/html/imgs/icon_search.png -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/imgs/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avinetworks/demo-in-a-box/cfdd7c735b01673cd0b9b9ffbf87c2052295549d/demos/nocloud/servers/demo-scaleout/html/imgs/logo.png -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/imgs/ping: -------------------------------------------------------------------------------- 1 | __lc_ping_915417({"next_ping_delay":7}); -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/imgs/s2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avinetworks/demo-in-a-box/cfdd7c735b01673cd0b9b9ffbf87c2052295549d/demos/nocloud/servers/demo-scaleout/html/imgs/s2.png -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/imgs/s3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avinetworks/demo-in-a-box/cfdd7c735b01673cd0b9b9ffbf87c2052295549d/demos/nocloud/servers/demo-scaleout/html/imgs/s3.png -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/imgs/s4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avinetworks/demo-in-a-box/cfdd7c735b01673cd0b9b9ffbf87c2052295549d/demos/nocloud/servers/demo-scaleout/html/imgs/s4.png -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/imgs/saved_resource.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
-------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/imgs/service-icon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/imgs/sf14g.js: -------------------------------------------------------------------------------- 1 | var tl813v = sf14gv; 2 | (function() { 3 | var tl813 = document.createElement('script'); tl813.type = 'text/javascript'; tl813.async = true; 4 | tl813.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + '1.tl813.com/tl813.js'; 5 | var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(tl813, s); 6 | })(); 7 | -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/imgs/tl813.js: -------------------------------------------------------------------------------- 1 | var trackalyzer={}; if(typeof llnocookies === 'undefined'){var llnocookies};trackalyzer.leadlanderid=tl813v;trackalyzer.leadlanderpage=escape(location.href);trackalyzer.leadlanderref=escape(document.referrer);trackalyzer.leadlanderlinkreefer="?r="+trackalyzer.leadlanderref+"&p="+trackalyzer.leadlanderpage+"&llactid="+trackalyzer.leadlanderid+"&llnocookies="+llnocookies;if(document.location.protocol==="https:"){trackalyzer.leadlanderlinkreefer="https://1.tl813.com/tl813.asp"+trackalyzer.leadlanderlinkreefer}else{trackalyzer.leadlanderlinkreefer="http://1.tl813.com/tl813.asp"+trackalyzer.leadlanderlinkreefer}var myImage=new Image(0,0);myImage.src=trackalyzer.leadlanderlinkreefer -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/imgs/webinar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avinetworks/demo-in-a-box/cfdd7c735b01673cd0b9b9ffbf87c2052295549d/demos/nocloud/servers/demo-scaleout/html/imgs/webinar.png -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/imgs/whitepaper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/avinetworks/demo-in-a-box/cfdd7c735b01673cd0b9b9ffbf87c2052295549d/demos/nocloud/servers/demo-scaleout/html/imgs/whitepaper.png -------------------------------------------------------------------------------- /demos/nocloud/servers/demo-scaleout/html/index_old.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |