Skip to content
Snippets Groups Projects
Commit 88e96ba4 authored by Robert Latta's avatar Robert Latta
Browse files

edded otrs data function

parent 84b72c34
No related branches found
No related tags found
No related merge requests found
......@@ -106,3 +106,126 @@ def lookup_pop_info(ds, hostname):
}
}
return eq
def otrs_get_customer_company_rows(ds):
yield ['customer_id', 'name', 'street', 'zip', 'city', 'country', 'url',
'comments']
all_cus_comps = set()
for customer in ds.get_all_entities('Customer'):
all_cus_comps.add(customer['Name'])
yield [customer['Name'].replace(' ', ''), customer['Name'],
'', '', '', '', '', '']
for vendor in ds.get_all_entities('Vendor'):
if vendor['Name'] not in all_cus_comps:
all_cus_comps.add(vendor['Name'])
yield [vendor['Name'].replace(' ', ''), vendor['Name'],
'', '', '', '', '', '']
# TODO - check the rules for validation once model has been confirmed
def _is_valid_customer(cus):
if not cus['email']:
return False
return True
def otrs_get_customer_contacts(ds):
def _get_customer_id2(t):
if t['Id'] == 3 or t['Name'] == 'EU NREN':
return 'OTRS-GEANT-NREN'
return ''
for customer in ds.get_all_entities(
'Customer',
[
ims.CUSTOMER_PROPERTIES['CustomerRelatedContacts'],
ims.CUSTOMER_PROPERTIES['CustomerType']
]):
if customer['CustomerRelatedContacts']:
for contact in customer['CustomerRelatedContacts']:
t_customer_user = OrderedDict({
'email': contact['Contact']['Mail'],
'username': contact['Contact']['Mail'], # TODO if tal_id is going to be present use that # noqa
'customer_id': customer['Name'].replace(' ', ''),
'customer_id_2':
_get_customer_id2(customer['CustomerType']),
'title': '',
'firstname': contact['Contact']['Name'],
'lastname':
' '.join(filter(None, [
contact['Contact']['InFix'],
contact['Contact']['LastName']
])),
'phone': '',
'fax': '',
'mobile': '',
'street': '',
'zip': '',
'city': '',
'country': '',
'comments': '',
})
if not _is_valid_customer(t_customer_user):
continue
if contact['Contact']['IsGroup']:
t_customer_user['comments'] = \
'Organisation imported as a user'
yield t_customer_user
def otrs_get_vendor_contacts(ds):
for vrc in ds.get_all_entities(
'VendorRelatedContact',
[
ims.VENDOR_RELATED_CONTACT_PROPERTIES['Vendor'],
ims.VENDOR_RELATED_CONTACT_PROPERTIES['Contact']
]):
t_customer_user = OrderedDict({
'email': vrc['Contact']['Mail'],
'username': vrc['Contact']['Mail'], # TODO if tal_id is going to be present use that # noqa
'customer_id': vrc['Vendor']['Name'].replace(' ', ''),
'customer_id_2': '',
'title': '',
'firstname': vrc['Contact']['Name'],
'lastname':
' '.join(filter(None, [
vrc['Contact']['InFix'],
vrc['Contact']['LastName']
])),
'phone': '',
'fax': '',
'mobile': '',
'street': '',
'zip': '',
'city': '',
'country': '',
'comments': '',
})
if not _is_valid_customer(t_customer_user):
continue
if vrc['Contact']['IsGroup']:
t_customer_user['comments'] = \
'Organisation imported as a user'
yield t_customer_user
def otrs_get_customer_users_rows(ds):
yield ['email', 'username', 'customer_id', 'customer_id_2', 'title',
'firstname', 'lastname', 'phone', 'fax', 'mobile', 'street', 'zip',
'city', 'country', 'comments']
def get_all_cus_user_rows():
yield from otrs_get_customer_contacts(ds)
yield from otrs_get_vendor_contacts(ds)
sorted_cus = sorted(get_all_cus_user_rows(), key=lambda x: x['email'])
# this will be used to prioritisation
for cu in sorted_cus:
yield list(cu.values())
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment