EUDAT-DPMT / eudat.accounting.client

Python-based command line client to interact with an accounting server
BSD 2-Clause "Simplified" License
0 stars 3 forks source link

multiple users/accounts? #1

Open cookie33 opened 7 years ago

cookie33 commented 7 years ago

Hi,

We store data of multiple institutes in one iRODS configuration for eudat.

Is it possible to generate several uploads of data to eudat for different insititutes and differentiate:

cookie33 commented 7 years ago

The ini file is usable for only one institute

rods$ cat irodscollector.ini 
#
# template of a configuration file for EUDAT's irodscollector
#

# section containing the logging options
[Logging]
log_file=eudatacct.log

# section containing the properties to access the accounting server
# to get statistical data and report them
[Report]
# base URL of the accounting server to be used
base_url=https://accounting.eudat.eu
# domain: either eudat or test or demo
domain=eudat
# uid of the corresponding registered storage resource on DPMT 
# (same as storage_space_uuid on RCT)
account=<insert uid here>
# username of the provider on the accouniting server
# owning the account specified above
# contact dp-admin@mpcdf.mpg.de if you need one
user=<username of provider>
# if you have an access token from RCT already reuse that here
password=<password or access token>
service_uuid=<unsuported at the moment>

# section contains the list of collections to be accounted together, replace
# the examples with your collections, the script sums the values of all
# collections and sends it to EUDAT's accounting service.
[Collections]
clist=
  /zone/some/path
  /zone/other/path

We service different federations and institutes. Do I need to create different ini files for each? And start an separate collector for each federation/institute?

We have for instance:

$ ils /vzx/eudat
/vzx/eudat:
  C- /vzx/eudat/A
  C- /vxx/eudat/B
...
  C- /vzx/eudat/F

Each is a different institute within EUDAT and is registered differently within EUDAT.

I only want to run the collector once and let him do the work. And not have 5 ini files and start the collector five times.

cookie33 commented 7 years ago

If the config is as follows it suits us more:

#
# template of a configuration file for EUDAT's irodscollector
#

# section containing the logging options
[Logging]
log_file=eudatacct.log

# section containing the properties to access the accounting server
# to get statistical data and report them
[Report]
# base URL of the accounting server to be used
base_url=https://accounting.eudat.eu
# domain: either eudat or test or demo
domain=eudat

# institutes which this iRODS instance handles
institutes=inst_a,inst_b

[inst_a]
# uid of the corresponding registered storage resource on DPMT 
# (same as storage_space_uuid on RCT)
account=<insert uid here>
# username of the provider on the accouniting server
# owning the account specified above
# contact dp-admin@mpcdf.mpg.de if you need one
user=<username of provider>
# if you have an access token from RCT already reuse that here
password=<password or access token>
service_uuid=<unsuported at the moment>

# section contains the list of collections to be accounted together, replace
# the examples with your collections, the script sums the values of all
# collections and sends it to EUDAT's accounting service.
clist=
  /vzx/eudat/A
 /vzx/other/pathA

[inst_b]
# uid of the corresponding registered storage resource on DPMT 
# (same as storage_space_uuid on RCT)
account=<insert uid here>
# username of the provider on the accouniting server
# owning the account specified above
# contact dp-admin@mpcdf.mpg.de if you need one
user=<username of provider>
# if you have an access token from RCT already reuse that here
password=<password or access token>
service_uuid=<unsuported at the moment>

# section contains the list of collections to be accounted together, replace
# the examples with your collections, the script sums the values of all
# collections and sends it to EUDAT's accounting service.
clist=
  /vzx/eudat/B
  /vzx/other/pathB

If the institutes parameter is NOT there it should behave as before. Otherwise it might have 2 configurations to check/loop about.

raphael-ritz commented 7 years ago

Hello again, thanks for this suggestion. In fact at MPCDF we have a similar situation. The way we are dealing with it is as you describe above (but don't like): We make as many copies of the config templates as we have resources to account on that server adapt them and then call the iRODScollector for each config file individually.

I understand that this is how it used to be before. I only ported the code from Claudio, Elena and Beatriz to work with the new accounting service.

But I like your suggestion. Should I have time one day I'll give it a spin (famous last words...)

Cheers,

Raphael

cookie33 commented 6 years ago

A colleague made fix and we tested it:

$ iRODScollector -c /opt/eudat/b2safe/conf/irodscollector_multi.ini 
iRODScollector called with: Namespace(comment='', configpath='/opt/eudat/b2safe/conf/irodscollector_multi.ini', key='', measure_time='', object_type='registered object', service='(default)', test=False, type='storage', unit='byte', verbose=False)
Configuration file: /opt/eudat/b2safe/conf/irodscollector_multi.ini 

***clarin
Collections to be accounted:
/vzSARA1/eudat/clarin
/vzSARA1/home/eudat#vzRZGE
/vzSARA1/home/rods#replixRZG
***knmi
Collections to be accounted:
/vzSARA1/eudat/knmi
/vzSARA1/home/rods#ORFEUS
/vzSARA1/home/orfeus#ORFEUS

It will put in a pull request.