dtk_crd_parser 0.0.23 → 0.0.24
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/crd_parser.rb +1 -1
- data/lib/crd_parser/base_class/helper_mixins.rb +0 -24
- data/lib/crd_parser/component.rb +0 -6
- data/lib/crd_parser/component_def.rb +9 -11
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 07165f1846624edc95156486af01baacf9296ce003f1882f07ed9ff2368599ae
|
4
|
+
data.tar.gz: 67637040432e0bc78c9ec429acb7476d14e5d86bc2e7e45ba06a53a1b7d140cd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 804abf6b8dcab1e8e5da70220f6021a021396ea5db18166317fc59f19070938a40830519e2d317ee163deeb92bd425e6c2d597433c86bfdd39c426b404f4d4ac
|
7
|
+
data.tar.gz: d49f5da93f8e43b1a9a1332bc3838b5c99625c8df72ed7fb3884ad8277e34d6a22014e04a506db2473a1210871ad0d20b2b51738189342ebc8a07b9803275223
|
data/lib/crd_parser.rb
CHANGED
@@ -6,7 +6,7 @@ module DTK
|
|
6
6
|
require_relative('crd_parser/component_def')
|
7
7
|
|
8
8
|
def self.parse_crd_to_component(client, component_instance, component_name)
|
9
|
-
#component instance has a name and a namespace
|
9
|
+
#component instance has a name and a namespace {name: xxx, namespace: yyy}
|
10
10
|
#client is kube client
|
11
11
|
#component name is, for example, network-aws::vpc[vpc1]
|
12
12
|
Component.create_from_kube(client, component_instance, component_name)
|
@@ -21,30 +21,6 @@ module DTK::CrdParser
|
|
21
21
|
end
|
22
22
|
fail "#{the_method} is not defined in the concrete class #{klass}"
|
23
23
|
end
|
24
|
-
|
25
|
-
def isOnSpecificNode(actionComponent)
|
26
|
-
actionComponent.include? "/"
|
27
|
-
end
|
28
|
-
|
29
|
-
def self.destructureActionComponent(actionComponent)
|
30
|
-
# regex to match component: module::name[attrName].action
|
31
|
-
regex = /(.*)::(.*)\[(.*)\].?(.*)/
|
32
|
-
# if component on node group node, get full name first
|
33
|
-
# i.e ec2::node[ng-1]/(node-utility::ssh-access[ubuntu])
|
34
|
-
nodeName, actionComponent = actionComponent.match(/(.*)\/(.*)/).captures if isOnSpecificNode(actionComponent)
|
35
|
-
compModule, compName, attributeName, action = actionComponent.match(regex).captures if actionComponent.match(regex)
|
36
|
-
action = (action && !action.empty?) ? action.to_sym : :create
|
37
|
-
if(compModule.nil? || compName.nil? || attributeName.nil?)
|
38
|
-
raise "Could not resolve component module, name or attribute name for component: #{actionComponent}"
|
39
|
-
end
|
40
|
-
{
|
41
|
-
moduleName: compModule,
|
42
|
-
componentName: compName,
|
43
|
-
attributeName: attributeName,
|
44
|
-
action: action
|
45
|
-
}
|
46
|
-
end
|
47
|
-
|
48
24
|
end
|
49
25
|
end
|
50
26
|
end
|
data/lib/crd_parser/component.rb
CHANGED
@@ -13,16 +13,10 @@ module DTK::CrdParser
|
|
13
13
|
component_instance_obj = client.get_component(component_instance[:name], component_instance[:namespace])
|
14
14
|
component_def = ComponentDef.create_from_kube(client, component_instance_obj, component_name)
|
15
15
|
component_attributes = getComponentAttributes(component_name, component_instance_obj[:spec][:components])
|
16
|
-
Logger.new('/proc/1/fd/1').info "COMPONENT ATTRIBUTES"
|
17
|
-
Logger.new('/proc/1/fd/1').info component_attributes.to_hash
|
18
16
|
attributes = []
|
19
17
|
component_attributes.to_hash.each do |attribute_name, attribute_value|
|
20
|
-
Logger.new('/proc/1/fd/1').info "ATTRIBUTE"
|
21
|
-
Logger.new('/proc/1/fd/1').info attribute_name
|
22
18
|
attributes.push Attribute.create_from_kube(attribute_name, attribute_value)
|
23
19
|
end
|
24
|
-
Logger.new('/proc/1/fd/1').info "ATTRIBUTES"
|
25
|
-
Logger.new('/proc/1/fd/1').info attributes
|
26
20
|
Component.new(component_name, component_def, attributes)
|
27
21
|
end
|
28
22
|
|
@@ -5,9 +5,9 @@ module DTK::CrdParser
|
|
5
5
|
MODE_DEFAULT = :component_instance
|
6
6
|
|
7
7
|
def initialize(metadata, componentDefAction, componentDefAttributes)
|
8
|
-
@name
|
9
|
-
@namespace
|
10
|
-
@
|
8
|
+
@name = metadata[:name]
|
9
|
+
@namespace = metadata[:namespace]
|
10
|
+
@resource_version = metadata[:resourceVersion]
|
11
11
|
|
12
12
|
@bash_script = componentDefAction[:bash_script]
|
13
13
|
@entrypoint = componentDefAction[:entrypoint]
|
@@ -17,16 +17,14 @@ module DTK::CrdParser
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def self.create_from_kube(client, component_instance, component_def_name)
|
20
|
-
module_name
|
21
|
-
|
22
|
-
|
23
|
-
module_ref = resolveModuleReference(component_instance[:references][:module_refs], component_def_name, module_name)
|
24
|
-
|
20
|
+
{ module_name, component_name, attribute_name, action } = destructureActionComponent(component_def_name)[:moduleName]
|
21
|
+
module_ref = resolveModuleReference(component_instance[:references][:module_refs], component_def_name, module_name)
|
22
|
+
|
25
23
|
componentDef = client.get_componentdef("#{module_name}-#{component_name}", module_ref[:namespace])
|
26
24
|
|
27
25
|
name = componentDef[:metadata][:name]
|
28
26
|
namespace = componentDef[:metadata][:namespace]
|
29
|
-
|
27
|
+
resource_version = componentDef[:metadata][:resourceVersion]
|
30
28
|
|
31
29
|
componentDefSpec = componentDef[:spec]
|
32
30
|
componentDefAction = componentDefSpec[:actions][action.to_sym]
|
@@ -39,7 +37,7 @@ module DTK::CrdParser
|
|
39
37
|
metadata = {
|
40
38
|
name: name,
|
41
39
|
namespace: namespace,
|
42
|
-
|
40
|
+
resource_version: resource_version
|
43
41
|
}
|
44
42
|
|
45
43
|
ComponentDef.new(metadata, componentDefAction, componentDefAttributes)
|
@@ -83,7 +81,7 @@ module DTK::CrdParser
|
|
83
81
|
|
84
82
|
protected
|
85
83
|
|
86
|
-
attr_reader :name, :namespace, :attribute_type_info, :bash_script, :entrypoint, :type
|
84
|
+
attr_reader :name, :namespace, :resource_version, :attribute_type_info, :bash_script, :entrypoint, :type
|
87
85
|
|
88
86
|
end
|
89
87
|
end
|