Skip to content

Commit 988a419

Browse files
Refactoring, formatting (#39)
* Refactoring, formatting * Delete codefresh.py * Adding python-dotenv dependency * update settings --------- Co-authored-by: Luke Goodfellow <107487942+ThatAmatoGuy@users.noreply.github.com>
1 parent ab54717 commit 988a419

File tree

11 files changed

+135
-78
lines changed

11 files changed

+135
-78
lines changed

.devcontainer/devcontainer.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@
55
"postCreateCommand": "pip install -e .",
66
"customizations": {
77
"vscode": {
8-
// "settings": {
9-
// },
8+
"settings": {
9+
"python.analysis.typeCheckingMode": "strict"
10+
},
1011
"extensions": [
1112
"davidanson.vscode-markdownlint",
1213
"redhat.vscode-yaml",

codresh-support-package.env

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
CF_API_KEY=
2+
CF_URL=
3+
USERPROFILE=

pyproject.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ dependencies = [
99
"click>=8.1",
1010
"kubernetes>=31.1",
1111
"PyYAML>=6.0",
12-
"requests>=2.32"
12+
"requests>=2.32",
13+
"python-dotenv>=1.1.1"
1314
]
1415

1516
[project.scripts]

src/cf_support/logic/codefresh.py

Lines changed: 0 additions & 75 deletions
This file was deleted.
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import requests
2+
3+
4+
class AccountController:
5+
def __init__(self, cf_creds: dict[str, dict[str, str]]) -> None:
6+
self.base_url = cf_creds["base_url"]
7+
self.auth_headers = cf_creds["headers"]
8+
9+
def get_runtimes(self):
10+
response = requests.get(
11+
f"{self.base_url}/runtime-environments",
12+
headers=self.auth_headers["headers"], # type: ignore
13+
)
14+
return response.json()
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
import yaml
2+
import os
3+
4+
5+
class AuthController:
6+
def __init__(self, env_token: str | None, env_url: str | None) -> None:
7+
self.env_token = env_token
8+
self.env_url = env_url
9+
10+
def get_cf_credentials(
11+
self,
12+
) -> dict[str, dict[str, str] | str] | None:
13+
env_token = self.env_token
14+
env_url = self.env_url
15+
cf_credentials: dict[str, dict[str, str] | str] | None = None
16+
17+
if env_token and env_url:
18+
auth_header: dict[str, str] = {"Authorization": env_token}
19+
20+
cf_credentials = {
21+
"headers": auth_header,
22+
"base_url": f"{env_url}/api",
23+
}
24+
25+
else:
26+
config_path = (
27+
f"{os.getenv('USERPROFILE')}/.cfconfig"
28+
if os.name == "nt"
29+
else f"{os.getenv('HOME')}/.cfconfig"
30+
)
31+
32+
with open(config_path, "r") as config_file:
33+
config = yaml.safe_load(config_file)
34+
35+
current_context = config["contexts"].get(config["current-context"])
36+
37+
if current_context:
38+
context_token = current_context["token"]
39+
context_url = current_context["url"]
40+
41+
if context_token and context_url:
42+
auth_header = {"Authorization": context_token}
43+
cf_credentials = {
44+
"headers": auth_header,
45+
"base_url": f"{context_url}/api",
46+
}
47+
48+
return cf_credentials
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import requests
2+
3+
4+
class RuntimeController:
5+
def __init__(self, cf_creds: dict[str, dict[str, str]]) -> None:
6+
self.base_url = cf_creds["base_url"]
7+
self.auth_headers = cf_creds["headers"]
8+
9+
def get_spec(self, runtime_name: str):
10+
response = requests.get(
11+
f"{self.base_url}/runtime-environments/{runtime_name}",
12+
headers=self.auth_headers,
13+
)
14+
return response.json()
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import requests
2+
3+
4+
class SystemController:
5+
def __init__(self, cf_creds: dict[str, dict[str, str]]) -> None:
6+
self.base_url = cf_creds["base_url"]
7+
self.auth_headers = cf_creds["headers"]
8+
9+
def get_all_accounts(self):
10+
response = requests.get(
11+
f"{self.base_url}/admin/accounts",
12+
headers=self.auth_headers,
13+
)
14+
return response.json()
15+
16+
def get_all_runtimes(self):
17+
response = requests.get(
18+
f"{self.base_url}/admin/runtime-environments",
19+
headers=self.auth_headers,
20+
)
21+
return response.json()
22+
23+
def get_feature_flags(self):
24+
response = requests.get(
25+
f"{self.base_url}/admin/features",
26+
headers=self.auth_headers,
27+
)
28+
return response.json()
29+
30+
def get_total_users(self):
31+
response = requests.get(
32+
f"{self.base_url}/admin/user?limit=1&page=1",
33+
headers=self.auth_headers,
34+
)
35+
users = response.json()
36+
37+
return {"totalUsers": users["total"]}

src/cf_support/logic/controllers/user_controller.py

Whitespace-only changes.

src/cf_support/logic/main.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
from dotenv import load_dotenv
2+
import os
3+
4+
from .controllers.auth_controller import AuthController
5+
6+
load_dotenv()
7+
8+
def main():
9+
env_token = os.getenv("CF_API_KEY")
10+
env_url = os.getenv("CF_URL")
11+
auth_controller = AuthController(env_token, env_url)
12+
13+
if __name__ == "__main__":
14+
main()

0 commit comments

Comments
 (0)