From 2be70492beb7212fdc585601c9e9939be6803acd Mon Sep 17 00:00:00 2001 From: kali Date: Wed, 29 Aug 2012 04:50:17 +0900 Subject: spec creation moved to JSONLeapConfig __metaclass__ now we expect spec to be a dict for all the JSONLeapConfig instances. --- src/leap/base/specs.py | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/leap/base/specs.py (limited to 'src/leap/base/specs.py') diff --git a/src/leap/base/specs.py b/src/leap/base/specs.py new file mode 100644 index 00000000..d88dc63f --- /dev/null +++ b/src/leap/base/specs.py @@ -0,0 +1,49 @@ +leap_provider_spec = { + 'serial': { + 'type': int, + 'default': 1, + 'required': True, + }, + 'version': { + 'type': unicode, + 'default': '0.1.0' + #'required': True + }, + 'domain': { + 'type': unicode, # XXX define uri type + 'default': 'testprovider.example.org' + #'required': True, + }, + 'display_name': { + 'type': unicode, # XXX multilingual object? + 'default': 'test provider' + #'required': True + }, + 'description': { + 'default': 'test provider' + }, + 'enrollment_policy': { + 'type': unicode, # oneof ?? + 'default': 'open' + }, + 'services': { + 'type': list, # oneof ?? + 'default': ['eip'] + }, + 'api_version': { + 'type': unicode, + 'default': '0.1.0' # version regexp + }, + 'api_uri': { + 'type': unicode # uri + }, + 'public_key': { + 'type': unicode # fingerprint + }, + 'ca_cert': { + 'type': unicode + }, + 'ca_cert_uri': { + 'type': unicode + }, +} -- cgit v1.2.3 From 30570bd89c04a56b35b91a0bc1d5fc00bb6ad266 Mon Sep 17 00:00:00 2001 From: kali Date: Mon, 24 Sep 2012 22:21:50 +0900 Subject: add schema to JSONLeapConfig classes and a jsonvalidate function too, that calls to jsonchemea.validate(self, data) with self.schema We're using the specs to both purposes now: * providing a type casting system for our config options (work in progress for the type casting) * json schema validation --- src/leap/base/specs.py | 98 ++++++++++++++++++++++++++------------------------ 1 file changed, 51 insertions(+), 47 deletions(-) (limited to 'src/leap/base/specs.py') diff --git a/src/leap/base/specs.py b/src/leap/base/specs.py index d88dc63f..e75eca70 100644 --- a/src/leap/base/specs.py +++ b/src/leap/base/specs.py @@ -1,49 +1,53 @@ leap_provider_spec = { - 'serial': { - 'type': int, - 'default': 1, - 'required': True, - }, - 'version': { - 'type': unicode, - 'default': '0.1.0' - #'required': True - }, - 'domain': { - 'type': unicode, # XXX define uri type - 'default': 'testprovider.example.org' - #'required': True, - }, - 'display_name': { - 'type': unicode, # XXX multilingual object? - 'default': 'test provider' - #'required': True - }, - 'description': { - 'default': 'test provider' - }, - 'enrollment_policy': { - 'type': unicode, # oneof ?? - 'default': 'open' - }, - 'services': { - 'type': list, # oneof ?? - 'default': ['eip'] - }, - 'api_version': { - 'type': unicode, - 'default': '0.1.0' # version regexp - }, - 'api_uri': { - 'type': unicode # uri - }, - 'public_key': { - 'type': unicode # fingerprint - }, - 'ca_cert': { - 'type': unicode - }, - 'ca_cert_uri': { - 'type': unicode - }, + 'description': 'provider definition', + 'type': 'object', + 'properties': { + 'serial': { + 'type': int, + 'default': 1, + 'required': True, + }, + 'version': { + 'type': unicode, + 'default': '0.1.0' + #'required': True + }, + 'domain': { + 'type': unicode, # XXX define uri type + 'default': 'testprovider.example.org' + #'required': True, + }, + 'display_name': { + 'type': unicode, # XXX multilingual object? + 'default': 'test provider' + #'required': True + }, + 'description': { + 'default': 'test provider' + }, + 'enrollment_policy': { + 'type': unicode, # oneof ?? + 'default': 'open' + }, + 'services': { + 'type': list, # oneof ?? + 'default': ['eip'] + }, + 'api_version': { + 'type': unicode, + 'default': '0.1.0' # version regexp + }, + 'api_uri': { + 'type': unicode # uri + }, + 'public_key': { + 'type': unicode # fingerprint + }, + 'ca_cert': { + 'type': unicode + }, + 'ca_cert_uri': { + 'type': unicode + } + } } -- cgit v1.2.3 From 5d8e518d03e9fd045a75a63fec79b52392266c26 Mon Sep 17 00:00:00 2001 From: kali Date: Tue, 25 Sep 2012 07:19:07 +0900 Subject: make test for provider pass --- src/leap/base/specs.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/leap/base/specs.py') diff --git a/src/leap/base/specs.py b/src/leap/base/specs.py index e75eca70..641e795a 100644 --- a/src/leap/base/specs.py +++ b/src/leap/base/specs.py @@ -18,12 +18,13 @@ leap_provider_spec = { #'required': True, }, 'display_name': { - 'type': unicode, # XXX multilingual object? - 'default': 'test provider' + 'type': dict, # XXX multilingual object? + 'default': {u'en': u'Test Provider'} #'required': True }, 'description': { - 'default': 'test provider' + 'type': dict, + 'default': {u'en': u'Test provider'} }, 'enrollment_policy': { 'type': unicode, # oneof ?? -- cgit v1.2.3 From abf481cab381a86d8a9c5607a131b56636081382 Mon Sep 17 00:00:00 2001 From: kali Date: Tue, 25 Sep 2012 05:48:06 +0900 Subject: refactored jsonconfig, included jsonschema validation and type casting. --- src/leap/base/specs.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'src/leap/base/specs.py') diff --git a/src/leap/base/specs.py b/src/leap/base/specs.py index 641e795a..b4bb8dcf 100644 --- a/src/leap/base/specs.py +++ b/src/leap/base/specs.py @@ -44,11 +44,16 @@ leap_provider_spec = { 'public_key': { 'type': unicode # fingerprint }, - 'ca_cert': { - 'type': unicode + 'ca_cert_fingerprint': { + 'type': unicode, }, 'ca_cert_uri': { - 'type': unicode + 'type': unicode, + 'format': 'https-uri' + }, + 'languages': { + 'type': list, + 'default': ['en'] } } } -- cgit v1.2.3 From 4984f2c966d11f529a2a8b722814b748b6a524d2 Mon Sep 17 00:00:00 2001 From: kali Date: Wed, 12 Dec 2012 09:16:53 +0900 Subject: changed some values in new style eipconfig --- src/leap/base/specs.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'src/leap/base/specs.py') diff --git a/src/leap/base/specs.py b/src/leap/base/specs.py index b4bb8dcf..962aa07d 100644 --- a/src/leap/base/specs.py +++ b/src/leap/base/specs.py @@ -2,22 +2,26 @@ leap_provider_spec = { 'description': 'provider definition', 'type': 'object', 'properties': { - 'serial': { - 'type': int, - 'default': 1, - 'required': True, - }, + #'serial': { + #'type': int, + #'default': 1, + #'required': True, + #}, 'version': { 'type': unicode, 'default': '0.1.0' #'required': True }, + "default_language": { + 'type': unicode, + 'default': 'en' + }, 'domain': { 'type': unicode, # XXX define uri type 'default': 'testprovider.example.org' #'required': True, }, - 'display_name': { + 'name': { 'type': dict, # XXX multilingual object? 'default': {u'en': u'Test Provider'} #'required': True -- cgit v1.2.3 From ec0fc05e3918782dbb29f9f6901c0de22419134d Mon Sep 17 00:00:00 2001 From: kali Date: Fri, 21 Dec 2012 10:28:46 +0900 Subject: magic translatable objects --- src/leap/base/specs.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/leap/base/specs.py') diff --git a/src/leap/base/specs.py b/src/leap/base/specs.py index 962aa07d..f57d7e9c 100644 --- a/src/leap/base/specs.py +++ b/src/leap/base/specs.py @@ -22,12 +22,16 @@ leap_provider_spec = { #'required': True, }, 'name': { - 'type': dict, # XXX multilingual object? + #'type': LEAPTranslatable, + 'type': dict, + 'format': 'translatable', 'default': {u'en': u'Test Provider'} #'required': True }, 'description': { + #'type': LEAPTranslatable, 'type': dict, + 'format': 'translatable', 'default': {u'en': u'Test provider'} }, 'enrollment_policy': { -- cgit v1.2.3 From 0d13ea053f604364b4e0543397ae29019edd2610 Mon Sep 17 00:00:00 2001 From: kali Date: Thu, 31 Jan 2013 06:29:59 +0900 Subject: avoid pep8 from choking --- src/leap/base/specs.py | 5 ----- 1 file changed, 5 deletions(-) (limited to 'src/leap/base/specs.py') diff --git a/src/leap/base/specs.py b/src/leap/base/specs.py index f57d7e9c..fbe8a0e9 100644 --- a/src/leap/base/specs.py +++ b/src/leap/base/specs.py @@ -2,11 +2,6 @@ leap_provider_spec = { 'description': 'provider definition', 'type': 'object', 'properties': { - #'serial': { - #'type': int, - #'default': 1, - #'required': True, - #}, 'version': { 'type': unicode, 'default': '0.1.0' -- cgit v1.2.3