Projects
home:rottame:yggdra_agents
mail_agent
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 7
View file
rubygem-mail_agent.spec
Added
@@ -0,0 +1,84 @@ +%define mod_name mail_agent +%define mod_full_name %{mod_name}-%{version} + +Name: rubygem-mail_agent +Version: 1.1.1 +Release: 0 +Summary: Mailserver Agent +License: Apache-2.0 +Group: Development/Languages/Ruby +URL: https://intercom.it +Source: %{mod_full_name}.gem +Source1: mail_agent.service +Source2: mail_agent.tempfiles +Source3: mail_agent.yml +Source4: tomte.yml +BuildRequires: %{ruby >= 1.9} +BuildRequires: %{rubygem gem2rpm} +BuildRequires: ruby-macros >= 5 + +%description +Mail agent DB provisioning agent + +%package -n mail_agent +Summary: Mailserver Agent +Group: System/Daemons +Requires: rubygem(%{mod_name}) = %{version} + +%description -n mail_agent +Mail agent DB provisioning agent + +%prep + +%build + +%install +%gem_install \ + --symlink-binaries \ + -f + +install -d %{buildroot}%{_sbindir} +install -d %{buildroot}%{_sysconfdir}/tomte +install -d %{buildroot}%{_localstatedir}/lib/tomte + +install -D -m 0644 %{SOURCE1} %{buildroot}%{_unitdir}/mail_agent.service +install -D -m 0644 %{SOURCE2} %{buildroot}%{_tmpfilesdir}/mail_agent.conf +ln -s /usr/sbin/service %{buildroot}%{_sbindir}/rcmail_agent +install -D -m 0644 %{SOURCE3} %{buildroot}%{_sysconfdir}/tomte/mail_agent.yml +install -D -m 0644 %{SOURCE4} %{buildroot}%{_sysconfdir}/tomte/tomte.yml + +%gem_packages + +%files -n mail_agent +%dir %{_sysconfdir}/tomte +%attr(0700, tomte, tomte) %dir %{_localstatedir}/lib/tomte + +%config(noreplace) %{_sysconfdir}/tomte/mail_agent.yml +%config(noreplace) %{_sysconfdir}/tomte/tomte.yml + +%{_unitdir}/mail_agent.service +%{_tmpfilesdir}/mail_agent.conf + +%{_sbindir}/rcmail_agent +%ghost /run/mail_agent + +%pre -n mail_agent +%{_bindir}/getent group tomte >/dev/null || %{_sbindir}/groupadd -r tomte +%{_bindir}/getent passwd tomte >/dev/null || %{_sbindir}/useradd -r -d %{_localstatedir}/lib/tomte -s /bin/false -c "intercom mail policyd" -g tomte tomte +%service_add_pre mail_agent.service +exit 0 + +%preun -n mail_agent +%service_del_preun mail_agent.service +exit 0 + +%post -n mail_agent +%tmpfiles_create %_tmpfilesdir/mailserver_agent.conf +%service_add_post mail_agent.service +exit 0 + +%postun -n mail_agent +%service_del_postun mail_agent.service +exit 0 + +%changelog
View file
mail_agent-1.1.0.gem/checksums.yaml.gz -> mail_agent-1.1.1.gem/checksums.yaml.gz
Changed
@@ -1,7 +1,7 @@ --- SHA256: - metadata.gz: 3051e1b9ec28d442be83018fff8b08073f2dd90b1f3ba97e3ee689b6853c80e1 - data.tar.gz: 68c91eac5553ea0c77170d53eb97b747d17a4062e9f839fb1c3e912bcff418fc + metadata.gz: f5afb1e5ae3623cf44e99e4e4f4b408394a0fee3fd3bb5c419f5da3f28847c31 + data.tar.gz: f11b84e73355cdd6f21f3ccc9659eecfe47eabf4492a30c662c2fff5be53b68e SHA512: - metadata.gz: 0ea9379ca510ab191d234472e3c2f3907f6c7edff3da571c738a671dab877b6983630aac435fa073462235cb3c420fe2d5b986fcaa48cb2346c4afa4d07bf09e - data.tar.gz: 8c5157f24995d6d857efb7362ca6b422ea88b60f9fd5f1d93d34adb6160f9e421137544afa2496a2ff15a465bf37aa53ade34bfe251700e8f21d9b05f3aac79d + metadata.gz: be86339821b6439859322ecfe24d54b028b05f86a37fb38b7b27e4bc637c6d8317081c3ea1970f7775de4d1363acf160e7fe836582209f15e1a8aa5e097aecb2 + data.tar.gz: d7d834fac57e1ff709ad1d635f16592b2bb6edaf4230eb2fbb4fa74fc794065fc07d4abb2176a46a503043e9c5a403ff4b97771aae5a9d18b752b38f6509607a
View file
mail_agent-1.1.0.gem/data/.gitignore -> mail_agent-1.1.1.gem/data/.gitignore
Changed
@@ -38,4 +38,5 @@ tmp -*.gem \ No newline at end of file +*.gem +rpm_sources \ No newline at end of file
View file
mail_agent-1.1.0.gem/data/lib/mail_agent/models/policyd.rb -> mail_agent-1.1.1.gem/data/lib/mail_agent/models/policyd.rb
Changed
@@ -8,7 +8,7 @@ autoload :AuthenticatedIdentity, 'mail_agent/models/policyd/authenticated_identity' autoload :ClientAddress, 'mail_agent/models/policyd/client_address' - #autoload :NetworkAddress, 'mail_agent/models/policyd/network_address' + autoload :NetworkAddress, 'mail_agent/models/policyd/network_address' autoload :Policy, 'mail_agent/models/policyd/policy' autoload :Tracker, 'mail_agent/models/policyd/tracker' end
View file
mail_agent-1.1.0.gem/data/lib/mail_agent/models/policyd/authenticated_identity.rb -> mail_agent-1.1.1.gem/data/lib/mail_agent/models/policyd/authenticated_identity.rb
Changed
@@ -39,12 +39,17 @@ self.disabled = true self.disable_date = Time.now self.disable_reason = reason - save_changes + save! end - def reset_tracker! - tracker.reset! + transaction do + tracker&.reset! + self.disabled = false + self.disable_date = nil + self.disable_reason = nil + save! + end end end end
View file
mail_agent-1.1.0.gem/data/lib/mail_agent/models/policyd/client_address.rb -> mail_agent-1.1.1.gem/data/lib/mail_agent/models/policyd/client_address.rb
Changed
@@ -42,9 +42,14 @@ save_changes end - def reset_tracker! - tracker.reset! + transaction do + tracker&.reset! + self.disabled = false + self.disable_date = nil + self.disable_reason = nil + save! + end end end end
View file
mail_agent-1.1.1.gem/data/lib/mail_agent/models/policyd/network_address.rb
Added
@@ -0,0 +1,11 @@ + +module MailAgent + module Models + module Policyd + class NetworkAddress < Policyd::Base + scope :blacklisted, -> { where(flags: 'b') } + scope :whitelisted, -> { where(flags: 'w') } + end + end + end +end \ No newline at end of file
View file
mail_agent-1.1.0.gem/data/lib/mail_agent/version.rb -> mail_agent-1.1.1.gem/data/lib/mail_agent/version.rb
Changed
@@ -1,3 +1,3 @@ module MailAgent - VERSION = "1.1.0" + VERSION = "1.1.1" end \ No newline at end of file
View file
mail_agent-1.1.0.gem/data/lib/tomte/agents/mail_agent.rb -> mail_agent-1.1.1.gem/data/lib/tomte/agents/mail_agent.rb
Changed
@@ -24,7 +24,7 @@ base_configuration :mail, DEFAULT_MAIL_AGENT_OPTIONS has_worker :mail, :class => 'Tomte::Workers::MailWorkerPubsub', :file => 'tomte/workers/mail_worker_pubsub.rb' - + has_worker :mail_rpc, :class => 'Tomte::Workers::MailWorkerRPC', :file => 'tomte/workers/mail_worker_rpc.rb' private
View file
mail_agent-1.1.0.gem/data/lib/tomte/workers/mail_worker_pubsub.rb -> mail_agent-1.1.1.gem/data/lib/tomte/workers/mail_worker_pubsub.rb
Changed
@@ -12,7 +12,7 @@ consumer.prefetch 1 log.debug '+ Sync database' - @sync.sync + #@sync.sync @sync = nil end @@ -61,7 +61,7 @@ def init(options = {}) log.debug '+ Fetch service data' - @sync = ::MailAgent::BulkSync.new + #@sync = ::MailAgent::BulkSync.new end protected
View file
mail_agent-1.1.1.gem/data/lib/tomte/workers/mail_worker_rpc.rb
Added
@@ -0,0 +1,93 @@ +module Tomte::Workers + class MailWorkerRPC < Tomte::Worker + + class RPC < Tomte::Network::API::BasicServer + def quotas(options = {}) + identity = options.delete('identity') + address = options.delete('address') + raise ArgumentError, "Must specify an identity or an address" unless address.present? || identity.present? + object = if identity.present? + MailAgent::Models::Policyd::AuthenticatedIdentity.find_by(identity: identity) + elsif address.present? + MailAgent::Models::Policyd::ClientAddress.find_by(address: address) + end + tracker = object&.tracker + policy = object&.policy + + heuristics = tracker&.heuristics&.map do | k, v | + v.merge(address: k) + end + + { + policy: policy&.name || 'unknown', + disabled: !!object&.disabled, + disable_reason: object&.disable_reason, + disable_date: object&.disable_date, + count: { quota: policy&.count || 0, count: tracker&.count || 0 }, + recipients: { quota: policy&.recipients || 0, count: tracker&.recipients || 0 }, + volume: { quota: policy&.volume || 0, count: tracker&.volume || 0 }, + addresses: heuristics, + last_update: tracker&.last_update + } + end + + def reset_quotas!(options = {}) + identity = options.delete('identity') + address = options.delete('address') + raise ArgumentError, "Must specify an identity or an address" unless address.present? || identity.present? + + object = if identity.present? + MailAgent::Models::Policyd::AuthenticatedIdentity.find_by(identity: identity) + elsif address.present? + MailAgent::Models::Policyd::ClientAddress.find_by(address: address) + end + + object&.reset_tracker! + end + + def blacklisted_addresses(options = {}) + start = options:start || 0 + limit = options:limit || 0 + records = MailAgent::Models::Policyd::NetworkAddress.blacklisted + .reorder(id: :asc) + .limit(limit) + .offset(start) + + records.as_json + end + + def whitelisted_addresses(options = {}) + start = options:start || 0 + limit = options:limit || 0 + records = MailAgent::Models::Policyd::NetworkAddress.whitelisted + .reorder(id: :asc) + .limit(limit) + .offset(start) + + records.as_json + end + + def add_whitelist(address) + addr = MailAgent::Models::Policyd::NetworkAddress.find_or_initialize_by(address: address) + addr.flags = 'w' + addr.notes = "Whitelisted" + addr.inserted = Time.new + addr.save! + end + + def remove_network_address(address) + addr = MailAgent::Models::Policyd::NetworkAddress.find_by(address: address) + addr&.destroy! + nil + end + end + + bus :service + + api :api, :bus => :service, + :api => config.mail:rpc_exchange, + :class => RPC, + :queue_options => { :auto_delete => true } + + end +end \ No newline at end of file
View file
mail_agent-1.1.0.gem/data/support/mail_agent.service -> mail_agent-1.1.1.gem/data/support/mail_agent.service
Changed
@@ -6,7 +6,7 @@ User=tomte Group=tomte PIDFile=/run/mail_agent/mail_agent.pid -ExecStart=/usr/sbin/mail_agent --pidfile /run/mail_agent/mail_agent.pid -e production --no-daemonize +ExecStart=/usr/bin/mail_agent --pidfile /run/mail_agent/mail_agent.pid -e production --no-daemonize WorkingDirectory=/var/lib/tomte Restart=always
View file
mail_agent-1.1.0.gem/metadata.gz -> mail_agent-1.1.1.gem/metadata.gz
Changed
@@ -1,14 +1,14 @@ --- !ruby/object:Gem::Specification name: mail_agent version: !ruby/object:Gem::Version - version: 1.1.0 + version: 1.1.1 platform: ruby authors: - Angelo Grossini autorequire: bindir: bin cert_chain: -date: 2022-11-18 00:00:00.000000000 Z +date: 2022-12-01 00:00:00.000000000 Z dependencies: - !ruby/object:Gem::Dependency name: tomte-agents @@ -154,6 +154,7 @@ - lib/mail_agent/models/policyd.rb - lib/mail_agent/models/policyd/authenticated_identity.rb - lib/mail_agent/models/policyd/client_address.rb +- lib/mail_agent/models/policyd/network_address.rb - lib/mail_agent/models/policyd/policy.rb - lib/mail_agent/models/policyd/tracker.rb - lib/mail_agent/version.rb @@ -164,6 +165,7 @@ - lib/mail_agent/ygg/simple_service/email/relay_extension.rb - lib/tomte/agents/mail_agent.rb - lib/tomte/workers/mail_worker_pubsub.rb +- lib/tomte/workers/mail_worker_rpc.rb - mail_agent.gemspec - mail_agent.spec.in - schema.sql
View file
mail_agent.service
Added
@@ -0,0 +1,15 @@ +Unit +Description=hel mail database agent + +Service +Type=simple +User=tomte +Group=tomte +PIDFile=/run/mail_agent/mail_agent.pid +ExecStart=/usr/bin/mail_agent --pidfile /run/mail_agent/mail_agent.pid -e production --no-daemonize +WorkingDirectory=/var/lib/tomte +Restart=always + +Install +WantedBy=multi-user.target +
View file
mail_agent.tempfiles
Added
@@ -0,0 +1,1 @@ +d /run/mail_agent 0755 tomte tomte - - \ No newline at end of file
View file
mail_agent.yml
Added
@@ -0,0 +1,135 @@ +development: + core: + log_level: debug + debug: false + hel: + host: HEL_ADDRESS + username: HEL_USERNAME + password: HEL_PASSWORD + raven: + dsn: + database: + email: + adapter: mysql2 + encoding: utf8 + database: DATABASE + pool: 5 + host: DATABASE_ADDRESS + username: DATABASE_USERNAME + password: DATABASE_PASSWORD + #reconnect: false + #socket: /tmp/mysql.sock + rate_limit: + adapter: mysql2 + encoding: utf8 + database: DATABASE + pool: 5 + host: DATABASE_ADDRESS + username: DATABASE_USERNAME + password: DATABASE_PASSWORD + #reconnect: false + #socket: /tmp/mysql.sock + policyd: + adapter: mysql2 + encoding: utf8 + database: DATABASE + pool: 5 + host: DATABASE_ADDRESS + username: DATABASE_USERNAME + password: DATABASE_PASSWORD + #reconnect: false + #socket: /tmp/mysql.sock + amavis: + adapter: mysql2 + encoding: utf8 + database: DATABASE + pool: 5 + host: DATABASE_ADDRESS + username: DATABASE_USERNAME + password: DATABASE_PASSWORD + #reconnect: false + #socket: /tmp/mysql.sock + +production: + core: + log_level: info + debug: false + hel: + host: HEL_ADDRESS + username: HEL_USERNAME + password: HEL_PASSWORD + raven: + dsn: + database: + email: + adapter: mysql2 + encoding: utf8 + database: DATABASE + pool: 5 + host: DATABASE_ADDRESS + username: DATABASE_USERNAME + password: DATABASE_PASSWORD + #reconnect: false + #socket: /tmp/mysql.sock + rate_limit: + adapter: mysql2 + encoding: utf8 + database: DATABASE + pool: 5 + host: DATABASE_ADDRESS + username: DATABASE_USERNAME + password: DATABASE_PASSWORD + #reconnect: false + #socket: /tmp/mysql.sock + cluebringer: + adapter: mysql2 + encoding: utf8 + database: DATABASE + pool: 5 + host: DATABASE_ADDRESS + username: DATABASE_USERNAME + password: DATABASE_PASSWORD + #reconnect: false + #socket: /tmp/mysql.sock + amavis: + adapter: mysql2 + encoding: utf8 + database: DATABASE + pool: 5 + host: DATABASE_ADDRESS + username: DATABASE_USERNAME + password: DATABASE_PASSWORD + #reconnect: false + #socket: /tmp/mysql.sock + +test: + core: + log_level: debug + debug: false + hel: + host: HEL_ADDRESS + username: HEL_USERNAME + password: HEL_PASSWORD + raven: + dsn: + database: + email: + adapter: mysql2 + encoding: utf8 + database: mail + pool: 5 + host: DATABASE_ADDRESS + username: DATABASE_USERNAME + password: DATABASE_PASSWORD + #reconnect: false + #socket: /tmp/mysql.sock + rate_limit: + adapter: mysql2 + encoding: utf8 + database: smtp_out_ng + pool: 5 + host: DATABASE_ADDRESS + username: DATABASE_USERNAME + password: DATABASE_PASSWORD + #reconnect: false + #socket: /tmp/mysql.sock
View file
tomte.yml
Added
@@ -0,0 +1,27 @@ +_common: + # + # Core configuration parameters + # + protocol: + heartbeat: 30 + serialization: bson + + # Asynchronous clients + # Message buses to connect to + # + buses: + management: + adapter: amqp + uri: AMQP_URI + #logging: 'true' + timeout: 10 + + service: + adapter: amqp + uri: AMQP_URI + ssl: false + timeout: 10 + +production: + agents: + daemonize: true
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
.