forked from smdoh/pipebird
-
Notifications
You must be signed in to change notification settings - Fork 0
/
register_license.py
45 lines (40 loc) · 1.64 KB
/
register_license.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import json
from typing import List, TypedDict, Literal
import requests
import argparse
from enum import Enum
class DeploymentState(Enum):
AWS_EXISTING_VPC = "AWS_EXISTING_VPC"
AWS_DEFAULT_VPC = "AWS_DEFAULT_VPC"
def __str__(self):
return self.value
parser = argparse.ArgumentParser(description='Notify pipebird that instance is running.')
parser.add_argument('-d', '--deploymentVersion', type=str, metavar='', required=True, help="Deployment version e.g. 0.1.1")
parser.add_argument('-s', '--strategy', type=DeploymentState, metavar='', required=True, help='"AWS_EXISTING_VPC" | "AWS_DEFAULT_VPC"')
parser.add_argument('-l', '--licenseKey', type=str, metavar='', required=True, help="Pipebird license key")
args = parser.parse_args()
class Version(TypedDict):
version: str
release_date: str
StrategyLiteral = Literal["AWS_EXISTING_VPC", "AWS_DEFAULT_VPC"]
class UpdateDeployment(TypedDict):
strategy: StrategyLiteral
deploymentVersion: str # semantic version e.g. "0.1.0"
agentVersion: str # semantic version e.g. "0.1.0"
if __name__ == '__main__':
versions: List[Version] = json.load(open('versions.json'))
latest_version = versions[0]
deployment: UpdateDeployment = {
"strategy": args.strategy.value,
"deploymentVersion": args.deploymentVersion,
"agentVersion": latest_version["version"]
}
try:
resp = requests.post(
'https://my.pipebird.com/api/deployment',
json=deployment,
headers={'Authorization': f'Bearer {args.licenseKey}'},
timeout=10
)
except:
print(f"Failed to reach my.pipebird.com servers.")