Module: CPEE::Instantiation::Helpers

Included in:
HandleInstance, InstantiateGit, InstantiateUrl, InstantiateXML
Defined in:
lib/cpee-instantiation/instantiation.rb

Overview

{{{

Instance Method Summary collapse

Instance Method Details

#add_to_testset(tdoc, what, data) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/cpee-instantiation/instantiation.rb', line 36

def add_to_testset(tdoc,what,data)
  if data && !data.empty?
    JSON::parse(data).each do |k,v|
      ele = tdoc.find("/*/prop:#{what}/prop:#{k}")
      if ele.any?
        ele.first.text = CPEE::ValueHelper::generate(v)
      else
        ele = tdoc.find("/*/prop:#{what}")
        ele = if ele.any?
          ele.first
        else
          tdoc.root.add("prop:#{what}")
        end
        ele.add(k,CPEE::ValueHelper::generate(v))
      end
    end
  end
end

#augment_testset(tdoc, p) ⇒ Object



55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/cpee-instantiation/instantiation.rb', line 55

def augment_testset(tdoc,p)
  tdoc = XML::Smart.string(tdoc)
  tdoc.register_namespace 'desc', 'http://cpee.org/ns/description/1.0'
  tdoc.register_namespace 'prop', 'http://cpee.org/ns/properties/2.0'
  tdoc.register_namespace 'sub', 'http://riddl.org/ns/common-patterns/notifications-producer/2.0'

  if data = p.find{ |e| e.name == 'init' }&.value
    add_to_testset(tdoc,'dataelements',data)
  end
  if data = p.find{ |e| e.name == 'endpoints' }&.value
    add_to_testset(tdoc,'endpoints',data)
  end
  if data = p.find{ |e| e.name == 'attributes' }&.value
    add_to_testset(tdoc,'attributes',data)
  end
  tdoc
end

#handle_attributes(cpee, instance, data) ⇒ Object

}}}



198
199
200
201
202
203
204
205
206
207
208
209
210
# File 'lib/cpee-instantiation/instantiation.rb', line 198

def handle_attributes(cpee,instance,data) #{{{
  if data && !data.empty?
    content = XML::Smart.string('<attributes xmlns="http://cpee.org/ns/properties/2.0"/>')
    JSON::parse(data).each do |k,v|
      content.root.add(k,v)
    end
    srv = Riddl::Client.new(cpee, File.join(cpee,'?riddl-description'))
    res = srv.resource("/#{instance}/properties/attributes/")
    status, response = res.patch [
      Riddl::Parameter::Complex.new('attributes','text/xml',content.to_s)
    ]
  end rescue nil
end

#handle_data(cpee, instance, data) ⇒ Object

{{{



172
173
174
175
176
177
178
179
180
181
182
183
184
# File 'lib/cpee-instantiation/instantiation.rb', line 172

def handle_data(cpee,instance,data) #{{{
  if data && !data.empty?
    content = XML::Smart.string('<dataelements xmlns="http://cpee.org/ns/properties/2.0"/>')
    JSON::parse(data).each do |k,v|
      content.root.add(k,CPEE::ValueHelper::generate(v))
    end
    srv = Riddl::Client.new(cpee, File.join(cpee,'?riddl-description'))
    res = srv.resource("/#{instance}/properties/dataelements/")
    status, response = res.patch [
      Riddl::Parameter::Complex.new('dataelements','text/xml',content.to_s)
    ]
  end rescue nil
end

#handle_endpoints(cpee, instance, data) ⇒ Object

}}}



185
186
187
188
189
190
191
192
193
194
195
196
197
# File 'lib/cpee-instantiation/instantiation.rb', line 185

def handle_endpoints(cpee,instance,data) #{{{
  if data && !data.empty?
    content = XML::Smart.string('<endpoints xmlns="http://cpee.org/ns/properties/2.0"/>')
    JSON::parse(data).each do |k,v|
      content.root.add(k,v)
    end
    srv = Riddl::Client.new(cpee, File.join(cpee,'?riddl-description'))
    res = srv.resource("/#{instance}/properties/endpoints/")
    status, response = res.patch [
      Riddl::Parameter::Complex.new('endpoints','text/xml',content.to_s)
    ]
  end rescue nil
end