Commit graph

39 commits

Author SHA1 Message Date
Darko Poljak
199effb7ef Improve unfinished object requirements bool check
When we need only boolean value for unfinished object requirements then
we don't need to determine the whole list of unfinished objects.
2021-04-06 19:35:14 +02:00
Darko Poljak
4c2d273f07 Unify string formatting
Use one way of string formatting: replace old `%` style with new `str.format`.

Resolve #855.
2021-03-31 08:19:34 +02:00
Darko Poljak
7a0b697f4c Implement maintaining object relationship graph
For each object maintain parent-child relationship graph, i.e. list of
parent objects ('parents' property) and list of children objects ('children'
property).

Objects without parent(s) are objects specified in init manifest.
Objects without children are object of types that do not reuse other types.
2021-03-30 12:09:59 +02:00
Dennis Camera
ce07021580 Do not subclass object 2020-06-21 16:53:47 +02:00
Darko Poljak
da274e5ef3 Redefine/reimplement CDIST_ORDER_DEPENDENCY
CDIST_ORDER_DEPENDENCY now defines type order dependency context.
cdist (emulator) maintains global state variables, as files,
order_dep_state and typeorder_dep, and per object state variable,
as file, typeorder_dep.

If order_dep_state exists then this defines that order dependency is
turned on.
If order_dep_state does not exist then order dependency is turned off.

If order dependency is on then objects created after it is turned on are
recorded into:
    * global typeorder_dep, in case of init manifest
    * object's typeorder_dep, in case of type's manifest.

If order dependency is on then requirement is injected, where object
created before current, is read from:
    * global typeorder_dep, in case of init manifest
    * object's typeorder_dep, in case of type's manifest.

Every time order dependency is turned off, typeorder_dep files are
removed, which means that type order list is cleared, context is
cleaned.

In the end cdist cleans after itself, i.e. mentioned files are removed.

When running type manifest is finished typeorder_dep file is removed.
When running config finishes global typeorder_dep and order_dep_state
files are removed.

Global type order recording is untouched.
Furthermore, for completeness, type order is now recorded for each object
too.
2019-11-27 15:04:47 +01:00
Darko Poljak
51fa8af6b7 pycodestyle 2019-02-15 20:35:32 +01:00
Darko Poljak
9703e0f08e Save output streams.
Implementation is 99% based on Steven's initial implementation.
2018-01-09 09:31:40 +01:00
Darko Poljak
ca1cc0f64a object_id = '/' is invalid 2017-08-10 19:08:44 +02:00
Darko Poljak
b50e605441 Merge pull request #544 from darko-poljak/ignore-dot-files-under-conf-types
Ignore directory entries that begin with dot('.').
2017-07-14 14:49:20 +02:00
Darko Poljak
80c3dd7572 Ignore directory entries that begin with dot('.'). 2017-07-06 13:30:57 +02:00
Darko Poljak
a722f3c634 3rd iteration of logging cleanup. 2017-07-04 23:49:43 +02:00
Darko Poljak
64efa04599 pep8 2016-07-05 20:44:24 +02:00
Nico Schottelius
d08c29b581 fix most test cases broken by no-dot-cdist change
Signed-off-by: Nico Schottelius <nico@freiheit.schottelius.org>
2015-03-05 18:32:47 +01:00
Nico Schottelius
73c77dd2d3 Let core use random .cdist directory for objects
Signed-off-by: Nico Schottelius <nico@freiheit.schottelius.org>
2015-03-05 15:02:26 +01:00
Nico Schottelius
c363fc24de begin to make OBJECT_MARKER dynamic
Signed-off-by: Nico Schottelius <nico@bento.schottelius.org>
2014-05-06 00:28:18 +02:00
Daniel Heule
2dd2f5593f bugfixes for issue 161 and FIXME: also check that there is no object ID
when type is singleton?
2014-02-09 17:10:43 +01:00
Daniel Heule
197fabf40a added some ideas from asteven and a bit more description about the order
in the manpage
2014-01-31 17:56:55 +01:00
Daniel Heule
4ef55ef13f allow object overrides with CDIST_ALLOW_OVERRIDE=true 2014-01-27 16:19:01 +01:00
Nico Schottelius
a5fc3f5002 remove changed attribute of an object - was never used and will never be used
Signed-off-by: Nico Schottelius <nico@bento.schottelius.org>
2013-12-04 21:29:56 +01:00
Steven Armstrong
7205cd5ecf remove that crappy old singleton object_id thingy
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2013-07-10 16:31:58 +02:00
Nico Schottelius
25bdcb1602 cleanup tests and ... - 100% green
Signed-off-by: Nico Schottelius <nico@bento.schottelius.org>
2013-06-21 22:39:20 +02:00
Nico Schottelius
72fef03184 Merge branch 'execution_order' into execution_order_plus_general_changes 2013-05-15 09:16:59 +02:00
Nico Schottelius
0b4914a7f3 +comment wording
Signed-off-by: Nico Schottelius <nico@bento.schottelius.org>
2013-05-15 09:16:52 +02:00
Nico Schottelius
a265d87037 begin dry run in command line
Signed-off-by: Nico Schottelius <nico@bento.schottelius.org>
2013-05-02 16:41:16 +02:00
Nico Schottelius
85d24ce259 fix execution order - seems to be fine now
Signed-off-by: Nico Schottelius <nico@bento.schottelius.org>
2013-04-30 15:07:27 +02:00
Nico Schottelius
8a7c64f86a cleanups + indent errors
Signed-off-by: Nico Schottelius <nico@bento.schottelius.org>
2013-04-30 11:04:01 +02:00
Nico Schottelius
a064cc19b3 try new object orientated (hrrr) code instead of stage based
Signed-off-by: Nico Schottelius <nico@bento.schottelius.org>
2013-04-30 10:58:23 +02:00
Nico Schottelius
cb829ec8d0 introduce MissingObjectIdError
Signed-off-by: Nico Schottelius <nico@brief.schottelius.org>
2013-02-05 22:50:22 +01:00
Nico Schottelius
2732a4ba5c finally finish the dynamic resolver
Signed-off-by: Nico Schottelius <nico@brief.schottelius.org>
2012-12-19 21:10:18 +01:00
Nico Schottelius
369305f376 remove circularreferenceerror, because it is not being used anymore
Signed-off-by: Nico Schottelius <nico@brief.schottelius.org>
2012-12-19 15:33:41 +01:00
Nico Schottelius
8031c77700 fix some tests, break some others :-)
Signed-off-by: Nico Schottelius <nico@brief.schottelius.org>
2012-12-18 18:21:51 +01:00
Nico Schottelius
958d2d336f various cleanups
Signed-off-by: Nico Schottelius <nico@brief.schottelius.org>
2012-12-18 17:16:26 +01:00
Nico Schottelius
cd8b3cf68d finish rewrite of dependency resolver
Signed-off-by: Nico Schottelius <nico@brief.schottelius.org>
2012-12-16 12:47:13 +01:00
Nico Schottelius
6a8778e595 remove most of the resolver boilerplate, keep the interesting functions
Signed-off-by: Nico Schottelius <nico@brief.schottelius.org>
2012-12-14 08:43:52 +01:00
Nico Schottelius
81c92e5cc4 merge all resolver code into cdist_object (to gain the requirement searching code
Signed-off-by: Nico Schottelius <nico@brief.schottelius.org>
2012-12-14 08:41:56 +01:00
Nico Schottelius
16340b7d34 report on broken requirements, begin to satisfy requirements
Signed-off-by: Nico Schottelius <nico@brief.schottelius.org>
2012-12-14 08:41:17 +01:00
Nico Schottelius
2fe647a1f7 Revert "implement before/after to declare dependencies and deprecate require"
Comment from asteven:
    Some problems showed up while updating the docs and tests.
    You should revert the merge for now.

This reverts commit 84770b9ef2.
2012-11-19 15:17:46 +01:00
Steven Armstrong
84770b9ef2 implement before/after to declare dependencies and deprecate require
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>

--whitespace

Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
2012-11-19 12:29:49 +01:00
Nico Schottelius
c9f728e073 lib/cdist => cdist (pypi)
Signed-off-by: Nico Schottelius <nico@brief.schottelius.org>
2012-10-25 17:21:58 +02:00
Renamed from lib/cdist/core/cdist_object.py (Browse further)