You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ariatosca.apache.org by mx...@apache.org on 2017/01/04 21:33:30 UTC
incubator-ariatosca git commit: Misc_fixes
Repository: incubator-ariatosca
Updated Branches:
refs/heads/Misc_fixes [created] 3eeb4a468
Misc_fixes
Project: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/commit/3eeb4a46
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/tree/3eeb4a46
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/diff/3eeb4a46
Branch: refs/heads/Misc_fixes
Commit: 3eeb4a468aecadb79dae7d4ab3f85bf50dd06ac5
Parents: 860d69b
Author: mxmrlv <mx...@gmail.com>
Authored: Wed Jan 4 23:33:12 2017 +0200
Committer: mxmrlv <mx...@gmail.com>
Committed: Wed Jan 4 23:33:12 2017 +0200
----------------------------------------------------------------------
aria/storage/base_model.py | 4 +--
aria/storage/structure.py | 30 ++++++++++++++---------
aria/storage/type.py | 54 ++++++++---------------------------------
requirements.txt | 6 ++---
4 files changed, 33 insertions(+), 61 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/3eeb4a46/aria/storage/base_model.py
----------------------------------------------------------------------
diff --git a/aria/storage/base_model.py b/aria/storage/base_model.py
index c7eb27c..d1aebf2 100644
--- a/aria/storage/base_model.py
+++ b/aria/storage/base_model.py
@@ -146,7 +146,7 @@ class ExecutionBase(ModelMixin):
VALID_TRANSITIONS = {
PENDING: [STARTED, CANCELLED],
STARTED: END_STATES + [CANCELLING],
- CANCELLING: END_STATES
+ CANCELLING: END_STATES + [FORCE_CANCELLING]
}
@orm.validates('status')
@@ -156,7 +156,7 @@ class ExecutionBase(ModelMixin):
current_status = getattr(self, key)
except AttributeError:
return
- valid_transitions = ExecutionBase.VALID_TRANSITIONS.get(current_status, [])
+ valid_transitions = self.VALID_TRANSITIONS.get(current_status, [])
if all([current_status is not None,
current_status != value,
value not in valid_transitions]):
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/3eeb4a46/aria/storage/structure.py
----------------------------------------------------------------------
diff --git a/aria/storage/structure.py b/aria/storage/structure.py
index d222c94..9bf1286 100644
--- a/aria/storage/structure.py
+++ b/aria/storage/structure.py
@@ -124,25 +124,31 @@ class ModelMixin(object):
remote_side=remote_side_str,
post_update=True)
- def to_dict(self, suppress_error=False):
+ def to_dict(self, fields=None, suppress_error=False):
"""Return a dict representation of the model
:param suppress_error: If set to True, sets `None` to attributes that
it's unable to retrieve (e.g., if a relationship wasn't established
yet, and so it's impossible to access a property through it)
"""
- if suppress_error:
- res = dict()
- for field in self.fields():
- try:
- field_value = getattr(self, field)
- except AttributeError:
+ res = dict()
+ fields = fields or self.fields()
+ for field in fields:
+ try:
+ field_value = getattr(self, field)
+ except AttributeError:
+ # Can't simply call here `self.to_response()` because inheriting
+ # class might override it, but we always need the same code here
+ if suppress_error:
field_value = None
- res[field] = field_value
- else:
- # Can't simply call here `self.to_response()` because inheriting
- # class might override it, but we always need the same code here
- res = dict((f, getattr(self, f)) for f in self.fields())
+ else:
+ raise
+ if isinstance(field_value, list):
+ field_value = list(field_value)
+ elif isinstance(field_value, dict):
+ field_value = dict(field_value)
+ res[field] = field_value
+
return res
@classmethod
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/3eeb4a46/aria/storage/type.py
----------------------------------------------------------------------
diff --git a/aria/storage/type.py b/aria/storage/type.py
index 84fd8dc..ab50b0f 100644
--- a/aria/storage/type.py
+++ b/aria/storage/type.py
@@ -60,63 +60,29 @@ class List(_MutableType):
return list
-class _MutableDict(mutable.Mutable, dict):
+class _MutableDict(mutable.MutableDict):
"""
Enables tracking for dict values.
"""
@classmethod
def coerce(cls, key, value):
"Convert plain dictionaries to MutableDict."
+ try:
+ return mutable.MutableDict.coerce(key, value)
+ except ValueError as e:
+ raise exceptions.StorageError('SQL Storage error: {0}'.format(str(e)))
- if not isinstance(value, cls):
- if isinstance(value, dict):
- return cls(value)
- # this call will raise ValueError
- try:
- return mutable.Mutable.coerce(key, value)
- except ValueError as e:
- raise exceptions.StorageError('SQL Storage error: {0}'.format(str(e)))
- else:
- return value
-
- def __setitem__(self, key, value):
- "Detect dictionary set events and emit change events."
-
- dict.__setitem__(self, key, value)
- self.changed()
-
- def __delitem__(self, key):
- "Detect dictionary del events and emit change events."
-
- dict.__delitem__(self, key)
- self.changed()
-
-
-class _MutableList(mutable.Mutable, list):
+class _MutableList(mutable.MutableList):
@classmethod
def coerce(cls, key, value):
"Convert plain dictionaries to MutableDict."
+ try:
+ return mutable.MutableList.coerce(key, value)
+ except ValueError as e:
+ raise exceptions.StorageError('SQL Storage error: {0}'.format(str(e)))
- if not isinstance(value, cls):
- if isinstance(value, list):
- return cls(value)
-
- # this call will raise ValueError
- try:
- return mutable.Mutable.coerce(key, value)
- except ValueError as e:
- raise exceptions.StorageError('SQL Storage error: {0}'.format(str(e)))
- else:
- return value
-
- def __setitem__(self, key, value):
- list.__setitem__(self, key, value)
- self.changed()
-
- def __delitem__(self, key):
- list.__delitem__(self, key)
_MutableList.associate_with(List)
_MutableDict.associate_with(Dict)
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/3eeb4a46/requirements.txt
----------------------------------------------------------------------
diff --git a/requirements.txt b/requirements.txt
index 0005a5e..2886e2a 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -11,7 +11,7 @@
# limitations under the License.
PyYAML==3.10
-networkx==1.9
+networkx==1.8.1
requests==2.7.0
retrying==1.3.3
blinker==1.4
@@ -20,9 +20,9 @@ ordereddict==1.1 ; python_version < '2.7'
total-ordering==0.1.0 ; python_version < '2.7'
jsonpickle
ruamel.yaml==0.11.15
-Jinja2==2.8
+Jinja2==2.7.2
shortuuid==0.4.3
CacheControl[filecache]==0.11.6
clint==0.5.1
SQLAlchemy==1.1.4
-wagon==0.5.0
+wagon==0.3.2