Skip to content
This repository has been archived by the owner on Oct 18, 2024. It is now read-only.

Merge forward 1.7 Changes #41

Closed
wants to merge 16 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 5 additions & 28 deletions .github/workflows/merge_forward.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: Create Merge Forward PRs
on:
push:
branches:
- release/1.6
- release/1.7

jobs:
create_pull_request_postgres:
Expand All @@ -25,9 +25,9 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
run: |
git checkout -b merge-forward-postgres origin/release/1.6
git checkout -b merge-forward-postgres origin/release/1.7
git push origin merge-forward-postgres
hub pull-request -b release/postgres -h merge-forward-postgres -m "Merge forward updates release/1.6 -> release/postgres" || true
hub pull-request -b release/postgres/1.7 -h merge-forward-postgres -m "Merge forward updates release/1.7 -> release/postgres/1.7" || true

create_pull_request_firewall:
runs-on: ubuntu-latest
Expand All @@ -48,29 +48,6 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
run: |
git checkout -b merge-forward-firewall origin/release/1.6
git checkout -b merge-forward-firewall origin/release/1.7
git push origin merge-forward-firewall
hub pull-request -b release/firewall -h merge-forward-firewall -m "Merge forward updates release/1.6 -> release/firewall" || true

create_pull_request_release_1_7:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2

- name: Install hub
run: |
sudo snap install hub --classic

- name: Setup Git
run: |
git config --global user.name github-actions[bot]
git config --global user.email github-actions[bot]@users.noreply.github.com

- name: Create PR
env:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
run: |
git checkout -b merge-forward-release/1.7 origin/release/1.6
git push origin merge-forward-release/1.7
hub pull-request -b release/1.7 -h merge-forward-release/1.7 -m "Merge forward updates release/1.6 -> release/1.7" || true
hub pull-request -b release/firewall/1.7 -h merge-forward-firewall -m "Merge forward updates release/1.7 -> release/firewall/1.7" || true
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ cenm-*/
# logs
.logs/*

# runtime
.tmp-*

# misc artifacts
*.jar
*.zip
7 changes: 4 additions & 3 deletions .src/managers/certificate_manager.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from utils import SystemInteract, Logger
from utils import SystemInteract, Logger, java_string, get_cenm_java_version
from typing import List
from services.base_services import DeploymentService

Expand All @@ -14,9 +14,10 @@ class CertificateManager:
"""Manages the certificates for the CENM deployment.

"""
def __init__(self):
def __init__(self, pki_version: str):
self.logger = Logger().get_logger(__name__)
self.sysi = SystemInteract()
self.java_version = get_cenm_java_version(pki_version)

def _copy(self, source, destination):
self.sysi.run(f'cp cenm-pki/{source} {destination}')
Expand Down Expand Up @@ -106,7 +107,7 @@ def generate(self) -> int:

if not all(certs.values()):
print('Generating certificates')
exits.append(self.sysi.run_get_exit_code(f'(cd cenm-pki && java -jar pkitool.jar -f pki.conf)'))
exits.append(self.sysi.run_get_exit_code(f'(cd cenm-pki && {java_string(self.java_version)} && java -jar pkitool.jar -f pki.conf)'))
self._distribute_certs()
return max(exits)

Expand Down
39 changes: 26 additions & 13 deletions .src/managers/service_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,8 @@ def __init__(self,
self.deploy_time = DeployTimeConstants
else:
self.deploy_time = DeployTimeAngelConstants
self.cenm_java_version = get_cenm_java_version(cenm_version)
self.corda_java_version = get_corda_java_version(corda_version)

self.AUTH = AuthService(
abb= 'auth',
Expand All @@ -82,7 +84,8 @@ def __init__(self,
password= password,
config_file= 'auth.conf',
deployment_time=self.deploy_time.AUTH_DEPLOY_TIME.value,
certificates= 2)
certificates= 2,
java_version= self.cenm_java_version)
self.CLIENT = AuthClientService(
abb= 'client',
dir= 'auth',
Expand Down Expand Up @@ -112,7 +115,8 @@ def __init__(self,
password= password,
config_file= 'gateway.conf',
deployment_time=self.deploy_time.GATEWAY_DEPLOY_TIME.value,
certificates= 4)
certificates= 4,
java_version= self.cenm_java_version)
self.GATEWAY_PLUGIN = GatewayPluginService(
abb= 'gateway-plugin',
dir= 'gateway',
Expand Down Expand Up @@ -142,7 +146,8 @@ def __init__(self,
password= password,
config_file= 'identitymanager-init.conf',
deployment_time=self.deploy_time.IDMAN_DEPLOY_TIME.value,
certificates= 3)
certificates= 3,
java_version= self.cenm_java_version)
self.IDMAN_ANGEL = IdentityManagerAngelService(
abb= 'idman-angel',
dir= 'idman',
Expand All @@ -154,7 +159,8 @@ def __init__(self,
password= password,
config_file= 'identitymanager-init.conf',
deployment_time=self.deploy_time.ANGEL_DEPLOY_TIME.value,
certificates= 3)
certificates= 3,
java_version= self.cenm_java_version)
self.CRR_TOOL = CrrToolService(
abb= 'crr-tool',
dir= 'idman',
Expand All @@ -175,7 +181,8 @@ def __init__(self,
password= password,
config_file= 'networkmap-init.conf',
deployment_time=self.deploy_time.NMAP_DEPLOY_TIME.value,
certificates= 4)
certificates= 4,
java_version= self.cenm_java_version)
self.NMAP_ANGEL = NetworkMapAngelService(
abb= 'nmap-angel',
dir= 'nmap',
Expand All @@ -187,7 +194,8 @@ def __init__(self,
password= password,
config_file= 'networkmap-init.conf',
deployment_time=self.deploy_time.ANGEL_DEPLOY_TIME.value,
certificates= 4)
certificates= 4,
java_version= self.cenm_java_version)
self.NOTARY = NotaryService(
abb= 'notary',
dir= 'notary',
Expand All @@ -199,7 +207,8 @@ def __init__(self,
password= password,
config_file= 'notary.conf',
deployment_time=self.deploy_time.NOTARY_DEPLOY_TIME.value,
certificates= 1)
certificates= 1,
java_version= self.corda_java_version)
self.NODE = NodeService(
abb= 'node',
dir= 'node',
Expand All @@ -211,7 +220,8 @@ def __init__(self,
password= password,
config_file= 'node.conf',
deployment_time=self.deploy_time.NODE_DEPLOY_TIME.value,
certificates= 1)
certificates= 1,
java_version= self.corda_java_version)
self.FINANCE_CONTRACTS_CORDAPP = FinanceContractsCordapp(
abb= 'finance-contracts',
dir= 'node',
Expand Down Expand Up @@ -249,7 +259,8 @@ def __init__(self,
username= username,
password= password,
config_file= 'pki.conf',
deployment_time=None)
deployment_time=None,
java_version= self.cenm_java_version)
self.SIGNER = SignerService(
abb= 'signer',
dir= 'signer',
Expand All @@ -261,7 +272,8 @@ def __init__(self,
password= password,
config_file= 'signer.conf',
deployment_time=self.deploy_time.SIGNER_DEPLOY_TIME.value,
certificates= 6)
certificates= 6,
java_version= self.cenm_java_version)
self.SIGNER_CA_PLUGIN = SignerPluginCAService(
abb= 'signer-ca-plugin',
dir= 'signer',
Expand Down Expand Up @@ -291,7 +303,8 @@ def __init__(self,
password= password,
config_file= '',
deployment_time=self.deploy_time.ZONE_DEPLOY_TIME.value,
certificates= 2)
certificates= 2,
java_version= self.cenm_java_version)

self.db_manager = DatabaseManager(self.get_database_services(), DownloadManager(username, password))
self.config_manager = ConfigManager()
Expand Down Expand Up @@ -461,7 +474,6 @@ def clean_all(self,
clean_runtime
)
else:
self.sysi.remove(".logs/*", silent=True)
for service in [*self.get_deployment_services(deploy_without_angel=self.deploy_without_angel), self.NODE, self.PKI]:
if clean_deep:
service.clean_all()
Expand All @@ -472,6 +484,7 @@ def clean_all(self,
service.clean_certificates()
if clean_runtime:
service.clean_runtime()
self.sysi.remove(".logs/*", silent=True)

def clean_specific_artifacts(self, services: List[str]):
print("Cleaning individual artifacts does not work with any other arguments, script will exit after downloading.")
Expand All @@ -484,4 +497,4 @@ def clean_specific_artifacts(self, services: List[str]):
print(e)

def versions(self):
return self.printer.print_cenm_version()
return self.printer.print_cenm_version()
26 changes: 17 additions & 9 deletions .src/services/base_services.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@
from abc import ABC
from pyhocon import ConfigFactory
from managers.download_manager import DownloadManager
from utils import SystemInteract, Logger, Constants
from utils import SystemInteract, Logger, Constants, java_string
import glob
import uuid
import re

class BaseService(ABC):
"""Base service for all services to inherit.
Expand Down Expand Up @@ -143,6 +144,10 @@ class DeploymentService(BaseService):
The time taken for the service to deploy (average)
this gives an indication how long the deployment manager
should sleep before starting the next service
certificates:
The number of certificates required for the service
java_version:
The version of java to use for the service

"""
def __init__(self,
Expand All @@ -156,7 +161,8 @@ def __init__(self,
password: str,
config_file: str,
deployment_time: int,
certificates: int = None
certificates: int = None,
java_version: int = 8
):
super().__init__(
abb,
Expand All @@ -174,6 +180,7 @@ def __init__(self,
self.config_file = config_file
self.deployment_time = deployment_time
self.certificates = certificates
self.java_version = java_version

def __str__(self) -> str:
return f"DeploymentService[{self.abb}, {self.dir}, {self.artifact_name}, {self.ext}, {self.version}]"
Expand All @@ -189,8 +196,8 @@ def deploy(self):
self.logger.info(f'Thread started to deploy {self.artifact_name}')
while True:
try:
self.logger.debug(f'[Running] (cd {self.dir} && java -jar {self.artifact_name}.jar -f {self.config_file}) to start {self.artifact_name} service')
exit_code = self.sysi.run_get_exit_code(f'(cd {self.dir} && java -jar {self.artifact_name}.jar -f {self.config_file})')
self.logger.debug(f'[Running] (cd {self.dir} && {java_string(self.java_version)} && java -jar {self.artifact_name}.jar -f {self.config_file}) to start {self.artifact_name} service')
exit_code = self.sysi.run_get_exit_code(f'(cd {self.dir} && {java_string(self.java_version)} && java -jar {self.artifact_name}.jar -f {self.config_file})')
if exit_code != 0:
raise RuntimeError(f'{self.artifact_name} service stopped')
except:
Expand Down Expand Up @@ -278,7 +285,8 @@ def _copy(self, new_dir):
password=self.dlm.password,
config_file=self.config_file,
deployment_time=self.deployment_time,
certificates=self.certificates
certificates=self.certificates,
java_version=self.java_version
)
if not self.sysi.path_exists(f'cenm-{new_dir}'):
self._construct_new_node_dir(new_dir)
Expand All @@ -293,8 +301,8 @@ def _register_node(self, artifact_name):
self.sysi.wait_for_host_on_port(10000)
exit_code = -1
while exit_code != 0:
self.logger.debug(f'[Running] (cd {self.dir} && java -jar {artifact_name}.jar initial-registration --network-root-truststore ./certificates/network-root-truststore.jks --network-root-truststore-password trustpass -f {self.config_file}) to start {self.artifact_name} service')
exit_code = self.sysi.run_get_exit_code(f'(cd {self.dir} && java -jar {artifact_name}.jar initial-registration --network-root-truststore ./certificates/network-root-truststore.jks --network-root-truststore-password trustpass -f {self.config_file})')
self.logger.debug(f'[Running] (cd {self.dir} && {java_string(self.java_version)} && java -jar {artifact_name}.jar initial-registration --network-root-truststore ./certificates/network-root-truststore.jks --network-root-truststore-password trustpass -f {self.config_file}) to start {self.artifact_name} service')
exit_code = self.sysi.run_get_exit_code(f'(cd {self.dir} && {java_string(self.java_version)} && java -jar {artifact_name}.jar initial-registration --network-root-truststore ./certificates/network-root-truststore.jks --network-root-truststore-password trustpass -f {self.config_file})')

def deploy(self):
artifact_name = f'{self.artifact_name}-{self.version}'
Expand All @@ -308,8 +316,8 @@ def deploy(self):

while True:
try:
self.logger.debug(f'[Running] (cd {self.dir} && java -jar {artifact_name}.jar -f {self.config_file}) to start {self.artifact_name} service')
exit_code = self.sysi.run_get_exit_code(f'(cd {self.dir} && java -jar {artifact_name}.jar -f {self.config_file})')
self.logger.debug(f'[Running] (cd {self.dir} && {java_string(self.java_version)} && java -jar {artifact_name}.jar -f {self.config_file}) to start {self.artifact_name} service')
exit_code = self.sysi.run_get_exit_code(f'(cd {self.dir} && {java_string(self.java_version)} && java -jar {artifact_name}.jar -f {self.config_file})')
if exit_code != 0:
raise RuntimeError(f'{self.artifact_name} service stopped')
except:
Expand Down
Loading
Loading