stoobly-agent 1.3.0__py3-none-any.whl → 1.4.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. stoobly_agent/__init__.py +1 -1
  2. stoobly_agent/app/api/application_http_request_handler.py +3 -3
  3. stoobly_agent/app/api/proxy_controller.py +8 -7
  4. stoobly_agent/app/cli/config_cli.py +1 -1
  5. stoobly_agent/app/cli/helpers/certificate_authority.py +6 -1
  6. stoobly_agent/app/cli/helpers/print_service.py +17 -0
  7. stoobly_agent/app/cli/scaffold/app.py +2 -2
  8. stoobly_agent/app/cli/scaffold/constants.py +0 -2
  9. stoobly_agent/app/cli/scaffold/hosts_file_manager.py +112 -0
  10. stoobly_agent/app/cli/scaffold/service.py +0 -1
  11. stoobly_agent/app/cli/scaffold/service_config.py +10 -14
  12. stoobly_agent/app/cli/scaffold/service_workflow_validate_command.py +3 -3
  13. stoobly_agent/app/cli/scaffold/templates/app/.Dockerfile.context +1 -1
  14. stoobly_agent/app/cli/scaffold/templates/app/.Makefile +77 -53
  15. stoobly_agent/app/cli/scaffold/templates/app/stoobly-ui/exec/bin/.services +9 -0
  16. stoobly_agent/app/cli/scaffold/workflow_create_command.py +0 -1
  17. stoobly_agent/app/cli/scaffold/workflow_run_command.py +6 -9
  18. stoobly_agent/app/cli/scaffold_cli.py +200 -69
  19. stoobly_agent/app/cli/snapshot_cli.py +1 -1
  20. stoobly_agent/app/proxy/handle_mock_service.py +2 -0
  21. stoobly_agent/app/proxy/handle_replay_service.py +2 -0
  22. stoobly_agent/app/proxy/mitmproxy/request_facade.py +1 -1
  23. stoobly_agent/app/proxy/mitmproxy/response_body_facade.py +19 -0
  24. stoobly_agent/app/proxy/mitmproxy/response_facade.py +90 -18
  25. stoobly_agent/app/proxy/record/join_request_service.py +1 -1
  26. stoobly_agent/app/settings/constants/request_component.py +2 -1
  27. stoobly_agent/config/constants/custom_headers.py +13 -13
  28. stoobly_agent/config/constants/headers.py +0 -2
  29. stoobly_agent/public/18-es2015.583f191cc7ad512ee262.js +1 -0
  30. stoobly_agent/public/18-es5.583f191cc7ad512ee262.js +1 -0
  31. stoobly_agent/public/35-es2015.8f79ff8748d4ff06ab03.js +1 -0
  32. stoobly_agent/public/35-es5.8f79ff8748d4ff06ab03.js +1 -0
  33. stoobly_agent/public/index.html +1 -1
  34. stoobly_agent/public/main-es2015.2cc16523aa3fcaba51e5.js +1 -0
  35. stoobly_agent/public/main-es5.2cc16523aa3fcaba51e5.js +1 -0
  36. stoobly_agent/public/{runtime-es2015.9addf49b79aca951b7e2.js → runtime-es2015.b914470164e4d6e75d96.js} +1 -1
  37. stoobly_agent/public/{runtime-es5.9addf49b79aca951b7e2.js → runtime-es5.b914470164e4d6e75d96.js} +1 -1
  38. stoobly_agent/test/app/cli/scaffold/{hosts_file_reader_test.py → hosts_file_manager_test.py} +20 -20
  39. stoobly_agent/test/app/models/schemas/.stoobly/db/VERSION +1 -1
  40. {stoobly_agent-1.3.0.dist-info → stoobly_agent-1.4.0.dist-info}/METADATA +1 -1
  41. {stoobly_agent-1.3.0.dist-info → stoobly_agent-1.4.0.dist-info}/RECORD +44 -42
  42. stoobly_agent/app/cli/scaffold/hosts_file_reader.py +0 -65
  43. stoobly_agent/public/18-es2015.d3b430636a4d6f544d92.js +0 -1
  44. stoobly_agent/public/18-es5.d3b430636a4d6f544d92.js +0 -1
  45. stoobly_agent/public/35-es2015.f741ebce0bfc25f0ec99.js +0 -1
  46. stoobly_agent/public/35-es5.f741ebce0bfc25f0ec99.js +0 -1
  47. stoobly_agent/public/main-es2015.ccd46ac1b6638ddf2066.js +0 -1
  48. stoobly_agent/public/main-es5.ccd46ac1b6638ddf2066.js +0 -1
  49. {stoobly_agent-1.3.0.dist-info → stoobly_agent-1.4.0.dist-info}/LICENSE +0 -0
  50. {stoobly_agent-1.3.0.dist-info → stoobly_agent-1.4.0.dist-info}/WHEEL +0 -0
  51. {stoobly_agent-1.3.0.dist-info → stoobly_agent-1.4.0.dist-info}/entry_points.txt +0 -0
@@ -1 +1 @@
1
- !function(e){function r(r){for(var c,f,o=r[0],b=r[1],d=r[2],i=0,l=[];i<o.length;i++)f=o[i],Object.prototype.hasOwnProperty.call(a,f)&&a[f]&&l.push(a[f][0]),a[f]=0;for(c in b)Object.prototype.hasOwnProperty.call(b,c)&&(e[c]=b[c]);for(u&&u(r);l.length;)l.shift()();return n.push.apply(n,d||[]),t()}function t(){for(var e,r=0;r<n.length;r++){for(var t=n[r],c=!0,o=1;o<t.length;o++)0!==a[t[o]]&&(c=!1);c&&(n.splice(r--,1),e=f(f.s=t[0]))}return e}var c={},a={11:0},n=[];function f(r){if(c[r])return c[r].exports;var t=c[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,f),t.l=!0,t.exports}f.e=function(e){var r=[],t=a[e];if(0!==t)if(t)r.push(t[2]);else{var c=new Promise(function(r,c){t=a[e]=[r,c]});r.push(t[2]=c);var n,o=document.createElement("script");o.charset="utf-8",o.timeout=120,f.nc&&o.setAttribute("nonce",f.nc),o.src=function(e){return f.p+""+({3:"common"}[e]||e)+"-es2015."+{0:"c7c5a6d51b98cb85b9fc",1:"bb4492eeabe1fe937ada",2:"51eb8544ea9a21f2874c",3:"388805227aa99c527fba",4:"f8ac5475bf103969b2d2",5:"90ea7bd4439d9749e052",6:"5fb726c0555664300974",7:"19ccb84e62e2ea874f53",8:"b901639e2aeff1358c3d",9:"b7bcad8238f58e214f03",10:"56da22458086513ba0c7",12:"be58ed0ef449008b932e",13:"343b0261a8b3b3f4a1fc",14:"b6619d7742671d2a37fb",15:"d8855701408b0e1d7a3e",16:"98fa59c2c96d2caac3c3",17:"7f60b56d1fd66d4d5544",18:"d3b430636a4d6f544d92",19:"78ec0e9fd228b5104712",20:"90544c488f1f0900bab4",21:"63ed4e6b242fbc047bd6",22:"1e96ef651f96d51191e2",23:"6d3052555b4fac38f16d",28:"a2bf42f38e4dd771ccea",29:"18b515f07c88753c7eb6",30:"d4d3dc4101400cadf3f3",31:"e3ea815f75c19c217b7d",32:"57553995bff0ae518501",33:"da5ba1e5baa164921198",34:"87acbb95cfb824650157",35:"f741ebce0bfc25f0ec99",36:"e3a104020eeec02cb8c4",37:"3b472e6cf303201bbf2c",38:"39dbf43d46cdc94f78c6",39:"e5475ea4fb6ec5c60741",40:"47b2873a8439717af6a7",41:"69f2771002745c066976",42:"b590b92ede890155dcd6",43:"ad1d956bffba561ba64c",44:"3ef2c17996ed5be95ced",45:"3d65d27e0a7085e96356",46:"e4f0a5b127eae13c27c0",47:"c7d45334a70131f133b5"}[e]+".js"}(e);var b=new Error;n=function(r){o.onerror=o.onload=null,clearTimeout(d);var t=a[e];if(0!==t){if(t){var c=r&&("load"===r.type?"missing":r.type),n=r&&r.target&&r.target.src;b.message="Loading chunk "+e+" failed.\n("+c+": "+n+")",b.name="ChunkLoadError",b.type=c,b.request=n,t[1](b)}a[e]=void 0}};var d=setTimeout(function(){n({type:"timeout",target:o})},12e4);o.onerror=o.onload=n,document.head.appendChild(o)}return Promise.all(r)},f.m=e,f.c=c,f.d=function(e,r,t){f.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},f.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.t=function(e,r){if(1&r&&(e=f(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(f.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var c in e)f.d(t,c,(function(r){return e[r]}).bind(null,c));return t},f.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(r,"a",r),r},f.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},f.p="",f.oe=function(e){throw console.error(e),e};var o=window.webpackJsonp=window.webpackJsonp||[],b=o.push.bind(o);o.push=r,o=o.slice();for(var d=0;d<o.length;d++)r(o[d]);var u=b;t()}([]);
1
+ !function(e){function r(r){for(var a,f,o=r[0],b=r[1],d=r[2],i=0,l=[];i<o.length;i++)f=o[i],Object.prototype.hasOwnProperty.call(c,f)&&c[f]&&l.push(c[f][0]),c[f]=0;for(a in b)Object.prototype.hasOwnProperty.call(b,a)&&(e[a]=b[a]);for(u&&u(r);l.length;)l.shift()();return n.push.apply(n,d||[]),t()}function t(){for(var e,r=0;r<n.length;r++){for(var t=n[r],a=!0,o=1;o<t.length;o++)0!==c[t[o]]&&(a=!1);a&&(n.splice(r--,1),e=f(f.s=t[0]))}return e}var a={},c={11:0},n=[];function f(r){if(a[r])return a[r].exports;var t=a[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,f),t.l=!0,t.exports}f.e=function(e){var r=[],t=c[e];if(0!==t)if(t)r.push(t[2]);else{var a=new Promise(function(r,a){t=c[e]=[r,a]});r.push(t[2]=a);var n,o=document.createElement("script");o.charset="utf-8",o.timeout=120,f.nc&&o.setAttribute("nonce",f.nc),o.src=function(e){return f.p+""+({3:"common"}[e]||e)+"-es2015."+{0:"c7c5a6d51b98cb85b9fc",1:"bb4492eeabe1fe937ada",2:"51eb8544ea9a21f2874c",3:"388805227aa99c527fba",4:"f8ac5475bf103969b2d2",5:"90ea7bd4439d9749e052",6:"5fb726c0555664300974",7:"19ccb84e62e2ea874f53",8:"b901639e2aeff1358c3d",9:"b7bcad8238f58e214f03",10:"56da22458086513ba0c7",12:"be58ed0ef449008b932e",13:"343b0261a8b3b3f4a1fc",14:"b6619d7742671d2a37fb",15:"d8855701408b0e1d7a3e",16:"98fa59c2c96d2caac3c3",17:"7f60b56d1fd66d4d5544",18:"583f191cc7ad512ee262",19:"78ec0e9fd228b5104712",20:"90544c488f1f0900bab4",21:"63ed4e6b242fbc047bd6",22:"1e96ef651f96d51191e2",23:"6d3052555b4fac38f16d",28:"a2bf42f38e4dd771ccea",29:"18b515f07c88753c7eb6",30:"d4d3dc4101400cadf3f3",31:"e3ea815f75c19c217b7d",32:"57553995bff0ae518501",33:"da5ba1e5baa164921198",34:"87acbb95cfb824650157",35:"8f79ff8748d4ff06ab03",36:"e3a104020eeec02cb8c4",37:"3b472e6cf303201bbf2c",38:"39dbf43d46cdc94f78c6",39:"e5475ea4fb6ec5c60741",40:"47b2873a8439717af6a7",41:"69f2771002745c066976",42:"b590b92ede890155dcd6",43:"ad1d956bffba561ba64c",44:"3ef2c17996ed5be95ced",45:"3d65d27e0a7085e96356",46:"e4f0a5b127eae13c27c0",47:"c7d45334a70131f133b5"}[e]+".js"}(e);var b=new Error;n=function(r){o.onerror=o.onload=null,clearTimeout(d);var t=c[e];if(0!==t){if(t){var a=r&&("load"===r.type?"missing":r.type),n=r&&r.target&&r.target.src;b.message="Loading chunk "+e+" failed.\n("+a+": "+n+")",b.name="ChunkLoadError",b.type=a,b.request=n,t[1](b)}c[e]=void 0}};var d=setTimeout(function(){n({type:"timeout",target:o})},12e4);o.onerror=o.onload=n,document.head.appendChild(o)}return Promise.all(r)},f.m=e,f.c=a,f.d=function(e,r,t){f.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},f.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.t=function(e,r){if(1&r&&(e=f(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(f.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var a in e)f.d(t,a,(function(r){return e[r]}).bind(null,a));return t},f.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(r,"a",r),r},f.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},f.p="",f.oe=function(e){throw console.error(e),e};var o=window.webpackJsonp=window.webpackJsonp||[],b=o.push.bind(o);o.push=r,o=o.slice();for(var d=0;d<o.length;d++)r(o[d]);var u=b;t()}([]);
@@ -1 +1 @@
1
- !function(e){function r(r){for(var c,f,o=r[0],b=r[1],d=r[2],i=0,l=[];i<o.length;i++)f=o[i],Object.prototype.hasOwnProperty.call(a,f)&&a[f]&&l.push(a[f][0]),a[f]=0;for(c in b)Object.prototype.hasOwnProperty.call(b,c)&&(e[c]=b[c]);for(u&&u(r);l.length;)l.shift()();return n.push.apply(n,d||[]),t()}function t(){for(var e,r=0;r<n.length;r++){for(var t=n[r],c=!0,o=1;o<t.length;o++)0!==a[t[o]]&&(c=!1);c&&(n.splice(r--,1),e=f(f.s=t[0]))}return e}var c={},a={11:0},n=[];function f(r){if(c[r])return c[r].exports;var t=c[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,f),t.l=!0,t.exports}f.e=function(e){var r=[],t=a[e];if(0!==t)if(t)r.push(t[2]);else{var c=new Promise(function(r,c){t=a[e]=[r,c]});r.push(t[2]=c);var n,o=document.createElement("script");o.charset="utf-8",o.timeout=120,f.nc&&o.setAttribute("nonce",f.nc),o.src=function(e){return f.p+""+({3:"common"}[e]||e)+"-es5."+{0:"c7c5a6d51b98cb85b9fc",1:"bb4492eeabe1fe937ada",2:"51eb8544ea9a21f2874c",3:"388805227aa99c527fba",4:"f8ac5475bf103969b2d2",5:"90ea7bd4439d9749e052",6:"5fb726c0555664300974",7:"19ccb84e62e2ea874f53",8:"b901639e2aeff1358c3d",9:"b7bcad8238f58e214f03",10:"56da22458086513ba0c7",12:"be58ed0ef449008b932e",13:"343b0261a8b3b3f4a1fc",14:"b6619d7742671d2a37fb",15:"d8855701408b0e1d7a3e",16:"98fa59c2c96d2caac3c3",17:"7f60b56d1fd66d4d5544",18:"d3b430636a4d6f544d92",19:"78ec0e9fd228b5104712",20:"90544c488f1f0900bab4",21:"63ed4e6b242fbc047bd6",22:"1e96ef651f96d51191e2",23:"6d3052555b4fac38f16d",28:"a2bf42f38e4dd771ccea",29:"18b515f07c88753c7eb6",30:"d4d3dc4101400cadf3f3",31:"e3ea815f75c19c217b7d",32:"57553995bff0ae518501",33:"da5ba1e5baa164921198",34:"87acbb95cfb824650157",35:"f741ebce0bfc25f0ec99",36:"e3a104020eeec02cb8c4",37:"3b472e6cf303201bbf2c",38:"39dbf43d46cdc94f78c6",39:"e5475ea4fb6ec5c60741",40:"47b2873a8439717af6a7",41:"69f2771002745c066976",42:"b590b92ede890155dcd6",43:"ad1d956bffba561ba64c",44:"3ef2c17996ed5be95ced",45:"3d65d27e0a7085e96356",46:"e4f0a5b127eae13c27c0",47:"c7d45334a70131f133b5"}[e]+".js"}(e);var b=new Error;n=function(r){o.onerror=o.onload=null,clearTimeout(d);var t=a[e];if(0!==t){if(t){var c=r&&("load"===r.type?"missing":r.type),n=r&&r.target&&r.target.src;b.message="Loading chunk "+e+" failed.\n("+c+": "+n+")",b.name="ChunkLoadError",b.type=c,b.request=n,t[1](b)}a[e]=void 0}};var d=setTimeout(function(){n({type:"timeout",target:o})},12e4);o.onerror=o.onload=n,document.head.appendChild(o)}return Promise.all(r)},f.m=e,f.c=c,f.d=function(e,r,t){f.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},f.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.t=function(e,r){if(1&r&&(e=f(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(f.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var c in e)f.d(t,c,(function(r){return e[r]}).bind(null,c));return t},f.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(r,"a",r),r},f.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},f.p="",f.oe=function(e){throw console.error(e),e};var o=window.webpackJsonp=window.webpackJsonp||[],b=o.push.bind(o);o.push=r,o=o.slice();for(var d=0;d<o.length;d++)r(o[d]);var u=b;t()}([]);
1
+ !function(e){function r(r){for(var a,f,o=r[0],b=r[1],d=r[2],i=0,l=[];i<o.length;i++)f=o[i],Object.prototype.hasOwnProperty.call(c,f)&&c[f]&&l.push(c[f][0]),c[f]=0;for(a in b)Object.prototype.hasOwnProperty.call(b,a)&&(e[a]=b[a]);for(u&&u(r);l.length;)l.shift()();return n.push.apply(n,d||[]),t()}function t(){for(var e,r=0;r<n.length;r++){for(var t=n[r],a=!0,o=1;o<t.length;o++)0!==c[t[o]]&&(a=!1);a&&(n.splice(r--,1),e=f(f.s=t[0]))}return e}var a={},c={11:0},n=[];function f(r){if(a[r])return a[r].exports;var t=a[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,f),t.l=!0,t.exports}f.e=function(e){var r=[],t=c[e];if(0!==t)if(t)r.push(t[2]);else{var a=new Promise(function(r,a){t=c[e]=[r,a]});r.push(t[2]=a);var n,o=document.createElement("script");o.charset="utf-8",o.timeout=120,f.nc&&o.setAttribute("nonce",f.nc),o.src=function(e){return f.p+""+({3:"common"}[e]||e)+"-es5."+{0:"c7c5a6d51b98cb85b9fc",1:"bb4492eeabe1fe937ada",2:"51eb8544ea9a21f2874c",3:"388805227aa99c527fba",4:"f8ac5475bf103969b2d2",5:"90ea7bd4439d9749e052",6:"5fb726c0555664300974",7:"19ccb84e62e2ea874f53",8:"b901639e2aeff1358c3d",9:"b7bcad8238f58e214f03",10:"56da22458086513ba0c7",12:"be58ed0ef449008b932e",13:"343b0261a8b3b3f4a1fc",14:"b6619d7742671d2a37fb",15:"d8855701408b0e1d7a3e",16:"98fa59c2c96d2caac3c3",17:"7f60b56d1fd66d4d5544",18:"583f191cc7ad512ee262",19:"78ec0e9fd228b5104712",20:"90544c488f1f0900bab4",21:"63ed4e6b242fbc047bd6",22:"1e96ef651f96d51191e2",23:"6d3052555b4fac38f16d",28:"a2bf42f38e4dd771ccea",29:"18b515f07c88753c7eb6",30:"d4d3dc4101400cadf3f3",31:"e3ea815f75c19c217b7d",32:"57553995bff0ae518501",33:"da5ba1e5baa164921198",34:"87acbb95cfb824650157",35:"8f79ff8748d4ff06ab03",36:"e3a104020eeec02cb8c4",37:"3b472e6cf303201bbf2c",38:"39dbf43d46cdc94f78c6",39:"e5475ea4fb6ec5c60741",40:"47b2873a8439717af6a7",41:"69f2771002745c066976",42:"b590b92ede890155dcd6",43:"ad1d956bffba561ba64c",44:"3ef2c17996ed5be95ced",45:"3d65d27e0a7085e96356",46:"e4f0a5b127eae13c27c0",47:"c7d45334a70131f133b5"}[e]+".js"}(e);var b=new Error;n=function(r){o.onerror=o.onload=null,clearTimeout(d);var t=c[e];if(0!==t){if(t){var a=r&&("load"===r.type?"missing":r.type),n=r&&r.target&&r.target.src;b.message="Loading chunk "+e+" failed.\n("+a+": "+n+")",b.name="ChunkLoadError",b.type=a,b.request=n,t[1](b)}c[e]=void 0}};var d=setTimeout(function(){n({type:"timeout",target:o})},12e4);o.onerror=o.onload=n,document.head.appendChild(o)}return Promise.all(r)},f.m=e,f.c=a,f.d=function(e,r,t){f.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},f.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.t=function(e,r){if(1&r&&(e=f(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(f.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var a in e)f.d(t,a,(function(r){return e[r]}).bind(null,a));return t},f.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(r,"a",r),r},f.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},f.p="",f.oe=function(e){throw console.error(e),e};var o=window.webpackJsonp=window.webpackJsonp||[],b=o.push.bind(o);o.push=r,o=o.slice();for(var d=0;d<o.length;d++)r(o[d]);var u=b;t()}([]);
@@ -1,23 +1,23 @@
1
1
  import pdb
2
2
  import pytest
3
3
 
4
- from stoobly_agent.app.cli.scaffold.hosts_file_reader import HostsFileReader
4
+ from stoobly_agent.app.cli.scaffold.hosts_file_manager import HostsFileManager
5
5
 
6
6
 
7
- class TestHostsFileReader():
7
+ class TestHostsFileManager():
8
8
 
9
9
  @pytest.fixture
10
- def hosts_file_reader(self):
11
- yield HostsFileReader()
10
+ def hosts_file_manager(self):
11
+ yield HostsFileManager()
12
12
 
13
- def test_get_hosts_file_path(self, hosts_file_reader):
14
- hosts_file_path = hosts_file_reader._HostsFileReader__get_hosts_file_path()
13
+ def test_get_hosts_file_path(self, hosts_file_manager):
14
+ hosts_file_path = hosts_file_manager._HostsFileManager__get_hosts_file_path()
15
15
 
16
16
  # Test runners are all Linux distros for now
17
17
  assert hosts_file_path == '/etc/hosts'
18
18
 
19
- def test_get_hosts(self, hosts_file_reader):
20
- hosts = hosts_file_reader.get_hosts()
19
+ def test_get_hosts(self, hosts_file_manager):
20
+ hosts = hosts_file_manager.get_hosts()
21
21
 
22
22
  assert hosts
23
23
  assert len(hosts) > 1
@@ -29,10 +29,10 @@ class TestHostsFileReader():
29
29
  break
30
30
  assert localhost_found
31
31
 
32
- def test_find_host(self, hosts_file_reader):
32
+ def test_find_host(self, hosts_file_manager):
33
33
  url = 'localhost'
34
34
 
35
- host = hosts_file_reader.find_host(url)
35
+ host = hosts_file_manager.find_host(url)
36
36
 
37
37
  assert host
38
38
  assert host.ip_address == '127.0.0.1'
@@ -40,36 +40,36 @@ class TestHostsFileReader():
40
40
 
41
41
 
42
42
  class TestsSplitHostsLine():
43
- def test_basic(self, hosts_file_reader):
43
+ def test_basic(self, hosts_file_manager):
44
44
  line = '0.0.0.0 example.com'
45
- split = hosts_file_reader._HostsFileReader__split_hosts_line(line)
45
+ split = hosts_file_manager._HostsFileManager__split_hosts_line(line)
46
46
 
47
47
  assert split[0] == '0.0.0.0'
48
48
  assert split[1] == 'example.com'
49
49
 
50
- def test_tabs(self, hosts_file_reader):
50
+ def test_tabs(self, hosts_file_manager):
51
51
  line = '0.0.0.0\texample.com'
52
- split = hosts_file_reader._HostsFileReader__split_hosts_line(line)
52
+ split = hosts_file_manager._HostsFileManager__split_hosts_line(line)
53
53
 
54
54
  assert split[0] == '0.0.0.0'
55
55
  assert split[1] == 'example.com'
56
56
 
57
- def test_comment(self, hosts_file_reader):
57
+ def test_comment(self, hosts_file_manager):
58
58
  line = '# 0.0.0.0 example.com'
59
- split = hosts_file_reader._HostsFileReader__split_hosts_line(line)
59
+ split = hosts_file_manager._HostsFileManager__split_hosts_line(line)
60
60
 
61
61
  assert len(split) == 0
62
62
 
63
- def test_inline_comment(self, hosts_file_reader):
63
+ def test_inline_comment(self, hosts_file_manager):
64
64
  line = '0.0.0.0\texample.com # Comment'
65
- split = hosts_file_reader._HostsFileReader__split_hosts_line(line)
65
+ split = hosts_file_manager._HostsFileManager__split_hosts_line(line)
66
66
 
67
67
  assert split[0] == '0.0.0.0'
68
68
  assert split[1] == 'example.com'
69
69
 
70
- def test_multiple_hostnames(self, hosts_file_reader):
70
+ def test_multiple_hostnames(self, hosts_file_manager):
71
71
  line = '0.0.0.0\texample.com example2.com example3.com # Comment'
72
- split = hosts_file_reader._HostsFileReader__split_hosts_line(line)
72
+ split = hosts_file_manager._HostsFileManager__split_hosts_line(line)
73
73
 
74
74
  assert split[0] == '0.0.0.0'
75
75
  assert split[1] == 'example.com'
@@ -1 +1 @@
1
- 1.2.3
1
+ 1.2.3
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: stoobly-agent
3
- Version: 1.3.0
3
+ Version: 1.4.0
4
4
  Summary: Record, mock, and test HTTP(s) requests. CLI agent for Stoobly
5
5
  License: Apache-2.0
6
6
  Author: Matt Le
@@ -1,11 +1,11 @@
1
- stoobly_agent/__init__.py,sha256=pBJnahl3uuwrh8cQ3dATcVYEyoC7nYTZCn3HqojNHZY,44
1
+ stoobly_agent/__init__.py,sha256=Gxrndj7ajhTOnpDStd-1lwXSm8fcRw31xdLLWBS2qqQ,44
2
2
  stoobly_agent/app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
3
  stoobly_agent/app/api/__init__.py,sha256=ctkB8KR-eXO0SFhj602huHiyvQ3PslFWd8fkcufgrAI,1000
4
- stoobly_agent/app/api/application_http_request_handler.py,sha256=jf4fkqjOiCeI2IM5Ro7ie0v_C6y0-7-5TIE_IKMPOfg,5513
4
+ stoobly_agent/app/api/application_http_request_handler.py,sha256=ZgCfmdr5um-OFAiuRHdBxFqPIeph9WqYkVg-oVQWw-E,5543
5
5
  stoobly_agent/app/api/bodies_controller.py,sha256=TmN82Q7OFjWiIszwUzfYHQqsqCwLLrThXcIfQmNgvTo,2285
6
6
  stoobly_agent/app/api/configs_controller.py,sha256=wkO3_9cexH7BKwm_2KflKEEdxvBFwc9vju_wouUjjBI,4692
7
7
  stoobly_agent/app/api/headers_controller.py,sha256=3o2phGKecxJ--pjiZ6-L7kpVMvr8ZP-P5Mxc-J-o_hg,2781
8
- stoobly_agent/app/api/proxy_controller.py,sha256=Sd-FSbSqQcfPKNwyokgvBIuXpJgy9E_kPb0HahcpkX4,4835
8
+ stoobly_agent/app/api/proxy_controller.py,sha256=XMGk8-5WAdJS1_n5Li0aA7-q_3vDG4Q0pqLq4YVzsDg,5056
9
9
  stoobly_agent/app/api/query_params_controller.py,sha256=y7DMlJgPkACfRoAd2KeCge0Z8Vy9LKDDHj_RnMo28HQ,3640
10
10
  stoobly_agent/app/api/replayed_response_headers_controller.py,sha256=0rdNlw74L5KsQxKJyKUf_lfoxoh82xKkJ7m1Nmz_3sM,1768
11
11
  stoobly_agent/app/api/replayed_responses_controller.py,sha256=bPd8MmS1mT1uuWoJ6uhJQk_dafISDGhH8yIyEjCRCvw,3435
@@ -18,7 +18,7 @@ stoobly_agent/app/api/simple_http_request_handler.py,sha256=ZdJ4kKEcPDpck74dJu--
18
18
  stoobly_agent/app/api/statuses_controller.py,sha256=gQsl28h-3mZ_bByEHpc4mRy3KFvUz5PeAgVB0cPx_Ao,1791
19
19
  stoobly_agent/app/cli/__init__.py,sha256=uS4KJgMAhm0JVnEUC-ONW-Bq6A8I9v7Fk-_Ka7gXlrU,470
20
20
  stoobly_agent/app/cli/ca_cert_cli.py,sha256=QXl01nyCQLhiGr8vozZicui36AlgHU1q_V9c_w_xY-Q,1444
21
- stoobly_agent/app/cli/config_cli.py,sha256=vgik4PwqKdq1cQ4BvmeyXTmh-LQZpe2PUkNIqblzP2E,15658
21
+ stoobly_agent/app/cli/config_cli.py,sha256=Ljr2Ir8P0dhGXALQQcq7fwthrcipPlvxS2G_0bNE6fY,15727
22
22
  stoobly_agent/app/cli/decorators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
23
  stoobly_agent/app/cli/decorators/config.py,sha256=AWrDGZm_gjCWFYlRwdla3iE6H7OSlM4FxkaXRNovBZA,2428
24
24
  stoobly_agent/app/cli/decorators/exec.py,sha256=170tkugOHBb6Pe3AzgDSfoQ1n7ntcah7JVZz-G5cSYU,994
@@ -28,7 +28,7 @@ stoobly_agent/app/cli/feature_cli.py,sha256=d-MUTbK3gbZxZNJUjM43fioZyhPyzetQNKjI
28
28
  stoobly_agent/app/cli/handlers/request_cli_handler.py,sha256=IPToK9OfiDda-mkq8HpiSSqK2m-UR15-8f8LVoLAHTA,6965
29
29
  stoobly_agent/app/cli/handlers/scenario_cli_handler.py,sha256=1KSsfhR1mmPUCmhjzWTjf_L9NcQglLvVK3KURrPt92A,7425
30
30
  stoobly_agent/app/cli/helpers/__init__.py,sha256=26ODsQi5NoJPwq4Ya7_lmtRalhhXOr_jfdZQWGLy6Gc,161
31
- stoobly_agent/app/cli/helpers/certificate_authority.py,sha256=xLfZR5CdyrwOqxInviy6Fd4uZEOgh_u6HQQI9zDhThc,7194
31
+ stoobly_agent/app/cli/helpers/certificate_authority.py,sha256=j43f8W0A5lrNOIdB7QJQAVRCDP9ri4SpUZuT4XfI5v0,7374
32
32
  stoobly_agent/app/cli/helpers/context.py,sha256=Jv97ueNnqea5UDm57VOUiQSHKWBeNlCcrq5-qW2tcwQ,1624
33
33
  stoobly_agent/app/cli/helpers/endpoint_facade.py,sha256=_1TR9PcRnqpl9Q4njFHMM_Btqpr6cCf757FFcywa3oU,2318
34
34
  stoobly_agent/app/cli/helpers/endpoints_apply_context.py,sha256=PvUzJLXNKl6wIQj2q8YZK1MAm1yqzDLLlpCYMoyWb9I,1831
@@ -43,7 +43,7 @@ stoobly_agent/app/cli/helpers/handle_test_service.py,sha256=nlso1XXjPKoPayN13FXs
43
43
  stoobly_agent/app/cli/helpers/iterate_group_by.py,sha256=oN9JC58LHLiElQC0M6JdjBAVlqIEwoBmNJuSJyIs-cI,3099
44
44
  stoobly_agent/app/cli/helpers/json_print.py,sha256=E7UOcxtzGCv8_GCsz0Wos1XP5RhhM-ndS5dc0ZKtHtY,735
45
45
  stoobly_agent/app/cli/helpers/openapi_endpoint_adapter.py,sha256=MdQ13yVkK7ygVh6D0WHWQoq6zOoEtCvTjOKEygMBWAk,21909
46
- stoobly_agent/app/cli/helpers/print_service.py,sha256=Z3m-O2aj3oETTm06h_XScgxJAfulTHlEyhOCoE10VG4,4185
46
+ stoobly_agent/app/cli/helpers/print_service.py,sha256=uuh1mjKpS3_Mk8WuIVPp2cmQAevyS6cTPILnqOmzE_s,4619
47
47
  stoobly_agent/app/cli/helpers/project_facade.py,sha256=rThwVur2clCCBcHa-U4_vGynj0miKv78B3uF6ZRmBSQ,1905
48
48
  stoobly_agent/app/cli/helpers/replay_facade.py,sha256=0Saxae9HN-cdwrelJXz89X139M9bz9hY8_9hERgxjB4,3730
49
49
  stoobly_agent/app/cli/helpers/report_facade.py,sha256=LO2SURvjkzqhbGx_Jaei8I-o7eXF7QKq6lWewBkQ9Qc,1056
@@ -67,13 +67,13 @@ stoobly_agent/app/cli/project_cli.py,sha256=EXjeLjbnq9PhfCjvyfZ0UnJ2tejeCS0SIAo3
67
67
  stoobly_agent/app/cli/report_cli.py,sha256=ZxJw0Xkx7KFZJn9e45BSKRKon8AD0Msrwy1fbPfbv0c,2543
68
68
  stoobly_agent/app/cli/request_cli.py,sha256=THNloW111l9MLE0oPg4y7hVXL1U7OXoz760g0A1CtJ0,7747
69
69
  stoobly_agent/app/cli/scaffold/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
70
- stoobly_agent/app/cli/scaffold/app.py,sha256=qrafaQc6rCN-s6MEXAbV4u2GPQ7YAKa_ssyR9t1sO6M,3427
70
+ stoobly_agent/app/cli/scaffold/app.py,sha256=umY7kgZb6xvwO1XxAV3zmgjW6xyLnAbKkM7oh4Dk7uk,3441
71
71
  stoobly_agent/app/cli/scaffold/app_command.py,sha256=qtOdG08ehdRk1wujiTL7LCQXoJkGpwExepO2qYBXBNA,2027
72
72
  stoobly_agent/app/cli/scaffold/app_config.py,sha256=Gs-BynV1vY7_PpTOenn2mqc7lBIu0vBx6as9vtEU1sk,818
73
73
  stoobly_agent/app/cli/scaffold/app_create_command.py,sha256=sy4017eiir9MK0TEbTi1NyG9mhOGlenGGVnq0GsGUrQ,966
74
74
  stoobly_agent/app/cli/scaffold/command.py,sha256=aoTsdkkBzyu7TkVSMdNQQGk0Gj874jNgFcjR14y3TuM,254
75
75
  stoobly_agent/app/cli/scaffold/config.py,sha256=HZU5tkvr3dkPr4JMXZtrJlu2wxxO-134Em6jReFFcq0,688
76
- stoobly_agent/app/cli/scaffold/constants.py,sha256=3PoMOnmYtvrFMiSmf1A1ktMuPaZncWxRbSAp-WrSsdg,2191
76
+ stoobly_agent/app/cli/scaffold/constants.py,sha256=5NCOjS2bzGT96iNfIbIbCgJf4yTAfSrHkbcieXz12Vs,2064
77
77
  stoobly_agent/app/cli/scaffold/docker/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
78
78
  stoobly_agent/app/cli/scaffold/docker/app_builder.py,sha256=7z5pk5JKlRDHx2USxY-WurttLyyUkIVYfl34_u1x9dE,501
79
79
  stoobly_agent/app/cli/scaffold/docker/builder.py,sha256=OE7r8vEdEkW3vwpmIctePiO0S5jvao5zMJNpxc-Yayw,2851
@@ -91,19 +91,19 @@ stoobly_agent/app/cli/scaffold/docker/workflow/development_decorator.py,sha256=c
91
91
  stoobly_agent/app/cli/scaffold/docker/workflow/mock_decorator.py,sha256=V9y4RIyEIT8SiGm3U9OcmU1dr22wqpbSbGO_Z2EMYEI,1197
92
92
  stoobly_agent/app/cli/scaffold/docker/workflow/reverse_proxy_decorator.py,sha256=s1l99Y-2h-sSLVtPhcgaa1YRTbSvb6QdgaUeBLHYc4w,1804
93
93
  stoobly_agent/app/cli/scaffold/env.py,sha256=e-Ve4p3RUgzFx22B3SIYttvJ_yLuDtA27oDACZ8n-6E,1140
94
- stoobly_agent/app/cli/scaffold/hosts_file_reader.py,sha256=gYkkrOlY7QG2JNsET6DKq4djrQAH0UGJtTkF7UwYT5o,1748
94
+ stoobly_agent/app/cli/scaffold/hosts_file_manager.py,sha256=rr1RjO4920kmuhyvdPnLPY8WbQqk7qKZu_UCnSR0yaI,3421
95
95
  stoobly_agent/app/cli/scaffold/managed_services_docker_compose.py,sha256=-wLBXUi7DCWsfm5KzZzd_kdJKOTl1NT924XR7dyjbSY,574
96
- stoobly_agent/app/cli/scaffold/service.py,sha256=YM_thxXI5JfRT-e67V0doX_olEaXJTNLA6oDI6fIlCk,513
96
+ stoobly_agent/app/cli/scaffold/service.py,sha256=L9K6QE0k5KSEC8_fSwtdwwTSO_DsIpqSPW-AG7Bg76o,501
97
97
  stoobly_agent/app/cli/scaffold/service_command.py,sha256=9kIKiFC5Jo425VWYD4NDvUOdMP-pNyq2D5Ip1ZAPj3A,1054
98
- stoobly_agent/app/cli/scaffold/service_config.py,sha256=XFwTgf1JTfVVWmVyGTIadtfxSoPaoUV-70l3lAtSCzU,3485
98
+ stoobly_agent/app/cli/scaffold/service_config.py,sha256=SRtBxdLLa4omAd0JaXsPoyAUu9_PdJ4aVxZOiFMMH8o,3275
99
99
  stoobly_agent/app/cli/scaffold/service_create_command.py,sha256=bmLGgx9qnh-X_i2_XfdWSQIer0gGkaQx6lXZSIzy-LI,2793
100
100
  stoobly_agent/app/cli/scaffold/service_delete_command.py,sha256=_nBDQjm8eL62MQpzSCxgUHlW04ZXKG8MDlN1BXxlqww,986
101
101
  stoobly_agent/app/cli/scaffold/service_docker_compose.py,sha256=OMUN1-ujQYIZXxDvS4XBf5C9wGalQULkwOiBBQPZbHY,820
102
102
  stoobly_agent/app/cli/scaffold/service_workflow.py,sha256=sQ_Edy_wGHKMXpD0DmhnOWkGEKz7gSgEGNI8f7aXOdg,444
103
- stoobly_agent/app/cli/scaffold/service_workflow_validate_command.py,sha256=c_ObTOjOkcHJNoZ_69Ni_sSvAA8ZCneYwlpXxjZlaVo,9943
103
+ stoobly_agent/app/cli/scaffold/service_workflow_validate_command.py,sha256=hF3c6cFRaKH01BfwdrCJdX8SEbsfD5CCG8W_yZU4FK4,9948
104
104
  stoobly_agent/app/cli/scaffold/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
105
- stoobly_agent/app/cli/scaffold/templates/app/.Dockerfile.context,sha256=UXQD9W-XdNl_uwwyfu1OgZ2whb0FRZMDxrpAkjRdrG0,158
106
- stoobly_agent/app/cli/scaffold/templates/app/.Makefile,sha256=NFfm_-53R37ntyT6gRNNhVldqzyGY27yWpdCJLoIDMs,6223
105
+ stoobly_agent/app/cli/scaffold/templates/app/.Dockerfile.context,sha256=PRNYTWYYcLfcyrZ5h5u2I7dAJdeFmmxRFpAj_8243Bw,158
106
+ stoobly_agent/app/cli/scaffold/templates/app/.Makefile,sha256=Ksv3AHFbeImm2vVfjzxAF4JWEnl_YmQCR-UxxM-l2Pg,7594
107
107
  stoobly_agent/app/cli/scaffold/templates/app/.docker-compose.base.yml,sha256=YblNDTUPndYNxupgZ3X8RP6NS4c0u_QwLklyWrpq_qs,295
108
108
  stoobly_agent/app/cli/scaffold/templates/app/Makefile,sha256=TEmPG7Bf0KZOnmfsgdzza3UdwcVMmM5Lj1YdLc4cgjA,79
109
109
  stoobly_agent/app/cli/scaffold/templates/app/build/.config.yml,sha256=8Wt8ZZ5irvBYYS44xGrR_EWlZDuXH9kyWmquzsh7s8g,19
@@ -159,6 +159,7 @@ stoobly_agent/app/cli/scaffold/templates/app/stoobly-ui/exec/bin/.list,sha256=Bd
159
159
  stoobly_agent/app/cli/scaffold/templates/app/stoobly-ui/exec/bin/.logs,sha256=k-2a3p6LL8QOnU6o240g6an8tVhJeztR3ZsNoI5G2wc,211
160
160
  stoobly_agent/app/cli/scaffold/templates/app/stoobly-ui/exec/bin/.mkcert,sha256=vyHaXmvy-7oL2RD8rIxwT-fdJS5kXmB0yHK5fRMo_cM,46
161
161
  stoobly_agent/app/cli/scaffold/templates/app/stoobly-ui/exec/bin/.reset,sha256=_pvbLk-ektsCHEh_egDtd6c0sVqCPunwUWggarfoli0,238
162
+ stoobly_agent/app/cli/scaffold/templates/app/stoobly-ui/exec/bin/.services,sha256=sAbaKzBxNDXimyUNinB_a2Kt47vUCa0Kd3Z1QAp2GrU,161
162
163
  stoobly_agent/app/cli/scaffold/templates/app/stoobly-ui/exec/bin/.snapshot,sha256=Kav1QNhKG7f0DBzc4-9dmxZMmmVTxmPqakT_W4kVYKk,241
163
164
  stoobly_agent/app/cli/scaffold/templates/app/stoobly-ui/exec/bin/.up,sha256=MZbIZpLlKpn-8jMFIFeIw6lfd8mc8A8GMONP-UOYwMI,267
164
165
  stoobly_agent/app/cli/scaffold/templates/app/stoobly-ui/mock/.docker-compose.mock.yml,sha256=FnCn64DjxyAiB2P_1JUwFmXslMR961nVZHkYiEXytlg,232
@@ -189,14 +190,14 @@ stoobly_agent/app/cli/scaffold/validate_exceptions.py,sha256=Jtjl4OkbbSRWm0hy7Kf
189
190
  stoobly_agent/app/cli/scaffold/workflow.py,sha256=KlbWT9CIo9EpZxKU1WVZtmodhxK7CpmLUHPNk4Mh6DA,1570
190
191
  stoobly_agent/app/cli/scaffold/workflow_command.py,sha256=NjLxmkAtv-WjcDi9Sa35GLr0PVQXOP2CcecCslC_3-U,3295
191
192
  stoobly_agent/app/cli/scaffold/workflow_copy_command.py,sha256=R9hh5dWVz7vGld7pENAA_a9gW56EkgG2K35nBQYXwyI,1462
192
- stoobly_agent/app/cli/scaffold/workflow_create_command.py,sha256=5xnRYrVb2KlSDARZFjLGGWeURXRu63OHoRLEhO-EAvw,3401
193
+ stoobly_agent/app/cli/scaffold/workflow_create_command.py,sha256=I38eH_alLA4i4Sqw072C38IGTPtPewGdteJNGG1R10o,3384
193
194
  stoobly_agent/app/cli/scaffold/workflow_env.py,sha256=x8V5pJmIiklD3f2q2-qq-CORf4YaXYq_r2JpR2MmSwk,416
194
195
  stoobly_agent/app/cli/scaffold/workflow_log_command.py,sha256=Bke4lMOMxuDUFuAx9nlXHbKgYMO4KAg9ASHvjz4aVWc,1372
195
- stoobly_agent/app/cli/scaffold/workflow_run_command.py,sha256=PYHZka-AV_1h8KELw1HO6Jpi61z8gdjEyauA1RMF1eY,9671
196
+ stoobly_agent/app/cli/scaffold/workflow_run_command.py,sha256=DJNyhPrvvZgOwFnPKi5Z3VdrAWfaZW_XbGfgFcnh5QM,9608
196
197
  stoobly_agent/app/cli/scaffold/workflow_validate_command.py,sha256=fhHciJXg_u32Wmh8us8LhgQj8D1SxkBADtuBBF4K0FM,4377
197
- stoobly_agent/app/cli/scaffold_cli.py,sha256=VWMh8R7l21GVF8YrlmA7iygt4zKjphCCLgL0Kip56XM,20956
198
+ stoobly_agent/app/cli/scaffold_cli.py,sha256=hlpAaPIPEDxKwU1KiKVMln0FhwN3oOnmuJrJwYDDoy8,25586
198
199
  stoobly_agent/app/cli/scenario_cli.py,sha256=3J1EiJOvunkfWrEkOsanw-XrKkOk78ij_GjBlE9p7CE,8229
199
- stoobly_agent/app/cli/snapshot_cli.py,sha256=yYxw3_ZpdkfQZ6CdIXeiLjteqYFTQyWemLkfJMzVxKU,10045
200
+ stoobly_agent/app/cli/snapshot_cli.py,sha256=cpCjxFYBuVwLuq_b2lIUu-5zWqupRlrp4xWgDytirSM,10047
200
201
  stoobly_agent/app/cli/trace_cli.py,sha256=K7E-vx3JUcqEDSWOdIOi_AieKNQz7dBfmRrVvKDkzFI,4605
201
202
  stoobly_agent/app/cli/types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
202
203
  stoobly_agent/app/cli/types/output.py,sha256=2wazv56g5IwLQeJCWfJXXAxTB9Y5WH1cKMHbpjbXNeo,439
@@ -299,9 +300,9 @@ stoobly_agent/app/proxy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG
299
300
  stoobly_agent/app/proxy/constants/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
300
301
  stoobly_agent/app/proxy/constants/custom_response_codes.py,sha256=1CaApt_6W7GrxvN8_Ozbf_SEodVEQaNZRR2sMYpI0U8,40
301
302
  stoobly_agent/app/proxy/context.py,sha256=XLteUEP8T8aT0hHI_jHDaL2382OaC7QyVwlni5_FS9U,456
302
- stoobly_agent/app/proxy/handle_mock_service.py,sha256=UWEfPyg4nQgrN2LTMleeR7ucM6-RuI2IfzHPP1f05u4,7465
303
+ stoobly_agent/app/proxy/handle_mock_service.py,sha256=jdznZNsg0ZUJhTCNIChxgeHmp7ajFB5EvE5Th752IC4,7563
303
304
  stoobly_agent/app/proxy/handle_record_service.py,sha256=KYygWIvonyS_14XO_bZ-cPVC8tCSbbErciE399o013Y,3346
304
- stoobly_agent/app/proxy/handle_replay_service.py,sha256=zBsDnmibMZtYUoi9y6co6Ou5-JYHVrKiWnsJKHSkKtk,1795
305
+ stoobly_agent/app/proxy/handle_replay_service.py,sha256=_9zeDfvupN8dHugmEHs48gS5_z0Bqfn33HaSAwi8GCc,1835
305
306
  stoobly_agent/app/proxy/handle_test_service.py,sha256=nGoE2m3lfDYVs3_k-_wOXCmmf27vz99pwlsIhMxDu9I,5732
306
307
  stoobly_agent/app/proxy/hot_reload.py,sha256=bcxdN0WM5l7_zY2XYLV2wF7xCpGdZILi4dVsjqAVgig,983
307
308
  stoobly_agent/app/proxy/intercept_handler.py,sha256=Wv5oOfQHatDwnQX9zbIRNgWWAQHgvcPC-GsmBdQNDlc,4338
@@ -310,9 +311,10 @@ stoobly_agent/app/proxy/mitmproxy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeR
310
311
  stoobly_agent/app/proxy/mitmproxy/flow_mock.py,sha256=YxQV3pXIzicvLOCFn7zmnSoAstAmR8fzONYOXAkYbT4,1153
311
312
  stoobly_agent/app/proxy/mitmproxy/request.py,sha256=niy38718CAe4Li4k40GXnWDDmUTCPkXesDZTaC8BeLc,878
312
313
  stoobly_agent/app/proxy/mitmproxy/request_body_facade.py,sha256=kMJ8YH2FKW9qV68QcUbOCLfiGgKrFV5krzt7usGf0as,649
313
- stoobly_agent/app/proxy/mitmproxy/request_facade.py,sha256=9wdxBsGqP8jN7GRRFmVymK4rhHllCvc9RjCI5Eanik0,8416
314
+ stoobly_agent/app/proxy/mitmproxy/request_facade.py,sha256=2BKWykpt5ihfaVDxyg9dy3HDpJcNCCu-4o77ztvUPwU,8417
314
315
  stoobly_agent/app/proxy/mitmproxy/response.py,sha256=BFaJlB1D98EOjrc-kUmunUCTUuiZsPDqq2QgAHDocQI,339
315
- stoobly_agent/app/proxy/mitmproxy/response_facade.py,sha256=NsNH0aW-mMfLcUXB-Wt9wH5cDyw_4ezdddtCWPHr5hQ,1209
316
+ stoobly_agent/app/proxy/mitmproxy/response_body_facade.py,sha256=vIu6cuCSiZDocvnMNyi0Zjf0qsC0enm2Glp671eWnb4,659
317
+ stoobly_agent/app/proxy/mitmproxy/response_facade.py,sha256=bUlCpFIjuHccAMD2TbWRSpz7H6_PUYuz99JSTlc4AfU,4360
316
318
  stoobly_agent/app/proxy/mock/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
317
319
  stoobly_agent/app/proxy/mock/context.py,sha256=vDo5_3WBL73mVFnsmQWvcxvPg5nWtRJbigSrE3zGc-o,794
318
320
  stoobly_agent/app/proxy/mock/custom_not_found_response_builder.py,sha256=Bwy7qsPzcIUw5FTaUGeaOnsTneuCCbGkTJU-wsmN3NE,415
@@ -325,7 +327,7 @@ stoobly_agent/app/proxy/mock/search_endpoint.py,sha256=HDN3tIkPnlgmkt-BbZDz7iwac
325
327
  stoobly_agent/app/proxy/mock/types/__init__.py,sha256=r4Zwqx6V5HHZwrcYWEv6xSXG0nXaN5FqxqCm0d3U-GM,150
326
328
  stoobly_agent/app/proxy/record/__init__.py,sha256=lbW-G6DZ8IrRpRzvgt-1tn2cRuyLT744u9ERIrZ2dFI,233
327
329
  stoobly_agent/app/proxy/record/context.py,sha256=L9tykwoB35hOPHft3IHSPjuJ2v3TSj9SQAJ9E1q-U_4,343
328
- stoobly_agent/app/proxy/record/join_request_service.py,sha256=Cz34NWBHBIRhHGtfdgnuhTYLPfWPWx6R_mSqljPGr7k,1307
330
+ stoobly_agent/app/proxy/record/join_request_service.py,sha256=zDvB2vhM_SpqE3lwuZ6KUjyM_KfbkpLAmJI9dFSXycQ,1318
329
331
  stoobly_agent/app/proxy/record/joined_request.py,sha256=va79Pkz5RWACJn07ipV_FtVmGUzjSlqhfUu_amw9bX8,1553
330
332
  stoobly_agent/app/proxy/record/overwrite_scenario_service.py,sha256=3em2a2ry4MrE30XlAukat-l3L9cu4o13Cxhi6BBUgkc,940
331
333
  stoobly_agent/app/proxy/record/proxy_request.py,sha256=6DqQ2KH7AtfvXg5HNDWwvwgjO7x1QrWDYgJOBMWPKqs,418
@@ -381,7 +383,7 @@ stoobly_agent/app/settings/constants/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeu
381
383
  stoobly_agent/app/settings/constants/firewall_action.py,sha256=DszoKKcZ444zqE6p7zl8arUYfUNKy2hysxcQhipjQs0,111
382
384
  stoobly_agent/app/settings/constants/intercept_mode.py,sha256=0ZdREDdhpEulSrEKuTyn2zqQ9o5P4Fg32I-5-q9klcU,127
383
385
  stoobly_agent/app/settings/constants/mode.py,sha256=fNyRc5yYr-cfI4z-4ykEXE1F2JEcmQYQI1Wy78WZQYE,67
384
- stoobly_agent/app/settings/constants/request_component.py,sha256=1LI-pEL2kZrJe_Y_n7Qi33hm81YFE4YG0jKLWsn7Vz0,211
386
+ stoobly_agent/app/settings/constants/request_component.py,sha256=NRiK-BXl52sSOTIPUjZGorSQLY1-uz_h8caVvAqVxTY,264
385
387
  stoobly_agent/app/settings/data_rules.py,sha256=gepg_Nbv648_aYevDb5U1rfjvw2JVpLbybRRaX_Vl0E,2211
386
388
  stoobly_agent/app/settings/data_settings.py,sha256=7xUjrQn1uNCh72FNDcNFzGuM-2e_QOdp3qDXQjW8fCY,703
387
389
  stoobly_agent/app/settings/feature_settings.py,sha256=6Xb7TkQDJLTUjTzmQK1LZ-Xuk3a-LGv6sXEhU1CG5Ls,1089
@@ -407,9 +409,9 @@ stoobly_agent/cli.py,sha256=4WLcWPHWdv5dZEitXtDj6_I5AH5WVvQqE_uDe6bPEno,9906
407
409
  stoobly_agent/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
408
410
  stoobly_agent/config/constants/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
409
411
  stoobly_agent/config/constants/alias_resolve_strategy.py,sha256=_R1tVqFnyGxCraVS5-dhSskaDj_X8-NthsY7i_bEt9M,119
410
- stoobly_agent/config/constants/custom_headers.py,sha256=90qrR2DeaoPQvxCBf_QLVFrD1V4TL8PjO3taiSXxbCI,1181
412
+ stoobly_agent/config/constants/custom_headers.py,sha256=IJZzZN77ZpbTr62EkXatm1r-I1_i4HEErO_LlQZLRU0,1279
411
413
  stoobly_agent/config/constants/env_vars.py,sha256=HAR_ZIdXXbpWQgCDaRR5RtpVyGXCsMLr_Fh8n6S12K0,1344
412
- stoobly_agent/config/constants/headers.py,sha256=fm5FxKroCpNHTaKMjrIO4npNmT-eAUplXt_ix0N5Ruo,223
414
+ stoobly_agent/config/constants/headers.py,sha256=Hfv7R8_NPXAGaMiZPqywGZDnr0qcVUyfenPb4g465rE,169
413
415
  stoobly_agent/config/constants/lifecycle_hooks.py,sha256=aobclZmcND_mUnFKkUgpxgwd5EU3pjgAvB-NFf2dCgE,846
414
416
  stoobly_agent/config/constants/mitmproxy.py,sha256=AhaxRGMb7OC4DBqNvyBP0OVQSByCeA-itefzmMoIS14,116
415
417
  stoobly_agent/config/constants/mock_policy.py,sha256=KrRVPJYRSb0hIH9fjAV9aQ8OsnhnYo9l7dylug62YVg,41
@@ -536,8 +538,8 @@ stoobly_agent/public/16-es2015.98fa59c2c96d2caac3c3.js,sha256=UT1Osw9eIQrw_DY78E
536
538
  stoobly_agent/public/16-es5.98fa59c2c96d2caac3c3.js,sha256=PvGoSIj08MWxsyrzxrEEjcVFES8Dxz4oys-7WSvScYc,40776
537
539
  stoobly_agent/public/17-es2015.7f60b56d1fd66d4d5544.js,sha256=JSDKvjqd2vCG2QXnSthxBZWxDiRpAyQh8HbnyQUHsQE,93859
538
540
  stoobly_agent/public/17-es5.7f60b56d1fd66d4d5544.js,sha256=QTLvq9pTwfA4biWhGParTNYqrGJ_Q7PLzTxotH7DO8o,99561
539
- stoobly_agent/public/18-es2015.d3b430636a4d6f544d92.js,sha256=z8zOFCfFqPPK6um8MBthHr3xqugumahcA_mF2iW1zLg,226015
540
- stoobly_agent/public/18-es5.d3b430636a4d6f544d92.js,sha256=J6KgixdRZN6CzVFTOJWX0DVdShcPvnZEsnlauOZ8Vyk,230658
541
+ stoobly_agent/public/18-es2015.583f191cc7ad512ee262.js,sha256=cpF7BZIFd1bun78PQaA-W3TLfB6el3Lsp8Ej_Op7G2o,226056
542
+ stoobly_agent/public/18-es5.583f191cc7ad512ee262.js,sha256=5TJjtnQvtWYJJaczNRwOCsUViN-ZsMuMVHL7bDm03S4,230699
541
543
  stoobly_agent/public/19-es2015.78ec0e9fd228b5104712.js,sha256=_zAPIlDzePQzObhI3ZTJkos1PCpo9oTihpKP32vq8XM,50596
542
544
  stoobly_agent/public/19-es5.78ec0e9fd228b5104712.js,sha256=pW2C1WTXYw2sbGXOf-R8j7erruLi_vgX5NCnr-NRz1c,53473
543
545
  stoobly_agent/public/2-es2015.51eb8544ea9a21f2874c.js,sha256=9mfdispLMBfibZJKNVb8yLQC2oo_k2hl5FCLP9ex8vI,23146
@@ -564,8 +566,8 @@ stoobly_agent/public/33-es2015.da5ba1e5baa164921198.js,sha256=-BNSVIBS3zLv96qWz3
564
566
  stoobly_agent/public/33-es5.da5ba1e5baa164921198.js,sha256=lqUjYoz06ltYD3HGOqLlcY4RbfmwmMGCa9W895duMrY,37364
565
567
  stoobly_agent/public/34-es2015.87acbb95cfb824650157.js,sha256=NcF3df4l4YnokHotYPRDLtbrpavMeZTOm5PweNaAJ7g,96972
566
568
  stoobly_agent/public/34-es5.87acbb95cfb824650157.js,sha256=C851uEe4_kJpsPG5PPeoDnhUW-0uoJTAYvgU2idOJyU,99259
567
- stoobly_agent/public/35-es2015.f741ebce0bfc25f0ec99.js,sha256=mIqbovDr-nc9dDYN4RCJSpSEKE1patWY5laAHILqe7w,187120
568
- stoobly_agent/public/35-es5.f741ebce0bfc25f0ec99.js,sha256=xeZ33gWHr5vY7xeTpirOyyRhxowD3UPwT6M0jbQ8Gxo,191443
569
+ stoobly_agent/public/35-es2015.8f79ff8748d4ff06ab03.js,sha256=feVitSPEn7eRy1H3fu865nAZVvu5aYTiZOjqKEgCCGU,187499
570
+ stoobly_agent/public/35-es5.8f79ff8748d4ff06ab03.js,sha256=7eRs2Ga0lZo7ygFUROdrI5YSsnDlP_TpZkw0XpGtQu4,191822
569
571
  stoobly_agent/public/36-es2015.e3a104020eeec02cb8c4.js,sha256=WQgISJKDEXNXcr9Wv--7iUpw6eC_9wit0IXha4JShls,79154
570
572
  stoobly_agent/public/36-es5.e3a104020eeec02cb8c4.js,sha256=xirhOd1ruj09LsZJoWqt76WZ5so7xUy9s30ZmfVPkQk,81129
571
573
  stoobly_agent/public/37-es2015.3b472e6cf303201bbf2c.js,sha256=FdGpZp-QnsDMKN7FDakZffqK8IXxVVrEECH4w63NWCs,161925
@@ -629,13 +631,13 @@ stoobly_agent/public/assets/img/logo/white.svg,sha256=qUSVIlslmQRkZNQkL6JXhK_rRo
629
631
  stoobly_agent/public/common-es2015.388805227aa99c527fba.js,sha256=VLCjAWJr277Jc0n8V5_4suShUYTflO2KLgGXWjz5fpU,7080
630
632
  stoobly_agent/public/common-es5.388805227aa99c527fba.js,sha256=8DJYZ8fNUrpcb6WCfHgqgnMU3aP0s5lCyskBnLTUeM4,8183
631
633
  stoobly_agent/public/favicon.ico,sha256=duQa4tOX0GPI3u4cEBO5Bt124EWpvymGQDqPfy0LtkM,15086
632
- stoobly_agent/public/index.html,sha256=5xil0tBMINgAxFOP06Zlvs-AVbhShheAZg7hR8zu4NM,11355
633
- stoobly_agent/public/main-es2015.ccd46ac1b6638ddf2066.js,sha256=GRQuPTyh8nBkNvA9o_fRCDpb39HN2OmOQy5vE8-Nobk,1423108
634
- stoobly_agent/public/main-es5.ccd46ac1b6638ddf2066.js,sha256=T_51Ov_gGijj37Oa9B9lWsMrOtsNeNMBW3wu-FMcpvs,1570902
634
+ stoobly_agent/public/index.html,sha256=XysPDBjLlqah-X01KOMgIHFe1X3g3-ibhYvtZJdxOYg,11355
635
+ stoobly_agent/public/main-es2015.2cc16523aa3fcaba51e5.js,sha256=MMBLuCVUJ0eClxKrpoXN8fNFnr_2tz59Tz_KXYOTcRw,1423241
636
+ stoobly_agent/public/main-es5.2cc16523aa3fcaba51e5.js,sha256=uNoPzOM8xmG6O0rmEj-vMCfCLr0WBMs8o9mrJHDGZQs,1571088
635
637
  stoobly_agent/public/polyfills-es2015.8ce2adc69f283f6c4c5e.js,sha256=SDAz_6WyDiolzuBD-6ZCspWeXeR5gFDvSxFAdihJ3vk,37168
636
638
  stoobly_agent/public/polyfills-es5.7530172ddcec11a10eb3.js,sha256=lue-PFE_AvHlq5HJFPUTUWxayp4_3Ktdg8KwaJQuug4,132015
637
- stoobly_agent/public/runtime-es2015.9addf49b79aca951b7e2.js,sha256=_xgeicwQKtUNtTkxpEv4lHWk0q43zTWeLHvacSKb1v0,3379
638
- stoobly_agent/public/runtime-es5.9addf49b79aca951b7e2.js,sha256=P23DBu4G1mEkJuZVWajGTD9-N-kwx20udATTJP0DAFo,3376
639
+ stoobly_agent/public/runtime-es2015.b914470164e4d6e75d96.js,sha256=b8qfJZaTnQYsUpITTyJGAjJoz8X6dGbjS0PmhSnKBbE,3379
640
+ stoobly_agent/public/runtime-es5.b914470164e4d6e75d96.js,sha256=-fZzEph9Vd9VxQwIocep1Noskq2YyghdxFNypTMwjTI,3376
639
641
  stoobly_agent/public/styles.ab281309cf423b2cdcb0.css,sha256=3R9PubCATNJBMZC6bL9IiwQQdennG6uXctnMYKfSw-0,173756
640
642
  stoobly_agent/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
641
643
  stoobly_agent/test/app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -666,7 +668,7 @@ stoobly_agent/test/app/cli/request/request_test_test.py,sha256=-cJNXKjgryVVfVt-7
666
668
  stoobly_agent/test/app/cli/scaffold/cli_invoker.py,sha256=_nGDLUsYxqkeqs5DdhvAeXy3IuotpgqKHXKVzu6GDF4,3700
667
669
  stoobly_agent/test/app/cli/scaffold/cli_test.py,sha256=sMNvO845MIu5DVGa1HmwXQDmKDcwrfNTdEb3fK5886w,4557
668
670
  stoobly_agent/test/app/cli/scaffold/e2e_test.py,sha256=fd_LWwkkjMbQQ39hxG0SwrwXeR-_cycT0Bmz3QOzpss,12978
669
- stoobly_agent/test/app/cli/scaffold/hosts_file_reader_test.py,sha256=zGx-fvYTT3N-WS09guOICcRHl8Ann43NHLGTt33FR1s,2279
671
+ stoobly_agent/test/app/cli/scaffold/hosts_file_manager_test.py,sha256=sVFHHYBxzyfRbVIe3gnToQ-6JPy71BCBjdQDnboYzac,2306
670
672
  stoobly_agent/test/app/cli/scenario/scenario_create_test.py,sha256=fGqcjO1_1OvdpUMQfGRVkSyFe61u8WIcp_ndLFrf33A,3962
671
673
  stoobly_agent/test/app/cli/scenario/scenario_replay_integration_test.py,sha256=NbGJzmvPsNLBR0ac65yt_cOTfpnsST1IG7i3F0euwAk,7031
672
674
  stoobly_agent/test/app/cli/scenario/scenario_replay_test.py,sha256=XqR-GDrR8uUtxvukBuIFJ4GsOzBj9WWi4b0VKmfhFyE,6874
@@ -691,7 +693,7 @@ stoobly_agent/test/app/models/factories/resource/local_db/helpers/log_test.py,sh
691
693
  stoobly_agent/test/app/models/factories/resource/local_db/helpers/tiebreak_scenario_request_test.py,sha256=5IFGVGn3ogvRT0fzZgXzhrYlSfSlr8IR1p_XExaegMQ,3399
692
694
  stoobly_agent/test/app/models/factories/resource/local_db/request_adapter_test.py,sha256=Pzq1cBPnP9oSWG-p0c-VoymoHxgp483QmNwmV1b78RA,8453
693
695
  stoobly_agent/test/app/models/factories/resource/local_db/response_adapter_test.py,sha256=9P95EKH5rZGOrmRkRIDlQZqtiLJHk9735og18Ffwpfw,2204
694
- stoobly_agent/test/app/models/schemas/.stoobly/db/VERSION,sha256=xH9bGLikMOaYuf4V5R9hGZhOeDNLzz9F4hDTDDfvL54,5
696
+ stoobly_agent/test/app/models/schemas/.stoobly/db/VERSION,sha256=2C80rpqkG8Sgy1KaGsCJj-0J1rR5-xzETLZsNPFe6E0,6
695
697
  stoobly_agent/test/app/models/schemas/.stoobly/db/stoobly_agent.sqlite3,sha256=ch8gNx6zIelLKQx65gwFx_LRNqUD3EC5xcHZ0ukIQiU,188416
696
698
  stoobly_agent/test/app/models/schemas/.stoobly/settings.yml,sha256=vLwMjweKOdod6tSLtIlyBefPQuNXq9wio4kBaODKtAU,726
697
699
  stoobly_agent/test/app/models/schemas/.stoobly/tmp/options.json,sha256=OTRzarwus48CTrItedXCrgQttJHSEZonEYc7R_knvYg,2212
@@ -728,8 +730,8 @@ stoobly_agent/test/mock_data/scaffold/docker-compose-local-service.yml,sha256=x7
728
730
  stoobly_agent/test/mock_data/scaffold/index.html,sha256=qJwuYajKZ4ihWZrJQ3BNObV5kf1VGnnm_vqlPJzdqLE,258
729
731
  stoobly_agent/test/mock_data/uspto.yaml,sha256=6U5se7C3o-86J4m9xpOk9Npias399f5CbfWzR87WKwE,7835
730
732
  stoobly_agent/test/test_helper.py,sha256=m_oAI7tmRYCNZdKfNqISWhMv3e44tjeYViQ3nTUfnos,1007
731
- stoobly_agent-1.3.0.dist-info/LICENSE,sha256=8QKGyy45eN76Zk52h8gu1DKX2B_gbWgZ3nzDLofEbaE,548
732
- stoobly_agent-1.3.0.dist-info/METADATA,sha256=bt_uMnloOVPMpxtK06lQ4OiE6vD_YL5PTFIaBA8Bm1Q,3384
733
- stoobly_agent-1.3.0.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
734
- stoobly_agent-1.3.0.dist-info/entry_points.txt,sha256=aq5wix5oC8MDQtmyPGU0xaFrsjJg7WH28NmXh2sc3Z8,56
735
- stoobly_agent-1.3.0.dist-info/RECORD,,
733
+ stoobly_agent-1.4.0.dist-info/LICENSE,sha256=8QKGyy45eN76Zk52h8gu1DKX2B_gbWgZ3nzDLofEbaE,548
734
+ stoobly_agent-1.4.0.dist-info/METADATA,sha256=EYX5vmQsiiTpcEDvsRZFDkYtcl7dYUq5onTHR-nAYHo,3384
735
+ stoobly_agent-1.4.0.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
736
+ stoobly_agent-1.4.0.dist-info/entry_points.txt,sha256=aq5wix5oC8MDQtmyPGU0xaFrsjJg7WH28NmXh2sc3Z8,56
737
+ stoobly_agent-1.4.0.dist-info/RECORD,,
@@ -1,65 +0,0 @@
1
- import pdb
2
- import platform
3
- from dataclasses import dataclass
4
- from typing import Union
5
-
6
-
7
- class HostsFileReader():
8
-
9
- @dataclass
10
- class IpAddressToHostnames:
11
- ip_address: str
12
- hostnames: list[str]
13
-
14
- def __get_hosts_file_path(self) -> str:
15
- system = platform.system()
16
- if system == 'Linux' or system == 'Darwin':
17
- return '/etc/hosts'
18
- else:
19
- print(f"Unsupported system: {system}, for hosts file validation, skipping")
20
-
21
- return ''
22
-
23
- # Split IP address and hostnames. Don't include inline comments
24
- def __split_hosts_line(self, line: str) -> list[str]:
25
- ip_addr_hosts_split = line.split('#')[0].split()
26
- return ip_addr_hosts_split
27
-
28
-
29
- # Parses hosts file and returns a mapping of IP address to hostnames in a list.
30
- def get_hosts(self) -> list[IpAddressToHostnames]:
31
- hosts_file_path = self.__get_hosts_file_path()
32
-
33
- if not hosts_file_path:
34
- return []
35
-
36
- with open(hosts_file_path, 'r') as f:
37
- hostlines = f.readlines()
38
-
39
- # Skip comments and empty lines
40
- hostlines = [line.strip() for line in hostlines
41
- if not line.startswith('#') and line.strip() != '']
42
-
43
- hosts = []
44
- for line in hostlines:
45
- ip_addr_hosts_split = self.__split_hosts_line(line)
46
- ip_address = ip_addr_hosts_split[0]
47
- hostnames = ip_addr_hosts_split[1:]
48
- ipAddressToHostnames = self.IpAddressToHostnames(ip_address, hostnames)
49
-
50
- hosts.append(ipAddressToHostnames)
51
-
52
- return hosts
53
-
54
- def find_host(self, hostname) -> Union[IpAddressToHostnames, None]:
55
- hosts = self.get_hosts()
56
-
57
- for mapping in hosts:
58
- if ((mapping.ip_address == '0.0.0.0' or mapping.ip_address == '127.0.0.1') and
59
- hostname in mapping.hostnames):
60
-
61
- return mapping
62
-
63
- return None
64
-
65
-