<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/openstack/taskflow.git/taskflow/atom.py, branch 2.5.0</title>
<subtitle>opendev.org: openstack/taskflow.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/taskflow.git/'/>
<entry>
<title>Allow for revert to have a different argument list from execute</title>
<updated>2016-02-26T19:45:33+00:00</updated>
<author>
<name>Greg Hill</name>
<email>greg.hill@rackspace.com</email>
</author>
<published>2016-01-21T14:20:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/taskflow.git/commit/?id=e8d78e7aab7ed9c1180d9947ef484573eac1f606'/>
<id>e8d78e7aab7ed9c1180d9947ef484573eac1f606</id>
<content type='text'>
Also allows for people to create Atom's with a different rebind
or requires structure for the revert method, if desired.

Implements blueprint: seperate-revert-args

Change-Id: Ie7d13c8000ef08ff303481d486d1ba1cfbdeea44
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Also allows for people to create Atom's with a different rebind
or requires structure for the revert method, if desired.

Implements blueprint: seperate-revert-args

Change-Id: Ie7d13c8000ef08ff303481d486d1ba1cfbdeea44
</pre>
</div>
</content>
</entry>
<entry>
<title>Refactor Atom/BaseTask/Task/Retry class hierarchy</title>
<updated>2016-02-19T03:58:59+00:00</updated>
<author>
<name>Greg Hill</name>
<email>greg.hill@rackspace.com</email>
</author>
<published>2016-01-13T19:47:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/taskflow.git/commit/?id=ec26bbffc6985792d4502ac9f4d4cb0960b16832'/>
<id>ec26bbffc6985792d4502ac9f4d4cb0960b16832</id>
<content type='text'>
* Moved common argument mapping logic to Atom
* Removed BaseTask
* Removed duplicated logic from subclasses

Change-Id: I275745adb80cecb0c35c1230eac76436bf3b0157
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Moved common argument mapping logic to Atom
* Removed BaseTask
* Removed duplicated logic from subclasses

Change-Id: I275745adb80cecb0c35c1230eac76436bf3b0157
</pre>
</div>
</content>
</entry>
<entry>
<title>Add some useful commentary on rebinding processes</title>
<updated>2015-12-09T19:45:37+00:00</updated>
<author>
<name>Joshua Harlow</name>
<email>harlowja@gmail.com</email>
</author>
<published>2015-12-09T19:45:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/taskflow.git/commit/?id=a8d70b29f8f5eb4b2d5a4d0bfa7dc4b7846eb5d0'/>
<id>a8d70b29f8f5eb4b2d5a4d0bfa7dc4b7846eb5d0</id>
<content type='text'>
Change-Id: I63b65fd40cf029eb6585b82d9c9d9b10108f9183
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: I63b65fd40cf029eb6585b82d9c9d9b10108f9183
</pre>
</div>
</content>
</entry>
<entry>
<title>Add atom priority ability</title>
<updated>2015-10-19T19:48:01+00:00</updated>
<author>
<name>Joshua Harlow</name>
<email>harlowja@yahoo-inc.com</email>
</author>
<published>2015-08-07T21:46:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/taskflow.git/commit/?id=70e58977c944d23f2133cd1b3d6f3970f101e7ab'/>
<id>70e58977c944d23f2133cd1b3d6f3970f101e7ab</id>
<content type='text'>
In situations where many atoms can execute at the same
time it is sometimes useful to denote that when this situation
happens that certain atoms should execute/revert before other
atoms (or at least an attempt should be made to do this) instead
of being nearly arbitrary.

This adds a priority class attribute to the atom class (which
can be overridden or changed as needed) which is then used in
the runtime state machine to sort on so that atoms with higher
priority get submitted (and therefore executed/reverted) first.

Closes-Bug: #1507755

Change-Id: I3dcc705959085cba167883c85278e394b5cb1d2b
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In situations where many atoms can execute at the same
time it is sometimes useful to denote that when this situation
happens that certain atoms should execute/revert before other
atoms (or at least an attempt should be made to do this) instead
of being nearly arbitrary.

This adds a priority class attribute to the atom class (which
can be overridden or changed as needed) which is then used in
the runtime state machine to sort on so that atoms with higher
priority get submitted (and therefore executed/reverted) first.

Closes-Bug: #1507755

Change-Id: I3dcc705959085cba167883c85278e394b5cb1d2b
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove 2.6 classifier + 2.6 compatibility code</title>
<updated>2015-06-21T16:39:12+00:00</updated>
<author>
<name>Joshua Harlow</name>
<email>harlowja@yahoo-inc.com</email>
</author>
<published>2015-06-18T22:48:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/taskflow.git/commit/?id=543cf78a6f26fe4929b53a7bfb9cbdc5f2624fbd'/>
<id>543cf78a6f26fe4929b53a7bfb9cbdc5f2624fbd</id>
<content type='text'>
Fixes bug 1445827

Depends-On: I02e3c9aacef0b295a2f823a5cbaf11768a90cb82

Change-Id: I1db681803598ac1bc917fd74a99458bc61edf3f1
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes bug 1445827

Depends-On: I02e3c9aacef0b295a2f823a5cbaf11768a90cb82

Change-Id: I1db681803598ac1bc917fd74a99458bc61edf3f1
</pre>
</div>
</content>
</entry>
<entry>
<title>Allow same deps for requires and provides in task</title>
<updated>2015-05-25T12:57:22+00:00</updated>
<author>
<name>Rick van de Loo</name>
<email>rickvandeloo@gmail.com</email>
</author>
<published>2015-05-06T07:56:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/taskflow.git/commit/?id=c7e8c868cd85c878ab9896c868f9989adc7dfc09'/>
<id>c7e8c868cd85c878ab9896c868f9989adc7dfc09</id>
<content type='text'>
This change removes the DependencyFailure that is raised when a task
requires the same dependency as it provides. Taskflow returns a
frozenset([]) instead of a frozenset() when more than one value with the
same name is in the store.

This prevents the need for an inconvenient rename function when you want
to update a store variable with a new value.

Example case:
class Inc(task.Task):
    def execute(self, a):
        return a + 1

class AwkwardRename(task.Task):
    def execute(self, b):
        return b

store = {
    'a': 1
}
f = linear_flow.Flow('inc-flow')
f.add(
    Inc('t1',
        provides='b',
        requires='a',
        ),
    AwkwardRename('t2',
                  provides='a',
                  requires='b'))

e = engines.load(f, store=store)
e.run()
print e.storage.fetch('a', many_handler=lambda x: x[-1])

Now with ability to have the same provides as requires:
class Inc(task.Task):
    def execute(self, a):
        return a + 1

store = {
    'a': 1
}
f = linear_flow.Flow('inc-flow')
f.add(
    Inc('t3',
        provides='a',
        requires='a'),
)

e = engines.load(f, store=store)
e.run()
print e.storage.fetch('a', many_handler=lambda x: x[-1])

Change-Id: I421e1ab33508c25baf78bd76df158bb6116d6fb0
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change removes the DependencyFailure that is raised when a task
requires the same dependency as it provides. Taskflow returns a
frozenset([]) instead of a frozenset() when more than one value with the
same name is in the store.

This prevents the need for an inconvenient rename function when you want
to update a store variable with a new value.

Example case:
class Inc(task.Task):
    def execute(self, a):
        return a + 1

class AwkwardRename(task.Task):
    def execute(self, b):
        return b

store = {
    'a': 1
}
f = linear_flow.Flow('inc-flow')
f.add(
    Inc('t1',
        provides='b',
        requires='a',
        ),
    AwkwardRename('t2',
                  provides='a',
                  requires='b'))

e = engines.load(f, store=store)
e.run()
print e.storage.fetch('a', many_handler=lambda x: x[-1])

Now with ability to have the same provides as requires:
class Inc(task.Task):
    def execute(self, a):
        return a + 1

store = {
    'a': 1
}
f = linear_flow.Flow('inc-flow')
f.add(
    Inc('t3',
        provides='a',
        requires='a'),
)

e = engines.load(f, store=store)
e.run()
print e.storage.fetch('a', many_handler=lambda x: x[-1])

Change-Id: I421e1ab33508c25baf78bd76df158bb6116d6fb0
</pre>
</div>
</content>
</entry>
<entry>
<title>Use ordered[set/dict] to retain ordering</title>
<updated>2015-03-11T18:12:06+00:00</updated>
<author>
<name>Joshua Harlow</name>
<email>harlowja@yahoo-inc.com</email>
</author>
<published>2015-03-02T23:00:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/taskflow.git/commit/?id=67f0f5146431523ca65a28b3fb66477ff2f490d0'/>
<id>67f0f5146431523ca65a28b3fb66477ff2f490d0</id>
<content type='text'>
Instead of using always using a set/dict which do not retain
use a ordered set and a ordered dict for requires, optional,
and provides and rebind mappings types so that the ordering
of these containers is maintained later when they are used.

These ordering can be useful depending on the atom type (such
as in a map and reduce tasks).

Partial-Bug: 1357117

Change-Id: I365d11bbba4aa221bc36ca15441acecf199b4d56
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Instead of using always using a set/dict which do not retain
use a ordered set and a ordered dict for requires, optional,
and provides and rebind mappings types so that the ordering
of these containers is maintained later when they are used.

These ordering can be useful depending on the atom type (such
as in a map and reduce tasks).

Partial-Bug: 1357117

Change-Id: I365d11bbba4aa221bc36ca15441acecf199b4d56
</pre>
</div>
</content>
</entry>
<entry>
<title>Move 'provides' and 'name' to instance attributes</title>
<updated>2015-02-17T04:00:45+00:00</updated>
<author>
<name>Joshua Harlow</name>
<email>harlowja@yahoo-inc.com</email>
</author>
<published>2015-02-11T21:13:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/taskflow.git/commit/?id=d4129479cfaa5170b01c866237ca2c14ba5c4c42'/>
<id>d4129479cfaa5170b01c866237ca2c14ba5c4c42</id>
<content type='text'>
Since we are mixing properties and attributes in the atom
class it seems better just to standardize on the one that has
the most (attributes) and just mention that they are and should
always be immutable in the atom class documentation.

Depends-On: I18699fc64391445436537854a5e3723f4e89e961

Change-Id: Id03e4229b40b9da5c9a349ee00c13053a9eb75eb
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Since we are mixing properties and attributes in the atom
class it seems better just to standardize on the one that has
the most (attributes) and just mention that they are and should
always be immutable in the atom class documentation.

Depends-On: I18699fc64391445436537854a5e3723f4e89e961

Change-Id: Id03e4229b40b9da5c9a349ee00c13053a9eb75eb
</pre>
</div>
</content>
</entry>
<entry>
<title>adding check for str/unicode type in requires</title>
<updated>2015-02-16T07:20:48+00:00</updated>
<author>
<name>Min Pae</name>
<email>sputnik13@gmail.com</email>
</author>
<published>2015-02-16T00:55:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/taskflow.git/commit/?id=55110111851939cef650ff400f57598f7fb484d2'/>
<id>55110111851939cef650ff400f57598f7fb484d2</id>
<content type='text'>
When the requires argument for an Atom is passed in as a string,
each character of the string is iterated over to build up a
requirement list.  This works for simple one letter argument
names but not for long argument names.

Added check for str and unicode types to prevent iterating over a
string.

Change-Id: Ida584221b48966d26935fb2ede0075aabb7ce972
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When the requires argument for an Atom is passed in as a string,
each character of the string is iterated over to build up a
requirement list.  This works for simple one letter argument
names but not for long argument names.

Added check for str and unicode types to prevent iterating over a
string.

Change-Id: Ida584221b48966d26935fb2ede0075aabb7ce972
</pre>
</div>
</content>
</entry>
<entry>
<title>Make the atom class an abstract class</title>
<updated>2015-02-13T21:03:19+00:00</updated>
<author>
<name>Joshua Harlow</name>
<email>harlowja@yahoo-inc.com</email>
</author>
<published>2015-02-13T20:58:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/taskflow.git/commit/?id=101a47fe92389982b0fc5ff7d4f46880fbe75bff'/>
<id>101a47fe92389982b0fc5ff7d4f46880fbe75bff</id>
<content type='text'>
To enforce the already existing behavior that atoms
have execute and revert methods (this is already the
de-facto behavior with its subclasses) we might as
well have the atom class be abstract and have methods
execute() and revert() that need to be implemented
in subclasses (which they already are).

Change-Id: Idfc25a7c2b01f674a065e3f467607eba4ab89a26
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
To enforce the already existing behavior that atoms
have execute and revert methods (this is already the
de-facto behavior with its subclasses) we might as
well have the atom class be abstract and have methods
execute() and revert() that need to be implemented
in subclasses (which they already are).

Change-Id: Idfc25a7c2b01f674a065e3f467607eba4ab89a26
</pre>
</div>
</content>
</entry>
</feed>
