cloud-templates 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rspec +4 -0
- data/.rubocop.yml +1 -0
- data/Rakefile +1 -1
- data/bin/cloud-templates-runner.rb +5 -0
- data/cloud-templates.gemspec +9 -4
- data/examples/lib/user_directory.rb +0 -10
- data/examples/lib/user_directory/artifacts.rb +8 -0
- data/examples/lib/user_directory/artifacts/catalogized.rb +8 -7
- data/examples/lib/user_directory/artifacts/group.rb +27 -30
- data/examples/lib/user_directory/artifacts/ided.rb +8 -7
- data/examples/lib/user_directory/artifacts/organization.rb +10 -11
- data/examples/lib/user_directory/artifacts/pathed.rb +17 -17
- data/examples/lib/user_directory/artifacts/person.rb +20 -15
- data/examples/lib/user_directory/artifacts/team.rb +26 -21
- data/examples/lib/user_directory/artifacts/unit.rb +15 -17
- data/examples/lib/user_directory/artifacts/user.rb +26 -23
- data/examples/lib/user_directory/render.rb +8 -0
- data/examples/lib/user_directory/render/etc.rb +2 -0
- data/examples/lib/user_directory/render/etc/artifact_view.rb +2 -2
- data/examples/lib/user_directory/render/etc/composite_view.rb +1 -2
- data/examples/lib/user_directory/render/etc/group_view.rb +3 -3
- data/examples/lib/user_directory/render/etc/person_view.rb +2 -2
- data/examples/lib/user_directory/render/etc/registry.rb +4 -6
- data/examples/lib/user_directory/render/etc/user_view.rb +2 -3
- data/examples/lib/user_directory/render/ldap.rb +2 -0
- data/examples/lib/user_directory/render/ldap/artifact_view.rb +3 -4
- data/examples/lib/user_directory/render/ldap/composite_view.rb +3 -4
- data/examples/lib/user_directory/render/ldap/group_view.rb +3 -4
- data/examples/lib/user_directory/render/ldap/organization_view.rb +3 -4
- data/examples/lib/user_directory/render/ldap/person_view.rb +3 -4
- data/examples/lib/user_directory/render/ldap/registry.rb +3 -4
- data/examples/lib/user_directory/render/ldap/unit_view.rb +3 -4
- data/examples/lib/user_directory/render/ldap/user_view.rb +3 -4
- data/examples/lib/user_directory/utils.rb +1 -1
- data/examples/spec/user_directory_spec.rb +24 -25
- data/lib/aws/templates.rb +0 -8
- data/lib/aws/templates/artifact.rb +20 -12
- data/lib/aws/templates/cli.rb +14 -0
- data/lib/aws/templates/cli/formatter.rb +21 -0
- data/lib/aws/templates/cli/formatter/json.rb +20 -0
- data/lib/aws/templates/cli/interface.rb +92 -0
- data/lib/aws/templates/composite.rb +6 -9
- data/lib/aws/templates/exception.rb +8 -0
- data/lib/aws/templates/exception/nested_parameter_exception.rb +19 -0
- data/lib/aws/templates/exception/option_error.rb +14 -0
- data/lib/aws/templates/exception/option_scalar_on_the_way.rb +26 -0
- data/lib/aws/templates/exception/option_should_be_recursive.rb +20 -0
- data/lib/aws/templates/exception/option_value_deleted.rb +22 -0
- data/lib/aws/templates/exception/parameter_already_exist.rb +26 -0
- data/lib/aws/templates/exception/parameter_exception.rb +26 -0
- data/lib/aws/templates/exception/parameter_getter_is_not_defined.rb +23 -0
- data/lib/aws/templates/exception/parameter_method_name_conflict.rb +26 -0
- data/lib/aws/templates/exception/parameter_specification_is_invalid.rb +30 -0
- data/lib/aws/templates/exception/parameter_value_invalid.rb +37 -0
- data/lib/aws/templates/exception/parametrized_dsl_error.rb +14 -0
- data/lib/aws/templates/exception/view_not_found.rb +26 -0
- data/lib/aws/templates/help.rb +43 -0
- data/lib/aws/templates/help/aggregate.rb +74 -0
- data/lib/aws/templates/help/dsl.rb +30 -0
- data/lib/aws/templates/help/provider.rb +15 -0
- data/lib/aws/templates/help/rdoc.rb +105 -0
- data/lib/aws/templates/help/rdoc/artifact.rb +50 -0
- data/lib/aws/templates/help/rdoc/composite.rb +20 -0
- data/lib/aws/templates/help/rdoc/contextualized.rb +12 -0
- data/lib/aws/templates/help/rdoc/contextualized/filter.rb +19 -0
- data/lib/aws/templates/help/rdoc/contextualized/filters.rb +14 -0
- data/lib/aws/templates/help/rdoc/contextualized/filters/add.rb +21 -0
- data/lib/aws/templates/help/rdoc/contextualized/filters/chain.rb +33 -0
- data/lib/aws/templates/help/rdoc/contextualized/filters/copy.rb +23 -0
- data/lib/aws/templates/help/rdoc/contextualized/filters/identity.rb +23 -0
- data/lib/aws/templates/help/rdoc/contextualized/filters/override.rb +29 -0
- data/lib/aws/templates/help/rdoc/contextualized/filters/proxy.rb +28 -0
- data/lib/aws/templates/help/rdoc/contextualized/filters/recursive_schema_filter.rb +28 -0
- data/lib/aws/templates/help/rdoc/contextualized/filters/remove.rb +21 -0
- data/lib/aws/templates/help/rdoc/contextualized/filters/scoped.rb +29 -0
- data/lib/aws/templates/help/rdoc/contextualized/provider.rb +28 -0
- data/lib/aws/templates/help/rdoc/default.rb +12 -0
- data/lib/aws/templates/help/rdoc/default/definition.rb +89 -0
- data/lib/aws/templates/help/rdoc/default/provider.rb +25 -0
- data/lib/aws/templates/help/rdoc/dsl.rb +20 -0
- data/lib/aws/templates/help/rdoc/inheritable.rb +48 -0
- data/lib/aws/templates/help/rdoc/parametrized.rb +12 -0
- data/lib/aws/templates/help/rdoc/parametrized/constraint.rb +31 -0
- data/lib/aws/templates/help/rdoc/parametrized/constraints.rb +14 -0
- data/lib/aws/templates/help/rdoc/parametrized/constraints/all_of.rb +39 -0
- data/lib/aws/templates/help/rdoc/parametrized/constraints/condition.rb +44 -0
- data/lib/aws/templates/help/rdoc/parametrized/constraints/depends_on_value.rb +41 -0
- data/lib/aws/templates/help/rdoc/parametrized/constraints/enum.rb +33 -0
- data/lib/aws/templates/help/rdoc/parametrized/constraints/matches.rb +27 -0
- data/lib/aws/templates/help/rdoc/parametrized/constraints/not_nil.rb +27 -0
- data/lib/aws/templates/help/rdoc/parametrized/constraints/requires.rb +33 -0
- data/lib/aws/templates/help/rdoc/parametrized/constraints/satisfies_condition.rb +28 -0
- data/lib/aws/templates/help/rdoc/parametrized/getter.rb +17 -0
- data/lib/aws/templates/help/rdoc/parametrized/getters.rb +14 -0
- data/lib/aws/templates/help/rdoc/parametrized/nested.rb +32 -0
- data/lib/aws/templates/help/rdoc/parametrized/parameter.rb +55 -0
- data/lib/aws/templates/help/rdoc/parametrized/provider.rb +32 -0
- data/lib/aws/templates/help/rdoc/parametrized/transformation.rb +17 -0
- data/lib/aws/templates/help/rdoc/parametrized/transformations.rb +14 -0
- data/lib/aws/templates/help/rdoc/parametrized/transformations/as_boolean.rb +25 -0
- data/lib/aws/templates/help/rdoc/parametrized/transformations/as_chain.rb +34 -0
- data/lib/aws/templates/help/rdoc/parametrized/transformations/as_hash.rb +40 -0
- data/lib/aws/templates/help/rdoc/parametrized/transformations/as_integer.rb +26 -0
- data/lib/aws/templates/help/rdoc/parametrized/transformations/as_list.rb +32 -0
- data/lib/aws/templates/help/rdoc/parametrized/transformations/as_module.rb +25 -0
- data/lib/aws/templates/help/rdoc/parametrized/transformations/as_object.rb +32 -0
- data/lib/aws/templates/help/rdoc/parametrized/transformations/as_rendered.rb +28 -0
- data/lib/aws/templates/help/rdoc/parametrized/transformations/as_string.rb +25 -0
- data/lib/aws/templates/help/rdoc/provider.rb +20 -0
- data/lib/aws/templates/help/rdoc/routing.rb +104 -0
- data/lib/aws/templates/help/rdoc/texting.rb +42 -0
- data/lib/aws/templates/processor.rb +53 -0
- data/lib/aws/templates/processor/handler.rb +104 -0
- data/lib/aws/templates/processor/registry.rb +74 -0
- data/lib/aws/templates/processor/routing.rb +27 -0
- data/lib/aws/templates/render.rb +27 -25
- data/lib/aws/templates/render/basic_view.rb +47 -0
- data/lib/aws/templates/render/utils.rb +14 -0
- data/lib/aws/templates/render/utils/base_type_views.rb +12 -19
- data/lib/aws/templates/render/utils/inspect.rb +2 -4
- data/lib/aws/templates/render/utils/stringify.rb +2 -5
- data/lib/aws/templates/render/view.rb +3 -100
- data/lib/aws/templates/utils.rb +39 -15
- data/lib/aws/templates/utils/artifact_storage.rb +2 -3
- data/lib/aws/templates/utils/{named.rb → as_named.rb} +2 -3
- data/lib/aws/templates/utils/autoload.rb +224 -0
- data/lib/aws/templates/utils/contextualized.rb +8 -17
- data/lib/aws/templates/utils/contextualized/filter.rb +62 -0
- data/lib/aws/templates/utils/contextualized/filter/add.rb +67 -0
- data/lib/aws/templates/utils/contextualized/filter/chain.rb +56 -0
- data/lib/aws/templates/utils/contextualized/filter/copy.rb +38 -0
- data/lib/aws/templates/utils/contextualized/filter/dsl.rb +50 -0
- data/lib/aws/templates/utils/contextualized/filter/identity.rb +45 -0
- data/lib/aws/templates/utils/contextualized/filter/override.rb +62 -0
- data/lib/aws/templates/utils/contextualized/filter/proxy.rb +29 -0
- data/lib/aws/templates/utils/contextualized/filter/recursive_schema_filter.rb +46 -0
- data/lib/aws/templates/utils/contextualized/filter/remove.rb +66 -0
- data/lib/aws/templates/utils/contextualized/filter/scoped.rb +42 -0
- data/lib/aws/templates/utils/contextualized/refinements.rb +51 -0
- data/lib/aws/templates/utils/default.rb +258 -50
- data/lib/aws/templates/utils/dependency.rb +7 -6
- data/lib/aws/templates/utils/dependency/refinements.rb +80 -0
- data/lib/aws/templates/utils/dependent.rb +6 -3
- data/lib/aws/templates/utils/guarded.rb +30 -0
- data/lib/aws/templates/utils/inheritable.rb +21 -16
- data/lib/aws/templates/utils/inspectable.rb +4 -4
- data/lib/aws/templates/utils/late_bound.rb +2 -2
- data/lib/aws/templates/utils/memoized.rb +2 -0
- data/lib/aws/templates/utils/options.rb +49 -35
- data/lib/aws/templates/utils/parametrized.rb +32 -25
- data/lib/aws/templates/utils/parametrized/constraint.rb +95 -0
- data/lib/aws/templates/utils/parametrized/constraint/all_of.rb +51 -0
- data/lib/aws/templates/utils/parametrized/constraint/condition.rb +93 -0
- data/lib/aws/templates/utils/parametrized/constraint/depends_on_value.rb +60 -0
- data/lib/aws/templates/utils/parametrized/constraint/dsl.rb +86 -0
- data/lib/aws/templates/utils/parametrized/constraint/enum.rb +45 -0
- data/lib/aws/templates/utils/parametrized/constraint/matches.rb +44 -0
- data/lib/aws/templates/utils/parametrized/constraint/not_nil.rb +38 -0
- data/lib/aws/templates/utils/parametrized/constraint/requires.rb +54 -0
- data/lib/aws/templates/utils/parametrized/constraint/satisfies_condition.rb +55 -0
- data/lib/aws/templates/utils/parametrized/getter.rb +67 -0
- data/lib/aws/templates/utils/parametrized/getter/as_instance_variable.rb +41 -0
- data/lib/aws/templates/utils/parametrized/getter/as_is.rb +37 -0
- data/lib/aws/templates/utils/parametrized/getter/dsl.rb +62 -0
- data/lib/aws/templates/utils/parametrized/getter/one_of.rb +48 -0
- data/lib/aws/templates/utils/parametrized/getter/path.rb +53 -0
- data/lib/aws/templates/utils/parametrized/getter/value.rb +50 -0
- data/lib/aws/templates/utils/parametrized/nested.rb +9 -16
- data/lib/aws/templates/utils/parametrized/transformation.rb +74 -0
- data/lib/aws/templates/utils/parametrized/transformation/as_boolean.rb +42 -0
- data/lib/aws/templates/utils/parametrized/transformation/as_chain.rb +57 -0
- data/lib/aws/templates/utils/parametrized/transformation/as_hash.rb +89 -0
- data/lib/aws/templates/utils/parametrized/transformation/as_integer.rb +39 -0
- data/lib/aws/templates/utils/parametrized/transformation/as_list.rb +97 -0
- data/lib/aws/templates/utils/parametrized/transformation/as_module.rb +42 -0
- data/lib/aws/templates/utils/parametrized/transformation/as_object.rb +76 -0
- data/lib/aws/templates/utils/parametrized/transformation/as_rendered.rb +100 -0
- data/lib/aws/templates/utils/parametrized/transformation/as_string.rb +39 -0
- data/lib/aws/templates/utils/parametrized/transformation/dsl.rb +94 -0
- data/lib/aws/templates/utils/recursive.rb +22 -0
- data/spec/aws/templates/artifact_spec.rb +10 -10
- data/spec/aws/templates/cli_spec.rb +83 -0
- data/spec/aws/templates/composite_spec.rb +6 -4
- data/spec/aws/templates/help/rdoc/artifact_spec.rb +94 -0
- data/spec/aws/templates/help/rdoc/composite_spec.rb +53 -0
- data/spec/aws/templates/help/rdoc/parametrized/constraints/all_of_spec.rb +17 -0
- data/spec/aws/templates/help/rdoc/parametrized/constraints/depends_on_value_spec.rb +21 -0
- data/spec/aws/templates/help/rdoc/parametrized/constraints/enum_spec.rb +17 -0
- data/spec/aws/templates/help/rdoc/parametrized/constraints/matches_spec.rb +17 -0
- data/spec/aws/templates/help/rdoc/parametrized/constraints/satisfies_condition_spec.rb +17 -0
- data/spec/aws/templates/help/rdoc/parametrized/transformations/as_boolean_spec.rb +17 -0
- data/spec/aws/templates/help/rdoc/parametrized/transformations/as_chain_spec.rb +17 -0
- data/spec/aws/templates/help/rdoc/parametrized/transformations/as_hash_spec.rb +72 -0
- data/spec/aws/templates/help/rdoc/parametrized/transformations/as_integer_spec.rb +17 -0
- data/spec/aws/templates/help/rdoc/parametrized/transformations/as_list_spec.rb +39 -0
- data/spec/aws/templates/help/rdoc/parametrized/transformations/as_module_spec.rb +17 -0
- data/spec/aws/templates/help/rdoc/parametrized/transformations/as_object_spec.rb +38 -0
- data/spec/aws/templates/help/rdoc/parametrized/transformations/as_rendered_spec.rb +17 -0
- data/spec/aws/templates/render/utils/base_type_views_spec.rb +9 -11
- data/spec/aws/templates/render_spec.rb +1 -1
- data/spec/aws/templates/utils/as_named_spec.rb +0 -2
- data/spec/aws/templates/utils/autoload_spec.rb +14 -0
- data/spec/aws/templates/utils/contextualized_spec.rb +5 -5
- data/spec/aws/templates/utils/late_bound_spec.rb +2 -2
- data/spec/aws/templates/utils/parametrized/constraint_spec.rb +8 -10
- data/spec/aws/templates/utils/parametrized/getters_spec.rb +6 -7
- data/spec/aws/templates/utils/parametrized/transformation_spec.rb +3 -6
- data/spec/aws/templates/utils/parametrized_spec.rb +9 -10
- data/spec/aws/templates/utils_spec.rb +18 -0
- data/spec/test_empty/stuff.rb +4 -0
- data/spec/test_empty/stuff/here/test.rb +9 -0
- metadata +235 -19
- data/lib/aws/templates/exceptions.rb +0 -221
- data/lib/aws/templates/render/registry.rb +0 -60
- data/lib/aws/templates/utils/contextualized/filters.rb +0 -437
- data/lib/aws/templates/utils/contextualized/hash.rb +0 -13
- data/lib/aws/templates/utils/contextualized/nil.rb +0 -13
- data/lib/aws/templates/utils/contextualized/proc.rb +0 -13
- data/lib/aws/templates/utils/dependency/enumerable.rb +0 -13
- data/lib/aws/templates/utils/dependency/object.rb +0 -46
- data/lib/aws/templates/utils/parametrized/constraints.rb +0 -423
- data/lib/aws/templates/utils/parametrized/getters.rb +0 -293
- data/lib/aws/templates/utils/parametrized/guarded.rb +0 -32
- data/lib/aws/templates/utils/parametrized/transformations.rb +0 -652
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
require '
|
|
1
|
+
require 'aws/templates/utils'
|
|
2
2
|
|
|
3
3
|
module UserDirectory
|
|
4
4
|
module Render
|
|
@@ -8,7 +8,7 @@ module UserDirectory
|
|
|
8
8
|
#
|
|
9
9
|
# It just puts a link between children and type registrar
|
|
10
10
|
class ArtifactView < Aws::Templates::Render::View
|
|
11
|
-
register_in
|
|
11
|
+
register_in Etc
|
|
12
12
|
end
|
|
13
13
|
end
|
|
14
14
|
end
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
require '
|
|
1
|
+
require 'aws/templates/utils'
|
|
2
2
|
|
|
3
3
|
module UserDirectory
|
|
4
4
|
module Render
|
|
@@ -8,10 +8,10 @@ module UserDirectory
|
|
|
8
8
|
#
|
|
9
9
|
# Creates group file entry.
|
|
10
10
|
class GroupView < ArtifactView
|
|
11
|
-
artifact UserDirectory::Group
|
|
11
|
+
artifact UserDirectory::Artifacts::Group
|
|
12
12
|
|
|
13
13
|
def prepare
|
|
14
|
-
Diff.new [], [group_record.join(':')]
|
|
14
|
+
Render::Etc::Diff.new [], [group_record.join(':')]
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
def group_record
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
require '
|
|
1
|
+
require 'aws/templates/utils'
|
|
2
2
|
|
|
3
3
|
module UserDirectory
|
|
4
4
|
module Render
|
|
@@ -8,7 +8,7 @@ module UserDirectory
|
|
|
8
8
|
#
|
|
9
9
|
# The same as POSIX user but with customized GECOS field.
|
|
10
10
|
class PersonView < UserView
|
|
11
|
-
artifact UserDirectory::Person
|
|
11
|
+
artifact UserDirectory::Artifacts::Person
|
|
12
12
|
|
|
13
13
|
def user_info
|
|
14
14
|
in_instance { "#{cn},,#{phone}" }
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
require 'aws/templates/
|
|
2
|
-
require 'aws/templates/render/view'
|
|
3
|
-
require 'pathname'
|
|
1
|
+
require 'aws/templates/utils'
|
|
4
2
|
|
|
5
3
|
module UserDirectory
|
|
6
4
|
module Render
|
|
@@ -12,16 +10,16 @@ module UserDirectory
|
|
|
12
10
|
module Etc
|
|
13
11
|
extend Aws::Templates::Render::Utils::BaseTypeViews
|
|
14
12
|
initialize_base_type_views
|
|
15
|
-
register Pathname, Aws::Templates::Render::Utils::BaseTypeViews::ToString
|
|
13
|
+
register ::Pathname, Aws::Templates::Render::Utils::BaseTypeViews::ToString
|
|
16
14
|
Diff = Struct.new(:passwd, :group)
|
|
17
15
|
|
|
18
16
|
##
|
|
19
17
|
# Diff view
|
|
20
18
|
#
|
|
21
|
-
# Creates Diff object out of the instance
|
|
19
|
+
# Creates Diff object out of the instance attached with recursively rendered passwd and group
|
|
22
20
|
# fields.
|
|
23
21
|
class DiffView < Aws::Templates::Render::BasicView
|
|
24
|
-
register_in Etc
|
|
22
|
+
register_in Render::Etc
|
|
25
23
|
artifact Diff
|
|
26
24
|
|
|
27
25
|
def to_rendered
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
require '
|
|
2
|
-
require 'user_directory/artifacts/user'
|
|
1
|
+
require 'aws/templates/utils'
|
|
3
2
|
|
|
4
3
|
module UserDirectory
|
|
5
4
|
module Render
|
|
@@ -9,7 +8,7 @@ module UserDirectory
|
|
|
9
8
|
#
|
|
10
9
|
# It creates passwd file entry
|
|
11
10
|
class UserView < ArtifactView
|
|
12
|
-
artifact UserDirectory::User
|
|
11
|
+
artifact UserDirectory::Artifacts::User
|
|
13
12
|
|
|
14
13
|
def prepare
|
|
15
14
|
Diff.new [user_record.join(':')], []
|
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
require 'aws/templates/
|
|
2
|
-
require 'user_directory/render/ldap/registry'
|
|
1
|
+
require 'aws/templates/utils'
|
|
3
2
|
|
|
4
3
|
module UserDirectory
|
|
5
4
|
module Render
|
|
6
|
-
module
|
|
5
|
+
module Ldap
|
|
7
6
|
##
|
|
8
7
|
# Basic render
|
|
9
8
|
#
|
|
10
9
|
# It just puts a link between children and type registrar
|
|
11
10
|
class ArtifactView < Aws::Templates::Render::View
|
|
12
|
-
register_in Render::
|
|
11
|
+
register_in Render::Ldap
|
|
13
12
|
artifact Aws::Templates::Artifact
|
|
14
13
|
|
|
15
14
|
def prepare
|
|
@@ -1,16 +1,15 @@
|
|
|
1
|
-
require 'aws/templates/
|
|
2
|
-
require 'user_directory/render/ldap/registry'
|
|
1
|
+
require 'aws/templates/utils'
|
|
3
2
|
|
|
4
3
|
module UserDirectory
|
|
5
4
|
module Render
|
|
6
|
-
module
|
|
5
|
+
module Ldap
|
|
7
6
|
##
|
|
8
7
|
# Composite render
|
|
9
8
|
#
|
|
10
9
|
# It aggregates LDIF entries from the children into a single list
|
|
11
10
|
# putting composite's own LDIF entry into the list head.
|
|
12
11
|
class CompositeView < Aws::Templates::Render::View
|
|
13
|
-
register_in Render::
|
|
12
|
+
register_in Render::Ldap
|
|
14
13
|
artifact Aws::Templates::Composite
|
|
15
14
|
|
|
16
15
|
def prepare
|
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
require '
|
|
2
|
-
require 'user_directory/artifacts/group'
|
|
1
|
+
require 'aws/templates/utils'
|
|
3
2
|
|
|
4
3
|
module UserDirectory
|
|
5
4
|
module Render
|
|
6
|
-
module
|
|
5
|
+
module Ldap
|
|
7
6
|
##
|
|
8
7
|
# POSIX group render
|
|
9
8
|
#
|
|
10
9
|
# Creates group LDIF entry.
|
|
11
10
|
class GroupView < ArtifactView
|
|
12
|
-
artifact UserDirectory::Group
|
|
11
|
+
artifact UserDirectory::Artifacts::Group
|
|
13
12
|
|
|
14
13
|
def prepare
|
|
15
14
|
super().merge(
|
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
require '
|
|
2
|
-
require 'user_directory/artifacts/organization'
|
|
1
|
+
require 'aws/templates/utils'
|
|
3
2
|
|
|
4
3
|
module UserDirectory
|
|
5
4
|
module Render
|
|
6
|
-
module
|
|
5
|
+
module Ldap
|
|
7
6
|
##
|
|
8
7
|
# Catalog's organization render
|
|
9
8
|
#
|
|
10
9
|
# It renders into organization's LDIF entry with merged list of children.
|
|
11
10
|
class OrganizationView < CompositeView
|
|
12
|
-
artifact UserDirectory::Organization
|
|
11
|
+
artifact UserDirectory::Artifacts::Organization
|
|
13
12
|
|
|
14
13
|
protected
|
|
15
14
|
|
|
@@ -1,16 +1,15 @@
|
|
|
1
|
-
require '
|
|
2
|
-
require 'user_directory/artifacts/person'
|
|
1
|
+
require 'aws/templates/utils'
|
|
3
2
|
|
|
4
3
|
module UserDirectory
|
|
5
4
|
module Render
|
|
6
|
-
module
|
|
5
|
+
module Ldap
|
|
7
6
|
##
|
|
8
7
|
# Person render
|
|
9
8
|
#
|
|
10
9
|
# It merges POSIX user entry with additional fields and object
|
|
11
10
|
# types valid for a real person.
|
|
12
11
|
class PersonView < UserView
|
|
13
|
-
artifact UserDirectory::Person
|
|
12
|
+
artifact UserDirectory::Artifacts::Person
|
|
14
13
|
|
|
15
14
|
def prepare
|
|
16
15
|
hsh = in_instance do
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
require 'aws/templates/
|
|
2
|
-
require 'pathname'
|
|
1
|
+
require 'aws/templates/utils'
|
|
3
2
|
|
|
4
3
|
module UserDirectory
|
|
5
4
|
module Render
|
|
@@ -7,10 +6,10 @@ module UserDirectory
|
|
|
7
6
|
# LDIF render
|
|
8
7
|
#
|
|
9
8
|
# Transforms formed catalog artifacts into LDIF definition.
|
|
10
|
-
module
|
|
9
|
+
module Ldap
|
|
11
10
|
extend Aws::Templates::Render::Utils::BaseTypeViews
|
|
12
11
|
initialize_base_type_views
|
|
13
|
-
register Pathname, Aws::Templates::Render::Utils::BaseTypeViews::ToString
|
|
12
|
+
register ::Pathname, Aws::Templates::Render::Utils::BaseTypeViews::ToString
|
|
14
13
|
end
|
|
15
14
|
end
|
|
16
15
|
end
|
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
require '
|
|
2
|
-
require 'user_directory/artifacts/unit'
|
|
1
|
+
require 'aws/templates/utils'
|
|
3
2
|
|
|
4
3
|
module UserDirectory
|
|
5
4
|
module Render
|
|
6
|
-
module
|
|
5
|
+
module Ldap
|
|
7
6
|
##
|
|
8
7
|
# Catalog's org unit render
|
|
9
8
|
#
|
|
10
9
|
# It renders into unit's LDIF entry with merged list of children.
|
|
11
10
|
class UnitView < CompositeView
|
|
12
|
-
artifact UserDirectory::Unit
|
|
11
|
+
artifact UserDirectory::Artifacts::Unit
|
|
13
12
|
|
|
14
13
|
protected
|
|
15
14
|
|
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
require '
|
|
2
|
-
require 'user_directory/artifacts/user'
|
|
1
|
+
require 'aws/templates/utils'
|
|
3
2
|
|
|
4
3
|
module UserDirectory
|
|
5
4
|
module Render
|
|
6
|
-
module
|
|
5
|
+
module Ldap
|
|
7
6
|
##
|
|
8
7
|
# POSIX user render
|
|
9
8
|
#
|
|
10
9
|
# It creates POSIX user LDIF entry
|
|
11
10
|
class UserView < ArtifactView
|
|
12
|
-
artifact UserDirectory::User
|
|
11
|
+
artifact UserDirectory::Artifacts::User
|
|
13
12
|
|
|
14
13
|
def prepare
|
|
15
14
|
super().merge(cn: instance.cn).merge(passwd_block)
|
|
@@ -1,24 +1,13 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
require 'user_directory/artifacts/user'
|
|
4
|
-
require 'user_directory/artifacts/person'
|
|
5
|
-
require 'user_directory/artifacts/group'
|
|
6
|
-
require 'user_directory/artifacts/unit'
|
|
7
|
-
require 'user_directory/artifacts/team'
|
|
8
|
-
require 'user_directory/artifacts/organization'
|
|
9
|
-
|
|
10
|
-
require 'user_directory/render/etc'
|
|
11
|
-
require 'user_directory/render/ldap'
|
|
12
|
-
|
|
13
|
-
include UserDirectory
|
|
2
|
+
require 'aws/templates/utils'
|
|
14
3
|
|
|
15
4
|
# rubocop:disable Metrics/BlockLength
|
|
16
5
|
describe UserDirectory do
|
|
17
6
|
let(:directory) do
|
|
18
|
-
Organization.new(name: 'example.com', root: Object.new) do
|
|
19
|
-
artifact(Unit, name: 'Business') do
|
|
7
|
+
UserDirectory::Artifacts::Organization.new(name: 'example.com', root: Object.new) do
|
|
8
|
+
artifact(UserDirectory::Artifacts::Unit, name: 'Business') do
|
|
20
9
|
artifact(
|
|
21
|
-
Team,
|
|
10
|
+
UserDirectory::Artifacts::Team,
|
|
22
11
|
name: 'Sales',
|
|
23
12
|
group_id: 120,
|
|
24
13
|
manager: {
|
|
@@ -57,7 +46,7 @@ describe UserDirectory do
|
|
|
57
46
|
)
|
|
58
47
|
|
|
59
48
|
artifact(
|
|
60
|
-
Team,
|
|
49
|
+
UserDirectory::Artifacts::Team,
|
|
61
50
|
name: 'Finances',
|
|
62
51
|
group_id: 110,
|
|
63
52
|
manager: {
|
|
@@ -85,12 +74,15 @@ describe UserDirectory do
|
|
|
85
74
|
]
|
|
86
75
|
)
|
|
87
76
|
|
|
88
|
-
artifact Group,
|
|
77
|
+
artifact UserDirectory::Artifacts::Group,
|
|
78
|
+
name: 'business',
|
|
79
|
+
id: 100,
|
|
80
|
+
members: search(klass: UserDirectory::Artifacts::User, recursive: true)
|
|
89
81
|
end
|
|
90
82
|
|
|
91
|
-
artifact(Unit, name: 'Engineering', shell: { path: '/bin/zsh' }) do
|
|
83
|
+
artifact(UserDirectory::Artifacts::Unit, name: 'Engineering', shell: { path: '/bin/zsh' }) do
|
|
92
84
|
artifact(
|
|
93
|
-
Team,
|
|
85
|
+
UserDirectory::Artifacts::Team,
|
|
94
86
|
name: 'Production',
|
|
95
87
|
group_id: 210,
|
|
96
88
|
manager: {
|
|
@@ -119,7 +111,7 @@ describe UserDirectory do
|
|
|
119
111
|
)
|
|
120
112
|
|
|
121
113
|
artifact(
|
|
122
|
-
Team,
|
|
114
|
+
UserDirectory::Artifacts::Team,
|
|
123
115
|
name: 'Development',
|
|
124
116
|
group_id: 220,
|
|
125
117
|
manager: {
|
|
@@ -155,7 +147,7 @@ describe UserDirectory do
|
|
|
155
147
|
)
|
|
156
148
|
|
|
157
149
|
artifact(
|
|
158
|
-
Team,
|
|
150
|
+
UserDirectory::Artifacts::Team,
|
|
159
151
|
name: 'QA',
|
|
160
152
|
group_id: 230,
|
|
161
153
|
manager: {
|
|
@@ -190,15 +182,21 @@ describe UserDirectory do
|
|
|
190
182
|
]
|
|
191
183
|
)
|
|
192
184
|
|
|
193
|
-
artifact Group,
|
|
185
|
+
artifact UserDirectory::Artifacts::Group,
|
|
186
|
+
name: 'engineering',
|
|
187
|
+
id: 200,
|
|
188
|
+
members: search(klass: UserDirectory::Artifacts::User, recursive: true)
|
|
194
189
|
end
|
|
195
190
|
|
|
196
|
-
artifact Group,
|
|
191
|
+
artifact UserDirectory::Artifacts::Group,
|
|
192
|
+
name: 'managers',
|
|
193
|
+
id: 300,
|
|
194
|
+
members: search(label: 'manager', recursive: true)
|
|
197
195
|
end
|
|
198
196
|
end
|
|
199
197
|
|
|
200
198
|
describe 'etc render' do
|
|
201
|
-
let(:rendered) { Render::Etc.view_for(directory).to_rendered }
|
|
199
|
+
let(:rendered) { UserDirectory::Render::Etc.view_for(directory).to_rendered }
|
|
202
200
|
|
|
203
201
|
let(:expected) do
|
|
204
202
|
UserDirectory::Render::Etc::Diff.new(
|
|
@@ -241,7 +239,7 @@ describe UserDirectory do
|
|
|
241
239
|
end
|
|
242
240
|
|
|
243
241
|
describe 'ldap render' do
|
|
244
|
-
let(:rendered) { Render::
|
|
242
|
+
let(:rendered) { UserDirectory::Render::Ldap.view_for(directory).to_rendered }
|
|
245
243
|
|
|
246
244
|
let(:expected) do
|
|
247
245
|
[
|
|
@@ -566,3 +564,4 @@ describe UserDirectory do
|
|
|
566
564
|
end
|
|
567
565
|
end
|
|
568
566
|
end
|
|
567
|
+
# rubocop:enable Metrics/BlockLength
|
data/lib/aws/templates.rb
CHANGED
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
require 'aws/templates/artifact'
|
|
2
|
-
require 'aws/templates/composite'
|
|
3
|
-
require 'aws/templates/render'
|
|
4
|
-
require 'aws/templates/utils/named'
|
|
5
|
-
require 'aws/templates/utils/parametrized/constraints'
|
|
6
|
-
require 'aws/templates/utils/parametrized/transformations'
|
|
7
|
-
require 'aws/templates/utils/parametrized/getters'
|
|
8
|
-
|
|
9
1
|
##
|
|
10
2
|
# :main: README.md
|
|
11
3
|
module Aws
|
|
@@ -1,9 +1,4 @@
|
|
|
1
|
-
require 'aws/templates/utils
|
|
2
|
-
require 'aws/templates/utils/parametrized/getters'
|
|
3
|
-
require 'aws/templates/utils/parametrized/constraints'
|
|
4
|
-
require 'aws/templates/utils/default'
|
|
5
|
-
require 'aws/templates/utils/options'
|
|
6
|
-
require 'aws/templates/utils/dependent'
|
|
1
|
+
require 'aws/templates/utils'
|
|
7
2
|
|
|
8
3
|
module Aws
|
|
9
4
|
module Templates
|
|
@@ -53,9 +48,10 @@ module Aws
|
|
|
53
48
|
# any auto-generated parameter with input hash if they have the same
|
|
54
49
|
# name/path.
|
|
55
50
|
class Artifact
|
|
56
|
-
include Utils::Default
|
|
57
|
-
include Utils::Parametrized
|
|
58
|
-
include Utils::Dependent
|
|
51
|
+
include Templates::Utils::Default
|
|
52
|
+
include Templates::Utils::Parametrized
|
|
53
|
+
include Templates::Utils::Dependent
|
|
54
|
+
include Templates::Help::Dsl
|
|
59
55
|
|
|
60
56
|
attr_accessor :options
|
|
61
57
|
|
|
@@ -95,18 +91,30 @@ module Aws
|
|
|
95
91
|
|
|
96
92
|
parameter :label, description: 'Artifact\'s label', constraint: not_nil
|
|
97
93
|
|
|
94
|
+
##
|
|
95
|
+
# Meta field
|
|
96
|
+
#
|
|
97
|
+
# The field is used to attach arbitrary information to artifacts which is not directly
|
|
98
|
+
# relevant to artifact properties. This attribute can be used for tagginng, for instance.
|
|
99
|
+
def meta
|
|
100
|
+
return @meta if @meta
|
|
101
|
+
|
|
102
|
+
meta_option = options[:meta]
|
|
103
|
+
@meta = meta_option.nil? ? {} : meta_option.to_hash
|
|
104
|
+
end
|
|
105
|
+
|
|
98
106
|
##
|
|
99
107
|
# Artifact's root
|
|
100
108
|
#
|
|
101
109
|
# A root is an object which bundles artifacts into common rendering group helping to find
|
|
102
110
|
# disconnected pieces of dependency graph. If two artifacts have different roots they
|
|
103
111
|
# definitelly belong to different graphs.
|
|
104
|
-
default root: proc { object_id }
|
|
105
|
-
|
|
106
112
|
def root
|
|
107
113
|
options[:root]
|
|
108
114
|
end
|
|
109
115
|
|
|
116
|
+
default root: proc { object_id }
|
|
117
|
+
|
|
110
118
|
# Artifact's look-up path through all ancestors
|
|
111
119
|
def lookup_path
|
|
112
120
|
acc = [label]
|
|
@@ -146,7 +154,7 @@ module Aws
|
|
|
146
154
|
# * +params+ - input parameters hash to be used during following
|
|
147
155
|
# hash transformations and expansions.
|
|
148
156
|
def initialize(params)
|
|
149
|
-
@options = Utils::Options.new(defaults, params)
|
|
157
|
+
@options = Templates::Utils::Options.new(defaults, params)
|
|
150
158
|
end
|
|
151
159
|
end
|
|
152
160
|
end
|