Skip to content

Commit f78e52b

Browse files
committed
Add org plugins
1 parent 5e2347e commit f78e52b

File tree

6 files changed

+58
-47
lines changed

6 files changed

+58
-47
lines changed

metablock/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from .spaces import Extension, Service, Space, SpaceExtension
55
from .user import User
66

7-
__version__ = "0.1.3"
7+
__version__ = "0.1.4"
88
__all__ = [
99
"Metablock",
1010
"MetablockError",

metablock/client.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55

66
from aiohttp import ClientSession
77

8-
from .components import CrudComponent, HttpComponent, MetablockResponseError
8+
from .components import HttpComponent, MetablockResponseError
99
from .orgs import Orgs
10-
from .spaces import Domains, Services, Space, Spaces
10+
from .spaces import Domains, Extensions, Plugins, Services, Space, Spaces
1111
from .user import User
1212

1313
DEFAULT_USER_AGENT = f"Python/{'.'.join(map(str, sys.version_info[:2]))} metablock"
@@ -16,8 +16,7 @@
1616

1717

1818
class Metablock(HttpComponent):
19-
"""Metablock client
20-
"""
19+
"""Metablock client"""
2120

2221
url: str = os.environ.get("METABLOCK_URL", "https://api.metablock.io/v1")
2322
auth_key: str = os.getenv("METABLOCK_API_TOKEN", "")
@@ -42,8 +41,8 @@ def __init__(
4241
self.domains = Domains(self)
4342
self.orgs: Orgs = Orgs(self)
4443
self.services: Services = Services(self)
45-
self.plugins: CrudComponent = CrudComponent(self, "plugins")
46-
self.extensions: CrudComponent = CrudComponent(self, "extensions")
44+
self.plugins: Plugins = Plugins(self)
45+
self.extensions: Extensions = Extensions(self)
4746

4847
def __repr__(self) -> str:
4948
return self.url

metablock/components.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,7 @@ async def delete(self, url: str, **kwargs) -> Any:
5555

5656

5757
class MetablockEntity(HttpComponent):
58-
"""A Metablock entity
59-
"""
58+
"""A Metablock entity"""
6059

6160
__slots__ = ("root", "data")
6261

metablock/orgs.py

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from typing import Dict
22

33
from .components import CrudComponent, MetablockEntity
4-
from .spaces import Extensions, Spaces
4+
from .spaces import Extensions, Plugins, Spaces
55

66

77
class OrgSpaces(Spaces):
@@ -14,14 +14,26 @@ def list_create_url(self) -> str:
1414
return "%s/%s" % (self.root.url, self.name)
1515

1616

17+
class OrgPlugins(Plugins):
18+
def list_create_url(self) -> str:
19+
return "%s/%s" % (self.root.url, self.name)
20+
21+
1722
class Org(MetablockEntity):
18-
"""Object representing an Organization
19-
"""
23+
"""Object representing an Organization"""
24+
25+
@property
26+
def name(self):
27+
return self.data.get("short_name", "")
2028

2129
@property
2230
def spaces(self) -> OrgSpaces:
2331
return OrgSpaces(self, "spaces")
2432

33+
@property
34+
def plugins(self) -> OrgPlugins:
35+
return OrgPlugins(self, "plugins")
36+
2537
@property
2638
def extensions(self) -> OrgExtensions:
2739
return OrgExtensions(self, "extensions")
@@ -39,18 +51,15 @@ async def add_info(self, **data) -> Dict:
3951

4052

4153
class Member(MetablockEntity):
42-
"""Object representing a organization member
43-
"""
54+
"""Object representing a organization member"""
4455

4556

4657
class Role(MetablockEntity):
47-
"""Object representing a organization role
48-
"""
58+
"""Object representing a organization role"""
4959

5060

5161
class Members(CrudComponent):
52-
"""Metablock organizations
53-
"""
62+
"""Metablock organizations"""
5463

5564
Entity = Member
5665

@@ -60,8 +69,7 @@ def url(self) -> str:
6069

6170

6271
class Roles(CrudComponent):
63-
"""Metablock organizations
64-
"""
72+
"""Metablock organizations"""
6573

6674
Entity = Role
6775

@@ -71,7 +79,6 @@ def url(self) -> str:
7179

7280

7381
class Orgs(CrudComponent):
74-
"""Metablock organizations
75-
"""
82+
"""Metablock organizations"""
7683

7784
Entity = Org

metablock/spaces.py

Lines changed: 30 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
from .components import Component, CrudComponent, MetablockEntity
66

77

8+
# Space
89
class Space(MetablockEntity):
9-
"""Object representing a space
10-
"""
10+
"""Object representing a space"""
1111

1212
@property
1313
def services(self) -> "SpaceServices":
@@ -19,15 +19,14 @@ def extensions(self) -> "SpaceExtensions":
1919

2020

2121
class Spaces(CrudComponent):
22-
"""Spaces
23-
"""
22+
"""Spaces"""
2423

2524
Entity = Space
2625

2726

27+
# Service
2828
class Service(MetablockEntity):
29-
"""Object representing a service
30-
"""
29+
"""Object representing a service"""
3130

3231
@property
3332
def plugins(self):
@@ -48,33 +47,31 @@ async def ship(self, name: str, bundle: str, env="stage", *, callback=None) -> D
4847
return await self.post(f"{self.url}/deployments", data=data, callback=callback)
4948

5049

51-
class Extension(MetablockEntity):
52-
"""Object representing an Extension
53-
"""
50+
class Services(CrudComponent):
51+
"""Services"""
5452

53+
Entity = Service
5554

56-
class SpaceExtension(MetablockEntity):
57-
"""Object representing an SpaceExtension
58-
"""
5955

56+
class SpaceServices(Services):
57+
def list_create_url(self) -> str:
58+
return "%s/%s" % (self.root.url, self.name)
6059

61-
class Services(CrudComponent):
62-
"""Services
63-
"""
6460

65-
Entity = Service
61+
# Extension
62+
class Extension(MetablockEntity):
63+
"""Object representing an Extension"""
6664

6765

6866
class Extensions(CrudComponent):
69-
"""Extensions
70-
"""
67+
"""Extensions"""
7168

7269
Entity = Extension
7370

7471

75-
class SpaceServices(Services):
76-
def list_create_url(self) -> str:
77-
return "%s/%s" % (self.root.url, self.name)
72+
# SpaceExtension
73+
class SpaceExtension(MetablockEntity):
74+
"""Object representing an SpaceExtension"""
7875

7976

8077
class SpaceExtensions(CrudComponent):
@@ -84,12 +81,22 @@ def list_create_url(self) -> str:
8481
return "%s/%s" % (self.root.url, self.name)
8582

8683

84+
# Plugin
85+
class Plugin(MetablockEntity):
86+
"""Object representing an Plugin"""
87+
88+
89+
class Plugins(CrudComponent):
90+
"""Plugins"""
91+
92+
Entity = Plugin
93+
94+
8795
# ServicePlugin
8896

8997

9098
class ServicePlugin(MetablockEntity):
91-
"""Object representing an ServicePlugin
92-
"""
99+
"""Object representing an ServicePlugin"""
93100

94101

95102
class ServicePlugins(CrudComponent):

metablock/user.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@
55

66

77
class User(MetablockEntity):
8-
"""Object representing a Metablock user
9-
"""
8+
"""Object representing a Metablock user"""
109

1110
@property
1211
def url(self) -> str:

0 commit comments

Comments
 (0)