ciocore 8.1.0b3__py2.py3-none-any.whl → 8.1.1rc2__py2.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 ciocore might be problematic. Click here for more details.

ciocore/VERSION CHANGED
@@ -1 +1 @@
1
- 8.1.0-beta.3
1
+ 8.1.1-rc.2
ciocore/api_client.py CHANGED
@@ -12,7 +12,6 @@ import jwt
12
12
  import logging
13
13
  import os
14
14
  import platform
15
- import datetime
16
15
  import requests
17
16
  import socket
18
17
  import time
@@ -446,7 +445,7 @@ def creds_same_domain(creds):
446
445
  if not token:
447
446
  return False
448
447
 
449
- decoded = jwt.decode(creds["access_token"], verify=False)
448
+ decoded = jwt.decode(creds["access_token"], verify=False, algorithms=['RS256'], options={"verify_signature": False})
450
449
  audience_domain = decoded.get("aud")
451
450
  return (
452
451
  audience_domain
@@ -464,7 +463,7 @@ def account_id_from_jwt(token):
464
463
  Returns:
465
464
  str: The account id.
466
465
  """
467
- payload = jwt.decode(token, verify=False)
466
+ payload = jwt.decode(token, verify=False, algorithms=['RS256'], options={"verify_signature": False})
468
467
  return payload.get("account")
469
468
 
470
469
 
@@ -489,30 +488,6 @@ def account_name_from_jwt(token):
489
488
  return None
490
489
 
491
490
 
492
- def get_account_data():
493
- """
494
- Get the authenticated account's data.
495
-
496
- Returns:
497
- dict: The account data.
498
- """
499
- token = read_conductor_credentials(True)
500
- if not token:
501
- return None
502
-
503
- payload = jwt.decode(token, verify=False)
504
- return {
505
- "email": payload.get("email"),
506
- "domain": ".".join(payload.get("aud").split(".")[1:]),
507
- "account_id" : payload.get("account"),
508
- "user_id" : payload.get("id"),
509
- "role": payload.get("role"),
510
- "issued": datetime.datetime.fromtimestamp(payload.get("iat")),
511
- "expiry": datetime.datetime.fromtimestamp(payload.get("exp")),
512
- "token": token,
513
- }
514
-
515
-
516
491
  def request_instance_types(as_dict=False):
517
492
  """
518
493
  Get the list of available instances types.
ciocore/data.py CHANGED
@@ -53,7 +53,7 @@ def init(*products, **kwargs):
53
53
 
54
54
  def data(force=False):
55
55
  """
56
- Provide projects, instance types, software package, and account data.
56
+ Provide projects, instance types, and software package data.
57
57
 
58
58
  Keyword Args:
59
59
  force: (bool) If `True`, then force the system to fetch fresh data -- Defaults to `False`.
@@ -62,10 +62,10 @@ def data(force=False):
62
62
  ValueError: Module was not initialized with [init()](/data/#ciocore.data.init).
63
63
 
64
64
  Returns:
65
- dict: Keys are `projects`, `instance_types`, `software`, `account`.
65
+ dict: Keys are `projects`, `instance_types`, `software`.
66
66
 
67
67
  When you access the data, if it has already been fetched, it will be returned. Otherwise,
68
- requests will be made to fetch fresh data. You may need to authenticate in order to access the
68
+ requests will be made to fetch the data. You may need to authenticate in order to access the
69
69
  data.
70
70
 
71
71
  The set of instance types and software can be pruned to match the available platforms
@@ -84,8 +84,7 @@ def data(force=False):
84
84
 
85
85
  * **software** is a PackageTree object containing either all
86
86
  the software available at Conductor, or a subset based on specified products.
87
-
88
- * **account** is a dictionary containing account information gained from the JWT token.
87
+
89
88
 
90
89
  Examples:
91
90
  >>> from ciocore import data as coredata
@@ -99,10 +98,6 @@ def data(force=False):
99
98
 
100
99
  >>> coredata.data()["instance_types"]
101
100
  <ciocore.hardware_set.HardwareSet object at 0x0000028941CD9DC0>
102
-
103
- >>> coredata.data()["account"]["account_id"]
104
- 123456789012
105
-
106
101
  """
107
102
 
108
103
  global __data__
@@ -134,9 +129,6 @@ def data(force=False):
134
129
  except Exception:
135
130
  pass
136
131
  __data__["extra_environment"] = extra_env_vars
137
-
138
- __data__["account"] = api_client.get_account_data()
139
-
140
132
 
141
133
  # PLATFORMS
142
134
  it_platforms = set([it["operating_system"] for it in instance_types])
@@ -653,13 +653,6 @@
653
653
  account_name_from_jwt()
654
654
  </a>
655
655
 
656
- </li>
657
-
658
- <li class="md-nav__item">
659
- <a href="#ciocore.api_client.get_account_data" class="md-nav__link">
660
- get_account_data()
661
- </a>
662
-
663
656
  </li>
664
657
 
665
658
  <li class="md-nav__item">
@@ -988,13 +981,6 @@
988
981
  account_name_from_jwt()
989
982
  </a>
990
983
 
991
- </li>
992
-
993
- <li class="md-nav__item">
994
- <a href="#ciocore.api_client.get_account_data" class="md-nav__link">
995
- get_account_data()
996
- </a>
997
-
998
984
  </li>
999
985
 
1000
986
  <li class="md-nav__item">
@@ -2241,7 +2227,7 @@ prompt the user to log in. </p>
2241
2227
  <span class="k">if</span> <span class="ow">not</span> <span class="n">token</span><span class="p">:</span>
2242
2228
  <span class="k">return</span> <span class="kc">False</span>
2243
2229
 
2244
- <span class="n">decoded</span> <span class="o">=</span> <span class="n">jwt</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="n">creds</span><span class="p">[</span><span class="s2">&quot;access_token&quot;</span><span class="p">],</span> <span class="n">verify</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
2230
+ <span class="n">decoded</span> <span class="o">=</span> <span class="n">jwt</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="n">creds</span><span class="p">[</span><span class="s2">&quot;access_token&quot;</span><span class="p">],</span> <span class="n">verify</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">algorithms</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;RS256&#39;</span><span class="p">],</span> <span class="n">options</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;verify_signature&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">})</span>
2245
2231
  <span class="n">audience_domain</span> <span class="o">=</span> <span class="n">decoded</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;aud&quot;</span><span class="p">)</span>
2246
2232
  <span class="k">return</span> <span class="p">(</span>
2247
2233
  <span class="n">audience_domain</span>
@@ -2315,7 +2301,7 @@ prompt the user to log in. </p>
2315
2301
  <span class="sd"> Returns:</span>
2316
2302
  <span class="sd"> str: The account id.</span>
2317
2303
  <span class="sd"> &quot;&quot;&quot;</span>
2318
- <span class="n">payload</span> <span class="o">=</span> <span class="n">jwt</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="n">token</span><span class="p">,</span> <span class="n">verify</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
2304
+ <span class="n">payload</span> <span class="o">=</span> <span class="n">jwt</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="n">token</span><span class="p">,</span> <span class="n">verify</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">algorithms</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;RS256&#39;</span><span class="p">],</span> <span class="n">options</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;verify_signature&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">})</span>
2319
2305
  <span class="k">return</span> <span class="n">payload</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;account&quot;</span><span class="p">)</span>
2320
2306
  </code></pre></div>
2321
2307
  </details>
@@ -2406,67 +2392,6 @@ prompt the user to log in. </p>
2406
2392
 
2407
2393
 
2408
2394
 
2409
- <h2 id="ciocore.api_client.get_account_data" class="doc doc-heading">
2410
- <code class="highlight language-python"><span class="n">get_account_data</span><span class="p">()</span></code>
2411
-
2412
-
2413
- </h2>
2414
-
2415
- <div class="doc doc-contents ">
2416
-
2417
- <p>Get the authenticated account's data.</p>
2418
-
2419
- <p><strong>Returns:</strong></p>
2420
- <table>
2421
- <thead>
2422
- <tr>
2423
- <th>Type</th>
2424
- <th>Description</th>
2425
- </tr>
2426
- </thead>
2427
- <tbody>
2428
- <tr>
2429
- <td><code>dict</code></td>
2430
- <td><p>The account data.</p></td>
2431
- </tr>
2432
- </tbody>
2433
- </table>
2434
- <details class="quote">
2435
- <summary>Source code in <code>ciocore/api_client.py</code></summary>
2436
- <div class="highlight"><pre><span></span><code><span class="k">def</span> <span class="nf">get_account_data</span><span class="p">():</span>
2437
- <span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
2438
- <span class="sd"> Get the authenticated account&#39;s data.</span>
2439
-
2440
- <span class="sd"> Returns:</span>
2441
- <span class="sd"> dict: The account data.</span>
2442
- <span class="sd"> &quot;&quot;&quot;</span>
2443
- <span class="n">token</span> <span class="o">=</span> <span class="n">read_conductor_credentials</span><span class="p">(</span><span class="kc">True</span><span class="p">)</span>
2444
- <span class="k">if</span> <span class="ow">not</span> <span class="n">token</span><span class="p">:</span>
2445
- <span class="k">return</span> <span class="kc">None</span>
2446
-
2447
- <span class="n">payload</span> <span class="o">=</span> <span class="n">jwt</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="n">token</span><span class="p">,</span> <span class="n">verify</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
2448
- <span class="k">return</span> <span class="p">{</span>
2449
- <span class="s2">&quot;email&quot;</span><span class="p">:</span> <span class="n">payload</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;email&quot;</span><span class="p">),</span>
2450
- <span class="s2">&quot;domain&quot;</span><span class="p">:</span> <span class="s2">&quot;.&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">payload</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;aud&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&quot;.&quot;</span><span class="p">)[</span><span class="mi">1</span><span class="p">:]),</span>
2451
- <span class="s2">&quot;account_id&quot;</span> <span class="p">:</span> <span class="n">payload</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;account&quot;</span><span class="p">),</span>
2452
- <span class="s2">&quot;user_id&quot;</span> <span class="p">:</span> <span class="n">payload</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;id&quot;</span><span class="p">),</span>
2453
- <span class="s2">&quot;role&quot;</span><span class="p">:</span> <span class="n">payload</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;role&quot;</span><span class="p">),</span>
2454
- <span class="s2">&quot;issued&quot;</span><span class="p">:</span> <span class="n">datetime</span><span class="o">.</span><span class="n">datetime</span><span class="o">.</span><span class="n">fromtimestamp</span><span class="p">(</span><span class="n">payload</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;iat&quot;</span><span class="p">)),</span>
2455
- <span class="s2">&quot;expiry&quot;</span><span class="p">:</span> <span class="n">datetime</span><span class="o">.</span><span class="n">datetime</span><span class="o">.</span><span class="n">fromtimestamp</span><span class="p">(</span><span class="n">payload</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;exp&quot;</span><span class="p">)),</span>
2456
- <span class="s2">&quot;token&quot;</span><span class="p">:</span> <span class="n">token</span><span class="p">,</span>
2457
- <span class="p">}</span>
2458
- </code></pre></div>
2459
- </details>
2460
- </div>
2461
-
2462
- </div>
2463
-
2464
-
2465
-
2466
- <div class="doc doc-object doc-function">
2467
-
2468
-
2469
-
2470
2395
  <h2 id="ciocore.api_client.request_instance_types" class="doc doc-heading">
2471
2396
  <code class="highlight language-python"><span class="n">request_instance_types</span><span class="p">(</span><span class="n">as_dict</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span></code>
2472
2397
 
@@ -991,7 +991,7 @@
991
991
 
992
992
  <div class="doc doc-contents ">
993
993
 
994
- <p>Provide projects, instance types, software package, and account data.</p>
994
+ <p>Provide projects, instance types, and software package data.</p>
995
995
 
996
996
  <p><strong>Keyword arguments:</strong></p>
997
997
  <table>
@@ -1036,11 +1036,11 @@
1036
1036
  <tbody>
1037
1037
  <tr>
1038
1038
  <td><code>dict</code></td>
1039
- <td><p>Keys are <code>projects</code>, <code>instance_types</code>, <code>software</code>, <code>account</code>.</p></td>
1039
+ <td><p>Keys are <code>projects</code>, <code>instance_types</code>, <code>software</code>.</p></td>
1040
1040
  </tr>
1041
1041
  </tbody>
1042
1042
  </table> <p>When you access the data, if it has already been fetched, it will be returned. Otherwise,
1043
- requests will be made to fetch fresh data. You may need to authenticate in order to access the
1043
+ requests will be made to fetch the data. You may need to authenticate in order to access the
1044
1044
  data.</p>
1045
1045
  <p>The set of instance types and software can be pruned to match the available platforms
1046
1046
  represented by each other. For example, if the instance types come from an orchestrator that
@@ -1061,9 +1061,6 @@ available machines configurations.</p>
1061
1061
  <p><strong>software</strong> is a PackageTree object containing either all
1062
1062
  the software available at Conductor, or a subset based on specified products.</p>
1063
1063
  </li>
1064
- <li>
1065
- <p><strong>account</strong> is a dictionary containing account information gained from the JWT token.</p>
1066
- </li>
1067
1064
  </ul>
1068
1065
 
1069
1066
  <p><strong>Examples:</strong></p>
@@ -1078,16 +1075,13 @@ the software available at Conductor, or a subset based on specified products.</p
1078
1075
  </code></pre></div>
1079
1076
  <div class="highlight"><pre><span></span><code><span class="o">&gt;&gt;&gt;</span> <span class="n">coredata</span><span class="o">.</span><span class="n">data</span><span class="p">()[</span><span class="s2">&quot;instance_types&quot;</span><span class="p">]</span>
1080
1077
  <span class="o">&lt;</span><span class="n">ciocore</span><span class="o">.</span><span class="n">hardware_set</span><span class="o">.</span><span class="n">HardwareSet</span> <span class="nb">object</span> <span class="n">at</span> <span class="mh">0x0000028941CD9DC0</span><span class="o">&gt;</span>
1081
- </code></pre></div>
1082
- <div class="highlight"><pre><span></span><code><span class="o">&gt;&gt;&gt;</span> <span class="n">coredata</span><span class="o">.</span><span class="n">data</span><span class="p">()[</span><span class="s2">&quot;account&quot;</span><span class="p">][</span><span class="s2">&quot;account_id&quot;</span><span class="p">]</span>
1083
- <span class="mi">123456789012</span>
1084
1078
  </code></pre></div>
1085
1079
 
1086
1080
  <details class="quote">
1087
1081
  <summary>Source code in <code>ciocore/data.py</code></summary>
1088
1082
  <div class="highlight"><pre><span></span><code><span class="k">def</span> <span class="nf">data</span><span class="p">(</span><span class="n">force</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
1089
1083
  <span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
1090
- <span class="sd"> Provide projects, instance types, software package, and account data.</span>
1084
+ <span class="sd"> Provide projects, instance types, and software package data.</span>
1091
1085
 
1092
1086
  <span class="sd"> Keyword Args:</span>
1093
1087
  <span class="sd"> force: (bool) If `True`, then force the system to fetch fresh data -- Defaults to `False`.</span>
@@ -1096,10 +1090,10 @@ the software available at Conductor, or a subset based on specified products.</p
1096
1090
  <span class="sd"> ValueError: Module was not initialized with [init()](/data/#ciocore.data.init).</span>
1097
1091
 
1098
1092
  <span class="sd"> Returns:</span>
1099
- <span class="sd"> dict: Keys are `projects`, `instance_types`, `software`, `account`.</span>
1093
+ <span class="sd"> dict: Keys are `projects`, `instance_types`, `software`.</span>
1100
1094
 
1101
1095
  <span class="sd"> When you access the data, if it has already been fetched, it will be returned. Otherwise,</span>
1102
- <span class="sd"> requests will be made to fetch fresh data. You may need to authenticate in order to access the</span>
1096
+ <span class="sd"> requests will be made to fetch the data. You may need to authenticate in order to access the</span>
1103
1097
  <span class="sd"> data.</span>
1104
1098
 
1105
1099
  <span class="sd"> The set of instance types and software can be pruned to match the available platforms</span>
@@ -1119,7 +1113,6 @@ the software available at Conductor, or a subset based on specified products.</p
1119
1113
  <span class="sd"> * **software** is a PackageTree object containing either all</span>
1120
1114
  <span class="sd"> the software available at Conductor, or a subset based on specified products.</span>
1121
1115
 
1122
- <span class="sd"> * **account** is a dictionary containing account information gained from the JWT token.</span>
1123
1116
 
1124
1117
  <span class="sd"> Examples:</span>
1125
1118
  <span class="sd"> &gt;&gt;&gt; from ciocore import data as coredata</span>
@@ -1133,10 +1126,6 @@ the software available at Conductor, or a subset based on specified products.</p
1133
1126
 
1134
1127
  <span class="sd"> &gt;&gt;&gt; coredata.data()[&quot;instance_types&quot;]</span>
1135
1128
  <span class="sd"> &lt;ciocore.hardware_set.HardwareSet object at 0x0000028941CD9DC0&gt;</span>
1136
-
1137
- <span class="sd"> &gt;&gt;&gt; coredata.data()[&quot;account&quot;][&quot;account_id&quot;]</span>
1138
- <span class="sd"> 123456789012</span>
1139
-
1140
1129
  <span class="sd"> &quot;&quot;&quot;</span>
1141
1130
 
1142
1131
  <span class="k">global</span> <span class="n">__data__</span>
@@ -1169,9 +1158,6 @@ the software available at Conductor, or a subset based on specified products.</p
1169
1158
  <span class="k">pass</span>
1170
1159
  <span class="n">__data__</span><span class="p">[</span><span class="s2">&quot;extra_environment&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">extra_env_vars</span>
1171
1160
 
1172
- <span class="n">__data__</span><span class="p">[</span><span class="s2">&quot;account&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">api_client</span><span class="o">.</span><span class="n">get_account_data</span><span class="p">()</span>
1173
-
1174
-
1175
1161
  <span class="c1"># PLATFORMS</span>
1176
1162
  <span class="n">it_platforms</span> <span class="o">=</span> <span class="nb">set</span><span class="p">([</span><span class="n">it</span><span class="p">[</span><span class="s2">&quot;operating_system&quot;</span><span class="p">]</span> <span class="k">for</span> <span class="n">it</span> <span class="ow">in</span> <span class="n">instance_types</span><span class="p">])</span>
1177
1163
  <span class="n">valid_platforms</span> <span class="o">=</span> <span class="n">it_platforms</span><span class="o">.</span><span class="n">intersection</span><span class="p">(</span><span class="n">__platforms__</span><span class="p">)</span>
Binary file