Skip to content
Snippets Groups Projects
Verified Commit 55e7f9df authored by Boris Parak's avatar Boris Parak :8ball:
Browse files

UPD perunapi: Fix typos and formatting

parent f25a0bb0
Branches
Tags
No related merge requests found
......@@ -20,20 +20,24 @@ define perunapi::facility (
####
$_query = perunapi::call($api_host, $api_user, $api_passwd, 'facilitiesManager', 'getFacilityByName',
{ 'name' => $title }, $cluster)
$_query = perunapi::call(
$api_host, $api_user, $api_passwd, 'facilitiesManager', 'getFacilityByName',
{ 'name' => $title }, $cluster
)
if $_query['name'] == 'FacilityNotExistsException' {
notify{ 'create_facility':
message => "Creating facility ${title}",
notify { 'create_facility':
message => "Creating facility ${title}",
}
$_createfacility_req = { 'facility' => { 'id' => 0, 'name' => $title, 'description' => $description } }
$_facility_result = perunapi::call($api_host, $api_user, $api_passwd, 'facilitiesManager', 'createFacility',
$_createfacility_req, $cluster)
$_facility_result = perunapi::call(
$api_host, $api_user, $api_passwd, 'facilitiesManager', 'createFacility',
$_createfacility_req, $cluster
)
if $_facility_result['id'] {
$_facility_id = $_facility_result['id']
$_facility_id = $_facility_result['id']
}
} else {
if $_query['id'] {
......@@ -47,8 +51,10 @@ define perunapi::facility (
####
$_query_admin_users = perunapi::call($api_host, $api_user, $api_passwd, 'facilitiesManager', 'getAdmins',
{ 'facility' => $_facility_id, 'onlyDirectAdmins' => 'true' }, $cluster)
$_query_admin_users = perunapi::call(
$api_host, $api_user, $api_passwd, 'facilitiesManager', 'getAdmins',
{ 'facility' => $_facility_id, 'onlyDirectAdmins' => true }, $cluster
)
$_adm_users = $_query_admin_users.map |$_user| { $_user['lastName'] }
$_add_adm_users = $manager['users'] - $_adm_users
......@@ -57,43 +63,57 @@ define perunapi::facility (
message => "Adding admin user ${_user}",
}
$_query_user = perunapi::call($api_host, $api_user, $api_passwd, 'membersManager', 'findMembersInVo',
{ 'searchString' => $_user, 'vo' => $vo }, $cluster)
$_query_user = perunapi::call(
$api_host, $api_user, $api_passwd, 'membersManager', 'findMembersInVo',
{ 'searchString' => $_user, 'vo' => $vo }, $cluster
)
if empty($_query_user) {
fail("Did not find user ${_user}")
}
$_user_id = $_query_user[0]['userId']
perunapi::call($api_host, $api_user, $api_passwd, 'facilitiesManager', 'addAdmin',
{ 'facility' => $_facility_id , 'user' => $_user_id }, $cluster)
perunapi::call(
$api_host, $api_user, $api_passwd, 'facilitiesManager', 'addAdmin',
{ 'facility' => $_facility_id , 'user' => $_user_id }, $cluster
)
}
####
$_query_admin_groups = perunapi::call($api_host, $api_user, $api_passwd, 'facilitiesManager', 'getAdminGroups',
{'facility' => $_facility_id}, $cluster)
$_query_admin_groups = perunapi::call(
$api_host, $api_user, $api_passwd, 'facilitiesManager', 'getAdminGroups',
{'facility' => $_facility_id}, $cluster
)
$_adm_groups = $_query_admin_groups.map |$_group| { $_group['name'] }
$_add_adm_groups = $manager['groups'] - $_adm_groups
$_add_adm_groups.each |$_group| {
notify{ 'addAdminGroups':
message => "Adding admin group ${_group}",
message => "Adding admin group ${_group}",
}
$_query_group = perunapi::call($api_host, $api_user, $api_passwd, 'groupsManager', 'getGroupByName',
{ 'name' => $_group, 'vo' => $vo }, $cluster)
$_query_group = perunapi::call(
$api_host, $api_user, $api_passwd, 'groupsManager', 'getGroupByName',
{ 'name' => $_group, 'vo' => $vo }, $cluster
)
if empty($_query_group) {
fail("Did not find group ${_group}")
}
perunapi::call($api_host, $api_user, $api_passwd, 'facilitiesManager', 'addAdmin',
{ 'facility' => $_facility_id , 'authorizedGroup' => $_query_group['id'] }, $cluster)
perunapi::call(
$api_host, $api_user, $api_passwd, 'facilitiesManager', 'addAdmin',
{ 'facility' => $_facility_id , 'authorizedGroup' => $_query_group['id'] }, $cluster
)
}
####
$_query_owners = perunapi::call($api_host, $api_user, $api_passwd, 'facilitiesManager', 'getOwners',
{ 'facility' => $_facility_id }, $cluster)
$_query_owners = perunapi::call(
$api_host, $api_user, $api_passwd, 'facilitiesManager', 'getOwners',
{ 'facility' => $_facility_id }, $cluster
)
$_owners = $_query_owners.map |$_owner| { $_owner['name'] }
$_add_owners = $owner - $_owners
......@@ -106,24 +126,30 @@ define perunapi::facility (
message => "Adding owner with ID ${_id} to facility ${title}",
}
perunapi::call($api_host, $api_user, $api_passwd, 'facilitiesManager', 'addOwner',
{ 'facility' => $_facility_id, 'owner' => $_id }, $cluster)
perunapi::call(
$api_host, $api_user, $api_passwd, 'facilitiesManager', 'addOwner',
{ 'facility' => $_facility_id, 'owner' => $_id }, $cluster
)
}
}
####
$_query_hosts = perunapi::call($api_host, $api_user, $api_passwd, 'facilitiesManager', 'getHosts',
{ 'facility' => $_facility_id }, $cluster)
$_query_hosts = perunapi::call(
$api_host, $api_user, $api_passwd, 'facilitiesManager', 'getHosts',
{ 'facility' => $_facility_id }, $cluster
)
$_query_hostnames = $_query_hosts.map |$_host| { $_host['hostname'] }
unless $facts['fqdn'] in $_query_hostnames {
unless $facts['networking']['fqdn'] in $_query_hostnames {
notify { 'addHost_self':
message => "Adding host ${facts['fqdn']} to facility ${title}",
message => "Adding host ${facts['networking']['fqdn']} to facility ${title}",
}
perunapi::call($api_host, $api_user, $api_passwd, 'facilitiesManager', 'addHost',
{ 'facility' => $_facility_id, 'hostname' => $facts['fqdn'] }, $cluster)
perunapi::call(
$api_host, $api_user, $api_passwd, 'facilitiesManager', 'addHost',
{ 'facility' => $_facility_id, 'hostname' => $facts['networking']['fqdn'] }, $cluster
)
}
$_add_customhosts = $customhosts - $_query_hostnames
......@@ -133,12 +159,16 @@ define perunapi::facility (
message => "Adding host ${_host} to facility ${title}",
}
perunapi::call($api_host, $api_user, $api_passwd, 'facilitiesManager', 'addHost',
{ 'facility' => $_facility_id, 'hostname' => $_host }, $cluster)
perunapi::call(
$api_host, $api_user, $api_passwd, 'facilitiesManager', 'addHost',
{ 'facility' => $_facility_id, 'hostname' => $_host }, $cluster
)
}
$_dbhosts = puppetdb_query("resources { type = 'Perunapi::Host' and parameters.cluster = '${cluster}' }")
.map |$_db_resource| { $_db_resource['parameters']['hostname'] }
$_dbhosts = puppetdb_query(
"resources { type = 'Perunapi::Host' and parameters.cluster = '${cluster}' }"
).map |$_db_resource| { $_db_resource['parameters']['hostname'] }
$_live_hosts = concat($_dbhosts, $customhosts)
$_remove_hosts = $_query_hostnames - $_live_hosts
......@@ -148,17 +178,21 @@ define perunapi::facility (
}
$_hostid = $_query_hosts.filter |$_f_host| { $_f_host['hostname'] == $_remove_host }
perunapi::call($api_host, $api_user, $api_passwd, 'facilitiesManager', 'removeHost',
{ "host" => $_hostid[0]['id'] }, $cluster)
perunapi::call(
$api_host, $api_user, $api_passwd, 'facilitiesManager', 'removeHost',
{ 'host' => $_hostid[0]['id'] }, $cluster
)
}
####
$_filtered_data = $attributes.filter |$key, $value| { $key =~ /:facility:/ }
$_tmp_array = $_filtered_data.reduce([]) |Array $memo, Array $_item| {
$_attribute = perunapi::call($api_host, $api_user, $api_passwd, 'attributesManager', 'getAttribute',
{'facility' => $_facility_id, 'attributeName' => $_item[0]}, $cluster)
$_final_array = $_filtered_data.reduce([]) |Array $memo, Array $_item| {
$_attribute = perunapi::call(
$api_host, $api_user, $api_passwd, 'attributesManager', 'getAttribute',
{'facility' => $_facility_id, 'attributeName' => $_item[0]}, $cluster
)
if $_attribute['id'] {
$_newattr = $_item[1] ? {
......@@ -178,35 +212,42 @@ define perunapi::facility (
}
}
unless empty($_final) {
$_attributes_result = perunapi::call($api_host, $api_user, $api_passwd, 'attributesManager', 'setAttributes',
{ 'facility' => $_facility_id, 'attributes' => $_final }, $cluster)
unless empty($_final_array) {
$_attributes_result = perunapi::call(
$api_host, $api_user, $api_passwd, 'attributesManager', 'setAttributes',
{ 'facility' => $_facility_id, 'attributes' => $_final_array }, $cluster
)
if $_attributes_result['timeout'] {
return()
}
if $_attributes_result['errorId'] and $_attributes_result['message'] {
fail("Cannot set attributes. Reason: ${_attributes_result['message']} Attributes: ${_final}")
fail("Cannot set attributes. Reason: ${_attributes_result['message']} Attributes: ${_final_array}")
}
}
####
$services.each |$_service, $_service_hash| {
$_service_result = perunapi::call($api_host, $api_user, $api_passwd, 'servicesManager', 'getServiceByName',
{'name' => $_service}, $cluster)
$_service_result = perunapi::call(
$api_host, $api_user, $api_passwd, 'servicesManager', 'getServiceByName',
{'name' => $_service}, $cluster
)
if $_service_result['errorId'] and $_service_result['message'] {
fail("Cannot get service ID for ${_service}")
fail("Cannot get service ID for ${_service}")
}
$_destination = $_service_hash['destination'] ? {
'all' => $facts['fqdn'],
'all' => $facts['networking']['fqdn'],
default => $_service_hash['destination'],
}
$_dest_res = perunapi::call($api_host, $api_user, $api_passwd, 'servicesManager', 'getDestinations',
{'service' => $_service_result['id'], 'facility' => $_facility_id}, $cluster)
$_dest_res = perunapi::call(
$api_host, $api_user, $api_passwd, 'servicesManager', 'getDestinations',
{'service' => $_service_result['id'], 'facility' => $_facility_id}, $cluster
)
$_assigned_dests = $_dest_res.map |$_dest| { $_dest['destination'] }
unless $_destination in $_assigned_dests {
......@@ -219,9 +260,17 @@ define perunapi::facility (
default => 'PARALLEL',
}
perunapi::call($api_host, $api_user, $api_passwd, 'servicesManager', 'addDestination',
{ 'service' => $_service_result['id'], 'facility' => $_facility_id, 'destination' => $_destination,
'type' => $_service_hash['type'], 'propagationType' => $_propagation }, $cluster)
perunapi::call(
$api_host, $api_user, $api_passwd, 'servicesManager', 'addDestination',
{
'service' => $_service_result['id'],
'facility' => $_facility_id,
'destination' => $_destination,
'type' => $_service_hash['type'],
'propagationType' => $_propagation
},
$cluster
)
}
# remove only services on 'all' hosts, do not remove named hosts. hack for pbsmon_service
......@@ -229,11 +278,18 @@ define perunapi::facility (
$_remove_dests = $_assigned_dests - $_live_hosts
$_remove_dests.each |$_r_dest| {
perunapi::call($api_host, $api_user, $api_passwd, 'servicesManager', 'removeDestination',
{ 'service' => $_service_result['id'], 'facility' => $_facility_id, 'destination' => $_r_dest,
'type' => $_service_hash['type'] }, $cluster)
notify { "removeDest${_r_dest}${_service_id}":
perunapi::call(
$api_host, $api_user, $api_passwd, 'servicesManager', 'removeDestination',
{
'service' => $_service_result['id'],
'facility' => $_facility_id,
'destination' => $_r_dest,
'type' => $_service_hash['type']
},
$cluster
)
notify { "removeDest${_r_dest}${_service_result['id']}":
message => "Removed destination ${_r_dest} for service ${_service}",
}
}
......
define perunapi::host (
Stdlib::Fqdn $cluster,
Stdlib::Fqdn $hostname = $facts['fqdn'],
Stdlib::Fqdn $hostname = $facts['networking']['fqdn'],
Enum['present', 'absent'] $ensure = 'present',
Hash $attributes = {},
) {
......@@ -13,28 +13,33 @@ define perunapi::host (
$api_host = $perunapi::perun_api_host
$api_passwd = $perunapi::perun_api_password
$_query_hosts = perunapi::call($api_host, $api_user, $api_passwd, 'facilitiesManager', 'getHostsByHostname',
{ 'hostname' => $hostname }, $cluster)
$_query_hosts = perunapi::call(
$api_host, $api_user, $api_passwd, 'facilitiesManager', 'getHostsByHostname',
{ 'hostname' => $hostname }, $cluster
)
$_host_ids = $_query_hosts.map |$_host| { $_host['id'] }
$attributes.each |$_attr, $_attr_value| {
if $_attr =~ /:host:/ {
$_host_ids.each |$_host_id| {
$_attribute = perunapi::call($api_host, $api_user, $api_passwd, 'attributesManager', 'getAttribute',
{ 'host' => $_host_id, 'attributeName' => $_attr }, $cluster)
$_attribute = perunapi::call(
$api_host, $api_user, $api_passwd, 'attributesManager', 'getAttribute',
{ 'host' => $_host_id, 'attributeName' => $_attr }, $cluster
)
if $_attr_value == 'null' {
$_newattr = undef
} elsif $_attr_value =~ String and $_attr_value =~ /^[0-9]*$/ {
$_newattr = scanf("${attributes[$_attr]}", "%i")[0]
$_newattr = scanf($_attr_value, '%i')[0]
} else {
$_newattr = $_attr_value
}
if $_attribute['id'] and $_attribute['value'] != $_newattr {
$_newval = { 'value' => $_newattr }
$_res = perunapi::call($api_host, $api_user, $api_passwd, 'attributesManager', 'setAttribute',
{ 'host' => $_host_id, 'attribute' => merge($_attribute, $_newval) }, $cluster)
$_res = perunapi::call(
$api_host, $api_user, $api_passwd, 'attributesManager', 'setAttribute',
{ 'host' => $_host_id, 'attribute' => merge($_attribute, { 'value' => $_newattr }) }, $cluster
)
if $_res['errorId'] and $_res['message'] {
fail("Cannot set attribute: ${_attr}. Reason: ${_res['message']}")
......@@ -46,7 +51,7 @@ define perunapi::host (
}
unless $_attribute['id'] {
notify { "Warning: undefined attribute name $_attr for host $_host_id": }
notify { "Warning: undefined attribute name ${_attr} for host ${_host_id}": }
}
}
}
......
......@@ -12,22 +12,25 @@ class perunapi (
fail('Facility not specified, cannot continue')
}
$_query = perunapi::call($perun_api_host, $perun_api_user, $perun_api_password, 'vosManager', 'getVoByShortName',
{ 'shortName' => $_perunapi['facility']['vo'] }, $cluster)
$_query = perunapi::call(
$perun_api_host, $perun_api_user, $perun_api_password, 'vosManager', 'getVoByShortName',
{ 'shortName' => $_perunapi['facility']['vo'] }, $cluster
)
if empty($_query) {
fail("Cannot get VO ${_perunapi['facility']['vo']} ID")
}
perunapi::facility { $_perunapi['facility']['name']:
ensure => present,
description => $_perunapi['facility']['description'],
manager => $_perunapi['facility']['manager'],
owner => $_perunapi['facility']['owner'],
vo => $_query['id'],
customhosts => $_perunapi['facility']['customhosts'],
cluster => $cluster,
attributes => $_perunapi['attributes'],
services => $_perunapi['services'],
ensure => present,
description => $_perunapi['facility']['description'],
manager => $_perunapi['facility']['manager'],
owner => $_perunapi['facility']['owner'],
vo => $_query['id'],
customhosts => $_perunapi['facility']['customhosts'],
cluster => $cluster,
attributes => $_perunapi['attributes'],
services => $_perunapi['services'],
}
if $_perunapi['resources'] {
......
......@@ -7,10 +7,10 @@ class perunapi::params {
$cluster = $trusted['domain'] =~ /cloud\.muni\.cz$/ ? {
true => $facts['is_cluster'] ? {
true => $facts['cluster']['full_name'],
default => $facts['fqdn'],
default => $facts['networking']['fqdn'],
},
default => empty($facts['clusterfullname']) ? {
true => $facts['fqdn'],
true => $facts['networking']['fqdn'],
default => $facts['clusterfullname'],
},
}
......
define perunapi::pbsmon (
Array $attributes,
Stdlib::Fqdn $context,
Enum['present', 'absent'] $ensure = 'present',
Array $attributes,
Stdlib::Fqdn $context,
Enum['present', 'absent'] $ensure = 'present',
) {
if $ensure == 'absent' {
......@@ -14,23 +14,17 @@ define perunapi::pbsmon (
####
$_query = perunapi::call($api_host, $api_user, $api_passwd, 'facilitiesManager', 'getFacilityByName',
{ 'name' => $title }, $context)
unless $_query['id'] {
fail("Unknown facility ${title}")
}
$_facility_id = $_query['id']
$attributes.each |$_attr| {
case $_attr {
/facility.*cpu/: {
if $facts['processor0'] =~ /Intel/ {
$_cpu = regsubst(regsubst($facts['processor0'], 'CPU.*', ''), '\(R\)', '', 'G')
} elsif $facts['processor0'] =~ /AMD/ {
$_cpu = regsubst($facts['processor0'], ' [0-9]*-Core.*', '')
if $facts['processors']['models'][0] =~ /Intel/ {
$_cpu = regsubst(regsubst($facts['processors']['models'][0], 'CPU.*', ''), '\(R\)', '', 'G')
} elsif $facts['processors']['models'][0] =~ /AMD/ {
$_cpu = regsubst($facts['processors']['models'][0], ' [0-9]*-Core.*', '')
}
$_value = "${facts['physicalprocessorcount']}x ${_cpu} (${facts['physicalprocessorcount']}x ${facts['processorcorecount']} Core) ${facts['processors']['speed']}"
$_value = "${facts['processors']['physicalcount']}x ${_cpu} (${facts['processors']['physicalcount']}x \
${facts['processorcorecount']} Core) ${facts['processors']['speed']}"
}
/facility.*network/: {
$_speeds = $facts.filter |$_k, $_v| {
......@@ -38,7 +32,7 @@ define perunapi::pbsmon (
}
$_maxspeed = flatten($_speeds.values.map |$_v| {
split($_v, ',')
split($_v, ',')
}).sort[-1]
$_ifno = $_speeds.filter |$_k, $_v| {
......@@ -46,47 +40,48 @@ define perunapi::pbsmon (
}.size
if $facts['has_ibcontroller'] {
$_ib = "1x InfiniBand ${facts['ib_speed']} Gbit/s, "
$_ib = "1x InfiniBand ${facts['ib_speed']} Gbit/s, "
} else {
$_ib = ''
$_ib = ''
}
$_maxspeedgb = $_maxspeed / 1000
$_value = { 'cs' => "${_ib}${_ifno}x Ethernet ${_maxspeedgb} Gbit/s",
'en' => "${_ib}${_ifno}x Ethernet ${_maxspeedgb} Gbit/s"}
$_value = {
'cs' => "${_ib}${_ifno}x Ethernet ${_maxspeedgb} Gbit/s",
'en' => "${_ib}${_ifno}x Ethernet ${_maxspeedgb} Gbit/s"
}
}
/facility.*disk/: {
$_nvme_disks = $facts['disks'].keys.filter |$_k| {
$_k =~ /nvme/
}
$_nvme_disks = $facts['disks'].keys.filter |$_k| { $_k =~ /nvme/ }
$_classic_disks = $facts['disks'].filter |$_k, $_v| {
$_k =~ /^sd/ and $_v['vendor'] in ['ATA', 'HGST']
}
if $_nvme_disks.size > 0 {
$_v_nvme = "${_nvme_disks.size}x${facts['disks'][$_nvme_disks[0]]['size']} SSD NVME"
$_v_nvme = "${_nvme_disks.size}x${facts['disks'][$_nvme_disks[0]]['size']} SSD NVME"
} else {
$_v_nvme = undef
$_v_nvme = undef
}
if $_classic_disks.size > 0 {
$_classic_disks_sizes = $_classic_disks.map |$_k, $_v| {
if empty($_classic_disks) {
$_v_sd = undef
} else {
$_classic_disks_sizes = $_classic_disks.map |$_k, $_v| {
$_v['size']
}
$_v_sd = join(unique($_classic_disks_sizes).map |$_k| {
}
$_v_sd = join(unique($_classic_disks_sizes).map |$_k| {
$_count = count($_classic_disks_sizes, $_k)
"${_count}x ${_k} 7.2"
}, ', ')
} else {
$_v_sd = undef
}, ', ')
}
if $_v_nvme != undef and $_v_sd != undef {
$_v = "${_v_nvme}, ${_v_sd}"
if $_v_nvme and $_v_sd {
$_v = "${_v_nvme}, ${_v_sd}"
} else {
$_v = "${_v_nvme}${_v_sd}"
$_v = "${_v_nvme}${_v_sd}"
}
$_value = { 'cs' => $_v, 'en' => $_v }
......@@ -94,18 +89,30 @@ define perunapi::pbsmon (
default: { $_value = undef }
}
unless $value {
unless $_value {
# nothing to do, end here
return()
}
$_attribute = perunapi::call($api_host, $api_user, $api_passwd, 'attributesManager', 'getAttribute',
{ 'facility' => $_facility_id, 'attributeName' => $_attr }, $context)
$_query = perunapi::call(
$api_host, $api_user, $api_passwd, 'facilitiesManager', 'getFacilityByName',
{ 'name' => $title }, $context
)
unless $_query['id'] {
fail("Unknown facility ${title}")
}
$_attribute = perunapi::call(
$api_host, $api_user, $api_passwd, 'attributesManager', 'getAttribute',
{ 'facility' => $_query['id'], 'attributeName' => $_attr }, $context
)
if $_attribute['id'] and $_attribute['value'] != $_value {
$_res = perunapi::call($api_host, $api_user, $api_passwd, 'attributesManager', 'setAttribute',
{ 'facility' => $_facility_id, 'attribute' => merge($_attribute, { 'value' => $_value }) },
$context)
$_res = perunapi::call(
$api_host, $api_user, $api_passwd, 'attributesManager', 'setAttribute',
{ 'facility' => $_query['id'], 'attribute' => merge($_attribute, { 'value' => $_value }) }, $context
)
if $_res['errorId'] and $_res['message'] {
fail("Cannot set attribute: ${_attr}. Reason: ${_res}")
......
......@@ -17,8 +17,10 @@ define perunapi::resource (
####
$_query_fa = perunapi::call($api_host, $api_user, $api_passwd, 'facilitiesManager', 'getFacilityByName',
{ 'name' => $facility }, $context)
$_query_fa = perunapi::call(
$api_host, $api_user, $api_passwd, 'facilitiesManager', 'getFacilityByName',
{ 'name' => $facility }, $context
)
unless $_query_fa['id'] {
fail("No facility named ${facility}")
......@@ -27,24 +29,33 @@ define perunapi::resource (
####
$_query_vo = perunapi::call($api_host, $api_user, $api_passwd, 'vosManager', 'getVoByShortName',
{ 'shortName' => $resource['vo'] }, $context)
$_query_vo = perunapi::call(
$api_host, $api_user, $api_passwd, 'vosManager', 'getVoByShortName',
{ 'shortName' => $resource['vo'] }, $context
)
unless $_query_vo['id'] {
fail("No VO named ${resource['vo']}")
}
$_vo_id = $_query_vo['id']
$_query_res = perunapi::call($api_host, $api_user, $api_passwd, 'resourcesManager', 'getResourceByName',
{ 'vo' => $_vo_id, 'facility' => $_facility_id, 'name' => $resource['name'] },
$context)
$_query_res = perunapi::call(
$api_host, $api_user, $api_passwd, 'resourcesManager', 'getResourceByName',
{ 'vo' => $_vo_id, 'facility' => $_facility_id, 'name' => $resource['name'] }, $context
)
if $_query_res['id'] {
$_resource_id = $_query_res['id']
} else {
$_create_res = perunapi::call($api_host, $api_user, $api_passwd, 'resourcesManager', 'createResource',
{ 'resource' => { 'name' => $resource['name'], 'description' => $resource['description'] },
'vo' => $_vo_id, 'facility' => $_facility_id }, $context)
$_create_res = perunapi::call(
$api_host, $api_user, $api_passwd, 'resourcesManager', 'createResource',
{
'resource' => { 'name' => $resource['name'], 'description' => $resource['description'] },
'vo' => $_vo_id,
'facility' => $_facility_id
},
$context
)
$_resource_id = $_create_res['id']
notify { "createResource${resource['name']}${resource['vo']}":
......@@ -55,12 +66,16 @@ define perunapi::resource (
####
if $resource['tags'] {
$_query_tags = perunapi::call($api_host, $api_user, $api_passwd, 'resourcesManager', 'getAllResourcesTagsForResource',
{ 'resource' => $_resource_id }, $context)
$_query_tags = perunapi::call(
$api_host, $api_user, $api_passwd, 'resourcesManager', 'getAllResourcesTagsForResource',
{ 'resource' => $_resource_id }, $context
)
$_tags_name = $_query_tags.map |$_tag_obj| { $_tag_obj['tagName'] }
$_query_all_tags = perunapi::call($api_host, $api_user, $api_passwd, 'resourcesManager', 'getAllResourcesTagsForVo',
{'vo' => $_vo_id }, $context)
$_query_all_tags = perunapi::call(
$api_host, $api_user, $api_passwd, 'resourcesManager', 'getAllResourcesTagsForVo',
{'vo' => $_vo_id }, $context
)
$resource['tags'].each |$_tag| {
unless $_tag in $_tags_name {
......@@ -69,8 +84,10 @@ define perunapi::resource (
fail("Unknown tag ${_tag}")
}
perunapi::call($api_host, $api_user, $api_passwd, 'resourcesManager', 'assignResourceTagToResource',
{ 'resourceTag' => $_tag_obj[0], 'resource' => $_resource_id }, $context)
perunapi::call(
$api_host, $api_user, $api_passwd, 'resourcesManager', 'assignResourceTagToResource',
{ 'resourceTag' => $_tag_obj[0], 'resource' => $_resource_id }, $context
)
notify { "setTagForResource${_resource_id}${_tag}":
message => "Assigned resource tag ${_tag} to resource ${resource['name']}",
......@@ -87,7 +104,7 @@ define perunapi::resource (
$_pending_a = perunapi::callback($api_host, $api_user, $api_passwd, 'setAttribute', $context)
if $_pending_a['endTime'] == -1 {
notify { "setAttributeTimeout${_resource_id}":
message => "Pending set attribute request. Giving up.",
message => 'Pending set attribute request. Giving up.',
}
return()
......@@ -95,9 +112,11 @@ define perunapi::resource (
$_filtered_data = $_tmp_attributes.filter |$key, $value| { $key =~ /:resource:/ }
$_tmp_array = $_filtered_data.reduce([]) |Array $memo, Array $_item| {
$_attribute = perunapi::call($api_host, $api_user, $api_passwd, 'attributesManager', 'getAttribute',
{ 'resource' => $_resource_id, 'attributeName' => $_item[0] }, $context)
$_final_array = $_filtered_data.reduce([]) |Array $memo, Array $_item| {
$_attribute = perunapi::call(
$api_host, $api_user, $api_passwd, 'attributesManager', 'getAttribute',
{ 'resource' => $_resource_id, 'attributeName' => $_item[0] }, $context
)
if $_attribute['id'] {
$_newattr = $_item[1] ? {
......@@ -117,8 +136,10 @@ define perunapi::resource (
}
}
$_attributes_result = perunapi::call($api_host, $api_user, $api_passwd, 'attributesManager', 'setAttributes',
{ 'resource' => $_resource_id, 'attributes' => $_final_array }, $context)
$_attributes_result = perunapi::call(
$api_host, $api_user, $api_passwd, 'attributesManager', 'setAttributes',
{ 'resource' => $_resource_id, 'attributes' => $_final_array }, $context
)
if $_attributes_result['timeout'] {
return()
......@@ -135,7 +156,7 @@ define perunapi::resource (
$_pending_s = perunapi::callback($api_host, $api_user, $api_passwd, 'assignService', $context)
if $_pending_s['endTime'] == -1 {
notify { "assignServicesTimeout${_resource_id}":
message => "Pending assign service request. Giving up.",
message => 'Pending assign service request. Giving up.',
}
return()
......@@ -143,20 +164,27 @@ define perunapi::resource (
$services.each |$_service, $_service_value| {
if $resource['name'] in $_service_value['resources'] {
$_services_res = perunapi::call($api_host, $api_user, $api_passwd, 'resourcesManager', 'getAssignedServices',
{ 'resource' => $_resource_id }, $context)
$_services_res = perunapi::call(
$api_host, $api_user, $api_passwd, 'resourcesManager', 'getAssignedServices',
{ 'resource' => $_resource_id }, $context
)
$_services_list = $_services_res.map |$_s| { $_s['name'] }
unless $_service in $_services_list {
$_service_result = perunapi::call($api_host, $api_user, $api_passwd, 'servicesManager', 'getServiceByName',
{ 'name' => $_service }, $context)
$_service_result = perunapi::call(
$api_host, $api_user, $api_passwd, 'servicesManager', 'getServiceByName',
{ 'name' => $_service }, $context
)
if $_service_result['errorId'] and $_service_result['message'] {
fail("Cannot get service ${_service}")
}
$_assign_resp = perunapi::call($api_host, $api_user, $api_passwd, 'resourcesManager', 'assignService',
{ 'resource' => $_resource_id, 'service' => $_service_result['id'] }, $context)
$_assign_resp = perunapi::call(
$api_host, $api_user, $api_passwd, 'resourcesManager', 'assignService',
{ 'resource' => $_resource_id, 'service' => $_service_result['id'] }, $context
)
if $_assign_resp['timeout'] {
notify { "assignService${_service}${_resource_id}_timeout":
......@@ -178,30 +206,36 @@ define perunapi::resource (
if $resource['groupsfromresource'] {
$_pending_g = perunapi::callback($api_host, $api_user, $api_passwd, 'assignGroupsToResource', $context)
if $_pending_g['endTime'] == -1 {
notify { "assignGroupsTimeout_${resource['groupsfromresource']}":
message => "Pending assign groups request. Giving up.",
message => 'Pending assign groups request. Giving up.',
}
return()
}
$_query_src = perunapi::call($api_host, $api_user, $api_passwd, 'resourcesManager', 'getAssignedGroups',
{ 'resource' => $resource['groupsfromresource'] }, $context)
$_query_src = perunapi::call(
$api_host, $api_user, $api_passwd, 'resourcesManager', 'getAssignedGroups',
{ 'resource' => $resource['groupsfromresource'] }, $context
)
if $_query_src['errorId'] and $_query_src['message'] {
fail("Cannot query source resource ${resource['groupsfromresource']} for groups. ${_query_src}")
}
$_query_dst = perunapi::call($api_host, $api_user, $api_passwd, 'resourcesManager', 'getAssignedGroups',
{ 'resource' => $_resource_id }, $context)
$_query_dst = perunapi::call(
$api_host, $api_user, $api_passwd, 'resourcesManager', 'getAssignedGroups',
{ 'resource' => $_resource_id }, $context
)
$_add_groups = $_query_src - $_query_dst
unless empty($_add_groups) {
$_add_g_ids = $_add_groups.map |$_gr| { $_gr['id'] }
$_res_gr = perunapi::call($api_host, $api_user, $api_passwd, 'resourcesManager', 'assignGroupsToResource',
{ 'resource' => $_resource_id, 'groups' => $_add_g_ids }, $context)
$_res_gr = perunapi::call(
$api_host, $api_user, $api_passwd, 'resourcesManager', 'assignGroupsToResource',
{ 'resource' => $_resource_id, 'groups' => $_add_g_ids }, $context
)
if $_res_gr['timeout'] {
notify { "assignGroupsToResource_timeout_${_resource_id}":
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment