Projects
home:rottame:yggdra_agents
bender-tomte-simple
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 4
View file
bender-tomte-simple.spec
Changed
@@ -1,5 +1,5 @@ Name: bender-tomte-simple -Version: 0.2.0 +Version: 0.3.0 Release: 0 Summary: Bender Tomte Simple License: Apache-2.0 @@ -30,27 +30,37 @@ %install %make_install -install -D -m 0644 support/bender-tomte-simple.timer %{buildroot}%{_unitdir}/bender-tomte-simple.timer -install -D -m 0644 support/bender-tomte-simple.service %{buildroot}%{_unitdir}/bender-tomte-simple.service +install -D -m 0644 support/bender-dns.timer %{buildroot}%{_unitdir}/bender-dns.timer +install -D -m 0644 support/bender-dns.service %{buildroot}%{_unitdir}/bender-dns.service +install -D -m 0644 support/bender-law-filters.timer %{buildroot}%{_unitdir}/bender-law-filters.timer +install -D -m 0644 support/bender-law-filters.service %{buildroot}%{_unitdir}/bender-law-filters.service %pre -%service_add_pre bender-tomte-simple.timer -%service_add_pre bender-tomte-simple.service +%service_add_pre bender-dns.timer +%service_add_pre bender-dns.service +%service_add_pre bender-law-filters.timer +%service_add_pre bender-law-filters.service exit 0 %preun -%service_del_preun bender-tomte-simple.timer -%service_del_preun bender-tomte-simple.service +%service_del_preun bender-dns.timer +%service_del_preun bender-dns.service +%service_del_preun bender-law-filters.timer +%service_del_preun bender-law-filters.service exit 0 %post -%service_add_post bender-tomte-simple.timer -%service_add_post bender-tomte-simple.service +%service_add_post bender-dns.timer +%service_add_post bender-dns.service +%service_add_post bender-law-filters.timer +%service_add_post bender-law-filters.service exit 0 %postun -%service_del_postun bender-tomte-simple.timer -%service_del_postun bender-tomte-simple.service +%service_del_postun bender-dns.timer +%service_del_postun bender-dns.service +%service_del_postun bender-law-filters.timer +%service_del_postun bender-law-filters.service exit 0 %files @@ -65,6 +75,7 @@ %dir /usr/lib/bender-tomte-simple/lib/bender/models %dir /usr/lib/bender-tomte-simple/lib/bender/models/ygg %dir /usr/lib/bender-tomte-simple/lib/bender/models/ygg/dns +%dir /usr/lib/bender-tomte-simple/lib/bender/models/ygg/law_filter %dir /usr/lib/bender-tomte-simple/lib/bender/services %dir /usr/lib/bender-tomte-simple/lib/bender/templates %dir /usr/lib/bender-tomte-simple/lib/bender-tomte-simple @@ -73,27 +84,33 @@ %dir %{_sysconfdir}/tomte %config(noreplace) %{_sysconfdir}/tomte/bender.yml -%attr(0644, root, root) %{_sysconfdir}/tomte/bender_defaults.yml.sample +%config %attr(0644, root, root) %{_sysconfdir}/tomte/bender_defaults.yml.sample %config(noreplace) %ghost %{_sysconfdir}/tomte/bender_defaults.yml -%{_unitdir}/bender-tomte-simple.timer -%{_unitdir}/bender-tomte-simple.service +%{_unitdir}/bender-dns.timer +%{_unitdir}/bender-dns.service +%{_unitdir}/bender-law-filters.timer +%{_unitdir}/bender-law-filters.service %attr(0755, root, root) %{_sbindir}/bender %attr(0755, root, root) /usr/lib/bender-tomte-simple/bin/bender %attr(0644, root, root) /usr/lib/bender-tomte-simple/config/bender_defaults.yml + +%attr(0644, root, root) /usr/lib/bender-tomte-simple/lib/bender.rb +%attr(0644, root, root) /usr/lib/bender-tomte-simple/lib/bender-tomte-simple.rb %attr(0644, root, root) /usr/lib/bender-tomte-simple/lib/bender-tomte-simple/version.rb -%attr(0644, root, root) /usr/lib/bender-tomte-simple/lib/bender-tomte-simple/version.rb -%attr(0644, root, root) /usr/lib/bender-tomte-simple/lib/bender/models/ygg/dns/zones.rb -%attr(0644, root, root) /usr/lib/bender-tomte-simple/lib/bender/services/dns_zones.rb %attr(0644, root, root) /usr/lib/bender-tomte-simple/lib/bender/backend.rb %attr(0644, root, root) /usr/lib/bender-tomte-simple/lib/bender/plugin.rb %attr(0644, root, root) /usr/lib/bender-tomte-simple/lib/bender/resources.rb %attr(0644, root, root) /usr/lib/bender-tomte-simple/lib/bender/service_implementation.rb %attr(0644, root, root) /usr/lib/bender-tomte-simple/lib/tomte/agents/bender.rb -%attr(0644, root, root) /usr/lib/bender-tomte-simple/lib/bender-tomte-simple.rb -%attr(0644, root, root) /usr/lib/bender-tomte-simple/lib/bender.rb + +%attr(0644, root, root) /usr/lib/bender-tomte-simple/lib/bender/services/dns_zones.rb +%attr(0644, root, root) /usr/lib/bender-tomte-simple/lib/bender/models/ygg/dns/zones.rb + +%attr(0644, root, root) /usr/lib/bender-tomte-simple/lib/bender/services/law_filters.rb +%attr(0644, root, root) /usr/lib/bender-tomte-simple/lib/bender/models/ygg/law_filter/ordinance.rb %changelog
View file
bender-tomte-simple-0.2.0.tar.gz/Dockerfile -> bender-tomte-simple-0.3.0.tar.gz/Dockerfile
Changed
@@ -44,4 +44,5 @@ RUN mkdir -p /var/lib/hel-agent/ RUN mkdir -p /var/lib/named/yggdra-agent/ RUN mkdir -p /bender-tomte-simple +RUN mkdir -p /etc/unbound/ WORKDIR /bender-tomte-simple \ No newline at end of file
View file
bender-tomte-simple-0.2.0.tar.gz/Makefile -> bender-tomte-simple-0.3.0.tar.gz/Makefile
Changed
@@ -3,17 +3,26 @@ PREFIX ?= /usr DESTDIR ?= DOCKERFILE = Dockerfile -VERSION=0.2.0 +VERSION=0.3.0 docker-image: docker build -t bender-tomte-simple -f ${DOCKERFILE} . -devel: docker-image +devel-dns: docker-image docker run -ti --rm \ -v ${PWD}:/bender-tomte-simple \ --add-host=hel.local.me:192.168.193.198 \ bender-tomte-simple \ ./bin/bender -e production -D -l debug update dns +devel-lf: docker-image + mkdir -p tmp/etc_unbound + docker run -ti --rm \ + -v ${PWD}:/bender-tomte-simple \ + -v ${PWD}/tmp/etc_unbound:/etc/unbound \ + --add-host=hel.local.me:192.168.193.198 \ + bender-tomte-simple \ + ./bin/bender -e production -D -l debug update law_filters + shell: docker-image docker run -ti --rm \ -v ${PWD}:/bender-tomte-simple \ @@ -38,6 +47,7 @@ install -d -m 0755 $(DESTDIR)$(PREFIX)/lib/bender-tomte-simple/lib/bender/models install -d -m 0755 $(DESTDIR)$(PREFIX)/lib/bender-tomte-simple/lib/bender/models/ygg install -d -m 0755 $(DESTDIR)$(PREFIX)/lib/bender-tomte-simple/lib/bender/models/ygg/dns + install -d -m 0755 $(DESTDIR)$(PREFIX)/lib/bender-tomte-simple/lib/bender/models/ygg/law_filter install -d -m 0755 $(DESTDIR)$(PREFIX)/lib/bender-tomte-simple/lib/bender/services install -d -m 0755 $(DESTDIR)$(PREFIX)/lib/bender-tomte-simple/lib/bender/templates install -d -m 0755 $(DESTDIR)$(PREFIX)/lib/bender-tomte-simple/lib/bender-tomte-simple @@ -51,16 +61,19 @@ install -m 0755 tmp/bender.sh $(DESTDIR)$(PREFIX)/sbin/bender install -m 0755 bin/bender $(DESTDIR)$(PREFIX)/lib/bender-tomte-simple/bin/bender + install -m 0644 lib/bender.rb $(DESTDIR)$(PREFIX)/lib/bender-tomte-simple/lib/bender.rb + install -m 0644 lib/bender-tomte-simple.rb $(DESTDIR)$(PREFIX)/lib/bender-tomte-simple/lib/bender-tomte-simple.rb install -m 0644 lib/bender-tomte-simple/version.rb $(DESTDIR)$(PREFIX)/lib/bender-tomte-simple/lib/bender-tomte-simple/version.rb - install -m 0644 lib/bender/models/ygg/dns/zones.rb $(DESTDIR)$(PREFIX)/lib/bender-tomte-simple/lib/bender/models/ygg/dns/zones.rb - install -m 0644 lib/bender/services/dns_zones.rb $(DESTDIR)$(PREFIX)/lib/bender-tomte-simple/lib/bender/services/dns_zones.rb + install -m 0644 lib/tomte/agents/bender.rb $(DESTDIR)$(PREFIX)/lib/bender-tomte-simple/lib/tomte/agents/bender.rb install -m 0644 lib/bender/backend.rb $(DESTDIR)$(PREFIX)/lib/bender-tomte-simple/lib/bender/backend.rb install -m 0644 lib/bender/plugin.rb $(DESTDIR)$(PREFIX)/lib/bender-tomte-simple/lib/bender/plugin.rb install -m 0644 lib/bender/resources.rb $(DESTDIR)$(PREFIX)/lib/bender-tomte-simple/lib/bender/resources.rb install -m 0644 lib/bender/service_implementation.rb $(DESTDIR)$(PREFIX)/lib/bender-tomte-simple/lib/bender/service_implementation.rb - install -m 0644 lib/tomte/agents/bender.rb $(DESTDIR)$(PREFIX)/lib/bender-tomte-simple/lib/tomte/agents/bender.rb - install -m 0644 lib/bender-tomte-simple.rb $(DESTDIR)$(PREFIX)/lib/bender-tomte-simple/lib/bender-tomte-simple.rb - install -m 0644 lib/bender.rb $(DESTDIR)$(PREFIX)/lib/bender-tomte-simple/lib/bender.rb + + install -m 0644 lib/bender/services/dns_zones.rb $(DESTDIR)$(PREFIX)/lib/bender-tomte-simple/lib/bender/services/dns_zones.rb + install -m 0644 lib/bender/models/ygg/dns/zones.rb $(DESTDIR)$(PREFIX)/lib/bender-tomte-simple/lib/bender/models/ygg/dns/zones.rb + install -m 0644 lib/bender/services/law_filters.rb $(DESTDIR)$(PREFIX)/lib/bender-tomte-simple/lib/bender/services/law_filters.rb + install -m 0644 lib/bender/models/ygg/law_filter/ordinance.rb $(DESTDIR)$(PREFIX)/lib/bender-tomte-simple/lib/bender/models/ygg/law_filter/ordinance.rb define _copy_files for file in $(git ls-files); do
View file
bender-tomte-simple-0.2.0.tar.gz/bender-tomte-simple.spec.in -> bender-tomte-simple-0.3.0.tar.gz/bender-tomte-simple.spec.in
Changed
@@ -30,27 +30,37 @@ %install %make_install -install -D -m 0644 support/bender-tomte-simple.timer %{buildroot}%{_unitdir}/bender-tomte-simple.timer -install -D -m 0644 support/bender-tomte-simple.service %{buildroot}%{_unitdir}/bender-tomte-simple.service +install -D -m 0644 support/bender-dns.timer %{buildroot}%{_unitdir}/bender-dns.timer +install -D -m 0644 support/bender-dns.service %{buildroot}%{_unitdir}/bender-dns.service +install -D -m 0644 support/bender-law-filters.timer %{buildroot}%{_unitdir}/bender-law-filters.timer +install -D -m 0644 support/bender-law-filters.service %{buildroot}%{_unitdir}/bender-law-filters.service %pre -%service_add_pre bender-tomte-simple.timer -%service_add_pre bender-tomte-simple.service +%service_add_pre bender-dns.timer +%service_add_pre bender-dns.service +%service_add_pre bender-law-filters.timer +%service_add_pre bender-law-filters.service exit 0 %preun -%service_del_preun bender-tomte-simple.timer -%service_del_preun bender-tomte-simple.service +%service_del_preun bender-dns.timer +%service_del_preun bender-dns.service +%service_del_preun bender-law-filters.timer +%service_del_preun bender-law-filters.service exit 0 %post -%service_add_post bender-tomte-simple.timer -%service_add_post bender-tomte-simple.service +%service_add_post bender-dns.timer +%service_add_post bender-dns.service +%service_add_post bender-law-filters.timer +%service_add_post bender-law-filters.service exit 0 %postun -%service_del_postun bender-tomte-simple.timer -%service_del_postun bender-tomte-simple.service +%service_del_postun bender-dns.timer +%service_del_postun bender-dns.service +%service_del_postun bender-law-filters.timer +%service_del_postun bender-law-filters.service exit 0 %files @@ -65,6 +75,7 @@ %dir /usr/lib/bender-tomte-simple/lib/bender/models %dir /usr/lib/bender-tomte-simple/lib/bender/models/ygg %dir /usr/lib/bender-tomte-simple/lib/bender/models/ygg/dns +%dir /usr/lib/bender-tomte-simple/lib/bender/models/ygg/law_filter %dir /usr/lib/bender-tomte-simple/lib/bender/services %dir /usr/lib/bender-tomte-simple/lib/bender/templates %dir /usr/lib/bender-tomte-simple/lib/bender-tomte-simple @@ -73,27 +84,33 @@ %dir %{_sysconfdir}/tomte %config(noreplace) %{_sysconfdir}/tomte/bender.yml -%attr(0644, root, root) %{_sysconfdir}/tomte/bender_defaults.yml.sample +%config %attr(0644, root, root) %{_sysconfdir}/tomte/bender_defaults.yml.sample %config(noreplace) %ghost %{_sysconfdir}/tomte/bender_defaults.yml -%{_unitdir}/bender-tomte-simple.timer -%{_unitdir}/bender-tomte-simple.service +%{_unitdir}/bender-dns.timer +%{_unitdir}/bender-dns.service +%{_unitdir}/bender-law-filters.timer +%{_unitdir}/bender-law-filters.service %attr(0755, root, root) %{_sbindir}/bender %attr(0755, root, root) /usr/lib/bender-tomte-simple/bin/bender %attr(0644, root, root) /usr/lib/bender-tomte-simple/config/bender_defaults.yml + +%attr(0644, root, root) /usr/lib/bender-tomte-simple/lib/bender.rb +%attr(0644, root, root) /usr/lib/bender-tomte-simple/lib/bender-tomte-simple.rb %attr(0644, root, root) /usr/lib/bender-tomte-simple/lib/bender-tomte-simple/version.rb -%attr(0644, root, root) /usr/lib/bender-tomte-simple/lib/bender-tomte-simple/version.rb -%attr(0644, root, root) /usr/lib/bender-tomte-simple/lib/bender/models/ygg/dns/zones.rb -%attr(0644, root, root) /usr/lib/bender-tomte-simple/lib/bender/services/dns_zones.rb %attr(0644, root, root) /usr/lib/bender-tomte-simple/lib/bender/backend.rb %attr(0644, root, root) /usr/lib/bender-tomte-simple/lib/bender/plugin.rb %attr(0644, root, root) /usr/lib/bender-tomte-simple/lib/bender/resources.rb %attr(0644, root, root) /usr/lib/bender-tomte-simple/lib/bender/service_implementation.rb %attr(0644, root, root) /usr/lib/bender-tomte-simple/lib/tomte/agents/bender.rb -%attr(0644, root, root) /usr/lib/bender-tomte-simple/lib/bender-tomte-simple.rb -%attr(0644, root, root) /usr/lib/bender-tomte-simple/lib/bender.rb + +%attr(0644, root, root) /usr/lib/bender-tomte-simple/lib/bender/services/dns_zones.rb +%attr(0644, root, root) /usr/lib/bender-tomte-simple/lib/bender/models/ygg/dns/zones.rb + +%attr(0644, root, root) /usr/lib/bender-tomte-simple/lib/bender/services/law_filters.rb +%attr(0644, root, root) /usr/lib/bender-tomte-simple/lib/bender/models/ygg/law_filter/ordinance.rb %changelog
View file
bender-tomte-simple-0.2.0.tar.gz/config/bender.yml.sample -> bender-tomte-simple-0.3.0.tar.gz/config/bender.yml.sample
Changed
@@ -4,7 +4,10 @@ dns: service: dns_zones platform: bind - local_node_name: NODENAME + local_node_name: NODENAME + law_filters: + service: law_filters + platform: unbound production: bender:
View file
bender-tomte-simple-0.2.0.tar.gz/config/bender_defaults.yml -> bender-tomte-simple-0.3.0.tar.gz/config/bender_defaults.yml
Changed
@@ -7,10 +7,11 @@ local_store: '/tmp/bender-store' # templates_path: nil + access: + users_file: '/tmp/users' - # placeholder - email_relay: - foo: bar + law_filters: + filter_file: '/etc/unbound/auto-filters.conf' dns_zones: zones_root: '/var/lib/named'
View file
bender-tomte-simple-0.2.0.tar.gz/lib/bender-tomte-simple/version.rb -> bender-tomte-simple-0.3.0.tar.gz/lib/bender-tomte-simple/version.rb
Changed
@@ -1,7 +1,7 @@ module Bender module Tomte module Simple - VERSION = "0.2.0" + VERSION = "0.3.0" end end end
View file
bender-tomte-simple-0.2.0.tar.gz/lib/bender/backend.rb -> bender-tomte-simple-0.3.0.tar.gz/lib/bender/backend.rb
Changed
@@ -51,9 +51,12 @@ end end + def do_shutdown + @store.close + end def shutdown! - @store.close + do_shutdown @agent.shutdown! end
View file
bender-tomte-simple-0.3.0.tar.gz/lib/bender/models/ygg/law_filter
Added
+(directory)
View file
bender-tomte-simple-0.3.0.tar.gz/lib/bender/models/ygg/law_filter/ordinance.rb
Added
@@ -0,0 +1,15 @@ +module Ygg + module LawFilter + class Ordinance < ActiveResource::Hel::Resource + + + def self.to_provision + view(:provisioning).all + end + + def self.redirect_ip + @redirect_ip ||= get(:redirect_ip).fetch('ip', '127.0.0.1') + end + end + end +end
View file
bender-tomte-simple-0.2.0.tar.gz/lib/bender/resources.rb -> bender-tomte-simple-0.3.0.tar.gz/lib/bender/resources.rb
Changed
@@ -8,7 +8,9 @@ raise ArgumentError, "URL is mandatory." unless url raise ArgumentError, "Authentication credentials are mandatory." unless options[:identity] && options[:secret] - + + ActiveResource::Hel::Resource.read_timeout = options.fetch(:timeout, 60) + ActiveResource::Hel::Resource.configurations = { hel: { site: url,
View file
bender-tomte-simple-0.3.0.tar.gz/lib/bender/services/law_filters.rb
Added
@@ -0,0 +1,69 @@ +module Bender + module Services + class LawFilters < Bender::ServiceImplementation + + def provision + log.info "- provisioning for law filters" + + end + + def update(host = nil) + buffer = "server:\n" + list = get_all_ordinances + list.each do |o| + mode_address = + case o.mode.to_sym + when :not_existing + when :loopback + "IN A 127.0.0.1" + when :redirect + "IN A #{redirect_ip}" + else + "IN A 127.0.0.1" + end + + o.domains.each do |d| + buffer += %Q[\tlocal-data: "#{d.name} #{mode_address}"\n] + end + end + output_configuration buffer + end + + def maintenance(host = nil) + log.info "- doing maintenance law filters" + end + + private + + def redirect_ip + Ygg::LawFilter::Ordinance.redirect_ip + end + + def get_all_ordinances + Ygg::LawFilter::Ordinance.to_provision + end + + def output_configuration(buffer) + write_file svc_config[:filter_file], buffer + end + + def write_file(file, data) + fileout = [file, 'new'].join('.') + + log.info "Writing new configuration to: #{fileout}" + File.open(fileout, "w+") do |f| + f.write(data) + end + + if dry_run? + log.info "DRYRUN: should move '#{fileout}' to: '#{file}'." + else + FileUtils.cp(fileout, file) + FileUtils.rm(fileout) + end + end + + + end + end +end
View file
bender-tomte-simple-0.2.0.tar.gz/lib/tomte/agents/bender.rb -> bender-tomte-simple-0.3.0.tar.gz/lib/tomte/agents/bender.rb
Changed
@@ -11,6 +11,7 @@ class Bender < Tomte::Agent::Sync DEFAULT_BENDER_OPTIONS = { + :api_timeout => 240, :api_url => 'https://hel.intercom.it', :api_identity => 'provisioning-agent@intercom.it', :base_config => { :local_store => '/tmp/bender-store' } @@ -51,12 +52,16 @@ options[:bender][:force] = force end + opts.on("--api-timeout TIMEOUT", "Timeout for HTTP requests.") do |timeout| + options[:bender][:api_timeout] = timeout + end end def init(options = {}) ::Bender::Resources.setup(config.bender[:api_url], :identity => config.bender[:api_identity], - :secret => config.bender[:api_secret]) + :secret => config.bender[:api_secret], + :timeout => config.bender[:api_timeout]) @backend = ::Bender::Backend.new(self, config.bender) end @@ -67,6 +72,10 @@ shutdown! end + def terminate + @backend.do_shutdown if @backend + end + def services ap config.bender[:services] end
View file
bender-tomte-simple-0.3.0.tar.gz/support/bender-dns.service
Changed
(renamed from support/bender-tomte-simple.service)
View file
bender-tomte-simple-0.3.0.tar.gz/support/bender-dns.timer
Changed
(renamed from support/bender-tomte-simple.timer)
View file
bender-tomte-simple-0.3.0.tar.gz/support/bender-law-filters.service
Added
@@ -0,0 +1,8 @@ +[Unit] +Description=Bender dns law filters setup & maintenance + +[Service] +Type=oneshot +ExecStart=/usr/sbin/bender -e production update law_filters +ExecStartPost=systemctl reload unbound +Environment=HOME=/root
View file
bender-tomte-simple-0.3.0.tar.gz/support/bender-law-filters.timer
Added
@@ -0,0 +1,9 @@ +[Unit] +Description=Update law filters with bender every 6 hours + +[Timer] +OnBootSec=5min +OnUnitActiveSec=6hours + +[Install] +WantedBy=timers.target
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.