Skip to content

Commit

Permalink
extend usage of common package and introduced schemas
Browse files Browse the repository at this point in the history
  • Loading branch information
fweirich committed Mar 10, 2017
1 parent 6e5d46b commit 761d79c
Show file tree
Hide file tree
Showing 6 changed files with 104 additions and 36 deletions.
8 changes: 8 additions & 0 deletions opt/resource/check.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,17 @@
#! /usr/bin/env python3
import json
from concourse_common import jsonutil
from concourse_common import request
import schemas


def execute():

valid, payload = jsonutil.load_and_validate_payload(schemas, request.Request.OUT)

if valid is False:
return -1

print(json.dumps([{}]))

return 0
Expand Down
21 changes: 13 additions & 8 deletions opt/resource/input.py
Original file line number Diff line number Diff line change
@@ -1,30 +1,35 @@
import sys
from concourse_common import common
from concourse_common import jsonutil
from concourse_common import request
import json
import os
from model import Model
import name_generator
import file_io
import schemas


def execute(filepath):

try:
model = Model()
except:
valid, payload = jsonutil.load_and_validate_payload(schemas, request.Request.IN)

if valid is False:
return -1

if model.get_prefix() is (None or "") or not model.get_prefix().isalpha():
prefix = jsonutil.get_source_value(payload, "prefix")
version = jsonutil.get_version(payload, "version")

if prefix is (None or "") or not prefix.isalpha():
common.log("invalid Prefix")
return -1

file_io.write_to_file(os.path.join(filepath, "default"),
name_generator.generate_default(model.get_version(), model.get_prefix()))
name_generator.generate_default(version, prefix))

file_io.write_to_file(os.path.join(filepath, "heroku"),
name_generator.generate_heroku(model.get_version(), model.get_prefix()))
name_generator.generate_heroku(version, prefix))

print(json.dumps({"version" : {"version" : model.get_version()}}))
print(json.dumps({"version": {"version": version}}))

return 0

Expand Down
23 changes: 0 additions & 23 deletions opt/resource/model.py

This file was deleted.

12 changes: 7 additions & 5 deletions opt/resource/out.py
Original file line number Diff line number Diff line change
@@ -1,18 +1,20 @@
import sys
from concourse_common import common
from concourse_common import jsonutil
from concourse_common import request
import json
from model import Model
import file_io
import schemas


def execute(filepath):

try:
model = Model()
except:
valid, payload = jsonutil.load_and_validate_payload(schemas, request.Request.OUT)

if valid is False:
return -1

print(json.dumps({"version" : {"version": file_io.read(filepath, model.get_version_file())}}))
print(json.dumps({"version" : {"version": file_io.read(filepath, jsonutil.get_params_value(payload, "version"))}}))

return 0

Expand Down
72 changes: 72 additions & 0 deletions opt/resource/schemas.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
source_schema = {
"type": "object",
"properties": {
"prefix": {
"type": "string"
}
},
"required": [
"prefix"
]
}

version_schema = {
"oneOf": [{
"type": "object",
"properties": {
"schema": {
"type": "string"
}
}
}, {
"type": "null"
}]
}

check_schema = {
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"source": source_schema,
"version": version_schema
},
"required": [
"source"
]
}

out_schema = {
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"source": source_schema,
"params": {
"type": "object",
"properties": {
"version": {
"type": "string"
}
},
"required": [
"version"
]},
"additionalProperties": "false"
},
"required": [
"source",
"params"
]
}

in_schema = {
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"source": source_schema,
"version": version_schema
},
"required": [
"source",
"version"
]
}
4 changes: 4 additions & 0 deletions opt/resource/test_input.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,7 @@ def test_call_to_json(self, mock_io, mock_io2):
testutil.put_stdin(json.dumps({"source": {"prefix": "test"}, "version": {"version": "1.1.0"}}))
input.execute(test)
mock_io.dumps.assert_any_call({"version": {"version": "1.1.0"}})


if __name__ == '__main__':
unittest.main()

0 comments on commit 761d79c

Please sign in to comment.