Commit Graph

287 Commits

Author SHA1 Message Date
Zev Benjamin b5f7ed037c zephyr_mirror: Specify a z_charset of utf-8
andersk reports that we are "incorrectly sending outgoing zephyrs with z_charset
= ZCHARSET_ISO_8859_1, which breaks zwgc (other clients tend to ignore
z_charset). I'm assuming you're shelling out to zwrite; you need to use zwrite
-x UTF-8, or export LC_ALL=en_US.UTF-8."

(imported from commit 8abb28bf8acbe0b5aa99ca13faab24e1e554a031)
2014-05-20 17:29:29 -07:00
Zev Benjamin 5219851de4 zephyr_mirror: Use timeout_success_equivalent in front-end script
(imported from commit 2263a371edda74c1c38a377e0fef5372999888b4)
2014-04-23 11:31:04 -07:00
Zev Benjamin 6d43b22ebe jabber_mirror: Use timeout_success_equivalent in front-end script
(imported from commit 6ca8ec5a2c31d20e4e437804c65650c5a98c69f9)
2014-04-23 11:31:04 -07:00
Zev Benjamin a9e439d9e0 jabber_mirror: Explicitly exit when we encounter an error in the main loop
(imported from commit 19b0f29bfd8c01fa300bdb9db2011bba0b55ddd4)
2014-04-23 11:31:04 -07:00
Zev Benjamin 0224fe2db6 jabber_mirror: Don't try to restart on errors caused by initial configuration
(imported from commit 5d9e6c88e1a159fe6e5e46c21c483b5c79444223)
2014-04-23 11:31:03 -07:00
Zev Benjamin 7053fd2a24 jabber_mirror: Split out into front-end and back-end processes
This adds auto-restarting capability.

(imported from commit 74a01a0272025706f2eb902eeedd9c05ee054272)
2014-04-23 11:31:03 -07:00
Zev Benjamin 7ed182c08f Move backoff classes to the Zulip API
(imported from commit 76c5d499874f0397c505ab3fcda631a1a46847b6)
2014-04-23 11:31:03 -07:00
Jessica McKellar 1c06e37245 [puppet] Change digest email send time by 1 hour for daylight savings.
(imported from commit 8ac1747f15e10b850f73ce28ea4579bee62ba1a4)
2014-03-14 20:48:49 -04:00
Zev Benjamin 2090d6ee27 jabber_mirror: Calculate the zulip domain from the client email address
We were previously calculating it from the zulip_email option, which might not
be set if it is being specified via the config file.

(imported from commit 76866c239ca63ef90a7967c9a6027aeec9be6390)
2014-03-06 21:59:55 -05:00
Zev Benjamin 30f9fed766 jabber_mirror: Report a useful error message when fetching initial Zulip streams/subscriptions
(imported from commit 1133cb0ddb349cda7e16586fba4ba72888e66887)
2014-03-04 23:02:27 -05:00
Zev Benjamin f495f79c90 jabber_mirror: Fix Zulip error handling
(imported from commit 8548576635e5be9b725e059c2d4d9ef9953ec97a)
2014-03-04 23:02:27 -05:00
Zev Benjamin 4721a9093c jabber_mirror: Add option to append a suffix to Zulip usernames
This is needed for the ist.mit.edu realm, where the same email address could be
used for all three of Zulip, Jabber, and Zephyr.  To disambiguate Jabber mirror
dummy users from Zephyr mirror dummy users with the same email address (but
which would be in a different realm), we force all email addresses in the
ist.mit.edu realm to have local parts that end in "+ist".

(imported from commit 5ebad2cc8f6c7286b4b9426d57ed75578703fb86)
2014-03-04 23:02:27 -05:00
Zev Benjamin 9f4bc9fb72 jabber_mirror: Remove dead code
(imported from commit b67faad6888713554929c7e6a8147d19c489956a)
2014-03-04 23:02:27 -05:00
Zev Benjamin 2a3a98228e jabber_mirror: Allow the mode to be specified in the config file
(imported from commit 8de5006f6935271997204d958c44c03ebf14c403)
2014-03-04 23:02:27 -05:00
Zev Benjamin d069ad0bc7 jabber_mirror: Remove --openfire option
It doesn't actually seem to be necessary to adjust the SSL version in current
versions of Openfire.

(imported from commit 6766d9fd5081cf16f2a5e3e2b008f20e7498caa4)
2014-03-04 23:02:27 -05:00
Zev Benjamin 137f5e5980 jabber_mirror: Allow the MUC nickname to be specified
This allows users to run the public mirror as a regular user.

(imported from commit 3512dacf329dadc784d7be492ad290b17082bad4)
2014-03-04 23:02:27 -05:00
Zev Benjamin 11fef6b627 jabber_mirror: Change the default resource to 'zulip'
(imported from commit 290dca7fce5230dc94425478ad48fb8b8a0952b6)
2014-03-04 23:02:26 -05:00
Zev Benjamin 6b4fe69227 jabber_mirror: Guess the conference domain when it isn't specified
(imported from commit 3fed4bdf5ca73b3b9d58ec42a2031e75e813bbd2)
2014-03-04 23:02:26 -05:00
Zev Benjamin 9b41b30487 jabber_mirror: Use sleekxmpp.JID when manipulating message recipients
(imported from commit 57b8384bf79a60abbaf535bd11f222d7f63db251)
2014-03-04 23:02:26 -05:00
Zev Benjamin 868b071eb2 jabber_mirror: Take a JID on the commandline instead of a separate Jabber username and domain
We also take the opportunity to use the sleekxmpp JID parsing more instead of
doing string manipulation.

(imported from commit 6e4ba0bd2c241666fcde42333ff68b879d8ab2b7)
2014-03-04 23:02:26 -05:00
Zev Benjamin 28a6644384 jabber_mirror: Allow Jabber options to be specified in the Zulip config file
(imported from commit 7911fdd4c8a2e8668c01627697a3cd8a153d4612)
2014-03-03 17:30:58 -05:00
Zev Benjamin 66734d46cf jabber_mirror: Clean up help text
(imported from commit bd9a4682c754423047a993b8914d965c2e12fdf4)
2014-03-03 17:30:58 -05:00
Zev Benjamin dfed7f0b7e jabber_mirror: Ignore attempts to join invalid MUCs
(imported from commit a82d53af1f581d059b6457a1bf7afe92af5d42d9)
2014-03-03 17:30:58 -05:00
Zev Benjamin 47f96dc2dd jabber_mirror: Configure rooms after joining
(imported from commit d4c6e895dca1c7002ce39db81b671ba1c975d517)
2014-03-03 17:30:58 -05:00
Zev Benjamin 38212f83fc jabber_mirror: Don't try to mirror messages from rooms themselves
These are usually administrative messages.

(imported from commit 58cbbc739fdd47acc586c235aedd2fccc83654fd)
2014-03-03 17:30:58 -05:00
Zev Benjamin b21dc34eed jabber_mirror: Change character used for loop detection
Previously, we were using U+1B80, which is 'SUNDANESE SIGN PANYECEK' (i.e., an
assigned character).  U+1FFFE is a non-character (i.e., free for internal use)
on Plane 1.

(imported from commit f93d2401733afb96b6d717a7f659c011299071df)
2014-03-03 17:30:58 -05:00
Zev Benjamin 9634fccda7 jabber_mirror: Dynamically join and leave MUCs
For personal mirrors, this means that the mirror should join all Jabber rooms
corresponding to their Zulip subscriptions.  For the public mirror, this means
that the mirror should join all Jabber rooms corresponding to Zulip streams that
end in "/xmpp".

(imported from commit 16ed9e3deee7e02b2ae0dd79925f0ed5c4acd044)
2014-03-03 17:30:58 -05:00
Zev Benjamin 9c52818b93 jabber_mirror: Pull rooms to join from Zulip based on mode
(imported from commit 115d4d4732d8ff4f12d336cfc42a056183251d87)
2014-03-03 17:29:53 -05:00
Zev Benjamin b23dc256e4 jabber_mirror: Document which mode handles which kinds of messages
(imported from commit 983224ac58bce724529806f6b8eaa3ea30cc730b)
2014-03-03 17:29:53 -05:00
Zev Benjamin 204e7e7e90 jabber_mirror: Only mirror messages from streams that end in '/xmpp'
(imported from commit 5213d40063361ffcf073772580ac0f699228cb3f)
2014-03-03 17:29:53 -05:00
Zev Benjamin 0e3af9b238 jabber_mirror: Mirror Jabber room 'foo' to stream 'foo/xmpp'
(imported from commit db771b5b5056cdca5780b90f66924c6f9ae3e84d)
2014-03-03 17:29:53 -05:00
Zev Benjamin 3fbdfeee88 jabber_mirror: Use new-style client name
(imported from commit a1bc5b076a9c0384c1abdc2377183b0eac19f450)
2014-03-03 17:29:53 -05:00
Zev Benjamin 8155b8ea04 jabber_mirror: Add --debug option
(imported from commit 8d6986ba97f464359a1fe214d5605fa744660a9b)
2014-03-03 17:29:53 -05:00
Zev Benjamin 2850800e48 jabber_mirror: Exit if we fail to connect to the Jabber server
(imported from commit f5cc600325a3547412cf0b05239c988410354c10)
2014-03-03 17:29:53 -05:00
Zev Benjamin 0dd209c813 jabber_mirror: Respond to XMPP pings
Other clients like Pidgin sends these.

(imported from commit 61c69a080accda939b82ce8701b10ffc6dda672e)
2014-03-03 17:29:53 -05:00
Zev Benjamin 802bd6448c jabber_mirror: Working PM mirroring
(imported from commit 34617f989e83029c6591461adc3ffa18ddea2037)
2014-03-03 17:29:53 -05:00
Zev Benjamin 577d8d33e1 jabber_mirror: Working room/stream mirroring
(imported from commit 5d0a33423e90edaee3a1094b1d48fae73cfb54ca)
2014-03-03 17:29:53 -05:00
Zev Benjamin 2ca49c3735 jabber_mirror: Require the --conference-domain option when running in 'public' mode
(imported from commit 1dd564a212538e292ffc8b7a52caf7eae66d4475)
2014-03-03 17:29:53 -05:00
Zev Benjamin 40dd0c677e jabber_mirror: Clarify the two modes the mirror can run in
(imported from commit 8084e0552b06c6763f2f13a63c90c9dc73d6bf90)
2014-03-03 17:29:53 -05:00
Zev Benjamin bf17ea0ee4 zephyr_mirror: Fix comment
(imported from commit aed76ecc3b4fd8bb01c299169a8e4eefd35f7cd8)
2014-03-03 17:29:53 -05:00
Zev Benjamin cd1e07fed3 jabber_mirror: Take the Jabber username as a separate option
(imported from commit 86131c7502df7b841c34b09c0e94b071c89b3fde)
2014-03-03 17:29:52 -05:00
Zev Benjamin e8843be3d0 jabber_mirror: Use zulip.init_from_options
(imported from commit 5839c5308a948d2c060d1eb5688b9cf0bd9ed3a2)
2014-03-03 17:29:52 -05:00
Zev Benjamin 8a16ea4cc6 jabber_mirror: Separate Jabber options into their own group
(imported from commit 223ecceee956ab30b1647eb0925d11982b2ef37d)
2014-03-03 17:29:52 -05:00
Zev Benjamin 4d47f487cb jabber_mirror: Use the Zulip API option group
(imported from commit 68243e4ebd44cd3b08bf0789c34bb85016d0d1b9)
2014-03-03 17:29:52 -05:00
Zev Benjamin 5ba0b6b633 api: Disambiguate the names of Zulip options
(imported from commit 67525764cc2f2a26081640063e2d78852f6229ca)
2014-03-03 17:29:52 -05:00
Zev Benjamin fbe67f5d84 jabber_mirror: Use consistent casing for commandline arguments
(imported from commit e30aedc2f626d64b79a9b36b7f3a0fbee84a8ada)
2014-03-03 17:29:52 -05:00
Zev Benjamin 8bb359d194 jabber_mirror: Remove dead code
(imported from commit a8802340e1a624934a92d5bdd4ba8ad26faaadbf)
2014-03-03 17:29:52 -05:00
Zev Benjamin 52d6973191 jabber_mirror: Fix anti-looping
(imported from commit 5b0ee18b3ec4fd73912fde83b14083e77940ab6e)
2014-03-03 17:29:52 -05:00
Zev Benjamin f6cec22e6d jabber_mirror: Do domain replacement more safely
(imported from commit 1a6a3d23120f06d54bc954d4e89d5fccf666332e)
2014-03-03 17:29:52 -05:00
Zev Benjamin 2aeb5dde67 jabber_mirror: Use str.replace instead of re.sub
(imported from commit 55798a06951366f0c3d246a243dbb3d41ee5b4f7)
2014-03-03 17:29:52 -05:00
Zev Benjamin 151370277c jabber_mirror: Use consistent method name casing
(imported from commit 0f68b94bab992ba20aa7c185fa40eafeea22f92e)
2014-03-03 17:29:52 -05:00
Zev Benjamin adcec427b6 jabber_mirror: Factor out jid_to_zulip and use str.rpartition
(imported from commit 435f076d7125676b5b964c73ec1e3753496c32af)
2014-03-03 17:29:52 -05:00
Zev Benjamin f7518ea853 jabber_mirror: Make copyright date clearer
(imported from commit a97382d174994be0592fbd98cdef1ed39c1b0400)
2014-03-03 17:29:51 -05:00
Tim Abbott 2ac428ad7d Add Jabber mirroring bot.
(imported from commit a539e1e9322bfbef4d93efce951f058d09fc58fe)
2014-03-03 17:29:51 -05:00
Jessica McKellar f0c20d8acb nagios: give digest emails even more processing time before alerting.
(imported from commit 057511c22af39d147e4c4c499fee5a3fb7392786)
2014-02-18 16:07:31 -05:00
Jessica McKellar ec29373f19 nagios: give digest emails more processing time before alerting.
(imported from commit ed4c005bc8d0ab2d7ad3ec9e05e3f3110c9fd024)
2014-01-29 14:02:09 -05:00
Jessica McKellar ee0f569c59 Don't alert on elevated mail queues during digest sends.
(imported from commit 2074b08c0f402c147bfdd1f0a4f0663081d5e55d)
2014-01-24 10:07:26 -05:00
Tim Abbott 73a05d52f5 Don't send a Zulip notification about 0 lines.
(imported from commit cc8ce4d95978264cd05bc26f77a5d770abdf5add)
2014-01-16 18:36:19 -05:00
Tim Abbott 1835848782 Filter upstream timed out events from log2zulip.
(imported from commit 7a18d7f7ea6cc1be90d436c651eb4bb85598cec9)
2014-01-16 16:51:16 -05:00
Steve Howell a1e7d2123d Add summarize_stream.py.
(imported from commit 061b1ccc6649acb9a9fc40370282fa34c645afed)
2014-01-10 21:39:06 -05:00
Tim Abbott 8dcf7d4cc3 [puppet] Add log2zulip tool for sending log files to Zulip.
This tool is a little crude; it runs out of a cron job and will
forward to staging a notice about any new lines in the declared log
files, truncating if there are more than 10 lines.

(imported from commit 6748ddff1def0907b061dc278a3a848bd2e933f1)
2013-12-17 11:02:55 -05:00
Zev Benjamin 0a35ca2ff7 nagios: Reduce the threshold for nagios alerts about the size of rabbitmq queues
(imported from commit b3d999913caae5b36892be4ddeee1fdbc84e147b)
2013-12-11 15:10:29 -05:00
Waseem Daher 419a3d3098 Shorter topics for git/svn integration.
(imported from commit 6c9822f6ba383d885e48d3bb64c30e49ea8cf1e5)
2013-12-11 12:20:42 -05:00
Luke Faraone 1b5c1ac021 Update style of client strings.
(imported from commit 1516461cf53b2715de68e01f16bb8a8cc33c48ad)
2013-12-09 11:47:52 -05:00
Tim Abbott 630cfd72f1 Deregister event queues when done in our Nagios scripts.
(imported from commit a1f73403163323e1dd9eda2f5269e94c60abdd1a)
2013-11-20 18:34:16 -05:00
Tim Abbott 968c393826 Use the new !avatar syntax in our git integration.
(imported from commit e00bc63f6fb1944ed206b3ede5431ac2b1ae1ac2)
2013-11-20 13:10:43 -05:00
Tim Abbott 2bc4e14a72 zephyr_mirror: Update maximum length of stream names when syncing.
(imported from commit 6ab7f5ae47c9dfe9edf411e73ac9e5ab22d375a7)
2013-11-12 09:38:43 -05:00
Tim Abbott 442ae115a2 Remove legacy check_output implementation for pre-2.7 Pythons.
We still need it in integrations, because those don't require Python
2.7, but we don't need it in any of our code that runs on internal
servers.

(imported from commit 3c340567f1a372dcb4206c6af9a6e5e18005b1b8)
2013-11-10 09:28:55 -05:00
Tim Abbott 68dcc760c3 Clean up some unused imports.
(imported from commit 0c5d8e2a55ba1b8909ba807fee3afe863dcdc226)
2013-11-04 11:51:17 -05:00
Tim Abbott b7c1686501 Initial IRC mirror prototype.
(imported from commit fb1c482aaebc317b8b071346cb3bf54d4c7d2c8d)
2013-10-29 16:49:42 -04:00
Tim Abbott 7faceb2d2d zmirror: Add some more non-world-readable Zephyr classes.
These are from a list that Camilla Fox sent me of all
non-world-readable Zephyr classes currently configured.

(imported from commit 6246a981402b47056b28cd14be688e15224aacd1)
2013-10-28 15:44:34 -04:00
Tim Abbott 901a5c342c Use os.path directly rather than sometimes importing it separately.
(imported from commit 48486c4ea64d02a15faeebb0f490d31e9b113d62)
2013-10-28 15:44:13 -04:00
Tim Abbott fffd4f3c59 Move zulip_tools library to root of repository.
(imported from commit 2fada9d2acbcf81f8e2b3de8caadbf335141dfaa)
2013-10-28 10:54:48 -04:00
Luke Faraone d5d0ef809b [manual] Deconfigure standalone feedback bot, replacing it with a worker.
Steps needed:
 - puppet apply on staging/prod when deployed to respective sites
 - puppet apply on bots.z.n when deployed to prod
 - copy /var/tmp/.feedback-bot-ticket-number from bots to staging

(imported from commit 2c943dac8d871809b0997a4484f508ec5b078bcd)
2013-10-25 14:13:30 -04:00
Luke Faraone 52309b5789 Enable absolute imports for non-third-party code where it was omitted previously
(imported from commit 34856ac32c6b94b614273a6fe46c87a314058d9b)
2013-10-25 14:13:30 -04:00
Zev Benjamin 16a8bce60c Remove redundant return statement
(imported from commit eac3298f3004d2dd519c5444755e729111d13482)
2013-10-22 13:19:00 -04:00
Zev Benjamin b961c16265 zephyr_mirror: Make outgoing zephyrs to ctl instead go to golem
This makes zulips to ctl@mit.edu cause the mirroring system to zephyr
golem@mit.edu.

(imported from commit 9059a92ba51fa87e45feae2f0d5549b36b048e8b)
2013-10-17 23:20:57 -04:00
Zev Benjamin 630ce40e29 zephyr_mirror: Hack to let golem receive mirrored personals
(imported from commit 68539e45dbdfd70a037405dd2760474bf46dff76)
2013-10-11 17:50:19 -04:00
Steve Howell e6d1453e5f Provide more info in support requests.
Have the Feedback Bot provide the sender's full name.
Put the email in the message to help searching.
Generate a ticket number to make it easier to refer to the message from
elsewhere.

(imported from commit 4d789135a0097bade50b4d980f49ca596d85b73b)
2013-10-11 11:45:46 -04:00
Luke Faraone 7d03614a1b Store the feedback bot key in local_settings.py
(imported from commit 3322d8976328db61cd382acb06775c6a6df3fea0)
2013-10-10 11:31:15 -04:00
Tim Abbott ac01b0ed19 git integration: Linkify our commits to point to GitLab.
(imported from commit e8d3c107842680dec9bc6aa84f9548c0f879785d)
2013-10-08 17:21:57 -04:00
Tim Abbott 2b5d036e34 Use events API in our Nagios monitoring scripts
(imported from commit 9b370e420095f17fbb7e9d1e466d51dd2e145de1)
2013-10-08 17:21:57 -04:00
Tim Abbott f9c6b7f2aa Use the 'test: Zulip monitoring' client string for our Nagios stuff.
(imported from commit 02618a4724e1ab64c05f95f60b83b7593b3fe62b)
2013-10-08 08:57:30 -04:00
Tim Abbott f3fd1a2c44 [manual] puppet: Rename humbug user to zulip.
(imported from commit 90e517a4a657d2821b371c833e557c2003c9340c)
2013-10-08 08:57:30 -04:00
Tim Abbott 3d89ee20f7 Rename humbug => zulip in tddium integration.
(imported from commit f48dd9f7ddc8221c90373300eedf87077d9e5874)
2013-10-08 08:57:30 -04:00
Tim Abbott b8b0eb4508 Some zulip => humbug updates in comments and print statements.
(imported from commit 9253569a1df7f96fda81ab162d710cdda03f30ca)
2013-10-08 08:57:29 -04:00
Tim Abbott e11ae77ba6 [manual] Rename /home/humbug to /home/zulip.
This may require just doing an mv on the home directory, plus changing
the home directory in /etc/passwd.  It should of course be done carefully.

(imported from commit 660997d897ee6d33563af74f0fc5d4267a911755)
2013-10-08 08:57:29 -04:00
Tim Abbott 9677ce8920 [manual] Move git checkouts from /home/humbug/humbug to /home/humbug/zulip.
(imported from commit d58be28e57fcb3b5585c0018f1dbb53adf5067df)
2013-10-08 08:57:28 -04:00
Tim Abbott f10be187bd zephyr_mirror: Fix support for forwarding mail zephyrs.
(imported from commit 4ab2c810d3ccff6058e6c0be2e172a78e216d0a5)
2013-10-01 14:52:20 -04:00
Tim Abbott 2fab8ab8f5 Write zephyr mirroring logs to /var/log/zulip rather than ~/.
(imported from commit 7b76fa7834fb82fe3967f9e5ef963f26b7ff7184)
2013-09-25 16:52:41 -04:00
Tim Abbott 4be5d81af1 [manual] Write logs to /var/log/zulip rather than /var/log/humbug.
This requires a puppet apply to update the supervisor configuration.

(imported from commit f2836b6d9c53791af6f6ceb1650d0e0740df70ab)
2013-09-25 16:52:41 -04:00
Tim Abbott d38b8364a8 zephyr_mirror: Clear all notices from the queue before selecting.
We were having problems where we were suspiciously processing notices
at a rate of 1 notice per 15s, which suggests that we the select was
timing out even though there were notices to be fetched immediately.
We fix this by clearing the queue each time our select loop ends.

(imported from commit 7e7bfbb2126d1f4170d65d1483a0b799dcab80b9)
2013-09-25 15:40:21 -04:00
Zev Benjamin 11a503667d Replace configuration references to trac.humbughq.com with trac.zulip.net
(imported from commit aa042a10ada3f04205fd8d3e94c2b13f12a5a1a7)
2013-09-05 15:43:08 -04:00
Tim Abbott 371654adb3 zephyr_mirror: Make Webathena work for golem.
(imported from commit 6f8bf1f44c521b22c9fc990711d2821e5a60761d)
2013-08-28 18:56:54 -04:00
Zev Benjamin 724ce3744c zephyr_mirror: Tweak error text
(imported from commit 7bb9d42a261e08d3abe5d80b9ba2e88f1d0b03bf)
2013-08-28 10:41:53 -04:00
Tim Abbott 77dbbe7f23 zephyr_mirror: Require zcrypt when mirroring to invite-only streams.
(imported from commit 1b88a8fc9bc26f2f9b1bb3f037093f85255feb17)
2013-08-27 18:26:12 -04:00
Tim Abbott 314d0fc053 zephyr_mirror: Subscribe to mail zephyrs even if we're not using them.
This should enabled us, in the future, to enable support for mail
zephyrs without requiring users to re-auth.

(imported from commit 2665743212da567fe85742d30cca42b902e41a0d)
2013-08-27 16:21:41 -04:00
Tim Abbott 611955e9fa zephyr_mirror: Use the new reasonable --log-path option.
(imported from commit 2208e4c47cf49e3005cc3b93314b8c2a0ffc23c6)
2013-08-27 14:21:26 -04:00
Tim Abbott 6707ed4270 zephyr_mirror: Rename confusing log path variables.
(imported from commit a120f653c1b9283b91f339cccea52bd5ad89b69f)
2013-08-27 14:21:26 -04:00
Tim Abbott 1ece1c17c3 zephyr_mirror: Stop logging to the old resend log.
We were intending to just be directing the logger logs, not logging
every message for potentially resending.

(imported from commit 9dd53e3968880745a8c01244db5d2c2247dfe85c)
2013-08-27 14:21:26 -04:00
Tim Abbott 7014a661d2 zmirror: Add monitoring for personals mirrors.
(imported from commit acb7f2222076d2f3884a2e52c7032cb48fde1757)
2013-08-26 18:17:26 -04:00
Tim Abbott 732de3faf1 zephyr_mirror: Ignore expired Kerberos tickets for personals mirror.
(imported from commit 094755feacd299255f078432465f11a609df9aef)
2013-08-26 18:17:26 -04:00
Tim Abbott af372b2401 zephyr_mirror: Allow running multiple zephyr mirroring scripts under one user.
(imported from commit ecec50ee0e51736487358ef9f5847000d35f327a)
2013-08-26 18:17:26 -04:00
Tim Abbott 134da30fdf Add webathena authentication button for Zephyr users.
This shows up when you're not running a Zephyr mirroring bot and lets
you use Webathena to have us run it.  Obviously needs more docs.

Current problems include:

* supervisorctl reload ends up recreating /var/run/supervisor.sock
  with the wrong permissions, so it only works once in a row before
  you need to chmod that.

* /etc/supervisor/conf.d needs to be humbug-writeable; this is a clear
  local root vulnerability

* This uses SSH and thus is kinda slow.

(imported from commit 7029979615ffd50b10f126ce2cf9a85a5eefd7a2)
2013-08-26 18:17:25 -04:00
Tim Abbott d584629971 zephyr_mirror: Add options to save/restore sessions.
The davidben-patched-for-roost Zephyr branch (available at
https://github.com/davidben/zephyr/tree/roost) adds Zephyr support for
these options.  We also patch python-zephyr to expose them.  These
basically let you save your Zephyr tickets and port number to a file,
so that you can later restore them (even potentially after the machine
rebooted).  Basically because Zephyr is UDP, the Zephyr server will
continue trying to deliver messages to a particular port number that
was registered for up to 20 minutes after getting an error; so we can
even have downtime and reboot and still get our packets so long as we
restore the sessions within 20 minutes.

(imported from commit 986cbb157ddfa57aa4b644cd826f8418e9876dc7)
2013-08-26 18:17:25 -04:00
Tim Abbott f5f95e5f43 [manual] Extend /api/v1/streams API endpoint.
Previously it only provided the list of all public streams; now it
allows one to specify any union of some of the following:
* all public streams
* all streams the user subscribed to

(the most relevant being the union of those two, which is what we want
for the "streams" page).

Or:
* all streams in realm (superuser only)

The manual task required is that when this is pushed to prod, we need
to also deploy the new sync-public-streams version to zmirror.

(imported from commit 27848b8bd136e2777f399b7d05b2fdcec35e4e21)
2013-08-22 12:29:04 -04:00
Tim Abbott 0a0cb9e70e zephyr_mirror: Finish outgoing zcrypt.
(imported from commit dfef23feb8e0f6a0a8ba775b6cccd391cb307adb)
2013-08-22 12:29:04 -04:00
Tim Abbott 97e85e80bd check-mirroring: Move log file under /home/humbug/logs/.
This is for consistency with where one goes for server logs on our
normal frontends.

(imported from commit 094f4cd1ca6c64497594827e12d8100bbb9bd6ab)
2013-08-20 17:09:09 -04:00
Tim Abbott 6253483003 zephyr_mirror: Send outgoing messages encrypted when zcrypt would.
Our .crypt-table parsing code isn't quite correct, in that we don't
handle either the "zcrypt default" or "zcrypt by class/instance" pair
options (for sending messages in either direction) -- you have to be
zcrypting for an entire class.  I think this makes sense given that on
the Zulip end we can only enforce anything on a stream level.

(imported from commit a7901b1dc025a04a23ee71ecdd499e3f150ba614)
2013-08-20 17:09:09 -04:00
Tim Abbott 605171d1da zephyr_mirror: Renew kerberos tickets when starting up class mirror.
(imported from commit 34b0a78558c6f20043efe986a16064387f36f1c0)
2013-08-20 15:27:24 -04:00
Tim Abbott 65520d99b8 zephyr_mirror: Fix zephyr/zerver path conversion.
(imported from commit bb895bac50754a601a09639cba596ed65956dc9b)
2013-08-20 15:27:24 -04:00
Tim Abbott 6850f25907 [manual] puppet: Move rabbitmq cron jobs into puppet.
When we deploy this, we should remove the relevant jobs from root's
crontab on our app servers.

(imported from commit 749be952d504f5a4d243cf59f6430acc689fc821)
2013-08-20 15:27:24 -04:00
Tim Abbott b4adabfaf0 zephyr_mirror: Auto-detect Python version for pyzephyr path.
(imported from commit e2aca3a08f8aa12b43d71acffcc0e2249feb7ca7)
2013-08-20 15:27:23 -04:00
Tim Abbott 1a7d946bd1 puppet: Move zephyr_mirror crontab into /etc/cron.d.
(imported from commit e93e630704ce7e85346f54f095c642010058fc09)
2013-08-20 15:27:21 -04:00
Tim Abbott 52cbbdfc2f zephyr_mirror: De-zcrypt messages for which we have the key.
For now we only support the AES encryption type since the DES one is
probably not used anymore.

(imported from commit 222606db9f704917e74159e7d07a110187a236e6)
2013-08-20 15:02:07 -04:00
Tim Abbott c5fcbe103c zephyr_mirror: Handle syncing subs with invite-only streams.
(imported from commit ec8d0c0d13ff0a81fa4a5e1225e94e6dad997356)
2013-08-20 15:02:04 -04:00
Tim Abbott f446b72233 zephyr_mirror: Add option to control path to streams file.
This makes it easy to test the class mirror on just a single test
stream.

(imported from commit 3decb1ced54507683f1c0634df14f73e693104ef)
2013-08-20 14:57:13 -04:00
Tim Abbott e00efa4665 Rename Humbug-based variables in check-mirroring.
(imported from commit cdfc9a1c15db7bd6de099e6403dc65bfaff337b0)
2013-08-08 10:22:32 -04:00
Tim Abbott 94f8933b8d Rename Humbug-based variables/paths in git plugin.
(imported from commit e153c7a1a68e82dd3fa45251644be74c62770a9d)
2013-08-08 10:22:31 -04:00
Tim Abbott e8f1a349b8 Add Zulip Nagios integration to puppet.
(imported from commit 62b53e4f8a31ec8ab21d5bb5435a320c8e4eab95)
2013-08-08 10:22:31 -04:00
Tim Abbott 3005792734 Rename Humbug-based variables in Trac plugin.
(imported from commit 5d406cb6c5fe7b1fbd4da706f7ac6bb6e381cadb)
2013-08-08 10:22:31 -04:00
Tim Abbott 6550134b3e Rename humbug_*_config.py to zulip_*_config.py.
(imported from commit a1d4dd22c59f812f0eb4875dc70c89ce96a4b90c)
2013-08-08 10:22:31 -04:00
Tim Abbott 747a9c536f Rename the 'humbug' API module to 'zulip'.
(imported from commit b3a3d7c05459cbb0110cd0fbe2197d779f3a6264)
2013-08-08 10:22:31 -04:00
Tim Abbott 130d381302 Rename humbug_tools to zulip_tools.
(imported from commit 7f21fdc2c2d6ad0bdbd99eb616ffc75c347d8dcb)
2013-08-07 10:00:08 -04:00
Tim Abbott 98bfd93c8c Change humbug => zulip in zephyr_mirror_backend internal variables.
(imported from commit 7cc5d78bfb5db8c9d5a44ed862da304d9e44ff0e)
2013-08-07 10:00:08 -04:00
Tim Abbott 4b90865d7d Change Humbug => Zulip in zephyr_mirror states.
(imported from commit 67542cd2ba93ff4b03c99b59645b7d22ed937337)
2013-08-07 10:00:07 -04:00
Tim Abbott 1f1af26048 Change Humbug => Zulip in text/comments.
(imported from commit 2f9d73431ae40e1b9e9e11bc2f4f62f566ae758a)
2013-08-07 10:00:07 -04:00
Tim Abbott 9c60ecb479 Escape @ when mirroring content back to Zephyr.
(imported from commit 0ab58b5e8a30c66fb6aeaccaebbe498092de1cd5)
2013-08-01 14:01:58 -04:00
Tim Abbott 0d077e7f41 [manual] Use api.zulip.com to access the Humbug API.
This needs to be deployed after the nginx configuration is deployed.

(imported from commit 167a3d9d27595d40883bb400ebcc44c4ad9b6a2f)
2013-07-25 17:27:46 -04:00
Tim Abbott 438739f6cc More miscellaneous humbughq.com=>zulip.com updates.
(imported from commit 9a3dbc4268f251c2c0b20d8b6a7e1dc672f1b385)
2013-07-25 17:27:45 -04:00
Tim Abbott bcf86cae98 Switch Humbug users in API examples to zulip.com email addresses.
(imported from commit 83abeafee8d7d146d950c3049568acbf51bb3a12)
2013-07-25 17:19:18 -04:00
Tim Abbott f7be8a31ab [manual] Rename feedback bot to zulip.com domain.
Just before this is pushed to prod, we need to rename the Humbug feedback
bot in the database using:

./manage.py change_user_email feedback@humbughq.com feedback@zulip.com
/etc/init.d/memcached restart

and we also need to update and restart feedback-bot in its deployed
location.

No action is required on pushing this to staging, but in between when
this is pushed to staging and when it is pushed to prod (and that
transition performed), feedback will not work on staging.

(imported from commit 73fc36f680b978f3aebae5df1822918ae4d4e952)
2013-07-25 17:16:54 -04:00
Tim Abbott c7d57e6e4a [manual] Rename commit bot to zulip.com domain.
When we push this to staging, we'll need to rename the bot in the
database and also pull on git.zulip.net.

(imported from commit 22b2397b197c8820f0e55daecd8f98d829e195bd)
2013-07-25 17:16:53 -04:00
Tim Abbott 083b0408da Rename trac bot to zulip.com domain.
(imported from commit 8b842b0cc49974e38a0ecdca78be3fad3a1032bb)
2013-07-25 17:16:53 -04:00
Tim Abbott 1d01a7db55 zephyr_mirror: Point to documentation on maintaining Kerberos/AFS credentials.
(imported from commit 2c49a1a554c2880f611e4969c8680f36641f1c2e)
2013-07-18 16:05:25 -04:00
Tim Abbott 3f7c6f92c5 zephyr_mirror: Use Humbug full name as zsig.
(imported from commit 8cd24c4ff6c265084764ab367b46e4cb64e8c796)
2013-07-18 13:58:16 -04:00
Jessica McKellar 89fcfc579d zephyr mirror backend: Switch from Humbug to Zulip in user-visible text.
(imported from commit cc4da47373362babb2f5f57493831946b29d32cf)
2013-07-15 17:49:00 -04:00
Tim Abbott e219c2eaf5 zephyr_mirror: you no longer need to reload Humbug after subbing.
(imported from commit 23cb4e5c4b3300953e58c029150d4a980bac626e)
2013-06-28 15:57:29 -04:00
Tim Abbott ea8a80603a [manual] Change API URLs to be based on api.humbughq.com/api.
This must be deployed after we update our running nginx configuration
to serve api.humbughq.com.

(imported from commit b5c34ebdd595f55eecd6dca6a18a37f105107bd5)
2013-06-28 15:57:27 -04:00
Scott Feeney 83cd963c49 Remove unused imports
(imported from commit 9e3050c72a2d1137b9096c6cfa1c3945341b9a56)
2013-06-27 16:22:39 -04:00
Tim Abbott 959760b43e Convert gcal-bot to use the humbug.init_from_options options.
(imported from commit 6c0db071d65d0d035056c090f659436fba68ca2f)
2013-06-25 16:34:45 -04:00
Tim Abbott 1ec0ee0fd6 [manual] API add_subscriptions: Change arguments to support options.
Since in the future we might want requests to add subscriptions to
include things like colors, in_home_view, etc., we're changing the
data format for the add_subscriptions API call to pass each stream as
a dictionary, giving a convenient place to put any added options.

The manual step required here is updating the API version in AFS
available for use with the zephyr_mirror.py system.

(imported from commit 364960cca582a0658f0d334668822045c001b92c)
2013-06-25 16:34:45 -04:00
Tim Abbott 9924faaabd [manual] API get_public_streams: Return streams in a dictionary.
This way we can return properties of the streams other than just their
names in future versions of the API without breaking old clients.

The manual step required is to deploy the updated version of
sync-public-streams on zmirror.humbughq.com when we deploy this code
to prod.

(imported from commit 42b86d8daa5729f52c9961dd912c5776a25ab0b4)
2013-06-25 16:34:44 -04:00
Luke Faraone 742d3bb511 Move check_send_receive.py to the naigos plugins directory, renaming it.
For consistency, and because nobody could think of a reason to have it live
in bots/ with a symlink.

(imported from commit def372653fcdde2805729134fec9d4bc3ce294ec)
2013-05-29 15:36:47 -04:00
Zev Benjamin fb11f60c37 Fix API path for check_send_receive.py
(imported from commit a930475d2b65324c838b4fd40fe8ce007c52089b)
2013-05-29 15:29:52 -04:00
Zev Benjamin 6824c94b7e [manual] Remove dependence on /home/humbug/humbug git checkout on app frontends
Modified files need to be copied into the right place.  The checkout
on git.humbughq.com also needs to be updated.

(imported from commit dbe9e05a0512e1f59c7819dd8d44c2c4e9c83bcf)
2013-05-29 12:00:03 -04:00
Tim Abbott 7ebd214f89 zephyr_mirror: Fix incorrect check for already running mirror bots.
(imported from commit 76e758697ac19362e79d4a4995b576f10d229514)
2013-05-20 23:29:53 -04:00
Leo Franchi 3d4e239247 Check rabbitmq consumers for all important queues
(imported from commit 1279d33e3e1c36ee8da01859875d24b54e14e2e6)
2013-05-17 01:02:35 -04:00
Zev Benjamin a04b7fb07e Fix use of logging instead of logger
(imported from commit cd25471e842e089d5032b07bcd83c6fe44d03a2d)
2013-05-09 13:50:21 -04:00
Tim Abbott d483500e64 zephyr_mirror: Use select to determine whether new messages are available.
(imported from commit a91f45aa9f3913f38285c050e574bf562b2af2df)
2013-05-09 10:35:49 -04:00