diff options
Diffstat (limited to 'meta-phosphor/classes/obmc-phosphor-discovery-service.bbclass')
-rw-r--r-- | meta-phosphor/classes/obmc-phosphor-discovery-service.bbclass | 51 |
1 files changed, 41 insertions, 10 deletions
diff --git a/meta-phosphor/classes/obmc-phosphor-discovery-service.bbclass b/meta-phosphor/classes/obmc-phosphor-discovery-service.bbclass index 8dc6fdc04..9b66e7ea9 100644 --- a/meta-phosphor/classes/obmc-phosphor-discovery-service.bbclass +++ b/meta-phosphor/classes/obmc-phosphor-discovery-service.bbclass @@ -4,17 +4,25 @@ DISCOVERY_SVC_PACKAGES ?= "${PN}" python() { avahi_enabled = bb.utils.contains( 'DISTRO_FEATURES', 'avahi', 'true', 'false', d) - slp_enabled = False # later + slp_enabled = bb.utils.contains( + 'DISTRO_FEATURES', 'slp', 'true', 'false', d) + if not avahi_enabled and slp_enabled: return syscnfdir = d.getVar('sysconfdir', True) dest_dir = d.getVar('D', True) + set_append(d, 'AVAHI_SERVICES_DIR', os.path.join( dest_dir+syscnfdir, 'avahi', 'services')) + set_append(d, 'SLP_SERVICES_DIR', os.path.join( + dest_dir+syscnfdir, + 'slp', + 'services')) + for pkg in listvar_to_list(d, 'DISCOVERY_SVC_PACKAGES'): for service in listvar_to_list(d, 'REGISTERED_SERVICES_%s' % pkg): @@ -26,24 +34,39 @@ python() { 'avahi', 'services', '%s.service' % svc_name)) + + if slp_enabled: + set_append(d, 'RRECOMMENDS_%s' % pkg, 'slpd-lite') + svc_name, svc_type, svc_port = service.split(':') + set_append(d, 'FILES_%s' % pkg, os.path.join( + syscnfdir, + 'slp', + 'services', + '%s.service' % svc_name)) + } python discovery_services_postinstall() { avahi_enabled = bb.utils.contains( 'DISTRO_FEATURES', 'avahi', 'true', 'false', d) - slp_enabled = False # later + slp_enabled = bb.utils.contains( + 'DISTRO_FEATURES', 'slp', 'true', 'false', d) if not avahi_enabled and slp_enabled: return - service_dir = d.getVar('AVAHI_SERVICES_DIR', True) + avahi_service_dir = d.getVar('AVAHI_SERVICES_DIR', True) + slp_service_dir = d.getVar('SLP_SERVICES_DIR', True) + + if not os.path.exists(avahi_service_dir): + os.makedirs(avahi_service_dir) - if not os.path.exists(service_dir): - os.makedirs(service_dir) + if not os.path.exists(slp_service_dir): + os.makedirs(slp_service_dir) def register_service_avahi(d, service_name, service_type, service_port): service_file = os.path.join( - service_dir, + avahi_service_dir, '%s.service' % service_name) with open(service_file, 'w') as fd: fd.write('<?xml version="1.0" ?>\n') @@ -56,21 +79,29 @@ python discovery_services_postinstall() { fd.write(' </service>\n') fd.write('</service-group>\n') + + def register_service_slp(d, service_name, service_type, service_port): + service_file = os.path.join( + slp_service_dir, + '%s.service' % service_name) + with open(service_file, 'w') as fd: + fd.write('%s %s %s' % (service_name, service_type, service_port)) + def register_services(d,pkg): for service in listvar_to_list(d, 'REGISTERED_SERVICES_%s' % pkg): svc_info = service.split(":") try: svc_name, svc_type, svc_port = svc_info - svc_type = "_" + svc_name + "._" + svc_type except: continue if avahi_enabled: - register_service_avahi(d, svc_name, svc_type, svc_port) + avahi_svc_type = "_" + svc_name + "._" + svc_type + register_service_avahi(d, svc_name, avahi_svc_type, svc_port) + if slp_enabled: + register_service_slp(d, svc_name, svc_type, svc_port) for pkg in listvar_to_list(d, 'DISCOVERY_SVC_PACKAGES'): register_services(d, pkg) } do_install[postfuncs] += "discovery_services_postinstall" - - |