-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #11 from globocom/creation_of_project
Creation of project
- Loading branch information
Showing
14 changed files
with
138 additions
and
49 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,5 @@ | ||
from app.config.data_module import DataModule | ||
from app.config.use_case_module import UseCaseModule | ||
from app.config.domain_module import DomainModule | ||
|
||
__all__ = ['DataModule', 'UseCaseModule'] | ||
__all__ = ['DataModule', 'UseCaseModule', 'DomainModule'] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
from injector import Module, provider, singleton | ||
|
||
from app.domain.repositories import ClusterRepository, ProjectRepository | ||
from app.domain.cluster_group_builder import ClusterGroupBuilder | ||
|
||
class DomainModule(Module): | ||
|
||
@provider | ||
@singleton | ||
def provide_cluster_group_builder(self, cluster_repository: ClusterRepository, project_repository: ProjectRepository) -> ClusterGroupBuilder: | ||
return ClusterGroupBuilder(cluster_repository=cluster_repository, project_repository=project_repository) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,42 +1,43 @@ | ||
from injector import Module, provider, singleton | ||
|
||
from app.domain.source_locator import SourceLocator | ||
from app.domain.repositories import ClusterRepository, EnforcementRepository | ||
from app.domain.repositories import EnforcementRepository | ||
from app.domain.use_case import ApplyRulesUseCase, SyncRulesUseCase, UpdateRulesUseCase | ||
from app.domain.cluster_group_builder import ClusterGroupBuilder | ||
|
||
|
||
class UseCaseModule(Module): | ||
|
||
@provider | ||
@singleton | ||
def provider_apply_rules( | ||
self, cluster_repo: ClusterRepository, locator: SourceLocator, | ||
enforcement_repo: EnforcementRepository | ||
self, locator: SourceLocator, enforcement_repo: EnforcementRepository, | ||
cluster_group_builder: ClusterGroupBuilder | ||
) -> ApplyRulesUseCase: | ||
return ApplyRulesUseCase( | ||
cluster_repository=cluster_repo, | ||
enforcement_repository=enforcement_repo, | ||
source_locator=locator | ||
source_locator=locator, | ||
cluster_group_builder=cluster_group_builder | ||
) | ||
|
||
@provider | ||
@singleton | ||
def provider_sync_rules( | ||
self, cluster_repo: ClusterRepository, locator: SourceLocator, | ||
enforcement_repo: EnforcementRepository | ||
self, locator: SourceLocator, enforcement_repo: EnforcementRepository, | ||
cluster_group_builder: ClusterGroupBuilder | ||
) -> SyncRulesUseCase: | ||
return SyncRulesUseCase( | ||
cluster_repository=cluster_repo, | ||
enforcement_repository=enforcement_repo, | ||
cluster_group_builder=cluster_group_builder, | ||
source_locator=locator | ||
) | ||
|
||
@provider | ||
@singleton | ||
def provider_update_rules(self, enforcement_repo: EnforcementRepository, | ||
cluster_repo: ClusterRepository) -> UpdateRulesUseCase: | ||
cluster_group_builder: ClusterGroupBuilder) -> UpdateRulesUseCase: | ||
return UpdateRulesUseCase( | ||
enforcement_repository=enforcement_repo, | ||
cluster_repository=cluster_repo | ||
cluster_group_builder=cluster_group_builder | ||
) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
import attr | ||
|
||
from argocd_client import ProjectServiceApi | ||
from app.domain.entities import Cluster | ||
from app.domain.repositories import ProjectRepository | ||
|
||
|
||
@attr.s(auto_attribs=True) | ||
class ProjectService(ProjectRepository): | ||
_project_service: ProjectServiceApi | ||
|
||
def create_project(self, cluster: Cluster) -> None: | ||
|
||
body = { | ||
'project': { | ||
'metadata': { | ||
'name': cluster.name | ||
}, | ||
'spec': { | ||
'destinations': [{'server': cluster.url, 'namespace': '*'}], | ||
'sourceRepos': ['*'], | ||
'clusterResourceBlacklist': [], | ||
'clusterResourceWhitelist': [], | ||
'namespaceResourceBlacklist': [], | ||
'namespaceResourceWhitelist': [], | ||
'orphanedResources': None, | ||
'roles': [], | ||
'signatureKeys': [], | ||
'syncWindows': [] | ||
} | ||
} | ||
} | ||
|
||
|
||
self._project_service.create_mixin6(body) | ||
|
||
def remove_project(self, project_name: str) -> None: | ||
self._project_service.delete_mixin6(name=project_name) | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
from typing import List | ||
import attr | ||
|
||
from app.domain.entities import Cluster | ||
from app.domain.cluster_group import ClusterGroup | ||
from app.domain.repositories import ClusterRepository, ProjectRepository | ||
|
||
|
||
@attr.s(auto_attribs=True) | ||
class ClusterGroupBuilder: | ||
_cluster_repository: ClusterRepository | ||
_project_repository: ProjectRepository | ||
|
||
def build(self, clusters: List[Cluster]) -> ClusterGroup: | ||
return ClusterGroup(clusters=clusters, | ||
cluster_repository=self._cluster_repository, | ||
project_repository=self._project_repository) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -37,9 +37,4 @@ class ClusterRule(BaseModel): | |
|
||
|
||
class ClusterRuleStatus(BaseModel): | ||
clusters: List[dict] | ||
|
||
|
||
|
||
|
||
|
||
clusters: List[dict] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -23,11 +23,4 @@ spec: | |
ignore: #Ignore clusters that have the names listed below. | ||
- cluster1 | ||
- cluster2 | ||
- cluster3 | ||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
- cluster3 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters