catocli 1.0.13__py3-none-any.whl → 1.0.15__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.

Potentially problematic release.


This version of catocli might be problematic. Click here for more details.

Files changed (253) hide show
  1. catocli/Utils/clidriver.py +15 -2
  2. catocli/__init__.py +1 -1
  3. catocli/parsers/custom/customLib.py +3 -1
  4. catocli/parsers/mutation_accountManagement/README.md +7 -0
  5. catocli/parsers/mutation_accountManagement/__init__.py +51 -0
  6. catocli/parsers/mutation_accountManagement_addAccount/README.md +17 -0
  7. catocli/parsers/mutation_accountManagement_removeAccount/README.md +16 -0
  8. catocli/parsers/mutation_accountManagement_updateAccount/README.md +17 -0
  9. catocli/parsers/mutation_admin_addAdmin/README.md +2 -2
  10. catocli/parsers/mutation_admin_updateAdmin/README.md +2 -2
  11. catocli/parsers/mutation_container_delete/README.md +2 -2
  12. catocli/parsers/mutation_policy_internetFirewall_addRule/README.md +3 -3
  13. catocli/parsers/mutation_policy_internetFirewall_addSection/README.md +3 -3
  14. catocli/parsers/mutation_policy_internetFirewall_createPolicyRevision/README.md +3 -3
  15. catocli/parsers/mutation_policy_internetFirewall_discardPolicyRevision/README.md +3 -3
  16. catocli/parsers/mutation_policy_internetFirewall_moveRule/README.md +3 -3
  17. catocli/parsers/mutation_policy_internetFirewall_moveSection/README.md +3 -3
  18. catocli/parsers/mutation_policy_internetFirewall_publishPolicyRevision/README.md +3 -3
  19. catocli/parsers/mutation_policy_internetFirewall_removeRule/README.md +3 -3
  20. catocli/parsers/mutation_policy_internetFirewall_removeSection/README.md +3 -3
  21. catocli/parsers/mutation_policy_internetFirewall_updatePolicy/README.md +3 -3
  22. catocli/parsers/mutation_policy_internetFirewall_updateRule/README.md +3 -3
  23. catocli/parsers/mutation_policy_internetFirewall_updateSection/README.md +3 -3
  24. catocli/parsers/mutation_policy_wanFirewall_addRule/README.md +3 -3
  25. catocli/parsers/mutation_policy_wanFirewall_addSection/README.md +3 -3
  26. catocli/parsers/mutation_policy_wanFirewall_createPolicyRevision/README.md +3 -3
  27. catocli/parsers/mutation_policy_wanFirewall_discardPolicyRevision/README.md +3 -3
  28. catocli/parsers/mutation_policy_wanFirewall_moveRule/README.md +3 -3
  29. catocli/parsers/mutation_policy_wanFirewall_moveSection/README.md +3 -3
  30. catocli/parsers/mutation_policy_wanFirewall_publishPolicyRevision/README.md +3 -3
  31. catocli/parsers/mutation_policy_wanFirewall_removeRule/README.md +3 -3
  32. catocli/parsers/mutation_policy_wanFirewall_removeSection/README.md +3 -3
  33. catocli/parsers/mutation_policy_wanFirewall_updatePolicy/README.md +3 -3
  34. catocli/parsers/mutation_policy_wanFirewall_updateRule/README.md +3 -3
  35. catocli/parsers/mutation_policy_wanFirewall_updateSection/README.md +3 -3
  36. catocli/parsers/mutation_site/__init__.py +14 -0
  37. catocli/parsers/mutation_site_addIpsecIkeV2Site/README.md +2 -2
  38. catocli/parsers/mutation_site_addIpsecIkeV2SiteTunnels/README.md +2 -2
  39. catocli/parsers/mutation_site_addNetworkRange/README.md +2 -2
  40. catocli/parsers/mutation_site_addSocketSite/README.md +2 -2
  41. catocli/parsers/mutation_site_addStaticHost/README.md +2 -2
  42. catocli/parsers/mutation_site_removeIpsecIkeV2SiteTunnels/README.md +18 -0
  43. catocli/parsers/mutation_site_updateHa/README.md +2 -2
  44. catocli/parsers/mutation_site_updateIpsecIkeV2SiteGeneralDetails/README.md +2 -2
  45. catocli/parsers/mutation_site_updateIpsecIkeV2SiteTunnels/README.md +2 -2
  46. catocli/parsers/mutation_site_updateNetworkRange/README.md +2 -2
  47. catocli/parsers/mutation_site_updateSiteGeneralDetails/README.md +2 -2
  48. catocli/parsers/mutation_site_updateSocketInterface/README.md +2 -2
  49. catocli/parsers/mutation_site_updateStaticHost/README.md +2 -2
  50. catocli/parsers/mutation_sites/__init__.py +14 -0
  51. catocli/parsers/mutation_sites_addIpsecIkeV2Site/README.md +2 -2
  52. catocli/parsers/mutation_sites_addIpsecIkeV2SiteTunnels/README.md +2 -2
  53. catocli/parsers/mutation_sites_addNetworkRange/README.md +2 -2
  54. catocli/parsers/mutation_sites_addSocketSite/README.md +2 -2
  55. catocli/parsers/mutation_sites_addStaticHost/README.md +2 -2
  56. catocli/parsers/mutation_sites_removeIpsecIkeV2SiteTunnels/README.md +18 -0
  57. catocli/parsers/mutation_sites_updateHa/README.md +2 -2
  58. catocli/parsers/mutation_sites_updateIpsecIkeV2SiteGeneralDetails/README.md +2 -2
  59. catocli/parsers/mutation_sites_updateIpsecIkeV2SiteTunnels/README.md +2 -2
  60. catocli/parsers/mutation_sites_updateNetworkRange/README.md +2 -2
  61. catocli/parsers/mutation_sites_updateSiteGeneralDetails/README.md +2 -2
  62. catocli/parsers/mutation_sites_updateSocketInterface/README.md +2 -2
  63. catocli/parsers/mutation_sites_updateStaticHost/README.md +2 -2
  64. catocli/parsers/parserApiClient.py +7 -4
  65. catocli/parsers/query_accountManagement/README.md +16 -0
  66. catocli/parsers/query_accountManagement/__init__.py +17 -0
  67. catocli/parsers/query_admins/README.md +2 -2
  68. catocli/parsers/query_appStats/README.md +5 -5
  69. catocli/parsers/query_appStatsTimeSeries/README.md +4 -4
  70. catocli/parsers/query_auditFeed/README.md +2 -2
  71. catocli/parsers/query_container/README.md +8 -8
  72. catocli/parsers/query_entityLookup/README.md +6 -6
  73. catocli/parsers/query_events/README.md +5 -5
  74. catocli/parsers/query_eventsFeed/README.md +2 -2
  75. catocli/parsers/query_eventsTimeSeries/README.md +4 -4
  76. catocli/parsers/query_hardwareManagement/README.md +2 -2
  77. catocli/parsers/query_policy/README.md +3 -3
  78. catocli/parsers/query_xdr_stories/README.md +2 -2
  79. {catocli-1.0.13.dist-info → catocli-1.0.15.dist-info}/METADATA +1 -1
  80. catocli-1.0.15.dist-info/RECORD +275 -0
  81. {catocli-1.0.13.dist-info → catocli-1.0.15.dist-info}/top_level.txt +0 -2
  82. graphql_client/api_client_types.py +4 -0
  83. models/mutation.accountManagement.addAccount.json +908 -0
  84. models/mutation.accountManagement.removeAccount.json +446 -0
  85. models/mutation.accountManagement.updateAccount.json +524 -0
  86. models/mutation.admin.addAdmin.json +103 -103
  87. models/mutation.admin.removeAdmin.json +3 -3
  88. models/mutation.admin.updateAdmin.json +121 -121
  89. models/mutation.container.delete.json +67 -67
  90. models/mutation.policy.internetFirewall.addRule.json +2497 -1889
  91. models/mutation.policy.internetFirewall.addSection.json +92 -92
  92. models/mutation.policy.internetFirewall.createPolicyRevision.json +734 -546
  93. models/mutation.policy.internetFirewall.discardPolicyRevision.json +734 -546
  94. models/mutation.policy.internetFirewall.moveRule.json +723 -535
  95. models/mutation.policy.internetFirewall.moveSection.json +85 -85
  96. models/mutation.policy.internetFirewall.publishPolicyRevision.json +734 -546
  97. models/mutation.policy.internetFirewall.removeRule.json +710 -522
  98. models/mutation.policy.internetFirewall.removeSection.json +72 -72
  99. models/mutation.policy.internetFirewall.updatePolicy.json +734 -546
  100. models/mutation.policy.internetFirewall.updateRule.json +2476 -1885
  101. models/mutation.policy.internetFirewall.updateSection.json +85 -85
  102. models/mutation.policy.wanFirewall.addRule.json +2577 -1225
  103. models/mutation.policy.wanFirewall.addSection.json +92 -92
  104. models/mutation.policy.wanFirewall.createPolicyRevision.json +800 -455
  105. models/mutation.policy.wanFirewall.discardPolicyRevision.json +800 -455
  106. models/mutation.policy.wanFirewall.moveRule.json +789 -444
  107. models/mutation.policy.wanFirewall.moveSection.json +85 -85
  108. models/mutation.policy.wanFirewall.publishPolicyRevision.json +800 -455
  109. models/mutation.policy.wanFirewall.removeRule.json +776 -431
  110. models/mutation.policy.wanFirewall.removeSection.json +72 -72
  111. models/mutation.policy.wanFirewall.updatePolicy.json +800 -455
  112. models/mutation.policy.wanFirewall.updateRule.json +2597 -1265
  113. models/mutation.policy.wanFirewall.updateSection.json +85 -85
  114. models/mutation.site.addIpsecIkeV2Site.json +43 -43
  115. models/mutation.site.addIpsecIkeV2SiteTunnels.json +505 -102
  116. models/mutation.site.addNetworkRange.json +53 -53
  117. models/mutation.site.addSocketSite.json +43 -43
  118. models/mutation.site.addStaticHost.json +33 -33
  119. models/mutation.site.removeIpsecIkeV2SiteTunnels.json +861 -0
  120. models/mutation.site.removeNetworkRange.json +3 -3
  121. models/mutation.site.removeSite.json +3 -3
  122. models/mutation.site.removeStaticHost.json +3 -3
  123. models/mutation.site.updateHa.json +54 -54
  124. models/mutation.site.updateIpsecIkeV2SiteGeneralDetails.json +79 -79
  125. models/mutation.site.updateIpsecIkeV2SiteTunnels.json +123 -123
  126. models/mutation.site.updateNetworkRange.json +74 -74
  127. models/mutation.site.updateSiteGeneralDetails.json +73 -73
  128. models/mutation.site.updateSocketInterface.json +282 -282
  129. models/mutation.site.updateStaticHost.json +54 -54
  130. models/mutation.sites.addIpsecIkeV2Site.json +43 -43
  131. models/mutation.sites.addIpsecIkeV2SiteTunnels.json +505 -102
  132. models/mutation.sites.addNetworkRange.json +53 -53
  133. models/mutation.sites.addSocketSite.json +43 -43
  134. models/mutation.sites.addStaticHost.json +33 -33
  135. models/mutation.sites.removeIpsecIkeV2SiteTunnels.json +861 -0
  136. models/mutation.sites.removeNetworkRange.json +3 -3
  137. models/mutation.sites.removeSite.json +3 -3
  138. models/mutation.sites.removeStaticHost.json +3 -3
  139. models/mutation.sites.updateHa.json +54 -54
  140. models/mutation.sites.updateIpsecIkeV2SiteGeneralDetails.json +79 -79
  141. models/mutation.sites.updateIpsecIkeV2SiteTunnels.json +123 -123
  142. models/mutation.sites.updateNetworkRange.json +74 -74
  143. models/mutation.sites.updateSiteGeneralDetails.json +73 -73
  144. models/mutation.sites.updateSocketInterface.json +282 -282
  145. models/mutation.sites.updateStaticHost.json +54 -54
  146. models/query.accountManagement.json +355 -0
  147. models/query.accountMetrics.json +235 -235
  148. models/query.accountRoles.json +3 -3
  149. models/query.accountSnapshot.json +278 -118
  150. models/query.admin.json +24 -24
  151. models/query.admins.json +138 -138
  152. models/query.appStats.json +92 -92
  153. models/query.appStatsTimeSeries.json +78 -78
  154. models/query.auditFeed.json +77 -77
  155. models/query.container.json +192 -192
  156. models/query.entityLookup.json +154 -154
  157. models/query.events.json +54 -54
  158. models/query.eventsFeed.json +38 -38
  159. models/query.eventsTimeSeries.json +78 -78
  160. models/query.hardwareManagement.json +125 -125
  161. models/query.licensing.json +933 -249
  162. models/query.policy.json +1502 -970
  163. models/query.xdr.stories.json +842 -842
  164. models/query.xdr.story.json +610 -610
  165. schema/catolib.py +12 -13
  166. build/lib/catocli/Utils/clidriver.py +0 -117
  167. build/lib/catocli/__init__.py +0 -2
  168. build/lib/catocli/__main__.py +0 -12
  169. build/lib/catocli/parsers/custom/__init__.py +0 -47
  170. build/lib/catocli/parsers/custom/customLib.py +0 -70
  171. build/lib/catocli/parsers/mutation_admin/__init__.py +0 -51
  172. build/lib/catocli/parsers/mutation_container/__init__.py +0 -23
  173. build/lib/catocli/parsers/mutation_policy/__init__.py +0 -357
  174. build/lib/catocli/parsers/mutation_site/__init__.py +0 -219
  175. build/lib/catocli/parsers/mutation_sites/__init__.py +0 -219
  176. build/lib/catocli/parsers/parserApiClient.py +0 -309
  177. build/lib/catocli/parsers/query_accountBySubdomain/__init__.py +0 -17
  178. build/lib/catocli/parsers/query_accountMetrics/__init__.py +0 -17
  179. build/lib/catocli/parsers/query_accountRoles/__init__.py +0 -17
  180. build/lib/catocli/parsers/query_accountSnapshot/__init__.py +0 -17
  181. build/lib/catocli/parsers/query_admin/__init__.py +0 -17
  182. build/lib/catocli/parsers/query_admins/__init__.py +0 -17
  183. build/lib/catocli/parsers/query_appStats/__init__.py +0 -17
  184. build/lib/catocli/parsers/query_appStatsTimeSeries/__init__.py +0 -17
  185. build/lib/catocli/parsers/query_auditFeed/__init__.py +0 -17
  186. build/lib/catocli/parsers/query_container/__init__.py +0 -17
  187. build/lib/catocli/parsers/query_entityLookup/__init__.py +0 -17
  188. build/lib/catocli/parsers/query_events/__init__.py +0 -17
  189. build/lib/catocli/parsers/query_eventsFeed/__init__.py +0 -17
  190. build/lib/catocli/parsers/query_eventsTimeSeries/__init__.py +0 -17
  191. build/lib/catocli/parsers/query_hardwareManagement/__init__.py +0 -17
  192. build/lib/catocli/parsers/query_licensing/__init__.py +0 -17
  193. build/lib/catocli/parsers/query_policy/__init__.py +0 -17
  194. build/lib/catocli/parsers/query_siteLocation/__init__.py +0 -17
  195. build/lib/catocli/parsers/query_subDomains/__init__.py +0 -17
  196. build/lib/catocli/parsers/query_xdr/__init__.py +0 -37
  197. build/lib/catocli/parsers/raw/__init__.py +0 -9
  198. build/lib/graphql_client/__init__.py +0 -11
  199. build/lib/graphql_client/api/__init__.py +0 -3
  200. build/lib/graphql_client/api/call_api.py +0 -73
  201. build/lib/graphql_client/api_client.py +0 -192
  202. build/lib/graphql_client/api_client_types.py +0 -404
  203. build/lib/graphql_client/configuration.py +0 -230
  204. build/lib/graphql_client/models/__init__.py +0 -13
  205. build/lib/graphql_client/models/no_schema.py +0 -71
  206. build/lib/schema/catolib.py +0 -1016
  207. build/lib/schema/importSchema.py +0 -60
  208. build/lib/vendor/certifi/__init__.py +0 -4
  209. build/lib/vendor/certifi/__main__.py +0 -12
  210. build/lib/vendor/certifi/core.py +0 -114
  211. build/lib/vendor/certifi/py.typed +0 -0
  212. build/lib/vendor/six.py +0 -998
  213. build/lib/vendor/urllib3/__init__.py +0 -211
  214. build/lib/vendor/urllib3/_base_connection.py +0 -172
  215. build/lib/vendor/urllib3/_collections.py +0 -483
  216. build/lib/vendor/urllib3/_request_methods.py +0 -278
  217. build/lib/vendor/urllib3/_version.py +0 -16
  218. build/lib/vendor/urllib3/connection.py +0 -1033
  219. build/lib/vendor/urllib3/connectionpool.py +0 -1182
  220. build/lib/vendor/urllib3/contrib/__init__.py +0 -0
  221. build/lib/vendor/urllib3/contrib/emscripten/__init__.py +0 -18
  222. build/lib/vendor/urllib3/contrib/emscripten/connection.py +0 -254
  223. build/lib/vendor/urllib3/contrib/emscripten/fetch.py +0 -418
  224. build/lib/vendor/urllib3/contrib/emscripten/request.py +0 -22
  225. build/lib/vendor/urllib3/contrib/emscripten/response.py +0 -285
  226. build/lib/vendor/urllib3/contrib/pyopenssl.py +0 -552
  227. build/lib/vendor/urllib3/contrib/socks.py +0 -228
  228. build/lib/vendor/urllib3/exceptions.py +0 -321
  229. build/lib/vendor/urllib3/fields.py +0 -341
  230. build/lib/vendor/urllib3/filepost.py +0 -89
  231. build/lib/vendor/urllib3/http2/__init__.py +0 -53
  232. build/lib/vendor/urllib3/http2/connection.py +0 -356
  233. build/lib/vendor/urllib3/http2/probe.py +0 -87
  234. build/lib/vendor/urllib3/poolmanager.py +0 -637
  235. build/lib/vendor/urllib3/py.typed +0 -2
  236. build/lib/vendor/urllib3/response.py +0 -1265
  237. build/lib/vendor/urllib3/util/__init__.py +0 -42
  238. build/lib/vendor/urllib3/util/connection.py +0 -137
  239. build/lib/vendor/urllib3/util/proxy.py +0 -43
  240. build/lib/vendor/urllib3/util/request.py +0 -256
  241. build/lib/vendor/urllib3/util/response.py +0 -101
  242. build/lib/vendor/urllib3/util/retry.py +0 -533
  243. build/lib/vendor/urllib3/util/ssl_.py +0 -513
  244. build/lib/vendor/urllib3/util/ssl_match_hostname.py +0 -159
  245. build/lib/vendor/urllib3/util/ssltransport.py +0 -276
  246. build/lib/vendor/urllib3/util/timeout.py +0 -275
  247. build/lib/vendor/urllib3/util/url.py +0 -471
  248. build/lib/vendor/urllib3/util/util.py +0 -42
  249. build/lib/vendor/urllib3/util/wait.py +0 -124
  250. catocli-1.0.13.dist-info/RECORD +0 -344
  251. {catocli-1.0.13.dist-info → catocli-1.0.15.dist-info}/LICENSE +0 -0
  252. {catocli-1.0.13.dist-info → catocli-1.0.15.dist-info}/WHEEL +0 -0
  253. {catocli-1.0.13.dist-info → catocli-1.0.15.dist-info}/entry_points.txt +0 -0
schema/catolib.py CHANGED
@@ -167,7 +167,7 @@ def getChildOperations(operationType, curType, parentType, parentPath):
167
167
  def getNestedArgDefinitions(argsAry, parentParamPath, childOperations, parentFields):
168
168
  newArgsList = {}
169
169
  for arg in argsAry:
170
- curParamPath = arg["name"] if (parentParamPath == None or parentParamPath == "") else parentParamPath.replace("___",".") + "." + arg["name"]
170
+ curParamPath = renderCamelCase(arg["name"]) if (parentParamPath == None or parentParamPath == "") else parentParamPath.replace("___",".") + "." + renderCamelCase(arg["name"])
171
171
  if "path" in arg and '.' not in arg["path"]:
172
172
  arg["child"] = True
173
173
  arg["parent"] = arg["path"]
@@ -511,6 +511,7 @@ import catocli
511
511
  from graphql_client import Configuration
512
512
  from graphql_client.api_client import ApiException
513
513
  from ..parsers.parserApiClient import get_help
514
+ import traceback
514
515
  import sys
515
516
  sys.path.insert(0, 'vendor')
516
517
  import urllib3
@@ -578,8 +579,16 @@ def main(args=None):
578
579
  else:
579
580
  if response!=None:
580
581
  print(json.dumps(response[0], sort_keys=True, indent=4))
581
- except AttributeError:
582
- print('Missing arguments. Usage: catocli <operation> -h')
582
+ except Exception as e:
583
+ if isinstance(e, AttributeError):
584
+ print('Missing arguments. Usage: catocli <operation> -h')
585
+ if args.v==True:
586
+ print('ERROR: ',e)
587
+ traceback.print_exc()
588
+ else:
589
+ print('ERROR: ',e)
590
+ traceback.print_exc()
591
+ exit(1)
583
592
  """
584
593
  writeFile("../catocli/Utils/clidriver.py",cliDriverStr)
585
594
 
@@ -920,16 +929,6 @@ def generateGraphqlPayload(variablesObj,operation,operationName):
920
929
  }
921
930
  return body
922
931
 
923
- def renderCamelCase(pathStr):
924
- str = "";
925
- pathAry = pathStr.split(".")
926
- for i, path in enumerate(pathAry):
927
- if i == 0:
928
- str += path
929
- else:
930
- str += path[0].upper() + path[1:]
931
- return str
932
-
933
932
  def renderArgsAndFields(responseArgStr, variablesObj, curOperation, definition, indent):
934
933
  for fieldName in definition['fields']:
935
934
  field = definition['fields'][fieldName]
@@ -1,117 +0,0 @@
1
-
2
- import os
3
- import argparse
4
- import json
5
- import catocli
6
- from graphql_client import Configuration
7
- from graphql_client.api_client import ApiException
8
- from ..parsers.parserApiClient import get_help
9
- import sys
10
- sys.path.insert(0, 'vendor')
11
- import urllib3
12
- urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
13
- if "CATO_TOKEN" not in os.environ:
14
- print("Missing authentication, please set the CATO_TOKEN environment variable with your api key.")
15
- exit()
16
- CATO_TOKEN = os.getenv("CATO_TOKEN")
17
- CATO_DEBUG = bool(os.getenv("CATO_DEBUG", False))
18
- from ..parsers.raw import raw_parse
19
- from ..parsers.custom import custom_parse
20
- from ..parsers.query_siteLocation import query_siteLocation_parse
21
- from ..parsers.mutation_admin import mutation_admin_parse
22
- from ..parsers.mutation_container import mutation_container_parse
23
- from ..parsers.mutation_policy import mutation_policy_parse
24
- from ..parsers.mutation_site import mutation_site_parse
25
- from ..parsers.mutation_sites import mutation_sites_parse
26
- from ..parsers.query_accountBySubdomain import query_accountBySubdomain_parse
27
- from ..parsers.query_accountMetrics import query_accountMetrics_parse
28
- from ..parsers.query_accountRoles import query_accountRoles_parse
29
- from ..parsers.query_accountSnapshot import query_accountSnapshot_parse
30
- from ..parsers.query_admin import query_admin_parse
31
- from ..parsers.query_admins import query_admins_parse
32
- from ..parsers.query_appStats import query_appStats_parse
33
- from ..parsers.query_appStatsTimeSeries import query_appStatsTimeSeries_parse
34
- from ..parsers.query_auditFeed import query_auditFeed_parse
35
- from ..parsers.query_container import query_container_parse
36
- from ..parsers.query_entityLookup import query_entityLookup_parse
37
- from ..parsers.query_events import query_events_parse
38
- from ..parsers.query_eventsFeed import query_eventsFeed_parse
39
- from ..parsers.query_eventsTimeSeries import query_eventsTimeSeries_parse
40
- from ..parsers.query_hardwareManagement import query_hardwareManagement_parse
41
- from ..parsers.query_licensing import query_licensing_parse
42
- from ..parsers.query_policy import query_policy_parse
43
- from ..parsers.query_subDomains import query_subDomains_parse
44
- from ..parsers.query_xdr import query_xdr_parse
45
-
46
- configuration = Configuration()
47
- configuration.verify_ssl = False
48
- configuration.api_key["x-api-key"] = CATO_TOKEN
49
- configuration.host = "{}".format(catocli.__cato_host__)
50
- configuration.debug = CATO_DEBUG
51
- configuration.version = "{}".format(catocli.__version__)
52
-
53
- parser = argparse.ArgumentParser(prog='catocli', usage='%(prog)s <operationType> <operationName> [options]', description="CLI for query on CATO via API.")
54
- parser.add_argument('--version', action='version', version=catocli.__version__)
55
- subparsers = parser.add_subparsers()
56
- custom_parsers = custom_parse(subparsers)
57
- raw_parsers = subparsers.add_parser('raw', help='Raw GraphQL', usage=get_help("raw"))
58
- raw_parser = raw_parse(raw_parsers)
59
- query_parser = subparsers.add_parser('query', help='Query', usage='catocli query <operationName> [options]')
60
- query_subparsers = query_parser.add_subparsers(description='valid subcommands', help='additional help')
61
- query_siteLocation_parser = query_siteLocation_parse(query_subparsers)
62
- mutation_parser = subparsers.add_parser('mutation', help='Mutation', usage='catocli mutation <operationName> [options]')
63
- mutation_subparsers = mutation_parser.add_subparsers(description='valid subcommands', help='additional help')
64
-
65
- mutation_admin_parser = mutation_admin_parse(mutation_subparsers)
66
- mutation_container_parser = mutation_container_parse(mutation_subparsers)
67
- mutation_policy_parser = mutation_policy_parse(mutation_subparsers)
68
- mutation_site_parser = mutation_site_parse(mutation_subparsers)
69
- mutation_sites_parser = mutation_sites_parse(mutation_subparsers)
70
- query_accountBySubdomain_parser = query_accountBySubdomain_parse(query_subparsers)
71
- query_accountMetrics_parser = query_accountMetrics_parse(query_subparsers)
72
- query_accountRoles_parser = query_accountRoles_parse(query_subparsers)
73
- query_accountSnapshot_parser = query_accountSnapshot_parse(query_subparsers)
74
- query_admin_parser = query_admin_parse(query_subparsers)
75
- query_admins_parser = query_admins_parse(query_subparsers)
76
- query_appStats_parser = query_appStats_parse(query_subparsers)
77
- query_appStatsTimeSeries_parser = query_appStatsTimeSeries_parse(query_subparsers)
78
- query_auditFeed_parser = query_auditFeed_parse(query_subparsers)
79
- query_container_parser = query_container_parse(query_subparsers)
80
- query_entityLookup_parser = query_entityLookup_parse(query_subparsers)
81
- query_events_parser = query_events_parse(query_subparsers)
82
- query_eventsFeed_parser = query_eventsFeed_parse(query_subparsers)
83
- query_eventsTimeSeries_parser = query_eventsTimeSeries_parse(query_subparsers)
84
- query_hardwareManagement_parser = query_hardwareManagement_parse(query_subparsers)
85
- query_licensing_parser = query_licensing_parse(query_subparsers)
86
- query_policy_parser = query_policy_parse(query_subparsers)
87
- query_subDomains_parser = query_subDomains_parse(query_subparsers)
88
- query_xdr_parser = query_xdr_parse(query_subparsers)
89
-
90
-
91
- def main(args=None):
92
- args = parser.parse_args(args=args)
93
- try:
94
- CATO_ACCOUNT_ID = os.getenv("CATO_ACCOUNT_ID")
95
- if args.func.__name__!="createRawRequest":
96
- if CATO_ACCOUNT_ID==None and args.accountID==None:
97
- print("Missing accountID, please specify an accountID:\n")
98
- print('Option 1: Set the CATO_ACCOUNT_ID environment variable with the value of your account ID.')
99
- print('export CATO_ACCOUNT_ID="12345"\n')
100
- print("Option 2: Override the accountID value as a cli argument, example:")
101
- print('catocli <operationType> <operationName> -accountID=12345 <json>')
102
- print("catocli query entityLookup -accountID=12345 '{\"type\":\"country\"}'\n")
103
- exit()
104
- elif args.accountID!=None:
105
- configuration.accountID = args.accountID
106
- else:
107
- configuration.accountID = CATO_ACCOUNT_ID
108
- response = args.func(args, configuration)
109
-
110
- if type(response) == ApiException:
111
- print("ERROR! Status code: {}".format(response.status))
112
- print(response)
113
- else:
114
- if response!=None:
115
- print(json.dumps(response[0], sort_keys=True, indent=4))
116
- except AttributeError:
117
- print('Missing arguments. Usage: catocli <operation> -h')
@@ -1,2 +0,0 @@
1
- __version__ = "1.0.13"
2
- __cato_host__ = "https://api.catonetworks.com/api/v1/graphql2"
@@ -1,12 +0,0 @@
1
- #!/usr/bin/env python
2
- import sys
3
- from .Utils import clidriver
4
-
5
- def main():
6
- if sys.argv.__len__() == 1:
7
- print('Usage: catocli -h')
8
- else:
9
- sys.exit(clidriver.main(sys.argv[1:]))
10
-
11
- if __name__ == '__main__':
12
- main()
@@ -1,47 +0,0 @@
1
-
2
- import catocli.parsers.custom.customLib as customLib
3
-
4
- def custom_parse(subparsers):
5
- entityTypes = ["account","admin","allocatedIP","any","availablePooledUsage","availableSiteUsage","dhcpRelayGroup","groupSubscription","host","lanFirewall","localRouting","location","mailingListSubscription","networkInterface","portProtocol","simpleService","site","siteRange","timezone","vpnUser","webhookSubscription"]
6
- entity_parser = subparsers.add_parser('entity', help='Entity Lookup', usage='catocli entity <operationName> [options]')
7
- entity_subparsers = entity_parser.add_subparsers(description='valid subcommands', help='additional help')
8
-
9
- for entity in entityTypes:
10
- item_parser = entity_subparsers.add_parser(entity, help="entityLookup() for type: "+entity, usage='catocli entity '+entity+' <operationName> [options]')
11
- item_subparsers = item_parser.add_subparsers(description='valid subcommands', help='additional help')
12
-
13
- item_list_parser = item_subparsers.add_parser('list',
14
- help='entity '+entity+' list',
15
- usage=get_help_custom("entity_"+entity+"_list"))
16
-
17
- item_list_parser.add_argument('-accountID', help='The Account ID.')
18
- item_list_parser.add_argument('-s', help='Search string', default='', nargs='?')
19
- item_list_parser.add_argument('-f', default="csv", choices=["json","csv"], nargs='?',
20
- help='Specify format for output')
21
- item_list_parser.add_argument('-t', const=True, default=False, nargs='?',
22
- help='Print test request preview without sending api call')
23
- item_list_parser.add_argument('-v', const=True, default=False, nargs='?',
24
- help='Verbose output')
25
- item_list_parser.add_argument('-p', const=True, default=False, nargs='?',
26
- help='Pretty print')
27
-
28
- item_list_parser.set_defaults(func=customLib.entityTypeList,operation_name=entity)
29
-
30
- def get_help_custom(path):
31
- matchCmd = "catocli "+path.replace("_"," ")
32
- import os
33
- pwd = os.path.dirname(__file__)
34
- # doc = path+"/README.md"
35
- abs_path = os.path.join(pwd, "README.md")
36
- new_line = "\nEXAMPLES:\n"
37
- lines = open(abs_path, "r").readlines()
38
- for line in lines:
39
- if f"{matchCmd}" in line:
40
- clean_line = line.replace("<br /><br />", "").replace("`","")
41
- new_line += f"{clean_line}\n"
42
- # matchArg = path.replace("_",".")
43
- # for line in lines:
44
- # if f"`{matchArg}" in line:
45
- # clean_line = line.replace("<br /><br />", "").replace("`","")
46
- # new_line += f"{clean_line}\n"
47
- return new_line
@@ -1,70 +0,0 @@
1
- import json
2
- from graphql_client.api.call_api import ApiClient, CallApi
3
- from graphql_client.api_client import ApiException
4
- import logging
5
- from ..parserApiClient import validateArgs
6
-
7
- def entityTypeList(args, configuration):
8
- params = vars(args)
9
- operation = {
10
- "operationArgs": {
11
- "accountID": {
12
- "name": "accountID",
13
- "required": True,
14
- }
15
- }
16
- }
17
- variablesObj = { "accountID": (params.get("accountID") if params.get("accountID") else params.get("accountId"))}
18
-
19
- instance = CallApi(ApiClient(configuration))
20
- operationName = params["operation_name"]
21
- query = '''query entityLookup ( $type:EntityType! $accountID:ID! $search:String ) {
22
- entityLookup ( accountID:$accountID type:$type search:$search ) {
23
- '''+params["operation_name"]+'''s: items {
24
- description
25
- '''+params["operation_name"]+''': entity {
26
- id
27
- name
28
- type
29
- }
30
- }
31
- }
32
- }'''
33
- body = {
34
- "query": query,
35
- "operationName": "entityLookup",
36
- "variables": {
37
- "accountID": configuration.accountID,
38
- "type": params["operation_name"],
39
- "search": (params.get("s") if params.get("s")!=None else "")
40
- }
41
- }
42
-
43
- isOk, invalidVars, message = validateArgs(variablesObj,operation)
44
- if isOk==True:
45
- if params["t"]==True:
46
- if params["p"]==True:
47
- print(json.dumps(body,indent=2,sort_keys=True).replace("\\n", "\n").replace("\\t", " "))
48
- else:
49
- print(json.dumps(body).replace("\\n", " ").replace("\\t", " ").replace(" "," ").replace(" "," "))
50
- return None
51
- else:
52
- try:
53
- response = instance.call_api(body,params)
54
- if params["f"]=="json":
55
- if params["p"]==True:
56
- print(json.dumps(response[0].get("data").get("entityLookup").get(params["operation_name"]+"s"),indent=2,sort_keys=True).replace("\\n", "\n").replace("\\t", " "))
57
- else:
58
- print(json.dumps(response[0].get("data").get("entityLookup").get(params["operation_name"]+"s")))
59
- else:
60
- if len(response[0].get("data").get("entityLookup").get(params["operation_name"]+"s"))==0:
61
- print("No results found")
62
- else:
63
- print("id,name,type,description")
64
- for site in response[0].get("data").get("entityLookup").get(params["operation_name"]+"s"):
65
- print(site.get(params["operation_name"]).get('id')+","+site.get(params["operation_name"]).get('name')+","+site.get(params["operation_name"]).get('type')+","+site.get('description'))
66
- except ApiException as e:
67
- return e
68
- else:
69
- print("ERROR: "+message,", ".join(invalidVars))
70
-
@@ -1,51 +0,0 @@
1
-
2
- from ..parserApiClient import createRequest, get_help
3
-
4
- def mutation_admin_parse(mutation_subparsers):
5
- mutation_admin_parser = mutation_subparsers.add_parser('admin',
6
- help='admin() mutation operation',
7
- usage=get_help("mutation_admin"))
8
-
9
- mutation_admin_subparsers = mutation_admin_parser.add_subparsers()
10
-
11
- mutation_admin_addAdmin_parser = mutation_admin_subparsers.add_parser('addAdmin',
12
- help='addAdmin() admin operation',
13
- usage=get_help("mutation_admin_addAdmin"))
14
-
15
- mutation_admin_addAdmin_parser.add_argument('json', help='Variables in JSON format.')
16
- mutation_admin_addAdmin_parser.add_argument('-accountID', help='Override the CATO_ACCOUNT_ID environment variable with this value.')
17
- mutation_admin_addAdmin_parser.add_argument('-t', const=True, default=False, nargs='?',
18
- help='Print test request preview without sending api call')
19
- mutation_admin_addAdmin_parser.add_argument('-v', const=True, default=False, nargs='?',
20
- help='Verbose output')
21
- mutation_admin_addAdmin_parser.add_argument('-p', const=True, default=False, nargs='?',
22
- help='Pretty print')
23
- mutation_admin_addAdmin_parser.set_defaults(func=createRequest,operation_name='mutation.admin.addAdmin')
24
-
25
- mutation_admin_removeAdmin_parser = mutation_admin_subparsers.add_parser('removeAdmin',
26
- help='removeAdmin() admin operation',
27
- usage=get_help("mutation_admin_removeAdmin"))
28
-
29
- mutation_admin_removeAdmin_parser.add_argument('json', help='Variables in JSON format.')
30
- mutation_admin_removeAdmin_parser.add_argument('-accountID', help='Override the CATO_ACCOUNT_ID environment variable with this value.')
31
- mutation_admin_removeAdmin_parser.add_argument('-t', const=True, default=False, nargs='?',
32
- help='Print test request preview without sending api call')
33
- mutation_admin_removeAdmin_parser.add_argument('-v', const=True, default=False, nargs='?',
34
- help='Verbose output')
35
- mutation_admin_removeAdmin_parser.add_argument('-p', const=True, default=False, nargs='?',
36
- help='Pretty print')
37
- mutation_admin_removeAdmin_parser.set_defaults(func=createRequest,operation_name='mutation.admin.removeAdmin')
38
-
39
- mutation_admin_updateAdmin_parser = mutation_admin_subparsers.add_parser('updateAdmin',
40
- help='updateAdmin() admin operation',
41
- usage=get_help("mutation_admin_updateAdmin"))
42
-
43
- mutation_admin_updateAdmin_parser.add_argument('json', help='Variables in JSON format.')
44
- mutation_admin_updateAdmin_parser.add_argument('-accountID', help='Override the CATO_ACCOUNT_ID environment variable with this value.')
45
- mutation_admin_updateAdmin_parser.add_argument('-t', const=True, default=False, nargs='?',
46
- help='Print test request preview without sending api call')
47
- mutation_admin_updateAdmin_parser.add_argument('-v', const=True, default=False, nargs='?',
48
- help='Verbose output')
49
- mutation_admin_updateAdmin_parser.add_argument('-p', const=True, default=False, nargs='?',
50
- help='Pretty print')
51
- mutation_admin_updateAdmin_parser.set_defaults(func=createRequest,operation_name='mutation.admin.updateAdmin')
@@ -1,23 +0,0 @@
1
-
2
- from ..parserApiClient import createRequest, get_help
3
-
4
- def mutation_container_parse(mutation_subparsers):
5
- mutation_container_parser = mutation_subparsers.add_parser('container',
6
- help='container() mutation operation',
7
- usage=get_help("mutation_container"))
8
-
9
- mutation_container_subparsers = mutation_container_parser.add_subparsers()
10
-
11
- mutation_container_delete_parser = mutation_container_subparsers.add_parser('delete',
12
- help='delete() container operation',
13
- usage=get_help("mutation_container_delete"))
14
-
15
- mutation_container_delete_parser.add_argument('json', help='Variables in JSON format.')
16
- mutation_container_delete_parser.add_argument('-accountID', help='Override the CATO_ACCOUNT_ID environment variable with this value.')
17
- mutation_container_delete_parser.add_argument('-t', const=True, default=False, nargs='?',
18
- help='Print test request preview without sending api call')
19
- mutation_container_delete_parser.add_argument('-v', const=True, default=False, nargs='?',
20
- help='Verbose output')
21
- mutation_container_delete_parser.add_argument('-p', const=True, default=False, nargs='?',
22
- help='Pretty print')
23
- mutation_container_delete_parser.set_defaults(func=createRequest,operation_name='mutation.container.delete')