Skip to content

Commit 21002b2

Browse files
author
Teddy Valette
committed
Merge branch 'oar_wiki_gen_api_call' into 'master'
[gen/wiki/oar] use get_api helper and raise an error when undocumented properties See merge request grid5000/reference-repository!105
2 parents 1290be1 + 32c0f70 commit 21002b2

File tree

1 file changed

+17
-15
lines changed

1 file changed

+17
-15
lines changed

lib/refrepo/gen/wiki/generators/oar_properties.rb

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,11 @@ def initialize(page_name)
222222
}
223223

224224
#Existing properties that won't be documented
225-
@@ignored_properties = ["maintenance", "state", "ip_virtual"]
225+
@@ignored_properties = [
226+
"maintenance", "state", "ip_virtual", "api_timestamp", "available_upto", "chunks", "desktop_computing",
227+
"drain", "finaud_decision", "grub", "id", "last_available_upto", "last_job_date", "links", "next_finaud_decision",
228+
"next_state", "rconsole", "scheduler_priority", "state_num", "suspended_jobs"
229+
]
226230

227231
def get_value_type(prop, values)
228232
if (@@properties[prop]["value_type"])
@@ -243,20 +247,18 @@ def generate_content
243247
refapi = load_data_hierarchy
244248
#Properties generated from oar-properties generator
245249
props = {}
246-
oar_data_properties = []
250+
oarapi_properties = []
251+
247252
G5K::SITES.each_with_index{ |site_uid, index|
248253
props[site_uid] = {}
249254
props[site_uid]["default"] = get_ref_default_properties(site_uid, refapi["sites"][site_uid])
250255
props[site_uid]["disk"] = get_ref_disk_properties(site_uid, refapi["sites"][site_uid])
256+
}
251257

252-
# Retrieve all oar fields from the first site
253-
if index == 0
254-
get_oar_data(site_uid, {:api => {}, :verbose => false}).each { |oar_node_data, _|
255-
oar_node_data.each { |key, _|
256-
oar_data_properties << key unless oar_data_properties.include? key
257-
}
258-
}
259-
end
258+
RefRepo::Utils::get_api("sites/#{G5K::SITES.first}/internal/oarapi/resources/details.json?limit=999999")['items'].each { |oarapi_details|
259+
oarapi_details.keys.each { |property|
260+
oarapi_properties << property unless oarapi_properties.include? property
261+
}
260262
}
261263

262264
#Compiled properties used to generate page
@@ -288,13 +290,13 @@ def generate_content
288290
@@properties[prop]["possible_values"] ||= prop_hash["values"].join(", ") unless @@properties[prop].nil?
289291
}
290292

291-
# Compare properties with fields from oar db
292-
oar_data_properties.reject!{|x| (@@properties.keys.include? x or @@ignored_properties.include? x)}
293+
# If there are undocumented and not ignored properties, we raise an error
294+
oarapi_properties.reject!{|x| (@@properties.keys.include? x or @@ignored_properties.include? x)}
295+
if not oarapi_properties.empty?
296+
raise("Following properties are not documented : #{oarapi_properties.sort.join(', ')}")
297+
end
293298

294299
@generated_content = "{{Portal|User}}\nProperties on resources managed by OAR allow users to select them according to their experiment's characteristics." + MW::LINE_FEED
295-
if not oar_data_properties.empty?
296-
@generated_content += "{{Warning|text=Following properties are not documented : " + oar_data_properties.sort.join(', ') + "}}" + MW::LINE_FEED
297-
end
298300
@generated_content += MW::heading("OAR Properties", 1) + MW::LINE_FEED
299301

300302
@@categories.sort.to_h.each { |cat, cat_properties|

0 commit comments

Comments
 (0)